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.
Files changed (82) hide show
  1. package/{esm2020 → esm2022}/lib/core/components/loading/loading.component.mjs +37 -37
  2. package/{esm2020 → esm2022}/lib/core/interceptors/error.interceptor.mjs +46 -46
  3. package/{esm2020 → esm2022}/lib/core/interceptors/loading.interceptor.mjs +58 -58
  4. package/{esm2020 → esm2022}/lib/core/interceptors/myIPAToken.interceptor.mjs +25 -25
  5. package/{esm2020 → esm2022}/lib/core/interceptors/token.interceptor.mjs +81 -81
  6. package/{esm2020 → esm2022}/lib/core/services/auth.service.mjs +62 -62
  7. package/{esm2020 → esm2022}/lib/core/services/error.service.mjs +55 -55
  8. package/{esm2020 → esm2022}/lib/core/services/loader.service.mjs +24 -24
  9. package/{esm2020 → esm2022}/lib/core/services/token.service.mjs +22 -22
  10. package/{esm2020 → esm2022}/lib/generate-form/generate-form.component.mjs +153 -153
  11. package/{esm2020 → esm2022}/lib/ipa-form/datepicker/datepicker.component.mjs +88 -88
  12. package/{esm2020 → esm2022}/lib/ipa-form/datepicker/gregorian-datepicker/gregorian-datepicker.component.mjs +27 -27
  13. package/{esm2020 → esm2022}/lib/ipa-form/datepicker/gregorian-datepicker/gregorian18n.mjs +38 -38
  14. package/{esm2020 → esm2022}/lib/ipa-form/datepicker/hijri-datepicker/IslamicI18n.mjs +38 -38
  15. package/{esm2020 → esm2022}/lib/ipa-form/datepicker/hijri-datepicker/hijri-datepicker.component.mjs +27 -27
  16. package/{esm2020 → esm2022}/lib/ipa-form/dropdown-input/dropdown-input.component.mjs +84 -84
  17. package/{esm2020 → esm2022}/lib/ipa-form/file-upload/file-upload.component.mjs +142 -142
  18. package/{esm2020 → esm2022}/lib/ipa-form/ipa-form.service.mjs +290 -290
  19. package/{esm2020 → esm2022}/lib/ipa-form/recaptcha/recaptcha.component.mjs +55 -55
  20. package/{esm2020 → esm2022}/lib/ipa-form/text-input/text-input.component.mjs +93 -93
  21. package/{esm2020 → esm2022}/lib/ipa-form/textarea-input/textarea-input.component.mjs +76 -76
  22. package/{esm2020 → esm2022}/lib/models/apiException.mjs +1 -1
  23. package/{esm2020 → esm2022}/lib/models/apiResponse.mjs +1 -1
  24. package/{esm2020 → esm2022}/lib/models/breadcrumbs.model.mjs +1 -1
  25. package/{esm2020 → esm2022}/lib/models/decodedToken.model.mjs +1 -1
  26. package/{esm2020 → esm2022}/lib/models/exceptionUrl.model.mjs +1 -1
  27. package/{esm2020 → esm2022}/lib/models/generateForm.model.mjs +1 -1
  28. package/{esm2020 → esm2022}/lib/models/pagedResult.mjs +1 -1
  29. package/{esm2020 → esm2022}/lib/models/user.model.mjs +1 -1
  30. package/{esm2020 → esm2022}/lib/ng-ipa-library.module.mjs +107 -107
  31. package/{esm2020 → esm2022}/lib/pipes/hijri-date.pipe.mjs +18 -18
  32. package/{esm2020 → esm2022}/lib/pipes/pipes.module.mjs +16 -16
  33. package/{esm2020 → esm2022}/lib/services/breadcrumbs.service.mjs +149 -149
  34. package/{esm2020 → esm2022}/lib/services/common.service.mjs +51 -51
  35. package/{esm2020 → esm2022}/lib/share-button/share-button.component.mjs +35 -35
  36. package/{esm2020 → esm2022}/lib/share-button/share-button.module.mjs +50 -50
  37. package/{esm2020 → esm2022}/ng-ipa-library.mjs +4 -4
  38. package/{esm2020 → esm2022}/public-api.mjs +41 -41
  39. package/{fesm2020 → fesm2022}/ng-ipa-library.mjs +1739 -1739
  40. package/fesm2022/ng-ipa-library.mjs.map +1 -0
  41. package/index.d.ts +5 -5
  42. package/lib/core/components/loading/loading.component.d.ts +13 -13
  43. package/lib/core/interceptors/error.interceptor.d.ts +12 -12
  44. package/lib/core/interceptors/loading.interceptor.d.ts +14 -14
  45. package/lib/core/interceptors/myIPAToken.interceptor.d.ts +11 -11
  46. package/lib/core/interceptors/token.interceptor.d.ts +19 -19
  47. package/lib/core/services/auth.service.d.ts +18 -18
  48. package/lib/core/services/error.service.d.ts +19 -19
  49. package/lib/core/services/loader.service.d.ts +12 -12
  50. package/lib/core/services/token.service.d.ts +10 -10
  51. package/lib/generate-form/generate-form.component.d.ts +34 -34
  52. package/lib/ipa-form/datepicker/datepicker.component.d.ts +37 -37
  53. package/lib/ipa-form/datepicker/gregorian-datepicker/gregorian-datepicker.component.d.ts +7 -7
  54. package/lib/ipa-form/datepicker/gregorian-datepicker/gregorian18n.d.ts +11 -11
  55. package/lib/ipa-form/datepicker/hijri-datepicker/IslamicI18n.d.ts +11 -11
  56. package/lib/ipa-form/datepicker/hijri-datepicker/hijri-datepicker.component.d.ts +7 -7
  57. package/lib/ipa-form/dropdown-input/dropdown-input.component.d.ts +34 -34
  58. package/lib/ipa-form/file-upload/file-upload.component.d.ts +40 -40
  59. package/lib/ipa-form/ipa-form.service.d.ts +51 -51
  60. package/lib/ipa-form/recaptcha/recaptcha.component.d.ts +22 -22
  61. package/lib/ipa-form/text-input/text-input.component.d.ts +35 -35
  62. package/lib/ipa-form/textarea-input/textarea-input.component.d.ts +32 -32
  63. package/lib/models/apiException.d.ts +5 -5
  64. package/lib/models/apiResponse.d.ts +5 -5
  65. package/lib/models/breadcrumbs.model.d.ts +4 -4
  66. package/lib/models/decodedToken.model.d.ts +6 -6
  67. package/lib/models/exceptionUrl.model.d.ts +4 -4
  68. package/lib/models/generateForm.model.d.ts +31 -31
  69. package/lib/models/pagedResult.d.ts +4 -4
  70. package/lib/models/user.model.d.ts +7 -7
  71. package/lib/ng-ipa-library.module.d.ts +25 -25
  72. package/lib/pipes/hijri-date.pipe.d.ts +7 -7
  73. package/lib/pipes/pipes.module.d.ts +7 -7
  74. package/lib/services/breadcrumbs.service.d.ts +18 -18
  75. package/lib/services/common.service.d.ts +11 -11
  76. package/lib/share-button/share-button.component.d.ts +11 -11
  77. package/lib/share-button/share-button.module.d.ts +13 -13
  78. package/package.json +12 -18
  79. package/public-api.d.ts +31 -31
  80. package/fesm2015/ng-ipa-library.mjs +0 -1867
  81. package/fesm2015/ng-ipa-library.mjs.map +0 -1
  82. 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
