lib-portal-angular 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (44) hide show
  1. package/README.md +24 -0
  2. package/esm2022/lib/components/advanced-calendar/calendar.component.mjs +135 -0
  3. package/esm2022/lib/components/advanced-calendar/date-picker.component.mjs +113 -0
  4. package/esm2022/lib/components/advanced-calendar/date-time-picker.component.mjs +113 -0
  5. package/esm2022/lib/components/badge/badge.component.mjs +151 -0
  6. package/esm2022/lib/components/button/button.component.mjs +192 -0
  7. package/esm2022/lib/components/card/card.component.mjs +37 -0
  8. package/esm2022/lib/components/checkbox/checkbox.component.mjs +112 -0
  9. package/esm2022/lib/components/code-highlight/code-highlight.component.mjs +51 -0
  10. package/esm2022/lib/components/components.module.mjs +120 -0
  11. package/esm2022/lib/components/form/form.component.mjs +36 -0
  12. package/esm2022/lib/components/imput/input.component.mjs +189 -0
  13. package/esm2022/lib/components/multi-select/multi-select.component.mjs +147 -0
  14. package/esm2022/lib/components/radio/radio.component.mjs +114 -0
  15. package/esm2022/lib/components/select/select.component.mjs +107 -0
  16. package/esm2022/lib/components/tables/bootstrap-table.component.mjs +115 -0
  17. package/esm2022/lib/components/textarea/textarea.component.mjs +184 -0
  18. package/esm2022/lib/enum/ButtonClassesEnum.mjs +13 -0
  19. package/esm2022/lib/lib-portal-angular.module.mjs +20 -0
  20. package/esm2022/lib-portal-angular.mjs +5 -0
  21. package/esm2022/public-api.mjs +28 -0
  22. package/fesm2022/lib-portal-angular.mjs +1887 -0
  23. package/fesm2022/lib-portal-angular.mjs.map +1 -0
  24. package/index.d.ts +5 -0
  25. package/lib/components/advanced-calendar/calendar.component.d.ts +28 -0
  26. package/lib/components/advanced-calendar/date-picker.component.d.ts +25 -0
  27. package/lib/components/advanced-calendar/date-time-picker.component.d.ts +25 -0
  28. package/lib/components/badge/badge.component.d.ts +34 -0
  29. package/lib/components/button/button.component.d.ts +45 -0
  30. package/lib/components/card/card.component.d.ts +6 -0
  31. package/lib/components/checkbox/checkbox.component.d.ts +23 -0
  32. package/lib/components/code-highlight/code-highlight.component.d.ts +15 -0
  33. package/lib/components/components.module.d.ts +26 -0
  34. package/lib/components/form/form.component.d.ts +6 -0
  35. package/lib/components/imput/input.component.d.ts +43 -0
  36. package/lib/components/multi-select/multi-select.component.d.ts +31 -0
  37. package/lib/components/radio/radio.component.d.ts +25 -0
  38. package/lib/components/select/select.component.d.ts +27 -0
  39. package/lib/components/tables/bootstrap-table.component.d.ts +33 -0
  40. package/lib/components/textarea/textarea.component.d.ts +42 -0
  41. package/lib/enum/ButtonClassesEnum.d.ts +11 -0
  42. package/lib/lib-portal-angular.module.d.ts +7 -0
  43. package/package.json +25 -0
  44. package/public-api.d.ts +18 -0
