@acorex/core 6.5.28 → 6.5.30
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -3
- 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 +255 -255
- package/{src → esm2020}/lib/locale/fa.json +245 -245
- 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 +150 -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 +2274 -0
- package/fesm2015/acorex-core.mjs.map +1 -0
- package/fesm2020/acorex-core.mjs +2270 -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} +5 -5
- package/{src/lib/classes/popup.class.ts → lib/classes/popup.class.d.ts} +12 -14
- package/lib/classes/promise.class.d.ts +7 -0
- package/{src/lib/classes/sectionlist.class.ts → lib/classes/sectionlist.class.d.ts} +8 -8
- package/lib/classes/select.class.d.ts +7 -0
- package/lib/core.module.d.ts +9 -0
- package/{src/lib/error/error.class.ts → lib/error/error.class.d.ts} +4 -4
- 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} +2 -5
- package/{src/lib/http/http-error.class.ts → lib/http/http-error.class.d.ts} +7 -7
- package/{src/lib/http/http-events.interceptor.ts → lib/http/http-events.interceptor.d.ts} +10 -14
- package/{src/lib/http/http-request.class.ts → lib/http/http-request.class.d.ts} +14 -14
- 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 +26 -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} +43 -53
- 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 -223
- 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
|
@@ -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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RSxDQUFjO1FBQzdDLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBQ3JDLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBRXJDLElBQUksRUFBRSxDQUFDLElBQUksR0FBRyxFQUFFLENBQUMsSUFBSSxHQUFHLEVBQUUsQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDLElBQUksR0FBRyxFQUFFLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQyxJQUFJO1lBQzlELEVBQUUsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLEdBQUcsR0FBRyxFQUFFLENBQUMsTUFBTSxJQUFJLEVBQUUsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUMsR0FBRyxFQUFFO1lBQzVELE9BQU8sSUFBSSxDQUFDO1NBQ2I7YUFDSTtZQUNILE9BQU8sS0FBSyxDQUFDO1NBQ2Q7SUFDSCxDQUFDO0NBRUYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWE1hdGhVdGlsIH0gZnJvbSAnLi4vbWF0aC9tYXRoLXV0aWwnO1xuXG5leHBvcnQgdHlwZSBBWFBsYWNlbWVudCA9XG4gIHwgJ3RvcC1zdGFydCdcbiAgfCAndG9wLW1pZGRsZSdcbiAgfCAndG9wLWVuZCdcbiAgfCAnY2VudGVyLXN0YXJ0J1xuICB8ICdjZW50ZXItZW5kJ1xuICB8ICdib3R0b20tc3RhcnQnXG4gIHwgJ2JvdHRvbS1taWRkbGUnXG4gIHwgJ2JvdHRvbS1lbmQnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFYSVBvaW50IHtcbiAgeDogbnVtYmVyO1xuICB5OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhDb25uZWN0ZWRQb3NpdGlvbiB7XG4gIG9yaWdpblg6ICdzdGFydCcgfCAnY2VudGVyJyB8ICdlbmQnO1xuICBvcmlnaW5ZOiAndG9wJyB8ICdjZW50ZXInIHwgJ2JvdHRvbSc7XG4gIG92ZXJsYXlYOiAnc3RhcnQnIHwgJ2NlbnRlcicgfCAnZW5kJztcbiAgb3ZlcmxheVk6ICd0b3AnIHwgJ2NlbnRlcicgfCAnYm90dG9tJztcbiAgd2VpZ2h0PzogbnVtYmVyO1xuICBvZmZzZXRYPzogbnVtYmVyO1xuICBvZmZzZXRZPzogbnVtYmVyO1xufVxuXG5leHBvcnQgY2xhc3MgQVhQb2ludCBpbXBsZW1lbnRzIEFYSVBvaW50IHtcbiAgY29uc3RydWN0b3IocHVibGljIHg6IG51bWJlciwgcHVibGljIHk6IG51bWJlcikge1xuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhDbGllbnRSZWNDdG9yIHtcbiAgbGVmdD86IG51bWJlcjtcbiAgdG9wPzogbnVtYmVyO1xuICB3aWR0aD86IG51bWJlcjtcbiAgaGVpZ2h0PzogbnVtYmVyO1xuICBib3R0b20/OiBudW1iZXI7XG4gIHJpZ2h0PzogbnVtYmVyO1xufVxuZXhwb3J0IGNsYXNzIEFYQ2xpZW50UmVjIGltcGxlbWVudHMgQVhDbGllbnRSZWNDdG9yIHtcblxuXG4gIHByaXZhdGUgX2xlZnQ6IG51bWJlcjtcbiAgcHVibGljIGdldCBsZWZ0KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX2xlZnQ7XG4gIH1cbiAgcHVibGljIHNldCBsZWZ0KHY6IG51bWJlcikge1xuICAgIHRoaXMuX2xlZnQgPSB2O1xuICB9XG5cblxuICBwcml2YXRlIF90b3A6IG51bWJlcjtcbiAgcHVibGljIGdldCB0b3AoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fdG9wO1xuICB9XG4gIHB1YmxpYyBzZXQgdG9wKHY6IG51bWJlcikge1xuICAgIHRoaXMuX3RvcCA9IHY7XG4gIH1cblxuXG4gIHByaXZhdGUgX3JpZ2h0OiBudW1iZXI7XG4gIHB1YmxpYyBnZXQgcmlnaHQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fcmlnaHQ7XG4gIH1cbiAgcHVibGljIHNldCByaWdodCh2OiBudW1iZXIpIHtcbiAgICB0aGlzLl9yaWdodCA9IHY7XG4gIH1cblxuXG4gIHByaXZhdGUgX2JvdHRvbTogbnVtYmVyO1xuICBwdWJsaWMgZ2V0IGJvdHRvbSgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9ib3R0b207XG4gIH1cbiAgcHVibGljIHNldCBib3R0b20odjogbnVtYmVyKSB7XG4gICAgdGhpcy5fYm90dG9tID0gdjtcbiAgfVxuXG5cblxuICBwcml2YXRlIF93aWR0aDogbnVtYmVyO1xuICBwdWJsaWMgZ2V0IHdpZHRoKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX3dpZHRoO1xuICB9XG4gIHB1YmxpYyBzZXQgd2lkdGgodjogbnVtYmVyKSB7XG4gICAgdGhpcy5fd2lkdGggPSB2O1xuICB9XG5cblxuICBwcml2YXRlIF9oZWlnaHQ6IG51bWJlcjtcbiAgcHVibGljIGdldCBoZWlnaHQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5faGVpZ2h0O1xuICB9XG4gIHB1YmxpYyBzZXQgaGVpZ2h0KHY6IG51bWJlcikge1xuICAgIHRoaXMuX2hlaWdodCA9IHY7XG4gIH1cblxuXG4gIGNvbnN0cnVjdG9yKHJlYzogQVhDbGllbnRSZWNDdG9yKSB7XG4gICAgdGhpcy5fbGVmdCA9IHJlYy5sZWZ0O1xuICAgIHRoaXMuX3RvcCA9IHJlYy50b3A7XG4gICAgdGhpcy5fd2lkdGggPSByZWMud2lkdGg7XG4gICAgdGhpcy5faGVpZ2h0ID0gcmVjLmhlaWdodDtcbiAgICB0aGlzLl9yaWdodCA9IHRoaXMuX2xlZnQgKyB0aGlzLl93aWR0aDtcbiAgICB0aGlzLl9ib3R0b20gPSB0aGlzLl90b3AgKyB0aGlzLl9oZWlnaHQ7XG4gIH1cblxuICBwdWJsaWMgaW50ZXJzZWN0KHJlYzogQVhDbGllbnRSZWNDdG9yKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICh0aGlzLmxlZnQgPCByZWMubGVmdCArIHJlYy53aWR0aCAmJlxuICAgICAgdGhpcy5sZWZ0ICsgdGhpcy53aWR0aCA+IHJlYy5sZWZ0ICYmXG4gICAgICB0aGlzLnRvcCA8IHJlYy50b3AgKyByZWMuaGVpZ2h0ICYmXG4gICAgICB0aGlzLnRvcCArIHRoaXMuaGVpZ2h0ID4gcmVjLnRvcCk7XG4gIH1cblxuXG59XG4vLyBAZHluYW1pY1xuZXhwb3J0IGNsYXNzIEFYSHRtbFV0aWwge1xuICBzdGF0aWMgZ2V0Qm91bmRpbmdSZWN0UG9pbnQoZWw6IEhUTUxFbGVtZW50LCBwbGFjZW1lbnQ6IEFYUGxhY2VtZW50KTogQVhQb2ludCB7XG4gICAgY29uc3QgcmVjID0gZWwuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgY29uc3Qgd2lkdGggPSBlbC5vZmZzZXRXaWR0aDtcbiAgICBjb25zdCBoZWlnaHQgPSBlbC5vZmZzZXRIZWlnaHQ7XG4gICAgc3dpdGNoIChwbGFjZW1lbnQpIHtcbiAgICAgIGNhc2UgJ3RvcC1zdGFydCc6XG4gICAgICAgIHJldHVybiBuZXcgQVhQb2ludChyZWMubGVmdCwgcmVjLnRvcCk7XG4gICAgICBjYXNlICd0b3AtbWlkZGxlJzpcbiAgICAgICAgcmV0dXJuIG5ldyBBWFBvaW50KHJlYy5sZWZ0ICsgKHdpZHRoIC8gMiksIHJlYy50b3ApO1xuICAgICAgY2FzZSAndG9wLWVuZCc6XG4gICAgICAgIHJldHVybiBuZXcgQVhQb2ludChyZWMubGVmdCArICh3aWR0aCksIHJlYy50b3ApO1xuICAgICAgY2FzZSAnY2VudGVyLWVuZCc6XG4gICAgICAgIHJldHVybiBuZXcgQVhQb2ludChyZWMubGVmdCArICh3aWR0aCksIHJlYy50b3AgKyAoaGVpZ2h0IC8gMikpO1xuICAgICAgY2FzZSAnYm90dG9tLWVuZCc6XG4gICAgICAgIHJldHVybiBuZXcgQVhQb2ludChyZWMubGVmdCArICh3aWR0aCksIHJlYy50b3AgKyAoaGVpZ2h0KSk7XG4gICAgICBjYXNlICdib3R0b20tbWlkZGxlJzpcbiAgICAgICAgcmV0dXJuIG5ldyBBWFBvaW50KHJlYy5sZWZ0ICsgKHdpZHRoIC8gMiksIHJlYy50b3AgKyAoaGVpZ2h0KSk7XG4gICAgICBjYXNlICdib3R0b20tc3RhcnQnOlxuICAgICAgICByZXR1cm4gbmV3IEFYUG9pbnQocmVjLmxlZnQsIHJlYy50b3AgKyAoaGVpZ2h0KSk7XG4gICAgICBjYXNlICdjZW50ZXItc3RhcnQnOlxuICAgICAgICByZXR1cm4gbmV3IEFYUG9pbnQocmVjLmxlZnQsIHJlYy50b3AgKyAoaGVpZ2h0IC8gMikpO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIG5ldyBBWFBvaW50KHJlYy5sZWZ0ICsgKHdpZHRoIC8gMiksIHJlYy50b3AgKyAoaGVpZ2h0KSk7XG4gICAgfVxuICB9XG5cbiAgc3RhdGljIGlzSW5SZWNQb2ludChwb3M6IEFYSVBvaW50LCByZWM6IEFYQ2xpZW50UmVjQ3Rvcik6IGJvb2xlYW4ge1xuICAgIHJldHVybiBwb3MueCA+PSByZWMubGVmdCAmJiBwb3MueCA8PSAocmVjLmxlZnQgKyByZWMud2lkdGgpICYmIHBvcy55ID49IHJlYy50b3AgJiYgKHBvcy55IDw9IChyZWMudG9wICsgcmVjLmhlaWdodCkpO1xuICB9XG5cbiAgLy8gc3RhdGljIGlzT3ZlckxhcChyZWMxOiBBWENsaWVudFJlY0N0b3IsIHJlYzI6IEFYQ2xpZW50UmVjQ3Rvcik6IGJvb2xlYW4ge1xuICAvLyAgIGNvbnN0IHIxOiBBWENsaWVudFJlYyA9IG5ldyBBWENsaWVudFJlYyhyZWMxKTtcbiAgLy8gICBjb25zdCByMjogQVhDbGllbnRSZWMgPSBuZXcgQVhDbGllbnRSZWMocmVjMik7XG5cbiAgLy8gICByZXR1cm4gO1xuICAvLyB9XG5cbiAgc3RhdGljIGlzSW5FbGVtZW50Qm91bmQocG9zOiBBWElQb2ludCwgZWxlbWVudDogSFRNTEVsZW1lbnQpOiBib29sZWFuIHtcbiAgICBjb25zdCBlbEJvdW5kID0gZWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICByZXR1cm4gQVhIdG1sVXRpbC5pc0luUmVjUG9pbnQocG9zLCB7XG4gICAgICBsZWZ0OiBlbEJvdW5kLmxlZnQsXG4gICAgICB3aWR0aDogZWxCb3VuZC53aWR0aCxcbiAgICAgIHRvcDogZWxCb3VuZC50b3AsXG4gICAgICBoZWlnaHQ6IGVsQm91bmQuaGVpZ2h0XG4gICAgfSk7XG4gIH1cblxuICBzdGF0aWMgZ2V0RGltZW5zaW9ucygpOiB7IHdpZHRoOiBudW1iZXIsIGhlaWdodDogbnVtYmVyIH0ge1xuICAgIGxldCB3aW5XID0gNjMwO1xuICAgIGxldCB3aW5IID0gNDYwO1xuICAgIGlmIChkb2N1bWVudC5ib2R5ICYmIGRvY3VtZW50LmJvZHkub2Zmc2V0V2lkdGgpIHtcbiAgICAgIHdpblcgPSBkb2N1bWVudC5ib2R5Lm9mZnNldFdpZHRoO1xuICAgICAgd2luSCA9IGRvY3VtZW50LmJvZHkub2Zmc2V0SGVpZ2h0O1xuICAgIH1cbiAgICBpZiAoZG9jdW1lbnQuY29tcGF0TW9kZSA9PT0gJ0NTUzFDb21wYXQnICYmIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCAmJiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQub2Zmc2V0V2lkdGgpIHtcbiAgICAgIHdpblcgPSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQub2Zmc2V0V2lkdGg7XG4gICAgICB3aW5IID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50Lm9mZnNldEhlaWdodDtcbiAgICB9XG4gICAgaWYgKHdpbmRvdy5pbm5lcldpZHRoICYmIHdpbmRvdy5pbm5lckhlaWdodCkge1xuICAgICAgd2luVyA9IHdpbmRvdy5pbm5lcldpZHRoO1xuICAgICAgd2luSCA9IHdpbmRvdy5pbm5lckhlaWdodDtcbiAgICB9XG4gICAgcmV0dXJuIHsgd2lkdGg6IHdpblcsIGhlaWdodDogd2luSCB9O1xuICB9XG5cbiAgc3RhdGljIGdldE9mZnNldFJpZ2h0KGVsZW06IEhUTUxFbGVtZW50KTogbnVtYmVyIHtcbiAgICBsZXQgZWxlbWVudCA9IGVsZW07XG4gICAgY29uc3Qgd2lkdGggPSBlbGVtZW50Lm9mZnNldFdpZHRoO1xuICAgIGxldCByaWdodCA9IDA7XG4gICAgd2hpbGUgKGVsZW1lbnQub2Zmc2V0UGFyZW50KSB7XG4gICAgICByaWdodCArPSBlbGVtZW50Lm9mZnNldExlZnQ7XG4gICAgICBlbGVtZW50ID0gZWxlbWVudC5vZmZzZXRQYXJlbnQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgfVxuICAgIHJpZ2h0ICs9IGVsZW1lbnQub2Zmc2V0TGVmdDtcbiAgICByaWdodCA9IEFYSHRtbFV0aWwuZ2V0RGltZW5zaW9ucygpLndpZHRoIC0gcmlnaHQ7XG4gICAgcmlnaHQgLT0gd2lkdGg7XG4gICAgcmV0dXJuIHJpZ2h0O1xuICB9XG5cbiAgc3RhdGljIGdldFVJRCgpOiBzdHJpbmcge1xuICAgIHJldHVybiAnZWwtJyArIEFYTWF0aFV0aWwucmFuZG9tUmFuZ2UoMTAwMDAwMDAwMCwgOTk5OTk5OTk5OSkudG9TdHJpbmcoKTtcbiAgfVxuXG5cbiAgc3RhdGljIGdldFJlbGF0ZWRQb3NpdGlvbihzb3VyY2U6IEhUTUxFbGVtZW50LCBwbGFjZW1lbnQ6IEFYUGxhY2VtZW50LCB0YXJnZXQ6IEhUTUxFbGVtZW50LCBhbGlnbm1lbnQ6IEFYUGxhY2VtZW50KTogQVhJUG9pbnQge1xuICAgIGNvbnN0IHJlc3VsdDogQVhJUG9pbnQgPSB7IHg6IDAsIHk6IDAgfTtcblxuICAgIGNvbnN0IHNvdXJjZVBvczogQVhQb2ludCA9IEFYSHRtbFV0aWwuZ2V0Qm91bmRpbmdSZWN0UG9pbnQoc291cmNlLCBwbGFjZW1lbnQpO1xuXG5cbiAgICBsZXQgdG9wOiBudW1iZXIgPSAwO1xuICAgIGxldCBsZWZ0OiBudW1iZXIgPSAwO1xuICAgIHN3aXRjaCAoYWxpZ25tZW50KSB7XG4gICAgICBjYXNlICd0b3Atc3RhcnQnOlxuICAgICAgICB0b3AgPSBzb3VyY2VQb3MueTtcbiAgICAgICAgbGVmdCA9IHNvdXJjZVBvcy54O1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3RvcC1taWRkbGUnOlxuICAgICAgICB0b3AgPSBzb3VyY2VQb3MueTtcbiAgICAgICAgbGVmdCA9IHNvdXJjZVBvcy54IC0gdGFyZ2V0Lm9mZnNldFdpZHRoIC8gMjtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICd0b3AtZW5kJzpcbiAgICAgICAgdG9wID0gc291cmNlUG9zLnk7XG4gICAgICAgIGxlZnQgPSBzb3VyY2VQb3MueCAtIHRhcmdldC5vZmZzZXRXaWR0aDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdjZW50ZXItZW5kJzpcbiAgICAgICAgdG9wID0gc291cmNlUG9zLnkgLSB0YXJnZXQub2Zmc2V0SGVpZ2h0IC8gMjtcbiAgICAgICAgbGVmdCA9IHNvdXJjZVBvcy54IC0gdGFyZ2V0Lm9mZnNldFdpZHRoO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2JvdHRvbS1lbmQnOlxuICAgICAgICB0b3AgPSBzb3VyY2VQb3MueSAtIHRhcmdldC5vZmZzZXRIZWlnaHQ7XG4gICAgICAgIGxlZnQgPSBzb3VyY2VQb3MueCAtIHRhcmdldC5vZmZzZXRXaWR0aDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdib3R0b20tbWlkZGxlJzpcbiAgICAgICAgdG9wID0gc291cmNlUG9zLnkgLSB0YXJnZXQub2Zmc2V0SGVpZ2h0O1xuICAgICAgICBsZWZ0ID0gc291cmNlUG9zLnggLSB0YXJnZXQub2Zmc2V0V2lkdGggLyAyO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2JvdHRvbS1zdGFydCc6XG4gICAgICAgIHRvcCA9IHNvdXJjZVBvcy55IC0gdGFyZ2V0Lm9mZnNldEhlaWdodDtcbiAgICAgICAgbGVmdCA9IHNvdXJjZVBvcy54O1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2NlbnRlci1zdGFydCc6XG4gICAgICAgIHRvcCA9IHNvdXJjZVBvcy55IC0gdGFyZ2V0Lm9mZnNldEhlaWdodCAvIDI7XG4gICAgICAgIGxlZnQgPSBzb3VyY2VQb3MueDtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICAgIHJlc3VsdC55ID0gdG9wO1xuICAgIHJlc3VsdC54ID0gbGVmdDtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cblxuICBzdGF0aWMgY29sbGlzaW9uKGE6IEhUTUxFbGVtZW50LCBiOiBIVE1MRWxlbWVudCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGFjID0gYS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICBjb25zdCBiYyA9IGIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG5cbiAgICBpZiAoYWMubGVmdCA8IGJjLmxlZnQgKyBiYy53aWR0aCAmJiBhYy5sZWZ0ICsgYWMud2lkdGggPiBiYy5sZWZ0ICYmXG4gICAgICBhYy50b3AgPCBiYy50b3AgKyBiYy5oZWlnaHQgJiYgYWMudG9wICsgYWMuaGVpZ2h0ID4gYmMudG9wKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbn1cbiJdfQ==
|
|
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHRtbC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY29yZXgvY29yZS9zcmMvbGliL3V0aWxzL2h0bWwvaHRtbC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7O0FBUTlELE1BQU0sT0FBTyxZQUFZOzswR0FBWixZQUFZOzJHQUFaLFlBQVksaUJBTFIsZ0JBQWdCLGFBQ3JCLFlBQVksYUFDWixnQkFBZ0I7MkdBR2YsWUFBWSxhQUZaLEVBQUUsWUFGSixDQUFDLFlBQVksQ0FBQzs0RkFJWixZQUFZO2tCQU54QixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLGdCQUFnQixDQUFDO29CQUNoQyxPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUM7b0JBQ3ZCLE9BQU8sRUFBRSxDQUFDLGdCQUFnQixDQUFDO29CQUMzQixTQUFTLEVBQUUsRUFBRTtpQkFDZCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQVhIdG1sVG9UZXh0UGlwZSB9IGZyb20gJy4uLy4uL3BpcGUvaHRtbFRvVGV4dC5waXBlJztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbQVhIdG1sVG9UZXh0UGlwZV0sXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICBleHBvcnRzOiBbQVhIdG1sVG9UZXh0UGlwZV0sXG4gIHByb3ZpZGVyczogW11cbn0pXG5leHBvcnQgY2xhc3MgQVhIdG1sTW9kdWxlIHsgfVxuIl19
|
|
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0aC11dGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWNvcmV4L2NvcmUvc3JjL2xpYi91dGlscy9tYXRoL21hdGgtdXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQU8sVUFBVTtJQUNuQixNQUFNLENBQUMsV0FBVyxDQUFDLEdBQVcsRUFBRSxHQUFXO1FBQ3ZDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxHQUFHLEdBQUcsR0FBRyxHQUFHLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDO0lBQzdELENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBBWE1hdGhVdGlsIHtcbiAgICBzdGF0aWMgcmFuZG9tUmFuZ2UobWluOiBudW1iZXIsIG1heDogbnVtYmVyKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIChtYXggLSBtaW4gKyAxKSArIG1pbik7XG4gICAgfVxufVxuIl19
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
// @dynamic
|
|
2
|
+
export class AXObjectUtil {
|
|
3
|
+
static deepJSONClone(obj) {
|
|
4
|
+
return obj ? JSON.parse(JSON.stringify(obj)) : null;
|
|
5
|
+
}
|
|
6
|
+
static deepCopy(obj) {
|
|
7
|
+
let copy;
|
|
8
|
+
// Handle the 3 simple types, and null or undefined
|
|
9
|
+
if (null == obj || 'object' !== typeof obj) {
|
|
10
|
+
return obj;
|
|
11
|
+
}
|
|
12
|
+
// Handle Date
|
|
13
|
+
if (obj instanceof Date) {
|
|
14
|
+
copy = new Date();
|
|
15
|
+
copy.setTime(obj.getTime());
|
|
16
|
+
return copy;
|
|
17
|
+
}
|
|
18
|
+
// Handle Array
|
|
19
|
+
if (obj instanceof Array) {
|
|
20
|
+
copy = [];
|
|
21
|
+
for (let i = 0, len = obj.length; i < len; i++) {
|
|
22
|
+
copy[i] = AXObjectUtil.deepCopy(obj[i]);
|
|
23
|
+
}
|
|
24
|
+
return copy;
|
|
25
|
+
}
|
|
26
|
+
// Handle Object
|
|
27
|
+
if (obj instanceof Object) {
|
|
28
|
+
copy = {};
|
|
29
|
+
for (const attr in obj) {
|
|
30
|
+
if (obj.hasOwnProperty(attr)) {
|
|
31
|
+
copy[attr] = AXObjectUtil.deepCopy(obj[attr]);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
return copy;
|
|
35
|
+
}
|
|
36
|
+
throw new Error('Unable to copy obj! Its type isn\'t supported.');
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
export function AXFetchProp(obj, prop) {
|
|
40
|
+
if (typeof obj === 'undefined') {
|
|
41
|
+
return false;
|
|
42
|
+
}
|
|
43
|
+
const index = prop.indexOf('.');
|
|
44
|
+
if (index > -1) {
|
|
45
|
+
return AXFetchProp(obj[prop.substring(0, index)], prop.substr(index + 1));
|
|
46
|
+
}
|
|
47
|
+
return obj[prop];
|
|
48
|
+
}
|
|
49
|
+
export function getPropByPath(obj, path, defaultVal) {
|
|
50
|
+
path = path
|
|
51
|
+
.replace(/\[/g, '.')
|
|
52
|
+
.replace(/]/g, '')
|
|
53
|
+
.split('.');
|
|
54
|
+
path.forEach((level) => {
|
|
55
|
+
if (obj) {
|
|
56
|
+
obj = obj[level];
|
|
57
|
+
}
|
|
58
|
+
});
|
|
59
|
+
if (obj === undefined) {
|
|
60
|
+
return defaultVal;
|
|
61
|
+
}
|
|
62
|
+
return obj;
|
|
63
|
+
}
|
|
64
|
+
export function setPropByPath(obj, path, value) {
|
|
65
|
+
if (Object(obj) !== obj) {
|
|
66
|
+
return obj;
|
|
67
|
+
} // When obj is not an object
|
|
68
|
+
// If not yet an array, get the keys from the string-path
|
|
69
|
+
if (!Array.isArray(path)) {
|
|
70
|
+
path = path.toString().match(/[^.[\]]+/g) || [];
|
|
71
|
+
}
|
|
72
|
+
path.slice(0, -1).reduce((a, c, i) => // Iterate all of them except the last one
|
|
73
|
+
Object(a[c]) === a[c] // Does the key exist and is its value an object?
|
|
74
|
+
// Yes: then follow that path
|
|
75
|
+
? a[c]
|
|
76
|
+
// No: create the key. Is the next key a potential array-index?
|
|
77
|
+
: a[c] = Math.abs(path[i + 1]) >> 0 === +path[i + 1]
|
|
78
|
+
? [] // Yes: assign a new array object
|
|
79
|
+
: {}, // No: assign a new plain object
|
|
80
|
+
obj)[path[path.length - 1]] = value; // Finally assign the value to the last key
|
|
81
|
+
return obj[path[0]]; // Return the top-level object to allow chaining
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LXV0aWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY29yZXgvY29yZS9zcmMvbGliL3V0aWxzL29iamVjdC9vYmplY3QtdXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxXQUFXO0FBQ1gsTUFBTSxPQUFPLFlBQVk7SUFDckIsTUFBTSxDQUFDLGFBQWEsQ0FBQyxHQUFRO1FBQ3pCLE9BQU8sR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ3hELENBQUM7SUFFRCxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUc7UUFDZixJQUFJLElBQUksQ0FBQztRQUNULG1EQUFtRDtRQUNuRCxJQUFJLElBQUksSUFBSSxHQUFHLElBQUksUUFBUSxLQUFLLE9BQU8sR0FBRyxFQUFFO1lBQUUsT0FBTyxHQUFHLENBQUM7U0FBRTtRQUMzRCxjQUFjO1FBQ2QsSUFBSSxHQUFHLFlBQVksSUFBSSxFQUFFO1lBQ3JCLElBQUksR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ2xCLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7WUFDNUIsT0FBTyxJQUFJLENBQUM7U0FDZjtRQUNELGVBQWU7UUFDZixJQUFJLEdBQUcsWUFBWSxLQUFLLEVBQUU7WUFDdEIsSUFBSSxHQUFHLEVBQUUsQ0FBQztZQUNWLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsR0FBRyxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUU7Z0JBQzVDLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxZQUFZLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFD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QUMsQ0FBQztZQUNoRCxDQUFDLENBQUMsRUFBRSxDQUFDLGlDQUFpQztZQUN0QyxDQUFDLENBQUMsRUFBRSxFQUFFLGdDQUFnQztJQUM5QyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLDJDQUEyQztJQUNwRixPQUFPLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGdEQUFnRDtBQUN6RSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQGR5bmFtaWNcbmV4cG9ydCBjbGFzcyBBWE9iamVjdFV0aWwge1xuICAgIHN0YXRpYyBkZWVwSlNPTkNsb25lKG9iajogYW55KTogYW55IHtcbiAgICAgICAgcmV0dXJuIG9iaiA/IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkob2JqKSkgOiBudWxsO1xuICAgIH1cblxuICAgIHN0YXRpYyBkZWVwQ29weShvYmopIHtcbiAgICAgICAgbGV0IGNvcHk7XG4gICAgICAgIC8vIEhhbmRsZSB0aGUgMyBzaW1wbGUgdHlwZXMsIGFuZCBudWxsIG9yIHVuZGVmaW5lZFxuICAgICAgICBpZiAobnVsbCA9PSBvYmogfHwgJ29iamVjdCcgIT09IHR5cGVvZiBvYmopIHsgcmV0dXJuIG9iajsgfVxuICAgICAgICAvLyBIYW5kbGUgRGF0ZVxuICAgICAgICBpZiAob2JqIGluc3RhbmNlb2YgRGF0ZSkge1xuICAgICAgICAgICAgY29weSA9IG5ldyBEYXRlKCk7XG4gICAgICAgICAgICBjb3B5LnNldFRpbWUob2JqLmdldFRpbWUoKSk7XG4gICAgICAgICAgICByZXR1cm4gY29weTtcbiAgICAgICAgfVxuICAgICAgICAvLyBIYW5kbGUgQXJyYXlcbiAgICAgICAgaWYgKG9iaiBpbnN0YW5jZW9mIEFycmF5KSB7XG4gICAgICAgICAgICBjb3B5ID0gW107XG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMCwgbGVuID0gb2JqLmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgICAgICAgICAgICAgY29weVtpXSA9IEFYT2JqZWN0VXRpbC5kZWVwQ29weShvYmpbaV0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGNvcHk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gSGFuZGxlIE9iamVjdFxuICAgICAgICBpZiAob2JqIGluc3RhbmNlb2YgT2JqZWN0KSB7XG4gICAgICAgICAgICBjb3B5ID0ge307XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGF0dHIgaW4gb2JqKSB7XG4gICAgICAgICAgICAgICAgaWYgKG9iai5oYXNPd25Qcm9wZXJ0eShhdHRyKSkgeyBjb3B5W2F0dHJdID0gQVhPYmplY3RVdGlsLmRlZXBDb3B5KG9ialthdHRyXSk7IH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBjb3B5O1xuICAgICAgICB9XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignVW5hYmxlIHRvIGNvcHkgb2JqISBJdHMgdHlwZSBpc25cXCd0IHN1cHBvcnRlZC4nKTtcbiAgICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBBWEZldGNoUHJvcChvYmosIHByb3A6IHN0cmluZykge1xuICAgIGlmICh0eXBlb2Ygb2JqID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGNvbnN0IGluZGV4ID0gcHJvcC5pbmRleE9mKCcuJyk7XG5cbiAgICBpZiAoaW5kZXggPiAtMSkge1xuICAgICAgICByZXR1cm4gQVhGZXRjaFByb3Aob2JqW3Byb3Auc3Vic3RyaW5nKDAsIGluZGV4KV0sIHByb3Auc3Vic3RyKGluZGV4ICsgMSkpO1xuICAgIH1cblxuICAgIHJldHVybiBvYmpbcHJvcF07XG59XG5cblxuXG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRQcm9wQnlQYXRoKG9iaiwgcGF0aCwgZGVmYXVsdFZhbD8pIHtcbiAgICBwYXRoID0gcGF0aFxuICAgICAgICAucmVwbGFjZSgvXFxbL2csICcuJylcbiAgICAgICAgLnJlcGxhY2UoL10vZywgJycpXG4gICAgICAgIC5zcGxpdCgnLicpO1xuXG4gICAgcGF0aC5mb3JFYWNoKChsZXZlbCkgPT4ge1xuICAgICAgICBpZiAob2JqKSB7XG4gICAgICAgICAgICBvYmogPSBvYmpbbGV2ZWxdO1xuICAgICAgICB9XG4gICAgfSk7XG5cbiAgICBpZiAob2JqID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcmV0dXJuIGRlZmF1bHRWYWw7XG4gICAgfVxuICAgIHJldHVybiBvYmo7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXRQcm9wQnlQYXRoKG9iaiwgcGF0aCwgdmFsdWUpIHtcbiAgICBpZiAoT2JqZWN0KG9iaikgIT09IG9iaikgeyByZXR1cm4gb2JqOyB9IC8vIFdoZW4gb2JqIGlzIG5vdCBhbiBvYmplY3RcbiAgICAvLyBJZiBub3QgeWV0IGFuIGFycmF5LCBnZXQgdGhlIGtleXMgZnJvbSB0aGUgc3RyaW5nLXBhdGhcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkocGF0aCkpIHsgcGF0aCA9IHBhdGgudG9TdHJpbmcoKS5tYXRjaCgvW14uW1xcXV0rL2cpIHx8IFtdOyB9XG4gICAgcGF0aC5zbGljZSgwLCAtMSkucmVkdWNlKChhLCBjLCBpKSA9PiAvLyBJdGVyYXRlIGFsbCBvZiB0aGVtIGV4Y2VwdCB0aGUgbGFzdCBvbmVcbiAgICAgICAgT2JqZWN0KGFbY10pID09PSBhW2NdIC8vIERvZXMgdGhlIGtleSBleGlzdCBhbmQgaXMgaXRzIHZhbHVlIGFuIG9iamVjdD9cbiAgICAgICAgICAgIC8vIFllczogdGhlbiBmb2xsb3cgdGhhdCBwYXRoXG4gICAgICAgICAgICA/IGFbY11cbiAgICAgICAgICAgIC8vIE5vOiBjcmVhdGUgdGhlIGtleS4gSXMgdGhlIG5leHQga2V5IGEgcG90ZW50aWFsIGFycmF5LWluZGV4P1xuICAgICAgICAgICAgOiBhW2NdID0gTWF0aC5hYnMocGF0aFtpICsgMV0pID4+IDAgPT09ICtwYXRoW2kgKyAxXVxuICAgICAgICAgICAgICAgID8gW10gLy8gWWVzOiBhc3NpZ24gYSBuZXcgYXJyYXkgb2JqZWN0XG4gICAgICAgICAgICAgICAgOiB7fSwgLy8gTm86IGFzc2lnbiBhIG5ldyBwbGFpbiBvYmplY3RcbiAgICAgICAgb2JqKVtwYXRoW3BhdGgubGVuZ3RoIC0gMV1dID0gdmFsdWU7IC8vIEZpbmFsbHkgYXNzaWduIHRoZSB2YWx1ZSB0byB0aGUgbGFzdCBrZXlcbiAgICByZXR1cm4gb2JqW3BhdGhbMF1dOyAvLyBSZXR1cm4gdGhlIHRvcC1sZXZlbCBvYmplY3QgdG8gYWxsb3cgY2hhaW5pbmdcbn1cblxuXG4iXX0=
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { Subject } from 'rxjs';
|
|
3
|
+
import { AXHtmlUtil } from '../html/html-util';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export class AXOnDemandPreloadService {
|
|
6
|
+
constructor() {
|
|
7
|
+
this.subject = new Subject();
|
|
8
|
+
this.tmp = AXHtmlUtil.getUID();
|
|
9
|
+
}
|
|
10
|
+
startPreload(routePath) {
|
|
11
|
+
const slices = [];
|
|
12
|
+
this.subject.next(routePath);
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
AXOnDemandPreloadService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AXOnDemandPreloadService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
16
|
+
AXOnDemandPreloadService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AXOnDemandPreloadService });
|
|
17
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AXOnDemandPreloadService, decorators: [{
|
|
18
|
+
type: Injectable
|
|
19
|
+
}], ctorParameters: function () { return []; } });
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib24tZGVtYW5kLXByZWxvYWQtc3RyYXRlZ3kuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Fjb3JleC9jb3JlL3NyYy9saWIvdXRpbHMvcmVuZGVyL29uLWRlbWFuZC1wcmVsb2FkLXN0cmF0ZWd5LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsT0FBTyxFQUFrQixNQUFNLE1BQU0sQ0FBQztBQUUvQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7O0FBTS9DLE1BQU0sT0FBTyx3QkFBd0I7SUFJbkM7UUFIQSxZQUFPLEdBQUcsSUFBSSxPQUFPLEVBQVUsQ0FBQztRQUk5QixJQUFJLENBQUMsR0FBRyxHQUFHLFVBQVUsQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUNqQyxDQUFDO0lBRUQsWUFBWSxDQUFDLFNBQWlCO1FBQzVCLE1BQU0sTUFBTSxHQUFhLEVBQUUsQ0FBQztRQUc1QixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUMvQixDQUFDOztzSEFiVSx3QkFBd0I7MEhBQXhCLHdCQUF3Qjs0RkFBeEIsd0JBQXdCO2tCQURwQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUHJlbG9hZGluZ1N0cmF0ZWd5LCBSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJqZWN0LCBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWVyZ2VNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBBWEh0bWxVdGlsIH0gZnJvbSAnLi4vaHRtbC9odG1sLXV0aWwnO1xuXG5cblxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQVhPbkRlbWFuZFByZWxvYWRTZXJ2aWNlIHtcbiAgc3ViamVjdCA9IG5ldyBTdWJqZWN0PHN0cmluZz4oKTtcbiAgdG1wOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy50bXAgPSBBWEh0bWxVdGlsLmdldFVJRCgpO1xuICB9XG5cbiAgc3RhcnRQcmVsb2FkKHJvdXRlUGF0aDogc3RyaW5nKSB7XG4gICAgY29uc3Qgc2xpY2VzOiBzdHJpbmdbXSA9IFtdO1xuICAgXG5cbiAgICB0aGlzLnN1YmplY3QubmV4dChyb3V0ZVBhdGgpO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import { ApplicationRef, ComponentFactoryResolver, Injectable, Injector, Compiler } from '@angular/core';
|
|
2
|
+
import { Router } from '@angular/router';
|
|
3
|
+
import { AXOnDemandPreloadService } from './on-demand-preload-strategy.service';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "@angular/router";
|
|
6
|
+
import * as i2 from "./on-demand-preload-strategy.service";
|
|
7
|
+
export class AXRenderService {
|
|
8
|
+
constructor(appRef, router, componentFactoryResolver, compiler, modulePreloadService, injector) {
|
|
9
|
+
this.appRef = appRef;
|
|
10
|
+
this.router = router;
|
|
11
|
+
this.componentFactoryResolver = componentFactoryResolver;
|
|
12
|
+
this.compiler = compiler;
|
|
13
|
+
this.modulePreloadService = modulePreloadService;
|
|
14
|
+
this.injector = injector;
|
|
15
|
+
}
|
|
16
|
+
appendComponent(componentClass, options = {}, location) {
|
|
17
|
+
const componentFactory = this.componentFactoryResolver.resolveComponentFactory(componentClass);
|
|
18
|
+
const componentRef = componentFactory.create(this.injector);
|
|
19
|
+
this.appRef.attachView(componentRef.hostView);
|
|
20
|
+
Object.assign(componentRef.instance, options);
|
|
21
|
+
//
|
|
22
|
+
const domElem = componentRef.hostView.rootNodes[0];
|
|
23
|
+
componentRef.onDestroy(() => {
|
|
24
|
+
this.appRef.detachView(componentRef.hostView);
|
|
25
|
+
});
|
|
26
|
+
if (location) {
|
|
27
|
+
location.appendChild(domElem);
|
|
28
|
+
}
|
|
29
|
+
else {
|
|
30
|
+
document.body.appendChild(domElem);
|
|
31
|
+
}
|
|
32
|
+
setTimeout(() => {
|
|
33
|
+
componentRef.changeDetectorRef.detectChanges();
|
|
34
|
+
}, 0);
|
|
35
|
+
return componentRef;
|
|
36
|
+
}
|
|
37
|
+
findLoadedComponentByRoute(path, timeoutTime = 10) {
|
|
38
|
+
const delay = 200;
|
|
39
|
+
const loop = timeoutTime * 1000 / delay;
|
|
40
|
+
return new Promise((resolve, reject) => {
|
|
41
|
+
let found = null;
|
|
42
|
+
let preload = false;
|
|
43
|
+
const theLoop = (i) => {
|
|
44
|
+
setTimeout(async () => {
|
|
45
|
+
found = await this._findLoadedComponentByRoute(path);
|
|
46
|
+
if (--i && found == null) {
|
|
47
|
+
if (!preload) {
|
|
48
|
+
this.modulePreloadService.startPreload(path);
|
|
49
|
+
preload = true;
|
|
50
|
+
}
|
|
51
|
+
theLoop(i);
|
|
52
|
+
}
|
|
53
|
+
else if (found) {
|
|
54
|
+
resolve(found);
|
|
55
|
+
}
|
|
56
|
+
else {
|
|
57
|
+
reject();
|
|
58
|
+
}
|
|
59
|
+
}, delay);
|
|
60
|
+
};
|
|
61
|
+
theLoop(loop);
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
async _findLoadedComponentByRoute(search) {
|
|
65
|
+
let found = null;
|
|
66
|
+
const f = (children, parentPath) => {
|
|
67
|
+
for (const p in children) {
|
|
68
|
+
if (children.hasOwnProperty(p)) {
|
|
69
|
+
const route = children[p];
|
|
70
|
+
const pp = (route.path != '' && route.path != null) ? parentPath + '/' + route.path : parentPath;
|
|
71
|
+
if (pp == search && !route._loadedConfig && route.component) {
|
|
72
|
+
found = route;
|
|
73
|
+
return;
|
|
74
|
+
}
|
|
75
|
+
else if (route._loadedConfig || route.children) {
|
|
76
|
+
f(route.children || route._loadedConfig.routes, pp);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
};
|
|
81
|
+
for (const p in this.router.config) {
|
|
82
|
+
if (this.router.config.hasOwnProperty(p)) {
|
|
83
|
+
const route = this.router.config[p];
|
|
84
|
+
if (route.path === search && route.component) {
|
|
85
|
+
found = route;
|
|
86
|
+
}
|
|
87
|
+
else if (route['_loadedConfig'] || route.children) {
|
|
88
|
+
f(route.children || route['_loadedConfig'].routes, route.path);
|
|
89
|
+
}
|
|
90
|
+
if (found)
|
|
91
|
+
break;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
return found;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
AXRenderService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AXRenderService, deps: [{ token: i0.ApplicationRef }, { token: i1.Router }, { token: i0.ComponentFactoryResolver }, { token: i0.Compiler }, { token: i2.AXOnDemandPreloadService }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
98
|
+
AXRenderService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AXRenderService, providedIn: 'root' });
|
|
99
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AXRenderService, decorators: [{
|
|
100
|
+
type: Injectable,
|
|
101
|
+
args: [{ providedIn: 'root' }]
|
|
102
|
+
}], ctorParameters: function () { return [{ type: i0.ApplicationRef }, { type: i1.Router }, { type: i0.ComponentFactoryResolver }, { type: i0.Compiler }, { type: i2.AXOnDemandPreloadService }, { type: i0.Injector }]; } });
|
|
103
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVuZGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY29yZXgvY29yZS9zcmMvbGliL3V0aWxzL3JlbmRlci9yZW5kZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsY0FBYyxFQUFFLHdCQUF3QixFQUFnQixVQUFVLEVBQ2xFLFFBQVEsRUFBeUIsUUFBUSxFQUM1QyxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsTUFBTSxFQUFTLE1BQU0saUJBQWlCLENBQUM7QUFDaEQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sc0NBQXNDLENBQUM7Ozs7QUFLaEYsTUFBTSxPQUFPLGVBQWU7SUFDeEIsWUFDWSxNQUFzQixFQUN0QixNQUFjLEVBQ2Qsd0JBQWtELEVBQ2xELFFBQWtCLEVBQ2xCLG9CQUE4QyxFQUM5QyxRQUFrQjtRQUxsQixXQUFNLEdBQU4sTUFBTSxDQUFnQjtRQUN0QixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsNkJBQXdCLEdBQXhCLHdCQUF3QixDQUEwQjtRQUNsRCxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ2xCLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBMEI7UUFDOUMsYUFBUSxHQUFSLFFBQVEsQ0FBVTtJQUM5QixDQUFDO0lBSUQsZUFBZSxDQUNYLGNBQXVCLEVBQ3ZCLFVBQWUsRUFBRSxFQUNqQixRQUFrQjtRQUVsQixNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyx1QkFBdUIsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUMvRixNQUFNLFlBQVksR0FBRyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzVELElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM5QyxNQUFNLENBQUMsTUFBTSxD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LENBQUMsYUFBYSxJQUFJLEtBQUssQ0FBQyxRQUFRLEVBQUU7d0JBQzlDLENBQUMsQ0FBQyxLQUFLLENBQUMsUUFBUSxJQUFJLEtBQUssQ0FBQyxhQUFhLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDO3FCQUN2RDtpQkFDSjthQUNKO1FBQ0wsQ0FBQyxDQUFDO1FBRUYsS0FBSyxNQUFNLENBQUMsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRTtZQUNoQyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsRUFBRTtnQkFDdEMsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3BDLElBQUksS0FBSyxDQUFDLElBQUksS0FBSyxNQUFNLElBQUksS0FBSyxDQUFDLFNBQVMsRUFBRTtvQkFDMUMsS0FBSyxHQUFHLEtBQUssQ0FBQztpQkFDakI7cUJBQ0ksSUFBSSxLQUFLLENBQUMsZUFBZSxDQUFDLElBQUksS0FBSyxDQUFDLFFBQVEsRUFBRTtvQkFDL0MsQ0FBQyxDQUFDLEtBQUssQ0FBQyxRQUFRLElBQUksS0FBSyxDQUFDLGVBQWUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7aUJBQ2xFO2dCQUNELElBQUksS0FBSztvQkFDTCxNQUFNO2FBQ2I7U0FDSjtRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUM7OzZHQWpHUSxlQUFlO2lIQUFmLGVBQWUsY0FERixNQUFNOzRGQUNuQixlQUFlO2tCQUQzQixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQXBwbGljYXRpb25SZWYsIENvbXBvbmVudEZhY3RvcnlSZXNvbHZlciwgQ29tcG9uZW50UmVmLCBJbmplY3RhYmxlLFxuICAgIEluamVjdG9yLCBFbWJlZGRlZFZpZXdSZWYsIFR5cGUsIENvbXBpbGVyLCBOZ01vZHVsZUZhY3Rvcnlcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSb3V0ZXIsIFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IEFYT25EZW1hbmRQcmVsb2FkU2VydmljZSB9IGZyb20gJy4vb24tZGVtYW5kLXByZWxvYWQtc3RyYXRlZ3kuc2VydmljZSc7XG5cblxuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIEFYUmVuZGVyU2VydmljZSB7XG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgYXBwUmVmOiBBcHBsaWNhdGlvblJlZixcbiAgICAgICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICAgICAgcHJpdmF0ZSBjb21wb25lbnRGYWN0b3J5UmVzb2x2ZXI6IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcbiAgICAgICAgcHJpdmF0ZSBjb21waWxlcjogQ29tcGlsZXIsXG4gICAgICAgIHByaXZhdGUgbW9kdWxlUHJlbG9hZFNlcnZpY2U6IEFYT25EZW1hbmRQcmVsb2FkU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IpIHtcbiAgICB9XG5cblxuXG4gICAgYXBwZW5kQ29tcG9uZW50PFQ+KFxuICAgICAgICBjb21wb25lbnRDbGFzczogVHlwZTxUPixcbiAgICAgICAgb3B0aW9uczogYW55ID0ge30sXG4gICAgICAgIGxvY2F0aW9uPzogRWxlbWVudCk6IENvbXBvbmVudFJlZjxhbnk+IHtcblxuICAgICAgICBjb25zdCBjb21wb25lbnRGYWN0b3J5ID0gdGhpcy5jb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkoY29tcG9uZW50Q2xhc3MpO1xuICAgICAgICBjb25zdCBjb21wb25lbnRSZWYgPSBjb21wb25lbnRGYWN0b3J5LmNyZWF0ZSh0aGlzLmluamVjdG9yKTtcbiAgICAgICAgdGhpcy5hcHBSZWYuYXR0YWNoVmlldyhjb21wb25lbnRSZWYuaG9zdFZpZXcpO1xuICAgICAgICBPYmplY3QuYXNzaWduKGNvbXBvbmVudFJlZi5pbnN0YW5jZSwgb3B0aW9ucyk7XG4gICAgICAgIC8vXG4gICAgICAgIGNvbnN0IGRvbUVsZW0gPSAoY29tcG9uZW50UmVmLmhvc3RWaWV3IGFzIEVtYmVkZGVkVmlld1JlZjxhbnk+KS5yb290Tm9kZXNbMF0gYXMgSFRNTEVsZW1lbnQ7XG4gICAgICAgIGNvbXBvbmVudFJlZi5vbkRlc3Ryb3koKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5hcHBSZWYuZGV0YWNoVmlldyhjb21wb25lbnRSZWYuaG9zdFZpZXcpO1xuICAgICAgICB9KTtcbiAgICAgICAgaWYgKGxvY2F0aW9uKSB7XG4gICAgICAgICAgICBsb2NhdGlvbi5hcHBlbmRDaGlsZChkb21FbGVtKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZG9tRWxlbSk7XG4gICAgICAgIH1cbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICBjb21wb25lbnRSZWYuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICB9LCAwKTtcbiAgICAgICAgcmV0dXJuIGNvbXBvbmVudFJlZjtcbiAgICB9XG5cbiAgICBmaW5kTG9hZGVkQ29tcG9uZW50QnlSb3V0ZShwYXRoOiBzdHJpbmcsIHRpbWVvdXRUaW1lOiBudW1iZXIgPSAxMCk6IFByb21pc2U8Um91dGU+IHtcbiAgICAgICAgY29uc3QgZGVsYXkgPSAyMDA7XG4gICAgICAgIGNvbnN0IGxvb3AgPSB0aW1lb3V0VGltZSAqIDEwMDAgLyBkZWxheTtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgICAgIGxldCBmb3VuZDogUm91dGUgPSBudWxsO1xuICAgICAgICAgICAgbGV0IHByZWxvYWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICAgICAgICAgIGNvbnN0IHRoZUxvb3AgPSAoaSkgPT4ge1xuICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoYXN5bmMgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBmb3VuZCA9IGF3YWl0IHRoaXMuX2ZpbmRMb2FkZWRDb21wb25lbnRCeVJvdXRlKHBhdGgpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoLS1pICYmIGZvdW5kID09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghcHJlbG9hZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubW9kdWxlUHJlbG9hZFNlcnZpY2Uuc3RhcnRQcmVsb2FkKHBhdGgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZWxvYWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgdGhlTG9vcChpKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChmb3VuZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZShmb3VuZCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZWplY3QoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sIGRlbGF5KTtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICB0aGVMb29wKGxvb3ApO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFzeW5jIF9maW5kTG9hZGVkQ29tcG9uZW50QnlSb3V0ZShzZWFyY2gpIHtcblxuICAgICAgICBsZXQgZm91bmQ6IFJvdXRlID0gbnVsbDtcbiAgICAgICAgY29uc3QgZiA9IChjaGlsZHJlbiwgcGFyZW50UGF0aCkgPT4ge1xuICAgICAgICAgICAgZm9yIChjb25zdCBwIGluIGNoaWxkcmVuKSB7XG4gICAgICAgICAgICAgICAgaWYgKGNoaWxkcmVuLmhhc093blByb3BlcnR5KHApKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJvdXRlID0gY2hpbGRyZW5bcF07XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHBwID0gKHJvdXRlLnBhdGggIT0gJycgJiYgcm91dGUucGF0aCAhPSBudWxsKSA/IHBhcmVudFBhdGggKyAnLycgKyByb3V0ZS5wYXRoIDogcGFyZW50UGF0aDtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHBwID09IHNlYXJjaCAmJiAhcm91dGUuX2xvYWRlZENvbmZpZyAmJiByb3V0ZS5jb21wb25lbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvdW5kID0gcm91dGU7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAocm91dGUuX2xvYWRlZENvbmZpZyB8fCByb3V0ZS5jaGlsZHJlbikge1xuICAgICAgICAgICAgICAgICAgICAgICAgZihyb3V0ZS5jaGlsZHJlbiB8fCByb3V0ZS5fbG9hZGVkQ29uZmlnLnJvdXRlcywgcHApO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuXG4gICAgICAgIGZvciAoY29uc3QgcCBpbiB0aGlzLnJvdXRlci5jb25maWcpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLnJvdXRlci5jb25maWcuaGFzT3duUHJvcGVydHkocCkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCByb3V0ZSA9IHRoaXMucm91dGVyLmNvbmZpZ1twXTtcbiAgICAgICAgICAgICAgICBpZiAocm91dGUucGF0aCA9PT0gc2VhcmNoICYmIHJvdXRlLmNvbXBvbmVudCkge1xuICAgICAgICAgICAgICAgICAgICBmb3VuZCA9IHJvdXRlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIGlmIChyb3V0ZVsnX2xvYWRlZENvbmZpZyddIHx8IHJvdXRlLmNoaWxkcmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIGYocm91dGUuY2hpbGRyZW4gfHwgcm91dGVbJ19sb2FkZWRDb25maWcnXS5yb3V0ZXMsIHJvdXRlLnBhdGgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoZm91bmQpXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmb3VuZDtcbiAgICB9XG5cbn1cbiJdfQ==
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { AXRenderService } from './render.service';
|
|
3
|
+
import { AXOnDemandPreloadService } from './on-demand-preload-strategy.service';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
// @dynamic
|
|
6
|
+
export function getOnDemandPreloadServiceFactory() {
|
|
7
|
+
return new AXOnDemandPreloadService();
|
|
8
|
+
}
|
|
9
|
+
export class AXRenderingModule {
|
|
10
|
+
}
|
|
11
|
+
AXRenderingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AXRenderingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
12
|
+
AXRenderingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AXRenderingModule });
|
|
13
|
+
AXRenderingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AXRenderingModule, providers: [
|
|
14
|
+
{
|
|
15
|
+
provide: AXOnDemandPreloadService,
|
|
16
|
+
useFactory: getOnDemandPreloadServiceFactory
|
|
17
|
+
},
|
|
18
|
+
AXRenderService
|
|
19
|
+
], imports: [[]] });
|
|
20
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AXRenderingModule, decorators: [{
|
|
21
|
+
type: NgModule,
|
|
22
|
+
args: [{
|
|
23
|
+
imports: [],
|
|
24
|
+
exports: [],
|
|
25
|
+
declarations: [],
|
|
26
|
+
providers: [
|
|
27
|
+
{
|
|
28
|
+
provide: AXOnDemandPreloadService,
|
|
29
|
+
useFactory: getOnDemandPreloadServiceFactory
|
|
30
|
+
},
|
|
31
|
+
AXRenderService
|
|
32
|
+
],
|
|
33
|
+
}]
|
|
34
|
+
}] });
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVuZGVyaW5nLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Fjb3JleC9jb3JlL3NyYy9saWIvdXRpbHMvcmVuZGVyL3JlbmRlcmluZy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDbkQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sc0NBQXNDLENBQUM7O0FBR2hGLFdBQVc7QUFDWCxNQUFNLFVBQVUsZ0NBQWdDO0lBQzVDLE9BQU8sSUFBSSx3QkFBd0IsRUFBRSxDQUFDO0FBQzFDLENBQUM7QUFjRCxNQUFNLE9BQU8saUJBQWlCOzsrR0FBakIsaUJBQWlCO2dIQUFqQixpQkFBaUI7Z0hBQWpCLGlCQUFpQixhQVJmO1FBQ1A7WUFDSSxPQUFPLEVBQUUsd0JBQXdCO1lBQ2pDLFVBQVUsRUFBRSxnQ0FBZ0M7U0FDL0M7UUFDRCxlQUFlO0tBQ2xCLFlBVFEsRUFBRTs0RkFXRixpQkFBaUI7a0JBWjdCLFFBQVE7bUJBQUM7b0JBQ04sT0FBTyxFQUFFLEVBQUU7b0JBQ1gsT0FBTyxFQUFFLEVBQUU7b0JBQ1gsWUFBWSxFQUFFLEVBQUU7b0JBQ2hCLFNBQVMsRUFBRTt3QkFDUDs0QkFDSSxPQUFPLEVBQUUsd0JBQXdCOzRCQUNqQyxVQUFVLEVBQUUsZ0NBQWdDO3lCQUMvQzt3QkFDRCxlQUFlO3FCQUNsQjtpQkFDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWFJlbmRlclNlcnZpY2UgfSBmcm9tICcuL3JlbmRlci5zZXJ2aWNlJztcbmltcG9ydCB7IEFYT25EZW1hbmRQcmVsb2FkU2VydmljZSB9IGZyb20gJy4vb24tZGVtYW5kLXByZWxvYWQtc3RyYXRlZ3kuc2VydmljZSc7XG5cblxuLy8gQGR5bmFtaWNcbmV4cG9ydCBmdW5jdGlvbiBnZXRPbkRlbWFuZFByZWxvYWRTZXJ2aWNlRmFjdG9yeSgpIHtcbiAgICByZXR1cm4gbmV3IEFYT25EZW1hbmRQcmVsb2FkU2VydmljZSgpO1xufVxuXG5ATmdNb2R1bGUoe1xuICAgIGltcG9ydHM6IFtdLFxuICAgIGV4cG9ydHM6IFtdLFxuICAgIGRlY2xhcmF0aW9uczogW10sXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IEFYT25EZW1hbmRQcmVsb2FkU2VydmljZSxcbiAgICAgICAgICAgIHVzZUZhY3Rvcnk6IGdldE9uRGVtYW5kUHJlbG9hZFNlcnZpY2VGYWN0b3J5XG4gICAgICAgIH0sXG4gICAgICAgIEFYUmVuZGVyU2VydmljZVxuICAgIF0sXG59KVxuZXhwb3J0IGNsYXNzIEFYUmVuZGVyaW5nTW9kdWxlIHtcblxufVxuIl19
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { Directive, HostListener, Input } from '@angular/core';
|
|
2
|
+
import { ElementRef } from '@angular/core';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class AXHorizontalScrollDirective {
|
|
5
|
+
constructor(el) {
|
|
6
|
+
this.el = el;
|
|
7
|
+
this.scrollValue = 40;
|
|
8
|
+
}
|
|
9
|
+
onMouseWheel(e) {
|
|
10
|
+
const delta = Math.max(-1, Math.min(1, e.wheelDelta || -e.detail));
|
|
11
|
+
this.el.nativeElement.scrollLeft -= delta * this.scrollValue;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
AXHorizontalScrollDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AXHorizontalScrollDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
15
|
+
AXHorizontalScrollDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.11", type: AXHorizontalScrollDirective, selector: "[horizontalScroll]", inputs: { scrollValue: ["horizontalScroll", "scrollValue"] }, host: { listeners: { "wheel": "onMouseWheel($event)" } }, ngImport: i0 });
|
|
16
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AXHorizontalScrollDirective, decorators: [{
|
|
17
|
+
type: Directive,
|
|
18
|
+
args: [{
|
|
19
|
+
// tslint:disable-next-line: directive-selector
|
|
20
|
+
selector: '[horizontalScroll]'
|
|
21
|
+
}]
|
|
22
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { scrollValue: [{
|
|
23
|
+
type: Input,
|
|
24
|
+
args: ['horizontalScroll']
|
|
25
|
+
}], onMouseWheel: [{
|
|
26
|
+
type: HostListener,
|
|
27
|
+
args: ['wheel', ['$event']]
|
|
28
|
+
}] } });
|
|
29
|
+
export class AXVerticalScrollDirective {
|
|
30
|
+
constructor(el) {
|
|
31
|
+
this.el = el;
|
|
32
|
+
this.scrollValue = 40;
|
|
33
|
+
}
|
|
34
|
+
onMouseWheel(e) {
|
|
35
|
+
const delta = Math.max(-1, Math.min(1, e.wheelDelta || -e.detail));
|
|
36
|
+
this.el.nativeElement.scrollTop -= delta * this.scrollValue;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
AXVerticalScrollDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AXVerticalScrollDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
40
|
+
AXVerticalScrollDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.11", type: AXVerticalScrollDirective, selector: "[verticalScroll]", inputs: { scrollValue: ["verticalScroll", "scrollValue"] }, host: { listeners: { "wheel": "onMouseWheel($event)" } }, ngImport: i0 });
|
|
41
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AXVerticalScrollDirective, decorators: [{
|
|
42
|
+
type: Directive,
|
|
43
|
+
args: [{
|
|
44
|
+
// tslint:disable-next-line: directive-selector
|
|
45
|
+
selector: '[verticalScroll]'
|
|
46
|
+
}]
|
|
47
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { scrollValue: [{
|
|
48
|
+
type: Input,
|
|
49
|
+
args: ['verticalScroll']
|
|
50
|
+
}], onMouseWheel: [{
|
|
51
|
+
type: HostListener,
|
|
52
|
+
args: ['wheel', ['$event']]
|
|
53
|
+
}] } });
|
|
54
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nyb2xsLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Fjb3JleC9jb3JlL3NyYy9saWIvdXRpbHMvc2Nyb2xsL3Njcm9sbC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9ELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBTTNDLE1BQU0sT0FBTywyQkFBMkI7SUFDdEMsWUFBb0IsRUFBMkI7UUFBM0IsT0FBRSxHQUFGLEVBQUUsQ0FBeUI7UUFHL0MsZ0JBQVcsR0FBRyxFQUFFLENBQUM7SUFIa0MsQ0FBQztJQU1wRCxZQUFZLENBQUMsQ0FBQztRQUNaLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFVBQVUsSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQ25FLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLFVBQVUsSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUMvRCxDQUFDOzt5SEFWVSwyQkFBMkI7NkdBQTNCLDJCQUEyQjs0RkFBM0IsMkJBQTJCO2tCQUp2QyxTQUFTO21CQUFDO29CQUNULCtDQUErQztvQkFDL0MsUUFBUSxFQUFFLG9CQUFvQjtpQkFDL0I7aUdBS0MsV0FBVztzQkFEVixLQUFLO3VCQUFDLGtCQUFrQjtnQkFJekIsWUFBWTtzQkFEWCxZQUFZO3VCQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQzs7QUFVbkMsTUFBTSxPQUFPLHlCQUF5QjtJQUNwQyxZQUFvQixFQUEyQjtRQUEzQixPQUFFLEdBQUYsRUFBRSxDQUF5QjtRQUcvQyxnQkFBVyxHQUFHLEVBQUUsQ0FBQztJQUhrQyxDQUFDO0lBTXBELFlBQVksQ0FBQyxDQUFDO1FBQ1osTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsVUFBVSxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDbkUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsU0FBUyxJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzlELENBQUM7O3VIQVZVLHlCQUF5QjsyR0FBekIseUJBQXlCOzRGQUF6Qix5QkFBeUI7a0JBSnJDLFNBQVM7bUJBQUM7b0JBQ1QsK0NBQStDO29CQUMvQyxRQUFRLEVBQUUsa0JBQWtCO2lCQUM3QjtpR0FLQyxXQUFXO3NCQURWLEtBQUs7dUJBQUMsZ0JBQWdCO2dCQUl2QixZQUFZO3NCQURYLFlBQVk7dUJBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBIb3N0TGlzdGVuZXIsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBFbGVtZW50UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBEaXJlY3RpdmUoe1xuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IGRpcmVjdGl2ZS1zZWxlY3RvclxuICBzZWxlY3RvcjogJ1tob3Jpem9udGFsU2Nyb2xsXSdcbn0pXG5leHBvcnQgY2xhc3MgQVhIb3Jpem9udGFsU2Nyb2xsRGlyZWN0aXZlIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBlbDogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4pIHsgfVxuXG4gIEBJbnB1dCgnaG9yaXpvbnRhbFNjcm9sbCcpXG4gIHNjcm9sbFZhbHVlID0gNDA7XG5cbiAgQEhvc3RMaXN0ZW5lcignd2hlZWwnLCBbJyRldmVudCddKVxuICBvbk1vdXNlV2hlZWwoZSkge1xuICAgIGNvbnN0IGRlbHRhID0gTWF0aC5tYXgoLTEsIE1hdGgubWluKDEsIGUud2hlZWxEZWx0YSB8fCAtZS5kZXRhaWwpKTtcbiAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsTGVmdCAtPSBkZWx0YSAqIHRoaXMuc2Nyb2xsVmFsdWU7XG4gIH1cbn1cbkBEaXJlY3RpdmUoe1xuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IGRpcmVjdGl2ZS1zZWxlY3RvclxuICBzZWxlY3RvcjogJ1t2ZXJ0aWNhbFNjcm9sbF0nXG59KVxuZXhwb3J0IGNsYXNzIEFYVmVydGljYWxTY3JvbGxEaXJlY3RpdmUge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVsOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PikgeyB9XG5cbiAgQElucHV0KCd2ZXJ0aWNhbFNjcm9sbCcpXG4gIHNjcm9sbFZhbHVlID0gNDA7XG5cbiAgQEhvc3RMaXN0ZW5lcignd2hlZWwnLCBbJyRldmVudCddKVxuICBvbk1vdXNlV2hlZWwoZSkge1xuICAgIGNvbnN0IGRlbHRhID0gTWF0aC5tYXgoLTEsIE1hdGgubWluKDEsIGUud2hlZWxEZWx0YSB8fCAtZS5kZXRhaWwpKTtcbiAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsVG9wIC09IGRlbHRhICogdGhpcy5zY3JvbGxWYWx1ZTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { AXHorizontalScrollDirective, AXVerticalScrollDirective } from './scroll.directive';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export class AXScrollModule {
|
|
6
|
+
}
|
|
7
|
+
AXScrollModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AXScrollModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
8
|
+
AXScrollModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AXScrollModule, declarations: [AXHorizontalScrollDirective, AXVerticalScrollDirective], imports: [CommonModule], exports: [AXHorizontalScrollDirective, AXVerticalScrollDirective] });
|
|
9
|
+
AXScrollModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AXScrollModule, providers: [], imports: [[CommonModule]] });
|
|
10
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AXScrollModule, decorators: [{
|
|
11
|
+
type: NgModule,
|
|
12
|
+
args: [{
|
|
13
|
+
declarations: [AXHorizontalScrollDirective, AXVerticalScrollDirective],
|
|
14
|
+
imports: [CommonModule],
|
|
15
|
+
exports: [AXHorizontalScrollDirective, AXVerticalScrollDirective],
|
|
16
|
+
providers: []
|
|
17
|
+
}]
|
|
18
|
+
}] });
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nyb2xsLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Fjb3JleC9jb3JlL3NyYy9saWIvdXRpbHMvc2Nyb2xsL3Njcm9sbC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLDJCQUEyQixFQUFFLHlCQUF5QixFQUFFLE1BQU0sb0JBQW9CLENBQUM7O0FBUTVGLE1BQU0sT0FBTyxjQUFjOzs0R0FBZCxjQUFjOzZHQUFkLGNBQWMsaUJBTFYsMkJBQTJCLEVBQUUseUJBQXlCLGFBQzNELFlBQVksYUFDWiwyQkFBMkIsRUFBRSx5QkFBeUI7NkdBR3JELGNBQWMsYUFGZCxFQUFFLFlBRkosQ0FBQyxZQUFZLENBQUM7NEZBSVosY0FBYztrQkFOMUIsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsQ0FBQywyQkFBMkIsRUFBRSx5QkFBeUIsQ0FBQztvQkFDdEUsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO29CQUN2QixPQUFPLEVBQUUsQ0FBQywyQkFBMkIsRUFBRSx5QkFBeUIsQ0FBQztvQkFDakUsU0FBUyxFQUFFLEVBQUU7aUJBQ2QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEFYSG9yaXpvbnRhbFNjcm9sbERpcmVjdGl2ZSwgQVhWZXJ0aWNhbFNjcm9sbERpcmVjdGl2ZSB9IGZyb20gJy4vc2Nyb2xsLmRpcmVjdGl2ZSc7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW0FYSG9yaXpvbnRhbFNjcm9sbERpcmVjdGl2ZSwgQVhWZXJ0aWNhbFNjcm9sbERpcmVjdGl2ZV0sXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICBleHBvcnRzOiBbQVhIb3Jpem9udGFsU2Nyb2xsRGlyZWN0aXZlLCBBWFZlcnRpY2FsU2Nyb2xsRGlyZWN0aXZlXSxcbiAgcHJvdmlkZXJzOiBbXVxufSlcbmV4cG9ydCBjbGFzcyBBWFNjcm9sbE1vZHVsZSB7IH1cbiJdfQ==
|