brainloper-ui 15.0.1 → 17.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (94) hide show
  1. package/esm2022/src/app/modules/brainloper-ui/brainloper-ui.module.mjs +314 -0
  2. package/esm2022/src/app/modules/brainloper-ui/components/bread-crumb/bread-crumb.component.mjs +30 -0
  3. package/esm2022/src/app/modules/brainloper-ui/components/buttons/button-icon/button-icon.component.mjs +23 -0
  4. package/esm2022/src/app/modules/brainloper-ui/components/buttons/button-label/button-label.component.mjs +83 -0
  5. package/esm2022/src/app/modules/brainloper-ui/components/carousel/carousel.component.mjs +42 -0
  6. package/esm2022/src/app/modules/brainloper-ui/components/combos/combos.component.mjs +183 -0
  7. package/esm2022/src/app/modules/brainloper-ui/components/data-table/data-table.component.mjs +746 -0
  8. package/esm2022/src/app/modules/brainloper-ui/components/data-table/table-modal/table-modal.component.mjs +122 -0
  9. package/esm2022/src/app/modules/brainloper-ui/components/file-input/file-input.component.mjs +205 -0
  10. package/esm2022/src/app/modules/brainloper-ui/components/filters/filters.component.mjs +227 -0
  11. package/esm2022/src/app/modules/brainloper-ui/components/report/template-fuel/template-fuel.component.mjs +89 -0
  12. package/esm2022/src/app/modules/brainloper-ui/components/report/template-ot/template-ot.component.mjs +86 -0
  13. package/esm2022/src/app/modules/brainloper-ui/components/select-filter/select-filter.component.mjs +117 -0
  14. package/esm2022/src/app/modules/directives/carousel-item.directive.mjs +20 -0
  15. package/esm2022/src/app/modules/interfaces/menu-break-crumb/menu-break-crumb.mjs +6 -0
  16. package/esm2022/src/app/modules/services/crypto.service.mjs +38 -0
  17. package/esm2022/src/app/modules/services/export-data.service.mjs +169 -0
  18. package/esm2022/src/app/modules/services/file-forms.service.mjs +24 -0
  19. package/esm2022/src/app/modules/services/fuel-order-pdf.service.mjs +346 -0
  20. package/esm2022/src/app/modules/services/functions.service.mjs +75 -0
  21. package/esm2022/src/app/modules/services/generate-pdf.service.mjs +93 -0
  22. package/esm2022/src/app/modules/services/http.service.mjs +142 -0
  23. package/esm2022/src/app/modules/services/loading/loading.component.mjs +30 -0
  24. package/esm2022/src/app/modules/services/local-storage.service.mjs +115 -0
  25. package/esm2022/src/app/modules/services/message.service.mjs +202 -0
  26. package/esm2022/src/app/modules/services/purchase-order-pdf.service.mjs +179 -0
  27. package/esm2022/src/app/modules/services/session.service.mjs +43 -0
  28. package/esm2022/src/app/modules/services/work-order-pdf.service.mjs +363 -0
  29. package/{fesm2020 → fesm2022}/brainloper-ui.mjs +541 -443
  30. package/{fesm2020 → fesm2022}/brainloper-ui.mjs.map +1 -1
  31. package/package.json +17 -23
  32. package/src/app/modules/brainloper-ui/components/bread-crumb/bread-crumb.component.d.ts +1 -1
  33. package/src/app/modules/brainloper-ui/components/buttons/button-icon/button-icon.component.d.ts +1 -1
  34. package/src/app/modules/brainloper-ui/components/buttons/button-label/button-label.component.d.ts +1 -1
  35. package/src/app/modules/brainloper-ui/components/carousel/carousel.component.d.ts +1 -1
  36. package/src/app/modules/brainloper-ui/components/combos/combos.component.d.ts +1 -1
  37. package/src/app/modules/brainloper-ui/components/data-table/data-table.component.d.ts +1 -1
  38. package/src/app/modules/brainloper-ui/components/file-input/file-input.component.d.ts +1 -1
  39. package/src/app/modules/brainloper-ui/components/filters/filters.component.d.ts +1 -1
  40. package/src/app/modules/brainloper-ui/components/select-filter/select-filter.component.d.ts +1 -1
  41. package/src/app/modules/directives/carousel-item.directive.d.ts +1 -1
  42. package/esm2020/src/app/modules/brainloper-ui/brainloper-ui.module.mjs +0 -306
  43. package/esm2020/src/app/modules/brainloper-ui/components/bread-crumb/bread-crumb.component.mjs +0 -29
  44. package/esm2020/src/app/modules/brainloper-ui/components/buttons/button-icon/button-icon.component.mjs +0 -23
  45. package/esm2020/src/app/modules/brainloper-ui/components/buttons/button-label/button-label.component.mjs +0 -83
  46. package/esm2020/src/app/modules/brainloper-ui/components/carousel/carousel.component.mjs +0 -40
  47. package/esm2020/src/app/modules/brainloper-ui/components/combos/combos.component.mjs +0 -176
  48. package/esm2020/src/app/modules/brainloper-ui/components/data-table/data-table.component.mjs +0 -728
  49. package/esm2020/src/app/modules/brainloper-ui/components/data-table/table-modal/table-modal.component.mjs +0 -118
  50. package/esm2020/src/app/modules/brainloper-ui/components/file-input/file-input.component.mjs +0 -187
  51. package/esm2020/src/app/modules/brainloper-ui/components/filters/filters.component.mjs +0 -222
  52. package/esm2020/src/app/modules/brainloper-ui/components/report/template-fuel/template-fuel.component.mjs +0 -84
  53. package/esm2020/src/app/modules/brainloper-ui/components/report/template-ot/template-ot.component.mjs +0 -81
  54. package/esm2020/src/app/modules/brainloper-ui/components/select-filter/select-filter.component.mjs +0 -108
  55. package/esm2020/src/app/modules/directives/carousel-item.directive.mjs +0 -18
  56. package/esm2020/src/app/modules/interfaces/menu-break-crumb/menu-break-crumb.mjs +0 -8
  57. package/esm2020/src/app/modules/services/crypto.service.mjs +0 -37
  58. package/esm2020/src/app/modules/services/export-data.service.mjs +0 -166
  59. package/esm2020/src/app/modules/services/file-forms.service.mjs +0 -24
  60. package/esm2020/src/app/modules/services/fuel-order-pdf.service.mjs +0 -346
  61. package/esm2020/src/app/modules/services/functions.service.mjs +0 -75
  62. package/esm2020/src/app/modules/services/generate-pdf.service.mjs +0 -89
  63. package/esm2020/src/app/modules/services/http.service.mjs +0 -140
  64. package/esm2020/src/app/modules/services/loading/loading.component.mjs +0 -28
  65. package/esm2020/src/app/modules/services/local-storage.service.mjs +0 -115
  66. package/esm2020/src/app/modules/services/message.service.mjs +0 -200
  67. package/esm2020/src/app/modules/services/purchase-order-pdf.service.mjs +0 -178
  68. package/esm2020/src/app/modules/services/session.service.mjs +0 -42
  69. package/esm2020/src/app/modules/services/work-order-pdf.service.mjs +0 -363
  70. package/fesm2015/brainloper-ui.mjs +0 -3914
  71. package/fesm2015/brainloper-ui.mjs.map +0 -1
  72. /package/{esm2020 → esm2022}/brainloper-ui.mjs +0 -0
  73. /package/{esm2020 → esm2022}/public_api.mjs +0 -0
  74. /package/{esm2020 → esm2022}/src/app/modules/brainloper-ui/components/file-input/imagenes/doc.mjs +0 -0
  75. /package/{esm2020 → esm2022}/src/app/modules/brainloper-ui/components/file-input/imagenes/fondoTransparente.mjs +0 -0
  76. /package/{esm2020 → esm2022}/src/app/modules/brainloper-ui/components/file-input/imagenes/pdf.mjs +0 -0
  77. /package/{esm2020 → esm2022}/src/app/modules/interfaces/buttons/button-icon.mjs +0 -0
  78. /package/{esm2020 → esm2022}/src/app/modules/interfaces/buttons/button-lavel-edit.mjs +0 -0
  79. /package/{esm2020 → esm2022}/src/app/modules/interfaces/combos/combos-configuration.mjs +0 -0
  80. /package/{esm2020 → esm2022}/src/app/modules/interfaces/data-table/params.mjs +0 -0
  81. /package/{esm2020 → esm2022}/src/app/modules/interfaces/data-table/rules.mjs +0 -0
  82. /package/{esm2020 → esm2022}/src/app/modules/interfaces/data-table/table-columns.mjs +0 -0
  83. /package/{esm2020 → esm2022}/src/app/modules/interfaces/data-table/table-configuration.mjs +0 -0
  84. /package/{esm2020 → esm2022}/src/app/modules/interfaces/enum/enumActions.mjs +0 -0
  85. /package/{esm2020 → esm2022}/src/app/modules/interfaces/enum/enumRules.mjs +0 -0
  86. /package/{esm2020 → esm2022}/src/app/modules/interfaces/enum/httpResponseType.mjs +0 -0
  87. /package/{esm2020 → esm2022}/src/app/modules/interfaces/file-forms-service/file-forms-params.mjs +0 -0
  88. /package/{esm2020 → esm2022}/src/app/modules/interfaces/file-forms-service/file-input-params.mjs +0 -0
  89. /package/{esm2020 → esm2022}/src/app/modules/interfaces/filters/header-filters.mjs +0 -0
  90. /package/{esm2020 → esm2022}/src/app/modules/interfaces/report/template-pdf-base.mjs +0 -0
  91. /package/{esm2020 → esm2022}/src/app/modules/interfaces/report/template-pdf-ot.mjs +0 -0
  92. /package/{esm2020 → esm2022}/src/app/modules/interfaces/report/template-pdf-purchase-order.mjs +0 -0
  93. /package/{esm2020 → esm2022}/src/app/modules/interfaces/report/template-pfd-fo.mjs +0 -0
  94. /package/{esm2020 → esm2022}/src/app/modules/services/screen-size-util.mjs +0 -0