package/README.md ADDED
@@ -0,0 +1,24 @@
1
+ # SimLib
2
+
3
+ This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 16.2.0.
4
+
5
+ ## Code scaffolding
6
+
7
+ Run `ng generate component component-name --project sim-lib` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module --project sim-lib`.
8
+ > Note: Don't forget to add `--project sim-lib` or else it will be added to the default project in your `angular.json` file.
9
+
10
+ ## Build
11
+
12
+ Run `ng build sim-lib` to build the project. The build artifacts will be stored in the `dist/` directory.
13
+
14
+ ## Publishing
15
+
16
+ After building your library with `ng build sim-lib`, go to the dist folder `cd dist/sim-lib` and run `npm publish`.
17
+
18
+ ## Running unit tests
19
+
20
+ Run `ng test sim-lib` to execute the unit tests via [Karma](https://karma-runner.github.io).
21
+
22
+ ## Further help
23
+
24
+ To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI Overview and Command Reference](https://angular.io/cli) page.
@@ -0,0 +1,135 @@
1
+ import { ChangeDetectionStrategy, Component, forwardRef, Input } from '@angular/core';
2
+ import { NG_VALUE_ACCESSOR } from '@angular/forms';
3
+ import Brazilian from 'flatpickr/dist/l10n/pt.js'; // Importa a localização brasileira
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/common";
6
+ import * as i2 from "@angular/forms";
7
+ import * as i3 from "angularx-flatpickr";
8
+ export class CalendarComponent {
9
+ constructor() {
10
+ this.inputId = 'startDate';
11
+ this.label = 'Event Start Date';
12
+ this.placeholder = 'Not set';
13
+ this.marginTop = 0;
14
+ this.marginBottom = 0;
15
+ this.marginLeft = 0;
16
+ this.marginRight = 0;
17
+ this.altInput = true;
18
+ this.convertModelValue = true;
19
+ this.enableTime = true;
20
+ this.dateFormat = 'd/m/Y H:i';
21
+ this.altFormat = 'd/m/Y';
22
+ this.locale = Brazilian.pt; // Define o idioma como brasileiro por padrão
23
+ this.onChange = (_) => { };
24
+ this.onTouched = () => { };
25
+ }
26
+ ngOnInit() {
27
+ // Any necessary initialization
28
+ }
29
+ writeValue(value) {
30
+ this.value = value;
31
+ }
32
+ registerOnChange(fn) {
33
+ this.onChange = fn;
34
+ }
35
+ registerOnTouched(fn) {
36
+ this.onTouched = fn;
37
+ }
38
+ onNgModelChange(event) {
39
+ this.onChange(event);
40
+ this.onTouched();
41
+ }
42
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CalendarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
43
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CalendarComponent, selector: "sim-advanced-calendar", inputs: { inputId: "inputId", label: "label", placeholder: "placeholder", marginTop: "marginTop", marginBottom: "marginBottom", marginLeft: "marginLeft", marginRight: "marginRight", altInput: "altInput", convertModelValue: "convertModelValue", enableTime: "enableTime", dateFormat: "dateFormat", altFormat: "altFormat", locale: "locale" }, providers: [
44
+ {
45
+ provide: NG_VALUE_ACCESSOR,
46
+ useExisting: forwardRef(() => CalendarComponent),
47
+ multi: true
48
+ }
49
+ ], ngImport: i0, template: `
50
+ <div class="form-group" [ngStyle]="{
51
+ 'margin-top': marginTop + 'rem',
52
+ 'margin-bottom': marginBottom + 'rem',
53
+ 'margin-left': marginLeft + 'rem',
54
+ 'margin-right': marginRight + 'rem'
55
+ }">
56
+ <label [for]="inputId" class="form-label">{{ label }}</label>
57
+ <input
58
+ [id]="inputId"
59
+ class="form-control"
60
+ type="text"
61
+ mwlFlatpickr
62
+ [(ngModel)]="value"
63
+ (ngModelChange)="onNgModelChange($event)"
64
+ [altInput]="altInput"
65
+ [convertModelValue]="convertModelValue"
66
+ [enableTime]="enableTime"
67
+ [dateFormat]="dateFormat"
68
+ [altFormat]="altFormat"
69
+ [placeholder]="placeholder"
70
+ [locale]="locale"
71
+ />
72
+ </div>
73
+ `, isInline: true, styles: [".form-group{font-family:Arial,sans-serif;font-size:1rem}.form-label{font-weight:700}\n"], dependencies: [{ kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i3.FlatpickrDirective, selector: "[mwlFlatpickr]", inputs: ["options", "altFormat", "altInput", "altInputClass", "allowInput", "allowInvalidPreload", "appendTo", "ariaDateFormat", "clickOpens", "dateFormat", "defaultHour", "defaultMinute", "defaultSeconds", "disable", "disableMobile", "enable", "enableTime", "enableSeconds", "formatDate", "hourIncrement", "inline", "maxDate", "minDate", "maxTime", "minTime", "minuteIncrement", "mode", "nextArrow", "noCalendar", "now", "parseDate", "prevArrow", "shorthandCurrentMonth", "showMonths", "static", "time24hr", "weekNumbers", "getWeek", "wrap", "plugins", "locale", "convertModelValue", "monthSelectorType", "ignoredFocusElements"], outputs: ["flatpickrReady", "flatpickrChange", "flatpickrValueUpdate", "flatpickrOpen", "flatpickrClose", "flatpickrMonthChange", "flatpickrYearChange", "flatpickrDayCreate"], exportAs: ["mwlFlatpickr"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
74
+ }
75
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CalendarComponent, decorators: [{
76
+ type: Component,
77
+ args: [{ selector: 'sim-advanced-calendar', template: `
78
+ <div class="form-group" [ngStyle]="{
79
+ 'margin-top': marginTop + 'rem',
80
+ 'margin-bottom': marginBottom + 'rem',
81
+ 'margin-left': marginLeft + 'rem',
82
+ 'margin-right': marginRight + 'rem'
83
+ }">
84
+ <label [for]="inputId" class="form-label">{{ label }}</label>
85
+ <input
86
+ [id]="inputId"
87
+ class="form-control"
88
+ type="text"
89
+ mwlFlatpickr
90
+ [(ngModel)]="value"
91
+ (ngModelChange)="onNgModelChange($event)"
92
+ [altInput]="altInput"
93
+ [convertModelValue]="convertModelValue"
94
+ [enableTime]="enableTime"
95
+ [dateFormat]="dateFormat"
96
+ [altFormat]="altFormat"
97
+ [placeholder]="placeholder"
98
+ [locale]="locale"
99
+ />
100
+ </div>
101
+ `, providers: [
102
+ {
103
+ provide: NG_VALUE_ACCESSOR,
104
+ useExisting: forwardRef(() => CalendarComponent),
105
+ multi: true
106
+ }
107
+ ], changeDetection: ChangeDetectionStrategy.OnPush, styles: [".form-group{font-family:Arial,sans-serif;font-size:1rem}.form-label{font-weight:700}\n"] }]
108
+ }], propDecorators: { inputId: [{
109
+ type: Input
110
+ }], label: [{
111
+ type: Input
112
+ }], placeholder: [{
113
+ type: Input
114
+ }], marginTop: [{
115
+ type: Input
116
+ }], marginBottom: [{
117
+ type: Input
118
+ }], marginLeft: [{
119
+ type: Input
120
+ }], marginRight: [{
121
+ type: Input
122
+ }], altInput: [{
123
+ type: Input
124
+ }], convertModelValue: [{
125
+ type: Input
126
+ }], enableTime: [{
127
+ type: Input
128
+ }], dateFormat: [{
129
+ type: Input
130
+ }], altFormat: [{
131
+ type: Input
132
+ }], locale: [{
133
+ type: Input
134
+ }] } });
135
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbGliLXBvcnRhbC1hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9hZHZhbmNlZC1jYWxlbmRhci9jYWxlbmRhci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQzlGLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RSxPQUFPLFNBQVMsTUFBTSwyQkFBMkIsQ0FBQyxDQUFDLG1DQUFtQzs7Ozs7QUFnRHRGLE1BQU0sT0FBTyxpQkFBaUI7SUE5QzlCO1FBK0NXLFlBQU8sR0FBVyxXQUFXLENBQUM7UUFDOUIsVUFBSyxHQUFXLGtCQUFrQixDQUFDO1FBQ25DLGdCQUFXLEdBQVcsU0FBUyxDQUFDO1FBQ2hDLGNBQVMsR0FBVyxDQUFDLENBQUM7UUFDdEIsaUJBQVksR0FBVyxDQUFDLENBQUM7UUFDekIsZUFBVSxHQUFXLENBQUMsQ0FBQztRQUN2QixnQkFBVyxHQUFXLENBQUMsQ0FBQztRQUN4QixhQUFRLEdBQVksSUFBSSxDQUFDO1FBQ3pCLHNCQUFpQixHQUFZLElBQUksQ0FBQztRQUNsQyxlQUFVLEdBQVksSUFBSSxDQUFDO1FBQzNCLGVBQVUsR0FBVyxXQUFXLENBQUM7UUFDakMsY0FBUyxHQUFXLE9BQU8sQ0FBQztRQUM1QixXQUFNLEdBQVEsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDLDZDQUE2QztRQUkxRSxhQUFRLEdBQUcsQ0FBQyxDQUFNLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUMzQixjQUFTLEdBQUcsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0tBc0IvQjtJQXBCQyxRQUFRO1FBQ04sK0JBQStCO0lBQ2pDLENBQUM7SUFFRCxVQUFVLENBQUMsS0FBVTtRQUNuQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztJQUNyQixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsRUFBTztRQUN0QixJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRUQsaUJBQWlCLENBQUMsRUFBTztRQUN2QixJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRUQsZUFBZSxDQUFDLEtBQVU7UUFDeEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNyQixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDbkIsQ0FBQzsrR0F2Q1UsaUJBQWlCO21HQUFqQixpQkFBaUIsb1lBbkJqQjtZQUNUO2dCQUNFLE9BQU8sRUFBRSxpQkFBaUI7Z0JBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsaUJBQWlCLENBQUM7Z0JBQ2hELEtBQUssRUFBRSxJQUFJO2FBQ1o7U0FDRiwwQkEvQlM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXdCVDs7NEZBb0JVLGlCQUFpQjtrQkE5QzdCLFNBQVM7K0JBQ0UsdUJBQXVCLFlBQ3ZCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F3QlQsYUFDVTt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxrQkFBa0IsQ0FBQzs0QkFDaEQsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0YsbUJBV2dCLHVCQUF1QixDQUFDLE1BQU07OEJBR3RDLE9BQU87c0JBQWYsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGZvcndhcmRSZWYsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCBCcmF6aWxpYW4gZnJvbSAnZmxhdHBpY2tyL2Rpc3QvbDEwbi9wdC5qcyc7IC8vIEltcG9ydGEgYSBsb2NhbGl6YcOnw6NvIGJyYXNpbGVpcmFcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2ltLWFkdmFuY2VkLWNhbGVuZGFyJyxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiIFtuZ1N0eWxlXT1cIntcbiAgICAgICdtYXJnaW4tdG9wJzogbWFyZ2luVG9wICsgJ3JlbScsXG4gICAgICAnbWFyZ2luLWJvdHRvbSc6IG1hcmdpbkJvdHRvbSArICdyZW0nLFxuICAgICAgJ21hcmdpbi1sZWZ0JzogbWFyZ2luTGVmdCArICdyZW0nLFxuICAgICAgJ21hcmdpbi1yaWdodCc6IG1hcmdpblJpZ2h0ICsgJ3JlbSdcbiAgICB9XCI+XG4gICAgICA8bGFiZWwgW2Zvcl09XCJpbnB1dElkXCIgY2xhc3M9XCJmb3JtLWxhYmVsXCI+e3sgbGFiZWwgfX08L2xhYmVsPlxuICAgICAgPGlucHV0XG4gICAgICAgIFtpZF09XCJpbnB1dElkXCJcbiAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgIG13bEZsYXRwaWNrclxuICAgICAgICBbKG5nTW9kZWwpXT1cInZhbHVlXCJcbiAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwib25OZ01vZGVsQ2hhbmdlKCRldmVudClcIlxuICAgICAgICBbYWx0SW5wdXRdPVwiYWx0SW5wdXRcIlxuICAgICAgICBbY29udmVydE1vZGVsVmFsdWVdPVwiY29udmVydE1vZGVsVmFsdWVcIlxuICAgICAgICBbZW5hYmxlVGltZV09XCJlbmFibGVUaW1lXCJcbiAgICAgICAgW2RhdGVGb3JtYXRdPVwiZGF0ZUZvcm1hdFwiXG4gICAgICAgIFthbHRGb3JtYXRdPVwiYWx0Rm9ybWF0XCJcbiAgICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgICAgICAgW2xvY2FsZV09XCJsb2NhbGVcIlxuICAgICAgLz5cbiAgICA8L2Rpdj5cbiAgYCxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBDYWxlbmRhckNvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZVxuICAgIH1cbiAgXSxcbiAgc3R5bGVzOiBbYFxuICAgIC5mb3JtLWdyb3VwIHtcbiAgICAgIGZvbnQtZmFtaWx5OiBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICB9XG4gICAgLmZvcm0tbGFiZWwge1xuICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgfVxuICBgXSxcblxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBDYWxlbmRhckNvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBPbkluaXQge1xuICBASW5wdXQoKSBpbnB1dElkOiBzdHJpbmcgPSAnc3RhcnREYXRlJztcbiAgQElucHV0KCkgbGFiZWw6IHN0cmluZyA9ICdFdmVudCBTdGFydCBEYXRlJztcbiAgQElucHV0KCkgcGxhY2Vob2xkZXI6IHN0cmluZyA9ICdOb3Qgc2V0JztcbiAgQElucHV0KCkgbWFyZ2luVG9wOiBudW1iZXIgPSAwO1xuICBASW5wdXQoKSBtYXJnaW5Cb3R0b206IG51bWJlciA9IDA7XG4gIEBJbnB1dCgpIG1hcmdpbkxlZnQ6IG51bWJlciA9IDA7XG4gIEBJbnB1dCgpIG1hcmdpblJpZ2h0OiBudW1iZXIgPSAwO1xuICBASW5wdXQoKSBhbHRJbnB1dDogYm9vbGVhbiA9IHRydWU7XG4gIEBJbnB1dCgpIGNvbnZlcnRNb2RlbFZhbHVlOiBib29sZWFuID0gdHJ1ZTtcbiAgQElucHV0KCkgZW5hYmxlVGltZTogYm9vbGVhbiA9IHRydWU7XG4gIEBJbnB1dCgpIGRhdGVGb3JtYXQ6IHN0cmluZyA9ICdkL20vWSBIOmknO1xuICBASW5wdXQoKSBhbHRGb3JtYXQ6IHN0cmluZyA9ICdkL20vWSc7XG4gIEBJbnB1dCgpIGxvY2FsZTogYW55ID0gQnJhemlsaWFuLnB0OyAvLyBEZWZpbmUgbyBpZGlvbWEgY29tbyBicmFzaWxlaXJvIHBvciBwYWRyw6NvXG5cbiAgdmFsdWU6IGFueTtcblxuICBwcml2YXRlIG9uQ2hhbmdlID0gKF86IGFueSkgPT4geyB9O1xuICBwcml2YXRlIG9uVG91Y2hlZCA9ICgpID0+IHsgfTtcblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAvLyBBbnkgbmVjZXNzYXJ5IGluaXRpYWxpemF0aW9uXG4gIH1cblxuICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gIH1cblxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcbiAgfVxuXG4gIG9uTmdNb2RlbENoYW5nZShldmVudDogYW55KSB7XG4gICAgdGhpcy5vbkNoYW5nZShldmVudCk7XG4gICAgdGhpcy5vblRvdWNoZWQoKTtcbiAgfVxufVxuIl19
@@ -0,0 +1,113 @@
1
+ import { Component, EventEmitter, Input, Output, forwardRef } from '@angular/core';
2
+ import { NG_VALUE_ACCESSOR } from '@angular/forms';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/common";
5
+ import * as i2 from "@angular/forms";
6
+ export class DatePickerComponent {
7
+ constructor() {
8
+ this.inputId = '';
9
+ this.label = '';
10
+ this.placeholder = '';
11
+ this.marginTop = 0;
12
+ this.marginBottom = 0;
13
+ this.marginLeft = 0;
14
+ this.marginRight = 0;
15
+ this.ngModelChange = new EventEmitter();
16
+ // ControlValueAccessor interface methods
17
+ this.onChange = () => { };
18
+ this.onTouched = () => { };
19
+ }
20
+ get value() {
21
+ return this.innerValue;
22
+ }
23
+ set value(val) {
24
+ this.innerValue = val;
25
+ this.onChange(val);
26
+ this.onTouched();
27
+ }
28
+ onNgModelChange(event) {
29
+ this.value = event;
30
+ this.ngModelChange.emit(event);
31
+ }
32
+ writeValue(value) {
33
+ this.value = value;
34
+ }
35
+ registerOnChange(fn) {
36
+ this.onChange = fn;
37
+ }
38
+ registerOnTouched(fn) {
39
+ this.onTouched = fn;
40
+ }
41
+ setDisabledState(isDisabled) {
42
+ // Logic for disabling the component
43
+ }
44
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DatePickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
45
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DatePickerComponent, selector: "sim-date-picker", inputs: { inputId: "inputId", label: "label", placeholder: "placeholder", marginTop: "marginTop", marginBottom: "marginBottom", marginLeft: "marginLeft", marginRight: "marginRight" }, outputs: { ngModelChange: "ngModelChange" }, providers: [
46
+ {
47
+ provide: NG_VALUE_ACCESSOR,
48
+ useExisting: forwardRef(() => DatePickerComponent),
49
+ multi: true
50
+ }
51
+ ], ngImport: i0, template: `
52
+ <div class="form-group" [ngStyle]="{
53
+ 'margin-top': marginTop + 'rem',
54
+ 'margin-bottom': marginBottom + 'rem',
55
+ 'margin-left': marginLeft + 'rem',
56
+ 'margin-right': marginRight + 'rem'
57
+ }">
58
+ <label [for]="inputId" class="form-label">{{ label }}</label>
59
+ <input
60
+ [id]="inputId"
61
+ class="form-control"
62
+ type="date"
63
+ [(ngModel)]="value"
64
+ (ngModelChange)="onNgModelChange($event)"
65
+ [placeholder]="placeholder"
66
+ />
67
+ </div>
68
+ `, isInline: true, styles: [".form-label{font-weight:700}\n"], dependencies: [{ kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] }); }
69
+ }
70
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DatePickerComponent, decorators: [{
71
+ type: Component,
72
+ args: [{ selector: 'sim-date-picker', template: `
73
+ <div class="form-group" [ngStyle]="{
74
+ 'margin-top': marginTop + 'rem',
75
+ 'margin-bottom': marginBottom + 'rem',
76
+ 'margin-left': marginLeft + 'rem',
77
+ 'margin-right': marginRight + 'rem'
78
+ }">
79
+ <label [for]="inputId" class="form-label">{{ label }}</label>
80
+ <input
81
+ [id]="inputId"
82
+ class="form-control"
83
+ type="date"
84
+ [(ngModel)]="value"
85
+ (ngModelChange)="onNgModelChange($event)"
86
+ [placeholder]="placeholder"
87
+ />
88
+ </div>
89
+ `, providers: [
90
+ {
91
+ provide: NG_VALUE_ACCESSOR,
92
+ useExisting: forwardRef(() => DatePickerComponent),
93
+ multi: true
94
+ }
95
+ ], styles: [".form-label{font-weight:700}\n"] }]
96
+ }], propDecorators: { inputId: [{
97
+ type: Input
98
+ }], label: [{
99
+ type: Input
100
+ }], placeholder: [{
101
+ type: Input
102
+ }], marginTop: [{
103
+ type: Input
104
+ }], marginBottom: [{
105
+ type: Input
106
+ }], marginLeft: [{
107
+ type: Input
108
+ }], marginRight: [{
109
+ type: Input
110
+ }], ngModelChange: [{
111
+ type: Output
112
+ }] } });
113
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbGliLXBvcnRhbC1hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9hZHZhbmNlZC1jYWxlbmRhci9kYXRlLXBpY2tlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkYsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7O0FBbUN6RSxNQUFNLE9BQU8sbUJBQW1CO0lBakNoQztRQWtDVyxZQUFPLEdBQVcsRUFBRSxDQUFDO1FBQ3JCLFVBQUssR0FBVyxFQUFFLENBQUM7UUFDbkIsZ0JBQVcsR0FBVyxFQUFFLENBQUM7UUFDekIsY0FBUyxHQUFXLENBQUMsQ0FBQztRQUN0QixpQkFBWSxHQUFXLENBQUMsQ0FBQztRQUN6QixlQUFVLEdBQVcsQ0FBQyxDQUFDO1FBQ3ZCLGdCQUFXLEdBQVcsQ0FBQyxDQUFDO1FBRXZCLGtCQUFhLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7UUFtQmhFLHlDQUF5QztRQUN6QyxhQUFRLEdBQVEsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQzFCLGNBQVMsR0FBUSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7S0FpQjVCO0lBbENDLElBQUksS0FBSztRQUNQLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUN6QixDQUFDO0lBRUQsSUFBSSxLQUFLLENBQUMsR0FBUTtRQUNoQixJQUFJLENBQUMsVUFBVSxHQUFHLEdBQUcsQ0FBQztRQUN0QixJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ25CLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNuQixDQUFDO0lBRUQsZUFBZSxDQUFDLEtBQVU7UUFDeEIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDakMsQ0FBQztJQU1ELFVBQVUsQ0FBQyxLQUFVO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO0lBQ3JCLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxFQUFPO1FBQ3RCLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxFQUFPO1FBQ3ZCLElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFRCxnQkFBZ0IsQ0FBRSxVQUFtQjtRQUNuQyxvQ0FBb0M7SUFDdEMsQ0FBQzsrR0E5Q1UsbUJBQW1CO21HQUFuQixtQkFBbUIsK1FBYm5CO1lBQ1Q7Z0JBQ0UsT0FBTyxFQUFFLGlCQUFpQjtnQkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQztnQkFDbEQsS0FBSyxFQUFFLElBQUk7YUFDWjtTQUNGLDBCQXhCUzs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FpQlQ7OzRGQWNVLG1CQUFtQjtrQkFqQy9CLFNBQVM7K0JBQ0UsaUJBQWlCLFlBQ2pCOzs7Ozs7Ozs7Ozs7Ozs7OztHQWlCVCxhQUNVO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLG9CQUFvQixDQUFDOzRCQUNsRCxLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRjs4QkFRUSxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFFSSxhQUFhO3NCQUF0QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQsIGZvcndhcmRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2ltLWRhdGUtcGlja2VyJyxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiIFtuZ1N0eWxlXT1cIntcbiAgICAgICdtYXJnaW4tdG9wJzogbWFyZ2luVG9wICsgJ3JlbScsXG4gICAgICAnbWFyZ2luLWJvdHRvbSc6IG1hcmdpbkJvdHRvbSArICdyZW0nLFxuICAgICAgJ21hcmdpbi1sZWZ0JzogbWFyZ2luTGVmdCArICdyZW0nLFxuICAgICAgJ21hcmdpbi1yaWdodCc6IG1hcmdpblJpZ2h0ICsgJ3JlbSdcbiAgICB9XCI+XG4gICAgICA8bGFiZWwgW2Zvcl09XCJpbnB1dElkXCIgY2xhc3M9XCJmb3JtLWxhYmVsXCI+e3sgbGFiZWwgfX08L2xhYmVsPlxuICAgICAgPGlucHV0XG4gICAgICAgIFtpZF09XCJpbnB1dElkXCJcbiAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgICB0eXBlPVwiZGF0ZVwiXG4gICAgICAgIFsobmdNb2RlbCldPVwidmFsdWVcIlxuICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJvbk5nTW9kZWxDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gICAgICAvPlxuICAgIDwvZGl2PlxuICBgLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IERhdGVQaWNrZXJDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWVcbiAgICB9XG4gIF0sXG4gIHN0eWxlczogW2BcbiAgICAuZm9ybS1sYWJlbCB7XG4gICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICB9XG4gIGBdXG59KVxuZXhwb3J0IGNsYXNzIERhdGVQaWNrZXJDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciB7XG4gIEBJbnB1dCgpIGlucHV0SWQ6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBsYWJlbDogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyOiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgbWFyZ2luVG9wOiBudW1iZXIgPSAwO1xuICBASW5wdXQoKSBtYXJnaW5Cb3R0b206IG51bWJlciA9IDA7XG4gIEBJbnB1dCgpIG1hcmdpbkxlZnQ6IG51bWJlciA9IDA7XG4gIEBJbnB1dCgpIG1hcmdpblJpZ2h0OiBudW1iZXIgPSAwO1xuXG4gIEBPdXRwdXQoKSBuZ01vZGVsQ2hhbmdlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBwcml2YXRlIGlubmVyVmFsdWU6IGFueTtcblxuICBnZXQgdmFsdWUoKTogYW55IHtcbiAgICByZXR1cm4gdGhpcy5pbm5lclZhbHVlO1xuICB9XG5cbiAgc2V0IHZhbHVlKHZhbDogYW55KSB7XG4gICAgdGhpcy5pbm5lclZhbHVlID0gdmFsO1xuICAgIHRoaXMub25DaGFuZ2UodmFsKTtcbiAgICB0aGlzLm9uVG91Y2hlZCgpO1xuICB9XG5cbiAgb25OZ01vZGVsQ2hhbmdlKGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLnZhbHVlID0gZXZlbnQ7XG4gICAgdGhpcy5uZ01vZGVsQ2hhbmdlLmVtaXQoZXZlbnQpO1xuICB9XG5cbiAgLy8gQ29udHJvbFZhbHVlQWNjZXNzb3IgaW50ZXJmYWNlIG1ldGhvZHNcbiAgb25DaGFuZ2U6IGFueSA9ICgpID0+IHsgfTtcbiAgb25Ub3VjaGVkOiBhbnkgPSAoKSA9PiB7IH07XG5cbiAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KTogdm9pZCB7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICB9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gIH1cblxuICBzZXREaXNhYmxlZFN0YXRlPyhpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgLy8gTG9naWMgZm9yIGRpc2FibGluZyB0aGUgY29tcG9uZW50XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,113 @@
1
+ import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, forwardRef } from '@angular/core';
2
+ import { NG_VALUE_ACCESSOR } from '@angular/forms';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/common";
5
+ import * as i2 from "@angular/forms";
6
+ export class DateTimePickerComponent {
7
+ constructor() {
8
+ this.inputId = '';
9
+ this.label = '';
10
+ this.placeholder = '';
11
+ this.marginTop = 0;
12
+ this.marginBottom = 0;
13
+ this.marginLeft = 0;
14
+ this.marginRight = 0;
15
+ this.ngModelChange = new EventEmitter();
16
+ // ControlValueAccessor interface methods
17
+ this.onChange = () => { };
18
+ this.onTouched = () => { };
19
+ }
20
+ get value() {
21
+ return this._value;
22
+ }
23
+ set value(val) {
24
+ this._value = val;
25
+ this.onChange(val);
26
+ this.onTouched();
27
+ }
28
+ onNgModelChange(event) {
29
+ this.value = event;
30
+ this.ngModelChange.emit(event);
31
+ }
32
+ writeValue(value) {
33
+ this._value = value;
34
+ }
35
+ registerOnChange(fn) {
36
+ this.onChange = fn;
37
+ }
38
+ registerOnTouched(fn) {
39
+ this.onTouched = fn;
40
+ }
41
+ setDisabledState(isDisabled) {
42
+ // Logic for disabling the component
43
+ }
44
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DateTimePickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
45
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DateTimePickerComponent, selector: "sim-date-time-picker", inputs: { inputId: "inputId", label: "label", placeholder: "placeholder", marginTop: "marginTop", marginBottom: "marginBottom", marginLeft: "marginLeft", marginRight: "marginRight" }, outputs: { ngModelChange: "ngModelChange" }, providers: [
46
+ {
47
+ provide: NG_VALUE_ACCESSOR,
48
+ useExisting: forwardRef(() => DateTimePickerComponent),
49
+ multi: true
50
+ }
51
+ ], ngImport: i0, template: `
52
+ <div class="form-group" [ngStyle]="{
53
+ 'margin-top': marginTop + 'rem',
54
+ 'margin-bottom': marginBottom + 'rem',
55
+ 'margin-left': marginLeft + 'rem',
56
+ 'margin-right': marginRight + 'rem'
57
+ }">
58
+ <label [for]="inputId" class="form-label">{{ label }}</label>
59
+ <input
60
+ [id]="inputId"
61
+ class="form-control"
62
+ type="datetime-local"
63
+ [(ngModel)]="value"
64
+ (ngModelChange)="onNgModelChange($event)"
65
+ [placeholder]="placeholder"
66
+ />
67
+ </div>
68
+ `, isInline: true, styles: [".form-label{font-weight:700}.custom-input{border:1px solid #9aa4b2;transition:border-color .3s,box-shadow .3s}.custom-input:hover{border-color:#2196f3;border-width:2px}.custom-input:focus{border-color:#2196f3;border-width:2px;box-shadow:0 0 5px #007bff80}\n"], dependencies: [{ kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
69
+ }
70
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DateTimePickerComponent, decorators: [{
71
+ type: Component,
72
+ args: [{ selector: 'sim-date-time-picker', template: `
73
+ <div class="form-group" [ngStyle]="{
74
+ 'margin-top': marginTop + 'rem',
75
+ 'margin-bottom': marginBottom + 'rem',
76
+ 'margin-left': marginLeft + 'rem',
77
+ 'margin-right': marginRight + 'rem'
78
+ }">
79
+ <label [for]="inputId" class="form-label">{{ label }}</label>
80
+ <input
81
+ [id]="inputId"
82
+ class="form-control"
83
+ type="datetime-local"
84
+ [(ngModel)]="value"
85
+ (ngModelChange)="onNgModelChange($event)"
86
+ [placeholder]="placeholder"
87
+ />
88
+ </div>
89
+ `, providers: [
90
+ {
91
+ provide: NG_VALUE_ACCESSOR,
92
+ useExisting: forwardRef(() => DateTimePickerComponent),
93
+ multi: true
94
+ }
95
+ ], changeDetection: ChangeDetectionStrategy.OnPush, styles: [".form-label{font-weight:700}.custom-input{border:1px solid #9aa4b2;transition:border-color .3s,box-shadow .3s}.custom-input:hover{border-color:#2196f3;border-width:2px}.custom-input:focus{border-color:#2196f3;border-width:2px;box-shadow:0 0 5px #007bff80}\n"] }]
96
+ }], propDecorators: { inputId: [{
97
+ type: Input
98
+ }], label: [{
99
+ type: Input
100
+ }], placeholder: [{
101
+ type: Input
102
+ }], marginTop: [{
103
+ type: Input
104
+ }], marginBottom: [{
105
+ type: Input
106
+ }], marginLeft: [{
107
+ type: Input
108
+ }], marginRight: [{
109
+ type: Input
110
+ }], ngModelChange: [{
111
+ type: Output
112
+ }] } });
113
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS10aW1lLXBpY2tlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9saWItcG9ydGFsLWFuZ3VsYXIvc3JjL2xpYi9jb21wb25lbnRzL2FkdmFuY2VkLWNhbGVuZGFyL2RhdGUtdGltZS1waWNrZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVHLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQWlEekUsTUFBTSxPQUFPLHVCQUF1QjtJQS9DcEM7UUFnRFcsWUFBTyxHQUFXLEVBQUUsQ0FBQztRQUNyQixVQUFLLEdBQVcsRUFBRSxDQUFDO1FBQ25CLGdCQUFXLEdBQVcsRUFBRSxDQUFDO1FBQ3pCLGNBQVMsR0FBVyxDQUFDLENBQUM7UUFDdEIsaUJBQVksR0FBVyxDQUFDLENBQUM7UUFDekIsZUFBVSxHQUFXLENBQUMsQ0FBQztRQUN2QixnQkFBVyxHQUFXLENBQUMsQ0FBQztRQUV2QixrQkFBYSxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBbUJoRSx5Q0FBeUM7UUFDekMsYUFBUSxHQUFRLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUMxQixjQUFTLEdBQVEsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0tBaUI1QjtJQWxDQyxJQUFJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDckIsQ0FBQztJQUVELElBQUksS0FBSyxDQUFDLEdBQVE7UUFDaEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxHQUFHLENBQUM7UUFDbEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNuQixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDbkIsQ0FBQztJQUVELGVBQWUsQ0FBQyxLQUFVO1FBQ3hCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFNRCxVQUFVLENBQUMsS0FBVTtRQUNuQixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztJQUN0QixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsRUFBTztRQUN0QixJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRUQsaUJBQWlCLENBQUMsRUFBTztRQUN2QixJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRUQsZ0JBQWdCLENBQUUsVUFBbUI7UUFDbkMsb0NBQW9DO0lBQ3RDLENBQUM7K0dBOUNVLHVCQUF1QjttR0FBdkIsdUJBQXVCLG9SQVR2QjtZQUNUO2dCQUNFLE9BQU8sRUFBRSxpQkFBaUI7Z0JBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsdUJBQXVCLENBQUM7Z0JBQ3RELEtBQUssRUFBRSxJQUFJO2FBQ1o7U0FDRiwwQkExQ1M7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBaUJUOzs0RkE0QlUsdUJBQXVCO2tCQS9DbkMsU0FBUzsrQkFDRSxzQkFBc0IsWUFDdEI7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBaUJULGFBbUJVO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLHdCQUF3QixDQUFDOzRCQUN0RCxLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRixtQkFDZ0IsdUJBQXVCLENBQUMsTUFBTTs4QkFHdEMsT0FBTztzQkFBZixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBRUksYUFBYTtzQkFBdEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCwgZm9yd2FyZFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzaW0tZGF0ZS10aW1lLXBpY2tlcicsXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIiBbbmdTdHlsZV09XCJ7XG4gICAgICAnbWFyZ2luLXRvcCc6IG1hcmdpblRvcCArICdyZW0nLFxuICAgICAgJ21hcmdpbi1ib3R0b20nOiBtYXJnaW5Cb3R0b20gKyAncmVtJyxcbiAgICAgICdtYXJnaW4tbGVmdCc6IG1hcmdpbkxlZnQgKyAncmVtJyxcbiAgICAgICdtYXJnaW4tcmlnaHQnOiBtYXJnaW5SaWdodCArICdyZW0nXG4gICAgfVwiPlxuICAgICAgPGxhYmVsIFtmb3JdPVwiaW5wdXRJZFwiIGNsYXNzPVwiZm9ybS1sYWJlbFwiPnt7IGxhYmVsIH19PC9sYWJlbD5cbiAgICAgIDxpbnB1dFxuICAgICAgICBbaWRdPVwiaW5wdXRJZFwiXG4gICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcbiAgICAgICAgdHlwZT1cImRhdGV0aW1lLWxvY2FsXCJcbiAgICAgICAgWyhuZ01vZGVsKV09XCJ2YWx1ZVwiXG4gICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uTmdNb2RlbENoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgICAgIC8+XG4gICAgPC9kaXY+XG4gIGAsXG4gIHN0eWxlczogW2BcbiAgICAuZm9ybS1sYWJlbCB7XG4gICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICB9XG4gICAgLmN1c3RvbS1pbnB1dCB7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjOWFhNGIyOyAvKiBDaW56YSBtYWlzIGVzY3VybyAqL1xuICAgICAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDAuM3MsIGJveC1zaGFkb3cgMC4zczsgLyogU3Vhdml6YSBhIHRyYW5zacOnw6NvICovXG4gICAgfVxuICAgIC5jdXN0b20taW5wdXQ6aG92ZXIge1xuICAgICAgYm9yZGVyLWNvbG9yOiAjMjE5NmYzOyAvKiBBenVsIG1haXMgaW50ZW5zbyBhbyBwYXNzYXIgbyBtb3VzZSAqL1xuICAgICAgYm9yZGVyLXdpZHRoOiAycHg7IC8qIEVzcGVzc3VyYSBkYSBib3JkYSBhbyBwYXNzYXIgbyBtb3VzZSAqL1xuICAgIH1cbiAgICAuY3VzdG9tLWlucHV0OmZvY3VzIHtcbiAgICAgIGJvcmRlci1jb2xvcjogIzIxOTZmMzsgLyogQXp1bCBtYWlzIGludGVuc28gYW8gZm9jYXIgKi9cbiAgICAgIGJvcmRlci13aWR0aDogMnB4OyAvKiBFc3Blc3N1cmEgZGEgYm9yZGEgYW8gZm9jYXIgKi9cbiAgICAgIGJveC1zaGFkb3c6IDAgMCA1cHggcmdiYSgwLCAxMjMsIDI1NSwgMC41KTsgLyogRWZlaXRvIGRlIGZvY28gbWFpcyBwcm9udW5jaWFkbyAqL1xuICAgIH1cbiAgYF0sXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gRGF0ZVRpbWVQaWNrZXJDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWVcbiAgICB9XG4gIF0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIERhdGVUaW1lUGlja2VyQ29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuICBASW5wdXQoKSBpbnB1dElkOiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgbGFiZWw6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBwbGFjZWhvbGRlcjogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIG1hcmdpblRvcDogbnVtYmVyID0gMDtcbiAgQElucHV0KCkgbWFyZ2luQm90dG9tOiBudW1iZXIgPSAwO1xuICBASW5wdXQoKSBtYXJnaW5MZWZ0OiBudW1iZXIgPSAwO1xuICBASW5wdXQoKSBtYXJnaW5SaWdodDogbnVtYmVyID0gMDtcblxuICBAT3V0cHV0KCkgbmdNb2RlbENoYW5nZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgcHJpdmF0ZSBfdmFsdWU6IGFueTtcblxuICBnZXQgdmFsdWUoKTogYW55IHtcbiAgICByZXR1cm4gdGhpcy5fdmFsdWU7XG4gIH1cblxuICBzZXQgdmFsdWUodmFsOiBhbnkpIHtcbiAgICB0aGlzLl92YWx1ZSA9IHZhbDtcbiAgICB0aGlzLm9uQ2hhbmdlKHZhbCk7XG4gICAgdGhpcy5vblRvdWNoZWQoKTtcbiAgfVxuXG4gIG9uTmdNb2RlbENoYW5nZShldmVudDogYW55KSB7XG4gICAgdGhpcy52YWx1ZSA9IGV2ZW50O1xuICAgIHRoaXMubmdNb2RlbENoYW5nZS5lbWl0KGV2ZW50KTtcbiAgfVxuXG4gIC8vIENvbnRyb2xWYWx1ZUFjY2Vzc29yIGludGVyZmFjZSBtZXRob2RzXG4gIG9uQ2hhbmdlOiBhbnkgPSAoKSA9PiB7IH07XG4gIG9uVG91Y2hlZDogYW55ID0gKCkgPT4geyB9O1xuXG4gIHdyaXRlVmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xuICAgIHRoaXMuX3ZhbHVlID0gdmFsdWU7XG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gIH1cblxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcbiAgfVxuXG4gIHNldERpc2FibGVkU3RhdGU/KGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAvLyBMb2dpYyBmb3IgZGlzYWJsaW5nIHRoZSBjb21wb25lbnRcbiAgfVxufVxuIl19
@@ -0,0 +1,151 @@
1
+ import { ChangeDetectionStrategy, Component, EventEmitter, HostListener, Input, Output } from '@angular/core';
2
+ import { ButtonClasses } from '../../enum/ButtonClassesEnum';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/common";
5
+ export class BadgeComponent {
6
+ constructor() {
7
+ this.label = 'Mensagem';
8
+ this.badgeContent = '+45';
9
+ this.marginTop = 0;
10
+ this.marginBottom = 0;
11
+ this.marginLeft = 0;
12
+ this.marginRight = 0;
13
+ this.btnClass = ButtonClasses.Primary;
14
+ this.buttonClick = new EventEmitter();
15
+ this.isHovered = false;
16
+ this.isClicked = false;
17
+ this.isActive = false;
18
+ }
19
+ getDynamicStyles() {
20
+ let backgroundColor = '';
21
+ let textColor = '#fff'; // Default text color
22
+ let borderColor = '';
23
+ switch (this.btnClass) {
24
+ case ButtonClasses.Primary:
25
+ backgroundColor = '#00444C';
26
+ break;
27
+ case ButtonClasses.Secondary:
28
+ backgroundColor = '#2CA58D';
29
+ break;
30
+ case ButtonClasses.Success:
31
+ backgroundColor = '#00C853';
32
+ break;
33
+ case ButtonClasses.Danger:
34
+ backgroundColor = '#D32F2F';
35
+ break;
36
+ case ButtonClasses.Warning:
37
+ backgroundColor = '#FFC107';
38
+ break;
39
+ case ButtonClasses.Info:
40
+ backgroundColor = '#3EC9D6';
41
+ break;
42
+ case ButtonClasses.Light:
43
+ backgroundColor = '#EEF2F6';
44
+ textColor = '#00444C'; // Custom text color for Light
45
+ break;
46
+ case ButtonClasses.Dark:
47
+ backgroundColor = '#111936';
48
+ break;
49
+ case ButtonClasses.Link:
50
+ backgroundColor = 'transparent';
51
+ borderColor = '#DDE5E9';
52
+ textColor = '#00444C'; // Custom text color for Link
53
+ break;
54
+ default:
55
+ backgroundColor = '#00444C';
56
+ break;
57
+ }
58
+ const hoverFilter = this.isHovered ? 'brightness(80%)' : 'none'; // Adjusted hover brightness
59
+ const activeFilter = this.isClicked ? 'brightness(60%)' : hoverFilter; // Adjusted active brightness
60
+ return {
61
+ 'margin-top': `${this.marginTop}rem`,
62
+ 'margin-bottom': `${this.marginBottom}rem`,
63
+ 'margin-left': `${this.marginLeft}rem`,
64
+ 'margin-right': `${this.marginRight}rem`,
65
+ 'background-color': backgroundColor,
66
+ 'color': textColor,
67
+ 'border': borderColor ? `1px solid ${borderColor}` : 'none',
68
+ 'transition': 'background-color 0.3s, border-color 0.3s, filter 0.3s',
69
+ 'filter': activeFilter
70
+ };
71
+ }
72
+ onClick() {
73
+ this.buttonClick.emit();
74
+ }
75
+ onMouseEnter() {
76
+ this.isHovered = true;
77
+ }
78
+ onMouseLeave() {
79
+ this.isHovered = false;
80
+ this.isClicked = false;
81
+ }
82
+ onMouseDown() {
83
+ this.isClicked = true;
84
+ }
85
+ onMouseUp() {
86
+ this.isClicked = false;
87
+ }
88
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: BadgeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
89
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: BadgeComponent, selector: "sim-app-badge", inputs: { label: "label", badgeContent: "badgeContent", marginTop: "marginTop", marginBottom: "marginBottom", marginLeft: "marginLeft", marginRight: "marginRight", btnClass: "btnClass" }, outputs: { buttonClick: "buttonClick" }, host: { listeners: { "mouseenter": "onMouseEnter()", "mouseleave": "onMouseLeave()", "mousedown": "onMouseDown()", "mouseup": "onMouseUp()" } }, ngImport: i0, template: `
90
+ <button
91
+ class="notification-button"
92
+ [ngStyle]="getDynamicStyles()"
93
+ (click)="onClick()"
94
+ [class.hovered]="isHovered"
95
+ [class.clicked]="isClicked"
96
+ (mousedown)="onMouseDown()"
97
+ (mouseup)="onMouseUp()"
98
+ (mouseleave)="onMouseLeave()"
99
+ (mouseenter)="onMouseEnter()">
100
+ {{ label }}
101
+ <span class="badge">{{ badgeContent }}</span>
102
+ </button>
103
+ `, isInline: true, styles: [".notification-button{position:relative;display:inline-block;width:155px;height:58px;padding:14px 29px 14px 36px;border-radius:6px;border:none;font-size:16px;font-weight:700;text-align:center;transition:opacity .3s}.badge{position:absolute;width:52px;height:32px;top:-15px;right:-20px;background-color:#dc3545;color:#fff;border-radius:16px;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:14px;font-family:Inter,sans-serif}.notification-button.hovered{opacity:.8}.notification-button.clicked{opacity:.6}\n"], dependencies: [{ kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
104
+ }
105
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: BadgeComponent, decorators: [{
106
+ type: Component,
107
+ args: [{ selector: 'sim-app-badge', template: `
108
+ <button
109
+ class="notification-button"
110
+ [ngStyle]="getDynamicStyles()"
111
+ (click)="onClick()"
112
+ [class.hovered]="isHovered"
113
+ [class.clicked]="isClicked"
114
+ (mousedown)="onMouseDown()"
115
+ (mouseup)="onMouseUp()"
116
+ (mouseleave)="onMouseLeave()"
117
+ (mouseenter)="onMouseEnter()">
118
+ {{ label }}
119
+ <span class="badge">{{ badgeContent }}</span>
120
+ </button>
121
+ `, changeDetection: ChangeDetectionStrategy.OnPush, styles: [".notification-button{position:relative;display:inline-block;width:155px;height:58px;padding:14px 29px 14px 36px;border-radius:6px;border:none;font-size:16px;font-weight:700;text-align:center;transition:opacity .3s}.badge{position:absolute;width:52px;height:32px;top:-15px;right:-20px;background-color:#dc3545;color:#fff;border-radius:16px;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:14px;font-family:Inter,sans-serif}.notification-button.hovered{opacity:.8}.notification-button.clicked{opacity:.6}\n"] }]
122
+ }], propDecorators: { label: [{
123
+ type: Input
124
+ }], badgeContent: [{
125
+ type: Input
126
+ }], marginTop: [{
127
+ type: Input
128
+ }], marginBottom: [{
129
+ type: Input
130
+ }], marginLeft: [{
131
+ type: Input
132
+ }], marginRight: [{
133
+ type: Input
134
+ }], btnClass: [{
135
+ type: Input
136
+ }], buttonClick: [{
137
+ type: Output
138
+ }], onMouseEnter: [{
139
+ type: HostListener,
140
+ args: ['mouseenter']
141
+ }], onMouseLeave: [{
142
+ type: HostListener,
143
+ args: ['mouseleave']
144
+ }], onMouseDown: [{
145
+ type: HostListener,
146
+ args: ['mousedown']
147
+ }], onMouseUp: [{
148
+ type: HostListener,
149
+ args: ['mouseup']
150
+ }] } });
151
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFkZ2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbGliLXBvcnRhbC1hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9iYWRnZS9iYWRnZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUcsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDhCQUE4QixDQUFDOzs7QUEwRDdELE1BQU0sT0FBTyxjQUFjO0lBeEQzQjtRQXlEVyxVQUFLLEdBQVcsVUFBVSxDQUFDO1FBQzNCLGlCQUFZLEdBQVcsS0FBSyxDQUFDO1FBQzdCLGNBQVMsR0FBVyxDQUFDLENBQUM7UUFDdEIsaUJBQVksR0FBVyxDQUFDLENBQUM7UUFDekIsZUFBVSxHQUFXLENBQUMsQ0FBQztRQUN2QixnQkFBVyxHQUFXLENBQUMsQ0FBQztRQUN4QixhQUFRLEdBQWtCLGFBQWEsQ0FBQyxPQUFPLENBQUM7UUFDL0MsZ0JBQVcsR0FBdUIsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUVyRSxjQUFTLEdBQVksS0FBSyxDQUFDO1FBQzNCLGNBQVMsR0FBWSxLQUFLLENBQUM7UUFDM0IsYUFBUSxHQUFZLEtBQUssQ0FBQztLQW1GM0I7SUFqRkMsZ0JBQWdCO1FBQ2QsSUFBSSxlQUFlLEdBQUcsRUFBRSxDQUFDO1FBQ3pCLElBQUksU0FBUyxHQUFHLE1BQU0sQ0FBQyxDQUFDLHFCQUFxQjtRQUM3QyxJQUFJLFdBQVcsR0FBRyxFQUFFLENBQUM7UUFFckIsUUFBUSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ3JCLEtBQUssYUFBYSxDQUFDLE9BQU87Z0JBQ3hCLGVBQWUsR0FBRyxTQUFTLENBQUM7Z0JBQzVCLE1BQU07WUFDUixLQUFLLGFBQWEsQ0FB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S0FBSztnQkFDSSxXQUFXO3NCQUFwQixNQUFNO2dCQW9FUCxZQUFZO3NCQURYLFlBQVk7dUJBQUMsWUFBWTtnQkFNMUIsWUFBWTtzQkFEWCxZQUFZO3VCQUFDLFlBQVk7Z0JBTzFCLFdBQVc7c0JBRFYsWUFBWTt1QkFBQyxXQUFXO2dCQU16QixTQUFTO3NCQURSLFlBQVk7dUJBQUMsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSG9zdExpc3RlbmVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCdXR0b25DbGFzc2VzIH0gZnJvbSAnLi4vLi4vZW51bS9CdXR0b25DbGFzc2VzRW51bSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NpbS1hcHAtYmFkZ2UnLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxidXR0b25cbiAgICAgIGNsYXNzPVwibm90aWZpY2F0aW9uLWJ1dHRvblwiXG4gICAgICBbbmdTdHlsZV09XCJnZXREeW5hbWljU3R5bGVzKClcIlxuICAgICAgKGNsaWNrKT1cIm9uQ2xpY2soKVwiXG4gICAgICBbY2xhc3MuaG92ZXJlZF09XCJpc0hvdmVyZWRcIlxuICAgICAgW2NsYXNzLmNsaWNrZWRdPVwiaXNDbGlja2VkXCJcbiAgICAgIChtb3VzZWRvd24pPVwib25Nb3VzZURvd24oKVwiXG4gICAgICAobW91c2V1cCk9XCJvbk1vdXNlVXAoKVwiXG4gICAgICAobW91c2VsZWF2ZSk9XCJvbk1vdXNlTGVhdmUoKVwiXG4gICAgICAobW91c2VlbnRlcik9XCJvbk1vdXNlRW50ZXIoKVwiPlxuICAgICAge3sgbGFiZWwgfX1cbiAgICAgIDxzcGFuIGNsYXNzPVwiYmFkZ2VcIj57eyBiYWRnZUNvbnRlbnQgfX08L3NwYW4+XG4gICAgPC9idXR0b24+XG4gIGAsXG4gIHN0eWxlczogW2BcbiAgICAubm90aWZpY2F0aW9uLWJ1dHRvbiB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICB3aWR0aDogMTU1cHg7XG4gICAgICBoZWlnaHQ6IDU4cHg7XG4gICAgICBwYWRkaW5nOiAxNHB4IDI5cHggMTRweCAzNnB4O1xuICAgICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3M7XG4gICAgfVxuICAgIC5iYWRnZSB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB3aWR0aDogNTJweDsgLyogTGFyZ3VyYSBmaXhhICovXG4gICAgICBoZWlnaHQ6IDMycHg7IC8qIEFsdHVyYSBmaXhhICovXG4gICAgICB0b3A6IC0xNXB4O1xuICAgICAgcmlnaHQ6IC0yMHB4O1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2RjMzU0NTtcbiAgICAgIGNvbG9yOiAjRkZGRkZGO1xuICAgICAgYm9yZGVyLXJhZGl1czogMTZweDsgLyogQXJyZWRvbmRhbWVudG8gZGFzIGJvcmRhcyAqL1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgZm9udC1mYW1pbHk6ICdJbnRlcicsIHNhbnMtc2VyaWY7XG4gICAgfVxuICAgIC5ub3RpZmljYXRpb24tYnV0dG9uLmhvdmVyZWQge1xuICAgICAgb3BhY2l0eTogMC44O1xuICAgIH1cbiAgICAubm90aWZpY2F0aW9uLWJ1dHRvbi5jbGlja2VkIHtcbiAgICAgIG9wYWNpdHk6IDAuNjtcbiAgICB9XG4gIGBdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBCYWRnZUNvbXBvbmVudCB7XG4gIEBJbnB1dCgpIGxhYmVsOiBzdHJpbmcgPSAnTWVuc2FnZW0nO1xuICBASW5wdXQoKSBiYWRnZUNvbnRlbnQ6IHN0cmluZyA9ICcrNDUnO1xuICBASW5wdXQoKSBtYXJnaW5Ub3A6IG51bWJlciA9IDA7XG4gIEBJbnB1dCgpIG1hcmdpbkJvdHRvbTogbnVtYmVyID0gMDtcbiAgQElucHV0KCkgbWFyZ2luTGVmdDogbnVtYmVyID0gMDtcbiAgQElucHV0KCkgbWFyZ2luUmlnaHQ6IG51bWJlciA9IDA7XG4gIEBJbnB1dCgpIGJ0bkNsYXNzOiBCdXR0b25DbGFzc2VzID0gQnV0dG9uQ2xhc3Nlcy5QcmltYXJ5O1xuICBAT3V0cHV0KCkgYnV0dG9uQ2xpY2s6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICBpc0hvdmVyZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgaXNDbGlja2VkOiBib29sZWFuID0gZmFsc2U7XG4gIGlzQWN0aXZlOiBib29sZWFuID0gZmFsc2U7XG5cbiAgZ2V0RHluYW1pY1N0eWxlcygpIHtcbiAgICBsZXQgYmFja2dyb3VuZENvbG9yID0gJyc7XG4gICAgbGV0IHRleHRDb2xvciA9ICcjZmZmJzsgLy8gRGVmYXVsdCB0ZXh0IGNvbG9yXG4gICAgbGV0IGJvcmRlckNvbG9yID0gJyc7XG5cbiAgICBzd2l0Y2ggKHRoaXMuYnRuQ2xhc3MpIHtcbiAgICAgIGNhc2UgQnV0dG9uQ2xhc3Nlcy5QcmltYXJ5OlxuICAgICAgICBiYWNrZ3JvdW5kQ29sb3IgPSAnIzAwNDQ0Qyc7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBCdXR0b25DbGFzc2VzLlNlY29uZGFyeTpcbiAgICAgICAgYmFja2dyb3VuZENvbG9yID0gJyMyQ0E1OEQnO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgQnV0dG9uQ2xhc3Nlcy5TdWNjZXNzOlxuICAgICAgICBiYWNrZ3JvdW5kQ29sb3IgPSAnIzAwQzg1Myc7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBCdXR0b25DbGFzc2VzLkRhbmdlcjpcbiAgICAgICAgYmFja2dyb3VuZENvbG9yID0gJyNEMzJGMkYnO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgQnV0dG9uQ2xhc3Nlcy5XYXJuaW5nOlxuICAgICAgICBiYWNrZ3JvdW5kQ29sb3IgPSAnI0ZGQzEwNyc7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBCdXR0b25DbGFzc2VzLkluZm86XG4gICAgICAgIGJhY2tncm91bmRDb2xvciA9ICcjM0VDOUQ2JztcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIEJ1dHRvbkNsYXNzZXMuTGlnaHQ6XG4gICAgICAgIGJhY2tncm91bmRDb2xvciA9ICcjRUVGMkY2JztcbiAgICAgICAgdGV4dENvbG9yID0gJyMwMDQ0NEMnOyAvLyBDdXN0b20gdGV4dCBjb2xvciBmb3IgTGlnaHRcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIEJ1dHRvbkNsYXNzZXMuRGFyazpcbiAgICAgICAgYmFja2dyb3VuZENvbG9yID0gJyMxMTE5MzYnO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgQnV0dG9uQ2xhc3Nlcy5MaW5rOlxuICAgICAgICBiYWNrZ3JvdW5kQ29sb3IgPSAndHJhbnNwYXJlbnQnO1xuICAgICAgICBib3JkZXJDb2xvciA9ICcjRERFNUU5JztcbiAgICAgICAgdGV4dENvbG9yID0gJyMwMDQ0NEMnOyAvLyBDdXN0b20gdGV4dCBjb2xvciBmb3IgTGlua1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGJhY2tncm91bmRDb2xvciA9ICcjMDA0NDRDJztcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgY29uc3QgaG92ZXJGaWx0ZXIgPSB0aGlzLmlzSG92ZXJlZCA/ICdicmlnaHRuZXNzKDgwJSknIDogJ25vbmUnOyAvLyBBZGp1c3RlZCBob3ZlciBicmlnaHRuZXNzXG4gICAgY29uc3QgYWN0aXZlRmlsdGVyID0gdGhpcy5pc0NsaWNrZWQgPyAnYnJpZ2h0bmVzcyg2MCUpJyA6IGhvdmVyRmlsdGVyOyAvLyBBZGp1c3RlZCBhY3RpdmUgYnJpZ2h0bmVzc1xuXG4gICAgcmV0dXJuIHtcbiAgICAgICdtYXJnaW4tdG9wJzogYCR7dGhpcy5tYXJnaW5Ub3B9cmVtYCxcbiAgICAgICdtYXJnaW4tYm90dG9tJzogYCR7dGhpcy5tYXJnaW5Cb3R0b219cmVtYCxcbiAgICAgICdtYXJnaW4tbGVmdCc6IGAke3RoaXMubWFyZ2luTGVmdH1yZW1gLFxuICAgICAgJ21hcmdpbi1yaWdodCc6IGAke3RoaXMubWFyZ2luUmlnaHR9cmVtYCxcbiAgICAgICdiYWNrZ3JvdW5kLWNvbG9yJzogYmFja2dyb3VuZENvbG9yLFxuICAgICAgJ2NvbG9yJzogdGV4dENvbG9yLFxuICAgICAgJ2JvcmRlcic6IGJvcmRlckNvbG9yID8gYDFweCBzb2xpZCAke2JvcmRlckNvbG9yfWAgOiAnbm9uZScsXG4gICAgICAndHJhbnNpdGlvbic6ICdiYWNrZ3JvdW5kLWNvbG9yIDAuM3MsIGJvcmRlci1jb2xvciAwLjNzLCBmaWx0ZXIgMC4zcycsXG4gICAgICAnZmlsdGVyJzogYWN0aXZlRmlsdGVyXG4gICAgfTtcbiAgfVxuXG4gIG9uQ2xpY2soKSB7XG4gICAgdGhpcy5idXR0b25DbGljay5lbWl0KCk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdtb3VzZWVudGVyJylcbiAgb25Nb3VzZUVudGVyKCkge1xuICAgIHRoaXMuaXNIb3ZlcmVkID0gdHJ1ZTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ21vdXNlbGVhdmUnKVxuICBvbk1vdXNlTGVhdmUoKSB7XG4gICAgdGhpcy5pc0hvdmVyZWQgPSBmYWxzZTtcbiAgICB0aGlzLmlzQ2xpY2tlZCA9IGZhbHNlO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignbW91c2Vkb3duJylcbiAgb25Nb3VzZURvd24oKSB7XG4gICAgdGhpcy5pc0NsaWNrZWQgPSB0cnVlO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignbW91c2V1cCcpXG4gIG9uTW91c2VVcCgpIHtcbiAgICB0aGlzLmlzQ2xpY2tlZCA9IGZhbHNlO1xuICB9XG59XG4iXX0=