- BreadcrumbsServicefac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: BreadcrumbsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
142
- BreadcrumbsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: BreadcrumbsService, providedIn: 'root' });
143
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", 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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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 { thisprov = 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
- CommonServicefac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: CommonService, deps: [{ token: i1.ToastrService }], target: i0.ɵɵFactoryTarget.Injectable });
67
- CommonService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: CommonService, providedIn: 'root' });
68
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1pcGEtbGlicmFyeS9zcmMvbGliL3NlcnZpY2VzL2NvbW1vbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQU0zQyxNQUFNLE9BQU8sYUFBYTtJQUN4QixZQUFvQixhQUE0QjtRQUE1QixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtJQUFHLENBQUM7SUFFcEQsZUFBZSxDQUFDLFFBQWEsRUFBRSxPQUFlO1FBQzVDLFNBQVMsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQ25ELElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxFQUFFLEVBQUU7WUFDdEMsYUFBYSxFQUFFLG9CQUFvQjtTQUNwQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsS0FBSyxDQUFDLE9BQWUsRUFBRSxLQUFhLEVBQUUsT0FBZ0I7UUFDcEQsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMzQyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3pDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFN0MsTUFBTSxhQUFhLEdBQUcsUUFBUSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsRUFBRSxTQUFTLENBQUM7UUFDbEUsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLHFDQUFxQyxDQUFDLENBQUM7UUFDNUUsTUFBTSxJQUFJLEdBQUc7OztzQkFHSyxLQUFLOztjQUViLEtBQUs7Y0FDTCxNQUFNOzs7Ozs7Ozs7Ozs7eUJBWUssT0FBTztjQUNsQixhQUFhO2NBQ2IsT0FBTzs7O2dCQUdMLENBQUM7UUFDYixRQUFRLEVBQUUsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzFCLFFBQVEsRUFBRSxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQy9CLFFBQVEsRUFBRSxRQUFRLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDM0IsUUFBUSxFQUFFLEtBQUssRUFBRSxDQUFDO1FBQ2xCLFFBQVEsRUFBRSxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsR0FBRyxFQUFFO1lBQ3ZDLFVBQVUsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2QsSUFBSSxRQUFRLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxFQUFFO29CQUNoQyxRQUFRLENBQUMsS0FBSyxFQUFFLENBQUM7b0JBQ2pCLFFBQVEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztpQkFDbEI7WUFDSCxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDWCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyxhQUFhLENBQUMsR0FBZ0M7UUFDcEQsTUFBTSxJQUFJLEdBQWEsRUFBRSxDQUFDO1FBQzFCLE1BQU0sUUFBUSxHQUFHLFFBQVEsQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNwRCxLQUFLLElBQUksS0FBSyxHQUFHLENBQUMsRUFBRSxLQUFLLEdBQUcsUUFBUSxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsRUFBRTtZQUNwRCxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQztTQUN0QztRQUVELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMzQixDQUFDOzswR0EvRFUsYUFBYTs4R0FBYixhQUFhLGNBRlosTUFBTTsyRkFFUCxhQUFhO2tCQUh6QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgVG9hc3RyU2VydmljZSB9IGZyb20gJ25neC10b2FzdHInO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIENvbW1vblNlcnZpY2Uge1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgdG9hc3RyU2VydmljZTogVG9hc3RyU2VydmljZSkge31cclxuXHJcbiAgY29weVRvQ2xpcGJvYXJkKGNvcHlUZXh0OiBhbnksIG1lc3NhZ2U6IHN0cmluZykge1xyXG4gICAgbmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQoY29weVRleHQudG9TdHJpbmcoKSk7XHJcbiAgICB0aGlzLnRvYXN0clNlcnZpY2Uuc3VjY2VzcyhtZXNzYWdlLCAnJywge1xyXG4gICAgICBwb3NpdGlvbkNsYXNzOiAndG9hc3QtYm90dG9tLXJpZ2h0JyxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpbnQoZWxlbWVudDogc3RyaW5nLCB0aXRsZTogc3RyaW5nLCBjbGFzc2VzPzogc3RyaW5nKSB7XHJcbiAgICBjb25zdCBzdHlsZXMgPSB0aGlzLmdldEVsZW1lbnRUYWcoJ3N0eWxlJyk7XHJcbiAgICBjb25zdCBsaW5rcyA9IHRoaXMuZ2V0RWxlbWVudFRhZygnbGluaycpO1xyXG4gICAgY29uc3Qgc2NyaXB0cyA9IHRoaXMuZ2V0RWxlbWVudFRhZygnc2NyaXB0Jyk7XHJcblxyXG4gICAgY29uc3QgcHJpbnRDb250ZW50cyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsZW1lbnQpPy5pbm5lckhUTUw7XHJcbiAgICBjb25zdCBwb3B1cFdpbiA9IHdpbmRvdy5vcGVuKCcnLCAnJywgJ3RvcD0wLGxlZnQ9MCxoZWlnaHQ9MTAwJSx3aWR0aD1hdXRvJyk7XHJcbiAgICBjb25zdCBkYXRhID0gYFxyXG4gICAgICAgIDwhRE9DVFlQRSBodG1sPlxyXG4gICAgICAgICAgICA8aGVhZD5cclxuICAgICAgICAgICAgPHRpdGxlPiAke3RpdGxlfSA8L3RpdGxlPlxyXG4gICAgICAgICAgICA8bWV0YSBjaGFyc2V0PVwidXRmLThcIj5cclxuICAgICAgICAgICAgJHtsaW5rc31cclxuICAgICAgICAgICAgJHtzdHlsZXN9XHJcbiAgICAgICAgICAgIDxzdHlsZT5cclxuICAgICAgICAgICAgICAgIEBtZWRpYSBwcmludCB7XHJcbiAgICAgICAgICAgICAgICAgIC5ub1ByaW50e1xyXG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICBib2R5IHtcclxuICAgICAgICAgICAgICAgICAgICBkaXJlY3Rpb246IHJ0bDtcclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgPC9zdHlsZT5cclxuICAgICAgICAgICAgPC9oZWFkPlxyXG4gICAgICAgICAgPGJvZHkgY2xhc3M9XCIke2NsYXNzZXN9XCI+XHJcbiAgICAgICAgICAgICR7cHJpbnRDb250ZW50c31cclxuICAgICAgICAgICAgJHtzY3JpcHRzfVxyXG4gICAgICAgICAgPC9ib2R5PlxyXG5cclxuICAgICAgICA8L2h0bWw+YDtcclxuICAgIHBvcHVwV2luPy5kb2N1bWVudC5vcGVuKCk7XHJcbiAgICBwb3B1cFdpbj8uZG9jdW1lbnQud3JpdGUoZGF0YSk7XHJcbiAgICBwb3B1cFdpbj8uZG9jdW1lbnQuY2xvc2UoKTtcclxuICAgIHBvcHVwV2luPy5mb2N1cygpO1xyXG4gICAgcG9wdXBXaW4/LmFkZEV2ZW50TGlzdGVuZXIoJ2ZvY3VzJywgKCkgPT4ge1xyXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICBpZiAocG9wdXBXaW4uZG9jdW1lbnQuaGFzRm9jdXMoKSkge1xyXG4gICAgICAgICAgcG9wdXBXaW4ucHJpbnQoKTtcclxuICAgICAgICAgIHBvcHVwV2luLmNsb3NlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9LCAxMDAwKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRFbGVtZW50VGFnKHRhZzoga2V5b2YgSFRNTEVsZW1lbnRUYWdOYW1lTWFwKTogc3RyaW5nIHtcclxuICAgIGNvbnN0IGh0bWw6IHN0cmluZ1tdID0gW107XHJcbiAgICBjb25zdCBlbGVtZW50cyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKHRhZyk7XHJcbiAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgZWxlbWVudHMubGVuZ3RoOyBpbmRleCsrKSB7XHJcbiAgICAgIGh0bWwucHVzaChlbGVtZW50c1tpbmRleF0ub3V0ZXJIVE1MKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gaHRtbC5qb2luKCdcXHJcXG4nKTtcclxuICB9XHJcbn1cclxuIl19
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 { thisprov = 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
- ShareButtonComponentfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ShareButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
24
- ShareButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", 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"] }] });
25
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhcmUtYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWlwYS1saWJyYXJ5L3NyYy9saWIvc2hhcmUtYnV0dG9uL3NoYXJlLWJ1dHRvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1pcGEtbGlicmFyeS9zcmMvbGliL3NoYXJlLWJ1dHRvbi9zaGFyZS1idXR0b24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBaUIsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFPaEUsTUFBTSxPQUFPLG9CQUFvQjtJQUkvQjtRQUhTLFVBQUssR0FBRyxFQUFFLENBQUM7UUFDWCxnQkFBVyxHQUFHLEVBQUUsQ0FBQztRQUNqQixhQUFRLEdBQUcsRUFBRSxDQUFDO0lBQ1IsQ0FBQztJQUNoQixlQUFlO1FBQ2IsTUFBTSxRQUFRLEdBQUcsUUFBUSxDQUFDLHNCQUFzQixDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ2pFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ25DLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1lBQzNDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLGFBQWEsQ0FBQyxDQUFDO1lBQzlDLE1BQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDOUMsS0FBSyxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO1lBQ2hDLEtBQUssQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLENBQUM7WUFDdEMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDNUIsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUMzQjtJQUNILENBQUM7O2lIQWhCVSxvQkFBb0I7cUdBQXBCLG9CQUFvQixzSUNQakMsME1BRXFCOzJGREtSLG9CQUFvQjtrQkFMaEMsU0FBUzsrQkFDRSxrQkFBa0I7MEVBS25CLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEFmdGVyVmlld0luaXQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2lwYS1zaGFyZS1idXR0b24nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9zaGFyZS1idXR0b24uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3NoYXJlLWJ1dHRvbi5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2hhcmVCdXR0b25Db21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcclxuICBASW5wdXQoKSB0aXRsZSA9ICcnO1xyXG4gIEBJbnB1dCgpIGRlc2NyaXB0aW9uID0gJyc7XHJcbiAgQElucHV0KCkgYnRuTGFiZWwgPSAnJztcclxuICBjb25zdHJ1Y3RvcigpIHt9XHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgY29uc3QgZWxlbWVudHMgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCdzYi1zaG93LWljb24nKTtcclxuICAgIGlmICghZWxlbWVudHNbMF0uZ2V0QXR0cmlidXRlKCdpZCcpKSB7XHJcbiAgICAgIGVsZW1lbnRzWzBdLnNldEF0dHJpYnV0ZSgndHlwZScsICdidXR0b24nKTtcclxuICAgICAgZWxlbWVudHNbMF0uc2V0QXR0cmlidXRlKCdpZCcsICdJUEFTaGFyZUJ0bicpO1xyXG4gICAgICBjb25zdCBsYWJlbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2xhYmVsJyk7XHJcbiAgICAgIGxhYmVsLmlubmVySFRNTCA9IHRoaXMuYnRuTGFiZWw7XHJcbiAgICAgIGxhYmVsLmNsYXNzTGlzdC5hZGQoJ3NtLXNoYXJlLXRpdGxlJyk7XHJcbiAgICAgIGxhYmVsLmNsYXNzTGlzdC5hZGQoJ21lLTEnKTtcclxuICAgICAgZWxlbWVudHNbMF0uYmVmb3JlKGxhYmVsKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiPHNoYXJlLXBvcHVwLWJ1dHRvbiBbdGl0bGVdPVwidGl0bGVcIiBbZGVzY3JpcHRpb25dPVwiZGVzY3JpcHRpb25cIiBbaWNvbl09XCInc2hhcmUtYWx0J1wiXHJcbiAgICBbaW5jbHVkZV09XCJbJ2ZhY2Vib29rJywndHdpdHRlcicsJ2xpbmtlZGluJywndGVsZWdyYW0nLCd3aGF0c2FwcCcsJ2NvcHknXVwiPlxyXG48L3NoYXJlLXBvcHVwLWJ1dHRvbj4iXX0=
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 { thiscmp = 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=