cloud-ide-element 1.0.4 → 1.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +63 -271
- package/fesm2022/cloud-ide-element.mjs +614 -618
- package/fesm2022/cloud-ide-element.mjs.map +1 -1
- package/index.d.ts +1362 -3
- package/package.json +4 -31
- package/esm2022/cloud-ide-element.mjs +0 -5
- package/esm2022/lib/components/confirmation-modal/confirmation-modal.component.mjs +0 -182
- package/esm2022/lib/components/data-grid/data-grid.component.mjs +0 -1363
- package/esm2022/lib/components/data-grid/data-grid.types.mjs +0 -37
- package/esm2022/lib/components/dropdown/dropdown.component.mjs +0 -396
- package/esm2022/lib/components/global-notifications/global-notifications.component.mjs +0 -30
- package/esm2022/lib/components/json-editor/json-editor.component.mjs +0 -521
- package/esm2022/lib/components/skeleton-loader/skeleton-loader.component.mjs +0 -33
- package/esm2022/lib/components/toast-notification/toast-notification.component.mjs +0 -152
- package/esm2022/lib/elements/button/cide-ele-button.component.mjs +0 -249
- package/esm2022/lib/elements/file-input/file-input.component.mjs +0 -83
- package/esm2022/lib/elements/icon/icon.component.mjs +0 -26
- package/esm2022/lib/elements/input/input.component.mjs +0 -467
- package/esm2022/lib/elements/select/select.component.mjs +0 -471
- package/esm2022/lib/elements/spinner/spinner.component.mjs +0 -32
- package/esm2022/lib/elements/tab/cide-ele-tab.component.mjs +0 -74
- package/esm2022/lib/elements/textarea/textarea.component.mjs +0 -157
- package/esm2022/lib/services/confirmation.service.mjs +0 -151
- package/esm2022/lib/services/dropdown-manager.service.mjs +0 -93
- package/esm2022/lib/services/notification.service.mjs +0 -196
- package/esm2022/lib/utils/directives/resizer/resizer.directive.mjs +0 -231
- package/esm2022/lib/utils/directives/tooltip/tooltip.directive.mjs +0 -294
- package/esm2022/lib/utils/pipes/capitalize/capitalize.pipe.mjs +0 -38
- package/esm2022/lib/utils/services/elements/elements.service.mjs +0 -39
- package/esm2022/public-api.mjs +0 -31
- package/lib/components/confirmation-modal/confirmation-modal.component.d.ts +0 -16
- package/lib/components/data-grid/data-grid.component.d.ts +0 -244
- package/lib/components/data-grid/data-grid.types.d.ts +0 -146
- package/lib/components/dropdown/dropdown.component.d.ts +0 -75
- package/lib/components/global-notifications/global-notifications.component.d.ts +0 -5
- package/lib/components/json-editor/json-editor.component.d.ts +0 -116
- package/lib/components/skeleton-loader/skeleton-loader.component.d.ts +0 -11
- package/lib/components/toast-notification/toast-notification.component.d.ts +0 -13
- package/lib/elements/button/cide-ele-button.component.d.ts +0 -85
- package/lib/elements/file-input/file-input.component.d.ts +0 -25
- package/lib/elements/icon/icon.component.d.ts +0 -9
- package/lib/elements/input/input.component.d.ts +0 -182
- package/lib/elements/select/select.component.d.ts +0 -91
- package/lib/elements/spinner/spinner.component.d.ts +0 -19
- package/lib/elements/tab/cide-ele-tab.component.d.ts +0 -26
- package/lib/elements/textarea/textarea.component.d.ts +0 -47
- package/lib/services/confirmation.service.d.ts +0 -65
- package/lib/services/dropdown-manager.service.d.ts +0 -22
- package/lib/services/notification.service.d.ts +0 -81
- package/lib/utils/directives/resizer/resizer.directive.d.ts +0 -44
- package/lib/utils/directives/tooltip/tooltip.directive.d.ts +0 -43
- package/lib/utils/pipes/capitalize/capitalize.pipe.d.ts +0 -7
- package/lib/utils/services/elements/elements.service.d.ts +0 -12
- package/public-api.d.ts +0 -22
|
@@ -1,294 +0,0 @@
|
|
|
1
|
-
import { Directive, HostListener, Input } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
export class TooltipDirective {
|
|
4
|
-
constructor(el, renderer) {
|
|
5
|
-
this.el = el;
|
|
6
|
-
this.renderer = renderer;
|
|
7
|
-
this.cideEleTooltip = '';
|
|
8
|
-
this.tooltipColor = '';
|
|
9
|
-
this.tooltipBg = '';
|
|
10
|
-
this.tooltipPlacement = 'top';
|
|
11
|
-
this.tooltipType = 'default';
|
|
12
|
-
this.tooltipDelay = 300; // ms
|
|
13
|
-
this.tooltipDir = 'top'; // Alias for tooltipPlacement for backward compatibility
|
|
14
|
-
this.tooltipShowArrow = false;
|
|
15
|
-
this.tooltipMultiline = false;
|
|
16
|
-
this.tooltipMaxWidth = '200px';
|
|
17
|
-
this.tooltipInteractive = false;
|
|
18
|
-
this.tooltipClass = '';
|
|
19
|
-
this.tooltipElement = null;
|
|
20
|
-
this.visible = false;
|
|
21
|
-
this.showTimeout = null;
|
|
22
|
-
this.hideTimeout = null;
|
|
23
|
-
this.hideDelay = 150; // ms
|
|
24
|
-
this.interactiveMouseLeaveHandler = null;
|
|
25
|
-
}
|
|
26
|
-
ngOnInit() {
|
|
27
|
-
// Use tooltipDir as fallback if provided and tooltipPlacement is default
|
|
28
|
-
if (this.tooltipDir && this.tooltipPlacement === 'top') {
|
|
29
|
-
this.tooltipPlacement = this.tooltipDir;
|
|
30
|
-
}
|
|
31
|
-
// If user hasn't provided custom colors and is using a predefined type,
|
|
32
|
-
// we'll leave colors empty to use CSS class colors
|
|
33
|
-
if (this.tooltipType !== 'default' && !this.tooltipColor && !this.tooltipBg) {
|
|
34
|
-
this.tooltipColor = '';
|
|
35
|
-
this.tooltipBg = '';
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
onMouseEnter() {
|
|
39
|
-
this.clearTimeouts();
|
|
40
|
-
this.showTimeout = window.setTimeout(() => {
|
|
41
|
-
this.show();
|
|
42
|
-
}, this.tooltipDelay);
|
|
43
|
-
}
|
|
44
|
-
onFocus() {
|
|
45
|
-
this.clearTimeouts();
|
|
46
|
-
this.showTimeout = window.setTimeout(() => {
|
|
47
|
-
this.show();
|
|
48
|
-
}, this.tooltipDelay);
|
|
49
|
-
}
|
|
50
|
-
onMouseLeave() {
|
|
51
|
-
this.clearTimeouts();
|
|
52
|
-
// Don't hide immediately if interactive
|
|
53
|
-
if (!this.tooltipInteractive) {
|
|
54
|
-
this.hide();
|
|
55
|
-
}
|
|
56
|
-
else {
|
|
57
|
-
// For interactive tooltips, delay hiding to allow user to move to tooltip
|
|
58
|
-
this.hideTimeout = window.setTimeout(() => {
|
|
59
|
-
this.hide();
|
|
60
|
-
}, this.hideDelay);
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
onBlur() {
|
|
64
|
-
this.clearTimeouts();
|
|
65
|
-
this.hide();
|
|
66
|
-
}
|
|
67
|
-
onClick() {
|
|
68
|
-
if (this.visible && !this.tooltipInteractive) {
|
|
69
|
-
this.hide();
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
ngOnDestroy() {
|
|
73
|
-
this.clearTimeouts();
|
|
74
|
-
this.destroyTooltip();
|
|
75
|
-
}
|
|
76
|
-
clearTimeouts() {
|
|
77
|
-
if (this.showTimeout) {
|
|
78
|
-
clearTimeout(this.showTimeout);
|
|
79
|
-
this.showTimeout = null;
|
|
80
|
-
}
|
|
81
|
-
if (this.hideTimeout) {
|
|
82
|
-
clearTimeout(this.hideTimeout);
|
|
83
|
-
this.hideTimeout = null;
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
show() {
|
|
87
|
-
if (!this.cideEleTooltip || this.visible)
|
|
88
|
-
return;
|
|
89
|
-
this.createTooltip();
|
|
90
|
-
this.styleTooltip();
|
|
91
|
-
this.positionTooltip();
|
|
92
|
-
// Add animation with requestAnimationFrame for smoother transition
|
|
93
|
-
requestAnimationFrame(() => {
|
|
94
|
-
if (this.tooltipElement) {
|
|
95
|
-
this.renderer.addClass(this.tooltipElement, 'tooltip-visible');
|
|
96
|
-
// Show arrow if enabled
|
|
97
|
-
if (this.tooltipShowArrow) {
|
|
98
|
-
this.renderer.addClass(this.tooltipElement, 'tooltip-arrow-visible');
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
});
|
|
102
|
-
this.visible = true;
|
|
103
|
-
// Add mouseleave event listener if interactive
|
|
104
|
-
if (this.tooltipInteractive && this.tooltipElement) {
|
|
105
|
-
this.interactiveMouseLeaveHandler = () => {
|
|
106
|
-
this.clearTimeouts();
|
|
107
|
-
this.hide();
|
|
108
|
-
};
|
|
109
|
-
this.tooltipElement.addEventListener('mouseleave', this.interactiveMouseLeaveHandler);
|
|
110
|
-
// Also add mouseenter to cancel any pending hide
|
|
111
|
-
this.tooltipElement.addEventListener('mouseenter', () => {
|
|
112
|
-
this.clearTimeouts();
|
|
113
|
-
});
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
hide() {
|
|
117
|
-
if (!this.visible || !this.tooltipElement)
|
|
118
|
-
return;
|
|
119
|
-
this.renderer.removeClass(this.tooltipElement, 'tooltip-visible');
|
|
120
|
-
this.renderer.removeClass(this.tooltipElement, 'tooltip-arrow-visible');
|
|
121
|
-
// Use timeout for smoother hide animation
|
|
122
|
-
setTimeout(() => {
|
|
123
|
-
if (!this.visible) { // Double-check in case tooltip was reshown
|
|
124
|
-
this.destroyTooltip();
|
|
125
|
-
}
|
|
126
|
-
}, this.hideDelay);
|
|
127
|
-
this.visible = false;
|
|
128
|
-
}
|
|
129
|
-
createTooltip() {
|
|
130
|
-
this.destroyTooltip();
|
|
131
|
-
this.tooltipElement = this.renderer.createElement('div');
|
|
132
|
-
this.renderer.addClass(this.tooltipElement, 'tooltip');
|
|
133
|
-
// Add placement class for arrow
|
|
134
|
-
this.renderer.addClass(this.tooltipElement, `tooltip-${this.tooltipPlacement}`);
|
|
135
|
-
// Add type class if using a predefined type
|
|
136
|
-
if (this.tooltipType !== 'default') {
|
|
137
|
-
this.renderer.addClass(this.tooltipElement, `tooltip-${this.tooltipType}`);
|
|
138
|
-
}
|
|
139
|
-
// Add multiline class if enabled
|
|
140
|
-
if (this.tooltipMultiline) {
|
|
141
|
-
this.renderer.addClass(this.tooltipElement, 'tooltip-multiline');
|
|
142
|
-
}
|
|
143
|
-
// Add interactive class if enabled
|
|
144
|
-
if (this.tooltipInteractive) {
|
|
145
|
-
this.renderer.addClass(this.tooltipElement, 'tooltip-interactive');
|
|
146
|
-
}
|
|
147
|
-
// Add custom classes if provided
|
|
148
|
-
if (this.tooltipClass) {
|
|
149
|
-
const classes = this.tooltipClass.split(' ');
|
|
150
|
-
classes.forEach(className => {
|
|
151
|
-
if (className.trim()) {
|
|
152
|
-
this.renderer.addClass(this.tooltipElement, className.trim());
|
|
153
|
-
}
|
|
154
|
-
});
|
|
155
|
-
}
|
|
156
|
-
// Create HTML content if multiline
|
|
157
|
-
if (this.tooltipMultiline) {
|
|
158
|
-
this.renderer.setProperty(this.tooltipElement, 'innerHTML', this.cideEleTooltip);
|
|
159
|
-
}
|
|
160
|
-
else {
|
|
161
|
-
const textNode = this.renderer.createText(this.cideEleTooltip);
|
|
162
|
-
this.renderer.appendChild(this.tooltipElement, textNode);
|
|
163
|
-
}
|
|
164
|
-
this.renderer.appendChild(document.body, this.tooltipElement);
|
|
165
|
-
}
|
|
166
|
-
styleTooltip() {
|
|
167
|
-
if (!this.tooltipElement)
|
|
168
|
-
return;
|
|
169
|
-
// Set custom CSS variables for the tooltip colors if provided
|
|
170
|
-
if (this.tooltipColor) {
|
|
171
|
-
this.renderer.setStyle(this.tooltipElement, '--tooltip-color', this.tooltipColor);
|
|
172
|
-
}
|
|
173
|
-
if (this.tooltipBg) {
|
|
174
|
-
this.renderer.setStyle(this.tooltipElement, '--tooltip-bg', this.tooltipBg);
|
|
175
|
-
}
|
|
176
|
-
// Set custom max width if provided
|
|
177
|
-
if (this.tooltipMaxWidth && this.tooltipMultiline) {
|
|
178
|
-
this.renderer.setStyle(this.tooltipElement, '--tooltip-max-width', this.tooltipMaxWidth);
|
|
179
|
-
}
|
|
180
|
-
}
|
|
181
|
-
positionTooltip() {
|
|
182
|
-
if (!this.tooltipElement)
|
|
183
|
-
return;
|
|
184
|
-
const hostRect = this.el.nativeElement.getBoundingClientRect();
|
|
185
|
-
const tooltipRect = this.tooltipElement.getBoundingClientRect();
|
|
186
|
-
// Account for page scroll
|
|
187
|
-
const scrollLeft = window.pageXOffset || document.documentElement.scrollLeft;
|
|
188
|
-
const scrollTop = window.pageYOffset || document.documentElement.scrollTop;
|
|
189
|
-
let top = 0;
|
|
190
|
-
let left = 0;
|
|
191
|
-
// Calculate position based on placement
|
|
192
|
-
switch (this.tooltipPlacement) {
|
|
193
|
-
case 'top':
|
|
194
|
-
top = hostRect.top + scrollTop - tooltipRect.height - 6;
|
|
195
|
-
left = hostRect.left + scrollLeft + (hostRect.width / 2) - (tooltipRect.width / 2);
|
|
196
|
-
break;
|
|
197
|
-
case 'bottom':
|
|
198
|
-
top = hostRect.bottom + scrollTop + 6;
|
|
199
|
-
left = hostRect.left + scrollLeft + (hostRect.width / 2) - (tooltipRect.width / 2);
|
|
200
|
-
break;
|
|
201
|
-
case 'left':
|
|
202
|
-
top = hostRect.top + scrollTop + (hostRect.height / 2) - (tooltipRect.height / 2);
|
|
203
|
-
left = hostRect.left + scrollLeft - tooltipRect.width - 6;
|
|
204
|
-
break;
|
|
205
|
-
case 'right':
|
|
206
|
-
top = hostRect.top + scrollTop + (hostRect.height / 2) - (tooltipRect.height / 2);
|
|
207
|
-
left = hostRect.right + scrollLeft + 6;
|
|
208
|
-
break;
|
|
209
|
-
}
|
|
210
|
-
// Adjust if tooltip would be outside viewport
|
|
211
|
-
const viewportWidth = window.innerWidth;
|
|
212
|
-
const viewportHeight = window.innerHeight;
|
|
213
|
-
// Top boundary check
|
|
214
|
-
if (top < scrollTop + 4) {
|
|
215
|
-
top = scrollTop + 4;
|
|
216
|
-
}
|
|
217
|
-
else if (top + tooltipRect.height > scrollTop + viewportHeight - 4) {
|
|
218
|
-
top = scrollTop + viewportHeight - tooltipRect.height - 4;
|
|
219
|
-
}
|
|
220
|
-
// Left boundary check
|
|
221
|
-
if (left < scrollLeft + 4) {
|
|
222
|
-
left = scrollLeft + 4;
|
|
223
|
-
}
|
|
224
|
-
else if (left + tooltipRect.width > scrollLeft + viewportWidth - 4) {
|
|
225
|
-
left = scrollLeft + viewportWidth - tooltipRect.width - 4;
|
|
226
|
-
}
|
|
227
|
-
this.renderer.setStyle(this.tooltipElement, 'position', 'absolute');
|
|
228
|
-
this.renderer.setStyle(this.tooltipElement, 'top', `${top}px`);
|
|
229
|
-
this.renderer.setStyle(this.tooltipElement, 'left', `${left}px`);
|
|
230
|
-
}
|
|
231
|
-
destroyTooltip() {
|
|
232
|
-
if (this.tooltipElement) {
|
|
233
|
-
// Remove event listeners for interactive tooltips using the stored reference
|
|
234
|
-
if (this.tooltipInteractive && this.interactiveMouseLeaveHandler) {
|
|
235
|
-
this.tooltipElement.removeEventListener('mouseleave', this.interactiveMouseLeaveHandler);
|
|
236
|
-
this.interactiveMouseLeaveHandler = null;
|
|
237
|
-
}
|
|
238
|
-
const parent = this.tooltipElement.parentNode;
|
|
239
|
-
if (parent) {
|
|
240
|
-
this.renderer.removeChild(parent, this.tooltipElement);
|
|
241
|
-
}
|
|
242
|
-
this.tooltipElement = null;
|
|
243
|
-
}
|
|
244
|
-
}
|
|
245
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: TooltipDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
246
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.7", type: TooltipDirective, isStandalone: true, selector: "[cideEleTooltip]", inputs: { cideEleTooltip: "cideEleTooltip", tooltipColor: "tooltipColor", tooltipBg: "tooltipBg", tooltipPlacement: "tooltipPlacement", tooltipType: "tooltipType", tooltipDelay: "tooltipDelay", tooltipDir: "tooltipDir", tooltipShowArrow: "tooltipShowArrow", tooltipMultiline: "tooltipMultiline", tooltipMaxWidth: "tooltipMaxWidth", tooltipInteractive: "tooltipInteractive", tooltipClass: "tooltipClass" }, host: { listeners: { "mouseenter": "onMouseEnter()", "focus": "onFocus()", "mouseleave": "onMouseLeave()", "blur": "onBlur()", "click": "onClick()" } }, ngImport: i0 }); }
|
|
247
|
-
}
|
|
248
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: TooltipDirective, decorators: [{
|
|
249
|
-
type: Directive,
|
|
250
|
-
args: [{
|
|
251
|
-
selector: '[cideEleTooltip]',
|
|
252
|
-
standalone: true
|
|
253
|
-
}]
|
|
254
|
-
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }], propDecorators: { cideEleTooltip: [{
|
|
255
|
-
type: Input
|
|
256
|
-
}], tooltipColor: [{
|
|
257
|
-
type: Input
|
|
258
|
-
}], tooltipBg: [{
|
|
259
|
-
type: Input
|
|
260
|
-
}], tooltipPlacement: [{
|
|
261
|
-
type: Input
|
|
262
|
-
}], tooltipType: [{
|
|
263
|
-
type: Input
|
|
264
|
-
}], tooltipDelay: [{
|
|
265
|
-
type: Input
|
|
266
|
-
}], tooltipDir: [{
|
|
267
|
-
type: Input
|
|
268
|
-
}], tooltipShowArrow: [{
|
|
269
|
-
type: Input
|
|
270
|
-
}], tooltipMultiline: [{
|
|
271
|
-
type: Input
|
|
272
|
-
}], tooltipMaxWidth: [{
|
|
273
|
-
type: Input
|
|
274
|
-
}], tooltipInteractive: [{
|
|
275
|
-
type: Input
|
|
276
|
-
}], tooltipClass: [{
|
|
277
|
-
type: Input
|
|
278
|
-
}], onMouseEnter: [{
|
|
279
|
-
type: HostListener,
|
|
280
|
-
args: ['mouseenter']
|
|
281
|
-
}], onFocus: [{
|
|
282
|
-
type: HostListener,
|
|
283
|
-
args: ['focus']
|
|
284
|
-
}], onMouseLeave: [{
|
|
285
|
-
type: HostListener,
|
|
286
|
-
args: ['mouseleave']
|
|
287
|
-
}], onBlur: [{
|
|
288
|
-
type: HostListener,
|
|
289
|
-
args: ['blur']
|
|
290
|
-
}], onClick: [{
|
|
291
|
-
type: HostListener,
|
|
292
|
-
args: ['click']
|
|
293
|
-
}] } });
|
|
294
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbG91ZC1pZGUtZWxlbWVudC9zcmMvbGliL3V0aWxzL2RpcmVjdGl2ZXMvdG9vbHRpcC90b29sdGlwLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLFlBQVksRUFBRSxLQUFLLEVBQWdDLE1BQU0sZUFBZSxDQUFDOztBQVN6RyxNQUFNLE9BQU8sZ0JBQWdCO0lBcUIzQixZQUFvQixFQUFjLEVBQVUsUUFBbUI7UUFBM0MsT0FBRSxHQUFGLEVBQUUsQ0FBWTtRQUFVLGFBQVEsR0FBUixRQUFRLENBQVc7UUFwQnRELG1CQUFjLEdBQVcsRUFBRSxDQUFDO1FBQzVCLGlCQUFZLEdBQVcsRUFBRSxDQUFDO1FBQzFCLGNBQVMsR0FBVyxFQUFFLENBQUM7UUFDdkIscUJBQWdCLEdBQXFCLEtBQUssQ0FBQztRQUMzQyxnQkFBVyxHQUFnQixTQUFTLENBQUM7UUFDckMsaUJBQVksR0FBVyxHQUFHLENBQUMsQ0FBQyxLQUFLO1FBQ2pDLGVBQVUsR0FBcUIsS0FBSyxDQUFDLENBQUMsd0RBQXdEO1FBQzlGLHFCQUFnQixHQUFZLEtBQUssQ0FBQztRQUNsQyxxQkFBZ0IsR0FBWSxLQUFLLENBQUM7UUFDbEMsb0JBQWUsR0FBVyxPQUFPLENBQUM7UUFDbEMsdUJBQWtCLEdBQVksS0FBSyxDQUFDO1FBQ3BDLGlCQUFZLEdBQVcsRUFBRSxDQUFDO1FBRTNCLG1CQUFjLEdBQXVCLElBQUksQ0FBQztRQUMxQyxZQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ2hCLGdCQUFXLEdBQWtCLElBQUksQ0FBQztRQUNsQyxnQkFBVyxHQUFrQixJQUFJLENBQUM7UUFDbEMsY0FBUyxHQUFHLEdBQUcsQ0FBQyxDQUFDLEtBQUs7UUFDdEIsaUNBQTRCLEdBQXdCLElBQUksQ0FBQztJQUVDLENBQUM7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Z0JBZ0IxQixNQUFNO3NCQURMLFlBQVk7dUJBQUMsTUFBTTtnQkFPcEIsT0FBTztzQkFETixZQUFZO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBSZW5kZXJlcjIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmV4cG9ydCB0eXBlIFRvb2x0aXBQbGFjZW1lbnQgPSAndG9wJyB8ICdib3R0b20nIHwgJ2xlZnQnIHwgJ3JpZ2h0JztcclxuZXhwb3J0IHR5cGUgVG9vbHRpcFR5cGUgPSAnZGVmYXVsdCcgfCAnc3VjY2VzcycgfCAnd2FybmluZycgfCAnZXJyb3InIHwgJ2luZm8nIHwgJ2xpZ2h0JyB8ICdkYXJrJztcclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gIHNlbGVjdG9yOiAnW2NpZGVFbGVUb29sdGlwXScsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVG9vbHRpcERpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICBASW5wdXQoKSBjaWRlRWxlVG9vbHRpcDogc3RyaW5nID0gJyc7XHJcbiAgQElucHV0KCkgdG9vbHRpcENvbG9yOiBzdHJpbmcgPSAnJztcclxuICBASW5wdXQoKSB0b29sdGlwQmc6IHN0cmluZyA9ICcnO1xyXG4gIEBJbnB1dCgpIHRvb2x0aXBQbGFjZW1lbnQ6IFRvb2x0aXBQbGFjZW1lbnQgPSAndG9wJztcclxuICBASW5wdXQoKSB0b29sdGlwVHlwZTogVG9vbHRpcFR5cGUgPSAnZGVmYXVsdCc7XHJcbiAgQElucHV0KCkgdG9vbHRpcERlbGF5OiBudW1iZXIgPSAzMDA7IC8vIG1zXHJcbiAgQElucHV0KCkgdG9vbHRpcERpcjogVG9vbHRpcFBsYWNlbWVudCA9ICd0b3AnOyAvLyBBbGlhcyBmb3IgdG9vbHRpcFBsYWNlbWVudCBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eVxyXG4gIEBJbnB1dCgpIHRvb2x0aXBTaG93QXJyb3c6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSB0b29sdGlwTXVsdGlsaW5lOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgdG9vbHRpcE1heFdpZHRoOiBzdHJpbmcgPSAnMjAwcHgnO1xyXG4gIEBJbnB1dCgpIHRvb2x0aXBJbnRlcmFjdGl2ZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHRvb2x0aXBDbGFzczogc3RyaW5nID0gJyc7XHJcbiAgXHJcbiAgcHJpdmF0ZSB0b29sdGlwRWxlbWVudDogSFRNTEVsZW1lbnQgfCBudWxsID0gbnVsbDtcclxuICBwcml2YXRlIHZpc2libGUgPSBmYWxzZTtcclxuICBwcml2YXRlIHNob3dUaW1lb3V0OiBudW1iZXIgfCBudWxsID0gbnVsbDtcclxuICBwcml2YXRlIGhpZGVUaW1lb3V0OiBudW1iZXIgfCBudWxsID0gbnVsbDtcclxuICBwcml2YXRlIGhpZGVEZWxheSA9IDE1MDsgLy8gbXNcclxuICBwcml2YXRlIGludGVyYWN0aXZlTW91c2VMZWF2ZUhhbmRsZXI6ICgoKSA9PiB2b2lkKSB8IG51bGwgPSBudWxsO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVsOiBFbGVtZW50UmVmLCBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIpIHt9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgLy8gVXNlIHRvb2x0aXBEaXIgYXMgZmFsbGJhY2sgaWYgcHJvdmlkZWQgYW5kIHRvb2x0aXBQbGFjZW1lbnQgaXMgZGVmYXVsdFxyXG4gICAgaWYgKHRoaXMudG9vbHRpcERpciAmJiB0aGlzLnRvb2x0aXBQbGFjZW1lbnQgPT09ICd0b3AnKSB7XHJcbiAgICAgIHRoaXMudG9vbHRpcFBsYWNlbWVudCA9IHRoaXMudG9vbHRpcERpcjtcclxuICAgIH1cclxuXHJcbiAgICAvLyBJZiB1c2VyIGhhc24ndCBwcm92aWRlZCBjdXN0b20gY29sb3JzIGFuZCBpcyB1c2luZyBhIHByZWRlZmluZWQgdHlwZSxcclxuICAgIC8vIHdlJ2xsIGxlYXZlIGNvbG9ycyBlbXB0eSB0byB1c2UgQ1NTIGNsYXNzIGNvbG9yc1xyXG4gICAgaWYgKHRoaXMudG9vbHRpcFR5cGUgIT09ICdkZWZhdWx0JyAmJiAhdGhpcy50b29sdGlwQ29sb3IgJiYgIXRoaXMudG9vbHRpcEJnKSB7XHJcbiAgICAgIHRoaXMudG9vbHRpcENvbG9yID0gJyc7XHJcbiAgICAgIHRoaXMudG9vbHRpcEJnID0gJyc7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKCdtb3VzZWVudGVyJylcclxuICBvbk1vdXNlRW50ZXIoKTogdm9pZCB7XHJcbiAgICB0aGlzLmNsZWFyVGltZW91dHMoKTtcclxuICAgIHRoaXMuc2hvd1RpbWVvdXQgPSB3aW5kb3cuc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMuc2hvdygpO1xyXG4gICAgfSwgdGhpcy50b29sdGlwRGVsYXkpO1xyXG4gIH1cclxuXHJcbiAgQEhvc3RMaXN0ZW5lcignZm9jdXMnKVxyXG4gIG9uRm9jdXMoKTogdm9pZCB7XHJcbiAgICB0aGlzLmNsZWFyVGltZW91dHMoKTtcclxuICAgIHRoaXMuc2hvd1RpbWVvdXQgPSB3aW5kb3cuc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMuc2hvdygpO1xyXG4gICAgfSwgdGhpcy50b29sdGlwRGVsYXkpO1xyXG4gIH1cclxuXHJcbiAgQEhvc3RMaXN0ZW5lcignbW91c2VsZWF2ZScpXHJcbiAgb25Nb3VzZUxlYXZlKCk6IHZvaWQge1xyXG4gICAgdGhpcy5jbGVhclRpbWVvdXRzKCk7XHJcbiAgICBcclxuICAgIC8vIERvbid0IGhpZGUgaW1tZWRpYXRlbHkgaWYgaW50ZXJhY3RpdmVcclxuICAgIGlmICghdGhpcy50b29sdGlwSW50ZXJhY3RpdmUpIHtcclxuICAgICAgdGhpcy5oaWRlKCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICAvLyBGb3IgaW50ZXJhY3RpdmUgdG9vbHRpcHMsIGRlbGF5IGhpZGluZyB0byBhbGxvdyB1c2VyIHRvIG1vdmUgdG8gdG9vbHRpcFxyXG4gICAgICB0aGlzLmhpZGVUaW1lb3V0ID0gd2luZG93LnNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuaGlkZSgpO1xyXG4gICAgICB9LCB0aGlzLmhpZGVEZWxheSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKCdibHVyJylcclxuICBvbkJsdXIoKTogdm9pZCB7XHJcbiAgICB0aGlzLmNsZWFyVGltZW91dHMoKTtcclxuICAgIHRoaXMuaGlkZSgpO1xyXG4gIH1cclxuXHJcbiAgQEhvc3RMaXN0ZW5lcignY2xpY2snKVxyXG4gIG9uQ2xpY2soKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy52aXNpYmxlICYmICF0aGlzLnRvb2x0aXBJbnRlcmFjdGl2ZSkge1xyXG4gICAgICB0aGlzLmhpZGUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5jbGVhclRpbWVvdXRzKCk7XHJcbiAgICB0aGlzLmRlc3Ryb3lUb29sdGlwKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNsZWFyVGltZW91dHMoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5zaG93VGltZW91dCkge1xyXG4gICAgICBjbGVhclRpbWVvdXQodGhpcy5zaG93VGltZW91dCk7XHJcbiAgICAgIHRoaXMuc2hvd1RpbWVvdXQgPSBudWxsO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuaGlkZVRpbWVvdXQpIHtcclxuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuaGlkZVRpbWVvdXQpO1xyXG4gICAgICB0aGlzLmhpZGVUaW1lb3V0ID0gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2hvdygpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5jaWRlRWxlVG9vbHRpcCB8fCB0aGlzLnZpc2libGUpIHJldHVybjtcclxuICAgIFxyXG4gICAgdGhpcy5jcmVhdGVUb29sdGlwKCk7XHJcbiAgICB0aGlzLnN0eWxlVG9vbHRpcCgpO1xyXG4gICAgdGhpcy5wb3NpdGlvblRvb2x0aXAoKTtcclxuICAgIFxyXG4gICAgLy8gQWRkIGFuaW1hdGlvbiB3aXRoIHJlcXVlc3RBbmltYXRpb25GcmFtZSBmb3Igc21vb3RoZXIgdHJhbnNpdGlvblxyXG4gICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcclxuICAgICAgaWYgKHRoaXMudG9vbHRpcEVsZW1lbnQpIHtcclxuICAgICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMudG9vbHRpcEVsZW1lbnQsICd0b29sdGlwLXZpc2libGUnKTtcclxuICAgICAgICBcclxuICAgICAgICAvLyBTaG93IGFycm93IGlmIGVuYWJsZWRcclxuICAgICAgICBpZiAodGhpcy50b29sdGlwU2hvd0Fycm93KSB7XHJcbiAgICAgICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMudG9vbHRpcEVsZW1lbnQsICd0b29sdGlwLWFycm93LXZpc2libGUnKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgXHJcbiAgICB0aGlzLnZpc2libGUgPSB0cnVlO1xyXG5cclxuICAgIC8vIEFkZCBtb3VzZWxlYXZlIGV2ZW50IGxpc3RlbmVyIGlmIGludGVyYWN0aXZlXHJcbiAgICBpZiAodGhpcy50b29sdGlwSW50ZXJhY3RpdmUgJiYgdGhpcy50b29sdGlwRWxlbWVudCkge1xyXG4gICAgICB0aGlzLmludGVyYWN0aXZlTW91c2VMZWF2ZUhhbmRsZXIgPSAoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5jbGVhclRpbWVvdXRzKCk7XHJcbiAgICAgICAgdGhpcy5oaWRlKCk7XHJcbiAgICAgIH07XHJcbiAgICAgIHRoaXMudG9vbHRpcEVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VsZWF2ZScsIHRoaXMuaW50ZXJhY3RpdmVNb3VzZUxlYXZlSGFuZGxlcik7XHJcbiAgICAgIFxyXG4gICAgICAvLyBBbHNvIGFkZCBtb3VzZWVudGVyIHRvIGNhbmNlbCBhbnkgcGVuZGluZyBoaWRlXHJcbiAgICAgIHRoaXMudG9vbHRpcEVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VlbnRlcicsICgpID0+IHtcclxuICAgICAgICB0aGlzLmNsZWFyVGltZW91dHMoKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGhpZGUoKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMudmlzaWJsZSB8fCAhdGhpcy50b29sdGlwRWxlbWVudCkgcmV0dXJuO1xyXG5cclxuICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3ModGhpcy50b29sdGlwRWxlbWVudCwgJ3Rvb2x0aXAtdmlzaWJsZScpO1xyXG4gICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyh0aGlzLnRvb2x0aXBFbGVtZW50LCAndG9vbHRpcC1hcnJvdy12aXNpYmxlJyk7XHJcbiAgICBcclxuICAgIC8vIFVzZSB0aW1lb3V0IGZvciBzbW9vdGhlciBoaWRlIGFuaW1hdGlvblxyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIGlmICghdGhpcy52aXNpYmxlKSB7IC8vIERvdWJsZS1jaGVjayBpbiBjYXNlIHRvb2x0aXAgd2FzIHJlc2hvd25cclxuICAgICAgICB0aGlzLmRlc3Ryb3lUb29sdGlwKCk7XHJcbiAgICAgIH1cclxuICAgIH0sIHRoaXMuaGlkZURlbGF5KTtcclxuICAgIFxyXG4gICAgdGhpcy52aXNpYmxlID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNyZWF0ZVRvb2x0aXAoKTogdm9pZCB7XHJcbiAgICB0aGlzLmRlc3Ryb3lUb29sdGlwKCk7XHJcblxyXG4gICAgdGhpcy50b29sdGlwRWxlbWVudCA9IHRoaXMucmVuZGVyZXIuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XHJcbiAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMudG9vbHRpcEVsZW1lbnQsICd0b29sdGlwJyk7XHJcbiAgICBcclxuICAgIC8vIEFkZCBwbGFjZW1lbnQgY2xhc3MgZm9yIGFycm93XHJcbiAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMudG9vbHRpcEVsZW1lbnQsIGB0b29sdGlwLSR7dGhpcy50b29sdGlwUGxhY2VtZW50fWApO1xyXG4gICAgXHJcbiAgICAvLyBBZGQgdHlwZSBjbGFzcyBpZiB1c2luZyBhIHByZWRlZmluZWQgdHlwZVxyXG4gICAgaWYgKHRoaXMudG9vbHRpcFR5cGUgIT09ICdkZWZhdWx0Jykge1xyXG4gICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMudG9vbHRpcEVsZW1lbnQsIGB0b29sdGlwLSR7dGhpcy50b29sdGlwVHlwZX1gKTtcclxuICAgIH1cclxuICAgIFxyXG4gICAgLy8gQWRkIG11bHRpbGluZSBjbGFzcyBpZiBlbmFibGVkXHJcbiAgICBpZiAodGhpcy50b29sdGlwTXVsdGlsaW5lKSB7XHJcbiAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy50b29sdGlwRWxlbWVudCwgJ3Rvb2x0aXAtbXVsdGlsaW5lJyk7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIC8vIEFkZCBpbnRlcmFjdGl2ZSBjbGFzcyBpZiBlbmFibGVkXHJcbiAgICBpZiAodGhpcy50b29sdGlwSW50ZXJhY3RpdmUpIHtcclxuICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLnRvb2x0aXBFbGVtZW50LCAndG9vbHRpcC1pbnRlcmFjdGl2ZScpO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICAvLyBBZGQgY3VzdG9tIGNsYXNzZXMgaWYgcHJvdmlkZWRcclxuICAgIGlmICh0aGlzLnRvb2x0aXBDbGFzcykge1xyXG4gICAgICBjb25zdCBjbGFzc2VzID0gdGhpcy50b29sdGlwQ2xhc3Muc3BsaXQoJyAnKTtcclxuICAgICAgY2xhc3Nlcy5mb3JFYWNoKGNsYXNzTmFtZSA9PiB7XHJcbiAgICAgICAgaWYgKGNsYXNzTmFtZS50cmltKCkpIHtcclxuICAgICAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy50b29sdGlwRWxlbWVudCwgY2xhc3NOYW1lLnRyaW0oKSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBDcmVhdGUgSFRNTCBjb250ZW50IGlmIG11bHRpbGluZVxyXG4gICAgaWYgKHRoaXMudG9vbHRpcE11bHRpbGluZSkge1xyXG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFByb3BlcnR5KHRoaXMudG9vbHRpcEVsZW1lbnQsICdpbm5lckhUTUwnLCB0aGlzLmNpZGVFbGVUb29sdGlwKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnN0IHRleHROb2RlID0gdGhpcy5yZW5kZXJlci5jcmVhdGVUZXh0KHRoaXMuY2lkZUVsZVRvb2x0aXApO1xyXG4gICAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKHRoaXMudG9vbHRpcEVsZW1lbnQsIHRleHROb2RlKTtcclxuICAgIH1cclxuICAgIFxyXG4gICAgdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZChkb2N1bWVudC5ib2R5LCB0aGlzLnRvb2x0aXBFbGVtZW50KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc3R5bGVUb29sdGlwKCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLnRvb2x0aXBFbGVtZW50KSByZXR1cm47XHJcblxyXG4gICAgLy8gU2V0IGN1c3RvbSBDU1MgdmFyaWFibGVzIGZvciB0aGUgdG9vbHRpcCBjb2xvcnMgaWYgcHJvdmlkZWRcclxuICAgIGlmICh0aGlzLnRvb2x0aXBDb2xvcikge1xyXG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMudG9vbHRpcEVsZW1lbnQsICctLXRvb2x0aXAtY29sb3InLCB0aGlzLnRvb2x0aXBDb2xvcik7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIGlmICh0aGlzLnRvb2x0aXBCZykge1xyXG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMudG9vbHRpcEVsZW1lbnQsICctLXRvb2x0aXAtYmcnLCB0aGlzLnRvb2x0aXBCZyk7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIC8vIFNldCBjdXN0b20gbWF4IHdpZHRoIGlmIHByb3ZpZGVkXHJcbiAgICBpZiAodGhpcy50b29sdGlwTWF4V2lkdGggJiYgdGhpcy50b29sdGlwTXVsdGlsaW5lKSB7XHJcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy50b29sdGlwRWxlbWVudCwgJy0tdG9vbHRpcC1tYXgtd2lkdGgnLCB0aGlzLnRvb2x0aXBNYXhXaWR0aCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHBvc2l0aW9uVG9vbHRpcCgpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy50b29sdGlwRWxlbWVudCkgcmV0dXJuO1xyXG5cclxuICAgIGNvbnN0IGhvc3RSZWN0ID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG4gICAgY29uc3QgdG9vbHRpcFJlY3QgPSB0aGlzLnRvb2x0aXBFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG4gICAgXHJcbiAgICAvLyBBY2NvdW50IGZvciBwYWdlIHNjcm9sbFxyXG4gICAgY29uc3Qgc2Nyb2xsTGVmdCA9IHdpbmRvdy5wYWdlWE9mZnNldCB8fCBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsTGVmdDtcclxuICAgIGNvbnN0IHNjcm9sbFRvcCA9IHdpbmRvdy5wYWdlWU9mZnNldCB8fCBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsVG9wO1xyXG4gICAgXHJcbiAgICBsZXQgdG9wID0gMDtcclxuICAgIGxldCBsZWZ0ID0gMDtcclxuICAgIFxyXG4gICAgLy8gQ2FsY3VsYXRlIHBvc2l0aW9uIGJhc2VkIG9uIHBsYWNlbWVudFxyXG4gICAgc3dpdGNoICh0aGlzLnRvb2x0aXBQbGFjZW1lbnQpIHtcclxuICAgICAgY2FzZSAndG9wJzpcclxuICAgICAgICB0b3AgPSBob3N0UmVjdC50b3AgKyBzY3JvbGxUb3AgLSB0b29sdGlwUmVjdC5oZWlnaHQgLSA2O1xyXG4gICAgICAgIGxlZnQgPSBob3N0UmVjdC5sZWZ0ICsgc2Nyb2xsTGVmdCArIChob3N0UmVjdC53aWR0aCAvIDIpIC0gKHRvb2x0aXBSZWN0LndpZHRoIC8gMik7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ2JvdHRvbSc6XHJcbiAgICAgICAgdG9wID0gaG9zdFJlY3QuYm90dG9tICsgc2Nyb2xsVG9wICsgNjtcclxuICAgICAgICBsZWZ0ID0gaG9zdFJlY3QubGVmdCArIHNjcm9sbExlZnQgKyAoaG9zdFJlY3Qud2lkdGggLyAyKSAtICh0b29sdGlwUmVjdC53aWR0aCAvIDIpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdsZWZ0JzpcclxuICAgICAgICB0b3AgPSBob3N0UmVjdC50b3AgKyBzY3JvbGxUb3AgKyAoaG9zdFJlY3QuaGVpZ2h0IC8gMikgLSAodG9vbHRpcFJlY3QuaGVpZ2h0IC8gMik7XHJcbiAgICAgICAgbGVmdCA9IGhvc3RSZWN0LmxlZnQgKyBzY3JvbGxMZWZ0IC0gdG9vbHRpcFJlY3Qud2lkdGggLSA2O1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdyaWdodCc6XHJcbiAgICAgICAgdG9wID0gaG9zdFJlY3QudG9wICsgc2Nyb2xsVG9wICsgKGhvc3RSZWN0LmhlaWdodCAvIDIpIC0gKHRvb2x0aXBSZWN0LmhlaWdodCAvIDIpO1xyXG4gICAgICAgIGxlZnQgPSBob3N0UmVjdC5yaWdodCArIHNjcm9sbExlZnQgKyA2O1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICAvLyBBZGp1c3QgaWYgdG9vbHRpcCB3b3VsZCBiZSBvdXRzaWRlIHZpZXdwb3J0XHJcbiAgICBjb25zdCB2aWV3cG9ydFdpZHRoID0gd2luZG93LmlubmVyV2lkdGg7XHJcbiAgICBjb25zdCB2aWV3cG9ydEhlaWdodCA9IHdpbmRvdy5pbm5lckhlaWdodDtcclxuICAgIFxyXG4gICAgLy8gVG9wIGJvdW5kYXJ5IGNoZWNrXHJcbiAgICBpZiAodG9wIDwgc2Nyb2xsVG9wICsgNCkge1xyXG4gICAgICB0b3AgPSBzY3JvbGxUb3AgKyA0O1xyXG4gICAgfSBlbHNlIGlmICh0b3AgKyB0b29sdGlwUmVjdC5oZWlnaHQgPiBzY3JvbGxUb3AgKyB2aWV3cG9ydEhlaWdodCAtIDQpIHtcclxuICAgICAgdG9wID0gc2Nyb2xsVG9wICsgdmlld3BvcnRIZWlnaHQgLSB0b29sdGlwUmVjdC5oZWlnaHQgLSA0O1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICAvLyBMZWZ0IGJvdW5kYXJ5IGNoZWNrXHJcbiAgICBpZiAobGVmdCA8IHNjcm9sbExlZnQgKyA0KSB7XHJcbiAgICAgIGxlZnQgPSBzY3JvbGxMZWZ0ICsgNDtcclxuICAgIH0gZWxzZSBpZiAobGVmdCArIHRvb2x0aXBSZWN0LndpZHRoID4gc2Nyb2xsTGVmdCArIHZpZXdwb3J0V2lkdGggLSA0KSB7XHJcbiAgICAgIGxlZnQgPSBzY3JvbGxMZWZ0ICsgdmlld3BvcnRXaWR0aCAtIHRvb2x0aXBSZWN0LndpZHRoIC0gNDtcclxuICAgIH1cclxuICAgIFxyXG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLnRvb2x0aXBFbGVtZW50LCAncG9zaXRpb24nLCAnYWJzb2x1dGUnKTtcclxuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy50b29sdGlwRWxlbWVudCwgJ3RvcCcsIGAke3RvcH1weGApO1xyXG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLnRvb2x0aXBFbGVtZW50LCAnbGVmdCcsIGAke2xlZnR9cHhgKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZGVzdHJveVRvb2x0aXAoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy50b29sdGlwRWxlbWVudCkge1xyXG4gICAgICAvLyBSZW1vdmUgZXZlbnQgbGlzdGVuZXJzIGZvciBpbnRlcmFjdGl2ZSB0b29sdGlwcyB1c2luZyB0aGUgc3RvcmVkIHJlZmVyZW5jZVxyXG4gICAgICBpZiAodGhpcy50b29sdGlwSW50ZXJhY3RpdmUgJiYgdGhpcy5pbnRlcmFjdGl2ZU1vdXNlTGVhdmVIYW5kbGVyKSB7XHJcbiAgICAgICAgdGhpcy50b29sdGlwRWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZWxlYXZlJywgdGhpcy5pbnRlcmFjdGl2ZU1vdXNlTGVhdmVIYW5kbGVyKTtcclxuICAgICAgICB0aGlzLmludGVyYWN0aXZlTW91c2VMZWF2ZUhhbmRsZXIgPSBudWxsO1xyXG4gICAgICB9XHJcbiAgICAgIFxyXG4gICAgICBjb25zdCBwYXJlbnQgPSB0aGlzLnRvb2x0aXBFbGVtZW50LnBhcmVudE5vZGU7XHJcbiAgICAgIGlmIChwYXJlbnQpIHtcclxuICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNoaWxkKHBhcmVudCwgdGhpcy50b29sdGlwRWxlbWVudCk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy50b29sdGlwRWxlbWVudCA9IG51bGw7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
import { Pipe } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
export class CapitalizePipe {
|
|
4
|
-
transform(value, capitalizationMethod) {
|
|
5
|
-
if (value) {
|
|
6
|
-
if (capitalizationMethod === 'allUpperCase') {
|
|
7
|
-
return value.toUpperCase();
|
|
8
|
-
}
|
|
9
|
-
else if (capitalizationMethod === 'titleCase') {
|
|
10
|
-
const splitString = value
|
|
11
|
-
.split(' ')
|
|
12
|
-
.map((s) => `${s[0].toUpperCase()}${s.slice(1)}`);
|
|
13
|
-
return splitString.join(' ');
|
|
14
|
-
}
|
|
15
|
-
else if (capitalizationMethod === 'sentenceCase') {
|
|
16
|
-
const splitString = value.split('.').map((s) => {
|
|
17
|
-
const trimmedString = s.trim();
|
|
18
|
-
if (trimmedString.length > 0) {
|
|
19
|
-
return `${trimmedString[0].toUpperCase()}${trimmedString.slice(1)}`;
|
|
20
|
-
}
|
|
21
|
-
return '';
|
|
22
|
-
});
|
|
23
|
-
return splitString.join('. ');
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
return '';
|
|
27
|
-
}
|
|
28
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: CapitalizePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
29
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.7", ngImport: i0, type: CapitalizePipe, isStandalone: true, name: "capitalize" }); }
|
|
30
|
-
}
|
|
31
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: CapitalizePipe, decorators: [{
|
|
32
|
-
type: Pipe,
|
|
33
|
-
args: [{
|
|
34
|
-
name: 'capitalize',
|
|
35
|
-
standalone: true
|
|
36
|
-
}]
|
|
37
|
-
}] });
|
|
38
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FwaXRhbGl6ZS5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xvdWQtaWRlLWVsZW1lbnQvc3JjL2xpYi91dGlscy9waXBlcy9jYXBpdGFsaXplL2NhcGl0YWxpemUucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQzs7QUFNcEQsTUFBTSxPQUFPLGNBQWM7SUFFekIsU0FBUyxDQUNQLEtBQWEsRUFDYixvQkFBbUU7UUFFbkUsSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUNWLElBQUksb0JBQW9CLEtBQUssY0FBYyxFQUFFLENBQUM7Z0JBQzVDLE9BQU8sS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQzdCLENBQUM7aUJBQU0sSUFBSSxvQkFBb0IsS0FBSyxXQUFXLEVBQUUsQ0FBQztnQkFDaEQsTUFBTSxXQUFXLEdBQUcsS0FBSztxQkFDdEIsS0FBSyxDQUFDLEdBQUcsQ0FBQztxQkFDVixHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUNwRCxPQUFPLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDL0IsQ0FBQztpQkFBTSxJQUFJLG9CQUFvQixLQUFLLGNBQWMsRUFBRSxDQUFDO2dCQUNuRCxNQUFNLFdBQVcsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO29CQUM3QyxNQUFNLGFBQWEsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7b0JBQy9CLElBQUksYUFBYSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQzt3QkFDN0IsT0FBTyxHQUFHLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsR0FBRyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7b0JBQ3RFLENBQUM7b0JBQ0QsT0FBTyxFQUFFLENBQUM7Z0JBQ1osQ0FBQyxDQUFDLENBQUM7Z0JBQ0gsT0FBTyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2hDLENBQUM7UUFDSCxDQUFDO1FBQ0QsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDOzhHQTFCVSxjQUFjOzRHQUFkLGNBQWM7OzJGQUFkLGNBQWM7a0JBSjFCLElBQUk7bUJBQUM7b0JBQ0osSUFBSSxFQUFFLFlBQVk7b0JBQ2xCLFVBQVUsRUFBRSxJQUFJO2lCQUNqQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBQaXBlKHtcclxuICBuYW1lOiAnY2FwaXRhbGl6ZScsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ2FwaXRhbGl6ZVBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcclxuXHJcbiAgdHJhbnNmb3JtKFxyXG4gICAgdmFsdWU6IHN0cmluZyxcclxuICAgIGNhcGl0YWxpemF0aW9uTWV0aG9kOiAnYWxsVXBwZXJDYXNlJyB8ICd0aXRsZUNhc2UnIHwgJ3NlbnRlbmNlQ2FzZSdcclxuICApOiBzdHJpbmcge1xyXG4gICAgaWYgKHZhbHVlKSB7XHJcbiAgICAgIGlmIChjYXBpdGFsaXphdGlvbk1ldGhvZCA9PT0gJ2FsbFVwcGVyQ2FzZScpIHtcclxuICAgICAgICByZXR1cm4gdmFsdWUudG9VcHBlckNhc2UoKTtcclxuICAgICAgfSBlbHNlIGlmIChjYXBpdGFsaXphdGlvbk1ldGhvZCA9PT0gJ3RpdGxlQ2FzZScpIHtcclxuICAgICAgICBjb25zdCBzcGxpdFN0cmluZyA9IHZhbHVlXHJcbiAgICAgICAgICAuc3BsaXQoJyAnKVxyXG4gICAgICAgICAgLm1hcCgocykgPT4gYCR7c1swXS50b1VwcGVyQ2FzZSgpfSR7cy5zbGljZSgxKX1gKTtcclxuICAgICAgICByZXR1cm4gc3BsaXRTdHJpbmcuam9pbignICcpO1xyXG4gICAgICB9IGVsc2UgaWYgKGNhcGl0YWxpemF0aW9uTWV0aG9kID09PSAnc2VudGVuY2VDYXNlJykge1xyXG4gICAgICAgIGNvbnN0IHNwbGl0U3RyaW5nID0gdmFsdWUuc3BsaXQoJy4nKS5tYXAoKHMpID0+IHtcclxuICAgICAgICAgIGNvbnN0IHRyaW1tZWRTdHJpbmcgPSBzLnRyaW0oKTtcclxuICAgICAgICAgIGlmICh0cmltbWVkU3RyaW5nLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgcmV0dXJuIGAke3RyaW1tZWRTdHJpbmdbMF0udG9VcHBlckNhc2UoKX0ke3RyaW1tZWRTdHJpbmcuc2xpY2UoMSl9YDtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHJldHVybiAnJztcclxuICAgICAgICB9KTtcclxuICAgICAgICByZXR1cm4gc3BsaXRTdHJpbmcuam9pbignLiAnKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuICcnO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import { BehaviorSubject } from 'rxjs';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
export class CideElementsService {
|
|
5
|
-
constructor() {
|
|
6
|
-
this.cide_element_data = {};
|
|
7
|
-
this.is_cide_element_data_updated = new BehaviorSubject(false);
|
|
8
|
-
}
|
|
9
|
-
async getElementData(body) {
|
|
10
|
-
return new Promise((resolve) => {
|
|
11
|
-
const cide_element_data = this.cide_element_data[body?.sype_key];
|
|
12
|
-
if (cide_element_data) {
|
|
13
|
-
resolve(cide_element_data);
|
|
14
|
-
}
|
|
15
|
-
else {
|
|
16
|
-
const subscription = this.is_cide_element_data_updated?.subscribe({
|
|
17
|
-
next: (is_cide_element_data_updated) => {
|
|
18
|
-
if (is_cide_element_data_updated) {
|
|
19
|
-
const cide_element_data = this.cide_element_data[body?.sype_key];
|
|
20
|
-
if (cide_element_data) {
|
|
21
|
-
subscription?.unsubscribe();
|
|
22
|
-
resolve(cide_element_data);
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
});
|
|
27
|
-
}
|
|
28
|
-
});
|
|
29
|
-
}
|
|
30
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: CideElementsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
31
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: CideElementsService, providedIn: 'root' }); }
|
|
32
|
-
}
|
|
33
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: CideElementsService, decorators: [{
|
|
34
|
-
type: Injectable,
|
|
35
|
-
args: [{
|
|
36
|
-
providedIn: 'root'
|
|
37
|
-
}]
|
|
38
|
-
}] });
|
|
39
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlbWVudHMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nsb3VkLWlkZS1lbGVtZW50L3NyYy9saWIvdXRpbHMvc2VydmljZXMvZWxlbWVudHMvZWxlbWVudHMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBS3ZDLE1BQU0sT0FBTyxtQkFBbUI7SUFIaEM7UUFJRSxzQkFBaUIsR0FBaUMsRUFBRSxDQUFDO1FBQ3JELGlDQUE0QixHQUE2QixJQUFJLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztLQXFCckY7SUFwQkMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxJQUEyQjtRQUM5QyxPQUFPLElBQUksT0FBTyxDQUFZLENBQUMsT0FBTyxFQUFFLEVBQUU7WUFDeEMsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1lBQ2pFLElBQUksaUJBQWlCLEVBQUUsQ0FBQztnQkFDdEIsT0FBTyxDQUFDLGlCQUFpQixDQUFDLENBQUM7WUFDN0IsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyw0QkFBNEIsRUFBRSxTQUFTLENBQUM7b0JBQ2hFLElBQUksRUFBRSxDQUFDLDRCQUFxQyxFQUFFLEVBQUU7d0JBQzlDLElBQUksNEJBQTRCLEVBQUUsQ0FBQzs0QkFDakMsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDOzRCQUNqRSxJQUFJLGlCQUFpQixFQUFFLENBQUM7Z0NBQ3RCLFlBQVksRUFBRSxXQUFXLEVBQUUsQ0FBQztnQ0FDNUIsT0FBTyxDQUFDLGlCQUFpQixDQUFDLENBQUM7NEJBQzdCLENBQUM7d0JBQ0gsQ0FBQztvQkFDSCxDQUFDO2lCQUNGLENBQUMsQ0FBQztZQUNMLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQTtJQUNKLENBQUM7OEdBdEJVLG1CQUFtQjtrSEFBbkIsbUJBQW1CLGNBRmxCLE1BQU07OzJGQUVQLG1CQUFtQjtrQkFIL0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEdldEVsZW1lbnREYXRhUmVxdWVzdCwgSUNvcmVTeXBlIH0gZnJvbSAnY2xvdWQtaWRlLWxtcy1tb2RlbCc7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQ2lkZUVsZW1lbnRzU2VydmljZSB7XHJcbiAgY2lkZV9lbGVtZW50X2RhdGE6IHsgW2tleTogc3RyaW5nXTogSUNvcmVTeXBlIH0gPSB7fTtcclxuICBpc19jaWRlX2VsZW1lbnRfZGF0YV91cGRhdGVkOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KGZhbHNlKTtcclxuICBhc3luYyBnZXRFbGVtZW50RGF0YShib2R5OiBHZXRFbGVtZW50RGF0YVJlcXVlc3QpOiBQcm9taXNlPElDb3JlU3lwZT4ge1xyXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlPElDb3JlU3lwZT4oKHJlc29sdmUpID0+IHtcclxuICAgICAgY29uc3QgY2lkZV9lbGVtZW50X2RhdGEgPSB0aGlzLmNpZGVfZWxlbWVudF9kYXRhW2JvZHk/LnN5cGVfa2V5XTtcclxuICAgICAgaWYgKGNpZGVfZWxlbWVudF9kYXRhKSB7XHJcbiAgICAgICAgcmVzb2x2ZShjaWRlX2VsZW1lbnRfZGF0YSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgY29uc3Qgc3Vic2NyaXB0aW9uID0gdGhpcy5pc19jaWRlX2VsZW1lbnRfZGF0YV91cGRhdGVkPy5zdWJzY3JpYmUoe1xyXG4gICAgICAgICAgbmV4dDogKGlzX2NpZGVfZWxlbWVudF9kYXRhX3VwZGF0ZWQ6IGJvb2xlYW4pID0+IHtcclxuICAgICAgICAgICAgaWYgKGlzX2NpZGVfZWxlbWVudF9kYXRhX3VwZGF0ZWQpIHtcclxuICAgICAgICAgICAgICBjb25zdCBjaWRlX2VsZW1lbnRfZGF0YSA9IHRoaXMuY2lkZV9lbGVtZW50X2RhdGFbYm9keT8uc3lwZV9rZXldO1xyXG4gICAgICAgICAgICAgIGlmIChjaWRlX2VsZW1lbnRfZGF0YSkge1xyXG4gICAgICAgICAgICAgICAgc3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xyXG4gICAgICAgICAgICAgICAgcmVzb2x2ZShjaWRlX2VsZW1lbnRfZGF0YSk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgfVxyXG59XHJcbiJdfQ==
|
package/esm2022/public-api.mjs
DELETED
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Public API Surface of cloud-ide-element
|
|
3
|
-
* Here we can add what need to be exported from library
|
|
4
|
-
*/
|
|
5
|
-
export * from './lib/elements/input/input.component';
|
|
6
|
-
export * from './lib/elements/button/cide-ele-button.component';
|
|
7
|
-
export * from './lib/elements/spinner/spinner.component';
|
|
8
|
-
export * from './lib/elements/icon/icon.component';
|
|
9
|
-
export * from './lib/elements/select/select.component';
|
|
10
|
-
export * from './lib/elements/tab/cide-ele-tab.component';
|
|
11
|
-
export * from './lib/elements/file-input/file-input.component';
|
|
12
|
-
export * from './lib/elements/textarea/textarea.component';
|
|
13
|
-
export * from './lib/utils/services/elements/elements.service';
|
|
14
|
-
export * from './lib/utils/directives/resizer/resizer.directive';
|
|
15
|
-
export * from './lib/utils/directives/tooltip/tooltip.directive';
|
|
16
|
-
export * from './lib/components/skeleton-loader/skeleton-loader.component';
|
|
17
|
-
// Data Grid Component and Types
|
|
18
|
-
export * from './lib/components/data-grid/data-grid.component';
|
|
19
|
-
export * from './lib/components/data-grid/data-grid.types';
|
|
20
|
-
// Dropdown Component and Service
|
|
21
|
-
export * from './lib/components/dropdown/dropdown.component';
|
|
22
|
-
export * from './lib/services/dropdown-manager.service';
|
|
23
|
-
// Confirmation and Notification System
|
|
24
|
-
export * from './lib/services/confirmation.service';
|
|
25
|
-
export * from './lib/services/notification.service';
|
|
26
|
-
export * from './lib/components/confirmation-modal/confirmation-modal.component';
|
|
27
|
-
export * from './lib/components/toast-notification/toast-notification.component';
|
|
28
|
-
export * from './lib/components/global-notifications/global-notifications.component';
|
|
29
|
-
// JSON Editor Component
|
|
30
|
-
export * from './lib/components/json-editor/json-editor.component';
|
|
31
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2Nsb3VkLWlkZS1lbGVtZW50L3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7R0FHRztBQUVILGNBQWMsc0NBQXNDLENBQUM7QUFDckQsY0FBYyxpREFBaUQsQ0FBQztBQUNoRSxjQUFjLDBDQUEwQyxDQUFDO0FBQ3pELGNBQWMsb0NBQW9DLENBQUM7QUFDbkQsY0FBYyx3Q0FBd0MsQ0FBQztBQUN2RCxjQUFjLDJDQUEyQyxDQUFDO0FBQzFELGNBQWMsZ0RBQWdELENBQUM7QUFDL0QsY0FBYyw0Q0FBNEMsQ0FBQztBQUMzRCxjQUFjLGdEQUFnRCxDQUFDO0FBQy9ELGNBQWMsa0RBQWtELENBQUM7QUFDakUsY0FBYyxrREFBa0QsQ0FBQztBQUNqRSxjQUFjLDREQUE0RCxDQUFDO0FBRTNFLGdDQUFnQztBQUNoQyxjQUFjLGdEQUFnRCxDQUFDO0FBQy9ELGNBQWMsNENBQTRDLENBQUM7QUFFM0QsaUNBQWlDO0FBQ2pDLGNBQWMsOENBQThDLENBQUM7QUFDN0QsY0FBYyx5Q0FBeUMsQ0FBQztBQUV4RCx1Q0FBdUM7QUFDdkMsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMsa0VBQWtFLENBQUM7QUFDakYsY0FBYyxrRUFBa0UsQ0FBQztBQUNqRixjQUFjLHNFQUFzRSxDQUFDO0FBRXJGLHdCQUF3QjtBQUN4QixjQUFjLG9EQUFvRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBjbG91ZC1pZGUtZWxlbWVudFxuICogSGVyZSB3ZSBjYW4gYWRkIHdoYXQgbmVlZCB0byBiZSBleHBvcnRlZCBmcm9tIGxpYnJhcnlcbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9lbGVtZW50cy9pbnB1dC9pbnB1dC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZWxlbWVudHMvYnV0dG9uL2NpZGUtZWxlLWJ1dHRvbi5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZWxlbWVudHMvc3Bpbm5lci9zcGlubmVyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9lbGVtZW50cy9pY29uL2ljb24uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2VsZW1lbnRzL3NlbGVjdC9zZWxlY3QuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2VsZW1lbnRzL3RhYi9jaWRlLWVsZS10YWIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2VsZW1lbnRzL2ZpbGUtaW5wdXQvZmlsZS1pbnB1dC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZWxlbWVudHMvdGV4dGFyZWEvdGV4dGFyZWEuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3V0aWxzL3NlcnZpY2VzL2VsZW1lbnRzL2VsZW1lbnRzLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdXRpbHMvZGlyZWN0aXZlcy9yZXNpemVyL3Jlc2l6ZXIuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3V0aWxzL2RpcmVjdGl2ZXMvdG9vbHRpcC90b29sdGlwLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3NrZWxldG9uLWxvYWRlci9za2VsZXRvbi1sb2FkZXIuY29tcG9uZW50JztcblxuLy8gRGF0YSBHcmlkIENvbXBvbmVudCBhbmQgVHlwZXNcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZGF0YS1ncmlkL2RhdGEtZ3JpZC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9kYXRhLWdyaWQvZGF0YS1ncmlkLnR5cGVzJztcblxuLy8gRHJvcGRvd24gQ29tcG9uZW50IGFuZCBTZXJ2aWNlXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2Ryb3Bkb3duL2Ryb3Bkb3duLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9kcm9wZG93bi1tYW5hZ2VyLnNlcnZpY2UnO1xuXG4vLyBDb25maXJtYXRpb24gYW5kIE5vdGlmaWNhdGlvbiBTeXN0ZW1cbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2NvbmZpcm1hdGlvbi5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL25vdGlmaWNhdGlvbi5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvY29uZmlybWF0aW9uLW1vZGFsL2NvbmZpcm1hdGlvbi1tb2RhbC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy90b2FzdC1ub3RpZmljYXRpb24vdG9hc3Qtbm90aWZpY2F0aW9uLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2dsb2JhbC1ub3RpZmljYXRpb25zL2dsb2JhbC1ub3RpZmljYXRpb25zLmNvbXBvbmVudCc7XG5cbi8vIEpTT04gRWRpdG9yIENvbXBvbmVudFxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9qc29uLWVkaXRvci9qc29uLWVkaXRvci5jb21wb25lbnQnO1xuXG4iXX0=
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import * as i0 from "@angular/core";
|
|
2
|
-
export declare class CideEleConfirmationModalComponent {
|
|
3
|
-
private confirmationService;
|
|
4
|
-
hasActiveConfirmation: import("@angular/core").Signal<boolean>;
|
|
5
|
-
currentRequest: import("@angular/core").WritableSignal<import("../../services/confirmation.service").ConfirmationRequest<unknown> | null>;
|
|
6
|
-
customData: import("@angular/core").WritableSignal<unknown>;
|
|
7
|
-
getHeaderClass: import("@angular/core").Signal<string>;
|
|
8
|
-
getIconClass: import("@angular/core").Signal<"success" | "danger" | "warning" | "info">;
|
|
9
|
-
getConfirmButtonClass: import("@angular/core").Signal<string>;
|
|
10
|
-
onBackdropClick(event: Event): void;
|
|
11
|
-
onCancel(): void;
|
|
12
|
-
onConfirm(): void;
|
|
13
|
-
updateCustomData(data: unknown): void;
|
|
14
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<CideEleConfirmationModalComponent, never>;
|
|
15
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<CideEleConfirmationModalComponent, "cide-ele-confirmation-modal", never, {}, {}, never, never, true, never>;
|
|
16
|
-
}
|