@@ -0,0 +1,314 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ /** @material modules */
4
+ import { MatButtonModule } from '@angular/material/button';
5
+ import { MatAutocompleteModule } from '@angular/material/autocomplete';
6
+ import { MatCheckboxModule } from '@angular/material/checkbox';
7
+ import { MatDatepickerModule } from '@angular/material/datepicker';
8
+ import { MatFormFieldModule } from '@angular/material/form-field';
9
+ import { MatInputModule } from '@angular/material/input';
10
+ import { MatRadioModule } from '@angular/material/radio';
11
+ import { MatSelectModule } from '@angular/material/select';
12
+ import { MatSliderModule } from '@angular/material/slider';
13
+ import { MatSlideToggleModule } from '@angular/material/slide-toggle';
14
+ import { MatMenuModule } from '@angular/material/menu';
15
+ import { MatSidenavModule } from '@angular/material/sidenav';
16
+ import { MatToolbarModule } from '@angular/material/toolbar';
17
+ import { MatCardModule } from '@angular/material/card';
18
+ import { MatDividerModule } from '@angular/material/divider';
19
+ import { MatExpansionModule } from '@angular/material/expansion';
20
+ import { MatGridListModule } from '@angular/material/grid-list';
21
+ import { MatListModule } from '@angular/material/list';
22
+ import { MatStepperModule } from '@angular/material/stepper';
23
+ import { MatTabsModule } from '@angular/material/tabs';
24
+ import { MatTreeModule } from '@angular/material/tree';
25
+ import { MatButtonToggleModule } from '@angular/material/button-toggle';
26
+ import { MatBadgeModule } from '@angular/material/badge';
27
+ import { MatChipsModule } from '@angular/material/chips';
28
+ import { MatIconModule } from '@angular/material/icon';
29
+ import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
30
+ import { MatProgressBarModule } from '@angular/material/progress-bar';
31
+ import { MatNativeDateModule, MatRippleModule } from '@angular/material/core';
32
+ import { MatBottomSheetModule } from '@angular/material/bottom-sheet';
33
+ import { MatDialogModule } from '@angular/material/dialog';
34
+ import { MatSnackBarModule } from '@angular/material/snack-bar';
35
+ import { MatTooltipModule } from '@angular/material/tooltip';
36
+ import { MatPaginatorModule } from '@angular/material/paginator';
37
+ import { MatSortModule } from '@angular/material/sort';
38
+ import { MatTableModule } from '@angular/material/table';
39
+ /** end @material mdoules */
40
+ /** @Bootstrap module */
41
+ import { NgbModule } from '@ng-bootstrap/ng-bootstrap';
42
+ /** end @Bootstrap module */
43
+ import { FormsModule, ReactiveFormsModule } from '@angular/forms';
44
+ import { HttpClientModule } from '@angular/common/http';
45
+ import { TableModalComponent } from './components/data-table/table-modal/table-modal.component';
46
+ import { CombosComponent } from './components/combos/combos.component';
47
+ import { HttpService } from '../services/http.service';
48
+ //import { MaterialFileInputModule } from 'ngx-material-file-input';
49
+ import { LoadingComponent } from '../services/loading/loading.component';
50
+ import { TemplateOtComponent } from './components/report/template-ot/template-ot.component';
51
+ import { TemplateFuelComponent } from './components/report/template-fuel/template-fuel.component';
52
+ import { BreadCrumbComponent } from './components/bread-crumb/bread-crumb.component';
53
+ import { RouterModule } from '@angular/router';
54
+ import { ButtonIconComponent } from './components/buttons/button-icon/button-icon.component';
55
+ import { CarouselComponent } from './components/carousel/carousel.component';
56
+ import { FiltersComponent } from './components/filters/filters.component';
57
+ import { DataTableComponent } from './components/data-table/data-table.component';
58
+ import { FileInputComponent } from './components/file-input/file-input.component';
59
+ import { ButtonLabelComponent } from './components/buttons/button-label/button-label.component';
60
+ import { SelectFilterComponent } from './components/select-filter/select-filter.component';
61
+ import { CarouselItemDirective } from '../directives/carousel-item.directive';
62
+ import { LottieModule } from 'ngx-lottie';
63
+ import * as i0 from "@angular/core";
64
+ import * as i1 from "@angular/router";
65
+ const Material = [
66
+ MatSlideToggleModule,
67
+ MatProgressBarModule,
68
+ MatRippleModule,
69
+ MatBottomSheetModule,
70
+ MatChipsModule,
71
+ MatTreeModule,
72
+ MatButtonModule,
73
+ MatButtonToggleModule,
74
+ MatBadgeModule,
75
+ MatIconModule,
76
+ MatProgressSpinnerModule,
77
+ MatToolbarModule,
78
+ MatSidenavModule,
79
+ MatMenuModule,
80
+ MatListModule,
81
+ MatDividerModule,
82
+ MatGridListModule,
83
+ MatExpansionModule,
84
+ MatTabsModule,
85
+ MatCardModule,
86
+ MatStepperModule,
87
+ MatFormFieldModule,
88
+ MatInputModule,
89
+ MatSelectModule,
90
+ MatAutocompleteModule,
91
+ MatCheckboxModule,
92
+ MatRadioModule,
93
+ MatDatepickerModule,
94
+ MatTooltipModule,
95
+ MatSnackBarModule,
96
+ MatDialogModule,
97
+ MatTableModule,
98
+ MatSortModule,
99
+ MatPaginatorModule,
100
+ MatSliderModule,
101
+ MatNativeDateModule
102
+ ];
103
+ export class BrainloperUiModule {
104
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BrainloperUiModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
105
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: BrainloperUiModule, declarations: [DataTableComponent,
106
+ TableModalComponent,
107
+ CombosComponent,
108
+ FileInputComponent,
109
+ LoadingComponent,
110
+ TemplateFuelComponent,
111
+ BreadCrumbComponent,
112
+ TemplateOtComponent,
113
+ ButtonLabelComponent,
114
+ ButtonIconComponent,
115
+ CarouselComponent,
116
+ FiltersComponent,
117
+ SelectFilterComponent,
118
+ CarouselItemDirective], imports: [LottieModule,
119
+ CommonModule,
120
+ MatButtonModule, MatSlideToggleModule,
121
+ MatProgressBarModule,
122
+ MatRippleModule,
123
+ MatBottomSheetModule,
124
+ MatChipsModule,
125
+ MatTreeModule,
126
+ MatButtonModule,
127
+ MatButtonToggleModule,
128
+ MatBadgeModule,
129
+ MatIconModule,
130
+ MatProgressSpinnerModule,
131
+ MatToolbarModule,
132
+ MatSidenavModule,
133
+ MatMenuModule,
134
+ MatListModule,
135
+ MatDividerModule,
136
+ MatGridListModule,
137
+ MatExpansionModule,
138
+ MatTabsModule,
139
+ MatCardModule,
140
+ MatStepperModule,
141
+ MatFormFieldModule,
142
+ MatInputModule,
143
+ MatSelectModule,
144
+ MatAutocompleteModule,
145
+ MatCheckboxModule,
146
+ MatRadioModule,
147
+ MatDatepickerModule,
148
+ MatTooltipModule,
149
+ MatSnackBarModule,
150
+ MatDialogModule,
151
+ MatTableModule,
152
+ MatSortModule,
153
+ MatPaginatorModule,
154
+ MatSliderModule,
155
+ MatNativeDateModule, NgbModule,
156
+ FormsModule,
157
+ ReactiveFormsModule,
158
+ HttpClientModule, i1.RouterModule, MatTooltipModule], exports: [MatSlideToggleModule,
159
+ MatProgressBarModule,
160
+ MatRippleModule,
161
+ MatBottomSheetModule,
162
+ MatChipsModule,
163
+ MatTreeModule,
164
+ MatButtonModule,
165
+ MatButtonToggleModule,
166
+ MatBadgeModule,
167
+ MatIconModule,
168
+ MatProgressSpinnerModule,
169
+ MatToolbarModule,
170
+ MatSidenavModule,
171
+ MatMenuModule,
172
+ MatListModule,
173
+ MatDividerModule,
174
+ MatGridListModule,
175
+ MatExpansionModule,
176
+ MatTabsModule,
177
+ MatCardModule,
178
+ MatStepperModule,
179
+ MatFormFieldModule,
180
+ MatInputModule,
181
+ MatSelectModule,
182
+ MatAutocompleteModule,
183
+ MatCheckboxModule,
184
+ MatRadioModule,
185
+ MatDatepickerModule,
186
+ MatTooltipModule,
187
+ MatSnackBarModule,
188
+ MatDialogModule,
189
+ MatTableModule,
190
+ MatSortModule,
191
+ MatPaginatorModule,
192
+ MatSliderModule,
193
+ MatNativeDateModule, DataTableComponent,
194
+ TableModalComponent,
195
+ CombosComponent,
196
+ FileInputComponent,
197
+ LoadingComponent,
198
+ BreadCrumbComponent,
199
+ ButtonLabelComponent,
200
+ ButtonIconComponent,
201
+ NgbModule,
202
+ CarouselComponent,
203
+ FiltersComponent,
204
+ SelectFilterComponent,
205
+ CarouselItemDirective] });
206
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BrainloperUiModule, providers: [
207
+ HttpService
208
+ ], imports: [LottieModule,
209
+ CommonModule,
210
+ MatButtonModule,
211
+ Material,
212
+ NgbModule,
213
+ FormsModule,
214
+ ReactiveFormsModule,
215
+ HttpClientModule,
216
+ RouterModule.forRoot([], {
217
+ canceledNavigationResolution: 'replace',
218
+ paramsInheritanceStrategy: 'emptyOnly',
219
+ urlUpdateStrategy: 'deferred'
220
+ }),
221
+ MatTooltipModule, MatSlideToggleModule,
222
+ MatProgressBarModule,
223
+ MatRippleModule,
224
+ MatBottomSheetModule,
225
+ MatChipsModule,
226
+ MatTreeModule,
227
+ MatButtonModule,
228
+ MatButtonToggleModule,
229
+ MatBadgeModule,
230
+ MatIconModule,
231
+ MatProgressSpinnerModule,
232
+ MatToolbarModule,
233
+ MatSidenavModule,
234
+ MatMenuModule,
235
+ MatListModule,
236
+ MatDividerModule,
237
+ MatGridListModule,
238
+ MatExpansionModule,
239
+ MatTabsModule,
240
+ MatCardModule,
241
+ MatStepperModule,
242
+ MatFormFieldModule,
243
+ MatInputModule,
244
+ MatSelectModule,
245
+ MatAutocompleteModule,
246
+ MatCheckboxModule,
247
+ MatRadioModule,
248
+ MatDatepickerModule,
249
+ MatTooltipModule,
250
+ MatSnackBarModule,
251
+ MatDialogModule,
252
+ MatTableModule,
253
+ MatSortModule,
254
+ MatPaginatorModule,
255
+ MatSliderModule,
256
+ MatNativeDateModule, NgbModule] });
257
+ }
258
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BrainloperUiModule, decorators: [{
259
+ type: NgModule,
260
+ args: [{
261
+ declarations: [
262
+ DataTableComponent,
263
+ TableModalComponent,
264
+ CombosComponent,
265
+ FileInputComponent,
266
+ LoadingComponent,
267
+ TemplateFuelComponent,
268
+ BreadCrumbComponent,
269
+ TemplateOtComponent,
270
+ ButtonLabelComponent,
271
+ ButtonIconComponent,
272
+ CarouselComponent,
273
+ FiltersComponent,
274
+ SelectFilterComponent,
275
+ CarouselItemDirective
276
+ ],
277
+ imports: [
278
+ LottieModule,
279
+ CommonModule,
280
+ MatButtonModule,
281
+ Material,
282
+ NgbModule,
283
+ FormsModule,
284
+ ReactiveFormsModule,
285
+ HttpClientModule,
286
+ RouterModule.forRoot([], {
287
+ canceledNavigationResolution: 'replace',
288
+ paramsInheritanceStrategy: 'emptyOnly',
289
+ urlUpdateStrategy: 'deferred'
290
+ }),
291
+ MatTooltipModule
292
+ ],
293
+ exports: [
294
+ Material,
295
+ DataTableComponent,
296
+ TableModalComponent,
297
+ CombosComponent,
298
+ FileInputComponent,
299
+ LoadingComponent,
300
+ BreadCrumbComponent,
301
+ ButtonLabelComponent,
302
+ ButtonIconComponent,
303
+ NgbModule,
304
+ CarouselComponent,
305
+ FiltersComponent,
306
+ SelectFilterComponent,
307
+ CarouselItemDirective
308
+ ],
309
+ providers: [
310
+ HttpService
311
+ ]
312
+ }]
313
+ }] });
314
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJhaW5sb3Blci11aS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvYnJhaW5sb3Blci11aS9icmFpbmxvcGVyLXVpLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUvQyx3QkFBd0I7QUFFeEIsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ25FLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN0RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxn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cEIsbUJBQW1CO3dCQUNuQixpQkFBaUI7d0JBQ2pCLGdCQUFnQjt3QkFDaEIscUJBQXFCO3dCQUNyQixxQkFBcUI7cUJBQ3hCO29CQUNELE9BQU8sRUFBRTt3QkFDTCxZQUFZO3dCQUNaLFlBQVk7d0JBQ1osZUFBZTt3QkFDZixRQUFRO3dCQUNSLFNBQVM7d0JBQ1QsV0FBVzt3QkFDWCxtQkFBbUI7d0JBQ25CLGdCQUFnQjt3QkFDaEIsWUFBWSxDQUFDLE9BQU8sQ0FBQyxFQUFFLEVBQUU7NEJBQ3JCLDRCQUE0QixFQUFFLFNBQVM7NEJBQ3ZDLHlCQUF5QixFQUFFLFdBQVc7NEJBQ3RDLGlCQUFpQixFQUFFLFVBQVU7eUJBQ2hDLENBQUM7d0JBQ0YsZ0JBQWdCO3FCQUNuQjtvQkFDRCxPQUFPLEVBQUU7d0JBQ0wsUUFBUTt3QkFDUixrQkFBa0I7d0JBQ2xCLG1CQUFtQjt3QkFDbkIsZUFBZTt3QkFDZixrQkFBa0I7d0JBQ2xCLGdCQUFnQjt3QkFDaEIsbUJBQW1CO3dCQUNuQixvQkFBb0I7d0JBQ3BCLG1CQUFtQjt3QkFDbkIsU0FBUzt3QkFDVCxpQkFBaUI7d0JBQ2pCLGdCQUFnQjt3QkFDaEIscUJBQXFCO3dCQUNyQixxQkFBcUI7cUJBQ3hCO29CQUNELFNBQVMsRUFBRTt3QkFDUCxXQUFXO3FCQUNkO2lCQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbi8qKiBAbWF0ZXJpYWwgbW9kdWxlcyAqL1xuXG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgTWF0QXV0b2NvbXBsZXRlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYXV0b2NvbXBsZXRlJztcbmltcG9ydCB7IE1hdENoZWNrYm94TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2hlY2tib3gnO1xuaW1wb3J0IHsgTWF0RGF0ZXBpY2tlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RhdGVwaWNrZXInO1xuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XG5pbXBvcnQgeyBNYXRJbnB1dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcbmltcG9ydCB7IE1hdFJhZGlvTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcmFkaW8nO1xuaW1wb3J0IHsgTWF0U2VsZWN0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2VsZWN0JztcbmltcG9ydCB7IE1hdFNsaWRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NsaWRlcic7XG5pbXBvcnQgeyBNYXRTbGlkZVRvZ2dsZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NsaWRlLXRvZ2dsZSc7XG5pbXBvcnQgeyBNYXRNZW51TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbWVudSc7XG5pbXBvcnQgeyBNYXRTaWRlbmF2TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2lkZW5hdic7XG5pbXBvcnQgeyBNYXRUb29sYmFyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbGJhcic7XG5pbXBvcnQgeyBNYXRDYXJkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2FyZCc7XG5pbXBvcnQgeyBNYXREaXZpZGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGl2aWRlcic7XG5pbXBvcnQgeyBNYXRFeHBhbnNpb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9leHBhbnNpb24nO1xuaW1wb3J0IHsgTWF0R3JpZExpc3RNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9ncmlkLWxpc3QnO1xuaW1wb3J0IHsgTWF0TGlzdE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2xpc3QnO1xuaW1wb3J0IHsgTWF0U3RlcHBlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3N0ZXBwZXInO1xuaW1wb3J0IHsgTWF0VGFic01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RhYnMnO1xuaW1wb3J0IHsgTWF0VHJlZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RyZWUnO1xuaW1wb3J0IHsgTWF0QnV0dG9uVG9nZ2xlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uLXRvZ2dsZSc7XG5pbXBvcnQgeyBNYXRCYWRnZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2JhZGdlJztcbmltcG9ydCB7IE1hdENoaXBzTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2hpcHMnO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgTWF0UHJvZ3Jlc3NTcGlubmVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcHJvZ3Jlc3Mtc3Bpbm5lcic7XG5pbXBvcnQgeyBNYXRQcm9ncmVzc0Jhck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Byb2dyZXNzLWJhcic7XG5pbXBvcnQgeyBNYXROYXRpdmVEYXRlTW9kdWxlLCBNYXRSaXBwbGVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcbmltcG9ydCB7IE1hdEJvdHRvbVNoZWV0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYm90dG9tLXNoZWV0JztcbmltcG9ydCB7IE1hdERpYWxvZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBNYXRTbmFja0Jhck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NuYWNrLWJhcic7XG5pbXBvcnQgeyBNYXRUb29sdGlwTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbHRpcCc7XG5pbXBvcnQgeyBNYXRQYWdpbmF0b3JNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wYWdpbmF0b3InO1xuaW1wb3J0IHsgTWF0U29ydE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NvcnQnO1xuaW1wb3J0IHsgTWF0VGFibGVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90YWJsZSc7XG5cblxuY29uc3QgTWF0ZXJpYWwgPSBbXG4gICAgTWF0U2xpZGVUb2dnbGVNb2R1bGUsXG4gICAgTWF0UHJvZ3Jlc3NCYXJNb2R1bGUsXG4gICAgTWF0UmlwcGxlTW9kdWxlLFxuICAgIE1hdEJvdHRvbVNoZWV0TW9kdWxlLFxuICAgIE1hdENoaXBzTW9kdWxlLFxuICAgIE1hdFRyZWVNb2R1bGUsXG4gICAgTWF0QnV0dG9uTW9kdWxlLFxuICAgIE1hdEJ1dHRvblRvZ2dsZU1vZHVsZSxcbiAgICBNYXRCYWRnZU1vZHVsZSxcbiAgICBNYXRJY29uTW9kdWxlLFxuICAgIE1hdFByb2dyZXNzU3Bpbm5lck1vZHVsZSxcbiAgICBNYXRUb29sYmFyTW9kdWxlLFxuICAgIE1hdFNpZGVuYXZNb2R1bGUsXG4gICAgTWF0TWVudU1vZHVsZSxcbiAgICBNYXRMaXN0TW9kdWxlLFxuICAgIE1hdERpdmlkZXJNb2R1bGUsXG4gICAgTWF0R3JpZExpc3RNb2R1bGUsXG4gICAgTWF0RXhwYW5zaW9uTW9kdWxlLFxuICAgIE1hdFRhYnNNb2R1bGUsXG4gICAgTWF0Q2FyZE1vZHVsZSxcbiAgICBNYXRTdGVwcGVyTW9kdWxlLFxuICAgIE1hdEZvcm1GaWVsZE1vZHVsZSxcbiAgICBNYXRJbnB1dE1vZHVsZSxcbiAgICBNYXRTZWxlY3RNb2R1bGUsXG4gICAgTWF0QXV0b2NvbXBsZXRlTW9kdWxlLFxuICAgIE1hdENoZWNrYm94TW9kdWxlLFxuICAgIE1hdFJhZGlvTW9kdWxlLFxuICAgIE1hdERhdGVwaWNrZXJNb2R1bGUsXG4gICAgTWF0VG9vbHRpcE1vZHVsZSxcbiAgICBNYXRTbmFja0Jhck1vZHVsZSxcbiAgICBNYXREaWFsb2dNb2R1bGUsXG4gICAgTWF0VGFibGVNb2R1bGUsXG4gICAgTWF0U29ydE1vZHVsZSxcbiAgICBNYXRQYWdpbmF0b3JNb2R1bGUsXG4gICAgTWF0U2xpZGVyTW9kdWxlLFxuICAgIE1hdE5hdGl2ZURhdGVNb2R1bGVcbl07XG5cbi8qKiBlbmQgQG1hdGVyaWFsIG1kb3VsZXMgKi9cblxuLyoqIEBCb290c3RyYXAgbW9kdWxlICovXG5pbXBvcnQgeyBOZ2JNb2R1bGUgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XG4vKiogZW5kIEBCb290c3RyYXAgbW9kdWxlICovXG5cbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgSHR0cENsaWVudE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IFRhYmxlTW9kYWxDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZGF0YS10YWJsZS90YWJsZS1tb2RhbC90YWJsZS1tb2RhbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29tYm9zQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2NvbWJvcy9jb21ib3MuY29tcG9uZW50JztcbmltcG9ydCB7IEh0dHBTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvaHR0cC5zZXJ2aWNlJztcbi8vaW1wb3J0IHsgTWF0ZXJpYWxGaWxlSW5wdXRNb2R1bGUgfSBmcm9tICduZ3gtbWF0ZXJpYWwtZmlsZS1pbnB1dCc7XG5pbXBvcnQgeyBMb2FkaW5nQ29tcG9uZW50IH0gZnJvbSAnLi4vc2VydmljZXMvbG9hZGluZy9sb2FkaW5nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUZW1wbGF0ZU90Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3JlcG9ydC90ZW1wbGF0ZS1vdC90ZW1wbGF0ZS1vdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGVtcGxhdGVGdWVsQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3JlcG9ydC90ZW1wbGF0ZS1mdWVsL3RlbXBsYXRlLWZ1ZWwuY29tcG9uZW50JztcbmltcG9ydCB7IEJyZWFkQ3J1bWJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYnJlYWQtY3J1bWIvYnJlYWQtY3J1bWIuY29tcG9uZW50JztcbmltcG9ydCB7IFJvdXRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBCdXR0b25JY29uQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2J1dHRvbnMvYnV0dG9uLWljb24vYnV0dG9uLWljb24uY29tcG9uZW50JztcbmltcG9ydCB7IENhcm91c2VsQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2Nhcm91c2VsL2Nhcm91c2VsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGaWx0ZXJzQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2ZpbHRlcnMvZmlsdGVycy5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGF0YVRhYmxlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2RhdGEtdGFibGUvZGF0YS10YWJsZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgRmlsZUlucHV0Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2ZpbGUtaW5wdXQvZmlsZS1pbnB1dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQnV0dG9uTGFiZWxDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYnV0dG9ucy9idXR0b24tbGFiZWwvYnV0dG9uLWxhYmVsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTZWxlY3RGaWx0ZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvc2VsZWN0LWZpbHRlci9zZWxlY3QtZmlsdGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDYXJvdXNlbEl0ZW1EaXJlY3RpdmUgfSBmcm9tICcuLi9kaXJlY3RpdmVzL2Nhcm91c2VsLWl0ZW0uZGlyZWN0aXZlJztcbmltcG9ydCB7IExvdHRpZU1vZHVsZSB9IGZyb20gJ25neC1sb3R0aWUnO1xuXG5cbkBOZ01vZHVsZSh7XG4gICAgZGVjbGFyYXRpb25zOiBbXG4gICAgICAgIERhdGFUYWJsZUNvbXBvbmVudCxcbiAgICAgICAgVGFibGVNb2RhbENvbXBvbmVudCxcbiAgICAgICAgQ29tYm9zQ29tcG9uZW50LFxuICAgICAgICBGaWxlSW5wdXRDb21wb25lbnQsXG4gICAgICAgIExvYWRpbmdDb21wb25lbnQsXG4gICAgICAgIFRlbXBsYXRlRnVlbENvbXBvbmVudCxcbiAgICAgICAgQnJlYWRDcnVtYkNvbXBvbmVudCxcbiAgICAgICAgVGVtcGxhdGVPdENvbXBvbmVudCxcbiAgICAgICAgQnV0dG9uTGFiZWxDb21wb25lbnQsXG4gICAgICAgIEJ1dHRvbkljb25Db21wb25lbnQsXG4gICAgICAgIENhcm91c2VsQ29tcG9uZW50LFxuICAgICAgICBGaWx0ZXJzQ29tcG9uZW50LFxuICAgICAgICBTZWxlY3RGaWx0ZXJDb21wb25lbnQsXG4gICAgICAgIENhcm91c2VsSXRlbURpcmVjdGl2ZVxuICAgIF0sXG4gICAgaW1wb3J0czogW1xuICAgICAgICBMb3R0aWVNb2R1bGUsXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICAgICAgTWF0QnV0dG9uTW9kdWxlLFxuICAgICAgICBNYXRlcmlhbCxcbiAgICAgICAgTmdiTW9kdWxlLFxuICAgICAgICBGb3Jtc01vZHVsZSxcbiAgICAgICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICAgICAgSHR0cENsaWVudE1vZHVsZSxcbiAgICAgICAgUm91dGVyTW9kdWxlLmZvclJvb3QoW10sIHtcbiAgICAgICAgICAgIGNhbmNlbGVkTmF2aWdhdGlvblJlc29sdXRpb246ICdyZXBsYWNlJyxcbiAgICAgICAgICAgIHBhcmFtc0luaGVyaXRhbmNlU3RyYXRlZ3k6ICdlbXB0eU9ubHknLFxuICAgICAgICAgICAgdXJsVXBkYXRlU3RyYXRlZ3k6ICdkZWZlcnJlZCdcbiAgICAgICAgfSksXG4gICAgICAgIE1hdFRvb2x0aXBNb2R1bGVcbiAgICBdLFxuICAgIGV4cG9ydHM6IFtcbiAgICAgICAgTWF0ZXJpYWwsXG4gICAgICAgIERhdGFUYWJsZUNvbXBvbmVudCxcbiAgICAgICAgVGFibGVNb2RhbENvbXBvbmVudCxcbiAgICAgICAgQ29tYm9zQ29tcG9uZW50LFxuICAgICAgICBGaWxlSW5wdXRDb21wb25lbnQsXG4gICAgICAgIExvYWRpbmdDb21wb25lbnQsXG4gICAgICAgIEJyZWFkQ3J1bWJDb21wb25lbnQsXG4gICAgICAgIEJ1dHRvbkxhYmVsQ29tcG9uZW50LFxuICAgICAgICBCdXR0b25JY29uQ29tcG9uZW50LFxuICAgICAgICBOZ2JNb2R1bGUsXG4gICAgICAgIENhcm91c2VsQ29tcG9uZW50LFxuICAgICAgICBGaWx0ZXJzQ29tcG9uZW50LFxuICAgICAgICBTZWxlY3RGaWx0ZXJDb21wb25lbnQsXG4gICAgICAgIENhcm91c2VsSXRlbURpcmVjdGl2ZVxuICAgIF0sXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIEh0dHBTZXJ2aWNlXG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBCcmFpbmxvcGVyVWlNb2R1bGUgeyB9XG4iXX0=
@@ -0,0 +1,30 @@
1
+ import { Component, EventEmitter, Input, Output } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/router";
4
+ import * as i2 from "@angular/common";
5
+ export class BreadCrumbComponent {
6
+ router;
7
+ menu = [];
8
+ selectRouter = new EventEmitter();
9
+ constructor(router) {
10
+ this.router = router;
11
+ }
12
+ ngOnInit() {
13
+ }
14
+ handlerRouter(menu) {
15
+ if (menu.router != null)
16
+ this.router.navigate([menu.router]);
17
+ this.selectRouter.emit(menu);
18
+ }
19
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BreadCrumbComponent, deps: [{ token: i1.Router }], target: i0.ɵɵFactoryTarget.Component });
20
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: BreadCrumbComponent, selector: "app-bread-crumb", inputs: { menu: "menu" }, outputs: { selectRouter: "selectRouter" }, ngImport: i0, template: "<div aria-label=\"breadcrumb\">\n <ol class=\"breadcrumb\">\n <li *ngFor=\"let m of menu\" [class]=\"m.current?'active':''\" class=\"breadcrumb-item\" (click)=\"handlerRouter(m)\">{{m.name}}</li>\n </ol>\n</div>\n", styles: [".breadcrumb-item{cursor:pointer}.breadcrumb{background-color:#b7b9bb!important;padding:10px;margin:0}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
21
+ }
22
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BreadCrumbComponent, decorators: [{
23
+ type: Component,
24
+ args: [{ selector: 'app-bread-crumb', template: "<div aria-label=\"breadcrumb\">\n <ol class=\"breadcrumb\">\n <li *ngFor=\"let m of menu\" [class]=\"m.current?'active':''\" class=\"breadcrumb-item\" (click)=\"handlerRouter(m)\">{{m.name}}</li>\n </ol>\n</div>\n", styles: [".breadcrumb-item{cursor:pointer}.breadcrumb{background-color:#b7b9bb!important;padding:10px;margin:0}\n"] }]
25
+ }], ctorParameters: () => [{ type: i1.Router }], propDecorators: { menu: [{
26
+ type: Input
27
+ }], selectRouter: [{
28
+ type: Output
29
+ }] } });
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlYWQtY3J1bWIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9tb2R1bGVzL2JyYWlubG9wZXItdWkvY29tcG9uZW50cy9icmVhZC1jcnVtYi9icmVhZC1jcnVtYi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvYnJhaW5sb3Blci11aS9jb21wb25lbnRzL2JyZWFkLWNydW1iL2JyZWFkLWNydW1iLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7QUFRL0UsTUFBTSxPQUFPLG1CQUFtQjtJQUtyQjtJQUpBLElBQUksR0FBYyxFQUFFLENBQUE7SUFDbkIsWUFBWSxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7SUFFakQsWUFDUyxNQUFlO1FBQWYsV0FBTSxHQUFOLE1BQU0sQ0FBUztJQUNwQixDQUFDO0lBRUwsUUFBUTtJQUNSLENBQUM7SUFFTSxhQUFhLENBQUMsSUFBUTtRQUMzQixJQUFHLElBQUksQ0FBQyxNQUFNLElBQUksSUFBSTtZQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUE7UUFDM0QsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7SUFDOUIsQ0FBQzt3R0FkVSxtQkFBbUI7NEZBQW5CLG1CQUFtQiw0SENSaEMsOE5BS0E7OzRGREdhLG1CQUFtQjtrQkFML0IsU0FBUzsrQkFDRSxpQkFBaUI7MkVBS2xCLElBQUk7c0JBQVosS0FBSztnQkFDSSxZQUFZO3NCQUFyQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWJyZWFkLWNydW1iJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2JyZWFkLWNydW1iLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vYnJlYWQtY3J1bWIuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBCcmVhZENydW1iQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgbWVudTpBcnJheTxhbnk+ID0gW11cbiAgQE91dHB1dCgpIHNlbGVjdFJvdXRlciA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyByb3V0ZXIgOiBSb3V0ZXJcbiAgKSB7IH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgfVxuXG4gIHB1YmxpYyBoYW5kbGVyUm91dGVyKG1lbnU6YW55KXtcbiAgICBpZihtZW51LnJvdXRlciAhPSBudWxsKSB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbbWVudS5yb3V0ZXJdKVxuICAgIHRoaXMuc2VsZWN0Um91dGVyLmVtaXQobWVudSlcbiAgfVxuXG59XG5cblxuXG4iLCI8ZGl2IGFyaWEtbGFiZWw9XCJicmVhZGNydW1iXCI+XG4gIDxvbCBjbGFzcz1cImJyZWFkY3J1bWJcIj5cbiAgICAgIDxsaSAqbmdGb3I9XCJsZXQgbSBvZiBtZW51XCIgW2NsYXNzXT1cIm0uY3VycmVudD8nYWN0aXZlJzonJ1wiIGNsYXNzPVwiYnJlYWRjcnVtYi1pdGVtXCIgKGNsaWNrKT1cImhhbmRsZXJSb3V0ZXIobSlcIj57e20ubmFtZX19PC9saT5cbiAgPC9vbD5cbjwvZGl2PlxuIl19
@@ -0,0 +1,23 @@
1
+ import { Component, EventEmitter, Input, Output } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/common";
4
+ import * as i2 from "@angular/material/core";
5
+ import * as i3 from "@angular/material/tooltip";
6
+ export class ButtonIconComponent {
7
+ clickButton = new EventEmitter();
8
+ items;
9
+ constructor() { }
10
+ ngOnInit() {
11
+ }
12
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ButtonIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
13
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ButtonIconComponent, selector: "app-button-icon", inputs: { items: "items" }, outputs: { clickButton: "clickButton" }, ngImport: i0, template: "<div style=\"height: 100%\" class=\"d-flex flex-wrap justify-content-around align-items-center\">\n <div *ngFor=\"let item of items\" [class]=\"items.length > 6 ? 'col-3' : 'col-4'\">\n <div *ngIf=\"item.active\" class=\"icon-menu\" matTooltip=\"{{ item.description }}\" matTooltipPosition=\"above\" matTooltipClass=\"custom-tooltip\">\n <button style=\"border: none; background: transparent\">\n <div [class]=\"'icon mat-elevation-z6'\" [style.background]=\"item.color\" matRipple (click)=\"clickButton.emit(item)\">\n <i [class]=\"'fa iconFa fa-' + item.icon\" [style.color]=\"item.iconColor ?? 'white'\"></i>\n </div>\n </button>\n <div>\n <h3 style=\"text-align: center; line-height: 20px\">{{ item.name }}</h3>\n </div>\n </div>\n </div>\n</div>\n\n\n\n", styles: ["div.icon-menu{display:flex;align-items:center;flex-direction:column}div.icon{width:120px;background-color:#fff;height:120px;border-radius:22px;cursor:pointer;display:flex;justify-content:center;align-items:center}.iconFa{width:70px;height:70px}font{font-size:.6rem}::ng-deep .custom-tooltip{background-color:#fbe870!important;color:#000!important;line-height:17px!important;font-size:.8rem}@media screen and (max-height: 360px){div.icon{width:90px;height:90px;border-radius:18px}.iconFa{width:50px;height:50px}h3{font-size:70%}}@media screen and (max-width: 360px){div.icon{width:80px;height:80px;border-radius:20px}.iconFa{width:50px;height:50px}h3{font-size:70%}}\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: i2.MatRipple, selector: "[mat-ripple], [matRipple]", inputs: ["matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleRadius", "matRippleAnimation", "matRippleDisabled", "matRippleTrigger"], exportAs: ["matRipple"] }, { kind: "directive", type: i3.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }] });
14
+ }
15
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ButtonIconComponent, decorators: [{
16
+ type: Component,
17
+ args: [{ selector: 'app-button-icon', template: "<div style=\"height: 100%\" class=\"d-flex flex-wrap justify-content-around align-items-center\">\n <div *ngFor=\"let item of items\" [class]=\"items.length > 6 ? 'col-3' : 'col-4'\">\n <div *ngIf=\"item.active\" class=\"icon-menu\" matTooltip=\"{{ item.description }}\" matTooltipPosition=\"above\" matTooltipClass=\"custom-tooltip\">\n <button style=\"border: none; background: transparent\">\n <div [class]=\"'icon mat-elevation-z6'\" [style.background]=\"item.color\" matRipple (click)=\"clickButton.emit(item)\">\n <i [class]=\"'fa iconFa fa-' + item.icon\" [style.color]=\"item.iconColor ?? 'white'\"></i>\n </div>\n </button>\n <div>\n <h3 style=\"text-align: center; line-height: 20px\">{{ item.name }}</h3>\n </div>\n </div>\n </div>\n</div>\n\n\n\n", styles: ["div.icon-menu{display:flex;align-items:center;flex-direction:column}div.icon{width:120px;background-color:#fff;height:120px;border-radius:22px;cursor:pointer;display:flex;justify-content:center;align-items:center}.iconFa{width:70px;height:70px}font{font-size:.6rem}::ng-deep .custom-tooltip{background-color:#fbe870!important;color:#000!important;line-height:17px!important;font-size:.8rem}@media screen and (max-height: 360px){div.icon{width:90px;height:90px;border-radius:18px}.iconFa{width:50px;height:50px}h3{font-size:70%}}@media screen and (max-width: 360px){div.icon{width:80px;height:80px;border-radius:20px}.iconFa{width:50px;height:50px}h3{font-size:70%}}\n"] }]
18
+ }], ctorParameters: () => [], propDecorators: { clickButton: [{
19
+ type: Output
20
+ }], items: [{
21
+ type: Input
22
+ }] } });
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLWljb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9tb2R1bGVzL2JyYWlubG9wZXItdWkvY29tcG9uZW50cy9idXR0b25zL2J1dHRvbi1pY29uL2J1dHRvbi1pY29uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9icmFpbmxvcGVyLXVpL2NvbXBvbmVudHMvYnV0dG9ucy9idXR0b24taWNvbi9idXR0b24taWNvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7OztBQU8vRSxNQUFNLE9BQU8sbUJBQW1CO0lBRXBCLFdBQVcsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFBO0lBQ3RDLEtBQUssQ0FBVztJQUV6QixnQkFBZ0IsQ0FBQztJQUVqQixRQUFRO0lBQ1IsQ0FBQzt3R0FSVSxtQkFBbUI7NEZBQW5CLG1CQUFtQiw0SENQaEMsa3pCQWlCQTs7NEZEVmEsbUJBQW1CO2tCQUwvQixTQUFTOytCQUNFLGlCQUFpQjt3REFNakIsV0FBVztzQkFBcEIsTUFBTTtnQkFDRSxLQUFLO3NCQUFiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1idXR0b24taWNvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9idXR0b24taWNvbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2J1dHRvbi1pY29uLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQnV0dG9uSWNvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgQE91dHB1dCgpIGNsaWNrQnV0dG9uID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KClcbiAgQElucHV0KCkgaXRlbXM6QXJyYXk8YW55PlxuXG4gIGNvbnN0cnVjdG9yKCkgeyB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gIH1cblxufVxuIiwiPGRpdiBzdHlsZT1cImhlaWdodDogMTAwJVwiIGNsYXNzPVwiZC1mbGV4IGZsZXgtd3JhcCBqdXN0aWZ5LWNvbnRlbnQtYXJvdW5kIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxuICA8ZGl2ICpuZ0Zvcj1cImxldCBpdGVtIG9mIGl0ZW1zXCIgW2NsYXNzXT1cIml0ZW1zLmxlbmd0aCA+IDYgPyAnY29sLTMnIDogJ2NvbC00J1wiPlxuICAgIDxkaXYgKm5nSWY9XCJpdGVtLmFjdGl2ZVwiIGNsYXNzPVwiaWNvbi1tZW51XCIgbWF0VG9vbHRpcD1cInt7IGl0ZW0uZGVzY3JpcHRpb24gfX1cIiBtYXRUb29sdGlwUG9zaXRpb249XCJhYm92ZVwiIG1hdFRvb2x0aXBDbGFzcz1cImN1c3RvbS10b29sdGlwXCI+XG4gICAgICA8YnV0dG9uIHN0eWxlPVwiYm9yZGVyOiBub25lOyBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudFwiPlxuICAgICAgICA8ZGl2IFtjbGFzc109XCInaWNvbiBtYXQtZWxldmF0aW9uLXo2J1wiIFtzdHlsZS5iYWNrZ3JvdW5kXT1cIml0ZW0uY29sb3JcIiBtYXRSaXBwbGUgKGNsaWNrKT1cImNsaWNrQnV0dG9uLmVtaXQoaXRlbSlcIj5cbiAgICAgICAgICA8aSBbY2xhc3NdPVwiJ2ZhIGljb25GYSBmYS0nICsgaXRlbS5pY29uXCIgW3N0eWxlLmNvbG9yXT1cIml0ZW0uaWNvbkNvbG9yID8/ICd3aGl0ZSdcIj48L2k+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9idXR0b24+XG4gICAgICA8ZGl2PlxuICAgICAgICA8aDMgc3R5bGU9XCJ0ZXh0LWFsaWduOiBjZW50ZXI7IGxpbmUtaGVpZ2h0OiAyMHB4XCI+e3sgaXRlbS5uYW1lIH19PC9oMz5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuXG5cblxuIl19
@@ -0,0 +1,83 @@
1
+ import { Component, Input, Output, EventEmitter } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/common";
4
+ import * as i2 from "@angular/material/icon";
5
+ import * as i3 from "@angular/material/input";
6
+ import * as i4 from "@angular/material/tooltip";
7
+ import * as i5 from "@angular/forms";
8
+ export class ButtonLabelComponent {
9
+ constructor() { }
10
+ updateLabel = new EventEmitter();
11
+ labels = [];
12
+ labelsEdit = [];
13
+ color = null;
14
+ iconColor = null;
15
+ modeEdit = [];
16
+ currentValueToEdit = "";
17
+ indexToedit = -1;
18
+ spanElement;
19
+ initEventClink = false;
20
+ ngOnInit() {
21
+ }
22
+ ngOnChanges(changes) {
23
+ if (changes) {
24
+ if (changes.labelsEdit && !this.initEventClink && this.labelsEdit.length > 0 && this.labelsEdit.find(x => x.edit == true)) {
25
+ document.addEventListener('click', ($event) => this.onPageClick($event));
26
+ this.initEventClink = true;
27
+ }
28
+ }
29
+ }
30
+ finishEditLabel(index) {
31
+ this.labelsEdit[index].value = this.currentValueToEdit;
32
+ this.modeEdit[index] = false;
33
+ this.updateLabel.emit({
34
+ value: this.labelsEdit[index].value,
35
+ labels: this.labelsEdit[index].label,
36
+ position: index
37
+ });
38
+ }
39
+ editLabel(index) {
40
+ this.spanElement = document.getElementById('button-edit-' + index);
41
+ this.currentValueToEdit = this.labelsEdit[index].value;
42
+ this.modeEdit[index] = true;
43
+ this.indexToedit = index;
44
+ }
45
+ onPageClick($event) {
46
+ if (!ButtonLabelComponent.isDescendant($event.target, this.spanElement) && this.modeEdit) {
47
+ for (let [index, value] of this.modeEdit.entries()) {
48
+ this.modeEdit[index] = this.indexToedit == index ? true : false;
49
+ }
50
+ }
51
+ this.indexToedit = -1;
52
+ }
53
+ static isDescendant(child, parent) {
54
+ let node = child.parentNode;
55
+ while (node != null) {
56
+ if (node === parent) {
57
+ return true;
58
+ }
59
+ node = node.parentNode;
60
+ }
61
+ return false;
62
+ }
63
+ ngOnDestroy() {
64
+ document.removeEventListener('click', ($event) => this.onPageClick($event));
65
+ }
66
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ButtonLabelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
67
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ButtonLabelComponent, selector: "app-button-label", inputs: { labels: "labels", labelsEdit: "labelsEdit", color: "color", iconColor: "iconColor" }, outputs: { updateLabel: "updateLabel" }, usesOnChanges: true, ngImport: i0, template: "<div *ngIf=\"labels\" class=\"d-flex justify-content-center my-3 flex-wrap\">\n <div *ngFor=\"let item of labels;\">\n <h4 *ngIf=\"item && item != ''\" class=\"mat-elevation-z2 label-text d-flex d-flex-row\" [style.background]=\"color?color:'#343a401a'\">\n {{item}}\n </h4>\n </div>\n</div>\n\n<div *ngIf=\"labelsEdit\" class=\"d-flex justify-content-center my-3 flex-wrap\">\n <div *ngFor=\"let item of labelsEdit; let i = index\">\n <h4 *ngIf=\"item && item != ''\" class=\"mat-elevation-z2 label-text d-flex d-flex-row\" [style.background]=\"color?color:'#343a401a'\" [id]=\"'button-edit-' + i\">\n <h6 *ngIf=\"item.label\" class=\"mr-1 font-weight-bold m-0\">{{item.label}} </h6>\n <div *ngIf=\"!modeEdit[i]\">{{item.value}}</div>\n <div class=\"cursor-pointer\" (click)='editLabel(i)' *ngIf=\"!modeEdit[i] && item.edit\" matTooltip=\"Editar\" matTooltipPosition=\"above\">\n <mat-icon class=\"ml-1 pencil-edit cursor-pointer\" matTooltip=\"Editar\" matTooltipPosition=\"above\" [style.color]=\"iconColor\">edit</mat-icon>\n </div>\n\n <input *ngIf=\"modeEdit[i] && item.edit\" type=\"text\" [(ngModel)]='currentValueToEdit' matInput placeholder=\"Filtrar\">\n\n <div class=\"cursor-pointer\" (click)='finishEditLabel(i)' *ngIf=\"modeEdit[i] && item.edit\" matTooltip=\"Aceptar\" matTooltipPosition=\"above\">\n <i class=\"fa fa-check btn-accion\" style=\"margin-left: 15px;\"></i>\n </div>\n\n </h4>\n </div>\n</div>\n", styles: [".label-text{padding:5px;margin:5px 10px;border-radius:10px;text-decoration:center;font-weight:500}.pencil-edit{font-size:16px;display:flex;align-items:center;justify-content:center}.cursor-pointer{cursor:pointer}\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: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i3.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "directive", type: i4.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: i5.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: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
68
+ }
69
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ButtonLabelComponent, decorators: [{
70
+ type: Component,
71
+ args: [{ selector: 'app-button-label', template: "<div *ngIf=\"labels\" class=\"d-flex justify-content-center my-3 flex-wrap\">\n <div *ngFor=\"let item of labels;\">\n <h4 *ngIf=\"item && item != ''\" class=\"mat-elevation-z2 label-text d-flex d-flex-row\" [style.background]=\"color?color:'#343a401a'\">\n {{item}}\n </h4>\n </div>\n</div>\n\n<div *ngIf=\"labelsEdit\" class=\"d-flex justify-content-center my-3 flex-wrap\">\n <div *ngFor=\"let item of labelsEdit; let i = index\">\n <h4 *ngIf=\"item && item != ''\" class=\"mat-elevation-z2 label-text d-flex d-flex-row\" [style.background]=\"color?color:'#343a401a'\" [id]=\"'button-edit-' + i\">\n <h6 *ngIf=\"item.label\" class=\"mr-1 font-weight-bold m-0\">{{item.label}} </h6>\n <div *ngIf=\"!modeEdit[i]\">{{item.value}}</div>\n <div class=\"cursor-pointer\" (click)='editLabel(i)' *ngIf=\"!modeEdit[i] && item.edit\" matTooltip=\"Editar\" matTooltipPosition=\"above\">\n <mat-icon class=\"ml-1 pencil-edit cursor-pointer\" matTooltip=\"Editar\" matTooltipPosition=\"above\" [style.color]=\"iconColor\">edit</mat-icon>\n </div>\n\n <input *ngIf=\"modeEdit[i] && item.edit\" type=\"text\" [(ngModel)]='currentValueToEdit' matInput placeholder=\"Filtrar\">\n\n <div class=\"cursor-pointer\" (click)='finishEditLabel(i)' *ngIf=\"modeEdit[i] && item.edit\" matTooltip=\"Aceptar\" matTooltipPosition=\"above\">\n <i class=\"fa fa-check btn-accion\" style=\"margin-left: 15px;\"></i>\n </div>\n\n </h4>\n </div>\n</div>\n", styles: [".label-text{padding:5px;margin:5px 10px;border-radius:10px;text-decoration:center;font-weight:500}.pencil-edit{font-size:16px;display:flex;align-items:center;justify-content:center}.cursor-pointer{cursor:pointer}\n"] }]
72
+ }], ctorParameters: () => [], propDecorators: { updateLabel: [{
73
+ type: Output
74
+ }], labels: [{
75
+ type: Input
76
+ }], labelsEdit: [{
77
+ type: Input
78
+ }], color: [{
79
+ type: Input
80
+ }], iconColor: [{
81
+ type: Input
82
+ }] } });
83
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLWxhYmVsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9icmFpbmxvcGVyLXVpL2NvbXBvbmVudHMvYnV0dG9ucy9idXR0b24tbGFiZWwvYnV0dG9uLWxhYmVsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9icmFpbmxvcGVyLXVpL2NvbXBvbmVudHMvYnV0dG9ucy9idXR0b24tbGFiZWwvYnV0dG9uLWxhYmVsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxZQUFZLEVBQTRCLE1BQU0sZUFBZSxDQUFDOzs7Ozs7O0FBT3pHLE1BQU0sT0FBTyxvQkFBb0I7SUFFL0IsZ0JBQWdCLENBQUM7SUFFUCxXQUFXLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQTtJQUN0QyxNQUFNLEdBQWtCLEVBQUUsQ0FBQTtJQUMxQixVQUFVLEdBQWUsRUFBRSxDQUFBO0lBQzNCLEtBQUssR0FBVSxJQUFJLENBQUE7SUFDbkIsU0FBUyxHQUFVLElBQUksQ0FBQTtJQUV6QixRQUFRLEdBQW1CLEVBQUUsQ0FBQTtJQUM3QixrQkFBa0IsR0FBVyxFQUFFLENBQUE7SUFFOUIsV0FBVyxHQUFVLENBQUMsQ0FBQyxDQUFBO0lBQy9CLFdBQVcsQ0FBYztJQUNqQixjQUFjLEdBQUcsS0FBSyxDQUFBO0lBRTlCLFFBQVE7SUFDUixDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLElBQUcsT0FBTyxFQUFDLENBQUM7WUFDVixJQUFHLE9BQU8sQ0FBQyxVQUFVLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxJQUFJLENBQUMsVUFBVSxD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YixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBPbkNoYW5nZXMsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWJ1dHRvbi1sYWJlbCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9idXR0b24tbGFiZWwuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9idXR0b24tbGFiZWwuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBCdXR0b25MYWJlbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcblxuICBjb25zdHJ1Y3RvcigpIHsgfVxuXG4gIEBPdXRwdXQoKSB1cGRhdGVMYWJlbCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpXG4gIEBJbnB1dCgpIGxhYmVsczogQXJyYXk8c3RyaW5nPiA9IFtdXG4gIEBJbnB1dCgpIGxhYmVsc0VkaXQ6IEFycmF5PGFueT4gPSBbXVxuICBASW5wdXQoKSBjb2xvcjpzdHJpbmcgPSBudWxsXG4gIEBJbnB1dCgpIGljb25Db2xvcjpzdHJpbmcgPSBudWxsXG5cbiAgcHVibGljIG1vZGVFZGl0OiBBcnJheTxib29sZWFuPiA9IFtdXG4gIHB1YmxpYyBjdXJyZW50VmFsdWVUb0VkaXQ6IHN0cmluZyA9IFwiXCJcblxuICBwcml2YXRlIGluZGV4VG9lZGl0Om51bWJlciA9IC0xXG4gIHNwYW5FbGVtZW50OiBIVE1MRWxlbWVudDtcbiAgcHJpdmF0ZSBpbml0RXZlbnRDbGluayA9IGZhbHNlXG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYoY2hhbmdlcyl7XG4gICAgICBpZihjaGFuZ2VzLmxhYmVsc0VkaXQgJiYgIXRoaXMuaW5pdEV2ZW50Q2xpbmsgJiYgdGhpcy5sYWJlbHNFZGl0Lmxlbmd0aCA+IDAgJiYgdGhpcy5sYWJlbHNFZGl0LmZpbmQoeCA9PiB4LmVkaXQgPT0gdHJ1ZSkpe1xuICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsICgkZXZlbnQpID0+IHRoaXMub25QYWdlQ2xpY2soJGV2ZW50KSk7XG4gICAgICAgIHRoaXMuaW5pdEV2ZW50Q2xpbmsgPSB0cnVlXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgZmluaXNoRWRpdExhYmVsKGluZGV4Om51bWJlcil7XG4gICAgdGhpcy5sYWJlbHNFZGl0W2luZGV4XS52YWx1ZSA9IHRoaXMuY3VycmVudFZhbHVlVG9FZGl0XG4gICAgdGhpcy5tb2RlRWRpdFtpbmRleF0gPSBmYWxzZVxuICAgIHRoaXMudXBkYXRlTGFiZWwuZW1pdCh7XG4gICAgICB2YWx1ZTogdGhpcy5sYWJlbHNFZGl0W2luZGV4XS52YWx1ZSxcbiAgICAgIGxhYmVsczogdGhpcy5sYWJlbHNFZGl0W2luZGV4XS5sYWJlbCxcbiAgICAgIHBvc2l0aW9uOiBpbmRleFxuICAgIH0pXG4gIH1cblxuICBlZGl0TGFiZWwoaW5kZXg6bnVtYmVyKXtcbiAgICB0aGlzLnNwYW5FbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2J1dHRvbi1lZGl0LScgKyBpbmRleCk7XG4gICAgdGhpcy5jdXJyZW50VmFsdWVUb0VkaXQgPSB0aGlzLmxhYmVsc0VkaXRbaW5kZXhdLnZhbHVlXG4gICAgdGhpcy5tb2RlRWRpdFtpbmRleF0gPSB0cnVlXG4gICAgdGhpcy5pbmRleFRvZWRpdCA9IGluZGV4XG4gIH1cblxuICBwdWJsaWMgb25QYWdlQ2xpY2soJGV2ZW50OiBNb3VzZUV2ZW50KXtcbiAgICBpZiAoIUJ1dHRvbkxhYmVsQ29tcG9uZW50LmlzRGVzY2VuZGFudCgkZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50LCB0aGlzLnNwYW5FbGVtZW50KSAmJiB0aGlzLm1vZGVFZGl0KXtcbiAgICAgIGZvciAobGV0IFtpbmRleCwgdmFsdWVdIG9mIHRoaXMubW9kZUVkaXQuZW50cmllcygpKSB7XG4gICAgICAgIHRoaXMubW9kZUVkaXRbaW5kZXhdID0gdGhpcy5pbmRleFRvZWRpdCA9PSBpbmRleD90cnVlOmZhbHNlXG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuaW5kZXhUb2VkaXQgPSAtMVxuICB9XG5cbiAgc3RhdGljIGlzRGVzY2VuZGFudChjaGlsZDogSFRNTEVsZW1lbnQsIHBhcmVudDogSFRNTEVsZW1lbnQpIHtcbiAgICBsZXQgbm9kZSA9IGNoaWxkLnBhcmVudE5vZGU7XG4gICAgd2hpbGUgKG5vZGUgIT0gbnVsbCkge1xuICAgICAgaWYgKG5vZGUgPT09IHBhcmVudCkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIG5vZGUgPSBub2RlLnBhcmVudE5vZGU7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKCRldmVudCkgPT4gdGhpcy5vblBhZ2VDbGljaygkZXZlbnQpKTtcbiAgfVxuXG59XG5cblxuIiwiPGRpdiAqbmdJZj1cImxhYmVsc1wiIGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgbXktMyBmbGV4LXdyYXBcIj5cbiAgPGRpdiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBsYWJlbHM7XCI+XG4gICAgPGg0ICpuZ0lmPVwiaXRlbSAmJiBpdGVtICE9ICcnXCIgY2xhc3M9XCJtYXQtZWxldmF0aW9uLXoyIGxhYmVsLXRleHQgZC1mbGV4IGQtZmxleC1yb3dcIiBbc3R5bGUuYmFja2dyb3VuZF09XCJjb2xvcj9jb2xvcjonIzM0M2E0MDFhJ1wiPlxuICAgICAge3tpdGVtfX1cbiAgICA8L2g0PlxuICA8L2Rpdj5cbjwvZGl2PlxuXG48ZGl2ICpuZ0lmPVwibGFiZWxzRWRpdFwiIGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgbXktMyBmbGV4LXdyYXBcIj5cbiAgPGRpdiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBsYWJlbHNFZGl0OyBsZXQgaSA9IGluZGV4XCI+XG4gICAgPGg0ICpuZ0lmPVwiaXRlbSAmJiBpdGVtICE9ICcnXCIgY2xhc3M9XCJtYXQtZWxldmF0aW9uLXoyIGxhYmVsLXRleHQgZC1mbGV4IGQtZmxleC1yb3dcIiBbc3R5bGUuYmFja2dyb3VuZF09XCJjb2xvcj9jb2xvcjonIzM0M2E0MDFhJ1wiIFtpZF09XCInYnV0dG9uLWVkaXQtJyArIGlcIj5cbiAgICAgIDxoNiAqbmdJZj1cIml0ZW0ubGFiZWxcIiBjbGFzcz1cIm1yLTEgZm9udC13ZWlnaHQtYm9sZCBtLTBcIj57e2l0ZW0ubGFiZWx9fSA8L2g2PlxuICAgICAgPGRpdiAqbmdJZj1cIiFtb2RlRWRpdFtpXVwiPnt7aXRlbS52YWx1ZX19PC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPSdlZGl0TGFiZWwoaSknICpuZ0lmPVwiIW1vZGVFZGl0W2ldICYmIGl0ZW0uZWRpdFwiIG1hdFRvb2x0aXA9XCJFZGl0YXJcIiBtYXRUb29sdGlwUG9zaXRpb249XCJhYm92ZVwiPlxuICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJtbC0xIHBlbmNpbC1lZGl0IGN1cnNvci1wb2ludGVyXCIgbWF0VG9vbHRpcD1cIkVkaXRhclwiIG1hdFRvb2x0aXBQb3NpdGlvbj1cImFib3ZlXCIgW3N0eWxlLmNvbG9yXT1cImljb25Db2xvclwiPmVkaXQ8L21hdC1pY29uPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxpbnB1dCAqbmdJZj1cIm1vZGVFZGl0W2ldICYmIGl0ZW0uZWRpdFwiIHR5cGU9XCJ0ZXh0XCIgWyhuZ01vZGVsKV09J2N1cnJlbnRWYWx1ZVRvRWRpdCcgbWF0SW5wdXQgcGxhY2Vob2xkZXI9XCJGaWx0cmFyXCI+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiIChjbGljayk9J2ZpbmlzaEVkaXRMYWJlbChpKScgKm5nSWY9XCJtb2RlRWRpdFtpXSAmJiBpdGVtLmVkaXRcIiBtYXRUb29sdGlwPVwiQWNlcHRhclwiIG1hdFRvb2x0aXBQb3NpdGlvbj1cImFib3ZlXCI+XG4gICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtY2hlY2sgYnRuLWFjY2lvblwiIHN0eWxlPVwibWFyZ2luLWxlZnQ6IDE1cHg7XCI+PC9pPlxuICAgICAgPC9kaXY+XG5cbiAgICA8L2g0PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19