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
@@ -0,0 +1,1887 @@
1
+ import * as i0 from '@angular/core';
2
+ import { forwardRef, Component, ChangeDetectionStrategy, Input, EventEmitter, Output, HostListener, ViewChild, NgModule } from '@angular/core';
3
+ import * as i2 from '@angular/forms';
4
+ import { NG_VALUE_ACCESSOR, FormsModule, ReactiveFormsModule } from '@angular/forms';
5
+ import Brazilian from 'flatpickr/dist/l10n/pt.js';
6
+ import * as i1 from '@angular/common';
7
+ import { CommonModule } from '@angular/common';
8
+ import * as i3 from 'angularx-flatpickr';
9
+ import { FlatpickrModule } from 'angularx-flatpickr';
10
+ import hljs from 'highlight.js';
11
+ import { of } from 'rxjs';
12
+ import * as i3$1 from '@ng-select/ng-select';
13
+ import { NgSelectModule } from '@ng-select/ng-select';
14
+ import * as i3$2 from 'ngx-pagination';
15
+ import { NgxPaginationModule } from 'ngx-pagination';
16
+
17
+ class CalendarComponent {
18
+ constructor() {
19
+ this.inputId = 'startDate';
20
+ this.label = 'Event Start Date';
21
+ this.placeholder = 'Not set';
22
+ this.marginTop = 0;
23
+ this.marginBottom = 0;
24
+ this.marginLeft = 0;
25
+ this.marginRight = 0;
26
+ this.altInput = true;
27
+ this.convertModelValue = true;
28
+ this.enableTime = true;
29
+ this.dateFormat = 'd/m/Y H:i';
30
+ this.altFormat = 'd/m/Y';
31
+ this.locale = Brazilian.pt; // Define o idioma como brasileiro por padrão
32
+ this.onChange = (_) => { };
33
+ this.onTouched = () => { };
34
+ }
35
+ ngOnInit() {
36
+ // Any necessary initialization
37
+ }
38
+ writeValue(value) {
39
+ this.value = value;
40
+ }
41
+ registerOnChange(fn) {
42
+ this.onChange = fn;
43
+ }
44
+ registerOnTouched(fn) {
45
+ this.onTouched = fn;
46
+ }
47
+ onNgModelChange(event) {
48
+ this.onChange(event);
49
+ this.onTouched();
50
+ }
51
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CalendarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
52
+ 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: [
53
+ {
54
+ provide: NG_VALUE_ACCESSOR,
55
+ useExisting: forwardRef(() => CalendarComponent),
56
+ multi: true
57
+ }
58
+ ], ngImport: i0, template: `
59
+ <div class="form-group" [ngStyle]="{
60
+ 'margin-top': marginTop + 'rem',
61
+ 'margin-bottom': marginBottom + 'rem',
62
+ 'margin-left': marginLeft + 'rem',
63
+ 'margin-right': marginRight + 'rem'
64
+ }">
65
+ <label [for]="inputId" class="form-label">{{ label }}</label>
66
+ <input
67
+ [id]="inputId"
68
+ class="form-control"
69
+ type="text"
70
+ mwlFlatpickr
71
+ [(ngModel)]="value"
72
+ (ngModelChange)="onNgModelChange($event)"
73
+ [altInput]="altInput"
74
+ [convertModelValue]="convertModelValue"
75
+ [enableTime]="enableTime"
76
+ [dateFormat]="dateFormat"
77
+ [altFormat]="altFormat"
78
+ [placeholder]="placeholder"
79
+ [locale]="locale"
80
+ />
81
+ </div>
82
+ `, 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 }); }
83
+ }
84
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CalendarComponent, decorators: [{
85
+ type: Component,
86
+ args: [{ selector: 'sim-advanced-calendar', template: `
87
+ <div class="form-group" [ngStyle]="{
88
+ 'margin-top': marginTop + 'rem',
89
+ 'margin-bottom': marginBottom + 'rem',
90
+ 'margin-left': marginLeft + 'rem',
91
+ 'margin-right': marginRight + 'rem'
92
+ }">
93
+ <label [for]="inputId" class="form-label">{{ label }}</label>
94
+ <input
95
+ [id]="inputId"
96
+ class="form-control"
97
+ type="text"
98
+ mwlFlatpickr
99
+ [(ngModel)]="value"
100
+ (ngModelChange)="onNgModelChange($event)"
101
+ [altInput]="altInput"
102
+ [convertModelValue]="convertModelValue"
103
+ [enableTime]="enableTime"
104
+ [dateFormat]="dateFormat"
105
+ [altFormat]="altFormat"
106
+ [placeholder]="placeholder"
107
+ [locale]="locale"
108
+ />
109
+ </div>
110
+ `, providers: [
111
+ {
112
+ provide: NG_VALUE_ACCESSOR,
113
+ useExisting: forwardRef(() => CalendarComponent),
114
+ multi: true
115
+ }
116
+ ], changeDetection: ChangeDetectionStrategy.OnPush, styles: [".form-group{font-family:Arial,sans-serif;font-size:1rem}.form-label{font-weight:700}\n"] }]
117
+ }], propDecorators: { inputId: [{
118
+ type: Input
119
+ }], label: [{
120
+ type: Input
121
+ }], placeholder: [{
122
+ type: Input
123
+ }], marginTop: [{
124
+ type: Input
125
+ }], marginBottom: [{
126
+ type: Input
127
+ }], marginLeft: [{
128
+ type: Input
129
+ }], marginRight: [{
130
+ type: Input
131
+ }], altInput: [{
132
+ type: Input
133
+ }], convertModelValue: [{
134
+ type: Input
135
+ }], enableTime: [{
136
+ type: Input
137
+ }], dateFormat: [{
138
+ type: Input
139
+ }], altFormat: [{
140
+ type: Input
141
+ }], locale: [{
142
+ type: Input
143
+ }] } });
144
+
145
+ class DatePickerComponent {
146
+ constructor() {
147
+ this.inputId = '';
148
+ this.label = '';
149
+ this.placeholder = '';
150
+ this.marginTop = 0;
151
+ this.marginBottom = 0;
152
+ this.marginLeft = 0;
153
+ this.marginRight = 0;
154
+ this.ngModelChange = new EventEmitter();
155
+ // ControlValueAccessor interface methods
156
+ this.onChange = () => { };
157
+ this.onTouched = () => { };
158
+ }
159
+ get value() {
160
+ return this.innerValue;
161
+ }
162
+ set value(val) {
163
+ this.innerValue = val;
164
+ this.onChange(val);
165
+ this.onTouched();
166
+ }
167
+ onNgModelChange(event) {
168
+ this.value = event;
169
+ this.ngModelChange.emit(event);
170
+ }
171
+ writeValue(value) {
172
+ this.value = value;
173
+ }
174
+ registerOnChange(fn) {
175
+ this.onChange = fn;
176
+ }
177
+ registerOnTouched(fn) {
178
+ this.onTouched = fn;
179
+ }
180
+ setDisabledState(isDisabled) {
181
+ // Logic for disabling the component
182
+ }
183
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DatePickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
184
+ 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: [
185
+ {
186
+ provide: NG_VALUE_ACCESSOR,
187
+ useExisting: forwardRef(() => DatePickerComponent),
188
+ multi: true
189
+ }
190
+ ], ngImport: i0, template: `
191
+ <div class="form-group" [ngStyle]="{
192
+ 'margin-top': marginTop + 'rem',
193
+ 'margin-bottom': marginBottom + 'rem',
194
+ 'margin-left': marginLeft + 'rem',
195
+ 'margin-right': marginRight + 'rem'
196
+ }">
197
+ <label [for]="inputId" class="form-label">{{ label }}</label>
198
+ <input
199
+ [id]="inputId"
200
+ class="form-control"
201
+ type="date"
202
+ [(ngModel)]="value"
203
+ (ngModelChange)="onNgModelChange($event)"
204
+ [placeholder]="placeholder"
205
+ />
206
+ </div>
207
+ `, 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"] }] }); }
208
+ }
209
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DatePickerComponent, decorators: [{
210
+ type: Component,
211
+ args: [{ selector: 'sim-date-picker', template: `
212
+ <div class="form-group" [ngStyle]="{
213
+ 'margin-top': marginTop + 'rem',
214
+ 'margin-bottom': marginBottom + 'rem',
215
+ 'margin-left': marginLeft + 'rem',
216
+ 'margin-right': marginRight + 'rem'
217
+ }">
218
+ <label [for]="inputId" class="form-label">{{ label }}</label>
219
+ <input
220
+ [id]="inputId"
221
+ class="form-control"
222
+ type="date"
223
+ [(ngModel)]="value"
224
+ (ngModelChange)="onNgModelChange($event)"
225
+ [placeholder]="placeholder"
226
+ />
227
+ </div>
228
+ `, providers: [
229
+ {
230
+ provide: NG_VALUE_ACCESSOR,
231
+ useExisting: forwardRef(() => DatePickerComponent),
232
+ multi: true
233
+ }
234
+ ], styles: [".form-label{font-weight:700}\n"] }]
235
+ }], propDecorators: { inputId: [{
236
+ type: Input
237
+ }], label: [{
238
+ type: Input
239
+ }], placeholder: [{
240
+ type: Input
241
+ }], marginTop: [{
242
+ type: Input
243
+ }], marginBottom: [{
244
+ type: Input
245
+ }], marginLeft: [{
246
+ type: Input
247
+ }], marginRight: [{
248
+ type: Input
249
+ }], ngModelChange: [{
250
+ type: Output
251
+ }] } });
252
+
253
+ class DateTimePickerComponent {
254
+ constructor() {
255
+ this.inputId = '';
256
+ this.label = '';
257
+ this.placeholder = '';
258
+ this.marginTop = 0;
259
+ this.marginBottom = 0;
260
+ this.marginLeft = 0;
261
+ this.marginRight = 0;
262
+ this.ngModelChange = new EventEmitter();
263
+ // ControlValueAccessor interface methods
264
+ this.onChange = () => { };
265
+ this.onTouched = () => { };
266
+ }
267
+ get value() {
268
+ return this._value;
269
+ }
270
+ set value(val) {
271
+ this._value = val;
272
+ this.onChange(val);
273
+ this.onTouched();
274
+ }
275
+ onNgModelChange(event) {
276
+ this.value = event;
277
+ this.ngModelChange.emit(event);
278
+ }
279
+ writeValue(value) {
280
+ this._value = value;
281
+ }
282
+ registerOnChange(fn) {
283
+ this.onChange = fn;
284
+ }
285
+ registerOnTouched(fn) {
286
+ this.onTouched = fn;
287
+ }
288
+ setDisabledState(isDisabled) {
289
+ // Logic for disabling the component
290
+ }
291
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DateTimePickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
292
+ 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: [
293
+ {
294
+ provide: NG_VALUE_ACCESSOR,
295
+ useExisting: forwardRef(() => DateTimePickerComponent),
296
+ multi: true
297
+ }
298
+ ], ngImport: i0, template: `
299
+ <div class="form-group" [ngStyle]="{
300
+ 'margin-top': marginTop + 'rem',
301
+ 'margin-bottom': marginBottom + 'rem',
302
+ 'margin-left': marginLeft + 'rem',
303
+ 'margin-right': marginRight + 'rem'
304
+ }">
305
+ <label [for]="inputId" class="form-label">{{ label }}</label>
306
+ <input
307
+ [id]="inputId"
308
+ class="form-control"
309
+ type="datetime-local"
310
+ [(ngModel)]="value"
311
+ (ngModelChange)="onNgModelChange($event)"
312
+ [placeholder]="placeholder"
313
+ />
314
+ </div>
315
+ `, 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 }); }
316
+ }
317
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DateTimePickerComponent, decorators: [{
318
+ type: Component,
319
+ args: [{ selector: 'sim-date-time-picker', template: `
320
+ <div class="form-group" [ngStyle]="{
321
+ 'margin-top': marginTop + 'rem',
322
+ 'margin-bottom': marginBottom + 'rem',
323
+ 'margin-left': marginLeft + 'rem',
324
+ 'margin-right': marginRight + 'rem'
325
+ }">
326
+ <label [for]="inputId" class="form-label">{{ label }}</label>
327
+ <input
328
+ [id]="inputId"
329
+ class="form-control"
330
+ type="datetime-local"
331
+ [(ngModel)]="value"
332
+ (ngModelChange)="onNgModelChange($event)"
333
+ [placeholder]="placeholder"
334
+ />
335
+ </div>
336
+ `, providers: [
337
+ {
338
+ provide: NG_VALUE_ACCESSOR,
339
+ useExisting: forwardRef(() => DateTimePickerComponent),
340
+ multi: true
341
+ }
342
+ ], 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"] }]
343
+ }], propDecorators: { inputId: [{
344
+ type: Input
345
+ }], label: [{
346
+ type: Input
347
+ }], placeholder: [{
348
+ type: Input
349
+ }], marginTop: [{
350
+ type: Input
351
+ }], marginBottom: [{
352
+ type: Input
353
+ }], marginLeft: [{
354
+ type: Input
355
+ }], marginRight: [{
356
+ type: Input
357
+ }], ngModelChange: [{
358
+ type: Output
359
+ }] } });
360
+
361
+ var ButtonClasses;
362
+ (function (ButtonClasses) {
363
+ ButtonClasses["Primary"] = "btn-primary";
364
+ ButtonClasses["Secondary"] = "btn-secondary";
365
+ ButtonClasses["Success"] = "btn-success";
366
+ ButtonClasses["Danger"] = "btn-danger";
367
+ ButtonClasses["Warning"] = "btn-warning";
368
+ ButtonClasses["Info"] = "btn-info";
369
+ ButtonClasses["Light"] = "btn-light";
370
+ ButtonClasses["Dark"] = "btn-dark";
371
+ ButtonClasses["Link"] = "btn-link";
372
+ })(ButtonClasses || (ButtonClasses = {}));
373
+
374
+ class BadgeComponent {
375
+ constructor() {
376
+ this.label = 'Mensagem';
377
+ this.badgeContent = '+45';
378
+ this.marginTop = 0;
379
+ this.marginBottom = 0;
380
+ this.marginLeft = 0;
381
+ this.marginRight = 0;
382
+ this.btnClass = ButtonClasses.Primary;
383
+ this.buttonClick = new EventEmitter();
384
+ this.isHovered = false;
385
+ this.isClicked = false;
386
+ this.isActive = false;
387
+ }
388
+ getDynamicStyles() {
389
+ let backgroundColor = '';
390
+ let textColor = '#fff'; // Default text color
391
+ let borderColor = '';
392
+ switch (this.btnClass) {
393
+ case ButtonClasses.Primary:
394
+ backgroundColor = '#00444C';
395
+ break;
396
+ case ButtonClasses.Secondary:
397
+ backgroundColor = '#2CA58D';
398
+ break;
399
+ case ButtonClasses.Success:
400
+ backgroundColor = '#00C853';
401
+ break;
402
+ case ButtonClasses.Danger:
403
+ backgroundColor = '#D32F2F';
404
+ break;
405
+ case ButtonClasses.Warning:
406
+ backgroundColor = '#FFC107';
407
+ break;
408
+ case ButtonClasses.Info:
409
+ backgroundColor = '#3EC9D6';
410
+ break;
411
+ case ButtonClasses.Light:
412
+ backgroundColor = '#EEF2F6';
413
+ textColor = '#00444C'; // Custom text color for Light
414
+ break;
415
+ case ButtonClasses.Dark:
416
+ backgroundColor = '#111936';
417
+ break;
418
+ case ButtonClasses.Link:
419
+ backgroundColor = 'transparent';
420
+ borderColor = '#DDE5E9';
421
+ textColor = '#00444C'; // Custom text color for Link
422
+ break;
423
+ default:
424
+ backgroundColor = '#00444C';
425
+ break;
426
+ }
427
+ const hoverFilter = this.isHovered ? 'brightness(80%)' : 'none'; // Adjusted hover brightness
428
+ const activeFilter = this.isClicked ? 'brightness(60%)' : hoverFilter; // Adjusted active brightness
429
+ return {
430
+ 'margin-top': `${this.marginTop}rem`,
431
+ 'margin-bottom': `${this.marginBottom}rem`,
432
+ 'margin-left': `${this.marginLeft}rem`,
433
+ 'margin-right': `${this.marginRight}rem`,
434
+ 'background-color': backgroundColor,
435
+ 'color': textColor,
436
+ 'border': borderColor ? `1px solid ${borderColor}` : 'none',
437
+ 'transition': 'background-color 0.3s, border-color 0.3s, filter 0.3s',
438
+ 'filter': activeFilter
439
+ };
440
+ }
441
+ onClick() {
442
+ this.buttonClick.emit();
443
+ }
444
+ onMouseEnter() {
445
+ this.isHovered = true;
446
+ }
447
+ onMouseLeave() {
448
+ this.isHovered = false;
449
+ this.isClicked = false;
450
+ }
451
+ onMouseDown() {
452
+ this.isClicked = true;
453
+ }
454
+ onMouseUp() {
455
+ this.isClicked = false;
456
+ }
457
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: BadgeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
458
+ 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: `
459
+ <button
460
+ class="notification-button"
461
+ [ngStyle]="getDynamicStyles()"
462
+ (click)="onClick()"
463
+ [class.hovered]="isHovered"
464
+ [class.clicked]="isClicked"
465
+ (mousedown)="onMouseDown()"
466
+ (mouseup)="onMouseUp()"
467
+ (mouseleave)="onMouseLeave()"
468
+ (mouseenter)="onMouseEnter()">
469
+ {{ label }}
470
+ <span class="badge">{{ badgeContent }}</span>
471
+ </button>
472
+ `, 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 }); }
473
+ }
474
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: BadgeComponent, decorators: [{
475
+ type: Component,
476
+ args: [{ selector: 'sim-app-badge', template: `
477
+ <button
478
+ class="notification-button"
479
+ [ngStyle]="getDynamicStyles()"
480
+ (click)="onClick()"
481
+ [class.hovered]="isHovered"
482
+ [class.clicked]="isClicked"
483
+ (mousedown)="onMouseDown()"
484
+ (mouseup)="onMouseUp()"
485
+ (mouseleave)="onMouseLeave()"
486
+ (mouseenter)="onMouseEnter()">
487
+ {{ label }}
488
+ <span class="badge">{{ badgeContent }}</span>
489
+ </button>
490
+ `, 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"] }]
491
+ }], propDecorators: { label: [{
492
+ type: Input
493
+ }], badgeContent: [{
494
+ type: Input
495
+ }], marginTop: [{
496
+ type: Input
497
+ }], marginBottom: [{
498
+ type: Input
499
+ }], marginLeft: [{
500
+ type: Input
501
+ }], marginRight: [{
502
+ type: Input
503
+ }], btnClass: [{
504
+ type: Input
505
+ }], buttonClick: [{
506
+ type: Output
507
+ }], onMouseEnter: [{
508
+ type: HostListener,
509
+ args: ['mouseenter']
510
+ }], onMouseLeave: [{
511
+ type: HostListener,
512
+ args: ['mouseleave']
513
+ }], onMouseDown: [{
514
+ type: HostListener,
515
+ args: ['mousedown']
516
+ }], onMouseUp: [{
517
+ type: HostListener,
518
+ args: ['mouseup']
519
+ }] } });
520
+
521
+ class ButtonComponent {
522
+ constructor() {
523
+ this.type = 'button';
524
+ this.label = 'Submit';
525
+ this.btnClass = ButtonClasses.Primary;
526
+ this.fontSize = '1rem';
527
+ this.disabled = false;
528
+ this.autofocus = false;
529
+ this.form = null;
530
+ this.formaction = null;
531
+ this.formenctype = null;
532
+ this.formmethod = null;
533
+ this.formnovalidate = false;
534
+ this.formtarget = null;
535
+ this.name = null;
536
+ this.value = null;
537
+ this.marginTop = 0;
538
+ this.marginBottom = 0;
539
+ this.marginLeft = 0;
540
+ this.marginRight = 0;
541
+ this.clickEvent = new EventEmitter();
542
+ this.isHovered = false;
543
+ this.isActive = false;
544
+ }
545
+ onMouseEnter() {
546
+ this.isHovered = true;
547
+ }
548
+ onMouseLeave() {
549
+ this.isHovered = false;
550
+ this.isActive = false;
551
+ }
552
+ onMouseDown() {
553
+ this.isActive = true;
554
+ }
555
+ onMouseUp() {
556
+ this.isActive = false;
557
+ }
558
+ onClick(event) {
559
+ this.clickEvent.emit(event);
560
+ }
561
+ getDynamicStyles() {
562
+ let backgroundColor = '';
563
+ let textColor = '#fff'; // Default text color
564
+ let borderColor = '';
565
+ switch (this.btnClass) {
566
+ case ButtonClasses.Primary:
567
+ backgroundColor = '#00444C';
568
+ break;
569
+ case ButtonClasses.Secondary:
570
+ backgroundColor = '#2CA58D';
571
+ break;
572
+ case ButtonClasses.Success:
573
+ backgroundColor = '#00C853';
574
+ break;
575
+ case ButtonClasses.Danger:
576
+ backgroundColor = '#D32F2F';
577
+ break;
578
+ case ButtonClasses.Warning:
579
+ backgroundColor = '#FFC107';
580
+ break;
581
+ case ButtonClasses.Info:
582
+ backgroundColor = '#3EC9D6';
583
+ break;
584
+ case ButtonClasses.Light:
585
+ backgroundColor = '#EEF2F6';
586
+ textColor = '#00444C'; // Custom text color for Light
587
+ break;
588
+ case ButtonClasses.Dark:
589
+ backgroundColor = '#111936';
590
+ break;
591
+ case ButtonClasses.Link:
592
+ backgroundColor = 'transparent';
593
+ borderColor = '#DDE5E9';
594
+ textColor = '#00444C'; // Custom text color for Link
595
+ break;
596
+ default:
597
+ backgroundColor = '#00444C';
598
+ break;
599
+ }
600
+ const hoverFilter = this.isHovered ? 'brightness(80%)' : 'none'; // Adjusted hover brightness
601
+ const activeFilter = this.isActive ? 'brightness(60%)' : hoverFilter; // Adjusted active brightness
602
+ return {
603
+ 'font-size': this.fontSize,
604
+ 'margin-top': `${this.marginTop}rem`,
605
+ 'margin-bottom': `${this.marginBottom}rem`,
606
+ 'margin-left': `${this.marginLeft}rem`,
607
+ 'margin-right': `${this.marginRight}rem`,
608
+ 'background-color': backgroundColor,
609
+ 'color': textColor,
610
+ 'border': borderColor ? `1px solid ${borderColor}` : 'none',
611
+ 'transition': 'background-color 0.3s, border-color 0.3s, filter 0.3s',
612
+ 'filter': activeFilter
613
+ };
614
+ }
615
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
616
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ButtonComponent, selector: "sim-app-button", inputs: { type: "type", label: "label", btnClass: "btnClass", fontSize: "fontSize", disabled: "disabled", autofocus: "autofocus", form: "form", formaction: "formaction", formenctype: "formenctype", formmethod: "formmethod", formnovalidate: "formnovalidate", formtarget: "formtarget", name: "name", value: "value", marginTop: "marginTop", marginBottom: "marginBottom", marginLeft: "marginLeft", marginRight: "marginRight" }, outputs: { clickEvent: "clickEvent" }, host: { listeners: { "mouseenter": "onMouseEnter()", "mouseleave": "onMouseLeave()", "mousedown": "onMouseDown()", "mouseup": "onMouseUp()" } }, ngImport: i0, template: `
617
+ <button [type]="type"
618
+ class="btn"
619
+ [ngClass]="btnClass"
620
+ [ngStyle]="getDynamicStyles()"
621
+ (click)="onClick($event)"
622
+ [disabled]="disabled"
623
+ [attr.autofocus]="autofocus ? true : null"
624
+ [attr.form]="form"
625
+ [attr.formaction]="formaction"
626
+ [attr.formenctype]="formenctype"
627
+ [attr.formmethod]="formmethod"
628
+ [attr.formnovalidate]="formnovalidate"
629
+ [attr.formtarget]="formtarget"
630
+ [attr.name]="name"
631
+ [attr.value]="value">
632
+ {{ label }}
633
+ </button>
634
+ `, isInline: true, styles: [".btn{padding:.5rem 1rem;border-radius:.25rem;transition:background-color .3s,border-color .3s,filter .3s;font-family:Inter,sans-serif;font-size:16px;font-weight:600;line-height:24px;letter-spacing:.005em;text-align:left}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
635
+ }
636
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ButtonComponent, decorators: [{
637
+ type: Component,
638
+ args: [{ selector: 'sim-app-button', template: `
639
+ <button [type]="type"
640
+ class="btn"
641
+ [ngClass]="btnClass"
642
+ [ngStyle]="getDynamicStyles()"
643
+ (click)="onClick($event)"
644
+ [disabled]="disabled"
645
+ [attr.autofocus]="autofocus ? true : null"
646
+ [attr.form]="form"
647
+ [attr.formaction]="formaction"
648
+ [attr.formenctype]="formenctype"
649
+ [attr.formmethod]="formmethod"
650
+ [attr.formnovalidate]="formnovalidate"
651
+ [attr.formtarget]="formtarget"
652
+ [attr.name]="name"
653
+ [attr.value]="value">
654
+ {{ label }}
655
+ </button>
656
+ `, changeDetection: ChangeDetectionStrategy.OnPush, styles: [".btn{padding:.5rem 1rem;border-radius:.25rem;transition:background-color .3s,border-color .3s,filter .3s;font-family:Inter,sans-serif;font-size:16px;font-weight:600;line-height:24px;letter-spacing:.005em;text-align:left}\n"] }]
657
+ }], propDecorators: { type: [{
658
+ type: Input
659
+ }], label: [{
660
+ type: Input
661
+ }], btnClass: [{
662
+ type: Input
663
+ }], fontSize: [{
664
+ type: Input
665
+ }], disabled: [{
666
+ type: Input
667
+ }], autofocus: [{
668
+ type: Input
669
+ }], form: [{
670
+ type: Input
671
+ }], formaction: [{
672
+ type: Input
673
+ }], formenctype: [{
674
+ type: Input
675
+ }], formmethod: [{
676
+ type: Input
677
+ }], formnovalidate: [{
678
+ type: Input
679
+ }], formtarget: [{
680
+ type: Input
681
+ }], name: [{
682
+ type: Input
683
+ }], value: [{
684
+ type: Input
685
+ }], marginTop: [{
686
+ type: Input
687
+ }], marginBottom: [{
688
+ type: Input
689
+ }], marginLeft: [{
690
+ type: Input
691
+ }], marginRight: [{
692
+ type: Input
693
+ }], clickEvent: [{
694
+ type: Output
695
+ }], onMouseEnter: [{
696
+ type: HostListener,
697
+ args: ['mouseenter']
698
+ }], onMouseLeave: [{
699
+ type: HostListener,
700
+ args: ['mouseleave']
701
+ }], onMouseDown: [{
702
+ type: HostListener,
703
+ args: ['mousedown']
704
+ }], onMouseUp: [{
705
+ type: HostListener,
706
+ args: ['mouseup']
707
+ }] } });
708
+
709
+ class CardComponent {
710
+ constructor() {
711
+ this.cardTitle = 'Default Title';
712
+ }
713
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
714
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CardComponent, selector: "sim-app-card", inputs: { cardTitle: "cardTitle" }, ngImport: i0, template: `
715
+ <div class="card mb-3">
716
+ <div class="card-header">
717
+ <h3>{{ cardTitle }}</h3>
718
+ </div>
719
+ <div class="card-body">
720
+ <ng-content></ng-content>
721
+ </div>
722
+ </div>
723
+ `, isInline: true }); }
724
+ }
725
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CardComponent, decorators: [{
726
+ type: Component,
727
+ args: [{
728
+ selector: 'sim-app-card',
729
+ template: `
730
+ <div class="card mb-3">
731
+ <div class="card-header">
732
+ <h3>{{ cardTitle }}</h3>
733
+ </div>
734
+ <div class="card-body">
735
+ <ng-content></ng-content>
736
+ </div>
737
+ </div>
738
+ `
739
+ }]
740
+ }], propDecorators: { cardTitle: [{
741
+ type: Input
742
+ }] } });
743
+
744
+ class CheckboxComponent {
745
+ constructor() {
746
+ this.id = 'defaultCheckbox';
747
+ this.checked = false;
748
+ this.disabled = false;
749
+ this.label = 'Check me out';
750
+ this.marginTop = 0;
751
+ this.marginBottom = 0;
752
+ this.marginLeft = 0;
753
+ this.marginRight = 0;
754
+ this.checkedChange = new EventEmitter();
755
+ this.onChangeFn = () => { };
756
+ this.onTouchedFn = () => { };
757
+ }
758
+ onChange(event) {
759
+ const input = event.target;
760
+ this.checked = input.checked;
761
+ this.onChangeFn(this.checked);
762
+ this.checkedChange.emit(this.checked);
763
+ }
764
+ writeValue(value) {
765
+ this.checked = value;
766
+ }
767
+ registerOnChange(fn) {
768
+ this.onChangeFn = fn;
769
+ }
770
+ registerOnTouched(fn) {
771
+ this.onTouchedFn = fn;
772
+ }
773
+ setDisabledState(isDisabled) {
774
+ this.disabled = isDisabled;
775
+ }
776
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CheckboxComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
777
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CheckboxComponent, selector: "sim-app-checkbox", inputs: { id: "id", checked: "checked", disabled: "disabled", label: "label", marginTop: "marginTop", marginBottom: "marginBottom", marginLeft: "marginLeft", marginRight: "marginRight" }, outputs: { checkedChange: "checkedChange" }, providers: [
778
+ {
779
+ provide: NG_VALUE_ACCESSOR,
780
+ useExisting: forwardRef(() => CheckboxComponent),
781
+ multi: true
782
+ }
783
+ ], ngImport: i0, template: `
784
+ <div
785
+ class="form-group form-check"
786
+ [ngStyle]="{
787
+ 'margin-top': marginTop + 'rem',
788
+ 'margin-bottom': marginBottom + 'rem',
789
+ 'margin-left': marginLeft + 'rem',
790
+ 'margin-right': marginRight + 'rem'
791
+ }">
792
+ <input
793
+ type="checkbox"
794
+ class="form-check-input"
795
+ [id]="id"
796
+ [checked]="checked"
797
+ [disabled]="disabled"
798
+ (change)="onChange($event)"
799
+ />
800
+ <label class="form-check-label" [for]="id">{{ label }}</label>
801
+ </div>
802
+ `, isInline: true, styles: [".form-check-input{font-family:Arial,sans-serif;color:#333;font-size:1rem}.form-check-label{font-family:Arial,sans-serif;color:#333;font-size:1rem;font-weight:700}\n"], dependencies: [{ kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
803
+ }
804
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CheckboxComponent, decorators: [{
805
+ type: Component,
806
+ args: [{ selector: 'sim-app-checkbox', template: `
807
+ <div
808
+ class="form-group form-check"
809
+ [ngStyle]="{
810
+ 'margin-top': marginTop + 'rem',
811
+ 'margin-bottom': marginBottom + 'rem',
812
+ 'margin-left': marginLeft + 'rem',
813
+ 'margin-right': marginRight + 'rem'
814
+ }">
815
+ <input
816
+ type="checkbox"
817
+ class="form-check-input"
818
+ [id]="id"
819
+ [checked]="checked"
820
+ [disabled]="disabled"
821
+ (change)="onChange($event)"
822
+ />
823
+ <label class="form-check-label" [for]="id">{{ label }}</label>
824
+ </div>
825
+ `, providers: [
826
+ {
827
+ provide: NG_VALUE_ACCESSOR,
828
+ useExisting: forwardRef(() => CheckboxComponent),
829
+ multi: true
830
+ }
831
+ ], changeDetection: ChangeDetectionStrategy.OnPush, styles: [".form-check-input{font-family:Arial,sans-serif;color:#333;font-size:1rem}.form-check-label{font-family:Arial,sans-serif;color:#333;font-size:1rem;font-weight:700}\n"] }]
832
+ }], propDecorators: { id: [{
833
+ type: Input
834
+ }], checked: [{
835
+ type: Input
836
+ }], disabled: [{
837
+ type: Input
838
+ }], label: [{
839
+ type: Input
840
+ }], marginTop: [{
841
+ type: Input
842
+ }], marginBottom: [{
843
+ type: Input
844
+ }], marginLeft: [{
845
+ type: Input
846
+ }], marginRight: [{
847
+ type: Input
848
+ }], checkedChange: [{
849
+ type: Output
850
+ }] } });
851
+
852
+ class CodeHighlightComponent {
853
+ constructor(cdr) {
854
+ this.cdr = cdr;
855
+ this.code = ''; // Definindo um valor padrão
856
+ this.language = 'typescript';
857
+ this.highlightedCode = '';
858
+ }
859
+ ngAfterViewInit() {
860
+ setTimeout(() => {
861
+ this.highlightCode();
862
+ this.cdr.detectChanges();
863
+ });
864
+ }
865
+ highlightCode() {
866
+ const code = hljs.highlight(this.language, this.code).value;
867
+ this.highlightedCode = code;
868
+ }
869
+ copyCode() {
870
+ const codeElement = this.codeElement.nativeElement;
871
+ navigator.clipboard.writeText(codeElement.innerText).then(() => {
872
+ alert('Code copied to clipboard!');
873
+ });
874
+ }
875
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CodeHighlightComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
876
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CodeHighlightComponent, selector: "app-code-highlight", inputs: { code: "code", language: "language" }, viewQueries: [{ propertyName: "codeElement", first: true, predicate: ["codeElement"], descendants: true }], ngImport: i0, template: `
877
+ <div class="code-container">
878
+ <pre><code #codeElement [innerHTML]="highlightedCode"></code></pre>
879
+ <button (click)="copyCode()">Copy</button>
880
+ </div>
881
+ `, isInline: true, styles: [".code-container{position:relative}pre{background-color:#2d2d2d;color:#f8f8f2;padding:1rem;border-radius:5px;overflow-x:auto}button{position:absolute;top:10px;right:10px;background-color:#f8f8f2;border:none;padding:.5rem 1rem;cursor:pointer;border-radius:5px;box-shadow:0 2px 4px #0003;transition:background-color .3s,transform .2s,box-shadow .2s}button:hover{background-color:#e0e0e0;box-shadow:0 4px 8px #0000004d}button:active{background-color:#d0d0d0;transform:scale(.98)}\n"] }); }
882
+ }
883
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CodeHighlightComponent, decorators: [{
884
+ type: Component,
885
+ args: [{ selector: 'app-code-highlight', template: `
886
+ <div class="code-container">
887
+ <pre><code #codeElement [innerHTML]="highlightedCode"></code></pre>
888
+ <button (click)="copyCode()">Copy</button>
889
+ </div>
890
+ `, styles: [".code-container{position:relative}pre{background-color:#2d2d2d;color:#f8f8f2;padding:1rem;border-radius:5px;overflow-x:auto}button{position:absolute;top:10px;right:10px;background-color:#f8f8f2;border:none;padding:.5rem 1rem;cursor:pointer;border-radius:5px;box-shadow:0 2px 4px #0003;transition:background-color .3s,transform .2s,box-shadow .2s}button:hover{background-color:#e0e0e0;box-shadow:0 4px 8px #0000004d}button:active{background-color:#d0d0d0;transform:scale(.98)}\n"] }]
891
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { code: [{
892
+ type: Input
893
+ }], language: [{
894
+ type: Input
895
+ }], codeElement: [{
896
+ type: ViewChild,
897
+ args: ['codeElement']
898
+ }] } });
899
+
900
+ class FormComponent {
901
+ constructor() {
902
+ this.cardTitle = 'Default Form Title';
903
+ }
904
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
905
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FormComponent, selector: "sim-app-form", inputs: { cardTitle: "cardTitle" }, ngImport: i0, template: `
906
+ <div class="row mt-2 mx-1">
907
+ <div class="col-sm-12">
908
+ <sim-app-card [cardTitle]="cardTitle">
909
+ <ng-content></ng-content>
910
+ </sim-app-card>
911
+ </div>
912
+ </div>
913
+ `, isInline: true, dependencies: [{ kind: "component", type: CardComponent, selector: "sim-app-card", inputs: ["cardTitle"] }] }); }
914
+ }
915
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormComponent, decorators: [{
916
+ type: Component,
917
+ args: [{
918
+ selector: 'sim-app-form',
919
+ template: `
920
+ <div class="row mt-2 mx-1">
921
+ <div class="col-sm-12">
922
+ <sim-app-card [cardTitle]="cardTitle">
923
+ <ng-content></ng-content>
924
+ </sim-app-card>
925
+ </div>
926
+ </div>
927
+ `
928
+ }]
929
+ }], propDecorators: { cardTitle: [{
930
+ type: Input
931
+ }] } });
932
+
933
+ class InputComponent {
934
+ constructor() {
935
+ this.label = 'Default Label';
936
+ this.placeholder = 'Default Placeholder';
937
+ this.id = 'inputId';
938
+ this.type = 'text';
939
+ this.disabled = false;
940
+ this.readonly = false;
941
+ this.maxlength = null;
942
+ this.minlength = null;
943
+ this.required = false;
944
+ this.pattern = null;
945
+ this.autofocus = false;
946
+ this.marginTop = 0;
947
+ this.marginBottom = 0;
948
+ this.marginLeft = 0;
949
+ this.marginRight = 0;
950
+ this.inputEvent = new EventEmitter();
951
+ this.changeEvent = new EventEmitter();
952
+ this.focusEvent = new EventEmitter();
953
+ this.blurEvent = new EventEmitter();
954
+ this.keyupEvent = new EventEmitter();
955
+ this.keydownEvent = new EventEmitter();
956
+ this.keypressEvent = new EventEmitter();
957
+ this.onChangeCallback = () => { };
958
+ this.onTouchedCallback = () => { };
959
+ this.value = '';
960
+ }
961
+ onInput(event) {
962
+ const inputElement = event.target;
963
+ this.value = inputElement.value;
964
+ this.onChangeCallback(this.value);
965
+ this.inputEvent.emit(event);
966
+ }
967
+ onChange(event) {
968
+ this.changeEvent.emit(event);
969
+ }
970
+ onFocus(event) {
971
+ this.focusEvent.emit(event);
972
+ }
973
+ onBlur(event) {
974
+ this.onTouchedCallback();
975
+ this.blurEvent.emit(event);
976
+ }
977
+ onKeyup(event) {
978
+ this.keyupEvent.emit(event);
979
+ }
980
+ onKeydown(event) {
981
+ this.keydownEvent.emit(event);
982
+ }
983
+ onKeypress(event) {
984
+ this.keypressEvent.emit(event);
985
+ }
986
+ writeValue(value) {
987
+ this.value = value;
988
+ }
989
+ registerOnChange(fn) {
990
+ this.onChangeCallback = fn;
991
+ }
992
+ registerOnTouched(fn) {
993
+ this.onTouchedCallback = fn;
994
+ }
995
+ setDisabledState(isDisabled) {
996
+ this.disabled = isDisabled;
997
+ }
998
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: InputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
999
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: InputComponent, selector: "sim-app-input", inputs: { label: "label", placeholder: "placeholder", id: "id", type: "type", disabled: "disabled", readonly: "readonly", maxlength: "maxlength", minlength: "minlength", required: "required", pattern: "pattern", autofocus: "autofocus", marginTop: "marginTop", marginBottom: "marginBottom", marginLeft: "marginLeft", marginRight: "marginRight" }, outputs: { inputEvent: "inputEvent", changeEvent: "changeEvent", focusEvent: "focusEvent", blurEvent: "blurEvent", keyupEvent: "keyupEvent", keydownEvent: "keydownEvent", keypressEvent: "keypressEvent" }, providers: [
1000
+ {
1001
+ provide: NG_VALUE_ACCESSOR,
1002
+ useExisting: forwardRef(() => InputComponent),
1003
+ multi: true
1004
+ }
1005
+ ], ngImport: i0, template: `
1006
+ <div class="form-group" [ngStyle]="{
1007
+ 'margin-top': marginTop + 'rem',
1008
+ 'margin-bottom': marginBottom + 'rem',
1009
+ 'margin-left': marginLeft + 'rem',
1010
+ 'margin-right': marginRight + 'rem'
1011
+ }">
1012
+ <label [for]="id">{{ label }}</label>
1013
+ <input [type]="type"
1014
+ class="form-control custom-input"
1015
+ [id]="id"
1016
+ [placeholder]="placeholder"
1017
+ [value]="value"
1018
+ (input)="onInput($event)"
1019
+ (change)="onChange($event)"
1020
+ (focus)="onFocus($event)"
1021
+ (blur)="onBlur($event)"
1022
+ (keyup)="onKeyup($event)"
1023
+ (keydown)="onKeydown($event)"
1024
+ (keypress)="onKeypress($event)"
1025
+ [disabled]="disabled"
1026
+ [readonly]="readonly"
1027
+ [attr.maxlength]="maxlength"
1028
+ [attr.minlength]="minlength"
1029
+ [required]="required"
1030
+ [attr.pattern]="pattern"
1031
+ [autofocus]="autofocus">
1032
+ </div>
1033
+ `, isInline: true, styles: [".form-group{font-family:Arial,sans-serif;font-size:1rem;font-weight:700}.form-check-input{font-family:Arial,sans-serif;color:#333;font-size:.9rem}.form-check-label{font-family:Arial,sans-serif;color:#333;font-size:1rem}\n"], dependencies: [{ kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1034
+ }
1035
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: InputComponent, decorators: [{
1036
+ type: Component,
1037
+ args: [{ selector: 'sim-app-input', template: `
1038
+ <div class="form-group" [ngStyle]="{
1039
+ 'margin-top': marginTop + 'rem',
1040
+ 'margin-bottom': marginBottom + 'rem',
1041
+ 'margin-left': marginLeft + 'rem',
1042
+ 'margin-right': marginRight + 'rem'
1043
+ }">
1044
+ <label [for]="id">{{ label }}</label>
1045
+ <input [type]="type"
1046
+ class="form-control custom-input"
1047
+ [id]="id"
1048
+ [placeholder]="placeholder"
1049
+ [value]="value"
1050
+ (input)="onInput($event)"
1051
+ (change)="onChange($event)"
1052
+ (focus)="onFocus($event)"
1053
+ (blur)="onBlur($event)"
1054
+ (keyup)="onKeyup($event)"
1055
+ (keydown)="onKeydown($event)"
1056
+ (keypress)="onKeypress($event)"
1057
+ [disabled]="disabled"
1058
+ [readonly]="readonly"
1059
+ [attr.maxlength]="maxlength"
1060
+ [attr.minlength]="minlength"
1061
+ [required]="required"
1062
+ [attr.pattern]="pattern"
1063
+ [autofocus]="autofocus">
1064
+ </div>
1065
+ `, providers: [
1066
+ {
1067
+ provide: NG_VALUE_ACCESSOR,
1068
+ useExisting: forwardRef(() => InputComponent),
1069
+ multi: true
1070
+ }
1071
+ ], changeDetection: ChangeDetectionStrategy.OnPush, styles: [".form-group{font-family:Arial,sans-serif;font-size:1rem;font-weight:700}.form-check-input{font-family:Arial,sans-serif;color:#333;font-size:.9rem}.form-check-label{font-family:Arial,sans-serif;color:#333;font-size:1rem}\n"] }]
1072
+ }], propDecorators: { label: [{
1073
+ type: Input
1074
+ }], placeholder: [{
1075
+ type: Input
1076
+ }], id: [{
1077
+ type: Input
1078
+ }], type: [{
1079
+ type: Input
1080
+ }], disabled: [{
1081
+ type: Input
1082
+ }], readonly: [{
1083
+ type: Input
1084
+ }], maxlength: [{
1085
+ type: Input
1086
+ }], minlength: [{
1087
+ type: Input
1088
+ }], required: [{
1089
+ type: Input
1090
+ }], pattern: [{
1091
+ type: Input
1092
+ }], autofocus: [{
1093
+ type: Input
1094
+ }], marginTop: [{
1095
+ type: Input
1096
+ }], marginBottom: [{
1097
+ type: Input
1098
+ }], marginLeft: [{
1099
+ type: Input
1100
+ }], marginRight: [{
1101
+ type: Input
1102
+ }], inputEvent: [{
1103
+ type: Output
1104
+ }], changeEvent: [{
1105
+ type: Output
1106
+ }], focusEvent: [{
1107
+ type: Output
1108
+ }], blurEvent: [{
1109
+ type: Output
1110
+ }], keyupEvent: [{
1111
+ type: Output
1112
+ }], keydownEvent: [{
1113
+ type: Output
1114
+ }], keypressEvent: [{
1115
+ type: Output
1116
+ }] } });
1117
+
1118
+ class MultiSelectComponent {
1119
+ constructor() {
1120
+ this.label = 'Multi Select';
1121
+ this.data = []; // Aceita um array de objetos genéricos
1122
+ this.placeholder = 'Select items';
1123
+ this.selected = []; // A variável selected deve ser um array
1124
+ this.id = 'multiSelectId';
1125
+ this.bindLabel = ''; // Label dinâmico genérico
1126
+ this.marginTop = 0;
1127
+ this.marginBottom = 0;
1128
+ this.marginLeft = 0;
1129
+ this.marginRight = 0;
1130
+ this.keyupEvent = new EventEmitter();
1131
+ this.items = of([]); // Inicialização da propriedade
1132
+ this.onChangeCallback = () => { };
1133
+ this.onTouchedCallback = () => { };
1134
+ this.isCourseEntered = false;
1135
+ }
1136
+ ngOnInit() {
1137
+ this.items = of(this.data);
1138
+ }
1139
+ onFocus() {
1140
+ this.isCourseEntered = true;
1141
+ }
1142
+ onBlur() {
1143
+ this.isCourseEntered = false;
1144
+ }
1145
+ onKeyUp(event) {
1146
+ this.keyupEvent.emit(event);
1147
+ }
1148
+ writeValue(value) {
1149
+ this.selected = value || [];
1150
+ }
1151
+ registerOnChange(fn) {
1152
+ this.onChangeCallback = fn;
1153
+ }
1154
+ registerOnTouched(fn) {
1155
+ this.onTouchedCallback = fn;
1156
+ }
1157
+ setDisabledState(isDisabled) {
1158
+ // No implementation needed for this example
1159
+ }
1160
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MultiSelectComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1161
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: MultiSelectComponent, selector: "sim-app-multi-select", inputs: { label: "label", data: "data", placeholder: "placeholder", selected: "selected", id: "id", bindLabel: "bindLabel", marginTop: "marginTop", marginBottom: "marginBottom", marginLeft: "marginLeft", marginRight: "marginRight" }, outputs: { keyupEvent: "keyupEvent" }, providers: [
1162
+ {
1163
+ provide: NG_VALUE_ACCESSOR,
1164
+ useExisting: forwardRef(() => MultiSelectComponent),
1165
+ multi: true
1166
+ }
1167
+ ], ngImport: i0, template: `
1168
+ <div class="form-group" [ngStyle]="{
1169
+ 'margin-top': marginTop + 'rem',
1170
+ 'margin-bottom': marginBottom + 'rem',
1171
+ 'margin-left': marginLeft + 'rem',
1172
+ 'margin-right': marginRight + 'rem'
1173
+ }">
1174
+ <label [for]="id" class="form-label">{{ label }}</label>
1175
+ <ng-select
1176
+ [class.course-entry]="isCourseEntered"
1177
+ class="ng-select"
1178
+ [items]="items | async"
1179
+ [multiple]="true"
1180
+ [closeOnSelect]="false"
1181
+ [hideSelected]="true"
1182
+ [bindLabel]="bindLabel"
1183
+ [(ngModel)]="selected"
1184
+ (keyup)="onKeyUp($event)"
1185
+ [id]="id"
1186
+ [placeholder]="selected && selected.length === 0 ? placeholder : ''"
1187
+ (focus)="onFocus()"
1188
+ (blur)="onBlur()"
1189
+ >
1190
+ <ng-template ng-option-tmp let-item="item">
1191
+ {{ item[bindLabel] }}
1192
+ </ng-template>
1193
+ </ng-select>
1194
+ </div>
1195
+ `, 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.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: "component", type: i3$1.NgSelectComponent, selector: "ng-select", inputs: ["bindLabel", "bindValue", "markFirst", "placeholder", "notFoundText", "typeToSearchText", "addTagText", "loadingText", "clearAllText", "appearance", "dropdownPosition", "appendTo", "loading", "closeOnSelect", "hideSelected", "selectOnTab", "openOnEnter", "maxSelectedItems", "groupBy", "groupValue", "bufferAmount", "virtualScroll", "selectableGroup", "selectableGroupAsModel", "searchFn", "trackByFn", "clearOnBackspace", "labelForId", "inputAttrs", "tabIndex", "readonly", "searchWhileComposing", "minTermLength", "editableSearchTerm", "keyDownFn", "typeahead", "multiple", "addTag", "searchable", "clearable", "isOpen", "items", "compareWith", "clearSearchOnAdd", "deselectOnClick"], outputs: ["blur", "focus", "change", "open", "close", "search", "clear", "add", "remove", "scroll", "scrollToEnd"] }, { kind: "directive", type: i3$1.NgOptionTemplateDirective, selector: "[ng-option-tmp]" }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1196
+ }
1197
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MultiSelectComponent, decorators: [{
1198
+ type: Component,
1199
+ args: [{ selector: 'sim-app-multi-select', template: `
1200
+ <div class="form-group" [ngStyle]="{
1201
+ 'margin-top': marginTop + 'rem',
1202
+ 'margin-bottom': marginBottom + 'rem',
1203
+ 'margin-left': marginLeft + 'rem',
1204
+ 'margin-right': marginRight + 'rem'
1205
+ }">
1206
+ <label [for]="id" class="form-label">{{ label }}</label>
1207
+ <ng-select
1208
+ [class.course-entry]="isCourseEntered"
1209
+ class="ng-select"
1210
+ [items]="items | async"
1211
+ [multiple]="true"
1212
+ [closeOnSelect]="false"
1213
+ [hideSelected]="true"
1214
+ [bindLabel]="bindLabel"
1215
+ [(ngModel)]="selected"
1216
+ (keyup)="onKeyUp($event)"
1217
+ [id]="id"
1218
+ [placeholder]="selected && selected.length === 0 ? placeholder : ''"
1219
+ (focus)="onFocus()"
1220
+ (blur)="onBlur()"
1221
+ >
1222
+ <ng-template ng-option-tmp let-item="item">
1223
+ {{ item[bindLabel] }}
1224
+ </ng-template>
1225
+ </ng-select>
1226
+ </div>
1227
+ `, providers: [
1228
+ {
1229
+ provide: NG_VALUE_ACCESSOR,
1230
+ useExisting: forwardRef(() => MultiSelectComponent),
1231
+ multi: true
1232
+ }
1233
+ ], changeDetection: ChangeDetectionStrategy.OnPush, styles: [".form-group{font-family:Arial,sans-serif;font-size:1rem}.form-label{font-weight:700}\n"] }]
1234
+ }], propDecorators: { label: [{
1235
+ type: Input
1236
+ }], data: [{
1237
+ type: Input
1238
+ }], placeholder: [{
1239
+ type: Input
1240
+ }], selected: [{
1241
+ type: Input
1242
+ }], id: [{
1243
+ type: Input
1244
+ }], bindLabel: [{
1245
+ type: Input
1246
+ }], marginTop: [{
1247
+ type: Input
1248
+ }], marginBottom: [{
1249
+ type: Input
1250
+ }], marginLeft: [{
1251
+ type: Input
1252
+ }], marginRight: [{
1253
+ type: Input
1254
+ }], keyupEvent: [{
1255
+ type: Output
1256
+ }] } });
1257
+
1258
+ class RadioComponent {
1259
+ constructor() {
1260
+ this.name = 'defaultRadio';
1261
+ this.id = 'radioId';
1262
+ this.value = 'default';
1263
+ this.checked = false;
1264
+ this.disabled = false;
1265
+ this.label = 'Radio label';
1266
+ this.marginTop = 0;
1267
+ this.marginBottom = 0;
1268
+ this.marginLeft = 0;
1269
+ this.marginRight = 0;
1270
+ this.changeEvent = new EventEmitter();
1271
+ this.onChangeCallback = () => { };
1272
+ this.onTouchedCallback = () => { };
1273
+ }
1274
+ handleRadioChange(event) {
1275
+ const inputElement = event.target;
1276
+ this.checked = inputElement.checked;
1277
+ this.onChangeCallback(this.checked);
1278
+ this.changeEvent.emit(event);
1279
+ }
1280
+ writeValue(value) {
1281
+ this.checked = value;
1282
+ }
1283
+ registerOnChange(fn) {
1284
+ this.onChangeCallback = fn;
1285
+ }
1286
+ registerOnTouched(fn) {
1287
+ this.onTouchedCallback = fn;
1288
+ }
1289
+ setDisabledState(isDisabled) {
1290
+ this.disabled = isDisabled;
1291
+ }
1292
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RadioComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1293
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: RadioComponent, selector: "sim-app-radio", inputs: { name: "name", id: "id", value: "value", checked: "checked", disabled: "disabled", label: "label", marginTop: "marginTop", marginBottom: "marginBottom", marginLeft: "marginLeft", marginRight: "marginRight" }, outputs: { changeEvent: "changeEvent" }, providers: [
1294
+ {
1295
+ provide: NG_VALUE_ACCESSOR,
1296
+ useExisting: forwardRef(() => RadioComponent),
1297
+ multi: true
1298
+ }
1299
+ ], ngImport: i0, template: `
1300
+ <div class="form-check" [ngStyle]="{
1301
+ 'margin-top': marginTop + 'rem',
1302
+ 'margin-bottom': marginBottom + 'rem',
1303
+ 'margin-left': marginLeft + 'rem',
1304
+ 'margin-right': marginRight + 'rem'
1305
+ }">
1306
+ <input class="form-check-input"
1307
+ type="radio"
1308
+ [name]="name"
1309
+ [id]="id"
1310
+ [value]="value"
1311
+ [checked]="checked"
1312
+ (change)="handleRadioChange($event)"
1313
+ [disabled]="disabled">
1314
+ <label class="form-check-label" [for]="id">{{ label }}</label>
1315
+ </div>
1316
+ `, isInline: true, styles: [".form-check{font-family:Arial,sans-serif;font-size:1rem}.form-check-input{font-family:Arial,sans-serif;color:#333;font-size:1rem;margin-right:.5rem}.form-check-label{font-family:Arial,sans-serif;color:#333;font-size:1rem;font-weight:700}\n"], dependencies: [{ kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1317
+ }
1318
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RadioComponent, decorators: [{
1319
+ type: Component,
1320
+ args: [{ selector: 'sim-app-radio', template: `
1321
+ <div class="form-check" [ngStyle]="{
1322
+ 'margin-top': marginTop + 'rem',
1323
+ 'margin-bottom': marginBottom + 'rem',
1324
+ 'margin-left': marginLeft + 'rem',
1325
+ 'margin-right': marginRight + 'rem'
1326
+ }">
1327
+ <input class="form-check-input"
1328
+ type="radio"
1329
+ [name]="name"
1330
+ [id]="id"
1331
+ [value]="value"
1332
+ [checked]="checked"
1333
+ (change)="handleRadioChange($event)"
1334
+ [disabled]="disabled">
1335
+ <label class="form-check-label" [for]="id">{{ label }}</label>
1336
+ </div>
1337
+ `, providers: [
1338
+ {
1339
+ provide: NG_VALUE_ACCESSOR,
1340
+ useExisting: forwardRef(() => RadioComponent),
1341
+ multi: true
1342
+ }
1343
+ ], changeDetection: ChangeDetectionStrategy.OnPush, styles: [".form-check{font-family:Arial,sans-serif;font-size:1rem}.form-check-input{font-family:Arial,sans-serif;color:#333;font-size:1rem;margin-right:.5rem}.form-check-label{font-family:Arial,sans-serif;color:#333;font-size:1rem;font-weight:700}\n"] }]
1344
+ }], propDecorators: { name: [{
1345
+ type: Input
1346
+ }], id: [{
1347
+ type: Input
1348
+ }], value: [{
1349
+ type: Input
1350
+ }], checked: [{
1351
+ type: Input
1352
+ }], disabled: [{
1353
+ type: Input
1354
+ }], label: [{
1355
+ type: Input
1356
+ }], marginTop: [{
1357
+ type: Input
1358
+ }], marginBottom: [{
1359
+ type: Input
1360
+ }], marginLeft: [{
1361
+ type: Input
1362
+ }], marginRight: [{
1363
+ type: Input
1364
+ }], changeEvent: [{
1365
+ type: Output
1366
+ }] } });
1367
+
1368
+ class SelectComponent {
1369
+ constructor() {
1370
+ this.label = 'Default Label';
1371
+ this.id = 'selectId';
1372
+ this.disabled = false;
1373
+ this.options = [];
1374
+ this.marginTop = 0;
1375
+ this.marginBottom = 0;
1376
+ this.marginLeft = 0;
1377
+ this.marginRight = 0;
1378
+ this.changeEvent = new EventEmitter();
1379
+ this.onChangeCallback = () => { };
1380
+ this.onTouchedCallback = () => { };
1381
+ }
1382
+ onSelectChange(event) {
1383
+ const selectElement = event.target;
1384
+ this.value = selectElement.value;
1385
+ this.onChangeCallback(this.value);
1386
+ this.changeEvent.emit(this.value);
1387
+ }
1388
+ writeValue(value) {
1389
+ this.value = value;
1390
+ }
1391
+ registerOnChange(fn) {
1392
+ this.onChangeCallback = fn;
1393
+ }
1394
+ registerOnTouched(fn) {
1395
+ this.onTouchedCallback = fn;
1396
+ }
1397
+ setDisabledState(isDisabled) {
1398
+ this.disabled = isDisabled;
1399
+ }
1400
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SelectComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1401
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SelectComponent, selector: "sim-app-select", inputs: { label: "label", id: "id", disabled: "disabled", options: "options", marginTop: "marginTop", marginBottom: "marginBottom", marginLeft: "marginLeft", marginRight: "marginRight" }, outputs: { changeEvent: "changeEvent" }, providers: [
1402
+ {
1403
+ provide: NG_VALUE_ACCESSOR,
1404
+ useExisting: forwardRef(() => SelectComponent),
1405
+ multi: true
1406
+ }
1407
+ ], ngImport: i0, template: `
1408
+ <div class="form-group" [ngStyle]="{
1409
+ 'margin-top': marginTop + 'rem',
1410
+ 'margin-bottom': marginBottom + 'rem',
1411
+ 'margin-left': marginLeft + 'rem',
1412
+ 'margin-right': marginRight + 'rem'
1413
+ }">
1414
+ <label [for]="id">{{ label }}</label>
1415
+ <select class="form-control custom-select"
1416
+ [id]="id"
1417
+ [value]="value"
1418
+ (change)="onSelectChange($event)"
1419
+ [disabled]="disabled">
1420
+ <option *ngFor="let option of options" [value]="option.value">{{ option.label }}</option>
1421
+ </select>
1422
+ </div>
1423
+ `, isInline: true, styles: [".form-group{margin-bottom:1rem}.form-label{font-family:Arial,sans-serif;color:#333;font-size:1rem;font-weight:700}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i2.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1424
+ }
1425
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SelectComponent, decorators: [{
1426
+ type: Component,
1427
+ args: [{ selector: 'sim-app-select', template: `
1428
+ <div class="form-group" [ngStyle]="{
1429
+ 'margin-top': marginTop + 'rem',
1430
+ 'margin-bottom': marginBottom + 'rem',
1431
+ 'margin-left': marginLeft + 'rem',
1432
+ 'margin-right': marginRight + 'rem'
1433
+ }">
1434
+ <label [for]="id">{{ label }}</label>
1435
+ <select class="form-control custom-select"
1436
+ [id]="id"
1437
+ [value]="value"
1438
+ (change)="onSelectChange($event)"
1439
+ [disabled]="disabled">
1440
+ <option *ngFor="let option of options" [value]="option.value">{{ option.label }}</option>
1441
+ </select>
1442
+ </div>
1443
+ `, providers: [
1444
+ {
1445
+ provide: NG_VALUE_ACCESSOR,
1446
+ useExisting: forwardRef(() => SelectComponent),
1447
+ multi: true
1448
+ }
1449
+ ], changeDetection: ChangeDetectionStrategy.OnPush, styles: [".form-group{margin-bottom:1rem}.form-label{font-family:Arial,sans-serif;color:#333;font-size:1rem;font-weight:700}\n"] }]
1450
+ }], propDecorators: { label: [{
1451
+ type: Input
1452
+ }], id: [{
1453
+ type: Input
1454
+ }], disabled: [{
1455
+ type: Input
1456
+ }], options: [{
1457
+ type: Input
1458
+ }], marginTop: [{
1459
+ type: Input
1460
+ }], marginBottom: [{
1461
+ type: Input
1462
+ }], marginLeft: [{
1463
+ type: Input
1464
+ }], marginRight: [{
1465
+ type: Input
1466
+ }], changeEvent: [{
1467
+ type: Output
1468
+ }] } });
1469
+
1470
+ class BootstrapTableComponent {
1471
+ constructor() {
1472
+ this.columns = [];
1473
+ this.data = [];
1474
+ this.itemsPerPageOptions = [5, 10, 15, 20];
1475
+ this.defaultItemsPerPage = 10;
1476
+ this.marginTop = 0;
1477
+ this.marginBottom = 0;
1478
+ this.marginLeft = 0;
1479
+ this.marginRight = 0;
1480
+ this.showActionColumn = false;
1481
+ this.actionColumnLabel = 'Actions';
1482
+ this.sortChange = new EventEmitter();
1483
+ this.pageChange = new EventEmitter();
1484
+ this.itemsPerPageChange = new EventEmitter();
1485
+ this.onEditTable = new EventEmitter();
1486
+ this.onDeleteTable = new EventEmitter();
1487
+ this.onViewTable = new EventEmitter();
1488
+ this.currentPage = 1;
1489
+ this.totalItems = 0;
1490
+ this.config = {
1491
+ id: 'bootstrap-table',
1492
+ itemsPerPage: this.defaultItemsPerPage,
1493
+ currentPage: this.currentPage,
1494
+ totalItems: this.totalItems
1495
+ };
1496
+ }
1497
+ ngOnInit() {
1498
+ this.totalItems = this.data.length;
1499
+ this.updateConfig();
1500
+ }
1501
+ ngOnChanges(changes) {
1502
+ if (changes['data']) {
1503
+ this.totalItems = this.data.length;
1504
+ this.updateConfig();
1505
+ }
1506
+ }
1507
+ updateConfig() {
1508
+ this.config.itemsPerPage = this.defaultItemsPerPage;
1509
+ this.config.currentPage = this.currentPage;
1510
+ this.config.totalItems = this.totalItems;
1511
+ }
1512
+ onSort(column) {
1513
+ this.sortChange.emit(column);
1514
+ }
1515
+ onPageChange(page) {
1516
+ this.currentPage = page;
1517
+ this.config.currentPage = page;
1518
+ this.pageChange.emit(page);
1519
+ }
1520
+ onItemsPerPageChange(event) {
1521
+ const itemsPerPage = parseInt(event, 10);
1522
+ this.defaultItemsPerPage = itemsPerPage;
1523
+ this.config.itemsPerPage = itemsPerPage;
1524
+ this.itemsPerPageChange.emit(itemsPerPage);
1525
+ this.updateConfig();
1526
+ }
1527
+ handleAction(action, item, index) {
1528
+ switch (action) {
1529
+ case 'edit':
1530
+ this.onEditTable.emit({ item, index });
1531
+ break;
1532
+ case 'delete':
1533
+ this.onDeleteTable.emit({ item, index });
1534
+ break;
1535
+ case 'view':
1536
+ this.onViewTable.emit({ item, index });
1537
+ break;
1538
+ }
1539
+ }
1540
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: BootstrapTableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1541
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: BootstrapTableComponent, selector: "sim-bootstrap-table", inputs: { columns: "columns", data: "data", itemsPerPageOptions: "itemsPerPageOptions", defaultItemsPerPage: "defaultItemsPerPage", marginTop: "marginTop", marginBottom: "marginBottom", marginLeft: "marginLeft", marginRight: "marginRight", showActionColumn: "showActionColumn", actionColumnLabel: "actionColumnLabel" }, outputs: { sortChange: "sortChange", pageChange: "pageChange", itemsPerPageChange: "itemsPerPageChange", onEditTable: "onEditTable", onDeleteTable: "onDeleteTable", onViewTable: "onViewTable" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"form-group\" [ngStyle]=\"{\n 'margin-top': marginTop + 'rem',\n 'margin-bottom': marginBottom + 'rem',\n 'margin-left': marginLeft + 'rem',\n 'margin-right': marginRight + 'rem'\n}\" style=\"text-align: right;\">\n <label for=\"itemsPerPageSelect\" style=\"margin-right: 0.5rem; margin-bottom: 0.7rem;\">Itens por P\u00E1gina:</label>\n <select\n id=\"itemsPerPageSelect\"\n class=\"form-control form-control-sm d-inline-block w-auto\"\n [(ngModel)]=\"defaultItemsPerPage\"\n (ngModelChange)=\"onItemsPerPageChange($event)\">\n <option *ngFor=\"let option of itemsPerPageOptions\" [value]=\"option\">{{ option }}</option>\n </select>\n</div>\n\n<div class=\"table-responsive\">\n <table class=\"table table-hover\">\n <thead>\n <tr>\n <th *ngFor=\"let column of columns\" (click)=\"onSort(column.prop)\">\n {{ column.label }}\n </th>\n <th *ngIf=\"showActionColumn\">{{ actionColumnLabel }}</th>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor=\"let item of data | paginate: config; let i = index\">\n <td *ngFor=\"let column of columns\">\n {{ item[column.prop] }}\n </td>\n <td *ngIf=\"showActionColumn\">\n <div class=\"d-flex justify-content-center\">\n <button *ngIf=\"onEditTable.observers.length > 0\" (click)=\"handleAction('edit', item, i)\" class=\"btn btn-sm btn-primary mx-1\">Edit</button>\n <button *ngIf=\"onDeleteTable.observers.length > 0\" (click)=\"handleAction('delete', item, i)\" class=\"btn btn-sm btn-danger mx-1\">Delete</button>\n <button *ngIf=\"onViewTable.observers.length > 0\" (click)=\"handleAction('view', item, i)\" class=\"btn btn-sm btn-info mx-1\">View</button>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n</div>\n\n<div class=\"text-center\">\n <pagination-controls id=\"bootstrap-table\" (pageChange)=\"onPageChange($event)\" previousLabel=\"Anterior\" nextLabel=\"Pr\u00F3ximo\" [responsive]=\"true\"></pagination-controls>\n</div>\n\n\n<!-- Estilos CSS diretamente no HTML -->\n<style>\n .table thead th {\n background-color: #343a40; /* Tom de cinza escuro */\n color: #fff;\n }\n</style>\n", styles: ["", "\n .table thead th {\n background-color: #343a40; /* Tom de cinza escuro */\n color: #fff;\n }\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i2.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { 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: "component", type: i3$2.PaginationControlsComponent, selector: "pagination-controls", inputs: ["id", "maxSize", "directionLinks", "autoHide", "responsive", "previousLabel", "nextLabel", "screenReaderPaginationLabel", "screenReaderPageLabel", "screenReaderCurrentLabel"], outputs: ["pageChange", "pageBoundsCorrection"] }, { kind: "pipe", type: i3$2.PaginatePipe, name: "paginate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1542
+ }
1543
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: BootstrapTableComponent, decorators: [{
1544
+ type: Component,
1545
+ args: [{ selector: 'sim-bootstrap-table', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"form-group\" [ngStyle]=\"{\n 'margin-top': marginTop + 'rem',\n 'margin-bottom': marginBottom + 'rem',\n 'margin-left': marginLeft + 'rem',\n 'margin-right': marginRight + 'rem'\n}\" style=\"text-align: right;\">\n <label for=\"itemsPerPageSelect\" style=\"margin-right: 0.5rem; margin-bottom: 0.7rem;\">Itens por P\u00E1gina:</label>\n <select\n id=\"itemsPerPageSelect\"\n class=\"form-control form-control-sm d-inline-block w-auto\"\n [(ngModel)]=\"defaultItemsPerPage\"\n (ngModelChange)=\"onItemsPerPageChange($event)\">\n <option *ngFor=\"let option of itemsPerPageOptions\" [value]=\"option\">{{ option }}</option>\n </select>\n</div>\n\n<div class=\"table-responsive\">\n <table class=\"table table-hover\">\n <thead>\n <tr>\n <th *ngFor=\"let column of columns\" (click)=\"onSort(column.prop)\">\n {{ column.label }}\n </th>\n <th *ngIf=\"showActionColumn\">{{ actionColumnLabel }}</th>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor=\"let item of data | paginate: config; let i = index\">\n <td *ngFor=\"let column of columns\">\n {{ item[column.prop] }}\n </td>\n <td *ngIf=\"showActionColumn\">\n <div class=\"d-flex justify-content-center\">\n <button *ngIf=\"onEditTable.observers.length > 0\" (click)=\"handleAction('edit', item, i)\" class=\"btn btn-sm btn-primary mx-1\">Edit</button>\n <button *ngIf=\"onDeleteTable.observers.length > 0\" (click)=\"handleAction('delete', item, i)\" class=\"btn btn-sm btn-danger mx-1\">Delete</button>\n <button *ngIf=\"onViewTable.observers.length > 0\" (click)=\"handleAction('view', item, i)\" class=\"btn btn-sm btn-info mx-1\">View</button>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n</div>\n\n<div class=\"text-center\">\n <pagination-controls id=\"bootstrap-table\" (pageChange)=\"onPageChange($event)\" previousLabel=\"Anterior\" nextLabel=\"Pr\u00F3ximo\" [responsive]=\"true\"></pagination-controls>\n</div>\n\n\n<!-- Estilos CSS diretamente no HTML -->\n<style>\n .table thead th {\n background-color: #343a40; /* Tom de cinza escuro */\n color: #fff;\n }\n</style>\n", styles: ["\n .table thead th {\n background-color: #343a40; /* Tom de cinza escuro */\n color: #fff;\n }\n"] }]
1546
+ }], propDecorators: { columns: [{
1547
+ type: Input
1548
+ }], data: [{
1549
+ type: Input
1550
+ }], itemsPerPageOptions: [{
1551
+ type: Input
1552
+ }], defaultItemsPerPage: [{
1553
+ type: Input
1554
+ }], marginTop: [{
1555
+ type: Input
1556
+ }], marginBottom: [{
1557
+ type: Input
1558
+ }], marginLeft: [{
1559
+ type: Input
1560
+ }], marginRight: [{
1561
+ type: Input
1562
+ }], showActionColumn: [{
1563
+ type: Input
1564
+ }], actionColumnLabel: [{
1565
+ type: Input
1566
+ }], sortChange: [{
1567
+ type: Output
1568
+ }], pageChange: [{
1569
+ type: Output
1570
+ }], itemsPerPageChange: [{
1571
+ type: Output
1572
+ }], onEditTable: [{
1573
+ type: Output
1574
+ }], onDeleteTable: [{
1575
+ type: Output
1576
+ }], onViewTable: [{
1577
+ type: Output
1578
+ }] } });
1579
+
1580
+ class TextareaComponent {
1581
+ constructor() {
1582
+ this.label = 'Default Label';
1583
+ this.placeholder = 'Default Placeholder';
1584
+ this.id = 'textareaId';
1585
+ this.rows = 3;
1586
+ this.disabled = false;
1587
+ this.readonly = false;
1588
+ this.maxlength = null;
1589
+ this.minlength = null;
1590
+ this.required = false;
1591
+ this.autofocus = false;
1592
+ this.marginTop = 0;
1593
+ this.marginBottom = 0;
1594
+ this.marginLeft = 0;
1595
+ this.marginRight = 0;
1596
+ this.inputEvent = new EventEmitter();
1597
+ this.changeEvent = new EventEmitter();
1598
+ this.focusEvent = new EventEmitter();
1599
+ this.blurEvent = new EventEmitter();
1600
+ this.keyupEvent = new EventEmitter();
1601
+ this.keydownEvent = new EventEmitter();
1602
+ this.keypressEvent = new EventEmitter();
1603
+ this.onChangeCallback = () => { };
1604
+ this.onTouchedCallback = () => { };
1605
+ this.value = '';
1606
+ }
1607
+ onInput(event) {
1608
+ const inputElement = event.target;
1609
+ this.value = inputElement.value;
1610
+ this.onChangeCallback(this.value);
1611
+ this.inputEvent.emit(event);
1612
+ }
1613
+ onChange(event) {
1614
+ this.changeEvent.emit(event);
1615
+ }
1616
+ onFocus(event) {
1617
+ this.focusEvent.emit(event);
1618
+ }
1619
+ onBlur(event) {
1620
+ this.onTouchedCallback();
1621
+ this.blurEvent.emit(event);
1622
+ }
1623
+ onKeyup(event) {
1624
+ this.keyupEvent.emit(event);
1625
+ }
1626
+ onKeydown(event) {
1627
+ this.keydownEvent.emit(event);
1628
+ }
1629
+ onKeypress(event) {
1630
+ this.keypressEvent.emit(event);
1631
+ }
1632
+ writeValue(value) {
1633
+ this.value = value;
1634
+ }
1635
+ registerOnChange(fn) {
1636
+ this.onChangeCallback = fn;
1637
+ }
1638
+ registerOnTouched(fn) {
1639
+ this.onTouchedCallback = fn;
1640
+ }
1641
+ setDisabledState(isDisabled) {
1642
+ this.disabled = isDisabled;
1643
+ }
1644
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TextareaComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1645
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TextareaComponent, selector: "sim-app-textarea", inputs: { label: "label", placeholder: "placeholder", id: "id", rows: "rows", disabled: "disabled", readonly: "readonly", maxlength: "maxlength", minlength: "minlength", required: "required", autofocus: "autofocus", marginTop: "marginTop", marginBottom: "marginBottom", marginLeft: "marginLeft", marginRight: "marginRight" }, outputs: { inputEvent: "inputEvent", changeEvent: "changeEvent", focusEvent: "focusEvent", blurEvent: "blurEvent", keyupEvent: "keyupEvent", keydownEvent: "keydownEvent", keypressEvent: "keypressEvent" }, providers: [
1646
+ {
1647
+ provide: NG_VALUE_ACCESSOR,
1648
+ useExisting: forwardRef(() => TextareaComponent),
1649
+ multi: true
1650
+ }
1651
+ ], ngImport: i0, template: `
1652
+ <div class="form-group" [ngStyle]="{
1653
+ 'margin-top': marginTop + 'rem',
1654
+ 'margin-bottom': marginBottom + 'rem',
1655
+ 'margin-left': marginLeft + 'rem',
1656
+ 'margin-right': marginRight + 'rem'
1657
+ }">
1658
+ <label [for]="id" class="form-label">{{ label }}</label>
1659
+ <textarea class="form-control custom-textarea"
1660
+ [id]="id"
1661
+ [rows]="rows"
1662
+ [placeholder]="placeholder"
1663
+ [value]="value"
1664
+ (input)="onInput($event)"
1665
+ (change)="onChange($event)"
1666
+ (focus)="onFocus($event)"
1667
+ (blur)="onBlur($event)"
1668
+ (keyup)="onKeyup($event)"
1669
+ (keydown)="onKeydown($event)"
1670
+ (keypress)="onKeypress($event)"
1671
+ [attr.maxlength]="maxlength"
1672
+ [attr.minlength]="minlength"
1673
+ [required]="required"
1674
+ [disabled]="disabled"
1675
+ [readonly]="readonly"
1676
+ [autofocus]="autofocus"></textarea>
1677
+ </div>
1678
+ `, isInline: true, styles: [".form-group{margin-bottom:1rem}.form-label{font-family:Arial,sans-serif;color:#333;font-size:1rem;font-weight:700}\n"], dependencies: [{ kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1679
+ }
1680
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TextareaComponent, decorators: [{
1681
+ type: Component,
1682
+ args: [{ selector: 'sim-app-textarea', template: `
1683
+ <div class="form-group" [ngStyle]="{
1684
+ 'margin-top': marginTop + 'rem',
1685
+ 'margin-bottom': marginBottom + 'rem',
1686
+ 'margin-left': marginLeft + 'rem',
1687
+ 'margin-right': marginRight + 'rem'
1688
+ }">
1689
+ <label [for]="id" class="form-label">{{ label }}</label>
1690
+ <textarea class="form-control custom-textarea"
1691
+ [id]="id"
1692
+ [rows]="rows"
1693
+ [placeholder]="placeholder"
1694
+ [value]="value"
1695
+ (input)="onInput($event)"
1696
+ (change)="onChange($event)"
1697
+ (focus)="onFocus($event)"
1698
+ (blur)="onBlur($event)"
1699
+ (keyup)="onKeyup($event)"
1700
+ (keydown)="onKeydown($event)"
1701
+ (keypress)="onKeypress($event)"
1702
+ [attr.maxlength]="maxlength"
1703
+ [attr.minlength]="minlength"
1704
+ [required]="required"
1705
+ [disabled]="disabled"
1706
+ [readonly]="readonly"
1707
+ [autofocus]="autofocus"></textarea>
1708
+ </div>
1709
+ `, providers: [
1710
+ {
1711
+ provide: NG_VALUE_ACCESSOR,
1712
+ useExisting: forwardRef(() => TextareaComponent),
1713
+ multi: true
1714
+ }
1715
+ ], changeDetection: ChangeDetectionStrategy.OnPush, styles: [".form-group{margin-bottom:1rem}.form-label{font-family:Arial,sans-serif;color:#333;font-size:1rem;font-weight:700}\n"] }]
1716
+ }], propDecorators: { label: [{
1717
+ type: Input
1718
+ }], placeholder: [{
1719
+ type: Input
1720
+ }], id: [{
1721
+ type: Input
1722
+ }], rows: [{
1723
+ type: Input
1724
+ }], disabled: [{
1725
+ type: Input
1726
+ }], readonly: [{
1727
+ type: Input
1728
+ }], maxlength: [{
1729
+ type: Input
1730
+ }], minlength: [{
1731
+ type: Input
1732
+ }], required: [{
1733
+ type: Input
1734
+ }], autofocus: [{
1735
+ type: Input
1736
+ }], marginTop: [{
1737
+ type: Input
1738
+ }], marginBottom: [{
1739
+ type: Input
1740
+ }], marginLeft: [{
1741
+ type: Input
1742
+ }], marginRight: [{
1743
+ type: Input
1744
+ }], inputEvent: [{
1745
+ type: Output
1746
+ }], changeEvent: [{
1747
+ type: Output
1748
+ }], focusEvent: [{
1749
+ type: Output
1750
+ }], blurEvent: [{
1751
+ type: Output
1752
+ }], keyupEvent: [{
1753
+ type: Output
1754
+ }], keydownEvent: [{
1755
+ type: Output
1756
+ }], keypressEvent: [{
1757
+ type: Output
1758
+ }] } });
1759
+
1760
+ class ComponentsModule {
1761
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ComponentsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
1762
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: ComponentsModule, declarations: [ButtonComponent,
1763
+ CardComponent,
1764
+ FormComponent,
1765
+ InputComponent,
1766
+ CheckboxComponent,
1767
+ TextareaComponent,
1768
+ SelectComponent,
1769
+ RadioComponent,
1770
+ MultiSelectComponent,
1771
+ CalendarComponent,
1772
+ DatePickerComponent,
1773
+ DateTimePickerComponent,
1774
+ BootstrapTableComponent,
1775
+ CodeHighlightComponent,
1776
+ BadgeComponent], imports: [CommonModule,
1777
+ FormsModule,
1778
+ ReactiveFormsModule,
1779
+ NgSelectModule, i3.FlatpickrModule, NgxPaginationModule], exports: [ButtonComponent,
1780
+ CardComponent,
1781
+ FormComponent,
1782
+ InputComponent,
1783
+ CheckboxComponent,
1784
+ TextareaComponent,
1785
+ SelectComponent,
1786
+ RadioComponent,
1787
+ MultiSelectComponent,
1788
+ FormsModule,
1789
+ ReactiveFormsModule,
1790
+ NgSelectModule,
1791
+ CalendarComponent,
1792
+ DatePickerComponent,
1793
+ DateTimePickerComponent,
1794
+ BootstrapTableComponent,
1795
+ CodeHighlightComponent,
1796
+ BadgeComponent] }); }
1797
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ComponentsModule, imports: [CommonModule,
1798
+ FormsModule,
1799
+ ReactiveFormsModule,
1800
+ NgSelectModule,
1801
+ FlatpickrModule.forRoot(),
1802
+ NgxPaginationModule, FormsModule,
1803
+ ReactiveFormsModule,
1804
+ NgSelectModule] }); }
1805
+ }
1806
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ComponentsModule, decorators: [{
1807
+ type: NgModule,
1808
+ args: [{
1809
+ declarations: [
1810
+ ButtonComponent,
1811
+ CardComponent,
1812
+ FormComponent,
1813
+ InputComponent,
1814
+ CheckboxComponent,
1815
+ TextareaComponent,
1816
+ SelectComponent,
1817
+ RadioComponent,
1818
+ MultiSelectComponent,
1819
+ CalendarComponent,
1820
+ DatePickerComponent,
1821
+ DateTimePickerComponent,
1822
+ BootstrapTableComponent,
1823
+ CodeHighlightComponent,
1824
+ BadgeComponent
1825
+ ],
1826
+ imports: [
1827
+ CommonModule,
1828
+ FormsModule,
1829
+ ReactiveFormsModule,
1830
+ NgSelectModule,
1831
+ FlatpickrModule.forRoot(),
1832
+ NgxPaginationModule
1833
+ ],
1834
+ exports: [
1835
+ ButtonComponent,
1836
+ CardComponent,
1837
+ FormComponent,
1838
+ InputComponent,
1839
+ CheckboxComponent,
1840
+ TextareaComponent,
1841
+ SelectComponent,
1842
+ RadioComponent,
1843
+ MultiSelectComponent,
1844
+ FormsModule,
1845
+ ReactiveFormsModule,
1846
+ NgSelectModule,
1847
+ CalendarComponent,
1848
+ DatePickerComponent,
1849
+ DateTimePickerComponent,
1850
+ BootstrapTableComponent,
1851
+ CodeHighlightComponent,
1852
+ BadgeComponent
1853
+ ]
1854
+ }]
1855
+ }] });
1856
+
1857
+ class LibPortalAngularModule {
1858
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: LibPortalAngularModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
1859
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: LibPortalAngularModule, imports: [ComponentsModule], exports: [ComponentsModule] }); }
1860
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: LibPortalAngularModule, imports: [ComponentsModule, ComponentsModule] }); }
1861
+ }
1862
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: LibPortalAngularModule, decorators: [{
1863
+ type: NgModule,
1864
+ args: [{
1865
+ imports: [
1866
+ ComponentsModule,
1867
+ ],
1868
+ exports: [
1869
+ ComponentsModule
1870
+ ]
1871
+ }]
1872
+ }] });
1873
+
1874
+ /*
1875
+ * Public API Surface of sim-lib
1876
+ *
1877
+ * Este arquivo exporta todos os componentes, enums e módulos necessários
1878
+ * para que os consumidores da biblioteca possam utilizá-los em suas aplicações.
1879
+ */
1880
+ // Componentes
1881
+
1882
+ /**
1883
+ * Generated bundle index. Do not edit.
1884
+ */
1885
+
1886
+ export { BadgeComponent, BootstrapTableComponent, ButtonClasses, ButtonComponent, CalendarComponent, CardComponent, CheckboxComponent, CodeHighlightComponent, ComponentsModule, DatePickerComponent, DateTimePickerComponent, FormComponent, InputComponent, LibPortalAngularModule, MultiSelectComponent, RadioComponent, SelectComponent, TextareaComponent };
1887
+ //# sourceMappingURL=lib-portal-angular.mjs.map