cloud-ide-element 1.0.4 → 1.0.5

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 (54) hide show
  1. package/README.md +63 -271
  2. package/fesm2022/cloud-ide-element.mjs +614 -618
  3. package/fesm2022/cloud-ide-element.mjs.map +1 -1
  4. package/index.d.ts +1362 -3
  5. package/package.json +3 -30
  6. package/esm2022/cloud-ide-element.mjs +0 -5
  7. package/esm2022/lib/components/confirmation-modal/confirmation-modal.component.mjs +0 -182
  8. package/esm2022/lib/components/data-grid/data-grid.component.mjs +0 -1363
  9. package/esm2022/lib/components/data-grid/data-grid.types.mjs +0 -37
  10. package/esm2022/lib/components/dropdown/dropdown.component.mjs +0 -396
  11. package/esm2022/lib/components/global-notifications/global-notifications.component.mjs +0 -30
  12. package/esm2022/lib/components/json-editor/json-editor.component.mjs +0 -521
  13. package/esm2022/lib/components/skeleton-loader/skeleton-loader.component.mjs +0 -33
  14. package/esm2022/lib/components/toast-notification/toast-notification.component.mjs +0 -152
  15. package/esm2022/lib/elements/button/cide-ele-button.component.mjs +0 -249
  16. package/esm2022/lib/elements/file-input/file-input.component.mjs +0 -83
  17. package/esm2022/lib/elements/icon/icon.component.mjs +0 -26
  18. package/esm2022/lib/elements/input/input.component.mjs +0 -467
  19. package/esm2022/lib/elements/select/select.component.mjs +0 -471
  20. package/esm2022/lib/elements/spinner/spinner.component.mjs +0 -32
  21. package/esm2022/lib/elements/tab/cide-ele-tab.component.mjs +0 -74
  22. package/esm2022/lib/elements/textarea/textarea.component.mjs +0 -157
  23. package/esm2022/lib/services/confirmation.service.mjs +0 -151
  24. package/esm2022/lib/services/dropdown-manager.service.mjs +0 -93
  25. package/esm2022/lib/services/notification.service.mjs +0 -196
  26. package/esm2022/lib/utils/directives/resizer/resizer.directive.mjs +0 -231
  27. package/esm2022/lib/utils/directives/tooltip/tooltip.directive.mjs +0 -294
  28. package/esm2022/lib/utils/pipes/capitalize/capitalize.pipe.mjs +0 -38
  29. package/esm2022/lib/utils/services/elements/elements.service.mjs +0 -39
  30. package/esm2022/public-api.mjs +0 -31
  31. package/lib/components/confirmation-modal/confirmation-modal.component.d.ts +0 -16
  32. package/lib/components/data-grid/data-grid.component.d.ts +0 -244
  33. package/lib/components/data-grid/data-grid.types.d.ts +0 -146
  34. package/lib/components/dropdown/dropdown.component.d.ts +0 -75
  35. package/lib/components/global-notifications/global-notifications.component.d.ts +0 -5
  36. package/lib/components/json-editor/json-editor.component.d.ts +0 -116
  37. package/lib/components/skeleton-loader/skeleton-loader.component.d.ts +0 -11
  38. package/lib/components/toast-notification/toast-notification.component.d.ts +0 -13
  39. package/lib/elements/button/cide-ele-button.component.d.ts +0 -85
  40. package/lib/elements/file-input/file-input.component.d.ts +0 -25
  41. package/lib/elements/icon/icon.component.d.ts +0 -9
  42. package/lib/elements/input/input.component.d.ts +0 -182
  43. package/lib/elements/select/select.component.d.ts +0 -91
  44. package/lib/elements/spinner/spinner.component.d.ts +0 -19
  45. package/lib/elements/tab/cide-ele-tab.component.d.ts +0 -26
  46. package/lib/elements/textarea/textarea.component.d.ts +0 -47
  47. package/lib/services/confirmation.service.d.ts +0 -65
  48. package/lib/services/dropdown-manager.service.d.ts +0 -22
  49. package/lib/services/notification.service.d.ts +0 -81
  50. package/lib/utils/directives/resizer/resizer.directive.d.ts +0 -44
  51. package/lib/utils/directives/tooltip/tooltip.directive.d.ts +0 -43
  52. package/lib/utils/pipes/capitalize/capitalize.pipe.d.ts +0 -7
  53. package/lib/utils/services/elements/elements.service.d.ts +0 -12
  54. package/public-api.d.ts +0 -22
