ng-ipa-library 2.0.1 → 3.0.0
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/{esm2020 → esm2022}/lib/core/components/loading/loading.component.mjs +37 -37
- package/{esm2020 → esm2022}/lib/core/interceptors/error.interceptor.mjs +46 -46
- package/{esm2020 → esm2022}/lib/core/interceptors/loading.interceptor.mjs +58 -58
- package/{esm2020 → esm2022}/lib/core/interceptors/myIPAToken.interceptor.mjs +25 -25
- package/{esm2020 → esm2022}/lib/core/interceptors/token.interceptor.mjs +81 -81
- package/{esm2020 → esm2022}/lib/core/services/auth.service.mjs +62 -62
- package/{esm2020 → esm2022}/lib/core/services/error.service.mjs +55 -55
- package/{esm2020 → esm2022}/lib/core/services/loader.service.mjs +24 -24
- package/{esm2020 → esm2022}/lib/core/services/token.service.mjs +22 -22
- package/{esm2020 → esm2022}/lib/generate-form/generate-form.component.mjs +153 -153
- package/{esm2020 → esm2022}/lib/ipa-form/datepicker/datepicker.component.mjs +88 -88
- package/{esm2020 → esm2022}/lib/ipa-form/datepicker/gregorian-datepicker/gregorian-datepicker.component.mjs +27 -27
- package/{esm2020 → esm2022}/lib/ipa-form/datepicker/gregorian-datepicker/gregorian18n.mjs +38 -38
- package/{esm2020 → esm2022}/lib/ipa-form/datepicker/hijri-datepicker/IslamicI18n.mjs +38 -38
- package/{esm2020 → esm2022}/lib/ipa-form/datepicker/hijri-datepicker/hijri-datepicker.component.mjs +27 -27
- package/{esm2020 → esm2022}/lib/ipa-form/dropdown-input/dropdown-input.component.mjs +84 -84
- package/{esm2020 → esm2022}/lib/ipa-form/file-upload/file-upload.component.mjs +142 -142
- package/{esm2020 → esm2022}/lib/ipa-form/ipa-form.service.mjs +290 -290
- package/{esm2020 → esm2022}/lib/ipa-form/recaptcha/recaptcha.component.mjs +55 -55
- package/{esm2020 → esm2022}/lib/ipa-form/text-input/text-input.component.mjs +93 -93
- package/{esm2020 → esm2022}/lib/ipa-form/textarea-input/textarea-input.component.mjs +76 -76
- package/{esm2020 → esm2022}/lib/models/apiException.mjs +1 -1
- package/{esm2020 → esm2022}/lib/models/apiResponse.mjs +1 -1
- package/{esm2020 → esm2022}/lib/models/breadcrumbs.model.mjs +1 -1
- package/{esm2020 → esm2022}/lib/models/decodedToken.model.mjs +1 -1
- package/{esm2020 → esm2022}/lib/models/exceptionUrl.model.mjs +1 -1
- package/{esm2020 → esm2022}/lib/models/generateForm.model.mjs +1 -1
- package/{esm2020 → esm2022}/lib/models/pagedResult.mjs +1 -1
- package/{esm2020 → esm2022}/lib/models/user.model.mjs +1 -1
- package/{esm2020 → esm2022}/lib/ng-ipa-library.module.mjs +107 -107
- package/{esm2020 → esm2022}/lib/pipes/hijri-date.pipe.mjs +18 -18
- package/{esm2020 → esm2022}/lib/pipes/pipes.module.mjs +16 -16
- package/{esm2020 → esm2022}/lib/services/breadcrumbs.service.mjs +149 -149
- package/{esm2020 → esm2022}/lib/services/common.service.mjs +51 -51
- package/{esm2020 → esm2022}/lib/share-button/share-button.component.mjs +35 -35
- package/{esm2020 → esm2022}/lib/share-button/share-button.module.mjs +50 -50
- package/{esm2020 → esm2022}/ng-ipa-library.mjs +4 -4
- package/{esm2020 → esm2022}/public-api.mjs +41 -41
- package/{fesm2020 → fesm2022}/ng-ipa-library.mjs +1739 -1739
- package/fesm2022/ng-ipa-library.mjs.map +1 -0
- package/index.d.ts +5 -5
- package/lib/core/components/loading/loading.component.d.ts +13 -13
- package/lib/core/interceptors/error.interceptor.d.ts +12 -12
- package/lib/core/interceptors/loading.interceptor.d.ts +14 -14
- package/lib/core/interceptors/myIPAToken.interceptor.d.ts +11 -11
- package/lib/core/interceptors/token.interceptor.d.ts +19 -19
- package/lib/core/services/auth.service.d.ts +18 -18
- package/lib/core/services/error.service.d.ts +19 -19
- package/lib/core/services/loader.service.d.ts +12 -12
- package/lib/core/services/token.service.d.ts +10 -10
- package/lib/generate-form/generate-form.component.d.ts +34 -34
- package/lib/ipa-form/datepicker/datepicker.component.d.ts +37 -37
- package/lib/ipa-form/datepicker/gregorian-datepicker/gregorian-datepicker.component.d.ts +7 -7
- package/lib/ipa-form/datepicker/gregorian-datepicker/gregorian18n.d.ts +11 -11
- package/lib/ipa-form/datepicker/hijri-datepicker/IslamicI18n.d.ts +11 -11
- package/lib/ipa-form/datepicker/hijri-datepicker/hijri-datepicker.component.d.ts +7 -7
- package/lib/ipa-form/dropdown-input/dropdown-input.component.d.ts +34 -34
- package/lib/ipa-form/file-upload/file-upload.component.d.ts +40 -40
- package/lib/ipa-form/ipa-form.service.d.ts +51 -51
- package/lib/ipa-form/recaptcha/recaptcha.component.d.ts +22 -22
- package/lib/ipa-form/text-input/text-input.component.d.ts +35 -35
- package/lib/ipa-form/textarea-input/textarea-input.component.d.ts +32 -32
- package/lib/models/apiException.d.ts +5 -5
- package/lib/models/apiResponse.d.ts +5 -5
- package/lib/models/breadcrumbs.model.d.ts +4 -4
- package/lib/models/decodedToken.model.d.ts +6 -6
- package/lib/models/exceptionUrl.model.d.ts +4 -4
- package/lib/models/generateForm.model.d.ts +31 -31
- package/lib/models/pagedResult.d.ts +4 -4
- package/lib/models/user.model.d.ts +7 -7
- package/lib/ng-ipa-library.module.d.ts +25 -25
- package/lib/pipes/hijri-date.pipe.d.ts +7 -7
- package/lib/pipes/pipes.module.d.ts +7 -7
- package/lib/services/breadcrumbs.service.d.ts +18 -18
- package/lib/services/common.service.d.ts +11 -11
- package/lib/share-button/share-button.component.d.ts +11 -11
- package/lib/share-button/share-button.module.d.ts +13 -13
- package/package.json +12 -18
- package/public-api.d.ts +31 -31
- package/fesm2015/ng-ipa-library.mjs +0 -1867
- package/fesm2015/ng-ipa-library.mjs.map +0 -1
- package/fesm2020/ng-ipa-library.mjs.map +0 -1
|
@@ -1,149 +1,149 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
export class BreadcrumbsService {
|
|
4
|
-
constructor() { }
|
|
5
|
-
setPageTitle(text) {
|
|
6
|
-
const titleEl = document.querySelector('.sub-section-title');
|
|
7
|
-
if (titleEl) {
|
|
8
|
-
titleEl.textContent = text;
|
|
9
|
-
}
|
|
10
|
-
}
|
|
11
|
-
setMainPageTitle(text, url) {
|
|
12
|
-
const div = document.getElementsByClassName('main-section-title');
|
|
13
|
-
if (div && div.length > 0) {
|
|
14
|
-
div[0].innerHTML = `<a id="site-url" href="${url}">${text}</a>`;
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
addBreadcrumb(nodeName, spanClasses = 'bc-current', linkClasses = 'bc-node') {
|
|
18
|
-
const spans = document.getElementById('ctl00_path')?.children;
|
|
19
|
-
//get last child
|
|
20
|
-
const lastIndex = spans?.item(spans.length - 1);
|
|
21
|
-
const innerHTML = lastIndex.innerHTML;
|
|
22
|
-
lastIndex.innerHTML = '';
|
|
23
|
-
lastIndex.classList.remove(...['bc-current']);
|
|
24
|
-
//add new link
|
|
25
|
-
lastIndex.appendChild(this.createLink(innerHTML, location.pathname, linkClasses));
|
|
26
|
-
//add new span and empty span
|
|
27
|
-
const newSpan = this.createSpan(nodeName, spanClasses);
|
|
28
|
-
const emptySpan = document.createElement('span');
|
|
29
|
-
lastIndex.after(...[emptySpan, newSpan]);
|
|
30
|
-
}
|
|
31
|
-
addBreadcrumbList(nodeList, spanClasses = 'bc-current', linkClasses = 'bc-node') {
|
|
32
|
-
const spans = document.getElementById('ctl00_path')?.childNodes;
|
|
33
|
-
//get last child
|
|
34
|
-
const lastSpan = spans?.item(spans.length - 1);
|
|
35
|
-
const innerHTML = lastSpan.innerHTML;
|
|
36
|
-
lastSpan.classList.remove(...[spanClasses]);
|
|
37
|
-
lastSpan.innerHTML = '';
|
|
38
|
-
//add new link
|
|
39
|
-
lastSpan.appendChild(this.createLink(innerHTML, location.pathname, linkClasses));
|
|
40
|
-
for (let i = 0; i < nodeList.length; i++) {
|
|
41
|
-
const lastIndex = spans?.item(spans.length - 1);
|
|
42
|
-
if (nodeList[i].nodeUrl) {
|
|
43
|
-
const newSpan = document.createElement('span');
|
|
44
|
-
newSpan.appendChild(this.createLink(nodeList[i].nodeName, nodeList[i].nodeUrl, linkClasses));
|
|
45
|
-
const emptySpan = document.createElement('span');
|
|
46
|
-
lastIndex.after(...[emptySpan, newSpan]);
|
|
47
|
-
}
|
|
48
|
-
else {
|
|
49
|
-
const newSpan = this.createSpan(nodeList[i].nodeName, spanClasses);
|
|
50
|
-
const emptySpan = document.createElement('span');
|
|
51
|
-
lastIndex.after(...[emptySpan, newSpan]);
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
createBreadcrumbs(nodeList, spanClasses = 'bc-current', linkClasses = 'bc-node') {
|
|
56
|
-
const currentSpan = document.getElementById('ctl00_path');
|
|
57
|
-
currentSpan.innerHTML = '';
|
|
58
|
-
const newSpan = document.createElement('span');
|
|
59
|
-
currentSpan?.appendChild(newSpan);
|
|
60
|
-
newSpan.appendChild(this.createLink(nodeList[0].nodeName, nodeList[0].nodeUrl, linkClasses));
|
|
61
|
-
const spans = currentSpan?.children;
|
|
62
|
-
for (let i = 1; i < nodeList.length; i++) {
|
|
63
|
-
const lastIndex = spans?.item(spans.length - 1);
|
|
64
|
-
if (nodeList[i].nodeUrl) {
|
|
65
|
-
const newSpan = document.createElement('span');
|
|
66
|
-
newSpan.appendChild(this.createLink(nodeList[i].nodeName, nodeList[i].nodeUrl, linkClasses));
|
|
67
|
-
const emptySpan = document.createElement('span');
|
|
68
|
-
lastIndex?.after(...[emptySpan, newSpan]);
|
|
69
|
-
}
|
|
70
|
-
else {
|
|
71
|
-
const newSpan = this.createSpan(nodeList[i].nodeName, spanClasses);
|
|
72
|
-
const emptySpan = document.createElement('span');
|
|
73
|
-
lastIndex.after(...[emptySpan, newSpan]);
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
removeLastBreadcrumb() {
|
|
78
|
-
const spans = document.getElementById('ctl00_path')?.children;
|
|
79
|
-
spans?.item(spans.length - 1)?.remove();
|
|
80
|
-
spans?.item(spans.length - 1)?.remove();
|
|
81
|
-
this.setCurrentNode(spans);
|
|
82
|
-
}
|
|
83
|
-
removeBreadcrumbByNodeName(nodeName) {
|
|
84
|
-
const spans = document.getElementById('ctl00_path')
|
|
85
|
-
?.children;
|
|
86
|
-
let index = -1;
|
|
87
|
-
for (let i = 0; i < spans.length; i++) {
|
|
88
|
-
const span = spans.item(i);
|
|
89
|
-
if (span?.textContent?.trim() === nodeName) {
|
|
90
|
-
index = i;
|
|
91
|
-
break;
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
const lastNode = spans.length - 1 === index;
|
|
95
|
-
if (index !== -1 && !lastNode) {
|
|
96
|
-
spans?.item(index)?.remove();
|
|
97
|
-
spans?.item(index)?.remove();
|
|
98
|
-
}
|
|
99
|
-
else {
|
|
100
|
-
spans?.item(index)?.remove();
|
|
101
|
-
spans?.item(index - 1)?.remove();
|
|
102
|
-
}
|
|
103
|
-
if (lastNode) {
|
|
104
|
-
this.setCurrentNode(spans);
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
removeLastBreadcrumbsByLength(length) {
|
|
108
|
-
const spans = document.getElementById('ctl00_path')
|
|
109
|
-
?.children;
|
|
110
|
-
while (length > 0) {
|
|
111
|
-
spans?.item(spans.length - 1)?.remove();
|
|
112
|
-
spans?.item(spans.length - 1)?.remove();
|
|
113
|
-
length--;
|
|
114
|
-
}
|
|
115
|
-
if (spans.length > 0) {
|
|
116
|
-
this.setCurrentNode(spans);
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
createLink(innerHTML, href, classes) {
|
|
120
|
-
const link = document.createElement('a');
|
|
121
|
-
link.innerHTML = ' ' + innerHTML;
|
|
122
|
-
link.href = href ?? '';
|
|
123
|
-
link.classList.add(...[classes]);
|
|
124
|
-
return link;
|
|
125
|
-
}
|
|
126
|
-
createSpan(innerHTML, classes) {
|
|
127
|
-
const span = document.createElement('span');
|
|
128
|
-
span.classList.add(...[classes]);
|
|
129
|
-
span.innerHTML = ' ' + innerHTML;
|
|
130
|
-
return span;
|
|
131
|
-
}
|
|
132
|
-
setCurrentNode(spans) {
|
|
133
|
-
const lastSpan = spans?.item(spans.length - 1);
|
|
134
|
-
const lastSpanLink = spans
|
|
135
|
-
?.item(spans.length - 1)
|
|
136
|
-
?.children.item(0);
|
|
137
|
-
lastSpan?.classList.add(...['bc-current']);
|
|
138
|
-
lastSpan.innerHTML = lastSpanLink.innerHTML;
|
|
139
|
-
}
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
144
|
-
type: Injectable,
|
|
145
|
-
args: [{
|
|
146
|
-
providedIn: 'root',
|
|
147
|
-
}]
|
|
148
|
-
}], ctorParameters: function () { return []; } });
|
|
149
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlYWRjcnVtYnMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWlwYS1saWJyYXJ5L3NyYy9saWIvc2VydmljZXMvYnJlYWRjcnVtYnMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQU0zQyxNQUFNLE9BQU8sa0JBQWtCO0lBQzdCLGdCQUFlLENBQUM7SUFFaEIsWUFBWSxDQUFDLElBQVk7UUFDdkIsTUFBTSxPQUFPLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBQzdELElBQUksT0FBTyxFQUFFO1lBQ1gsT0FBTyxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7U0FDNUI7SUFDSCxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsSUFBWSxFQUFFLEdBQVc7UUFDeEMsTUFBTSxHQUFHLEdBQUcsUUFBUSxDQUFDLHNCQUFzQixDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFDbEUsSUFBSSxHQUFHLElBQUksR0FBRyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDekIsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsR0FBRywwQkFBMEIsR0FBRyxLQUFLLElBQUksTUFBTSxDQUFDO1NBQ2pFO0lBQ0gsQ0FBQztJQUVELGFBQWEsQ0FDWCxRQUFnQixFQUNoQixXQUFXLEdBQUcsWUFBWSxFQUMxQixXQUFXLEdBQUcsU0FBUztRQUV2QixNQUFNLEtBQUssR0FBRyxRQUFRLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FBQyxFQUFFLFFBQVEsQ0FBQztRQUM5RCxnQkFBZ0I7UUFDaEIsTUFBTSxTQUFTLEdBQUcsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBb0IsQ0FBQztRQUNuRSxNQUFNLFNBQVMsR0FBRyxTQUFTLENBQUMsU0FBUyxDQUFD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QVMsQ0FBQztRQUNqQyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFDakMsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRU8sVUFBVSxDQUFDLFNBQWlCLEVBQUUsT0FBZTtRQUNuRCxNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzVDLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxTQUFTLEdBQUcsR0FBRyxHQUFHLFNBQVMsQ0FBQztRQUNqQyxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFTyxjQUFjLENBQUMsS0FBc0I7UUFDM0MsTUFBTSxRQUFRLEdBQUcsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBb0IsQ0FBQztRQUNsRSxNQUFNLFlBQVksR0FBRyxLQUFLO1lBQ3hCLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1lBQ3hCLEVBQUUsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQXNCLENBQUM7UUFDMUMsUUFBUSxFQUFFLFNBQVMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7UUFDM0MsUUFBUSxDQUFDLFNBQVMsR0FBRyxZQUFZLENBQUMsU0FBUyxDQUFDO0lBQzlDLENBQUM7OytHQXJMVSxrQkFBa0I7bUhBQWxCLGtCQUFrQixjQUZqQixNQUFNOzJGQUVQLGtCQUFrQjtrQkFIOUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEJyZWFkY3J1bWJzIH0gZnJvbSAnLi4vbW9kZWxzL2JyZWFkY3J1bWJzLm1vZGVsJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBCcmVhZGNydW1ic1NlcnZpY2Uge1xyXG4gIGNvbnN0cnVjdG9yKCkge31cclxuXHJcbiAgc2V0UGFnZVRpdGxlKHRleHQ6IHN0cmluZykge1xyXG4gICAgY29uc3QgdGl0bGVFbCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5zdWItc2VjdGlvbi10aXRsZScpO1xyXG4gICAgaWYgKHRpdGxlRWwpIHtcclxuICAgICAgdGl0bGVFbC50ZXh0Q29udGVudCA9IHRleHQ7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXRNYWluUGFnZVRpdGxlKHRleHQ6IHN0cmluZywgdXJsOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ21haW4tc2VjdGlvbi10aXRsZScpO1xyXG4gICAgaWYgKGRpdiAmJiBkaXYubGVuZ3RoID4gMCkge1xyXG4gICAgICBkaXZbMF0uaW5uZXJIVE1MID0gYDxhIGlkPVwic2l0ZS11cmxcIiBocmVmPVwiJHt1cmx9XCI+JHt0ZXh0fTwvYT5gO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgYWRkQnJlYWRjcnVtYihcclxuICAgIG5vZGVOYW1lOiBzdHJpbmcsXHJcbiAgICBzcGFuQ2xhc3NlcyA9ICdiYy1jdXJyZW50JyxcclxuICAgIGxpbmtDbGFzc2VzID0gJ2JjLW5vZGUnXHJcbiAgKSB7XHJcbiAgICBjb25zdCBzcGFucyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjdGwwMF9wYXRoJyk/LmNoaWxkcmVuO1xyXG4gICAgLy9nZXQgbGFzdCBjaGlsZFxyXG4gICAgY29uc3QgbGFzdEluZGV4ID0gc3BhbnM/Lml0ZW0oc3BhbnMubGVuZ3RoIC0gMSkgYXMgSFRNTFNwYW5FbGVtZW50O1xyXG4gICAgY29uc3QgaW5uZXJIVE1MID0gbGFzdEluZGV4LmlubmVySFRNTDtcclxuICAgIGxhc3RJbmRleC5pbm5lckhUTUwgPSAnJztcclxuICAgIGxhc3RJbmRleC5jbGFzc0xpc3QucmVtb3ZlKC4uLlsnYmMtY3VycmVudCddKTtcclxuICAgIC8vYWRkIG5ldyBsaW5rXHJcbiAgICBsYXN0SW5kZXguYXBwZW5kQ2hpbGQoXHJcbiAgICAgIHRoaXMuY3JlYXRlTGluayhpbm5lckhUTUwsIGxvY2F0aW9uLnBhdGhuYW1lLCBsaW5rQ2xhc3NlcylcclxuICAgICk7XHJcbiAgICAvL2FkZCBuZXcgc3BhbiBhbmQgZW1wdHkgc3BhblxyXG4gICAgY29uc3QgbmV3U3BhbiA9IHRoaXMuY3JlYXRlU3Bhbihub2RlTmFtZSwgc3BhbkNsYXNzZXMpO1xyXG4gICAgY29uc3QgZW1wdHlTcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpO1xyXG4gICAgbGFzdEluZGV4LmFmdGVyKC4uLltlbXB0eVNwYW4sIG5ld1NwYW5dKTtcclxuICB9XHJcblxyXG4gIGFkZEJyZWFkY3J1bWJMaXN0KFxyXG4gICAgbm9kZUxpc3Q6IEJyZWFkY3J1bWJzW10sXHJcbiAgICBzcGFuQ2xhc3NlcyA9ICdiYy1jdXJyZW50JyxcclxuICAgIGxpbmtDbGFzc2VzID0gJ2JjLW5vZGUnXHJcbiAgKSB7XHJcbiAgICBjb25zdCBzcGFucyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjdGwwMF9wYXRoJyk/LmNoaWxkTm9kZXM7XHJcbiAgICAvL2dldCBsYXN0IGNoaWxkXHJcbiAgICBjb25zdCBsYXN0U3BhbiA9IHNwYW5zPy5pdGVtKHNwYW5zLmxlbmd0aCAtIDEpIGFzIEhUTUxTcGFuRWxlbWVudDtcclxuICAgIGNvbnN0IGlubmVySFRNTCA9IGxhc3RTcGFuLmlubmVySFRNTDtcclxuICAgIGxhc3RTcGFuLmNsYXNzTGlzdC5yZW1vdmUoLi4uW3NwYW5DbGFzc2VzXSk7XHJcbiAgICBsYXN0U3Bhbi5pbm5lckhUTUwgPSAnJztcclxuICAgIC8vYWRkIG5ldyBsaW5rXHJcbiAgICBsYXN0U3Bhbi5hcHBlbmRDaGlsZChcclxuICAgICAgdGhpcy5jcmVhdGVMaW5rKGlubmVySFRNTCwgbG9jYXRpb24ucGF0aG5hbWUsIGxpbmtDbGFzc2VzKVxyXG4gICAgKTtcclxuXHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IG5vZGVMaXN0Lmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGNvbnN0IGxhc3RJbmRleCA9IHNwYW5zPy5pdGVtKHNwYW5zLmxlbmd0aCAtIDEpIGFzIEhUTUxTcGFuRWxlbWVudDtcclxuICAgICAgaWYgKG5vZGVMaXN0W2ldLm5vZGVVcmwpIHtcclxuICAgICAgICBjb25zdCBuZXdTcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpO1xyXG4gICAgICAgIG5ld1NwYW4uYXBwZW5kQ2hpbGQoXHJcbiAgICAgICAgICB0aGlzLmNyZWF0ZUxpbmsoXHJcbiAgICAgICAgICAgIG5vZGVMaXN0W2ldLm5vZGVOYW1lLFxyXG4gICAgICAgICAgICBub2RlTGlzdFtpXS5ub2RlVXJsLFxyXG4gICAgICAgICAgICBsaW5rQ2xhc3Nlc1xyXG4gICAgICAgICAgKVxyXG4gICAgICAgICk7XHJcbiAgICAgICAgY29uc3QgZW1wdHlTcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpO1xyXG4gICAgICAgIGxhc3RJbmRleC5hZnRlciguLi5bZW1wdHlTcGFuLCBuZXdTcGFuXSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgY29uc3QgbmV3U3BhbiA9IHRoaXMuY3JlYXRlU3Bhbihub2RlTGlzdFtpXS5ub2RlTmFtZSwgc3BhbkNsYXNzZXMpO1xyXG4gICAgICAgIGNvbnN0IGVtcHR5U3BhbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKTtcclxuICAgICAgICBsYXN0SW5kZXguYWZ0ZXIoLi4uW2VtcHR5U3BhbiwgbmV3U3Bhbl0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjcmVhdGVCcmVhZGNydW1icyhcclxuICAgIG5vZGVMaXN0OiBCcmVhZGNydW1ic1tdLFxyXG4gICAgc3BhbkNsYXNzZXMgPSAnYmMtY3VycmVudCcsXHJcbiAgICBsaW5rQ2xhc3NlcyA9ICdiYy1ub2RlJ1xyXG4gICkge1xyXG4gICAgY29uc3QgY3VycmVudFNwYW4gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChcclxuICAgICAgJ2N0bDAwX3BhdGgnXHJcbiAgICApIGFzIEhUTUxTcGFuRWxlbWVudDtcclxuICAgIGN1cnJlbnRTcGFuLmlubmVySFRNTCA9ICcnO1xyXG4gICAgY29uc3QgbmV3U3BhbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKTtcclxuICAgIGN1cnJlbnRTcGFuPy5hcHBlbmRDaGlsZChuZXdTcGFuKTtcclxuICAgIG5ld1NwYW4uYXBwZW5kQ2hpbGQoXHJcbiAgICAgIHRoaXMuY3JlYXRlTGluayhub2RlTGlzdFswXS5ub2RlTmFtZSwgbm9kZUxpc3RbMF0ubm9kZVVybCwgbGlua0NsYXNzZXMpXHJcbiAgICApO1xyXG4gICAgY29uc3Qgc3BhbnMgPSBjdXJyZW50U3Bhbj8uY2hpbGRyZW47XHJcbiAgICBmb3IgKGxldCBpID0gMTsgaSA8IG5vZGVMaXN0Lmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGNvbnN0IGxhc3RJbmRleCA9IHNwYW5zPy5pdGVtKHNwYW5zLmxlbmd0aCAtIDEpIGFzIEhUTUxTcGFuRWxlbWVudDtcclxuICAgICAgaWYgKG5vZGVMaXN0W2ldLm5vZGVVcmwpIHtcclxuICAgICAgICBjb25zdCBuZXdTcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpO1xyXG4gICAgICAgIG5ld1NwYW4uYXBwZW5kQ2hpbGQoXHJcbiAgICAgICAgICB0aGlzLmNyZWF0ZUxpbmsoXHJcbiAgICAgICAgICAgIG5vZGVMaXN0W2ldLm5vZGVOYW1lLFxyXG4gICAgICAgICAgICBub2RlTGlzdFtpXS5ub2RlVXJsLFxyXG4gICAgICAgICAgICBsaW5rQ2xhc3Nlc1xyXG4gICAgICAgICAgKVxyXG4gICAgICAgICk7XHJcbiAgICAgICAgY29uc3QgZW1wdHlTcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpO1xyXG4gICAgICAgIGxhc3RJbmRleD8uYWZ0ZXIoLi4uW2VtcHR5U3BhbiwgbmV3U3Bhbl0pO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGNvbnN0IG5ld1NwYW4gPSB0aGlzLmNyZWF0ZVNwYW4obm9kZUxpc3RbaV0ubm9kZU5hbWUsIHNwYW5DbGFzc2VzKTtcclxuICAgICAgICBjb25zdCBlbXB0eVNwYW4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7XHJcbiAgICAgICAgbGFzdEluZGV4LmFmdGVyKC4uLltlbXB0eVNwYW4sIG5ld1NwYW5dKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmVtb3ZlTGFzdEJyZWFkY3J1bWIoKSB7XHJcbiAgICBjb25zdCBzcGFucyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjdGwwMF9wYXRoJyk/LmNoaWxkcmVuO1xyXG4gICAgc3BhbnM/Lml0ZW0oc3BhbnMubGVuZ3RoIC0gMSk/LnJlbW92ZSgpO1xyXG4gICAgc3BhbnM/Lml0ZW0oc3BhbnMubGVuZ3RoIC0gMSk/LnJlbW92ZSgpO1xyXG4gICAgdGhpcy5zZXRDdXJyZW50Tm9kZShzcGFucyk7XHJcbiAgfVxyXG5cclxuICByZW1vdmVCcmVhZGNydW1iQnlOb2RlTmFtZShub2RlTmFtZTogc3RyaW5nKSB7XHJcbiAgICBjb25zdCBzcGFucyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjdGwwMF9wYXRoJylcclxuICAgICAgPy5jaGlsZHJlbiBhcyBIVE1MQ29sbGVjdGlvbjtcclxuICAgIGxldCBpbmRleCA9IC0xO1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzcGFucy5sZW5ndGg7IGkrKykge1xyXG4gICAgICBjb25zdCBzcGFuID0gc3BhbnMuaXRlbShpKTtcclxuICAgICAgaWYgKHNwYW4/LnRleHRDb250ZW50Py50cmltKCkgPT09IG5vZGVOYW1lKSB7XHJcbiAgICAgICAgaW5kZXggPSBpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBjb25zdCBsYXN0Tm9kZSA9IHNwYW5zLmxlbmd0aCAtIDEgPT09IGluZGV4O1xyXG4gICAgaWYgKGluZGV4ICE9PSAtMSAmJiAhbGFzdE5vZGUpIHtcclxuICAgICAgc3BhbnM/Lml0ZW0oaW5kZXgpPy5yZW1vdmUoKTtcclxuICAgICAgc3BhbnM/Lml0ZW0oaW5kZXgpPy5yZW1vdmUoKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHNwYW5zPy5pdGVtKGluZGV4KT8ucmVtb3ZlKCk7XHJcbiAgICAgIHNwYW5zPy5pdGVtKGluZGV4IC0gMSk/LnJlbW92ZSgpO1xyXG4gICAgfVxyXG4gICAgaWYgKGxhc3ROb2RlKSB7XHJcbiAgICAgIHRoaXMuc2V0Q3VycmVudE5vZGUoc3BhbnMpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmVtb3ZlTGFzdEJyZWFkY3J1bWJzQnlMZW5ndGgobGVuZ3RoOiBudW1iZXIpIHtcclxuICAgIGNvbnN0IHNwYW5zID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2N0bDAwX3BhdGgnKVxyXG4gICAgICA/LmNoaWxkcmVuIGFzIEhUTUxDb2xsZWN0aW9uO1xyXG4gICAgd2hpbGUgKGxlbmd0aCA+IDApIHtcclxuICAgICAgc3BhbnM/Lml0ZW0oc3BhbnMubGVuZ3RoIC0gMSk/LnJlbW92ZSgpO1xyXG4gICAgICBzcGFucz8uaXRlbShzcGFucy5sZW5ndGggLSAxKT8ucmVtb3ZlKCk7XHJcbiAgICAgIGxlbmd0aC0tO1xyXG4gICAgfVxyXG4gICAgaWYgKHNwYW5zLmxlbmd0aCA+IDApIHtcclxuICAgICAgdGhpcy5zZXRDdXJyZW50Tm9kZShzcGFucyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNyZWF0ZUxpbmsoXHJcbiAgICBpbm5lckhUTUw6IHN0cmluZyxcclxuICAgIGhyZWY6IHN0cmluZyB8IG51bGwsXHJcbiAgICBjbGFzc2VzOiBzdHJpbmdcclxuICApOiBIVE1MQW5jaG9yRWxlbWVudCB7XHJcbiAgICBjb25zdCBsaW5rID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpO1xyXG4gICAgbGluay5pbm5lckhUTUwgPSAnICcgKyBpbm5lckhUTUw7XHJcbiAgICBsaW5rLmhyZWYgPSBocmVmID8/ICcnO1xyXG4gICAgbGluay5jbGFzc0xpc3QuYWRkKC4uLltjbGFzc2VzXSk7XHJcbiAgICByZXR1cm4gbGluaztcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY3JlYXRlU3Bhbihpbm5lckhUTUw6IHN0cmluZywgY2xhc3Nlczogc3RyaW5nKTogSFRNTFNwYW5FbGVtZW50IHtcclxuICAgIGNvbnN0IHNwYW4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7XHJcbiAgICBzcGFuLmNsYXNzTGlzdC5hZGQoLi4uW2NsYXNzZXNdKTtcclxuICAgIHNwYW4uaW5uZXJIVE1MID0gJyAnICsgaW5uZXJIVE1MO1xyXG4gICAgcmV0dXJuIHNwYW47XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldEN1cnJlbnROb2RlKHNwYW5zPzogSFRNTENvbGxlY3Rpb24pIHtcclxuICAgIGNvbnN0IGxhc3RTcGFuID0gc3BhbnM/Lml0ZW0oc3BhbnMubGVuZ3RoIC0gMSkgYXMgSFRNTFNwYW5FbGVtZW50O1xyXG4gICAgY29uc3QgbGFzdFNwYW5MaW5rID0gc3BhbnNcclxuICAgICAgPy5pdGVtKHNwYW5zLmxlbmd0aCAtIDEpXHJcbiAgICAgID8uY2hpbGRyZW4uaXRlbSgwKSBhcyBIVE1MQW5jaG9yRWxlbWVudDtcclxuICAgIGxhc3RTcGFuPy5jbGFzc0xpc3QuYWRkKC4uLlsnYmMtY3VycmVudCddKTtcclxuICAgIGxhc3RTcGFuLmlubmVySFRNTCA9IGxhc3RTcGFuTGluay5pbm5lckhUTUw7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class BreadcrumbsService {
|
|
4
|
+
constructor() { }
|
|
5
|
+
setPageTitle(text) {
|
|
6
|
+
const titleEl = document.querySelector('.sub-section-title');
|
|
7
|
+
if (titleEl) {
|
|
8
|
+
titleEl.textContent = text;
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
setMainPageTitle(text, url) {
|
|
12
|
+
const div = document.getElementsByClassName('main-section-title');
|
|
13
|
+
if (div && div.length > 0) {
|
|
14
|
+
div[0].innerHTML = `<a id="site-url" href="${url}">${text}</a>`;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
addBreadcrumb(nodeName, spanClasses = 'bc-current', linkClasses = 'bc-node') {
|
|
18
|
+
const spans = document.getElementById('ctl00_path')?.children;
|
|
19
|
+
//get last child
|
|
20
|
+
const lastIndex = spans?.item(spans.length - 1);
|
|
21
|
+
const innerHTML = lastIndex.innerHTML;
|
|
22
|
+
lastIndex.innerHTML = '';
|
|
23
|
+
lastIndex.classList.remove(...['bc-current']);
|
|
24
|
+
//add new link
|
|
25
|
+
lastIndex.appendChild(this.createLink(innerHTML, location.pathname, linkClasses));
|
|
26
|
+
//add new span and empty span
|
|
27
|
+
const newSpan = this.createSpan(nodeName, spanClasses);
|
|
28
|
+
const emptySpan = document.createElement('span');
|
|
29
|
+
lastIndex.after(...[emptySpan, newSpan]);
|
|
30
|
+
}
|
|
31
|
+
addBreadcrumbList(nodeList, spanClasses = 'bc-current', linkClasses = 'bc-node') {
|
|
32
|
+
const spans = document.getElementById('ctl00_path')?.childNodes;
|
|
33
|
+
//get last child
|
|
34
|
+
const lastSpan = spans?.item(spans.length - 1);
|
|
35
|
+
const innerHTML = lastSpan.innerHTML;
|
|
36
|
+
lastSpan.classList.remove(...[spanClasses]);
|
|
37
|
+
lastSpan.innerHTML = '';
|
|
38
|
+
//add new link
|
|
39
|
+
lastSpan.appendChild(this.createLink(innerHTML, location.pathname, linkClasses));
|
|
40
|
+
for (let i = 0; i < nodeList.length; i++) {
|
|
41
|
+
const lastIndex = spans?.item(spans.length - 1);
|
|
42
|
+
if (nodeList[i].nodeUrl) {
|
|
43
|
+
const newSpan = document.createElement('span');
|
|
44
|
+
newSpan.appendChild(this.createLink(nodeList[i].nodeName, nodeList[i].nodeUrl, linkClasses));
|
|
45
|
+
const emptySpan = document.createElement('span');
|
|
46
|
+
lastIndex.after(...[emptySpan, newSpan]);
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
const newSpan = this.createSpan(nodeList[i].nodeName, spanClasses);
|
|
50
|
+
const emptySpan = document.createElement('span');
|
|
51
|
+
lastIndex.after(...[emptySpan, newSpan]);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
createBreadcrumbs(nodeList, spanClasses = 'bc-current', linkClasses = 'bc-node') {
|
|
56
|
+
const currentSpan = document.getElementById('ctl00_path');
|
|
57
|
+
currentSpan.innerHTML = '';
|
|
58
|
+
const newSpan = document.createElement('span');
|
|
59
|
+
currentSpan?.appendChild(newSpan);
|
|
60
|
+
newSpan.appendChild(this.createLink(nodeList[0].nodeName, nodeList[0].nodeUrl, linkClasses));
|
|
61
|
+
const spans = currentSpan?.children;
|
|
62
|
+
for (let i = 1; i < nodeList.length; i++) {
|
|
63
|
+
const lastIndex = spans?.item(spans.length - 1);
|
|
64
|
+
if (nodeList[i].nodeUrl) {
|
|
65
|
+
const newSpan = document.createElement('span');
|
|
66
|
+
newSpan.appendChild(this.createLink(nodeList[i].nodeName, nodeList[i].nodeUrl, linkClasses));
|
|
67
|
+
const emptySpan = document.createElement('span');
|
|
68
|
+
lastIndex?.after(...[emptySpan, newSpan]);
|
|
69
|
+
}
|
|
70
|
+
else {
|
|
71
|
+
const newSpan = this.createSpan(nodeList[i].nodeName, spanClasses);
|
|
72
|
+
const emptySpan = document.createElement('span');
|
|
73
|
+
lastIndex.after(...[emptySpan, newSpan]);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
removeLastBreadcrumb() {
|
|
78
|
+
const spans = document.getElementById('ctl00_path')?.children;
|
|
79
|
+
spans?.item(spans.length - 1)?.remove();
|
|
80
|
+
spans?.item(spans.length - 1)?.remove();
|
|
81
|
+
this.setCurrentNode(spans);
|
|
82
|
+
}
|
|
83
|
+
removeBreadcrumbByNodeName(nodeName) {
|
|
84
|
+
const spans = document.getElementById('ctl00_path')
|
|
85
|
+
?.children;
|
|
86
|
+
let index = -1;
|
|
87
|
+
for (let i = 0; i < spans.length; i++) {
|
|
88
|
+
const span = spans.item(i);
|
|
89
|
+
if (span?.textContent?.trim() === nodeName) {
|
|
90
|
+
index = i;
|
|
91
|
+
break;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
const lastNode = spans.length - 1 === index;
|
|
95
|
+
if (index !== -1 && !lastNode) {
|
|
96
|
+
spans?.item(index)?.remove();
|
|
97
|
+
spans?.item(index)?.remove();
|
|
98
|
+
}
|
|
99
|
+
else {
|
|
100
|
+
spans?.item(index)?.remove();
|
|
101
|
+
spans?.item(index - 1)?.remove();
|
|
102
|
+
}
|
|
103
|
+
if (lastNode) {
|
|
104
|
+
this.setCurrentNode(spans);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
removeLastBreadcrumbsByLength(length) {
|
|
108
|
+
const spans = document.getElementById('ctl00_path')
|
|
109
|
+
?.children;
|
|
110
|
+
while (length > 0) {
|
|
111
|
+
spans?.item(spans.length - 1)?.remove();
|
|
112
|
+
spans?.item(spans.length - 1)?.remove();
|
|
113
|
+
length--;
|
|
114
|
+
}
|
|
115
|
+
if (spans.length > 0) {
|
|
116
|
+
this.setCurrentNode(spans);
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
createLink(innerHTML, href, classes) {
|
|
120
|
+
const link = document.createElement('a');
|
|
121
|
+
link.innerHTML = ' ' + innerHTML;
|
|
122
|
+
link.href = href ?? '';
|
|
123
|
+
link.classList.add(...[classes]);
|
|
124
|
+
return link;
|
|
125
|
+
}
|
|
126
|
+
createSpan(innerHTML, classes) {
|
|
127
|
+
const span = document.createElement('span');
|
|
128
|
+
span.classList.add(...[classes]);
|
|
129
|
+
span.innerHTML = ' ' + innerHTML;
|
|
130
|
+
return span;
|
|
131
|
+
}
|
|
132
|
+
setCurrentNode(spans) {
|
|
133
|
+
const lastSpan = spans?.item(spans.length - 1);
|
|
134
|
+
const lastSpanLink = spans
|
|
135
|
+
?.item(spans.length - 1)
|
|
136
|
+
?.children.item(0);
|
|
137
|
+
lastSpan?.classList.add(...['bc-current']);
|
|
138
|
+
lastSpan.innerHTML = lastSpanLink.innerHTML;
|
|
139
|
+
}
|
|
140
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: BreadcrumbsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
141
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: BreadcrumbsService, providedIn: 'root' }); }
|
|
142
|
+
}
|
|
143
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: BreadcrumbsService, decorators: [{
|
|
144
|
+
type: Injectable,
|
|
145
|
+
args: [{
|
|
146
|
+
providedIn: 'root',
|
|
147
|
+
}]
|
|
148
|
+
}], ctorParameters: function () { return []; } });
|
|
149
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlYWRjcnVtYnMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWlwYS1saWJyYXJ5L3NyYy9saWIvc2VydmljZXMvYnJlYWRjcnVtYnMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQU0zQyxNQUFNLE9BQU8sa0JBQWtCO0lBQzdCLGdCQUFlLENBQUM7SUFFaEIsWUFBWSxDQUFDLElBQVk7UUFDdkIsTUFBTSxPQUFPLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBQzdELElBQUksT0FBTyxFQUFFO1lBQ1gsT0FBTyxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7U0FDNUI7SUFDSCxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsSUFBWSxFQUFFLEdBQVc7UUFDeEMsTUFBTSxHQUFHLEdBQUcsUUFBUSxDQUFDLHNCQUFzQixDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFDbEUsSUFBSSxHQUFHLElBQUksR0FBRyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDekIsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsR0FBRywwQkFBMEIsR0FBRyxLQUFLLElBQUksTUFBTSxDQUFDO1NBQ2pFO0lBQ0gsQ0FBQztJQUVELGFBQWEsQ0FDWCxRQUFnQixFQUNoQixXQUFXLEdBQUcsWUFBWSxFQUMxQixXQUFXLEdBQUcsU0FBUztRQUV2QixNQUFNLEtBQUssR0FBRyxRQUFRLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FBQyxFQUFFLFFBQVEsQ0FBQztRQUM5RCxnQkFBZ0I7UUFDaEIsTUFBTSxTQUFTLEdBQUcsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBb0IsQ0FBQztRQUNuRSxNQUFNLFNBQVMsR0FBRyxTQUFTLENBQUMsU0FBUyxDQUFD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QVMsQ0FBQztRQUNqQyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFDakMsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRU8sVUFBVSxDQUFDLFNBQWlCLEVBQUUsT0FBZTtRQUNuRCxNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzVDLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxTQUFTLEdBQUcsR0FBRyxHQUFHLFNBQVMsQ0FBQztRQUNqQyxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFTyxjQUFjLENBQUMsS0FBc0I7UUFDM0MsTUFBTSxRQUFRLEdBQUcsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBb0IsQ0FBQztRQUNsRSxNQUFNLFlBQVksR0FBRyxLQUFLO1lBQ3hCLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1lBQ3hCLEVBQUUsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQXNCLENBQUM7UUFDMUMsUUFBUSxFQUFFLFNBQVMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7UUFDM0MsUUFBUSxDQUFDLFNBQVMsR0FBRyxZQUFZLENBQUMsU0FBUyxDQUFDO0lBQzlDLENBQUM7OEdBckxVLGtCQUFrQjtrSEFBbEIsa0JBQWtCLGNBRmpCLE1BQU07OzJGQUVQLGtCQUFrQjtrQkFIOUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEJyZWFkY3J1bWJzIH0gZnJvbSAnLi4vbW9kZWxzL2JyZWFkY3J1bWJzLm1vZGVsJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBCcmVhZGNydW1ic1NlcnZpY2Uge1xyXG4gIGNvbnN0cnVjdG9yKCkge31cclxuXHJcbiAgc2V0UGFnZVRpdGxlKHRleHQ6IHN0cmluZykge1xyXG4gICAgY29uc3QgdGl0bGVFbCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5zdWItc2VjdGlvbi10aXRsZScpO1xyXG4gICAgaWYgKHRpdGxlRWwpIHtcclxuICAgICAgdGl0bGVFbC50ZXh0Q29udGVudCA9IHRleHQ7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXRNYWluUGFnZVRpdGxlKHRleHQ6IHN0cmluZywgdXJsOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ21haW4tc2VjdGlvbi10aXRsZScpO1xyXG4gICAgaWYgKGRpdiAmJiBkaXYubGVuZ3RoID4gMCkge1xyXG4gICAgICBkaXZbMF0uaW5uZXJIVE1MID0gYDxhIGlkPVwic2l0ZS11cmxcIiBocmVmPVwiJHt1cmx9XCI+JHt0ZXh0fTwvYT5gO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgYWRkQnJlYWRjcnVtYihcclxuICAgIG5vZGVOYW1lOiBzdHJpbmcsXHJcbiAgICBzcGFuQ2xhc3NlcyA9ICdiYy1jdXJyZW50JyxcclxuICAgIGxpbmtDbGFzc2VzID0gJ2JjLW5vZGUnXHJcbiAgKSB7XHJcbiAgICBjb25zdCBzcGFucyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjdGwwMF9wYXRoJyk/LmNoaWxkcmVuO1xyXG4gICAgLy9nZXQgbGFzdCBjaGlsZFxyXG4gICAgY29uc3QgbGFzdEluZGV4ID0gc3BhbnM/Lml0ZW0oc3BhbnMubGVuZ3RoIC0gMSkgYXMgSFRNTFNwYW5FbGVtZW50O1xyXG4gICAgY29uc3QgaW5uZXJIVE1MID0gbGFzdEluZGV4LmlubmVySFRNTDtcclxuICAgIGxhc3RJbmRleC5pbm5lckhUTUwgPSAnJztcclxuICAgIGxhc3RJbmRleC5jbGFzc0xpc3QucmVtb3ZlKC4uLlsnYmMtY3VycmVudCddKTtcclxuICAgIC8vYWRkIG5ldyBsaW5rXHJcbiAgICBsYXN0SW5kZXguYXBwZW5kQ2hpbGQoXHJcbiAgICAgIHRoaXMuY3JlYXRlTGluayhpbm5lckhUTUwsIGxvY2F0aW9uLnBhdGhuYW1lLCBsaW5rQ2xhc3NlcylcclxuICAgICk7XHJcbiAgICAvL2FkZCBuZXcgc3BhbiBhbmQgZW1wdHkgc3BhblxyXG4gICAgY29uc3QgbmV3U3BhbiA9IHRoaXMuY3JlYXRlU3Bhbihub2RlTmFtZSwgc3BhbkNsYXNzZXMpO1xyXG4gICAgY29uc3QgZW1wdHlTcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpO1xyXG4gICAgbGFzdEluZGV4LmFmdGVyKC4uLltlbXB0eVNwYW4sIG5ld1NwYW5dKTtcclxuICB9XHJcblxyXG4gIGFkZEJyZWFkY3J1bWJMaXN0KFxyXG4gICAgbm9kZUxpc3Q6IEJyZWFkY3J1bWJzW10sXHJcbiAgICBzcGFuQ2xhc3NlcyA9ICdiYy1jdXJyZW50JyxcclxuICAgIGxpbmtDbGFzc2VzID0gJ2JjLW5vZGUnXHJcbiAgKSB7XHJcbiAgICBjb25zdCBzcGFucyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjdGwwMF9wYXRoJyk/LmNoaWxkTm9kZXM7XHJcbiAgICAvL2dldCBsYXN0IGNoaWxkXHJcbiAgICBjb25zdCBsYXN0U3BhbiA9IHNwYW5zPy5pdGVtKHNwYW5zLmxlbmd0aCAtIDEpIGFzIEhUTUxTcGFuRWxlbWVudDtcclxuICAgIGNvbnN0IGlubmVySFRNTCA9IGxhc3RTcGFuLmlubmVySFRNTDtcclxuICAgIGxhc3RTcGFuLmNsYXNzTGlzdC5yZW1vdmUoLi4uW3NwYW5DbGFzc2VzXSk7XHJcbiAgICBsYXN0U3Bhbi5pbm5lckhUTUwgPSAnJztcclxuICAgIC8vYWRkIG5ldyBsaW5rXHJcbiAgICBsYXN0U3Bhbi5hcHBlbmRDaGlsZChcclxuICAgICAgdGhpcy5jcmVhdGVMaW5rKGlubmVySFRNTCwgbG9jYXRpb24ucGF0aG5hbWUsIGxpbmtDbGFzc2VzKVxyXG4gICAgKTtcclxuXHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IG5vZGVMaXN0Lmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGNvbnN0IGxhc3RJbmRleCA9IHNwYW5zPy5pdGVtKHNwYW5zLmxlbmd0aCAtIDEpIGFzIEhUTUxTcGFuRWxlbWVudDtcclxuICAgICAgaWYgKG5vZGVMaXN0W2ldLm5vZGVVcmwpIHtcclxuICAgICAgICBjb25zdCBuZXdTcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpO1xyXG4gICAgICAgIG5ld1NwYW4uYXBwZW5kQ2hpbGQoXHJcbiAgICAgICAgICB0aGlzLmNyZWF0ZUxpbmsoXHJcbiAgICAgICAgICAgIG5vZGVMaXN0W2ldLm5vZGVOYW1lLFxyXG4gICAgICAgICAgICBub2RlTGlzdFtpXS5ub2RlVXJsLFxyXG4gICAgICAgICAgICBsaW5rQ2xhc3Nlc1xyXG4gICAgICAgICAgKVxyXG4gICAgICAgICk7XHJcbiAgICAgICAgY29uc3QgZW1wdHlTcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpO1xyXG4gICAgICAgIGxhc3RJbmRleC5hZnRlciguLi5bZW1wdHlTcGFuLCBuZXdTcGFuXSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgY29uc3QgbmV3U3BhbiA9IHRoaXMuY3JlYXRlU3Bhbihub2RlTGlzdFtpXS5ub2RlTmFtZSwgc3BhbkNsYXNzZXMpO1xyXG4gICAgICAgIGNvbnN0IGVtcHR5U3BhbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKTtcclxuICAgICAgICBsYXN0SW5kZXguYWZ0ZXIoLi4uW2VtcHR5U3BhbiwgbmV3U3Bhbl0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjcmVhdGVCcmVhZGNydW1icyhcclxuICAgIG5vZGVMaXN0OiBCcmVhZGNydW1ic1tdLFxyXG4gICAgc3BhbkNsYXNzZXMgPSAnYmMtY3VycmVudCcsXHJcbiAgICBsaW5rQ2xhc3NlcyA9ICdiYy1ub2RlJ1xyXG4gICkge1xyXG4gICAgY29uc3QgY3VycmVudFNwYW4gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChcclxuICAgICAgJ2N0bDAwX3BhdGgnXHJcbiAgICApIGFzIEhUTUxTcGFuRWxlbWVudDtcclxuICAgIGN1cnJlbnRTcGFuLmlubmVySFRNTCA9ICcnO1xyXG4gICAgY29uc3QgbmV3U3BhbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKTtcclxuICAgIGN1cnJlbnRTcGFuPy5hcHBlbmRDaGlsZChuZXdTcGFuKTtcclxuICAgIG5ld1NwYW4uYXBwZW5kQ2hpbGQoXHJcbiAgICAgIHRoaXMuY3JlYXRlTGluayhub2RlTGlzdFswXS5ub2RlTmFtZSwgbm9kZUxpc3RbMF0ubm9kZVVybCwgbGlua0NsYXNzZXMpXHJcbiAgICApO1xyXG4gICAgY29uc3Qgc3BhbnMgPSBjdXJyZW50U3Bhbj8uY2hpbGRyZW47XHJcbiAgICBmb3IgKGxldCBpID0gMTsgaSA8IG5vZGVMaXN0Lmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGNvbnN0IGxhc3RJbmRleCA9IHNwYW5zPy5pdGVtKHNwYW5zLmxlbmd0aCAtIDEpIGFzIEhUTUxTcGFuRWxlbWVudDtcclxuICAgICAgaWYgKG5vZGVMaXN0W2ldLm5vZGVVcmwpIHtcclxuICAgICAgICBjb25zdCBuZXdTcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpO1xyXG4gICAgICAgIG5ld1NwYW4uYXBwZW5kQ2hpbGQoXHJcbiAgICAgICAgICB0aGlzLmNyZWF0ZUxpbmsoXHJcbiAgICAgICAgICAgIG5vZGVMaXN0W2ldLm5vZGVOYW1lLFxyXG4gICAgICAgICAgICBub2RlTGlzdFtpXS5ub2RlVXJsLFxyXG4gICAgICAgICAgICBsaW5rQ2xhc3Nlc1xyXG4gICAgICAgICAgKVxyXG4gICAgICAgICk7XHJcbiAgICAgICAgY29uc3QgZW1wdHlTcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpO1xyXG4gICAgICAgIGxhc3RJbmRleD8uYWZ0ZXIoLi4uW2VtcHR5U3BhbiwgbmV3U3Bhbl0pO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGNvbnN0IG5ld1NwYW4gPSB0aGlzLmNyZWF0ZVNwYW4obm9kZUxpc3RbaV0ubm9kZU5hbWUsIHNwYW5DbGFzc2VzKTtcclxuICAgICAgICBjb25zdCBlbXB0eVNwYW4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7XHJcbiAgICAgICAgbGFzdEluZGV4LmFmdGVyKC4uLltlbXB0eVNwYW4sIG5ld1NwYW5dKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmVtb3ZlTGFzdEJyZWFkY3J1bWIoKSB7XHJcbiAgICBjb25zdCBzcGFucyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjdGwwMF9wYXRoJyk/LmNoaWxkcmVuO1xyXG4gICAgc3BhbnM/Lml0ZW0oc3BhbnMubGVuZ3RoIC0gMSk/LnJlbW92ZSgpO1xyXG4gICAgc3BhbnM/Lml0ZW0oc3BhbnMubGVuZ3RoIC0gMSk/LnJlbW92ZSgpO1xyXG4gICAgdGhpcy5zZXRDdXJyZW50Tm9kZShzcGFucyk7XHJcbiAgfVxyXG5cclxuICByZW1vdmVCcmVhZGNydW1iQnlOb2RlTmFtZShub2RlTmFtZTogc3RyaW5nKSB7XHJcbiAgICBjb25zdCBzcGFucyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjdGwwMF9wYXRoJylcclxuICAgICAgPy5jaGlsZHJlbiBhcyBIVE1MQ29sbGVjdGlvbjtcclxuICAgIGxldCBpbmRleCA9IC0xO1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzcGFucy5sZW5ndGg7IGkrKykge1xyXG4gICAgICBjb25zdCBzcGFuID0gc3BhbnMuaXRlbShpKTtcclxuICAgICAgaWYgKHNwYW4/LnRleHRDb250ZW50Py50cmltKCkgPT09IG5vZGVOYW1lKSB7XHJcbiAgICAgICAgaW5kZXggPSBpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBjb25zdCBsYXN0Tm9kZSA9IHNwYW5zLmxlbmd0aCAtIDEgPT09IGluZGV4O1xyXG4gICAgaWYgKGluZGV4ICE9PSAtMSAmJiAhbGFzdE5vZGUpIHtcclxuICAgICAgc3BhbnM/Lml0ZW0oaW5kZXgpPy5yZW1vdmUoKTtcclxuICAgICAgc3BhbnM/Lml0ZW0oaW5kZXgpPy5yZW1vdmUoKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHNwYW5zPy5pdGVtKGluZGV4KT8ucmVtb3ZlKCk7XHJcbiAgICAgIHNwYW5zPy5pdGVtKGluZGV4IC0gMSk/LnJlbW92ZSgpO1xyXG4gICAgfVxyXG4gICAgaWYgKGxhc3ROb2RlKSB7XHJcbiAgICAgIHRoaXMuc2V0Q3VycmVudE5vZGUoc3BhbnMpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmVtb3ZlTGFzdEJyZWFkY3J1bWJzQnlMZW5ndGgobGVuZ3RoOiBudW1iZXIpIHtcclxuICAgIGNvbnN0IHNwYW5zID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2N0bDAwX3BhdGgnKVxyXG4gICAgICA/LmNoaWxkcmVuIGFzIEhUTUxDb2xsZWN0aW9uO1xyXG4gICAgd2hpbGUgKGxlbmd0aCA+IDApIHtcclxuICAgICAgc3BhbnM/Lml0ZW0oc3BhbnMubGVuZ3RoIC0gMSk/LnJlbW92ZSgpO1xyXG4gICAgICBzcGFucz8uaXRlbShzcGFucy5sZW5ndGggLSAxKT8ucmVtb3ZlKCk7XHJcbiAgICAgIGxlbmd0aC0tO1xyXG4gICAgfVxyXG4gICAgaWYgKHNwYW5zLmxlbmd0aCA+IDApIHtcclxuICAgICAgdGhpcy5zZXRDdXJyZW50Tm9kZShzcGFucyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNyZWF0ZUxpbmsoXHJcbiAgICBpbm5lckhUTUw6IHN0cmluZyxcclxuICAgIGhyZWY6IHN0cmluZyB8IG51bGwsXHJcbiAgICBjbGFzc2VzOiBzdHJpbmdcclxuICApOiBIVE1MQW5jaG9yRWxlbWVudCB7XHJcbiAgICBjb25zdCBsaW5rID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpO1xyXG4gICAgbGluay5pbm5lckhUTUwgPSAnICcgKyBpbm5lckhUTUw7XHJcbiAgICBsaW5rLmhyZWYgPSBocmVmID8/ICcnO1xyXG4gICAgbGluay5jbGFzc0xpc3QuYWRkKC4uLltjbGFzc2VzXSk7XHJcbiAgICByZXR1cm4gbGluaztcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY3JlYXRlU3Bhbihpbm5lckhUTUw6IHN0cmluZywgY2xhc3Nlczogc3RyaW5nKTogSFRNTFNwYW5FbGVtZW50IHtcclxuICAgIGNvbnN0IHNwYW4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7XHJcbiAgICBzcGFuLmNsYXNzTGlzdC5hZGQoLi4uW2NsYXNzZXNdKTtcclxuICAgIHNwYW4uaW5uZXJIVE1MID0gJyAnICsgaW5uZXJIVE1MO1xyXG4gICAgcmV0dXJuIHNwYW47XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldEN1cnJlbnROb2RlKHNwYW5zPzogSFRNTENvbGxlY3Rpb24pIHtcclxuICAgIGNvbnN0IGxhc3RTcGFuID0gc3BhbnM/Lml0ZW0oc3BhbnMubGVuZ3RoIC0gMSkgYXMgSFRNTFNwYW5FbGVtZW50O1xyXG4gICAgY29uc3QgbGFzdFNwYW5MaW5rID0gc3BhbnNcclxuICAgICAgPy5pdGVtKHNwYW5zLmxlbmd0aCAtIDEpXHJcbiAgICAgID8uY2hpbGRyZW4uaXRlbSgwKSBhcyBIVE1MQW5jaG9yRWxlbWVudDtcclxuICAgIGxhc3RTcGFuPy5jbGFzc0xpc3QuYWRkKC4uLlsnYmMtY3VycmVudCddKTtcclxuICAgIGxhc3RTcGFuLmlubmVySFRNTCA9IGxhc3RTcGFuTGluay5pbm5lckhUTUw7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -1,22 +1,22 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
import * as i1 from "ngx-toastr";
|
|
4
|
-
export class CommonService {
|
|
5
|
-
constructor(toastrService) {
|
|
6
|
-
this.toastrService = toastrService;
|
|
7
|
-
}
|
|
8
|
-
copyToClipboard(copyText, message) {
|
|
9
|
-
navigator.clipboard.writeText(copyText.toString());
|
|
10
|
-
this.toastrService.success(message, '', {
|
|
11
|
-
positionClass: 'toast-bottom-right',
|
|
12
|
-
});
|
|
13
|
-
}
|
|
14
|
-
print(element, title, classes) {
|
|
15
|
-
const styles = this.getElementTag('style');
|
|
16
|
-
const links = this.getElementTag('link');
|
|
17
|
-
const scripts = this.getElementTag('script');
|
|
18
|
-
const printContents = document.getElementById(element)?.innerHTML;
|
|
19
|
-
const popupWin = window.open('', '', 'top=0,left=0,height=100%,width=auto');
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "ngx-toastr";
|
|
4
|
+
export class CommonService {
|
|
5
|
+
constructor(toastrService) {
|
|
6
|
+
this.toastrService = toastrService;
|
|
7
|
+
}
|
|
8
|
+
copyToClipboard(copyText, message) {
|
|
9
|
+
navigator.clipboard.writeText(copyText.toString());
|
|
10
|
+
this.toastrService.success(message, '', {
|
|
11
|
+
positionClass: 'toast-bottom-right',
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
print(element, title, classes) {
|
|
15
|
+
const styles = this.getElementTag('style');
|
|
16
|
+
const links = this.getElementTag('link');
|
|
17
|
+
const scripts = this.getElementTag('script');
|
|
18
|
+
const printContents = document.getElementById(element)?.innerHTML;
|
|
19
|
+
const popupWin = window.open('', '', 'top=0,left=0,height=100%,width=auto');
|
|
20
20
|
const data = `
|
|
21
21
|
<!DOCTYPE html>
|
|
22
22
|
<head>
|
|
@@ -40,35 +40,35 @@ export class CommonService {
|
|
|
40
40
|
${scripts}
|
|
41
41
|
</body>
|
|
42
42
|
|
|
43
|
-
</html>`;
|
|
44
|
-
popupWin?.document.open();
|
|
45
|
-
popupWin?.document.write(data);
|
|
46
|
-
popupWin?.document.close();
|
|
47
|
-
popupWin?.focus();
|
|
48
|
-
popupWin?.addEventListener('focus', () => {
|
|
49
|
-
setTimeout(() => {
|
|
50
|
-
if (popupWin.document.hasFocus()) {
|
|
51
|
-
popupWin.print();
|
|
52
|
-
popupWin.close();
|
|
53
|
-
}
|
|
54
|
-
}, 1000);
|
|
55
|
-
});
|
|
56
|
-
}
|
|
57
|
-
getElementTag(tag) {
|
|
58
|
-
const html = [];
|
|
59
|
-
const elements = document.getElementsByTagName(tag);
|
|
60
|
-
for (let index = 0; index < elements.length; index++) {
|
|
61
|
-
html.push(elements[index].outerHTML);
|
|
62
|
-
}
|
|
63
|
-
return html.join('\r\n');
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
69
|
-
type: Injectable,
|
|
70
|
-
args: [{
|
|
71
|
-
providedIn: 'root',
|
|
72
|
-
}]
|
|
73
|
-
}], ctorParameters: function () { return [{ type: i1.ToastrService }]; } });
|
|
74
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
43
|
+
</html>`;
|
|
44
|
+
popupWin?.document.open();
|
|
45
|
+
popupWin?.document.write(data);
|
|
46
|
+
popupWin?.document.close();
|
|
47
|
+
popupWin?.focus();
|
|
48
|
+
popupWin?.addEventListener('focus', () => {
|
|
49
|
+
setTimeout(() => {
|
|
50
|
+
if (popupWin.document.hasFocus()) {
|
|
51
|
+
popupWin.print();
|
|
52
|
+
popupWin.close();
|
|
53
|
+
}
|
|
54
|
+
}, 1000);
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
getElementTag(tag) {
|
|
58
|
+
const html = [];
|
|
59
|
+
const elements = document.getElementsByTagName(tag);
|
|
60
|
+
for (let index = 0; index < elements.length; index++) {
|
|
61
|
+
html.push(elements[index].outerHTML);
|
|
62
|
+
}
|
|
63
|
+
return html.join('\r\n');
|
|
64
|
+
}
|
|
65
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: CommonService, deps: [{ token: i1.ToastrService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
66
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: CommonService, providedIn: 'root' }); }
|
|
67
|
+
}
|
|
68
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: CommonService, decorators: [{
|
|
69
|
+
type: Injectable,
|
|
70
|
+
args: [{
|
|
71
|
+
providedIn: 'root',
|
|
72
|
+
}]
|
|
73
|
+
}], ctorParameters: function () { return [{ type: i1.ToastrService }]; } });
|
|
74
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1pcGEtbGlicmFyeS9zcmMvbGliL3NlcnZpY2VzL2NvbW1vbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQU0zQyxNQUFNLE9BQU8sYUFBYTtJQUN4QixZQUFvQixhQUE0QjtRQUE1QixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtJQUFHLENBQUM7SUFFcEQsZUFBZSxDQUFDLFFBQWEsRUFBRSxPQUFlO1FBQzVDLFNBQVMsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQ25ELElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxFQUFFLEVBQUU7WUFDdEMsYUFBYSxFQUFFLG9CQUFvQjtTQUNwQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsS0FBSyxDQUFDLE9BQWUsRUFBRSxLQUFhLEVBQUUsT0FBZ0I7UUFDcEQsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMzQyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3pDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFN0MsTUFBTSxhQUFhLEdBQUcsUUFBUSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsRUFBRSxTQUFTLENBQUM7UUFDbEUsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLHFDQUFxQyxDQUFDLENBQUM7UUFDNUUsTUFBTSxJQUFJLEdBQUc7OztzQkFHSyxLQUFLOztjQUViLEtBQUs7Y0FDTCxNQUFNOzs7Ozs7Ozs7Ozs7eUJBWUssT0FBTztjQUNsQixhQUFhO2NBQ2IsT0FBTzs7O2dCQUdMLENBQUM7UUFDYixRQUFRLEVBQUUsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzFCLFFBQVEsRUFBRSxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQy9CLFFBQVEsRUFBRSxRQUFRLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDM0IsUUFBUSxFQUFFLEtBQUssRUFBRSxDQUFDO1FBQ2xCLFFBQVEsRUFBRSxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsR0FBRyxFQUFFO1lBQ3ZDLFVBQVUsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2QsSUFBSSxRQUFRLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxFQUFFO29CQUNoQyxRQUFRLENBQUMsS0FBSyxFQUFFLENBQUM7b0JBQ2pCLFFBQVEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztpQkFDbEI7WUFDSCxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDWCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyxhQUFhLENBQUMsR0FBZ0M7UUFDcEQsTUFBTSxJQUFJLEdBQWEsRUFBRSxDQUFDO1FBQzFCLE1BQU0sUUFBUSxHQUFHLFFBQVEsQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNwRCxLQUFLLElBQUksS0FBSyxHQUFHLENBQUMsRUFBRSxLQUFLLEdBQUcsUUFBUSxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsRUFBRTtZQUNwRCxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQztTQUN0QztRQUVELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMzQixDQUFDOzhHQS9EVSxhQUFhO2tIQUFiLGFBQWEsY0FGWixNQUFNOzsyRkFFUCxhQUFhO2tCQUh6QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgVG9hc3RyU2VydmljZSB9IGZyb20gJ25neC10b2FzdHInO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIENvbW1vblNlcnZpY2Uge1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgdG9hc3RyU2VydmljZTogVG9hc3RyU2VydmljZSkge31cclxuXHJcbiAgY29weVRvQ2xpcGJvYXJkKGNvcHlUZXh0OiBhbnksIG1lc3NhZ2U6IHN0cmluZykge1xyXG4gICAgbmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQoY29weVRleHQudG9TdHJpbmcoKSk7XHJcbiAgICB0aGlzLnRvYXN0clNlcnZpY2Uuc3VjY2VzcyhtZXNzYWdlLCAnJywge1xyXG4gICAgICBwb3NpdGlvbkNsYXNzOiAndG9hc3QtYm90dG9tLXJpZ2h0JyxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpbnQoZWxlbWVudDogc3RyaW5nLCB0aXRsZTogc3RyaW5nLCBjbGFzc2VzPzogc3RyaW5nKSB7XHJcbiAgICBjb25zdCBzdHlsZXMgPSB0aGlzLmdldEVsZW1lbnRUYWcoJ3N0eWxlJyk7XHJcbiAgICBjb25zdCBsaW5rcyA9IHRoaXMuZ2V0RWxlbWVudFRhZygnbGluaycpO1xyXG4gICAgY29uc3Qgc2NyaXB0cyA9IHRoaXMuZ2V0RWxlbWVudFRhZygnc2NyaXB0Jyk7XHJcblxyXG4gICAgY29uc3QgcHJpbnRDb250ZW50cyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsZW1lbnQpPy5pbm5lckhUTUw7XHJcbiAgICBjb25zdCBwb3B1cFdpbiA9IHdpbmRvdy5vcGVuKCcnLCAnJywgJ3RvcD0wLGxlZnQ9MCxoZWlnaHQ9MTAwJSx3aWR0aD1hdXRvJyk7XHJcbiAgICBjb25zdCBkYXRhID0gYFxyXG4gICAgICAgIDwhRE9DVFlQRSBodG1sPlxyXG4gICAgICAgICAgICA8aGVhZD5cclxuICAgICAgICAgICAgPHRpdGxlPiAke3RpdGxlfSA8L3RpdGxlPlxyXG4gICAgICAgICAgICA8bWV0YSBjaGFyc2V0PVwidXRmLThcIj5cclxuICAgICAgICAgICAgJHtsaW5rc31cclxuICAgICAgICAgICAgJHtzdHlsZXN9XHJcbiAgICAgICAgICAgIDxzdHlsZT5cclxuICAgICAgICAgICAgICAgIEBtZWRpYSBwcmludCB7XHJcbiAgICAgICAgICAgICAgICAgIC5ub1ByaW50e1xyXG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICBib2R5IHtcclxuICAgICAgICAgICAgICAgICAgICBkaXJlY3Rpb246IHJ0bDtcclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgPC9zdHlsZT5cclxuICAgICAgICAgICAgPC9oZWFkPlxyXG4gICAgICAgICAgPGJvZHkgY2xhc3M9XCIke2NsYXNzZXN9XCI+XHJcbiAgICAgICAgICAgICR7cHJpbnRDb250ZW50c31cclxuICAgICAgICAgICAgJHtzY3JpcHRzfVxyXG4gICAgICAgICAgPC9ib2R5PlxyXG5cclxuICAgICAgICA8L2h0bWw+YDtcclxuICAgIHBvcHVwV2luPy5kb2N1bWVudC5vcGVuKCk7XHJcbiAgICBwb3B1cFdpbj8uZG9jdW1lbnQud3JpdGUoZGF0YSk7XHJcbiAgICBwb3B1cFdpbj8uZG9jdW1lbnQuY2xvc2UoKTtcclxuICAgIHBvcHVwV2luPy5mb2N1cygpO1xyXG4gICAgcG9wdXBXaW4/LmFkZEV2ZW50TGlzdGVuZXIoJ2ZvY3VzJywgKCkgPT4ge1xyXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICBpZiAocG9wdXBXaW4uZG9jdW1lbnQuaGFzRm9jdXMoKSkge1xyXG4gICAgICAgICAgcG9wdXBXaW4ucHJpbnQoKTtcclxuICAgICAgICAgIHBvcHVwV2luLmNsb3NlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9LCAxMDAwKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRFbGVtZW50VGFnKHRhZzoga2V5b2YgSFRNTEVsZW1lbnRUYWdOYW1lTWFwKTogc3RyaW5nIHtcclxuICAgIGNvbnN0IGh0bWw6IHN0cmluZ1tdID0gW107XHJcbiAgICBjb25zdCBlbGVtZW50cyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKHRhZyk7XHJcbiAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgZWxlbWVudHMubGVuZ3RoOyBpbmRleCsrKSB7XHJcbiAgICAgIGh0bWwucHVzaChlbGVtZW50c1tpbmRleF0ub3V0ZXJIVE1MKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gaHRtbC5qb2luKCdcXHJcXG4nKTtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -1,35 +1,35 @@
|
|
|
1
|
-
import { Component, Input } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
import * as i1 from "ngx-sharebuttons/popup";
|
|
4
|
-
export class ShareButtonComponent {
|
|
5
|
-
constructor() {
|
|
6
|
-
this.title = '';
|
|
7
|
-
this.description = '';
|
|
8
|
-
this.btnLabel = '';
|
|
9
|
-
}
|
|
10
|
-
ngAfterViewInit() {
|
|
11
|
-
const elements = document.getElementsByClassName('sb-show-icon');
|
|
12
|
-
if (!elements[0].getAttribute('id')) {
|
|
13
|
-
elements[0].setAttribute('type', 'button');
|
|
14
|
-
elements[0].setAttribute('id', 'IPAShareBtn');
|
|
15
|
-
const label = document.createElement('label');
|
|
16
|
-
label.innerHTML = this.btnLabel;
|
|
17
|
-
label.classList.add('sm-share-title');
|
|
18
|
-
label.classList.add('me-1');
|
|
19
|
-
elements[0].before(label);
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
26
|
-
type: Component,
|
|
27
|
-
args: [{ selector: 'ipa-share-button', template: "<share-popup-button [title]=\"title\" [description]=\"description\" [icon]=\"'share-alt'\"\r\n [include]=\"['facebook','twitter','linkedin','telegram','whatsapp','copy']\">\r\n</share-popup-button>" }]
|
|
28
|
-
}], ctorParameters: function () { return []; }, propDecorators: { title: [{
|
|
29
|
-
type: Input
|
|
30
|
-
}], description: [{
|
|
31
|
-
type: Input
|
|
32
|
-
}], btnLabel: [{
|
|
33
|
-
type: Input
|
|
34
|
-
}] } });
|
|
35
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
import { Component, Input } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "ngx-sharebuttons/popup";
|
|
4
|
+
export class ShareButtonComponent {
|
|
5
|
+
constructor() {
|
|
6
|
+
this.title = '';
|
|
7
|
+
this.description = '';
|
|
8
|
+
this.btnLabel = '';
|
|
9
|
+
}
|
|
10
|
+
ngAfterViewInit() {
|
|
11
|
+
const elements = document.getElementsByClassName('sb-show-icon');
|
|
12
|
+
if (!elements[0].getAttribute('id')) {
|
|
13
|
+
elements[0].setAttribute('type', 'button');
|
|
14
|
+
elements[0].setAttribute('id', 'IPAShareBtn');
|
|
15
|
+
const label = document.createElement('label');
|
|
16
|
+
label.innerHTML = this.btnLabel;
|
|
17
|
+
label.classList.add('sm-share-title');
|
|
18
|
+
label.classList.add('me-1');
|
|
19
|
+
elements[0].before(label);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: ShareButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
23
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", type: ShareButtonComponent, selector: "ipa-share-button", inputs: { title: "title", description: "description", btnLabel: "btnLabel" }, ngImport: i0, template: "<share-popup-button [title]=\"title\" [description]=\"description\" [icon]=\"'share-alt'\"\r\n [include]=\"['facebook','twitter','linkedin','telegram','whatsapp','copy']\">\r\n</share-popup-button>", styles: [""], dependencies: [{ kind: "component", type: i1.SharePopupComponent, selector: "share-popup-button", inputs: ["theme", "icon", "text", "include", "exclude", "closeIcon", "url", "title", "description", "image", "tags", "autoSetMeta", "show", "showIcon", "showText", "disabled", "hasBackdrop", "backdropClass"], outputs: ["opened", "closed", "popupClosed"] }] }); }
|
|
24
|
+
}
|
|
25
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: ShareButtonComponent, decorators: [{
|
|
26
|
+
type: Component,
|
|
27
|
+
args: [{ selector: 'ipa-share-button', template: "<share-popup-button [title]=\"title\" [description]=\"description\" [icon]=\"'share-alt'\"\r\n [include]=\"['facebook','twitter','linkedin','telegram','whatsapp','copy']\">\r\n</share-popup-button>" }]
|
|
28
|
+
}], ctorParameters: function () { return []; }, propDecorators: { title: [{
|
|
29
|
+
type: Input
|
|
30
|
+
}], description: [{
|
|
31
|
+
type: Input
|
|
32
|
+
}], btnLabel: [{
|
|
33
|
+
type: Input
|
|
34
|
+
}] } });
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhcmUtYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWlwYS1saWJyYXJ5L3NyYy9saWIvc2hhcmUtYnV0dG9uL3NoYXJlLWJ1dHRvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1pcGEtbGlicmFyeS9zcmMvbGliL3NoYXJlLWJ1dHRvbi9zaGFyZS1idXR0b24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBaUIsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFPaEUsTUFBTSxPQUFPLG9CQUFvQjtJQUkvQjtRQUhTLFVBQUssR0FBRyxFQUFFLENBQUM7UUFDWCxnQkFBVyxHQUFHLEVBQUUsQ0FBQztRQUNqQixhQUFRLEdBQUcsRUFBRSxDQUFDO0lBQ1IsQ0FBQztJQUNoQixlQUFlO1FBQ2IsTUFBTSxRQUFRLEdBQUcsUUFBUSxDQUFDLHNCQUFzQixDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ2pFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ25DLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1lBQzNDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLGFBQWEsQ0FBQyxDQUFDO1lBQzlDLE1BQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDOUMsS0FBSyxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO1lBQ2hDLEtBQUssQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLENBQUM7WUFDdEMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDNUIsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUMzQjtJQUNILENBQUM7OEdBaEJVLG9CQUFvQjtrR0FBcEIsb0JBQW9CLHNJQ1BqQywwTUFFcUI7OzJGREtSLG9CQUFvQjtrQkFMaEMsU0FBUzsrQkFDRSxrQkFBa0I7MEVBS25CLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEFmdGVyVmlld0luaXQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2lwYS1zaGFyZS1idXR0b24nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9zaGFyZS1idXR0b24uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3NoYXJlLWJ1dHRvbi5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2hhcmVCdXR0b25Db21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcclxuICBASW5wdXQoKSB0aXRsZSA9ICcnO1xyXG4gIEBJbnB1dCgpIGRlc2NyaXB0aW9uID0gJyc7XHJcbiAgQElucHV0KCkgYnRuTGFiZWwgPSAnJztcclxuICBjb25zdHJ1Y3RvcigpIHt9XHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgY29uc3QgZWxlbWVudHMgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCdzYi1zaG93LWljb24nKTtcclxuICAgIGlmICghZWxlbWVudHNbMF0uZ2V0QXR0cmlidXRlKCdpZCcpKSB7XHJcbiAgICAgIGVsZW1lbnRzWzBdLnNldEF0dHJpYnV0ZSgndHlwZScsICdidXR0b24nKTtcclxuICAgICAgZWxlbWVudHNbMF0uc2V0QXR0cmlidXRlKCdpZCcsICdJUEFTaGFyZUJ0bicpO1xyXG4gICAgICBjb25zdCBsYWJlbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2xhYmVsJyk7XHJcbiAgICAgIGxhYmVsLmlubmVySFRNTCA9IHRoaXMuYnRuTGFiZWw7XHJcbiAgICAgIGxhYmVsLmNsYXNzTGlzdC5hZGQoJ3NtLXNoYXJlLXRpdGxlJyk7XHJcbiAgICAgIGxhYmVsLmNsYXNzTGlzdC5hZGQoJ21lLTEnKTtcclxuICAgICAgZWxlbWVudHNbMF0uYmVmb3JlKGxhYmVsKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiPHNoYXJlLXBvcHVwLWJ1dHRvbiBbdGl0bGVdPVwidGl0bGVcIiBbZGVzY3JpcHRpb25dPVwiZGVzY3JpcHRpb25cIiBbaWNvbl09XCInc2hhcmUtYWx0J1wiXHJcbiAgICBbaW5jbHVkZV09XCJbJ2ZhY2Vib29rJywndHdpdHRlcicsJ2xpbmtlZGluJywndGVsZWdyYW0nLCd3aGF0c2FwcCcsJ2NvcHknXVwiPlxyXG48L3NoYXJlLXBvcHVwLWJ1dHRvbj4iXX0=
|