@@ -1,152 +0,0 @@
1
- import { Component, inject } from '@angular/core';
2
- import { CommonModule } from '@angular/common';
3
- import { CideIconComponent } from '../../elements/icon/icon.component';
4
- import { NotificationService } from '../../services/notification.service';
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "@angular/common";
7
- export class CideEleToastNotificationComponent {
8
- constructor() {
9
- this.notificationService = inject(NotificationService);
10
- // Signals
11
- this.activeNotifications = this.notificationService.getActiveNotifications();
12
- }
13
- // Methods
14
- getToastClass(notification) {
15
- return `toast-${notification.type}`;
16
- }
17
- getIconClass(type) {
18
- return `toast-icon ${type}`;
19
- }
20
- removeNotification(id) {
21
- this.notificationService.remove(id);
22
- }
23
- executeUndo(id) {
24
- this.notificationService.executeUndo(id);
25
- }
26
- trackByNotification(index, notification) {
27
- return notification.id;
28
- }
29
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: CideEleToastNotificationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
30
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.7", type: CideEleToastNotificationComponent, isStandalone: true, selector: "cide-ele-toast-notification", ngImport: i0, template: `
31
- <!-- Toast Container -->
32
- <div class="toast-container">
33
- <div
34
- *ngFor="let notification of activeNotifications(); trackBy: trackByNotification"
35
- class="toast-notification"
36
- [class]="getToastClass(notification)"
37
- [@toastAnimation]>
38
-
39
- <!-- Toast Content -->
40
- <div class="toast-content">
41
- <!-- Icon -->
42
- <div class="toast-icon" [class]="getIconClass(notification.type)">
43
- <cide-ele-icon size="sm">
44
- {{ notification.icon }}
45
- </cide-ele-icon>
46
- </div>
47
-
48
- <!-- Text Content -->
49
- <div class="toast-text">
50
- <div *ngIf="notification.title" class="toast-title">
51
- {{ notification.title }}
52
- </div>
53
- <div class="toast-message">
54
- {{ notification.message }}
55
- </div>
56
- </div>
57
-
58
- <!-- Close Button -->
59
- <button
60
- type="button"
61
- class="toast-close"
62
- (click)="removeNotification(notification.id)"
63
- aria-label="Close notification">
64
- <cide-ele-icon size="xs">close</cide-ele-icon>
65
- </button>
66
- </div>
67
-
68
- <!-- Undo Button -->
69
- <div *ngIf="notification.showUndo" class="toast-actions">
70
- <button
71
- type="button"
72
- class="toast-undo-btn"
73
- (click)="executeUndo(notification.id)">
74
- {{ notification.undoText }}
75
- </button>
76
- </div>
77
-
78
- <!-- Progress Bar -->
79
- <div
80
- *ngIf="notification.duration > 0"
81
- class="toast-progress"
82
- [style.animation-duration]="notification.duration + 'ms'">
83
- </div>
84
- </div>
85
- </div>
86
- `, isInline: true, styles: [".toast-container{position:fixed;top:20px;right:20px;z-index:9990;display:flex;flex-direction:column;gap:12px;max-width:400px;width:100%}.toast-notification{background:#fff;border-radius:8px;box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d;border:1px solid #e5e7eb;overflow:hidden;position:relative;animation:slideInRight .3s ease-out}.toast-notification.success{border-left:4px solid #16a34a}.toast-notification.error{border-left:4px solid #dc2626}.toast-notification.warning{border-left:4px solid #d97706}.toast-notification.info{border-left:4px solid #2563eb}.toast-content{display:flex;align-items:flex-start;gap:12px;padding:16px}.toast-icon{width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:2px}.toast-icon.success{background-color:#f0fdf4;color:#16a34a}.toast-icon.error{background-color:#fef2f2;color:#dc2626}.toast-icon.warning{background-color:#fffbeb;color:#d97706}.toast-icon.info{background-color:#eff6ff;color:#2563eb}.toast-text{flex:1;min-width:0}.toast-title{font-size:14px;font-weight:600;color:#111827;margin-bottom:4px;line-height:1.4}.toast-message{font-size:14px;color:#6b7280;line-height:1.4}.toast-close{background:none;border:none;color:#9ca3af;cursor:pointer;padding:4px;border-radius:4px;display:flex;align-items:center;justify-content:center;transition:all .2s ease;flex-shrink:0}.toast-close:hover{background-color:#f3f4f6;color:#6b7280}.toast-actions{padding:0 16px 16px;display:flex;justify-content:flex-end}.toast-undo-btn{background:none;border:none;color:#2563eb;font-size:14px;font-weight:500;cursor:pointer;padding:8px 12px;border-radius:6px;transition:all .2s ease}.toast-undo-btn:hover{background-color:#eff6ff}.toast-progress{position:absolute;bottom:0;left:0;height:3px;background-color:#e5e7eb;animation:progressShrink linear forwards}.toast-notification.success .toast-progress{background-color:#16a34a}.toast-notification.error .toast-progress{background-color:#dc2626}.toast-notification.warning .toast-progress{background-color:#d97706}.toast-notification.info .toast-progress{background-color:#2563eb}@keyframes slideInRight{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}@keyframes slideOutRight{0%{transform:translate(0);opacity:1}to{transform:translate(100%);opacity:0}}@keyframes progressShrink{0%{width:100%}to{width:0%}}@media (max-width: 640px){.toast-container{top:10px;right:10px;left:10px;max-width:none}.toast-notification{border-radius:6px}.toast-content{padding:12px}.toast-actions{padding:0 12px 12px}}.toast-close:focus,.toast-undo-btn:focus{outline:2px solid #2563eb;outline-offset:2px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: CideIconComponent, selector: "cide-ele-icon", inputs: ["size", "type", "toolTip"] }], animations: [
87
- // Add animations here if needed
88
- ] }); }
89
- }
90
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: CideEleToastNotificationComponent, decorators: [{
91
- type: Component,
92
- args: [{ selector: 'cide-ele-toast-notification', standalone: true, imports: [CommonModule, CideIconComponent], template: `
93
- <!-- Toast Container -->
94
- <div class="toast-container">
95
- <div
96
- *ngFor="let notification of activeNotifications(); trackBy: trackByNotification"
97
- class="toast-notification"
98
- [class]="getToastClass(notification)"
99
- [@toastAnimation]>
100
-
101
- <!-- Toast Content -->
102
- <div class="toast-content">
103
- <!-- Icon -->
104
- <div class="toast-icon" [class]="getIconClass(notification.type)">
105
- <cide-ele-icon size="sm">
106
- {{ notification.icon }}
107
- </cide-ele-icon>
108
- </div>
109
-
110
- <!-- Text Content -->
111
- <div class="toast-text">
112
- <div *ngIf="notification.title" class="toast-title">
113
- {{ notification.title }}
114
- </div>
115
- <div class="toast-message">
116
- {{ notification.message }}
117
- </div>
118
- </div>
119
-
120
- <!-- Close Button -->
121
- <button
122
- type="button"
123
- class="toast-close"
124
- (click)="removeNotification(notification.id)"
125
- aria-label="Close notification">
126
- <cide-ele-icon size="xs">close</cide-ele-icon>
127
- </button>
128
- </div>
129
-
130
- <!-- Undo Button -->
131
- <div *ngIf="notification.showUndo" class="toast-actions">
132
- <button
133
- type="button"
134
- class="toast-undo-btn"
135
- (click)="executeUndo(notification.id)">
136
- {{ notification.undoText }}
137
- </button>
138
- </div>
139
-
140
- <!-- Progress Bar -->
141
- <div
142
- *ngIf="notification.duration > 0"
143
- class="toast-progress"
144
- [style.animation-duration]="notification.duration + 'ms'">
145
- </div>
146
- </div>
147
- </div>
148
- `, animations: [
149
- // Add animations here if needed
150
- ], styles: [".toast-container{position:fixed;top:20px;right:20px;z-index:9990;display:flex;flex-direction:column;gap:12px;max-width:400px;width:100%}.toast-notification{background:#fff;border-radius:8px;box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d;border:1px solid #e5e7eb;overflow:hidden;position:relative;animation:slideInRight .3s ease-out}.toast-notification.success{border-left:4px solid #16a34a}.toast-notification.error{border-left:4px solid #dc2626}.toast-notification.warning{border-left:4px solid #d97706}.toast-notification.info{border-left:4px solid #2563eb}.toast-content{display:flex;align-items:flex-start;gap:12px;padding:16px}.toast-icon{width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:2px}.toast-icon.success{background-color:#f0fdf4;color:#16a34a}.toast-icon.error{background-color:#fef2f2;color:#dc2626}.toast-icon.warning{background-color:#fffbeb;color:#d97706}.toast-icon.info{background-color:#eff6ff;color:#2563eb}.toast-text{flex:1;min-width:0}.toast-title{font-size:14px;font-weight:600;color:#111827;margin-bottom:4px;line-height:1.4}.toast-message{font-size:14px;color:#6b7280;line-height:1.4}.toast-close{background:none;border:none;color:#9ca3af;cursor:pointer;padding:4px;border-radius:4px;display:flex;align-items:center;justify-content:center;transition:all .2s ease;flex-shrink:0}.toast-close:hover{background-color:#f3f4f6;color:#6b7280}.toast-actions{padding:0 16px 16px;display:flex;justify-content:flex-end}.toast-undo-btn{background:none;border:none;color:#2563eb;font-size:14px;font-weight:500;cursor:pointer;padding:8px 12px;border-radius:6px;transition:all .2s ease}.toast-undo-btn:hover{background-color:#eff6ff}.toast-progress{position:absolute;bottom:0;left:0;height:3px;background-color:#e5e7eb;animation:progressShrink linear forwards}.toast-notification.success .toast-progress{background-color:#16a34a}.toast-notification.error .toast-progress{background-color:#dc2626}.toast-notification.warning .toast-progress{background-color:#d97706}.toast-notification.info .toast-progress{background-color:#2563eb}@keyframes slideInRight{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}@keyframes slideOutRight{0%{transform:translate(0);opacity:1}to{transform:translate(100%);opacity:0}}@keyframes progressShrink{0%{width:100%}to{width:0%}}@media (max-width: 640px){.toast-container{top:10px;right:10px;left:10px;max-width:none}.toast-notification{border-radius:6px}.toast-content{padding:12px}.toast-actions{padding:0 12px 12px}}.toast-close:focus,.toast-undo-btn:focus{outline:2px solid #2563eb;outline-offset:2px}\n"] }]
151
- }] });
152
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9hc3Qtbm90aWZpY2F0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nsb3VkLWlkZS1lbGVtZW50L3NyYy9saWIvY29tcG9uZW50cy90b2FzdC1ub3RpZmljYXRpb24vdG9hc3Qtbm90aWZpY2F0aW9uLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFvQixNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxtQkFBbUIsRUFBb0IsTUFBTSxxQ0FBcUMsQ0FBQzs7O0FBa1M1RixNQUFNLE9BQU8saUNBQWlDO0lBaFM5QztRQWlTVSx3QkFBbUIsR0FBRyxNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUUxRCxVQUFVO1FBQ1Ysd0JBQW1CLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLHNCQUFzQixFQUFFLENBQUM7S0FzQnpFO0lBcEJDLFVBQVU7SUFDVixhQUFhLENBQUMsWUFBOEI7UUFDMUMsT0FBTyxTQUFTLFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN0QyxDQUFDO0lBRUQsWUFBWSxDQUFDLElBQVk7UUFDdkIsT0FBTyxjQUFjLElBQUksRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxFQUFVO1FBQzNCLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVELFdBQVcsQ0FBQyxFQUFVO1FBQ3BCLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVELG1CQUFtQixDQUFDLEtBQWEsRUFBRSxZQUE4QjtRQUMvRCxPQUFPLFlBQVksQ0FBQyxFQUFFLENBQUM7SUFDekIsQ0FBQzs4R0F6QlUsaUNBQWlDO2tHQUFqQyxpQ0FBaUMsdUZBNVJsQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F3RFQsZ3JGQXpEUyxZQUFZLGdRQUFFLGlCQUFpQixpRkF5UjdCO1FBQ1YsZ0NBQWdDO1NBQ2pDOzsyRkFFVSxpQ0FBaUM7a0JBaFM3QyxTQUFTOytCQUNFLDZCQUE2QixjQUMzQixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsaUJBQWlCLENBQUMsWUFDaEM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBd0RULGNBZ09XO29CQUNWLGdDQUFnQztxQkFDakMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIHNpZ25hbCwgY29tcHV0ZWQsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENpZGVJY29uQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vZWxlbWVudHMvaWNvbi9pY29uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBOb3RpZmljYXRpb25TZXJ2aWNlLCBOb3RpZmljYXRpb25JdGVtIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbm90aWZpY2F0aW9uLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjaWRlLWVsZS10b2FzdC1ub3RpZmljYXRpb24nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBDaWRlSWNvbkNvbXBvbmVudF0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPCEtLSBUb2FzdCBDb250YWluZXIgLS0+XG4gICAgPGRpdiBjbGFzcz1cInRvYXN0LWNvbnRhaW5lclwiPlxuICAgICAgPGRpdiBcbiAgICAgICAgKm5nRm9yPVwibGV0IG5vdGlmaWNhdGlvbiBvZiBhY3RpdmVOb3RpZmljYXRpb25zKCk7IHRyYWNrQnk6IHRyYWNrQnlOb3RpZmljYXRpb25cIlxuICAgICAgICBjbGFzcz1cInRvYXN0LW5vdGlmaWNhdGlvblwiXG4gICAgICAgIFtjbGFzc109XCJnZXRUb2FzdENsYXNzKG5vdGlmaWNhdGlvbilcIlxuICAgICAgICBbQHRvYXN0QW5pbWF0aW9uXT5cbiAgICAgICAgXG4gICAgICAgIDwhLS0gVG9hc3QgQ29udGVudCAtLT5cbiAgICAgICAgPGRpdiBjbGFzcz1cInRvYXN0LWNvbnRlbnRcIj5cbiAgICAgICAgICA8IS0tIEljb24gLS0+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInRvYXN0LWljb25cIiBbY2xhc3NdPVwiZ2V0SWNvbkNsYXNzKG5vdGlmaWNhdGlvbi50eXBlKVwiPlxuICAgICAgICAgICAgPGNpZGUtZWxlLWljb24gc2l6ZT1cInNtXCI+XG4gICAgICAgICAgICAgIHt7IG5vdGlmaWNhdGlvbi5pY29uIH19XG4gICAgICAgICAgICA8L2NpZGUtZWxlLWljb24+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgXG4gICAgICAgICAgPCEtLSBUZXh0IENvbnRlbnQgLS0+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInRvYXN0LXRleHRcIj5cbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJub3RpZmljYXRpb24udGl0bGVcIiBjbGFzcz1cInRvYXN0LXRpdGxlXCI+XG4gICAgICAgICAgICAgIHt7IG5vdGlmaWNhdGlvbi50aXRsZSB9fVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidG9hc3QtbWVzc2FnZVwiPlxuICAgICAgICAgICAgICB7eyBub3RpZmljYXRpb24ubWVzc2FnZSB9fVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgXG4gICAgICAgICAgPCEtLSBDbG9zZSBCdXR0b24gLS0+XG4gICAgICAgICAgPGJ1dHRvbiBcbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgY2xhc3M9XCJ0b2FzdC1jbG9zZVwiXG4gICAgICAgICAgICAoY2xpY2spPVwicmVtb3ZlTm90aWZpY2F0aW9uKG5vdGlmaWNhdGlvbi5pZClcIlxuICAgICAgICAgICAgYXJpYS1sYWJlbD1cIkNsb3NlIG5vdGlmaWNhdGlvblwiPlxuICAgICAgICAgICAgPGNpZGUtZWxlLWljb24gc2l6ZT1cInhzXCI+Y2xvc2U8L2NpZGUtZWxlLWljb24+XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICBcbiAgICAgICAgPCEtLSBVbmRvIEJ1dHRvbiAtLT5cbiAgICAgICAgPGRpdiAqbmdJZj1cIm5vdGlmaWNhdGlvbi5zaG93VW5kb1wiIGNsYXNzPVwidG9hc3QtYWN0aW9uc1wiPlxuICAgICAgICAgIDxidXR0b24gXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIGNsYXNzPVwidG9hc3QtdW5kby1idG5cIlxuICAgICAgICAgICAgKGNsaWNrKT1cImV4ZWN1dGVVbmRvKG5vdGlmaWNhdGlvbi5pZClcIj5cbiAgICAgICAgICAgIHt7IG5vdGlmaWNhdGlvbi51bmRvVGV4dCB9fVxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgXG4gICAgICAgIDwhLS0gUHJvZ3Jlc3MgQmFyIC0tPlxuICAgICAgICA8ZGl2IFxuICAgICAgICAgICpuZ0lmPVwibm90aWZpY2F0aW9uLmR1cmF0aW9uID4gMFwiXG4gICAgICAgICAgY2xhc3M9XCJ0b2FzdC1wcm9ncmVzc1wiXG4gICAgICAgICAgW3N0eWxlLmFuaW1hdGlvbi1kdXJhdGlvbl09XCJub3RpZmljYXRpb24uZHVyYXRpb24gKyAnbXMnXCI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIGAsXG4gIHN0eWxlczogW2BcbiAgICAudG9hc3QtY29udGFpbmVyIHtcbiAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgIHRvcDogMjBweDtcbiAgICAgIHJpZ2h0OiAyMHB4O1xuICAgICAgei1pbmRleDogOTk5MDtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgZ2FwOiAxMnB4O1xuICAgICAgbWF4LXdpZHRoOiA0MDBweDtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cblxuICAgIC50b2FzdC1ub3RpZmljYXRpb24ge1xuICAgICAgYmFja2dyb3VuZDogd2hpdGU7XG4gICAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgICBib3gtc2hhZG93OiAwIDEwcHggMTVweCAtM3B4IHJnYmEoMCwgMCwgMCwgMC4xKSwgMCA0cHggNnB4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjA1KTtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNlNWU3ZWI7XG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgYW5pbWF0aW9uOiBzbGlkZUluUmlnaHQgMC4zcyBlYXNlLW91dDtcbiAgICB9XG5cbiAgICAudG9hc3Qtbm90aWZpY2F0aW9uLnN1Y2Nlc3Mge1xuICAgICAgYm9yZGVyLWxlZnQ6IDRweCBzb2xpZCAjMTZhMzRhO1xuICAgIH1cblxuICAgIC50b2FzdC1ub3RpZmljYXRpb24uZXJyb3Ige1xuICAgICAgYm9yZGVyLWxlZnQ6IDRweCBzb2xpZCAjZGMyNjI2O1xuICAgIH1cblxuICAgIC50b2FzdC1ub3RpZmljYXRpb24ud2FybmluZyB7XG4gICAgICBib3JkZXItbGVmdDogNHB4IHNvbGlkICNkOTc3MDY7XG4gICAgfVxuXG4gICAgLnRvYXN0LW5vdGlmaWNhdGlvbi5pbmZvIHtcbiAgICAgIGJvcmRlci1sZWZ0OiA0cHggc29saWQgIzI1NjNlYjtcbiAgICB9XG5cbiAgICAudG9hc3QtY29udGVudCB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICBnYXA6IDEycHg7XG4gICAgICBwYWRkaW5nOiAxNnB4O1xuICAgIH1cblxuICAgIC50b2FzdC1pY29uIHtcbiAgICAgIHdpZHRoOiAyNHB4O1xuICAgICAgaGVpZ2h0OiAyNHB4O1xuICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgbWFyZ2luLXRvcDogMnB4O1xuICAgIH1cblxuICAgIC50b2FzdC1pY29uLnN1Y2Nlc3Mge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2YwZmRmNDtcbiAgICAgIGNvbG9yOiAjMTZhMzRhO1xuICAgIH1cblxuICAgIC50b2FzdC1pY29uLmVycm9yIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZWYyZjI7XG4gICAgICBjb2xvcjogI2RjMjYyNjtcbiAgICB9XG5cbiAgICAudG9hc3QtaWNvbi53YXJuaW5nIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZiZWI7XG4gICAgICBjb2xvcjogI2Q5NzcwNjtcbiAgICB9XG5cbiAgICAudG9hc3QtaWNvbi5pbmZvIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlZmY2ZmY7XG4gICAgICBjb2xvcjogIzI1NjNlYjtcbiAgICB9XG5cbiAgICAudG9hc3QtdGV4dCB7XG4gICAgICBmbGV4OiAxO1xuICAgICAgbWluLXdpZHRoOiAwO1xuICAgIH1cblxuICAgIC50b2FzdC10aXRsZSB7XG4gICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgY29sb3I6ICMxMTE4Mjc7XG4gICAgICBtYXJnaW4tYm90dG9tOiA0cHg7XG4gICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgIH1cblxuICAgIC50b2FzdC1tZXNzYWdlIHtcbiAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgIGNvbG9yOiAjNmI3MjgwO1xuICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICB9XG5cbiAgICAudG9hc3QtY2xvc2Uge1xuICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgIGNvbG9yOiAjOWNhM2FmO1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgcGFkZGluZzogNHB4O1xuICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7XG4gICAgICBmbGV4LXNocmluazogMDtcbiAgICB9XG5cbiAgICAudG9hc3QtY2xvc2U6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2YzZjRmNjtcbiAgICAgIGNvbG9yOiAjNmI3MjgwO1xuICAgIH1cblxuICAgIC50b2FzdC1hY3Rpb25zIHtcbiAgICAgIHBhZGRpbmc6IDAgMTZweCAxNnB4O1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgfVxuXG4gICAgLnRvYXN0LXVuZG8tYnRuIHtcbiAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICBib3JkZXI6IG5vbmU7XG4gICAgICBjb2xvcjogIzI1NjNlYjtcbiAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICBwYWRkaW5nOiA4cHggMTJweDtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7XG4gICAgfVxuXG4gICAgLnRvYXN0LXVuZG8tYnRuOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlZmY2ZmY7XG4gICAgfVxuXG4gICAgLnRvYXN0LXByb2dyZXNzIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGJvdHRvbTogMDtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICBoZWlnaHQ6IDNweDtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlNWU3ZWI7XG4gICAgICBhbmltYXRpb246IHByb2dyZXNzU2hyaW5rIGxpbmVhciBmb3J3YXJkcztcbiAgICB9XG5cbiAgICAudG9hc3Qtbm90aWZpY2F0aW9uLnN1Y2Nlc3MgLnRvYXN0LXByb2dyZXNzIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMxNmEzNGE7XG4gICAgfVxuXG4gICAgLnRvYXN0LW5vdGlmaWNhdGlvbi5lcnJvciAudG9hc3QtcHJvZ3Jlc3Mge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2RjMjYyNjtcbiAgICB9XG5cbiAgICAudG9hc3Qtbm90aWZpY2F0aW9uLndhcm5pbmcgLnRvYXN0LXByb2dyZXNzIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNkOTc3MDY7XG4gICAgfVxuXG4gICAgLnRvYXN0LW5vdGlmaWNhdGlvbi5pbmZvIC50b2FzdC1wcm9ncmVzcyB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjU2M2ViO1xuICAgIH1cblxuICAgIC8qIEFuaW1hdGlvbnMgKi9cbiAgICBAa2V5ZnJhbWVzIHNsaWRlSW5SaWdodCB7XG4gICAgICBmcm9tIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwMCUpO1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgfVxuICAgICAgdG8ge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGtleWZyYW1lcyBzbGlkZU91dFJpZ2h0IHtcbiAgICAgIGZyb20ge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICB9XG4gICAgICB0byB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDAlKTtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAa2V5ZnJhbWVzIHByb2dyZXNzU2hyaW5rIHtcbiAgICAgIGZyb20ge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgIH1cbiAgICAgIHRvIHtcbiAgICAgICAgd2lkdGg6IDAlO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8qIFJlc3BvbnNpdmUgRGVzaWduICovXG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDY0MHB4KSB7XG4gICAgICAudG9hc3QtY29udGFpbmVyIHtcbiAgICAgICAgdG9wOiAxMHB4O1xuICAgICAgICByaWdodDogMTBweDtcbiAgICAgICAgbGVmdDogMTBweDtcbiAgICAgICAgbWF4LXdpZHRoOiBub25lO1xuICAgICAgfVxuXG4gICAgICAudG9hc3Qtbm90aWZpY2F0aW9uIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgICAgfVxuXG4gICAgICAudG9hc3QtY29udGVudCB7XG4gICAgICAgIHBhZGRpbmc6IDEycHg7XG4gICAgICB9XG5cbiAgICAgIC50b2FzdC1hY3Rpb25zIHtcbiAgICAgICAgcGFkZGluZzogMCAxMnB4IDEycHg7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLyogRm9jdXMgc3R5bGVzIGZvciBhY2Nlc3NpYmlsaXR5ICovXG4gICAgLnRvYXN0LWNsb3NlOmZvY3VzLFxuICAgIC50b2FzdC11bmRvLWJ0bjpmb2N1cyB7XG4gICAgICBvdXRsaW5lOiAycHggc29saWQgIzI1NjNlYjtcbiAgICAgIG91dGxpbmUtb2Zmc2V0OiAycHg7XG4gICAgfVxuICBgXSxcbiAgYW5pbWF0aW9uczogW1xuICAgIC8vIEFkZCBhbmltYXRpb25zIGhlcmUgaWYgbmVlZGVkXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgQ2lkZUVsZVRvYXN0Tm90aWZpY2F0aW9uQ29tcG9uZW50IHtcbiAgcHJpdmF0ZSBub3RpZmljYXRpb25TZXJ2aWNlID0gaW5qZWN0KE5vdGlmaWNhdGlvblNlcnZpY2UpO1xuXG4gIC8vIFNpZ25hbHNcbiAgYWN0aXZlTm90aWZpY2F0aW9ucyA9IHRoaXMubm90aWZpY2F0aW9uU2VydmljZS5nZXRBY3RpdmVOb3RpZmljYXRpb25zKCk7XG5cbiAgLy8gTWV0aG9kc1xuICBnZXRUb2FzdENsYXNzKG5vdGlmaWNhdGlvbjogTm90aWZpY2F0aW9uSXRlbSk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGB0b2FzdC0ke25vdGlmaWNhdGlvbi50eXBlfWA7XG4gIH1cblxuICBnZXRJY29uQ2xhc3ModHlwZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYHRvYXN0LWljb24gJHt0eXBlfWA7XG4gIH1cblxuICByZW1vdmVOb3RpZmljYXRpb24oaWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMubm90aWZpY2F0aW9uU2VydmljZS5yZW1vdmUoaWQpO1xuICB9XG5cbiAgZXhlY3V0ZVVuZG8oaWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMubm90aWZpY2F0aW9uU2VydmljZS5leGVjdXRlVW5kbyhpZCk7XG4gIH1cblxuICB0cmFja0J5Tm90aWZpY2F0aW9uKGluZGV4OiBudW1iZXIsIG5vdGlmaWNhdGlvbjogTm90aWZpY2F0aW9uSXRlbSk6IHN0cmluZyB7XG4gICAgcmV0dXJuIG5vdGlmaWNhdGlvbi5pZDtcbiAgfVxufVxuIl19
@@ -1,249 +0,0 @@
1
- import { Component, EventEmitter, HostListener, Input, Output } from '@angular/core';
2
- import { CommonModule } from '@angular/common';
3
- import { CideSpinnerComponent } from '../spinner/spinner.component';
4
- import { Subject, debounceTime, takeUntil } from 'rxjs';
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "../../../public-api";
7
- import * as i2 from "@angular/router";
8
- import * as i3 from "@angular/common";
9
- /**
10
- * Advanced Angular button component that provides a comprehensive button implementation
11
- * with loading state, styling variants, animations, tooltips, and other features.
12
- *
13
- * This component uses proper Angular templating to avoid hydration issues (NG0500).
14
- */
15
- export class CideEleButtonComponent {
16
- constructor(elementService, router, renderer, elementRef) {
17
- this.elementService = elementService;
18
- this.router = router;
19
- this.renderer = renderer;
20
- this.elementRef = elementRef;
21
- this.destroy$ = new Subject();
22
- this.clickCount = 0;
23
- this.clickDebouncer$ = new Subject();
24
- // INPUTS
25
- /**
26
- * @description Label of button like Submit, Update, Add, etc.
27
- * Note: it is only used in case you did not set label between tags (via ng-content)
28
- */
29
- this.label = "";
30
- /** @description Button style variant */
31
- this.variant = 'primary';
32
- /** @description Button size */
33
- this.size = 'md';
34
- /** @description Button HTML type attribute */
35
- this.type = 'button';
36
- /** @description Button shape */
37
- this.shape = 'default';
38
- /** @description Button shadow elevation */
39
- this.elevation = 'medium';
40
- /** @description Button disabled state */
41
- this.disabled = false;
42
- /** @description Unique ID of control, used to differentiate elements */
43
- this.id = '';
44
- /** @description Enables loading state with spinner */
45
- this.loading = false;
46
- /** @description Makes button take full width of container */
47
- this.fullWidth = false;
48
- /** @description Icon to display on the left side of the button */
49
- this.leftIcon = '';
50
- /** @description Icon to display on the right side of the button */
51
- this.rightIcon = '';
52
- /** @description Additional CSS classes to apply */
53
- this.customClass = '';
54
- /** @description Tooltip text to display on hover */
55
- this.tooltip = '';
56
- /** @description Aria label for accessibility */
57
- this.ariaLabel = '';
58
- /** @description Test ID for automated testing */
59
- this.testId = '';
60
- /** @description Route to navigate to when clicked (for link buttons) */
61
- this.routerLink = '';
62
- /** @description Router navigation extras */
63
- this.routerExtras = {};
64
- /** @description Prevent multiple rapid clicks (debounce) */
65
- this.preventDoubleClick = true;
66
- /** @description Animation on click */
67
- this.animated = true;
68
- // OUTPUTS
69
- /**
70
- * @description Click event of button
71
- */
72
- this.btnClick = new EventEmitter();
73
- /**
74
- * @description Double click event
75
- */
76
- this.doubleClick = new EventEmitter();
77
- // Setup debounced click handler to prevent double-clicks
78
- this.clickDebouncer$
79
- .pipe(debounceTime(300), takeUntil(this.destroy$))
80
- .subscribe({
81
- next: (event) => {
82
- this.handleClick(event);
83
- }
84
- });
85
- }
86
- onClick(event) {
87
- if (this.disabled || this.loading) {
88
- event.preventDefault();
89
- event.stopPropagation();
90
- return;
91
- }
92
- if (this.animated) {
93
- this.addClickAnimation();
94
- }
95
- if (this.preventDoubleClick) {
96
- this.clickDebouncer$.next(event);
97
- }
98
- else {
99
- this.handleClick(event);
100
- }
101
- }
102
- handleClick(event) {
103
- // Handle navigation for routerLink
104
- if (this.routerLink && this.routerLink.length) {
105
- event.preventDefault();
106
- this.router.navigate(Array.isArray(this.routerLink) ? this.routerLink : [this.routerLink], this.routerExtras);
107
- }
108
- // Handle double-click detection
109
- this.clickCount++;
110
- setTimeout(() => {
111
- if (this.clickCount === 2) {
112
- this.doubleClick.emit(event);
113
- }
114
- this.clickCount = 0;
115
- }, 300);
116
- // Emit standard click event
117
- this.btnClick.emit(event);
118
- }
119
- addClickAnimation() {
120
- // Add ripple effect
121
- const ripple = this.renderer.createElement('span');
122
- this.renderer.addClass(ripple, 'ripple-effect');
123
- // Position the ripple at click position
124
- const rect = this.elementRef.nativeElement.getBoundingClientRect();
125
- const size = Math.max(rect.width, rect.height);
126
- // Set ripple style
127
- this.renderer.setStyle(ripple, 'width', `${size}px`);
128
- this.renderer.setStyle(ripple, 'height', `${size}px`);
129
- this.renderer.setStyle(ripple, 'left', `${0}px`);
130
- this.renderer.setStyle(ripple, 'top', `${0}px`);
131
- // Add ripple to button
132
- this.renderer.appendChild(this.elementRef.nativeElement, ripple);
133
- // Modern ES2022+ pattern: Use Promise-based delay
134
- const delay = (ms) => new Promise(resolve => setTimeout(resolve, ms));
135
- delay(600).then(() => {
136
- this.renderer.removeChild(this.elementRef.nativeElement, ripple);
137
- });
138
- }
139
- ngOnInit() {
140
- if (this.id) {
141
- this.getControlData();
142
- }
143
- // Set aria-label if not explicitly provided
144
- if (!this.ariaLabel && this.label) {
145
- this.ariaLabel = this.label;
146
- }
147
- }
148
- ngOnChanges(changes) {
149
- // Update aria-label when label changes
150
- if (changes['label'] && !this.ariaLabel) {
151
- this.ariaLabel = changes['label'].currentValue;
152
- }
153
- }
154
- ngOnDestroy() {
155
- this.destroy$.next();
156
- this.destroy$.complete();
157
- }
158
- async getControlData() {
159
- const cide_element_data = await this.elementService?.getElementData({ sype_key: this.id });
160
- if (cide_element_data) {
161
- this.label = cide_element_data?.sype_label;
162
- }
163
- }
164
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: CideEleButtonComponent, deps: [{ token: i1.CideElementsService }, { token: i2.Router }, { token: i0.Renderer2 }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
165
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.7", type: CideEleButtonComponent, isStandalone: true, selector: "button[cideEleButton], a[cideEleButton]", inputs: { label: "label", variant: "variant", size: "size", type: "type", shape: "shape", elevation: "elevation", disabled: "disabled", id: "id", loading: "loading", fullWidth: "fullWidth", leftIcon: "leftIcon", rightIcon: "rightIcon", customClass: "customClass", tooltip: "tooltip", ariaLabel: "ariaLabel", testId: "testId", routerLink: "routerLink", routerExtras: "routerExtras", preventDoubleClick: "preventDoubleClick", animated: "animated" }, outputs: { btnClick: "btnClick", doubleClick: "doubleClick" }, host: { listeners: { "click": "onClick($event)" }, properties: { "class.cide-button-disabled": "disabled || loading", "attr.disabled": "(disabled || loading) ? true : null", "class.primary": "variant === \"primary\"", "class.secondary": "variant === \"secondary\"", "class.outline": "variant === \"outline\"", "class.text": "variant === \"text\"", "class.link": "variant === \"link\"", "class.success": "variant === \"success\"", "class.danger": "variant === \"danger\"", "class.warning": "variant === \"warning\"", "class.info": "variant === \"info\"", "class.xs": "size === \"xs\"", "class.sm": "size === \"sm\"", "class.md": "size === \"md\"", "class.lg": "size === \"lg\"", "class.xl": "size === \"xl\"", "class.rounded": "shape === \"rounded\"", "class.pill": "shape === \"pill\"", "class.square": "shape === \"square\"", "class.elevation-none": "elevation === \"none\"", "class.elevation-low": "elevation === \"low\"", "class.elevation-medium": "elevation === \"medium\"", "class.elevation-high": "elevation === \"high\"", "attr.type": "type", "attr.aria-label": "ariaLabel", "attr.aria-disabled": "disabled || loading", "attr.data-testid": "testId", "attr.title": "tooltip", "class": "customClass" }, classAttribute: "cide-button tw-rounded-md tw-text-white tw-py-0.5 tw-select-none tw-justify-around tw-flex" }, usesOnChanges: true, ngImport: i0, template: "<!-- Button content container -->\r\n<div class=\"tw-flex tw-items-center tw-justify-center cide-ele-btn-content tw-w-full\">\r\n <!-- Left icon -->\r\n @if (leftIcon) {\r\n <span class=\"tw-icon-container tw-mr-2\">\r\n <i class=\"tw-text-base material-symbols-outlined\">{{leftIcon}}</i>\r\n </span>\r\n }\r\n \r\n <!-- Loading spinner -->\r\n @if (loading) {\r\n <cide-ele-spinner\r\n class=\"tw-inline-block tw-my-1 tw-mr-2\" \r\n size=\"xs\"\r\n [ngClass]=\"{'cide-pill-disabled': (disabled || loading)}\">\r\n </cide-ele-spinner>\r\n }\r\n \r\n <!-- Button label or content -->\r\n @if (label) {\r\n <span>{{ label }}</span>\r\n } @else {\r\n <span class=\"tw-flex tw-items-center tw-justify-center\">\r\n <ng-content></ng-content>\r\n </span>\r\n }\r\n \r\n <!-- Right icon -->\r\n @if (rightIcon) {\r\n <span class=\"tw-icon-container tw-ml-2\">\r\n <i class=\"tw-text-base material-symbols-outlined\">{{rightIcon}}</i>\r\n </span>\r\n }\r\n \r\n <!-- Spacer for spinner when loading to maintain button width -->\r\n @if (loading) {\r\n <span class=\"tw-w-6 tw-p-1 tw-mr-2\"></span>\r\n }\r\n</div>\r\n", styles: [":host{position:relative;background-color:var(--cide-theme-color-brand-primary, #3b82f6);cursor:pointer;font-family:inherit;font-weight:500;outline:none;overflow:hidden;transition:all .2s ease-in-out;border:none;text-align:center;vertical-align:middle;text-decoration:none;line-height:1.5;letter-spacing:.025em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-appearance:none;-moz-appearance:none;appearance:none}:host:focus-visible{outline:2px solid var(--cide-theme-color-brand-primary);outline-offset:2px;box-shadow:0 0 0 3px #3b82f64d}:host:hover:not(:disabled){background-color:var(--cide-theme-color-brand-primary-hover, #2563eb);transform:translateY(-1px)}:host:active:not(:disabled){transform:translateY(1px)}:host.cide-button-disabled{background-color:var(--cide-button-background-disabled, #9ca3af)!important;cursor:var(--cide-button-cursor-disabled, not-allowed)!important;opacity:.7;pointer-events:none;transform:none!important}:host.xs{font-size:.75rem;padding:.2rem .4rem}:host.sm{font-size:.875rem;padding:.25rem .5rem}:host.md{font-size:1rem;padding:.25rem .75rem}:host.lg{font-size:1.125rem;padding:.75rem 1rem}:host.xl{font-size:1.25rem;padding:1rem 1.5rem}:host.rounded{border-radius:.5rem}:host.pill{border-radius:9999px}:host.square{border-radius:0}:host.elevation-none{box-shadow:none}:host.elevation-low{box-shadow:0 1px 2px #0000000d}:host.elevation-medium{box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f}:host.elevation-high{box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d}.ripple-effect{position:absolute;border-radius:50%;background-color:#fff6;transform:scale(0);animation:ripple .6s linear;pointer-events:none}@keyframes ripple{to{transform:scale(4);opacity:0}}:host{color:#fff}:host.secondary{background-color:var(--cide-theme-secondary-color, #4b5563);color:#fff}:host.secondary:hover:not(:disabled){background-color:var(--cide-theme-secondary-color-hover, #374151)}:host.success{background-color:var(--cide-theme-success-color, #10b981);color:#fff}:host.success:hover:not(:disabled){background-color:var(--cide-theme-success-color-hover, #059669)}:host.danger{background-color:var(--cide-theme-danger-color, #ef4444);color:#fff}:host.danger:hover:not(:disabled){background-color:var(--cide-theme-danger-color-hover, #dc2626)}:host.warning{background-color:var(--cide-theme-warning-color, #f59e0b);color:#fff}:host.warning:hover:not(:disabled){background-color:var(--cide-theme-warning-color-hover, #d97706)}:host.info{background-color:var(--cide-theme-info-color, #3b82f6);color:#fff}:host.info:hover:not(:disabled){background-color:var(--cide-theme-info-color-hover, #2563eb)}:host.outline{background-color:transparent;color:var(--cide-theme-color-brand-primary, #3b82f6);border:1px solid var(--cide-theme-color-brand-primary, #3b82f6)}:host.outline:hover:not(:disabled){background-color:#3b82f60d}:host.outline.secondary{color:var(--cide-theme-secondary-color, #4b5563);border-color:var(--cide-theme-secondary-color, #4b5563)}:host.outline.success{color:var(--cide-theme-success-color, #10b981);border-color:var(--cide-theme-success-color, #10b981)}:host.outline.danger{color:var(--cide-theme-danger-color, #ef4444);border-color:var(--cide-theme-danger-color, #ef4444)}:host.outline.warning{color:var(--cide-theme-warning-color, #f59e0b);border-color:var(--cide-theme-warning-color, #f59e0b)}:host.outline.info{color:var(--cide-theme-info-color, #3b82f6);border-color:var(--cide-theme-info-color, #3b82f6)}:host.text{background-color:transparent;color:var(--cide-theme-color-brand-primary, #3b82f6);border:none;padding-left:.5rem;padding-right:.5rem}:host.text:hover:not(:disabled){background-color:#3b82f60d;text-decoration:underline}:host.text.secondary{color:var(--cide-theme-secondary-color, #4b5563)}:host.text.success{color:var(--cide-theme-success-color, #10b981)}:host.text.danger{color:var(--cide-theme-danger-color, #ef4444)}:host.text.warning{color:var(--cide-theme-warning-color, #f59e0b)}:host.text.info{color:var(--cide-theme-info-color, #3b82f6)}:host.link{background-color:transparent;color:var(--cide-theme-color-brand-primary, #3b82f6);border:none;text-decoration:underline;padding:0;font-weight:400}:host.link:hover:not(:disabled){color:var(--cide-theme-color-brand-primary-hover, #2563eb);text-decoration:underline}:host.link.secondary{color:var(--cide-theme-secondary-color, #4b5563)}:host.link.success{color:var(--cide-theme-success-color, #10b981)}:host.link.danger{color:var(--cide-theme-danger-color, #ef4444)}:host.link.warning{color:var(--cide-theme-warning-color, #f59e0b)}:host.link.info{color:var(--cide-theme-info-color, #3b82f6)}.tw-icon-container{display:inline-flex;align-items:center;justify-content:center}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: CideSpinnerComponent, selector: "cide-ele-spinner", inputs: ["size", "type"] }] }); }
166
- }
167
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: CideEleButtonComponent, decorators: [{
168
- type: Component,
169
- args: [{ selector: 'button[cideEleButton], a[cideEleButton]', standalone: true, imports: [CommonModule, CideSpinnerComponent], host: {
170
- 'class': 'cide-button tw-rounded-md tw-text-white tw-py-0.5 tw-select-none tw-justify-around tw-flex',
171
- '[class.cide-button-disabled]': 'disabled || loading',
172
- '[attr.disabled]': '(disabled || loading) ? true : null',
173
- '[class.primary]': 'variant === "primary"',
174
- '[class.secondary]': 'variant === "secondary"',
175
- '[class.outline]': 'variant === "outline"',
176
- '[class.text]': 'variant === "text"',
177
- '[class.link]': 'variant === "link"',
178
- '[class.success]': 'variant === "success"',
179
- '[class.danger]': 'variant === "danger"',
180
- '[class.warning]': 'variant === "warning"',
181
- '[class.info]': 'variant === "info"',
182
- '[class.xs]': 'size === "xs"',
183
- '[class.sm]': 'size === "sm"',
184
- '[class.md]': 'size === "md"',
185
- '[class.lg]': 'size === "lg"',
186
- '[class.xl]': 'size === "xl"',
187
- '[class.rounded]': 'shape === "rounded"',
188
- '[class.pill]': 'shape === "pill"',
189
- '[class.square]': 'shape === "square"',
190
- '[class.elevation-none]': 'elevation === "none"',
191
- '[class.elevation-low]': 'elevation === "low"',
192
- '[class.elevation-medium]': 'elevation === "medium"',
193
- '[class.elevation-high]': 'elevation === "high"',
194
- '[attr.type]': 'type',
195
- '[attr.aria-label]': 'ariaLabel',
196
- '[attr.aria-disabled]': 'disabled || loading',
197
- '[attr.data-testid]': 'testId',
198
- '[attr.title]': 'tooltip',
199
- '[class]': 'customClass'
200
- }, template: "<!-- Button content container -->\r\n<div class=\"tw-flex tw-items-center tw-justify-center cide-ele-btn-content tw-w-full\">\r\n <!-- Left icon -->\r\n @if (leftIcon) {\r\n <span class=\"tw-icon-container tw-mr-2\">\r\n <i class=\"tw-text-base material-symbols-outlined\">{{leftIcon}}</i>\r\n </span>\r\n }\r\n \r\n <!-- Loading spinner -->\r\n @if (loading) {\r\n <cide-ele-spinner\r\n class=\"tw-inline-block tw-my-1 tw-mr-2\" \r\n size=\"xs\"\r\n [ngClass]=\"{'cide-pill-disabled': (disabled || loading)}\">\r\n </cide-ele-spinner>\r\n }\r\n \r\n <!-- Button label or content -->\r\n @if (label) {\r\n <span>{{ label }}</span>\r\n } @else {\r\n <span class=\"tw-flex tw-items-center tw-justify-center\">\r\n <ng-content></ng-content>\r\n </span>\r\n }\r\n \r\n <!-- Right icon -->\r\n @if (rightIcon) {\r\n <span class=\"tw-icon-container tw-ml-2\">\r\n <i class=\"tw-text-base material-symbols-outlined\">{{rightIcon}}</i>\r\n </span>\r\n }\r\n \r\n <!-- Spacer for spinner when loading to maintain button width -->\r\n @if (loading) {\r\n <span class=\"tw-w-6 tw-p-1 tw-mr-2\"></span>\r\n }\r\n</div>\r\n", styles: [":host{position:relative;background-color:var(--cide-theme-color-brand-primary, #3b82f6);cursor:pointer;font-family:inherit;font-weight:500;outline:none;overflow:hidden;transition:all .2s ease-in-out;border:none;text-align:center;vertical-align:middle;text-decoration:none;line-height:1.5;letter-spacing:.025em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-appearance:none;-moz-appearance:none;appearance:none}:host:focus-visible{outline:2px solid var(--cide-theme-color-brand-primary);outline-offset:2px;box-shadow:0 0 0 3px #3b82f64d}:host:hover:not(:disabled){background-color:var(--cide-theme-color-brand-primary-hover, #2563eb);transform:translateY(-1px)}:host:active:not(:disabled){transform:translateY(1px)}:host.cide-button-disabled{background-color:var(--cide-button-background-disabled, #9ca3af)!important;cursor:var(--cide-button-cursor-disabled, not-allowed)!important;opacity:.7;pointer-events:none;transform:none!important}:host.xs{font-size:.75rem;padding:.2rem .4rem}:host.sm{font-size:.875rem;padding:.25rem .5rem}:host.md{font-size:1rem;padding:.25rem .75rem}:host.lg{font-size:1.125rem;padding:.75rem 1rem}:host.xl{font-size:1.25rem;padding:1rem 1.5rem}:host.rounded{border-radius:.5rem}:host.pill{border-radius:9999px}:host.square{border-radius:0}:host.elevation-none{box-shadow:none}:host.elevation-low{box-shadow:0 1px 2px #0000000d}:host.elevation-medium{box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f}:host.elevation-high{box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d}.ripple-effect{position:absolute;border-radius:50%;background-color:#fff6;transform:scale(0);animation:ripple .6s linear;pointer-events:none}@keyframes ripple{to{transform:scale(4);opacity:0}}:host{color:#fff}:host.secondary{background-color:var(--cide-theme-secondary-color, #4b5563);color:#fff}:host.secondary:hover:not(:disabled){background-color:var(--cide-theme-secondary-color-hover, #374151)}:host.success{background-color:var(--cide-theme-success-color, #10b981);color:#fff}:host.success:hover:not(:disabled){background-color:var(--cide-theme-success-color-hover, #059669)}:host.danger{background-color:var(--cide-theme-danger-color, #ef4444);color:#fff}:host.danger:hover:not(:disabled){background-color:var(--cide-theme-danger-color-hover, #dc2626)}:host.warning{background-color:var(--cide-theme-warning-color, #f59e0b);color:#fff}:host.warning:hover:not(:disabled){background-color:var(--cide-theme-warning-color-hover, #d97706)}:host.info{background-color:var(--cide-theme-info-color, #3b82f6);color:#fff}:host.info:hover:not(:disabled){background-color:var(--cide-theme-info-color-hover, #2563eb)}:host.outline{background-color:transparent;color:var(--cide-theme-color-brand-primary, #3b82f6);border:1px solid var(--cide-theme-color-brand-primary, #3b82f6)}:host.outline:hover:not(:disabled){background-color:#3b82f60d}:host.outline.secondary{color:var(--cide-theme-secondary-color, #4b5563);border-color:var(--cide-theme-secondary-color, #4b5563)}:host.outline.success{color:var(--cide-theme-success-color, #10b981);border-color:var(--cide-theme-success-color, #10b981)}:host.outline.danger{color:var(--cide-theme-danger-color, #ef4444);border-color:var(--cide-theme-danger-color, #ef4444)}:host.outline.warning{color:var(--cide-theme-warning-color, #f59e0b);border-color:var(--cide-theme-warning-color, #f59e0b)}:host.outline.info{color:var(--cide-theme-info-color, #3b82f6);border-color:var(--cide-theme-info-color, #3b82f6)}:host.text{background-color:transparent;color:var(--cide-theme-color-brand-primary, #3b82f6);border:none;padding-left:.5rem;padding-right:.5rem}:host.text:hover:not(:disabled){background-color:#3b82f60d;text-decoration:underline}:host.text.secondary{color:var(--cide-theme-secondary-color, #4b5563)}:host.text.success{color:var(--cide-theme-success-color, #10b981)}:host.text.danger{color:var(--cide-theme-danger-color, #ef4444)}:host.text.warning{color:var(--cide-theme-warning-color, #f59e0b)}:host.text.info{color:var(--cide-theme-info-color, #3b82f6)}:host.link{background-color:transparent;color:var(--cide-theme-color-brand-primary, #3b82f6);border:none;text-decoration:underline;padding:0;font-weight:400}:host.link:hover:not(:disabled){color:var(--cide-theme-color-brand-primary-hover, #2563eb);text-decoration:underline}:host.link.secondary{color:var(--cide-theme-secondary-color, #4b5563)}:host.link.success{color:var(--cide-theme-success-color, #10b981)}:host.link.danger{color:var(--cide-theme-danger-color, #ef4444)}:host.link.warning{color:var(--cide-theme-warning-color, #f59e0b)}:host.link.info{color:var(--cide-theme-info-color, #3b82f6)}.tw-icon-container{display:inline-flex;align-items:center;justify-content:center}\n"] }]
201
- }], ctorParameters: () => [{ type: i1.CideElementsService }, { type: i2.Router }, { type: i0.Renderer2 }, { type: i0.ElementRef }], propDecorators: { label: [{
202
- type: Input
203
- }], variant: [{
204
- type: Input
205
- }], size: [{
206
- type: Input
207
- }], type: [{
208
- type: Input
209
- }], shape: [{
210
- type: Input
211
- }], elevation: [{
212
- type: Input
213
- }], disabled: [{
214
- type: Input
215
- }], id: [{
216
- type: Input
217
- }], loading: [{
218
- type: Input
219
- }], fullWidth: [{
220
- type: Input
221
- }], leftIcon: [{
222
- type: Input
223
- }], rightIcon: [{
224
- type: Input
225
- }], customClass: [{
226
- type: Input
227
- }], tooltip: [{
228
- type: Input
229
- }], ariaLabel: [{
230
- type: Input
231
- }], testId: [{
232
- type: Input
233
- }], routerLink: [{
234
- type: Input
235
- }], routerExtras: [{
236
- type: Input
237
- }], preventDoubleClick: [{
238
- type: Input
239
- }], animated: [{
240
- type: Input
241
- }], btnClick: [{
242
- type: Output
243
- }], doubleClick: [{
244
- type: Output
245
- }], onClick: [{
246
- type: HostListener,
247
- args: ['click', ['$event']]
248
- }] } });
249
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2lkZS1lbGUtYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nsb3VkLWlkZS1lbGVtZW50L3NyYy9saWIvZWxlbWVudHMvYnV0dG9uL2NpZGUtZWxlLWJ1dHRvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbG91ZC1pZGUtZWxlbWVudC9zcmMvbGliL2VsZW1lbnRzL2J1dHRvbi9jaWRlLWVsZS1idXR0b24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxZQUFZLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBZ0MsTUFBTSxFQUE0QixNQUFNLGVBQWUsQ0FBQztBQUN6SixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFL0MsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFcEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7OztBQVF4RDs7Ozs7R0FLRztBQTBDSCxNQUFNLE9BQU8sc0JBQXNCO0lBS2pDLFlBQ1UsY0FBbUMsRUFDbkMsTUFBYyxFQUNkLFFBQW1CLEVBQ25CLFVBQXNCO1FBSHRCLG1CQUFjLEdBQWQsY0FBYyxDQUFxQjtRQUNuQyxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUNuQixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBUnhCLGFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBQy9CLGVBQVUsR0FBRyxDQUFDLENBQUM7UUFDZixvQkFBZSxHQUFHLElBQUksT0FBTyxFQUFjLENBQUM7UUFxQnBELFNBQVM7UUFDVDs7O1dBR0c7UUFDTSxVQUFLLEdBQVcsRUFBRSxDQUFDO1FBRTVCLHdDQUF3QztRQUMvQixZ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ZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSG9zdExpc3RlbmVyLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0LCBSZW5kZXJlcjIsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgQ2lkZUVsZW1lbnRzU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3B1YmxpYy1hcGknO1xyXG5pbXBvcnQgeyBDaWRlU3Bpbm5lckNvbXBvbmVudCB9IGZyb20gJy4uL3NwaW5uZXIvc3Bpbm5lci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBOYXZpZ2F0aW9uRXh0cmFzLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBTdWJqZWN0LCBkZWJvdW5jZVRpbWUsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xyXG5cclxuZXhwb3J0IHR5cGUgQnV0dG9uVmFyaWFudCA9ICdwcmltYXJ5JyB8ICdzZWNvbmRhcnknIHwgJ291dGxpbmUnIHwgJ3RleHQnIHwgJ2xpbmsnIHwgJ3N1Y2Nlc3MnIHwgJ2RhbmdlcicgfCAnd2FybmluZycgfCAnaW5mbycgfCAnZ2hvc3QnO1xyXG5leHBvcnQgdHlwZSBCdXR0b25TaXplID0gJ3hzJyB8ICdzbScgfCAnbWQnIHwgJ2xnJyB8ICd4bCc7XHJcbmV4cG9ydCB0eXBlIEJ1dHRvblR5cGUgPSAnYnV0dG9uJyB8ICdzdWJtaXQnIHwgJ3Jlc2V0JztcclxuZXhwb3J0IHR5cGUgQnV0dG9uU2hhcGUgPSAnZGVmYXVsdCcgfCAncm91bmRlZCcgfCAncGlsbCcgfCAnc3F1YXJlJztcclxuZXhwb3J0IHR5cGUgQnV0dG9uRWxldmF0aW9uID0gJ25vbmUnIHwgJ2xvdycgfCAnbWVkaXVtJyB8ICdoaWdoJztcclxuXHJcbi8qKlxyXG4gKiBBZHZhbmNlZCBBbmd1bGFyIGJ1dHRvbiBjb21wb25lbnQgdGhhdCBwcm92aWRlcyBhIGNvbXByZWhlbnNpdmUgYnV0dG9uIGltcGxlbWVudGF0aW9uXHJcbiAqIHdpdGggbG9hZGluZyBzdGF0ZSwgc3R5bGluZyB2YXJpYW50cywgYW5pbWF0aW9ucywgdG9vbHRpcHMsIGFuZCBvdGhlciBmZWF0dXJlcy5cclxuICogXHJcbiAqIFRoaXMgY29tcG9uZW50IHVzZXMgcHJvcGVyIEFuZ3VsYXIgdGVtcGxhdGluZyB0byBhdm9pZCBoeWRyYXRpb24gaXNzdWVzIChORzA1MDApLlxyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtc2VsZWN0b3JcclxuICBzZWxlY3RvcjogJ2J1dHRvbltjaWRlRWxlQnV0dG9uXSwgYVtjaWRlRWxlQnV0dG9uXScsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBDaWRlU3Bpbm5lckNvbXBvbmVudF0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2NpZGUtZWxlLWJ1dHRvbi5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vY2lkZS1lbGUtYnV0dG9uLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgaG9zdDoge1xyXG4gICAgJ2NsYXNzJzogJ2NpZGUtYnV0dG9uIHR3LXJvdW5kZWQtbWQgdHctdGV4dC13aGl0ZSB0dy1weS0wLjUgdHctc2VsZWN0LW5vbmUgdHctanVzdGlmeS1hcm91bmQgdHctZmxleCcsXHJcbiAgICAnW2NsYXNzLmNpZGUtYnV0dG9uLWRpc2FibGVkXSc6ICdkaXNhYmxlZCB8fCBsb2FkaW5nJyxcclxuICAgICdbYXR0ci5kaXNhYmxlZF0nOiAnKGRpc2FibGVkIHx8IGxvYWRpbmcpID8gdHJ1ZSA6IG51bGwnLFxyXG4gICAgJ1tjbGFzcy5wcmltYXJ5XSc6ICd2YXJpYW50ID09PSBcInByaW1hcnlcIicsXHJcbiAgICAnW2NsYXNzLnNlY29uZGFyeV0nOiAndmFyaWFudCA9PT0gXCJzZWNvbmRhcnlcIicsXHJcbiAgICAnW2NsYXNzLm91dGxpbmVdJzogJ3ZhcmlhbnQgPT09IFwib3V0bGluZVwiJyxcclxuICAgICdbY2xhc3MudGV4dF0nOiAndmFyaWFudCA9PT0gXCJ0ZXh0XCInLFxyXG4gICAgJ1tjbGFzcy5saW5rXSc6ICd2YXJpYW50ID09PSBcImxpbmtcIicsXHJcbiAgICAnW2NsYXNzLnN1Y2Nlc3NdJzogJ3ZhcmlhbnQgPT09IFwic3VjY2Vzc1wiJyxcclxuICAgICdbY2xhc3MuZGFuZ2VyXSc6ICd2YXJpYW50ID09PSBcImRhbmdlclwiJyxcclxuICAgICdbY2xhc3Mud2FybmluZ10nOiAndmFyaWFudCA9PT0gXCJ3YXJuaW5nXCInLFxyXG4gICAgJ1tjbGFzcy5pbmZvXSc6ICd2YXJpYW50ID09PSBcImluZm9cIicsXHJcbiAgICAnW2NsYXNzLnhzXSc6ICdzaXplID09PSBcInhzXCInLFxyXG4gICAgJ1tjbGFzcy5zbV0nOiAnc2l6ZSA9PT0gXCJzbVwiJyxcclxuICAgICdbY2xhc3MubWRdJzogJ3NpemUgPT09IFwibWRcIicsXHJcbiAgICAnW2NsYXNzLmxnXSc6ICdzaXplID09PSBcImxnXCInLFxyXG4gICAgJ1tjbGFzcy54bF0nOiAnc2l6ZSA9PT0gXCJ4bFwiJyxcclxuICAgICdbY2xhc3Mucm91bmRlZF0nOiAnc2hhcGUgPT09IFwicm91bmRlZFwiJyxcclxuICAgICdbY2xhc3MucGlsbF0nOiAnc2hhcGUgPT09IFwicGlsbFwiJyxcclxuICAgICdbY2xhc3Muc3F1YXJlXSc6ICdzaGFwZSA9PT0gXCJzcXVhcmVcIicsXHJcbiAgICAnW2NsYXNzLmVsZXZhdGlvbi1ub25lXSc6ICdlbGV2YXRpb24gPT09IFwibm9uZVwiJyxcclxuICAgICdbY2xhc3MuZWxldmF0aW9uLWxvd10nOiAnZWxldmF0aW9uID09PSBcImxvd1wiJyxcclxuICAgICdbY2xhc3MuZWxldmF0aW9uLW1lZGl1bV0nOiAnZWxldmF0aW9uID09PSBcIm1lZGl1bVwiJyxcclxuICAgICdbY2xhc3MuZWxldmF0aW9uLWhpZ2hdJzogJ2VsZXZhdGlvbiA9PT0gXCJoaWdoXCInLFxyXG4gICAgJ1thdHRyLnR5cGVdJzogJ3R5cGUnLFxyXG4gICAgJ1thdHRyLmFyaWEtbGFiZWxdJzogJ2FyaWFMYWJlbCcsXHJcbiAgICAnW2F0dHIuYXJpYS1kaXNhYmxlZF0nOiAnZGlzYWJsZWQgfHwgbG9hZGluZycsXHJcbiAgICAnW2F0dHIuZGF0YS10ZXN0aWRdJzogJ3Rlc3RJZCcsXHJcbiAgICAnW2F0dHIudGl0bGVdJzogJ3Rvb2x0aXAnLFxyXG4gICAgJ1tjbGFzc10nOiAnY3VzdG9tQ2xhc3MnXHJcbiAgfVxyXG59KVxyXG5cclxuZXhwb3J0IGNsYXNzIENpZGVFbGVCdXR0b25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcclxuICBwcml2YXRlIGRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuICBwcml2YXRlIGNsaWNrQ291bnQgPSAwO1xyXG4gIHByaXZhdGUgY2xpY2tEZWJvdW5jZXIkID0gbmV3IFN1YmplY3Q8TW91c2VFdmVudD4oKTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGVsZW1lbnRTZXJ2aWNlOiBDaWRlRWxlbWVudHNTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcclxuICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcclxuICAgIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZlxyXG4gICkge1xyXG4gICAgLy8gU2V0dXAgZGVib3VuY2VkIGNsaWNrIGhhbmRsZXIgdG8gcHJldmVudCBkb3VibGUtY2xpY2tzXHJcbiAgICB0aGlzLmNsaWNrRGVib3VuY2VyJFxyXG4gICAgICAucGlwZShcclxuICAgICAgICBkZWJvdW5jZVRpbWUoMzAwKSxcclxuICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95JClcclxuICAgICAgKVxyXG4gICAgICAuc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OiAoZXZlbnQpID0+IHtcclxuICAgICAgICAgIHRoaXMuaGFuZGxlQ2xpY2soZXZlbnQpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgfVxyXG4gIFxyXG4gIC8vIElOUFVUU1xyXG4gIC8qKiBcclxuICAgKiBAZGVzY3JpcHRpb24gTGFiZWwgb2YgYnV0dG9uIGxpa2UgU3VibWl0LCBVcGRhdGUsIEFkZCwgZXRjLiAgXHJcbiAgICogTm90ZTogaXQgaXMgb25seSB1c2VkIGluIGNhc2UgeW91IGRpZCBub3Qgc2V0IGxhYmVsIGJldHdlZW4gdGFncyAodmlhIG5nLWNvbnRlbnQpXHJcbiAgICovXHJcbiAgQElucHV0KCkgbGFiZWw6IHN0cmluZyA9IFwiXCI7XHJcbiAgXHJcbiAgLyoqIEBkZXNjcmlwdGlvbiBCdXR0b24gc3R5bGUgdmFyaWFudCAqL1xyXG4gIEBJbnB1dCgpIHZhcmlhbnQ6IEJ1dHRvblZhcmlhbnQgPSAncHJpbWFyeSc7XHJcbiAgXHJcbiAgLyoqIEBkZXNjcmlwdGlvbiBCdXR0b24gc2l6ZSAqL1xyXG4gIEBJbnB1dCgpIHNpemU6IEJ1dHRvblNpemUgPSAnbWQnO1xyXG4gIFxyXG4gIC8qKiBAZGVzY3JpcHRpb24gQnV0dG9uIEhUTUwgdHlwZSBhdHRyaWJ1dGUgKi9cclxuICBASW5wdXQoKSB0eXBlOiBCdXR0b25UeXBlID0gJ2J1dHRvbic7XHJcbiAgXHJcbiAgLyoqIEBkZXNjcmlwdGlvbiBCdXR0b24gc2hhcGUgKi9cclxuICBASW5wdXQoKSBzaGFwZTogQnV0dG9uU2hhcGUgPSAnZGVmYXVsdCc7XHJcbiAgXHJcbiAgLyoqIEBkZXNjcmlwdGlvbiBCdXR0b24gc2hhZG93IGVsZXZhdGlvbiAqL1xyXG4gIEBJbnB1dCgpIGVsZXZhdGlvbjogQnV0dG9uRWxldmF0aW9uID0gJ21lZGl1bSc7XHJcbiAgXHJcbiAgLyoqIEBkZXNjcmlwdGlvbiBCdXR0b24gZGlzYWJsZWQgc3RhdGUgKi9cclxuICBASW5wdXQoKSBkaXNhYmxlZDogYm9vbGVhbiB8IG51bGwgPSBmYWxzZTtcclxuICBcclxuICAvKiogQGRlc2NyaXB0aW9uIFVuaXF1ZSBJRCBvZiBjb250cm9sLCB1c2VkIHRvIGRpZmZlcmVudGlhdGUgZWxlbWVudHMgKi9cclxuICBASW5wdXQoKSBpZDogc3RyaW5nID0gJyc7XHJcbiAgXHJcbiAgLyoqIEBkZXNjcmlwdGlvbiBFbmFibGVzIGxvYWRpbmcgc3RhdGUgd2l0aCBzcGlubmVyICovXHJcbiAgQElucHV0KCkgbG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIFxyXG4gIC8qKiBAZGVzY3JpcHRpb24gTWFrZXMgYnV0dG9uIHRha2UgZnVsbCB3aWR0aCBvZiBjb250YWluZXIgKi9cclxuICBASW5wdXQoKSBmdWxsV2lkdGg6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBcclxuICAvKiogQGRlc2NyaXB0aW9uIEljb24gdG8gZGlzcGxheSBvbiB0aGUgbGVmdCBzaWRlIG9mIHRoZSBidXR0b24gKi9cclxuICBASW5wdXQoKSBsZWZ0SWNvbjogc3RyaW5nID0gJyc7XHJcbiAgXHJcbiAgLyoqIEBkZXNjcmlwdGlvbiBJY29uIHRvIGRpc3BsYXkgb24gdGhlIHJpZ2h0IHNpZGUgb2YgdGhlIGJ1dHRvbiAqL1xyXG4gIEBJbnB1dCgpIHJpZ2h0SWNvbjogc3RyaW5nID0gJyc7XHJcbiAgXHJcbiAgLyoqIEBkZXNjcmlwdGlvbiBBZGRpdGlvbmFsIENTUyBjbGFzc2VzIHRvIGFwcGx5ICovXHJcbiAgQElucHV0KCkgY3VzdG9tQ2xhc3M6IHN0cmluZyA9ICcnO1xyXG4gIFxyXG4gIC8qKiBAZGVzY3JpcHRpb24gVG9vbHRpcCB0ZXh0IHRvIGRpc3BsYXkgb24gaG92ZXIgKi9cclxuICBASW5wdXQoKSB0b29sdGlwOiBzdHJpbmcgPSAnJztcclxuICBcclxuICAvKiogQGRlc2NyaXB0aW9uIEFyaWEgbGFiZWwgZm9yIGFjY2Vzc2liaWxpdHkgKi9cclxuICBASW5wdXQoKSBhcmlhTGFiZWw6IHN0cmluZyA9ICcnO1xyXG4gIFxyXG4gIC8qKiBAZGVzY3JpcHRpb24gVGVzdCBJRCBmb3IgYXV0b21hdGVkIHRlc3RpbmcgKi9cclxuICBASW5wdXQoKSB0ZXN0SWQ6IHN0cmluZyA9ICcnO1xyXG4gIFxyXG4gIC8qKiBAZGVzY3JpcHRpb24gUm91dGUgdG8gbmF2aWdhdGUgdG8gd2hlbiBjbGlja2VkIChmb3IgbGluayBidXR0b25zKSAqL1xyXG4gIEBJbnB1dCgpIHJvdXRlckxpbms6IHN0cmluZyB8IHVua25vd25bXSA9ICcnO1xyXG4gIFxyXG4gIC8qKiBAZGVzY3JpcHRpb24gUm91dGVyIG5hdmlnYXRpb24gZXh0cmFzICovXHJcbiAgQElucHV0KCkgcm91dGVyRXh0cmFzOiBOYXZpZ2F0aW9uRXh0cmFzID0ge307XHJcbiAgXHJcbiAgLyoqIEBkZXNjcmlwdGlvbiBQcmV2ZW50IG11bHRpcGxlIHJhcGlkIGNsaWNrcyAoZGVib3VuY2UpICovXHJcbiAgQElucHV0KCkgcHJldmVudERvdWJsZUNsaWNrOiBib29sZWFuID0gdHJ1ZTtcclxuICBcclxuICAvKiogQGRlc2NyaXB0aW9uIEFuaW1hdGlvbiBvbiBjbGljayAqL1xyXG4gIEBJbnB1dCgpIGFuaW1hdGVkOiBib29sZWFuID0gdHJ1ZTtcclxuICBcclxuICAvLyBPVVRQVVRTXHJcbiAgLyoqXHJcbiAgICogQGRlc2NyaXB0aW9uIENsaWNrIGV2ZW50IG9mIGJ1dHRvblxyXG4gICAqL1xyXG4gIEBPdXRwdXQoKSBidG5DbGljazogRXZlbnRFbWl0dGVyPE1vdXNlRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIFxyXG4gIC8qKlxyXG4gICAqIEBkZXNjcmlwdGlvbiBEb3VibGUgY2xpY2sgZXZlbnRcclxuICAgKi9cclxuICBAT3V0cHV0KCkgZG91YmxlQ2xpY2s6IEV2ZW50RW1pdHRlcjxNb3VzZUV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgQEhvc3RMaXN0ZW5lcignY2xpY2snLCBbJyRldmVudCddKVxyXG4gIG9uQ2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmRpc2FibGVkIHx8IHRoaXMubG9hZGluZykge1xyXG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICBpZiAodGhpcy5hbmltYXRlZCkge1xyXG4gICAgICB0aGlzLmFkZENsaWNrQW5pbWF0aW9uKCk7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIGlmICh0aGlzLnByZXZlbnREb3VibGVDbGljaykge1xyXG4gICAgICB0aGlzLmNsaWNrRGVib3VuY2VyJC5uZXh0KGV2ZW50KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuaGFuZGxlQ2xpY2soZXZlbnQpO1xyXG4gICAgfVxyXG4gIH1cclxuICBcclxuICBwcml2YXRlIGhhbmRsZUNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XHJcbiAgICAvLyBIYW5kbGUgbmF2aWdhdGlvbiBmb3Igcm91dGVyTGlua1xyXG4gICAgaWYgKHRoaXMucm91dGVyTGluayAmJiB0aGlzLnJvdXRlckxpbmsubGVuZ3RoKSB7XHJcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFxyXG4gICAgICAgIEFycmF5LmlzQXJyYXkodGhpcy5yb3V0ZXJMaW5rKSA/IHRoaXMucm91dGVyTGluayA6IFt0aGlzLnJvdXRlckxpbmtdLFxyXG4gICAgICAgIHRoaXMucm91dGVyRXh0cmFzXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIC8vIEhhbmRsZSBkb3VibGUtY2xpY2sgZGV0ZWN0aW9uXHJcbiAgICB0aGlzLmNsaWNrQ291bnQrKztcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICBpZiAodGhpcy5jbGlja0NvdW50ID09PSAyKSB7XHJcbiAgICAgICAgdGhpcy5kb3VibGVDbGljay5lbWl0KGV2ZW50KTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmNsaWNrQ291bnQgPSAwO1xyXG4gICAgfSwgMzAwKTtcclxuICAgIFxyXG4gICAgLy8gRW1pdCBzdGFuZGFyZCBjbGljayBldmVudFxyXG4gICAgdGhpcy5idG5DbGljay5lbWl0KGV2ZW50KTtcclxuICB9XHJcbiAgXHJcbiAgcHJpdmF0ZSBhZGRDbGlja0FuaW1hdGlvbigpOiB2b2lkIHtcclxuICAgIC8vIEFkZCByaXBwbGUgZWZmZWN0XHJcbiAgICBjb25zdCByaXBwbGUgPSB0aGlzLnJlbmRlcmVyLmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKTtcclxuICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3MocmlwcGxlLCAncmlwcGxlLWVmZmVjdCcpO1xyXG4gICAgXHJcbiAgICAvLyBQb3NpdGlvbiB0aGUgcmlwcGxlIGF0IGNsaWNrIHBvc2l0aW9uXHJcbiAgICBjb25zdCByZWN0ID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcbiAgICBjb25zdCBzaXplID0gTWF0aC5tYXgocmVjdC53aWR0aCwgcmVjdC5oZWlnaHQpO1xyXG4gICAgXHJcbiAgICAvLyBTZXQgcmlwcGxlIHN0eWxlXHJcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHJpcHBsZSwgJ3dpZHRoJywgYCR7c2l6ZX1weGApO1xyXG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShyaXBwbGUsICdoZWlnaHQnLCBgJHtzaXplfXB4YCk7XHJcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHJpcHBsZSwgJ2xlZnQnLCBgJHswfXB4YCk7XHJcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHJpcHBsZSwgJ3RvcCcsIGAkezB9cHhgKTtcclxuICAgIFxyXG4gICAgLy8gQWRkIHJpcHBsZSB0byBidXR0b25cclxuICAgIHRoaXMucmVuZGVyZXIuYXBwZW5kQ2hpbGQodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIHJpcHBsZSk7XHJcbiAgICBcclxuICAgIC8vIE1vZGVybiBFUzIwMjIrIHBhdHRlcm46IFVzZSBQcm9taXNlLWJhc2VkIGRlbGF5XHJcbiAgICBjb25zdCBkZWxheSA9IChtczogbnVtYmVyKSA9PiBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHNldFRpbWVvdXQocmVzb2x2ZSwgbXMpKTtcclxuICAgIGRlbGF5KDYwMCkudGhlbigoKSA9PiB7XHJcbiAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2hpbGQodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIHJpcHBsZSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuaWQpIHtcclxuICAgICAgdGhpcy5nZXRDb250cm9sRGF0YSgpO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICAvLyBTZXQgYXJpYS1sYWJlbCBpZiBub3QgZXhwbGljaXRseSBwcm92aWRlZFxyXG4gICAgaWYgKCF0aGlzLmFyaWFMYWJlbCAmJiB0aGlzLmxhYmVsKSB7XHJcbiAgICAgIHRoaXMuYXJpYUxhYmVsID0gdGhpcy5sYWJlbDtcclxuICAgIH1cclxuICB9XHJcbiAgXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgLy8gVXBkYXRlIGFyaWEtbGFiZWwgd2hlbiBsYWJlbCBjaGFuZ2VzXHJcbiAgICBpZiAoY2hhbmdlc1snbGFiZWwnXSAmJiAhdGhpcy5hcmlhTGFiZWwpIHtcclxuICAgICAgdGhpcy5hcmlhTGFiZWwgPSBjaGFuZ2VzWydsYWJlbCddLmN1cnJlbnRWYWx1ZTtcclxuICAgIH1cclxuICB9XHJcbiAgXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLmRlc3Ryb3kkLm5leHQoKTtcclxuICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcclxuICB9XHJcblxyXG4gIGFzeW5jIGdldENvbnRyb2xEYXRhKCkge1xyXG4gICAgY29uc3QgY2lkZV9lbGVtZW50X2RhdGEgPSBhd2FpdCB0aGlzLmVsZW1lbnRTZXJ2aWNlPy5nZXRFbGVtZW50RGF0YSh7IHN5cGVfa2V5OiB0aGlzLmlkIH0pO1xyXG4gICAgaWYgKGNpZGVfZWxlbWVudF9kYXRhKSB7XHJcbiAgICAgIHRoaXMubGFiZWwgPSBjaWRlX2VsZW1lbnRfZGF0YT8uc3lwZV9sYWJlbCBhcyBzdHJpbmc7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIjwhLS0gQnV0dG9uIGNvbnRlbnQgY29udGFpbmVyIC0tPlxyXG48ZGl2IGNsYXNzPVwidHctZmxleCB0dy1pdGVtcy1jZW50ZXIgdHctanVzdGlmeS1jZW50ZXIgY2lkZS1lbGUtYnRuLWNvbnRlbnQgdHctdy1mdWxsXCI+XHJcbiAgPCEtLSBMZWZ0IGljb24gLS0+XHJcbiAgQGlmIChsZWZ0SWNvbikge1xyXG4gICAgPHNwYW4gY2xhc3M9XCJ0dy1pY29uLWNvbnRhaW5lciB0dy1tci0yXCI+XHJcbiAgICAgIDxpIGNsYXNzPVwidHctdGV4dC1iYXNlIG1hdGVyaWFsLXN5bWJvbHMtb3V0bGluZWRcIj57e2xlZnRJY29ufX08L2k+XHJcbiAgICA8L3NwYW4+XHJcbiAgfVxyXG4gIFxyXG4gIDwhLS0gTG9hZGluZyBzcGlubmVyIC0tPlxyXG4gIEBpZiAobG9hZGluZykge1xyXG4gICAgPGNpZGUtZWxlLXNwaW5uZXJcclxuICAgICAgY2xhc3M9XCJ0dy1pbmxpbmUtYmxvY2sgdHctbXktMSB0dy1tci0yXCIgXHJcbiAgICAgIHNpemU9XCJ4c1wiXHJcbiAgICAgIFtuZ0NsYXNzXT1cInsnY2lkZS1waWxsLWRpc2FibGVkJzogKGRpc2FibGVkIHx8IGxvYWRpbmcpfVwiPlxyXG4gICAgPC9jaWRlLWVsZS1zcGlubmVyPlxyXG4gIH1cclxuICBcclxuICA8IS0tIEJ1dHRvbiBsYWJlbCBvciBjb250ZW50IC0tPlxyXG4gIEBpZiAobGFiZWwpIHtcclxuICAgIDxzcGFuPnt7IGxhYmVsIH19PC9zcGFuPlxyXG4gIH0gQGVsc2Uge1xyXG4gICAgPHNwYW4gY2xhc3M9XCJ0dy1mbGV4IHR3LWl0ZW1zLWNlbnRlciB0dy1qdXN0aWZ5LWNlbnRlclwiPlxyXG4gICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XHJcbiAgICA8L3NwYW4+XHJcbiAgfVxyXG4gIFxyXG4gIDwhLS0gUmlnaHQgaWNvbiAtLT5cclxuICBAaWYgKHJpZ2h0SWNvbikge1xyXG4gICAgPHNwYW4gY2xhc3M9XCJ0dy1pY29uLWNvbnRhaW5lciB0dy1tbC0yXCI+XHJcbiAgICAgIDxpIGNsYXNzPVwidHctdGV4dC1iYXNlIG1hdGVyaWFsLXN5bWJvbHMtb3V0bGluZWRcIj57e3JpZ2h0SWNvbn19PC9pPlxyXG4gICAgPC9zcGFuPlxyXG4gIH1cclxuICBcclxuICA8IS0tIFNwYWNlciBmb3Igc3Bpbm5lciB3aGVuIGxvYWRpbmcgdG8gbWFpbnRhaW4gYnV0dG9uIHdpZHRoIC0tPlxyXG4gIEBpZiAobG9hZGluZykge1xyXG4gICAgPHNwYW4gY2xhc3M9XCJ0dy13LTYgdHctcC0xIHR3LW1yLTJcIj48L3NwYW4+XHJcbiAgfVxyXG48L2Rpdj5cclxuIl19
@@ -1,83 +0,0 @@
1
- import { CommonModule } from '@angular/common';
2
- import { Component, EventEmitter, Input, Output, forwardRef } from '@angular/core';
3
- import { NG_VALUE_ACCESSOR, FormsModule } from '@angular/forms';
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "@angular/common";
6
- export class CideEleFileInputComponent {
7
- constructor() {
8
- this.label = 'Choose file';
9
- this.accept = '';
10
- this.multiple = false;
11
- this.disabled = false;
12
- this.helperText = '';
13
- this.errorText = '';
14
- this.id = Math.random().toString(36).substring(2, 10);
15
- this.fileChange = new EventEmitter();
16
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
17
- this.files = null;
18
- this.fileNames = [];
19
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
20
- this.onChange = (files) => { };
21
- this.onTouched = () => { };
22
- }
23
- writeValue(files) {
24
- this.files = files;
25
- this.fileNames = files ? Array.from(files).map(f => f.name) : [];
26
- }
27
- registerOnChange(fn) {
28
- this.onChange = fn;
29
- }
30
- registerOnTouched(fn) {
31
- this.onTouched = fn;
32
- }
33
- setDisabledState(isDisabled) {
34
- this.disabled = isDisabled;
35
- }
36
- onFileSelected(event) {
37
- const input = event.target;
38
- this.files = input.files;
39
- this.fileNames = this.files ? Array.from(this.files).map(f => f.name) : [];
40
- this.onChange(this.files);
41
- this.fileChange.emit(this.files);
42
- this.onTouched();
43
- }
44
- clearFiles() {
45
- this.files = null;
46
- this.fileNames = [];
47
- this.onChange(null);
48
- this.fileChange.emit(null);
49
- }
50
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: CideEleFileInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
51
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.7", type: CideEleFileInputComponent, isStandalone: true, selector: "cide-ele-file-input", inputs: { label: "label", accept: "accept", multiple: "multiple", disabled: "disabled", helperText: "helperText", errorText: "errorText" }, outputs: { fileChange: "fileChange" }, providers: [
52
- {
53
- provide: NG_VALUE_ACCESSOR,
54
- useExisting: forwardRef(() => CideEleFileInputComponent),
55
- multi: true
56
- }
57
- ], ngImport: i0, template: "<div class=\"cide-file-input\">\r\n <label *ngIf=\"label\" class=\"cide-file-input-label\" [attr.for]=\"'cide-file-input-' + id\">{{ label }}</label>\r\n <div class=\"cide-file-input-wrapper\">\r\n <input\r\n type=\"file\"\r\n [attr.id]=\"'cide-file-input-' + id\"\r\n [attr.accept]=\"accept\"\r\n [attr.multiple]=\"multiple ? true : null\"\r\n [disabled]=\"disabled\"\r\n (change)=\"onFileSelected($event)\"\r\n class=\"cide-file-input-element\"\r\n />\r\n <button *ngIf=\"fileNames.length\" type=\"button\" class=\"cide-file-input-clear\" (click)=\"clearFiles()\">\r\n Clear\r\n </button>\r\n </div>\r\n <div *ngIf=\"fileNames.length\" class=\"cide-file-input-files\">\r\n <span *ngFor=\"let name of fileNames\">{{ name }}</span>\r\n </div>\r\n <div *ngIf=\"errorText\" class=\"cide-file-input-error\">{{ errorText }}</div>\r\n <div *ngIf=\"helperText && !errorText\" class=\"cide-file-input-helper\">{{ helperText }}</div>\r\n</div> ", styles: [".cide-file-input{display:flex;flex-direction:column;gap:.5rem}.cide-file-input-label{font-weight:500;margin-bottom:.25rem}.cide-file-input-wrapper{display:flex;align-items:center;gap:.5rem}.cide-file-input-element{flex:1}.cide-file-input-clear{background:none;border:none;color:#d32f2f;cursor:pointer;font-size:.9rem}.cide-file-input-files{font-size:.95rem;color:#333;margin-top:.25rem}.cide-file-input-error{color:#d32f2f;font-size:.9rem}.cide-file-input-helper{color:#666;font-size:.9rem}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }] }); }
58
- }
59
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: CideEleFileInputComponent, decorators: [{
60
- type: Component,
61
- args: [{ selector: 'cide-ele-file-input', standalone: true, imports: [CommonModule, FormsModule], providers: [
62
- {
63
- provide: NG_VALUE_ACCESSOR,
64
- useExisting: forwardRef(() => CideEleFileInputComponent),
65
- multi: true
66
- }
67
- ], template: "<div class=\"cide-file-input\">\r\n <label *ngIf=\"label\" class=\"cide-file-input-label\" [attr.for]=\"'cide-file-input-' + id\">{{ label }}</label>\r\n <div class=\"cide-file-input-wrapper\">\r\n <input\r\n type=\"file\"\r\n [attr.id]=\"'cide-file-input-' + id\"\r\n [attr.accept]=\"accept\"\r\n [attr.multiple]=\"multiple ? true : null\"\r\n [disabled]=\"disabled\"\r\n (change)=\"onFileSelected($event)\"\r\n class=\"cide-file-input-element\"\r\n />\r\n <button *ngIf=\"fileNames.length\" type=\"button\" class=\"cide-file-input-clear\" (click)=\"clearFiles()\">\r\n Clear\r\n </button>\r\n </div>\r\n <div *ngIf=\"fileNames.length\" class=\"cide-file-input-files\">\r\n <span *ngFor=\"let name of fileNames\">{{ name }}</span>\r\n </div>\r\n <div *ngIf=\"errorText\" class=\"cide-file-input-error\">{{ errorText }}</div>\r\n <div *ngIf=\"helperText && !errorText\" class=\"cide-file-input-helper\">{{ helperText }}</div>\r\n</div> ", styles: [".cide-file-input{display:flex;flex-direction:column;gap:.5rem}.cide-file-input-label{font-weight:500;margin-bottom:.25rem}.cide-file-input-wrapper{display:flex;align-items:center;gap:.5rem}.cide-file-input-element{flex:1}.cide-file-input-clear{background:none;border:none;color:#d32f2f;cursor:pointer;font-size:.9rem}.cide-file-input-files{font-size:.95rem;color:#333;margin-top:.25rem}.cide-file-input-error{color:#d32f2f;font-size:.9rem}.cide-file-input-helper{color:#666;font-size:.9rem}\n"] }]
68
- }], propDecorators: { label: [{
69
- type: Input
70
- }], accept: [{
71
- type: Input
72
- }], multiple: [{
73
- type: Input
74
- }], disabled: [{
75
- type: Input
76
- }], helperText: [{
77
- type: Input
78
- }], errorText: [{
79
- type: Input
80
- }], fileChange: [{
81
- type: Output
82
- }] } });
83
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1pbnB1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbG91ZC1pZGUtZWxlbWVudC9zcmMvbGliL2VsZW1lbnRzL2ZpbGUtaW5wdXQvZmlsZS1pbnB1dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbG91ZC1pZGUtZWxlbWVudC9zcmMvbGliL2VsZW1lbnRzL2ZpbGUtaW5wdXQvZmlsZS1pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkYsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7O0FBZ0J0RixNQUFNLE9BQU8seUJBQXlCO0lBZHRDO1FBZVcsVUFBSyxHQUFXLGFBQWEsQ0FBQztRQUM5QixXQUFNLEdBQVcsRUFBRSxDQUFDO1FBQ3BCLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFDMUIsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUMxQixlQUFVLEdBQVcsRUFBRSxDQUFDO1FBQ3hCLGNBQVMsR0FBVyxFQUFFLENBQUM7UUFFekIsT0FBRSxHQUFXLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUV0RCxlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQW1CLENBQUM7UUFFM0QsNkRBQTZEO1FBQzdELFVBQUssR0FBb0IsSUFBSSxDQUFDO1FBQzlCLGNBQVMsR0FBYSxFQUFFLENBQUM7UUFFekIsNkRBQTZEO1FBQ3JELGFBQVEsR0FBRyxDQUFDLEtBQXNCLEVBQUUsRUFBRSxHQUFFLENBQUMsQ0FBQztRQUMxQyxjQUFTLEdBQUcsR0FBRyxFQUFFLEdBQUUsQ0FBQyxDQUFDO0tBa0M5QjtJQWhDQyxVQUFVLENBQUMsS0FBc0I7UUFDL0IsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDbkUsQ0FBQztJQUVELGdCQUFnQixDQUFDLEVBQW9DO1FBQ25ELElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxFQUFjO1FBQzlCLElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxVQUFtQjtRQUNsQyxJQUFJLENBQUMsUUFBUSxHQUFHLFVBQVUsQ0FBQztJQUM3QixDQUFDO0lBRUQsY0FBYyxDQUFDLEtBQVk7UUFDekIsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLE1BQTBCLENBQUM7UUFDL0MsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDM0UsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDMUIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNuQixDQUFDO0lBRUQsVUFBVTtRQUNSLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO1FBQ2xCLElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDN0IsQ0FBQzs4R0FuRFUseUJBQXlCO2tHQUF6Qix5QkFBeUIscVBBUnpCO1lBQ1Q7Z0JBQ0UsT0FBTyxFQUFFLGlCQUFpQjtnQkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyx5QkFBeUIsQ0FBQztnQkFDeEQsS0FBSyxFQUFFLElBQUk7YUFDWjtTQUNGLDBCQ2hCSCx3K0JBcUJPLHFpQkRaSyxZQUFZLCtQQUFFLFdBQVc7OzJGQVN4Qix5QkFBeUI7a0JBZHJDLFNBQVM7K0JBQ0UscUJBQXFCLGNBQ25CLElBQUksV0FHUCxDQUFDLFlBQVksRUFBRSxXQUFXLENBQUMsYUFDekI7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsMEJBQTBCLENBQUM7NEJBQ3hELEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGOzhCQUdRLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFJSSxVQUFVO3NCQUFuQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQsIGZvcndhcmRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SLCBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnY2lkZS1lbGUtZmlsZS1pbnB1dCcsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICB0ZW1wbGF0ZVVybDogJy4vZmlsZS1pbnB1dC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL2ZpbGUtaW5wdXQuY29tcG9uZW50LnNjc3MnLFxyXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEZvcm1zTW9kdWxlXSxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IENpZGVFbGVGaWxlSW5wdXRDb21wb25lbnQpLFxyXG4gICAgICBtdWx0aTogdHJ1ZVxyXG4gICAgfVxyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIENpZGVFbGVGaWxlSW5wdXRDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciB7XHJcbiAgQElucHV0KCkgbGFiZWw6IHN0cmluZyA9ICdDaG9vc2UgZmlsZSc7XHJcbiAgQElucHV0KCkgYWNjZXB0OiBzdHJpbmcgPSAnJztcclxuICBASW5wdXQoKSBtdWx0aXBsZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGRpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgaGVscGVyVGV4dDogc3RyaW5nID0gJyc7XHJcbiAgQElucHV0KCkgZXJyb3JUZXh0OiBzdHJpbmcgPSAnJztcclxuXHJcbiAgcHVibGljIGlkOiBzdHJpbmcgPSBNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHJpbmcoMiwgMTApO1xyXG5cclxuICBAT3V0cHV0KCkgZmlsZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8RmlsZUxpc3QgfCBudWxsPigpO1xyXG5cclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXHJcbiAgZmlsZXM6IEZpbGVMaXN0IHwgbnVsbCA9IG51bGw7XHJcbiAgZmlsZU5hbWVzOiBzdHJpbmdbXSA9IFtdO1xyXG5cclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXHJcbiAgcHJpdmF0ZSBvbkNoYW5nZSA9IChmaWxlczogRmlsZUxpc3QgfCBudWxsKSA9PiB7fTtcclxuICBwcml2YXRlIG9uVG91Y2hlZCA9ICgpID0+IHt9O1xyXG5cclxuICB3cml0ZVZhbHVlKGZpbGVzOiBGaWxlTGlzdCB8IG51bGwpOiB2b2lkIHtcclxuICAgIHRoaXMuZmlsZXMgPSBmaWxlcztcclxuICAgIHRoaXMuZmlsZU5hbWVzID0gZmlsZXMgPyBBcnJheS5mcm9tKGZpbGVzKS5tYXAoZiA9PiBmLm5hbWUpIDogW107XHJcbiAgfVxyXG5cclxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiAoZmlsZXM6IEZpbGVMaXN0IHwgbnVsbCkgPT4gdm9pZCk6IHZvaWQge1xyXG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xyXG4gIH1cclxuXHJcbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcclxuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XHJcbiAgfVxyXG5cclxuICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xyXG4gIH1cclxuXHJcbiAgb25GaWxlU2VsZWN0ZWQoZXZlbnQ6IEV2ZW50KSB7XHJcbiAgICBjb25zdCBpbnB1dCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50O1xyXG4gICAgdGhpcy5maWxlcyA9IGlucHV0LmZpbGVzO1xyXG4gICAgdGhpcy5maWxlTmFtZXMgPSB0aGlzLmZpbGVzID8gQXJyYXkuZnJvbSh0aGlzLmZpbGVzKS5tYXAoZiA9PiBmLm5hbWUpIDogW107XHJcbiAgICB0aGlzLm9uQ2hhbmdlKHRoaXMuZmlsZXMpO1xyXG4gICAgdGhpcy5maWxlQ2hhbmdlLmVtaXQodGhpcy5maWxlcyk7XHJcbiAgICB0aGlzLm9uVG91Y2hlZCgpO1xyXG4gIH1cclxuXHJcbiAgY2xlYXJGaWxlcygpIHtcclxuICAgIHRoaXMuZmlsZXMgPSBudWxsO1xyXG4gICAgdGhpcy5maWxlTmFtZXMgPSBbXTtcclxuICAgIHRoaXMub25DaGFuZ2UobnVsbCk7XHJcbiAgICB0aGlzLmZpbGVDaGFuZ2UuZW1pdChudWxsKTtcclxuICB9XHJcbn0gIiwiPGRpdiBjbGFzcz1cImNpZGUtZmlsZS1pbnB1dFwiPlxyXG4gIDxsYWJlbCAqbmdJZj1cImxhYmVsXCIgY2xhc3M9XCJjaWRlLWZpbGUtaW5wdXQtbGFiZWxcIiBbYXR0ci5mb3JdPVwiJ2NpZGUtZmlsZS1pbnB1dC0nICsgaWRcIj57eyBsYWJlbCB9fTwvbGFiZWw+XHJcbiAgPGRpdiBjbGFzcz1cImNpZGUtZmlsZS1pbnB1dC13cmFwcGVyXCI+XHJcbiAgICA8aW5wdXRcclxuICAgICAgdHlwZT1cImZpbGVcIlxyXG4gICAgICBbYXR0ci5pZF09XCInY2lkZS1maWxlLWlucHV0LScgKyBpZFwiXHJcbiAgICAgIFthdHRyLmFjY2VwdF09XCJhY2NlcHRcIlxyXG4gICAgICBbYXR0ci5tdWx0aXBsZV09XCJtdWx0aXBsZSA/IHRydWUgOiBudWxsXCJcclxuICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcclxuICAgICAgKGNoYW5nZSk9XCJvbkZpbGVTZWxlY3RlZCgkZXZlbnQpXCJcclxuICAgICAgY2xhc3M9XCJjaWRlLWZpbGUtaW5wdXQtZWxlbWVudFwiXHJcbiAgICAvPlxyXG4gICAgPGJ1dHRvbiAqbmdJZj1cImZpbGVOYW1lcy5sZW5ndGhcIiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJjaWRlLWZpbGUtaW5wdXQtY2xlYXJcIiAoY2xpY2spPVwiY2xlYXJGaWxlcygpXCI+XHJcbiAgICAgIENsZWFyXHJcbiAgICA8L2J1dHRvbj5cclxuICA8L2Rpdj5cclxuICA8ZGl2ICpuZ0lmPVwiZmlsZU5hbWVzLmxlbmd0aFwiIGNsYXNzPVwiY2lkZS1maWxlLWlucHV0LWZpbGVzXCI+XHJcbiAgICA8c3BhbiAqbmdGb3I9XCJsZXQgbmFtZSBvZiBmaWxlTmFtZXNcIj57eyBuYW1lIH19PC9zcGFuPlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgKm5nSWY9XCJlcnJvclRleHRcIiBjbGFzcz1cImNpZGUtZmlsZS1pbnB1dC1lcnJvclwiPnt7IGVycm9yVGV4dCB9fTwvZGl2PlxyXG4gIDxkaXYgKm5nSWY9XCJoZWxwZXJUZXh0ICYmICFlcnJvclRleHRcIiBjbGFzcz1cImNpZGUtZmlsZS1pbnB1dC1oZWxwZXJcIj57eyBoZWxwZXJUZXh0IH19PC9kaXY+XHJcbjwvZGl2PiAiXX0=