intelica-library-ui 0.1.128 → 0.1.129

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.
@@ -23,17 +23,22 @@ import * as i3 from 'primeng/radiobutton';
23
23
  import { RadioButtonModule } from 'primeng/radiobutton';
24
24
  import * as i1$2 from 'primeng/popover';
25
25
  import { Popover, PopoverModule } from 'primeng/popover';
26
- import { InputText } from 'primeng/inputtext';
27
- import { Select } from 'primeng/select';
26
+ import { InputText, InputTextModule } from 'primeng/inputtext';
27
+ import * as i5$1 from 'primeng/select';
28
+ import { Select, SelectModule } from 'primeng/select';
28
29
  import * as i3$1 from 'primeng/api';
29
30
  import { InputGroupAddonModule } from 'primeng/inputgroupaddon';
30
31
  import * as i3$2 from 'primeng/ripple';
31
32
  import { RippleModule } from 'primeng/ripple';
32
- import { Dialog } from 'primeng/dialog';
33
- import * as echarts from 'echarts';
33
+ import * as i2$3 from 'primeng/datepicker';
34
+ import { DatePickerModule } from 'primeng/datepicker';
34
35
  import * as i2$2 from 'primeng/multiselect';
35
36
  import { MultiSelectModule } from 'primeng/multiselect';
36
- import * as i2$3 from 'primeng/skeleton';
37
+ import * as i6 from 'primeng/textarea';
38
+ import { TextareaModule } from 'primeng/textarea';
39
+ import { Dialog } from 'primeng/dialog';
40
+ import * as echarts from 'echarts';
41
+ import * as i2$4 from 'primeng/skeleton';
37
42
  import { SkeletonModule } from 'primeng/skeleton';
38
43
  import * as XLSX from 'xlsx';
39
44
  import { Workbook } from 'exceljs';
@@ -253,6 +258,12 @@ const getColor = (name) => {
253
258
  return Color[name];
254
259
  };
255
260
 
261
+ const DateModeOptions = {
262
+ Day: { value: 'day', format: 'dd/mm/yy' },
263
+ Month: { value: 'month', format: 'mm/yy' },
264
+ Year: { value: 'year', format: 'yy' }
265
+ };
266
+
256
267
  class FeatureFlagService {
257
268
  _http = inject(HttpClient);
258
269
  _configService = inject(ConfigService);
@@ -2477,173 +2488,1015 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImpor
2477
2488
  args: [ActionDirective]
2478
2489
  }] } });
2479
2490
 
2480
- class ModalDialogComponent {
2481
- /**
2482
- * Título del cuadro de diálogo.
2483
- * @type {string}
2484
- */
2485
- Title = "";
2486
- /**
2487
- * Tamaño del cuadro de diálogo.
2488
- * @type {string}
2489
- */
2490
- Size = "lg";
2491
- /**
2492
- * Controlar el arrastre del cuadro de diálogo.
2493
- * @type {boolean}
2494
- */
2495
- Draggable = false;
2496
- /**
2497
- * Controlar el cierre del cuadro de diálogo.
2498
- * @type {boolean}
2499
- */
2500
- DisableMaskClose = false;
2501
- /**
2502
- * Evento emitido al cerrar el cuadro de diálogo.
2503
- * @type {EventEmitter<boolean>}
2504
- */
2505
- EmmitCloseModal = new EventEmitter();
2506
- /**
2507
- * Visibilidad del cuadro de diálogo.
2508
- * @type {string}
2509
- */
2510
- Visible = false;
2511
- showDialog() {
2512
- this.Visible = true;
2491
+ var FilterTypeEnum;
2492
+ (function (FilterTypeEnum) {
2493
+ FilterTypeEnum[FilterTypeEnum["Select"] = 0] = "Select";
2494
+ FilterTypeEnum[FilterTypeEnum["Text"] = 1] = "Text";
2495
+ FilterTypeEnum[FilterTypeEnum["Checkbox"] = 2] = "Checkbox";
2496
+ FilterTypeEnum[FilterTypeEnum["Date"] = 3] = "Date";
2497
+ FilterTypeEnum[FilterTypeEnum["SelectDetail"] = 4] = "SelectDetail";
2498
+ FilterTypeEnum[FilterTypeEnum["Template"] = 5] = "Template";
2499
+ FilterTypeEnum[FilterTypeEnum["TextArea"] = 6] = "TextArea";
2500
+ FilterTypeEnum[FilterTypeEnum["TextRange"] = 7] = "TextRange";
2501
+ })(FilterTypeEnum || (FilterTypeEnum = {}));
2502
+
2503
+ const noop = () => { };
2504
+ const CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR = {
2505
+ provide: NG_VALUE_ACCESSOR,
2506
+ useExisting: forwardRef(() => FilterDirective),
2507
+ multi: true,
2508
+ };
2509
+ class FilterDirective {
2510
+ name = "";
2511
+ label = "";
2512
+ visible = true;
2513
+ enabled = true;
2514
+ parent = "";
2515
+ placeholder = "";
2516
+ title = "";
2517
+ letterIndex = false;
2518
+ defaultValue;
2519
+ showClean = true;
2520
+ showInAppliedFilter = true;
2521
+ showClass = true;
2522
+ selectClass = null;
2523
+ confirmDateFormat = false;
2524
+ showfilter = false;
2525
+ visibilityRules = [];
2526
+ change = new EventEmitter();
2527
+ innerValue = "";
2528
+ children = [];
2529
+ $changes = new Subject();
2530
+ type;
2531
+ index = -1;
2532
+ get value() {
2533
+ return this.innerValue;
2534
+ }
2535
+ // set accessor including call the onchange callback
2536
+ set value(v) {
2537
+ if (v !== this.innerValue) {
2538
+ this.innerValue = v;
2539
+ this.onChangeCallback(v);
2540
+ }
2513
2541
  }
2514
- closeDialog() {
2515
- this.Visible = false;
2516
- this.EmmitCloseModal.emit(false);
2542
+ constructor(filterType) {
2543
+ this.type = filterType;
2517
2544
  }
2518
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: ModalDialogComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2519
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.1", type: ModalDialogComponent, isStandalone: true, selector: "intelica-modal-dialog", inputs: { Title: "Title", Size: "Size", Draggable: "Draggable", DisableMaskClose: "DisableMaskClose" }, outputs: { EmmitCloseModal: "EmmitCloseModal" }, ngImport: i0, template: "<p-dialog class=\"prDialog prDialog--{{ Size }}\" [modal]=\"true\" [(visible)]=\"Visible\" [draggable]=\"Draggable\" [dismissableMask]=\"!DisableMaskClose\">\r\n\t<ng-template pTemplate=\"header\">\r\n\t\t<div class=\"custom-header\">\r\n\t\t\t<h2>\r\n\t\t\t\t<ng-content select=\"[titleHeaderMenu]\"></ng-content>\r\n\t\t\t</h2>\r\n\t\t\t<button class=\"grButton--icon-close-modal\" (click)=\"closeDialog()\">\r\n\t\t\t\t<i class=\"icon-close1\"></i>\r\n\t\t\t</button>\r\n\t\t</div>\r\n\t</ng-template>\r\n\t<div class=\"prDialog__content\">\r\n\t\t<ng-content select=\"[content]\"></ng-content>\r\n\t</div>\r\n</p-dialog>\r\n", styles: [""], dependencies: [{ kind: "component", type: Dialog, selector: "p-dialog", inputs: ["header", "draggable", "resizable", "positionLeft", "positionTop", "contentStyle", "contentStyleClass", "modal", "closeOnEscape", "dismissableMask", "rtl", "closable", "responsive", "appendTo", "breakpoints", "styleClass", "maskStyleClass", "maskStyle", "showHeader", "breakpoint", "blockScroll", "autoZIndex", "baseZIndex", "minX", "minY", "focusOnShow", "maximizable", "keepInViewport", "focusTrap", "transitionOptions", "closeIcon", "closeAriaLabel", "closeTabindex", "minimizeIcon", "maximizeIcon", "closeButtonProps", "maximizeButtonProps", "visible", "style", "position", "role", "content", "contentTemplate", "footerTemplate", "closeIconTemplate", "maximizeIconTemplate", "minimizeIconTemplate", "headlessTemplate"], outputs: ["onShow", "onHide", "visibleChange", "onResizeInit", "onResizeEnd", "onDragEnd", "onMaximize"] }, { kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i3$1.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }] });
2545
+ writeValue(value) {
2546
+ if (value !== this.innerValue) {
2547
+ this.innerValue = value;
2548
+ }
2549
+ }
2550
+ registerOnChange(fn) {
2551
+ this.onChangeCallback = fn;
2552
+ }
2553
+ registerOnTouched(fn) {
2554
+ this.onTouchedCallback = fn;
2555
+ }
2556
+ setDisabledState(isDisabled) { }
2557
+ onBlur() {
2558
+ this.onTouchedCallback();
2559
+ }
2560
+ onTouchedCallback = noop;
2561
+ onChangeCallback = noop;
2562
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: FilterDirective, deps: [{ token: FilterTypeEnum }], target: i0.ɵɵFactoryTarget.Directive });
2563
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.1", type: FilterDirective, isStandalone: true, selector: "filter", inputs: { name: "name", label: "label", visible: "visible", enabled: "enabled", parent: "parent", placeholder: "placeholder", title: "title", letterIndex: "letterIndex", defaultValue: "defaultValue", showClean: "showClean", showInAppliedFilter: "showInAppliedFilter", showClass: "showClass", selectClass: "selectClass", confirmDateFormat: "confirmDateFormat", showfilter: "showfilter", visibilityRules: "visibilityRules" }, outputs: { change: "change" }, providers: [CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR], ngImport: i0 });
2564
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: FilterDirective, providedIn: "root" });
2520
2565
  }
2521
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: ModalDialogComponent, decorators: [{
2522
- type: Component,
2523
- args: [{ selector: "intelica-modal-dialog", imports: [Dialog, ButtonModule], template: "<p-dialog class=\"prDialog prDialog--{{ Size }}\" [modal]=\"true\" [(visible)]=\"Visible\" [draggable]=\"Draggable\" [dismissableMask]=\"!DisableMaskClose\">\r\n\t<ng-template pTemplate=\"header\">\r\n\t\t<div class=\"custom-header\">\r\n\t\t\t<h2>\r\n\t\t\t\t<ng-content select=\"[titleHeaderMenu]\"></ng-content>\r\n\t\t\t</h2>\r\n\t\t\t<button class=\"grButton--icon-close-modal\" (click)=\"closeDialog()\">\r\n\t\t\t\t<i class=\"icon-close1\"></i>\r\n\t\t\t</button>\r\n\t\t</div>\r\n\t</ng-template>\r\n\t<div class=\"prDialog__content\">\r\n\t\t<ng-content select=\"[content]\"></ng-content>\r\n\t</div>\r\n</p-dialog>\r\n" }]
2524
- }], propDecorators: { Title: [{
2566
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: FilterDirective, decorators: [{
2567
+ type: Injectable,
2568
+ args: [{
2569
+ providedIn: "root",
2570
+ }]
2571
+ }, {
2572
+ type: Directive,
2573
+ args: [{ selector: "filter", providers: [CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR] }]
2574
+ }], ctorParameters: () => [{ type: FilterTypeEnum }], propDecorators: { name: [{
2525
2575
  type: Input
2526
- }], Size: [{
2576
+ }], label: [{
2527
2577
  type: Input
2528
- }], Draggable: [{
2578
+ }], visible: [{
2529
2579
  type: Input
2530
- }], DisableMaskClose: [{
2580
+ }], enabled: [{
2531
2581
  type: Input
2532
- }], EmmitCloseModal: [{
2582
+ }], parent: [{
2583
+ type: Input
2584
+ }], placeholder: [{
2585
+ type: Input
2586
+ }], title: [{
2587
+ type: Input
2588
+ }], letterIndex: [{
2589
+ type: Input
2590
+ }], defaultValue: [{
2591
+ type: Input
2592
+ }], showClean: [{
2593
+ type: Input
2594
+ }], showInAppliedFilter: [{
2595
+ type: Input
2596
+ }], showClass: [{
2597
+ type: Input
2598
+ }], selectClass: [{
2599
+ type: Input
2600
+ }], confirmDateFormat: [{
2601
+ type: Input
2602
+ }], showfilter: [{
2603
+ type: Input
2604
+ }], visibilityRules: [{
2605
+ type: Input
2606
+ }], change: [{
2533
2607
  type: Output
2534
2608
  }] } });
2535
2609
 
2536
- class ItemSplitDirective {
2610
+ class SelectFilterDirective extends FilterDirective {
2611
+ constructor() {
2612
+ super(FilterTypeEnum.Select);
2613
+ }
2614
+ options = [];
2615
+ optionLabel = "text";
2616
+ optionValue = "value";
2617
+ showFilter = false;
2618
+ showAll = false;
2619
+ multiple = false;
2620
+ popupWidth = "auto";
2621
+ appendTo = "";
2622
+ panelStyleClass = "prSelect";
2623
+ allText = "All";
2624
+ maxSelectedLabels = 3;
2625
+ virtualScroll = false;
2626
+ selectedItemsLabel = "Selected";
2627
+ ngOnChanges(changes) {
2628
+ this.$changes.next(changes);
2629
+ }
2630
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: SelectFilterDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
2631
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.1", type: SelectFilterDirective, isStandalone: true, selector: "select-filter", inputs: { options: "options", optionLabel: "optionLabel", optionValue: "optionValue", showFilter: "showFilter", showAll: "showAll", multiple: "multiple", popupWidth: "popupWidth", appendTo: "appendTo", panelStyleClass: "panelStyleClass", allText: "allText", maxSelectedLabels: "maxSelectedLabels", virtualScroll: "virtualScroll", selectedItemsLabel: "selectedItemsLabel" }, providers: [{ provide: FilterDirective, useExisting: forwardRef(() => SelectFilterDirective) }], usesInheritance: true, usesOnChanges: true, ngImport: i0 });
2632
+ }
2633
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: SelectFilterDirective, decorators: [{
2634
+ type: Directive,
2635
+ args: [{
2636
+ selector: "select-filter",
2637
+ providers: [{ provide: FilterDirective, useExisting: forwardRef(() => SelectFilterDirective) }],
2638
+ }]
2639
+ }], ctorParameters: () => [], propDecorators: { options: [{
2640
+ type: Input
2641
+ }], optionLabel: [{
2642
+ type: Input
2643
+ }], optionValue: [{
2644
+ type: Input
2645
+ }], showFilter: [{
2646
+ type: Input
2647
+ }], showAll: [{
2648
+ type: Input
2649
+ }], multiple: [{
2650
+ type: Input
2651
+ }], popupWidth: [{
2652
+ type: Input
2653
+ }], appendTo: [{
2654
+ type: Input
2655
+ }], panelStyleClass: [{
2656
+ type: Input
2657
+ }], allText: [{
2658
+ type: Input
2659
+ }], maxSelectedLabels: [{
2660
+ type: Input
2661
+ }], virtualScroll: [{
2662
+ type: Input
2663
+ }], selectedItemsLabel: [{
2664
+ type: Input
2665
+ }] } });
2666
+
2667
+ class MultiSelectComponent {
2537
2668
  /**
2538
- * Nombre de la acción.
2669
+ * @description Id
2670
+ * @default ""
2539
2671
  * @type {string}
2540
2672
  */
2541
- name = "";
2673
+ id = "";
2542
2674
  /**
2543
- * Indica si los botones asociados a la acción deben ocultarse.
2544
- * @type {boolean}
2545
- * @default false
2675
+ * @description Opciones.
2676
+ * @example [{value: string, text: string}]
2677
+ * @type {any[]}
2546
2678
  */
2547
- hideButtons = false;
2679
+ options = [];
2548
2680
  /**
2549
- * Indica si detener la propagación de eventos al hacer clic en la acción.
2550
- * @type {boolean}
2551
- * @default false
2681
+ * @description Label name.
2682
+ * @default "text"
2683
+ * @type {{value: string, label: string}[]}
2552
2684
  */
2553
- stopPropagation = false;
2685
+ optionLabel = "text";
2554
2686
  /**
2555
- * Evento emitido cuando se hace clic en la acción.
2556
- * @type {EventEmitter<any>}
2687
+ * @description Value name.
2688
+ * @default "value"
2689
+ * @type {{value: string, label: string}[]}
2557
2690
  */
2558
- onClick = new EventEmitter();
2691
+ optionValue = "value";
2559
2692
  /**
2560
- * Referencia al contenido proporcionado por la plantilla.
2561
- * @type {any}
2693
+ * @description Placeholder
2694
+ * @default "Select an item"
2695
+ * @type {string}
2562
2696
  */
2563
- template;
2697
+ placeholder = "Select an item";
2564
2698
  /**
2565
- * Indica si la acción está activa o no.
2699
+ * @description Show filter textbox
2700
+ * @default false
2566
2701
  * @type {boolean}
2567
- * @default false
2568
2702
  */
2569
- active = false;
2570
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: ItemSplitDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
2571
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.1", type: ItemSplitDirective, isStandalone: true, selector: "itemsplit", inputs: { name: "name", hideButtons: "hideButtons", stopPropagation: "stopPropagation" }, outputs: { onClick: "onClick" }, queries: [{ propertyName: "template", first: true, predicate: ["template"], descendants: true }], ngImport: i0 });
2572
- }
2573
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: ItemSplitDirective, decorators: [{
2574
- type: Directive,
2575
- args: [{
2576
- selector: "itemsplit",
2577
- }]
2578
- }], propDecorators: { name: [{
2579
- type: Input
2580
- }], hideButtons: [{
2581
- type: Input
2582
- }], stopPropagation: [{
2583
- type: Input
2584
- }], onClick: [{
2585
- type: Output
2586
- }], template: [{
2587
- type: ContentChild,
2588
- args: ["template"]
2589
- }] } });
2590
-
2591
- class ButtonSplitComponent {
2703
+ showFilter = false;
2592
2704
  /**
2593
- * Directiva que representa una colección de elementos hijos del tipo `ItemSplitDirective`.
2594
- * Se utiliza para acceder a las instancias de la directiva `ItemSplitDirective` dentro de un componente.
2595
- * @type {QueryList<ItemSplitDirective>}
2705
+ * @description Show All Checkbox
2706
+ * @default false
2707
+ * @type {boolean}
2596
2708
  */
2597
- itemsSplit;
2709
+ showAll = false;
2598
2710
  /**
2599
- * Muestra la plantilla asociada a una acción si se proporciona un manejador de eventos `onClick`.
2600
- * - Emite el evento `onClick` de la acción si está definido.
2601
- * - Detiene la propagación del evento si la propiedad `stopPropagation` de la acción está establecida.
2602
- * - Activa la acción.
2603
- * - Oculta el menú de selección de acciones si se cumplen ciertas condiciones.
2604
- *
2605
- * @param {ItemSplitDirective} item - La acción para la cual mostrar la plantilla.
2711
+ * @description All | Todo
2712
+ * @default "All"
2713
+ * @type {string}
2606
2714
  */
2607
- showTemplate(item) {
2608
- // Emite el evento onClick de la acción si está definido.
2609
- if (item.onClick) {
2610
- item.onClick.emit();
2611
- }
2612
- // Detiene la propagación del evento si la propiedad stopPropagation del item está establecida.
2613
- if (item.stopPropagation) {
2614
- return;
2615
- }
2616
- // Activa el item.
2617
- item.active = true;
2618
- }
2619
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: ButtonSplitComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2620
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.1", type: ButtonSplitComponent, isStandalone: true, selector: "intelica-button-split", queries: [{ propertyName: "itemsSplit", predicate: ItemSplitDirective }], ngImport: i0, template: "<button class=\"grButton grButton--icon grButton--select-popover\" (click)=\"op.toggle($event)\"><i class=\"icon icon-list-options\"></i></button>\r\n<p-popover #op>\r\n\t<div class=\"prPopoverV3 prPopoverV3--contentLeft\">\r\n\t\t<ul>\r\n\t\t\t<li [ngClass]=\"{ hidden: !item.active }\" *ngFor=\"let item of itemsSplit\" (click)=\"showTemplate(item)\">{{ item.name }}</li>\r\n\t\t</ul>\r\n\t</div>\r\n</p-popover>\r\n", dependencies: [{ kind: "ngmodule", type: PopoverModule }, { kind: "component", type: i1$2.Popover, selector: "p-popover", inputs: ["ariaLabel", "ariaLabelledBy", "dismissable", "style", "styleClass", "appendTo", "autoZIndex", "ariaCloseLabel", "baseZIndex", "focusOnShow", "showTransitionOptions", "hideTransitionOptions"], outputs: ["onShow", "onHide"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
2621
- }
2622
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: ButtonSplitComponent, decorators: [{
2623
- type: Component,
2624
- args: [{ selector: "intelica-button-split", imports: [PopoverModule, CommonModule], template: "<button class=\"grButton grButton--icon grButton--select-popover\" (click)=\"op.toggle($event)\"><i class=\"icon icon-list-options\"></i></button>\r\n<p-popover #op>\r\n\t<div class=\"prPopoverV3 prPopoverV3--contentLeft\">\r\n\t\t<ul>\r\n\t\t\t<li [ngClass]=\"{ hidden: !item.active }\" *ngFor=\"let item of itemsSplit\" (click)=\"showTemplate(item)\">{{ item.name }}</li>\r\n\t\t</ul>\r\n\t</div>\r\n</p-popover>\r\n" }]
2625
- }], propDecorators: { itemsSplit: [{
2626
- type: ContentChildren,
2627
- args: [ItemSplitDirective]
2628
- }] } });
2629
-
2630
- class RecordPerPageComponent {
2715
+ allText = "All";
2631
2716
  /**
2632
- * Lista de propiedades del modelo `PropertiesModel`.
2633
- * @type {PropertiesModel[]}
2634
- * @default []
2717
+ * @description Number of selected labels to show
2718
+ * @default 3
2719
+ * @type {number}
2635
2720
  */
2636
- Properties = [];
2721
+ maxSelectedLabels = 3;
2637
2722
  /**
2638
- * Evento emitido al realizar un cambio de pagina, envia el pageSize a los componentes.
2639
- * @type {EventEmitter<any>}
2723
+ * @description Append To
2724
+ * @default ""
2725
+ * @type {string}
2640
2726
  */
2641
- ReturnPage = new EventEmitter();
2727
+ appendTo = "";
2642
2728
  /**
2643
- * Términos utilizados en el componente.
2644
- * @type {any}
2729
+ * @description Panel Style Class
2730
+ * @default ""
2731
+ * @type {string}
2645
2732
  */
2646
- Terms;
2733
+ panelStyleClass = "prMultiselect";
2734
+ /**
2735
+ * @description Enable virtual scroll
2736
+ * @default ""
2737
+ * @type {boolean}
2738
+ */
2739
+ virtualScroll = false;
2740
+ /**
2741
+ * @description Enable virtual scroll
2742
+ * @default ""
2743
+ * @type {boolean}
2744
+ */
2745
+ disabled = false;
2746
+ /**
2747
+ * @description Label for the selected items
2748
+ * @default ""
2749
+ * @type {string}
2750
+ */
2751
+ selectedItemsLabel = "Selected";
2752
+ /**
2753
+ * @description Style por color text
2754
+ * @default ""
2755
+ * @type {string}
2756
+ */
2757
+ textColorClass = "";
2758
+ /**
2759
+ * @description Change event
2760
+ * @emits {string[]}
2761
+ * @type {EventEmitter<string[]>}
2762
+ */
2763
+ onChangeEvent = new EventEmitter();
2764
+ checked = false;
2765
+ selectedOptions = [];
2766
+ onChangeFn = () => { };
2767
+ onTouchedFn = () => { };
2768
+ writeValue(value) {
2769
+ this.selectedOptions = value || [];
2770
+ this.checked = this.selectedOptions.length === this.options.length;
2771
+ }
2772
+ registerOnChange(fn) {
2773
+ this.onChangeFn = fn;
2774
+ }
2775
+ registerOnTouched(fn) {
2776
+ this.onTouchedFn = fn;
2777
+ }
2778
+ setDisabledState(isDisabled) {
2779
+ /* opcional: implementar si necesitas deshabilitar el componente desde ngModel */
2780
+ }
2781
+ toggleAllSelection(event) {
2782
+ this.selectedOptions = event.checked ? this.options.map(option => option[this.optionValue]) : [];
2783
+ this.emitChangeEvent();
2784
+ this.onChangeFn(this.selectedOptions);
2785
+ this.onTouchedFn();
2786
+ }
2787
+ onChangeSelect(event) {
2788
+ console.log("onChange -> ", event);
2789
+ this.checked = this.selectedOptions.length === this.options.length;
2790
+ this.emitChangeEvent();
2791
+ this.onChangeFn(this.selectedOptions);
2792
+ this.onTouchedFn();
2793
+ }
2794
+ emitChangeEvent() {
2795
+ this.onChangeEvent.emit(this.selectedOptions);
2796
+ this.onChangeFn(this.selectedOptions);
2797
+ this.onTouchedFn();
2798
+ }
2799
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: MultiSelectComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2800
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.1", type: MultiSelectComponent, isStandalone: true, selector: "intelica-multi-select", inputs: { id: "id", options: "options", optionLabel: "optionLabel", optionValue: "optionValue", placeholder: "placeholder", showFilter: "showFilter", showAll: "showAll", allText: "allText", maxSelectedLabels: "maxSelectedLabels", appendTo: "appendTo", panelStyleClass: "panelStyleClass", virtualScroll: "virtualScroll", disabled: "disabled", selectedItemsLabel: "selectedItemsLabel", textColorClass: "textColorClass" }, outputs: { onChangeEvent: "onChange" }, providers: [
2801
+ {
2802
+ provide: NG_VALUE_ACCESSOR,
2803
+ useExisting: forwardRef(() => MultiSelectComponent),
2804
+ multi: true,
2805
+ },
2806
+ ], ngImport: i0, template: "<p-multiSelect\r\n\t[class]=\"textColorClass + ' prMultiselect'\"\r\n\t[disabled]=\"disabled\"\r\n\t[options]=\"options\"\r\n\t[(ngModel)]=\"selectedOptions\"\r\n\t[optionLabel]=\"optionLabel\"\r\n\t[optionValue]=\"optionValue\"\r\n\t[placeholder]=\"placeholder\"\r\n\t[maxSelectedLabels]=\"maxSelectedLabels\"\r\n\t[filter]=\"showFilter\"\r\n\t[showToggleAll]=\"false\"\r\n\t(onChange)=\"onChangeSelect($event)\"\r\n\t[appendTo]=\"appendTo\"\r\n\t[panelStyleClass]=\"panelStyleClass\"\r\n\t[virtualScroll]=\"virtualScroll\"\r\n\t[virtualScrollOptions]=\"{ itemSize: 25, scrollHeight: '200px' }\"\r\n\tselectedItemsLabel=\"{0} {{ selectedItemsLabel }}\"\r\n>\r\n\t@if(showAll){\r\n\t<ng-template #header>\r\n\t\t<div class=\"prMultiselect__all\">\r\n\t\t\t<label [for]=\"id + '-all'\">\r\n\t\t\t\t<p-checkbox [inputId]=\"id + '-all'\" [binary]=\"true\" [(ngModel)]=\"checked\" (onChange)=\"toggleAllSelection($event)\"></p-checkbox>\r\n\t\t\t\t{{ allText }}\r\n\t\t\t</label>\r\n\t\t</div>\r\n\t</ng-template>\r\n\t}\r\n</p-multiSelect>\r\n", dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: MultiSelectModule }, { kind: "component", type: i2$2.MultiSelect, selector: "p-multiSelect, p-multiselect, p-multi-select", inputs: ["id", "ariaLabel", "style", "styleClass", "panelStyle", "panelStyleClass", "inputId", "disabled", "fluid", "readonly", "group", "filter", "filterPlaceHolder", "filterLocale", "overlayVisible", "tabindex", "variant", "appendTo", "dataKey", "name", "ariaLabelledBy", "displaySelectedLabel", "maxSelectedLabels", "selectionLimit", "selectedItemsLabel", "showToggleAll", "emptyFilterMessage", "emptyMessage", "resetFilterOnHide", "dropdownIcon", "chipIcon", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "showHeader", "filterBy", "scrollHeight", "lazy", "virtualScroll", "loading", "virtualScrollItemSize", "loadingIcon", "virtualScrollOptions", "overlayOptions", "ariaFilterLabel", "filterMatchMode", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "autofocusFilter", "display", "autocomplete", "size", "showClear", "autofocus", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "defaultLabel", "placeholder", "options", "filterValue", "itemSize", "selectAll", "focusOnHover", "filterFields", "selectOnFocus", "autoOptionFocus"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onClear", "onPanelShow", "onPanelHide", "onLazyLoad", "onRemove", "onSelectAllChange"] }, { kind: "ngmodule", type: CheckboxModule }, { kind: "component", type: i5.Checkbox, selector: "p-checkbox, p-checkBox, p-check-box", inputs: ["value", "name", "disabled", "binary", "ariaLabelledBy", "ariaLabel", "tabindex", "inputId", "style", "inputStyle", "styleClass", "inputClass", "indeterminate", "size", "formControl", "checkboxIcon", "readonly", "required", "autofocus", "trueValue", "falseValue", "variant"], outputs: ["onChange", "onFocus", "onBlur"] }] });
2807
+ }
2808
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: MultiSelectComponent, decorators: [{
2809
+ type: Component,
2810
+ args: [{ selector: "intelica-multi-select", imports: [FormsModule, MultiSelectModule, CheckboxModule], providers: [
2811
+ {
2812
+ provide: NG_VALUE_ACCESSOR,
2813
+ useExisting: forwardRef(() => MultiSelectComponent),
2814
+ multi: true,
2815
+ },
2816
+ ], template: "<p-multiSelect\r\n\t[class]=\"textColorClass + ' prMultiselect'\"\r\n\t[disabled]=\"disabled\"\r\n\t[options]=\"options\"\r\n\t[(ngModel)]=\"selectedOptions\"\r\n\t[optionLabel]=\"optionLabel\"\r\n\t[optionValue]=\"optionValue\"\r\n\t[placeholder]=\"placeholder\"\r\n\t[maxSelectedLabels]=\"maxSelectedLabels\"\r\n\t[filter]=\"showFilter\"\r\n\t[showToggleAll]=\"false\"\r\n\t(onChange)=\"onChangeSelect($event)\"\r\n\t[appendTo]=\"appendTo\"\r\n\t[panelStyleClass]=\"panelStyleClass\"\r\n\t[virtualScroll]=\"virtualScroll\"\r\n\t[virtualScrollOptions]=\"{ itemSize: 25, scrollHeight: '200px' }\"\r\n\tselectedItemsLabel=\"{0} {{ selectedItemsLabel }}\"\r\n>\r\n\t@if(showAll){\r\n\t<ng-template #header>\r\n\t\t<div class=\"prMultiselect__all\">\r\n\t\t\t<label [for]=\"id + '-all'\">\r\n\t\t\t\t<p-checkbox [inputId]=\"id + '-all'\" [binary]=\"true\" [(ngModel)]=\"checked\" (onChange)=\"toggleAllSelection($event)\"></p-checkbox>\r\n\t\t\t\t{{ allText }}\r\n\t\t\t</label>\r\n\t\t</div>\r\n\t</ng-template>\r\n\t}\r\n</p-multiSelect>\r\n" }]
2817
+ }], propDecorators: { id: [{
2818
+ type: Input
2819
+ }], options: [{
2820
+ type: Input
2821
+ }], optionLabel: [{
2822
+ type: Input
2823
+ }], optionValue: [{
2824
+ type: Input
2825
+ }], placeholder: [{
2826
+ type: Input
2827
+ }], showFilter: [{
2828
+ type: Input
2829
+ }], showAll: [{
2830
+ type: Input
2831
+ }], allText: [{
2832
+ type: Input
2833
+ }], maxSelectedLabels: [{
2834
+ type: Input
2835
+ }], appendTo: [{
2836
+ type: Input
2837
+ }], panelStyleClass: [{
2838
+ type: Input
2839
+ }], virtualScroll: [{
2840
+ type: Input
2841
+ }], disabled: [{
2842
+ type: Input
2843
+ }], selectedItemsLabel: [{
2844
+ type: Input
2845
+ }], textColorClass: [{
2846
+ type: Input
2847
+ }], onChangeEvent: [{
2848
+ type: Output,
2849
+ args: ["onChange"]
2850
+ }] } });
2851
+
2852
+ class FiltersComponent {
2853
+ cd;
2854
+ GlobalTermService = inject(GlobalTermService);
2855
+ showButtons = true;
2856
+ customClass = "";
2857
+ EmitApply = new EventEmitter();
2858
+ EmitCancel = new EventEmitter();
2859
+ // Suscripciones a eventos
2860
+ subscriptions = [];
2861
+ // Objeto para almacenar términos
2862
+ terms;
2863
+ // Variable para mostrar u ocultar opciones de menú
2864
+ showMenuOptions = false;
2865
+ // Variable para manejar el estilo de altura de pantalla
2866
+ styleHeighScreen = false;
2867
+ // Lista de filtros aplicados
2868
+ _filtersApplied = [];
2869
+ // Clases CSS asociadas a diferentes tipos de controles
2870
+ radioClass = "radioStyle";
2871
+ comboClass = "comboStyle";
2872
+ ddlClass = "ddlStyle";
2873
+ ddtClass = "ddtStyle";
2874
+ dPClass = "dPStyle";
2875
+ mSClass = "mSStyle";
2876
+ // Texto descriptivo para la opción seleccionada
2877
+ selectDescription = "Selected";
2878
+ /**
2879
+ * Colección de elementos filtrados mediante la directiva FilterDirective.
2880
+ * Utilice @ContentChildren para obtener referencias a elementos dentro del contenido proyectado.
2881
+ * @type {QueryList<FilterDirective>}
2882
+ */
2883
+ filterDirectives;
2884
+ /**
2885
+ * Colección de instancias de DropDownListComponent.
2886
+ * Utilice @ViewChildren para obtener referencias a componentes hijos dentro de la vista actual.
2887
+ * @type {QueryList<DropDownListComponent>}
2888
+ */
2889
+ // @ViewChildren(DropDownListComponent) selects!: QueryList<DropDownListComponent>;
2890
+ // Cadena de letras
2891
+ letters = "abcdefghijklmnopqrstuvwxyz";
2892
+ // Arreglo de filtros
2893
+ filters = [];
2894
+ // Enumeración de tipos de filtro
2895
+ filterTypeEnum = FilterTypeEnum;
2896
+ // Índices y longitud de columnas
2897
+ indexArray = [];
2898
+ columnsLengthArray = [];
2899
+ // Idioma default para datepicker
2900
+ language = "en";
2901
+ constructor(cd) {
2902
+ this.cd = cd;
2903
+ }
2904
+ ngOnInit() { }
2905
+ ngOnChanges(changes) {
2906
+ for (const propertyName in changes) {
2907
+ if (propertyName === "columns") {
2908
+ const CHANGE = changes[propertyName];
2909
+ const CURRENT = CHANGE.currentValue;
2910
+ this.columnsLengthArray = Array.from({ length: CURRENT }, (v, i) => i);
2911
+ this.cd.detectChanges();
2912
+ }
2913
+ }
2914
+ }
2915
+ ngOnDestroy() {
2916
+ this.subscriptions.forEach(subscription => {
2917
+ subscription.unsubscribe();
2918
+ });
2919
+ }
2920
+ ngAfterViewInit() {
2921
+ this.filters = this.filterDirectives.toArray();
2922
+ // Vincula hijos con sus padres
2923
+ this.filters.forEach(filter => {
2924
+ if (filter.parent) {
2925
+ const parent = this.filters.find(f => f.name === filter.parent);
2926
+ if (parent) {
2927
+ parent.children.push(filter);
2928
+ }
2929
+ }
2930
+ });
2931
+ this.subscriptions = [];
2932
+ this.filterDirectives.forEach(filter => {
2933
+ if ((filter.value === undefined || filter.value === null || filter.value === "") && filter.defaultValue != null) {
2934
+ filter.value = filter.defaultValue;
2935
+ this.toggleChildrenVisibility(filter);
2936
+ }
2937
+ });
2938
+ this.cd.detectChanges();
2939
+ }
2940
+ onChange($event, filter) {
2941
+ const value = $event?.value !== undefined ? $event.value : $event;
2942
+ filter.value = value;
2943
+ this.toggleChildrenVisibility(filter);
2944
+ if (filter.change) {
2945
+ filter.change.emit({ current: filter, all: this.filterDirectives });
2946
+ }
2947
+ }
2948
+ onChangeCheck($event, filter) {
2949
+ filter.value = $event.checked;
2950
+ if (filter.change) {
2951
+ filter.change.emit({ current: filter, all: this.filterDirectives });
2952
+ }
2953
+ }
2954
+ onChangeMultiple($event, filter) {
2955
+ const value = $event?.value !== undefined ? $event.value : $event;
2956
+ filter.value = value;
2957
+ this.toggleChildrenVisibility(filter);
2958
+ if (filter.change) {
2959
+ filter.change.emit({ current: filter, all: this.filterDirectives });
2960
+ }
2961
+ }
2962
+ toggleChildrenVisibility(filter) {
2963
+ if (!filter.visibilityRules?.length)
2964
+ return;
2965
+ const allFilters = this.filterDirectives.toArray();
2966
+ filter.visibilityRules.forEach(rule => {
2967
+ const child = allFilters.find(f => f.name === rule.child);
2968
+ if (child) {
2969
+ const value = filter.value;
2970
+ const shouldShow = Array.isArray(value) ? value.some(v => rule.allowedValues.includes(v)) : rule.allowedValues.includes(value);
2971
+ child.visible = shouldShow;
2972
+ child.$changes.next({ visible: { currentValue: shouldShow } });
2973
+ }
2974
+ });
2975
+ }
2976
+ onKeyUp($event, filter) {
2977
+ if (filter.change)
2978
+ filter.change.emit({ current: filter, all: this.filterDirectives });
2979
+ }
2980
+ cleanValue(filter) {
2981
+ // Limpiar valor del filtro actual
2982
+ if (filter.defaultValue !== undefined && filter.defaultValue !== null) {
2983
+ filter.value = filter.defaultValue;
2984
+ }
2985
+ else {
2986
+ switch (typeof filter.value) {
2987
+ case "string":
2988
+ filter.value = "";
2989
+ break;
2990
+ case "boolean":
2991
+ filter.value = false;
2992
+ break;
2993
+ default:
2994
+ if (Array.isArray(filter.value)) {
2995
+ filter.value = [];
2996
+ }
2997
+ else {
2998
+ filter.value = null;
2999
+ }
3000
+ break;
3001
+ }
3002
+ }
3003
+ // Si es padre, limpiar hijos
3004
+ if (!filter.parent) {
3005
+ const children = this.filterDirectives.filter(f => f.parent === filter.name);
3006
+ const shouldHideChildren = !(filter.defaultValue !== undefined && filter.defaultValue !== null); // solo ocultar si el padre NO tiene defaultValue
3007
+ children.forEach(child => {
3008
+ if (child.defaultValue !== undefined && child.defaultValue !== null) {
3009
+ child.value = child.defaultValue;
3010
+ }
3011
+ else {
3012
+ switch (typeof child.value) {
3013
+ case "string":
3014
+ child.value = "";
3015
+ break;
3016
+ case "boolean":
3017
+ child.value = false;
3018
+ break;
3019
+ default:
3020
+ if (Array.isArray(child.value)) {
3021
+ child.value = [];
3022
+ }
3023
+ else {
3024
+ child.value = null;
3025
+ }
3026
+ break;
3027
+ }
3028
+ }
3029
+ if (shouldHideChildren) {
3030
+ child.visible = false;
3031
+ }
3032
+ if (child.change) {
3033
+ child.change.emit({ current: child, all: this.filterDirectives });
3034
+ }
3035
+ });
3036
+ }
3037
+ const index = this._filtersApplied.findIndex(x => x.name === filter.name);
3038
+ if (index !== -1)
3039
+ this._filtersApplied.splice(index, 1);
3040
+ if (filter.change) {
3041
+ filter.change.emit({ current: filter, all: this.filterDirectives });
3042
+ }
3043
+ this.cd.detectChanges();
3044
+ }
3045
+ /**
3046
+ * Construye y actualiza la lista de filtros aplicados con la información proporcionada por la directiva de filtro.
3047
+ * @param {FilterDirective} filter - La directiva de filtro que proporciona la información.
3048
+ * @returns {void}
3049
+ */
3050
+ builderFiltersApplied(filter) {
3051
+ if (!filter.showInAppliedFilter)
3052
+ return;
3053
+ let value = filter.value;
3054
+ let text = filter.value;
3055
+ let valueName = [];
3056
+ if (filter.type === FilterTypeEnum.Select) {
3057
+ const selectFilter = filter;
3058
+ if (selectFilter.multiple) {
3059
+ text = "";
3060
+ filter.value.forEach((f) => {
3061
+ let filterSelect = selectFilter.options.filter(x => x[selectFilter.optionValue] === f);
3062
+ if (filterSelect.length)
3063
+ valueName = [...valueName, filterSelect[0][selectFilter.optionLabel]];
3064
+ if (filterSelect.length > 0)
3065
+ text = text + filterSelect[0][selectFilter.optionLabel] + "-";
3066
+ });
3067
+ text = text.slice(0, -1);
3068
+ }
3069
+ else {
3070
+ let filterSelect = selectFilter.options.filter(x => x[selectFilter.optionValue] === filter.value);
3071
+ if (filterSelect.length > 0)
3072
+ text = filterSelect[0][selectFilter.optionLabel];
3073
+ }
3074
+ }
3075
+ let filterApplied = this._filtersApplied.filter(x => x.name === filter.name)[0];
3076
+ if (!filterApplied) {
3077
+ this._filtersApplied.push({
3078
+ name: filter.name,
3079
+ value: value,
3080
+ text: text,
3081
+ title: filter.title,
3082
+ valueName: valueName,
3083
+ });
3084
+ }
3085
+ else {
3086
+ filterApplied.text = text;
3087
+ filterApplied.value = value;
3088
+ }
3089
+ }
3090
+ /**
3091
+ * Obtiene el índice de un filtro en el contexto de todos los filtros visibles, proporcionando una numeración o letras.
3092
+ * @param {FilterDirective} filter - La directiva de filtro para la cual se obtendrá el índice.
3093
+ * @param {FilterDirective} [parentFilter] - La directiva de filtro padre, si existe, en el caso de filtros anidados.
3094
+ * @returns {string} - El índice del filtro en formato de numeración o letras.
3095
+ */
3096
+ getIndex(filter, parentFilter) {
3097
+ const filters = [...this.filterDirectives.filter(x => !x.parent && x.visible)];
3098
+ // Verifica si el filtro está en la lista principal de filtros visibles
3099
+ if (filters.indexOf(filter) > -1) {
3100
+ // Retorna el índice en formato de letras si está definido, de lo contrario, utiliza la numeración
3101
+ if (filter.letterIndex)
3102
+ return this.letters[filters.indexOf(filter)];
3103
+ return (filters.indexOf(filter) + 1).toString();
3104
+ }
3105
+ // Si hay un filtro padre proporcionado
3106
+ if (parentFilter) {
3107
+ const children = [...this.filterDirectives.filter(x => x.parent === parentFilter?.name && x.visible)];
3108
+ let index = "";
3109
+ // Concatena el índice del filtro padre en formato de letras o numeración
3110
+ if (parentFilter.letterIndex)
3111
+ index += this.letters[filters.indexOf(parentFilter)];
3112
+ else
3113
+ index += (filters.indexOf(parentFilter) + 1).toString();
3114
+ // Concatena el índice del filtro actual en formato de letras o numeración
3115
+ if (filter.letterIndex)
3116
+ index += "." + this.letters[children.indexOf(filter)];
3117
+ else
3118
+ index += "." + (children.indexOf(filter) + 1).toString();
3119
+ return index;
3120
+ }
3121
+ // Retorna 'ERROR' si no se cumple ninguna de las condiciones anteriores
3122
+ return "ERROR";
3123
+ }
3124
+ /**
3125
+ * Maneja el evento de hacer clic en el botón "Aplicar" para aplicar los filtros seleccionados.
3126
+ * Limpia la lista de filtros aplicados y construye la lista nuevamente con los valores actuales de los filtros.
3127
+ * Luego, emite el evento `EmitApply` con la lista de filtros aplicados.
3128
+ * @returns {void}
3129
+ */
3130
+ clickApply() {
3131
+ // Limpia la lista de filtros aplicados
3132
+ this._filtersApplied = [];
3133
+ // Itera sobre todas las directivas de filtro
3134
+ this.filterDirectives.forEach(filterDirective => {
3135
+ if (this.validateFilter(filterDirective)) {
3136
+ // Verifica si el tipo de filtro es de texto
3137
+ if (filterDirective.type === FilterTypeEnum.Text) {
3138
+ // Comprueba si el valor de texto no está vacío y agrega el filtro aplicado
3139
+ if (filterDirective.value !== undefined && filterDirective.value !== null && filterDirective.value.trim() !== "") {
3140
+ this.builderFiltersApplied(filterDirective);
3141
+ }
3142
+ }
3143
+ else {
3144
+ // Si el filtro requiere confirmación de formato de fecha, convierte el valor a un objeto de fecha
3145
+ if (filterDirective.confirmDateFormat) {
3146
+ filterDirective.value = new Date(filterDirective.value);
3147
+ }
3148
+ // Comprueba si el valor del filtro es válido y no está vacío, luego agrega el filtro aplicado
3149
+ if (filterDirective.value !== undefined &&
3150
+ filterDirective.value !== null &&
3151
+ (this.validStringValue(filterDirective.value, filterDirective.defaultValue) || filterDirective.value > -1 || Array.isArray(filterDirective.value)) &&
3152
+ filterDirective.value.toString().length > 0) {
3153
+ this.builderFiltersApplied(filterDirective);
3154
+ }
3155
+ }
3156
+ }
3157
+ });
3158
+ this.EmitApply.emit(this._filtersApplied);
3159
+ }
3160
+ validateFilter(filter) {
3161
+ if (filter instanceof SelectFilterDirective) {
3162
+ return filter.options && filter.value ? filter.options.length !== filter.value.length : true;
3163
+ }
3164
+ return true;
3165
+ }
3166
+ validStringValue(value, defaultValue) {
3167
+ return typeof (value == "string" || value === "Object") && value != defaultValue;
3168
+ }
3169
+ clickCancel() {
3170
+ this.filterDirectives.forEach(filter => {
3171
+ // Restaurar valor por default o limpiar
3172
+ if (filter.defaultValue !== undefined && filter.defaultValue !== null) {
3173
+ filter.value = filter.defaultValue;
3174
+ }
3175
+ else {
3176
+ switch (typeof filter.value) {
3177
+ case "string":
3178
+ filter.value = "";
3179
+ break;
3180
+ case "boolean":
3181
+ filter.value = false;
3182
+ break;
3183
+ case "object":
3184
+ if (Array.isArray(filter.value)) {
3185
+ filter.value = [];
3186
+ }
3187
+ else {
3188
+ filter.value = null;
3189
+ }
3190
+ break;
3191
+ default:
3192
+ filter.value = null;
3193
+ break;
3194
+ }
3195
+ }
3196
+ // Ocultar hijos si su padre no tiene defaultValue
3197
+ if (filter.parent) {
3198
+ const parent = this.filterDirectives.find(f => f.name === filter.parent);
3199
+ const parentHasDefault = parent?.defaultValue !== undefined && parent?.defaultValue !== null;
3200
+ if (!parentHasDefault) {
3201
+ filter.visible = false;
3202
+ }
3203
+ }
3204
+ if (filter.change) {
3205
+ filter.change.emit({ current: filter, all: this.filterDirectives });
3206
+ }
3207
+ });
3208
+ this._filtersApplied = [];
3209
+ this.EmitCancel.emit(this.filterDirectives);
3210
+ this.cd.detectChanges();
3211
+ }
3212
+ /**
3213
+ * Evalúa si el valor actual del filtro es diferente al valor predeterminado, considerando el tipo de filtro.
3214
+ * @param {FilterDirective} filter - La directiva de filtro a evaluar.
3215
+ * @returns {boolean} - `true` si el valor actual es diferente al valor predeterminado, `false` de lo contrario.
3216
+ */
3217
+ evaluatecleanvalue(filter) {
3218
+ let isContinue = filter.value != filter.defaultValue;
3219
+ // Si el tipo de filtro es de fecha y el valor predeterminado es un objeto de fecha, compara las fechas en milisegundos
3220
+ if (filter.type === FilterTypeEnum.Date && typeof filter.defaultValue === "object" && filter.defaultValue != null) {
3221
+ isContinue = filter.value.getTime() != filter.defaultValue.getTime();
3222
+ }
3223
+ // Si el tipo de filtro es SelectDetail, compara los primeros elementos de los arreglos
3224
+ if (filter.type === FilterTypeEnum.SelectDetail) {
3225
+ isContinue = filter.value[0] != filter.defaultValue[0];
3226
+ }
3227
+ return isContinue;
3228
+ }
3229
+ /**
3230
+ * Evalúa si el valor actual del filtro de texto es diferente al valor predeterminado y cumple con ciertas condiciones.
3231
+ * @param {FilterDirective} filter - La directiva de filtro de texto a evaluar.
3232
+ * @returns {boolean} - `true` si el valor actual cumple con las condiciones para ser diferente al valor predeterminado, `false` de lo contrario.
3233
+ */
3234
+ evaluatecleanvaluetext(filter) {
3235
+ let isContinue = filter.value != null && filter.value != 0 && filter.value != -1 && filter.value != filter.defaultValue && filter.showClass;
3236
+ if (filter.defaultValue) {
3237
+ isContinue = filter.value != null && filter.value != filter.defaultValue;
3238
+ }
3239
+ // Si el tipo de filtro es de fecha y el valor predeterminado es un objeto de fecha, compara las fechas en milisegundos
3240
+ if (filter.value != null && filter.type === FilterTypeEnum.Date && typeof filter.defaultValue === "object" && filter.defaultValue != null) {
3241
+ isContinue = filter.value.getTime() != filter.defaultValue.getTime();
3242
+ }
3243
+ if (filter.type === FilterTypeEnum.Select) {
3244
+ if (Array.isArray(filter.value) && Array.isArray(filter.defaultValue)) {
3245
+ isContinue = !this.arraysAreEqual(filter.value, filter.defaultValue);
3246
+ }
3247
+ else {
3248
+ isContinue = filter.value != filter.defaultValue;
3249
+ }
3250
+ }
3251
+ return isContinue;
3252
+ }
3253
+ arraysAreEqual(arr1, arr2) {
3254
+ if (arr1.length !== arr2.length)
3255
+ return false;
3256
+ return arr1.every((val, index) => val === arr2[index]);
3257
+ }
3258
+ hasValue(item) {
3259
+ const { value, type } = item;
3260
+ let has = false;
3261
+ if (type === this.filterTypeEnum.Select && Array.isArray(value)) {
3262
+ has = value.length > 0;
3263
+ }
3264
+ else if (type === this.filterTypeEnum.Text || type === this.filterTypeEnum.TextArea) {
3265
+ has = !!value && value.trim() !== "";
3266
+ }
3267
+ else if (type === this.filterTypeEnum.Date && Array.isArray(value)) {
3268
+ has = value.some(v => !!v);
3269
+ }
3270
+ else {
3271
+ has = !!value;
3272
+ }
3273
+ if (has && this.equalsDefault(item)) {
3274
+ return false;
3275
+ }
3276
+ return has;
3277
+ }
3278
+ equalsDefault(item) {
3279
+ const { value, defaultValue, type } = item;
3280
+ if (defaultValue === undefined || defaultValue === null) {
3281
+ return false;
3282
+ }
3283
+ if (type === this.filterTypeEnum.Select && Array.isArray(value) && Array.isArray(defaultValue)) {
3284
+ return value.length === defaultValue.length && value.every((v, i) => v === defaultValue[i]);
3285
+ }
3286
+ if (type === this.filterTypeEnum.Date && Array.isArray(value) && Array.isArray(defaultValue)) {
3287
+ return value.length === defaultValue.length && value.every((v, i) => v instanceof Date && defaultValue[i] instanceof Date && v.getTime() === defaultValue[i].getTime());
3288
+ }
3289
+ if (type === this.filterTypeEnum.Date && value instanceof Date && defaultValue instanceof Date) {
3290
+ return value.getTime() === defaultValue.getTime();
3291
+ }
3292
+ return value === defaultValue;
3293
+ }
3294
+ getDateView(mode) {
3295
+ switch (mode) {
3296
+ case "month":
3297
+ return "month";
3298
+ case "year":
3299
+ return "year";
3300
+ default:
3301
+ return "date";
3302
+ }
3303
+ }
3304
+ getDateFormat(mode) {
3305
+ switch (mode) {
3306
+ case "month":
3307
+ return "mm/yy";
3308
+ case "year":
3309
+ return "yy";
3310
+ default:
3311
+ return "dd/mm/yy";
3312
+ }
3313
+ }
3314
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: FiltersComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
3315
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.1", type: FiltersComponent, isStandalone: true, selector: "intelica-filters", inputs: { showButtons: "showButtons", customClass: "customClass" }, outputs: { EmitApply: "EmitApply", EmitCancel: "EmitCancel" }, queries: [{ propertyName: "filterDirectives", predicate: FilterDirective }], usesOnChanges: true, ngImport: i0, template: "<div [ngClass]=\"customClass\" class=\"contentFilter\">\r\n\t<div class=\"filter-wrapper\">\r\n\t\t@for (filter of filterDirectives; track filter) { @if (filter.visible && !filter.parent) {\r\n\t\t<div class=\"filter-item\">\r\n\t\t\t<ng-container *ngTemplateOutlet=\"template; context: { item: filter, index: getIndex(filter) }\"></ng-container>\r\n\t\t</div>\r\n\r\n\t\t@for (child of filterDirectives; track child) { @if (child.parent && child.parent === filter.name && child.visible) {\r\n\t\t<div class=\"filter-item\">\r\n\t\t\t<ng-container *ngTemplateOutlet=\"template; context: { item: child, index: getIndex(child, filter) }\"></ng-container>\r\n\t\t</div>\r\n\t\t} } } }\r\n\t</div>\r\n</div>\r\n\r\n@if (showButtons) {\r\n<div class=\"btnBox btnBox--center mt-4\">\r\n\t<button pRipple class=\"grButton grButton--primary applyAnalytics\" (click)=\"clickApply()\">\r\n\t\t<span>{{ \"Apply\" | term : GlobalTermService.languageCode }}</span>\r\n\t</button>\r\n\t<button pRipple class=\"grButton grButton--secondary cleanAnalytics\" (click)=\"clickCancel()\">\r\n\t\t<span>{{ \"Clear\" | term : GlobalTermService.languageCode }}</span>\r\n\t</button>\r\n</div>\r\n}\r\n\r\n<!-- Template general -->\r\n<ng-template #template let-item=\"item\" let-index=\"index\">\r\n\t@if (item.visible) {\r\n\t<div class=\"inputColumns\">\r\n\t\t<div [ngClass]=\"{ required: item.required }\" class=\"formRowInput\">\r\n\t\t\t@if (item.label && item.label.length > 0) {\r\n\t\t\t<div class=\"idx-lbl\">\r\n\t\t\t\t<div class=\"formRowInputLeft\">\r\n\t\t\t\t\t<div class=\"formRowInputNumber\">\r\n\t\t\t\t\t\t<span>{{ index }}</span>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<label [for]=\"item.name\">\r\n\t\t\t\t\t\t<span>{{ item.label }}</span>\r\n\t\t\t\t\t</label>\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t\t}\r\n\t\t\t<div>\r\n\t\t\t\t@if (item.type === filterTypeEnum.Select) {\r\n\t\t\t\t<ng-container *ngTemplateOutlet=\"select; context: { item: item, index: index }\"></ng-container>\r\n\t\t\t\t} @if (item.type === filterTypeEnum.Text) {\r\n\t\t\t\t<ng-container *ngTemplateOutlet=\"text; context: { item: item, index: index }\"></ng-container>\r\n\t\t\t\t} @if (item.type === filterTypeEnum.Checkbox) {\r\n\t\t\t\t<ng-container *ngTemplateOutlet=\"checkbox; context: { item: item, index: index }\"></ng-container>\r\n\t\t\t\t} @if (item.type === filterTypeEnum.Date) {\r\n\t\t\t\t<ng-container *ngTemplateOutlet=\"date; context: { item: item, index: index }\"></ng-container>\r\n\t\t\t\t} @if (item.type === filterTypeEnum.Template) {\r\n\t\t\t\t<ng-container *ngTemplateOutlet=\"template_filter; context: { item: item, index: index }\"></ng-container>\r\n\t\t\t\t} @if (item.type === filterTypeEnum.TextArea) {\r\n\t\t\t\t<ng-container *ngTemplateOutlet=\"text_area; context: { item: item, index: index }\"></ng-container>\r\n\t\t\t\t}\r\n\t\t\t</div>\r\n\r\n\t\t\t@if (item.showClean && hasValue(item)) {\r\n\t\t\t<button class=\"desactive formRowInputClear\" (click)=\"cleanValue(item)\">\r\n\t\t\t\t<i class=\"icon-times\"></i>\r\n\t\t\t</button>\r\n\t\t\t}\r\n\t\t</div>\r\n\t</div>\r\n\t}\r\n</ng-template>\r\n\r\n<!-- Tipos de filtros -->\r\n<ng-template #select let-item=\"item\" let-index=\"index\">\r\n\t@if (item.multiple) {\r\n\t<intelica-multi-select\r\n\t\t[placeholder]=\"item.placeholder\"\r\n\t\t[options]=\"item.options\"\r\n\t\t[showFilter]=\"item.showFilter\"\r\n\t\t[showAll]=\"item.showAll\"\r\n\t\t[optionLabel]=\"item.optionLabel\"\r\n\t\t[optionValue]=\"item.optionValue\"\r\n\t\t[disabled]=\"!item.enabled\"\r\n\t\t[(ngModel)]=\"item.value\"\r\n\t\t(onChange)=\"onChangeMultiple($event, item)\"\r\n\t\t[appendTo]=\"item.appendTo\"\r\n\t\t[panelStyleClass]=\"item.panelStyleClass\"\r\n\t\t[allText]=\"item.allText\"\r\n\t\t[maxSelectedLabels]=\"item.maxSelectedLabels\"\r\n\t\t[virtualScroll]=\"item.virtualScroll\"\r\n\t\t[selectedItemsLabel]=\"item.selectedItemsLabel\"\r\n\t\t[textColorClass]=\"evaluatecleanvaluetext(item) ? 'text-orange' : 'text-blue'\"\r\n\t></intelica-multi-select>\r\n\t} @else {\r\n\t<p-select\r\n\t\t[options]=\"item.options\"\r\n\t\t[(ngModel)]=\"item.value\"\r\n\t\t[optionLabel]=\"item.optionLabel\"\r\n\t\t[optionValue]=\"item.optionValue\"\r\n\t\t[placeholder]=\"item.placeholder\"\r\n\t\t[disabled]=\"!item.enabled\"\r\n\t\t(onChange)=\"onChange($event, item)\"\r\n\t\t[filter]=\"item.showfilter\"\r\n\t\t[appendTo]=\"item.appendTo\"\r\n\t\t[panelStyleClass]=\"item.panelStyleClass\"\r\n\t\t[virtualScroll]=\"item.virtualScroll\"\r\n\t\t[virtualScrollItemSize]=\"25\"\r\n\t\tclass=\"prSelect\"\r\n\t></p-select>\r\n\t}\r\n</ng-template>\r\n\r\n<ng-template #text let-item=\"item\" let-index=\"index\">\r\n\t<input class=\"p-inputtext prInputText\" type=\"text\" [disabled]=\"!item.enabled\" [(ngModel)]=\"item.value\" [placeholder]=\"item.placeholder\" (keyup)=\"onKeyUp($event, item)\" [maxlength]=\"item.maxlength\" />\r\n</ng-template>\r\n\r\n<ng-template #checkbox let-item=\"item\" let-index=\"index\">\r\n\t<p-checkbox class=\"prCheckbox\" [(ngModel)]=\"item.value\" [binary]=\"true\" [disabled]=\"!item.enabled\" (onChange)=\"onChangeCheck($event, item)\"></p-checkbox>\r\n</ng-template>\r\n\r\n<ng-template #date let-item=\"item\" let-index=\"index\">\r\n\t<p-datepicker\r\n\t\t[(ngModel)]=\"item.value\"\r\n\t\t[selectionMode]=\"item.range ? 'range' : 'single'\"\r\n\t\t[disabled]=\"!item.enabled\"\r\n\t\t[iconDisplay]=\"'input'\"\r\n\t\t[showIcon]=\"true\"\r\n\t\t(ngModelChange)=\"onChange($event, item)\"\r\n\t\t[view]=\"getDateView(item.dateMode)\"\r\n\t\t[dateFormat]=\"getDateFormat(item.dateMode)\"\r\n\t\tclass=\"prDatePicker\"\r\n\t\tappendTo=\"body\"\r\n\t></p-datepicker>\r\n</ng-template>\r\n\r\n<ng-template #template_filter let-item=\"item\" let-index=\"index\">\r\n\t<ng-container *ngTemplateOutlet=\"item.content\"></ng-container>\r\n</ng-template>\r\n\r\n<ng-template #text_area let-item=\"item\" let-index=\"index\">\r\n\t<textarea pTextarea class=\"prInputText\" [disabled]=\"!item.enabled\" [(ngModel)]=\"item.value\" [placeholder]=\"item.placeholder\" (keyup)=\"onKeyUp($event, item)\"></textarea>\r\n</ng-template>\r\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: DatePickerModule }, { kind: "component", type: i2$3.DatePicker, selector: "p-datePicker, p-datepicker, p-date-picker", inputs: ["iconDisplay", "style", "styleClass", "inputStyle", "inputId", "name", "inputStyleClass", "placeholder", "ariaLabelledBy", "ariaLabel", "iconAriaLabel", "disabled", "dateFormat", "multipleSeparator", "rangeSeparator", "inline", "showOtherMonths", "selectOtherMonths", "showIcon", "fluid", "icon", "appendTo", "readonlyInput", "shortYearCutoff", "monthNavigator", "yearNavigator", "hourFormat", "timeOnly", "stepHour", "stepMinute", "stepSecond", "showSeconds", "required", "showOnFocus", "showWeek", "startWeekFromFirstDayOfYear", "showClear", "dataType", "selectionMode", "maxDateCount", "showButtonBar", "todayButtonStyleClass", "clearButtonStyleClass", "autofocus", "autoZIndex", "baseZIndex", "panelStyleClass", "panelStyle", "keepInvalid", "hideOnDateTimeSelect", "touchUI", "timeSeparator", "focusTrap", "showTransitionOptions", "hideTransitionOptions", "tabindex", "variant", "size", "minDate", "maxDate", "disabledDates", "disabledDays", "yearRange", "showTime", "responsiveOptions", "numberOfMonths", "firstDayOfWeek", "locale", "view", "defaultDate"], outputs: ["onFocus", "onBlur", "onClose", "onSelect", "onClear", "onInput", "onTodayClick", "onClearClick", "onMonthChange", "onYearChange", "onClickOutside", "onShow"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$1.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: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "pipe", type: TermPipe, name: "term" }, { kind: "ngmodule", type: ButtonModule }, { kind: "ngmodule", type: InputTextModule }, { kind: "ngmodule", type: CheckboxModule }, { kind: "component", type: i5.Checkbox, selector: "p-checkbox, p-checkBox, p-check-box", inputs: ["value", "name", "disabled", "binary", "ariaLabelledBy", "ariaLabel", "tabindex", "inputId", "style", "inputStyle", "styleClass", "inputClass", "indeterminate", "size", "formControl", "checkboxIcon", "readonly", "required", "autofocus", "trueValue", "falseValue", "variant"], outputs: ["onChange", "onFocus", "onBlur"] }, { kind: "ngmodule", type: SelectModule }, { kind: "component", type: i5$1.Select, selector: "p-select", inputs: ["id", "scrollHeight", "filter", "name", "style", "panelStyle", "styleClass", "panelStyleClass", "readonly", "required", "editable", "appendTo", "tabindex", "placeholder", "loadingIcon", "filterPlaceholder", "filterLocale", "variant", "inputId", "dataKey", "filterBy", "filterFields", "autofocus", "resetFilterOnHide", "checkmark", "dropdownIcon", "loading", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "autoDisplayFirst", "group", "showClear", "emptyFilterMessage", "emptyMessage", "lazy", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "size", "overlayOptions", "ariaFilterLabel", "ariaLabel", "ariaLabelledBy", "filterMatchMode", "maxlength", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "focusOnHover", "selectOnFocus", "autoOptionFocus", "autofocusFilter", "fluid", "disabled", "itemSize", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "filterValue", "options"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onShow", "onHide", "onClear", "onLazyLoad"] }, { kind: "ngmodule", type: MultiSelectModule }, { kind: "ngmodule", type: TextareaModule }, { kind: "directive", type: i6.Textarea, selector: "[pTextarea]", inputs: ["autoResize", "variant", "fluid", "pSize"], outputs: ["onResize"] }, { kind: "ngmodule", type: RippleModule }, { kind: "directive", type: i3$2.Ripple, selector: "[pRipple]" }, { kind: "component", type: MultiSelectComponent, selector: "intelica-multi-select", inputs: ["id", "options", "optionLabel", "optionValue", "placeholder", "showFilter", "showAll", "allText", "maxSelectedLabels", "appendTo", "panelStyleClass", "virtualScroll", "disabled", "selectedItemsLabel", "textColorClass"], outputs: ["onChange"] }] });
3316
+ }
3317
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: FiltersComponent, decorators: [{
3318
+ type: Component,
3319
+ args: [{ selector: "intelica-filters", imports: [CommonModule, DatePickerModule, FormsModule, TermPipe, ButtonModule, InputTextModule, CheckboxModule, SelectModule, MultiSelectModule, TextareaModule, RippleModule, MultiSelectComponent], template: "<div [ngClass]=\"customClass\" class=\"contentFilter\">\r\n\t<div class=\"filter-wrapper\">\r\n\t\t@for (filter of filterDirectives; track filter) { @if (filter.visible && !filter.parent) {\r\n\t\t<div class=\"filter-item\">\r\n\t\t\t<ng-container *ngTemplateOutlet=\"template; context: { item: filter, index: getIndex(filter) }\"></ng-container>\r\n\t\t</div>\r\n\r\n\t\t@for (child of filterDirectives; track child) { @if (child.parent && child.parent === filter.name && child.visible) {\r\n\t\t<div class=\"filter-item\">\r\n\t\t\t<ng-container *ngTemplateOutlet=\"template; context: { item: child, index: getIndex(child, filter) }\"></ng-container>\r\n\t\t</div>\r\n\t\t} } } }\r\n\t</div>\r\n</div>\r\n\r\n@if (showButtons) {\r\n<div class=\"btnBox btnBox--center mt-4\">\r\n\t<button pRipple class=\"grButton grButton--primary applyAnalytics\" (click)=\"clickApply()\">\r\n\t\t<span>{{ \"Apply\" | term : GlobalTermService.languageCode }}</span>\r\n\t</button>\r\n\t<button pRipple class=\"grButton grButton--secondary cleanAnalytics\" (click)=\"clickCancel()\">\r\n\t\t<span>{{ \"Clear\" | term : GlobalTermService.languageCode }}</span>\r\n\t</button>\r\n</div>\r\n}\r\n\r\n<!-- Template general -->\r\n<ng-template #template let-item=\"item\" let-index=\"index\">\r\n\t@if (item.visible) {\r\n\t<div class=\"inputColumns\">\r\n\t\t<div [ngClass]=\"{ required: item.required }\" class=\"formRowInput\">\r\n\t\t\t@if (item.label && item.label.length > 0) {\r\n\t\t\t<div class=\"idx-lbl\">\r\n\t\t\t\t<div class=\"formRowInputLeft\">\r\n\t\t\t\t\t<div class=\"formRowInputNumber\">\r\n\t\t\t\t\t\t<span>{{ index }}</span>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<label [for]=\"item.name\">\r\n\t\t\t\t\t\t<span>{{ item.label }}</span>\r\n\t\t\t\t\t</label>\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t\t}\r\n\t\t\t<div>\r\n\t\t\t\t@if (item.type === filterTypeEnum.Select) {\r\n\t\t\t\t<ng-container *ngTemplateOutlet=\"select; context: { item: item, index: index }\"></ng-container>\r\n\t\t\t\t} @if (item.type === filterTypeEnum.Text) {\r\n\t\t\t\t<ng-container *ngTemplateOutlet=\"text; context: { item: item, index: index }\"></ng-container>\r\n\t\t\t\t} @if (item.type === filterTypeEnum.Checkbox) {\r\n\t\t\t\t<ng-container *ngTemplateOutlet=\"checkbox; context: { item: item, index: index }\"></ng-container>\r\n\t\t\t\t} @if (item.type === filterTypeEnum.Date) {\r\n\t\t\t\t<ng-container *ngTemplateOutlet=\"date; context: { item: item, index: index }\"></ng-container>\r\n\t\t\t\t} @if (item.type === filterTypeEnum.Template) {\r\n\t\t\t\t<ng-container *ngTemplateOutlet=\"template_filter; context: { item: item, index: index }\"></ng-container>\r\n\t\t\t\t} @if (item.type === filterTypeEnum.TextArea) {\r\n\t\t\t\t<ng-container *ngTemplateOutlet=\"text_area; context: { item: item, index: index }\"></ng-container>\r\n\t\t\t\t}\r\n\t\t\t</div>\r\n\r\n\t\t\t@if (item.showClean && hasValue(item)) {\r\n\t\t\t<button class=\"desactive formRowInputClear\" (click)=\"cleanValue(item)\">\r\n\t\t\t\t<i class=\"icon-times\"></i>\r\n\t\t\t</button>\r\n\t\t\t}\r\n\t\t</div>\r\n\t</div>\r\n\t}\r\n</ng-template>\r\n\r\n<!-- Tipos de filtros -->\r\n<ng-template #select let-item=\"item\" let-index=\"index\">\r\n\t@if (item.multiple) {\r\n\t<intelica-multi-select\r\n\t\t[placeholder]=\"item.placeholder\"\r\n\t\t[options]=\"item.options\"\r\n\t\t[showFilter]=\"item.showFilter\"\r\n\t\t[showAll]=\"item.showAll\"\r\n\t\t[optionLabel]=\"item.optionLabel\"\r\n\t\t[optionValue]=\"item.optionValue\"\r\n\t\t[disabled]=\"!item.enabled\"\r\n\t\t[(ngModel)]=\"item.value\"\r\n\t\t(onChange)=\"onChangeMultiple($event, item)\"\r\n\t\t[appendTo]=\"item.appendTo\"\r\n\t\t[panelStyleClass]=\"item.panelStyleClass\"\r\n\t\t[allText]=\"item.allText\"\r\n\t\t[maxSelectedLabels]=\"item.maxSelectedLabels\"\r\n\t\t[virtualScroll]=\"item.virtualScroll\"\r\n\t\t[selectedItemsLabel]=\"item.selectedItemsLabel\"\r\n\t\t[textColorClass]=\"evaluatecleanvaluetext(item) ? 'text-orange' : 'text-blue'\"\r\n\t></intelica-multi-select>\r\n\t} @else {\r\n\t<p-select\r\n\t\t[options]=\"item.options\"\r\n\t\t[(ngModel)]=\"item.value\"\r\n\t\t[optionLabel]=\"item.optionLabel\"\r\n\t\t[optionValue]=\"item.optionValue\"\r\n\t\t[placeholder]=\"item.placeholder\"\r\n\t\t[disabled]=\"!item.enabled\"\r\n\t\t(onChange)=\"onChange($event, item)\"\r\n\t\t[filter]=\"item.showfilter\"\r\n\t\t[appendTo]=\"item.appendTo\"\r\n\t\t[panelStyleClass]=\"item.panelStyleClass\"\r\n\t\t[virtualScroll]=\"item.virtualScroll\"\r\n\t\t[virtualScrollItemSize]=\"25\"\r\n\t\tclass=\"prSelect\"\r\n\t></p-select>\r\n\t}\r\n</ng-template>\r\n\r\n<ng-template #text let-item=\"item\" let-index=\"index\">\r\n\t<input class=\"p-inputtext prInputText\" type=\"text\" [disabled]=\"!item.enabled\" [(ngModel)]=\"item.value\" [placeholder]=\"item.placeholder\" (keyup)=\"onKeyUp($event, item)\" [maxlength]=\"item.maxlength\" />\r\n</ng-template>\r\n\r\n<ng-template #checkbox let-item=\"item\" let-index=\"index\">\r\n\t<p-checkbox class=\"prCheckbox\" [(ngModel)]=\"item.value\" [binary]=\"true\" [disabled]=\"!item.enabled\" (onChange)=\"onChangeCheck($event, item)\"></p-checkbox>\r\n</ng-template>\r\n\r\n<ng-template #date let-item=\"item\" let-index=\"index\">\r\n\t<p-datepicker\r\n\t\t[(ngModel)]=\"item.value\"\r\n\t\t[selectionMode]=\"item.range ? 'range' : 'single'\"\r\n\t\t[disabled]=\"!item.enabled\"\r\n\t\t[iconDisplay]=\"'input'\"\r\n\t\t[showIcon]=\"true\"\r\n\t\t(ngModelChange)=\"onChange($event, item)\"\r\n\t\t[view]=\"getDateView(item.dateMode)\"\r\n\t\t[dateFormat]=\"getDateFormat(item.dateMode)\"\r\n\t\tclass=\"prDatePicker\"\r\n\t\tappendTo=\"body\"\r\n\t></p-datepicker>\r\n</ng-template>\r\n\r\n<ng-template #template_filter let-item=\"item\" let-index=\"index\">\r\n\t<ng-container *ngTemplateOutlet=\"item.content\"></ng-container>\r\n</ng-template>\r\n\r\n<ng-template #text_area let-item=\"item\" let-index=\"index\">\r\n\t<textarea pTextarea class=\"prInputText\" [disabled]=\"!item.enabled\" [(ngModel)]=\"item.value\" [placeholder]=\"item.placeholder\" (keyup)=\"onKeyUp($event, item)\"></textarea>\r\n</ng-template>\r\n" }]
3320
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { showButtons: [{
3321
+ type: Input
3322
+ }], customClass: [{
3323
+ type: Input
3324
+ }], EmitApply: [{
3325
+ type: Output
3326
+ }], EmitCancel: [{
3327
+ type: Output
3328
+ }], filterDirectives: [{
3329
+ type: ContentChildren,
3330
+ args: [FilterDirective]
3331
+ }] } });
3332
+
3333
+ class ModalDialogComponent {
3334
+ /**
3335
+ * Título del cuadro de diálogo.
3336
+ * @type {string}
3337
+ */
3338
+ Title = "";
3339
+ /**
3340
+ * Tamaño del cuadro de diálogo.
3341
+ * @type {string}
3342
+ */
3343
+ Size = "lg";
3344
+ /**
3345
+ * Controlar el arrastre del cuadro de diálogo.
3346
+ * @type {boolean}
3347
+ */
3348
+ Draggable = false;
3349
+ /**
3350
+ * Controlar el cierre del cuadro de diálogo.
3351
+ * @type {boolean}
3352
+ */
3353
+ DisableMaskClose = false;
3354
+ /**
3355
+ * Evento emitido al cerrar el cuadro de diálogo.
3356
+ * @type {EventEmitter<boolean>}
3357
+ */
3358
+ EmmitCloseModal = new EventEmitter();
3359
+ /**
3360
+ * Visibilidad del cuadro de diálogo.
3361
+ * @type {string}
3362
+ */
3363
+ Visible = false;
3364
+ showDialog() {
3365
+ this.Visible = true;
3366
+ }
3367
+ closeDialog() {
3368
+ this.Visible = false;
3369
+ this.EmmitCloseModal.emit(false);
3370
+ }
3371
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: ModalDialogComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
3372
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.1", type: ModalDialogComponent, isStandalone: true, selector: "intelica-modal-dialog", inputs: { Title: "Title", Size: "Size", Draggable: "Draggable", DisableMaskClose: "DisableMaskClose" }, outputs: { EmmitCloseModal: "EmmitCloseModal" }, ngImport: i0, template: "<p-dialog class=\"prDialog prDialog--{{ Size }}\" [modal]=\"true\" [(visible)]=\"Visible\" [draggable]=\"Draggable\" [dismissableMask]=\"!DisableMaskClose\">\r\n\t<ng-template pTemplate=\"header\">\r\n\t\t<div class=\"custom-header\">\r\n\t\t\t<h2>\r\n\t\t\t\t<ng-content select=\"[titleHeaderMenu]\"></ng-content>\r\n\t\t\t</h2>\r\n\t\t\t<button class=\"grButton--icon-close-modal\" (click)=\"closeDialog()\">\r\n\t\t\t\t<i class=\"icon-close1\"></i>\r\n\t\t\t</button>\r\n\t\t</div>\r\n\t</ng-template>\r\n\t<div class=\"prDialog__content\">\r\n\t\t<ng-content select=\"[content]\"></ng-content>\r\n\t</div>\r\n</p-dialog>\r\n", styles: [""], dependencies: [{ kind: "component", type: Dialog, selector: "p-dialog", inputs: ["header", "draggable", "resizable", "positionLeft", "positionTop", "contentStyle", "contentStyleClass", "modal", "closeOnEscape", "dismissableMask", "rtl", "closable", "responsive", "appendTo", "breakpoints", "styleClass", "maskStyleClass", "maskStyle", "showHeader", "breakpoint", "blockScroll", "autoZIndex", "baseZIndex", "minX", "minY", "focusOnShow", "maximizable", "keepInViewport", "focusTrap", "transitionOptions", "closeIcon", "closeAriaLabel", "closeTabindex", "minimizeIcon", "maximizeIcon", "closeButtonProps", "maximizeButtonProps", "visible", "style", "position", "role", "content", "contentTemplate", "footerTemplate", "closeIconTemplate", "maximizeIconTemplate", "minimizeIconTemplate", "headlessTemplate"], outputs: ["onShow", "onHide", "visibleChange", "onResizeInit", "onResizeEnd", "onDragEnd", "onMaximize"] }, { kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i3$1.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }] });
3373
+ }
3374
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: ModalDialogComponent, decorators: [{
3375
+ type: Component,
3376
+ args: [{ selector: "intelica-modal-dialog", imports: [Dialog, ButtonModule], template: "<p-dialog class=\"prDialog prDialog--{{ Size }}\" [modal]=\"true\" [(visible)]=\"Visible\" [draggable]=\"Draggable\" [dismissableMask]=\"!DisableMaskClose\">\r\n\t<ng-template pTemplate=\"header\">\r\n\t\t<div class=\"custom-header\">\r\n\t\t\t<h2>\r\n\t\t\t\t<ng-content select=\"[titleHeaderMenu]\"></ng-content>\r\n\t\t\t</h2>\r\n\t\t\t<button class=\"grButton--icon-close-modal\" (click)=\"closeDialog()\">\r\n\t\t\t\t<i class=\"icon-close1\"></i>\r\n\t\t\t</button>\r\n\t\t</div>\r\n\t</ng-template>\r\n\t<div class=\"prDialog__content\">\r\n\t\t<ng-content select=\"[content]\"></ng-content>\r\n\t</div>\r\n</p-dialog>\r\n" }]
3377
+ }], propDecorators: { Title: [{
3378
+ type: Input
3379
+ }], Size: [{
3380
+ type: Input
3381
+ }], Draggable: [{
3382
+ type: Input
3383
+ }], DisableMaskClose: [{
3384
+ type: Input
3385
+ }], EmmitCloseModal: [{
3386
+ type: Output
3387
+ }] } });
3388
+
3389
+ class ItemSplitDirective {
3390
+ /**
3391
+ * Nombre de la acción.
3392
+ * @type {string}
3393
+ */
3394
+ name = "";
3395
+ /**
3396
+ * Indica si los botones asociados a la acción deben ocultarse.
3397
+ * @type {boolean}
3398
+ * @default false
3399
+ */
3400
+ hideButtons = false;
3401
+ /**
3402
+ * Indica si detener la propagación de eventos al hacer clic en la acción.
3403
+ * @type {boolean}
3404
+ * @default false
3405
+ */
3406
+ stopPropagation = false;
3407
+ /**
3408
+ * Evento emitido cuando se hace clic en la acción.
3409
+ * @type {EventEmitter<any>}
3410
+ */
3411
+ onClick = new EventEmitter();
3412
+ /**
3413
+ * Referencia al contenido proporcionado por la plantilla.
3414
+ * @type {any}
3415
+ */
3416
+ template;
3417
+ /**
3418
+ * Indica si la acción está activa o no.
3419
+ * @type {boolean}
3420
+ * @default false
3421
+ */
3422
+ active = false;
3423
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: ItemSplitDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
3424
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.1", type: ItemSplitDirective, isStandalone: true, selector: "itemsplit", inputs: { name: "name", hideButtons: "hideButtons", stopPropagation: "stopPropagation" }, outputs: { onClick: "onClick" }, queries: [{ propertyName: "template", first: true, predicate: ["template"], descendants: true }], ngImport: i0 });
3425
+ }
3426
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: ItemSplitDirective, decorators: [{
3427
+ type: Directive,
3428
+ args: [{
3429
+ selector: "itemsplit",
3430
+ }]
3431
+ }], propDecorators: { name: [{
3432
+ type: Input
3433
+ }], hideButtons: [{
3434
+ type: Input
3435
+ }], stopPropagation: [{
3436
+ type: Input
3437
+ }], onClick: [{
3438
+ type: Output
3439
+ }], template: [{
3440
+ type: ContentChild,
3441
+ args: ["template"]
3442
+ }] } });
3443
+
3444
+ class ButtonSplitComponent {
3445
+ /**
3446
+ * Directiva que representa una colección de elementos hijos del tipo `ItemSplitDirective`.
3447
+ * Se utiliza para acceder a las instancias de la directiva `ItemSplitDirective` dentro de un componente.
3448
+ * @type {QueryList<ItemSplitDirective>}
3449
+ */
3450
+ itemsSplit;
3451
+ /**
3452
+ * Muestra la plantilla asociada a una acción si se proporciona un manejador de eventos `onClick`.
3453
+ * - Emite el evento `onClick` de la acción si está definido.
3454
+ * - Detiene la propagación del evento si la propiedad `stopPropagation` de la acción está establecida.
3455
+ * - Activa la acción.
3456
+ * - Oculta el menú de selección de acciones si se cumplen ciertas condiciones.
3457
+ *
3458
+ * @param {ItemSplitDirective} item - La acción para la cual mostrar la plantilla.
3459
+ */
3460
+ showTemplate(item) {
3461
+ // Emite el evento onClick de la acción si está definido.
3462
+ if (item.onClick) {
3463
+ item.onClick.emit();
3464
+ }
3465
+ // Detiene la propagación del evento si la propiedad stopPropagation del item está establecida.
3466
+ if (item.stopPropagation) {
3467
+ return;
3468
+ }
3469
+ // Activa el item.
3470
+ item.active = true;
3471
+ }
3472
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: ButtonSplitComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
3473
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.1", type: ButtonSplitComponent, isStandalone: true, selector: "intelica-button-split", queries: [{ propertyName: "itemsSplit", predicate: ItemSplitDirective }], ngImport: i0, template: "<button class=\"grButton grButton--icon grButton--select-popover\" (click)=\"op.toggle($event)\"><i class=\"icon icon-list-options\"></i></button>\r\n<p-popover #op>\r\n\t<div class=\"prPopoverV3 prPopoverV3--contentLeft\">\r\n\t\t<ul>\r\n\t\t\t<li [ngClass]=\"{ hidden: !item.active }\" *ngFor=\"let item of itemsSplit\" (click)=\"showTemplate(item)\">{{ item.name }}</li>\r\n\t\t</ul>\r\n\t</div>\r\n</p-popover>\r\n", dependencies: [{ kind: "ngmodule", type: PopoverModule }, { kind: "component", type: i1$2.Popover, selector: "p-popover", inputs: ["ariaLabel", "ariaLabelledBy", "dismissable", "style", "styleClass", "appendTo", "autoZIndex", "ariaCloseLabel", "baseZIndex", "focusOnShow", "showTransitionOptions", "hideTransitionOptions"], outputs: ["onShow", "onHide"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
3474
+ }
3475
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: ButtonSplitComponent, decorators: [{
3476
+ type: Component,
3477
+ args: [{ selector: "intelica-button-split", imports: [PopoverModule, CommonModule], template: "<button class=\"grButton grButton--icon grButton--select-popover\" (click)=\"op.toggle($event)\"><i class=\"icon icon-list-options\"></i></button>\r\n<p-popover #op>\r\n\t<div class=\"prPopoverV3 prPopoverV3--contentLeft\">\r\n\t\t<ul>\r\n\t\t\t<li [ngClass]=\"{ hidden: !item.active }\" *ngFor=\"let item of itemsSplit\" (click)=\"showTemplate(item)\">{{ item.name }}</li>\r\n\t\t</ul>\r\n\t</div>\r\n</p-popover>\r\n" }]
3478
+ }], propDecorators: { itemsSplit: [{
3479
+ type: ContentChildren,
3480
+ args: [ItemSplitDirective]
3481
+ }] } });
3482
+
3483
+ class RecordPerPageComponent {
3484
+ /**
3485
+ * Lista de propiedades del modelo `PropertiesModel`.
3486
+ * @type {PropertiesModel[]}
3487
+ * @default []
3488
+ */
3489
+ Properties = [];
3490
+ /**
3491
+ * Evento emitido al realizar un cambio de pagina, envia el pageSize a los componentes.
3492
+ * @type {EventEmitter<any>}
3493
+ */
3494
+ ReturnPage = new EventEmitter();
3495
+ /**
3496
+ * Términos utilizados en el componente.
3497
+ * @type {any}
3498
+ */
3499
+ Terms;
2647
3500
  /**
2648
3501
  * Lista de registros.
2649
3502
  * @type {number[]}
@@ -3113,173 +3966,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImpor
3113
3966
  args: ["document:click", ["$event"]]
3114
3967
  }] } });
3115
3968
 
3116
- class MultiSelectComponent {
3117
- /**
3118
- * @description Id
3119
- * @default ""
3120
- * @type {string}
3121
- */
3122
- id = "";
3123
- /**
3124
- * @description Opciones.
3125
- * @example [{value: string, text: string}]
3126
- * @type {any[]}
3127
- */
3128
- options = [];
3129
- /**
3130
- * @description Label name.
3131
- * @default "text"
3132
- * @type {{value: string, label: string}[]}
3133
- */
3134
- optionLabel = "text";
3135
- /**
3136
- * @description Value name.
3137
- * @default "value"
3138
- * @type {{value: string, label: string}[]}
3139
- */
3140
- optionValue = "value";
3141
- /**
3142
- * @description Placeholder
3143
- * @default "Select an item"
3144
- * @type {string}
3145
- */
3146
- placeholder = "Select an item";
3147
- /**
3148
- * @description Show filter textbox
3149
- * @default false
3150
- * @type {boolean}
3151
- */
3152
- showFilter = false;
3153
- /**
3154
- * @description Show All Checkbox
3155
- * @default false
3156
- * @type {boolean}
3157
- */
3158
- showAll = false;
3159
- /**
3160
- * @description All | Todo
3161
- * @default "All"
3162
- * @type {string}
3163
- */
3164
- allText = "All";
3165
- /**
3166
- * @description Number of selected labels to show
3167
- * @default 3
3168
- * @type {number}
3169
- */
3170
- maxSelectedLabels = 3;
3171
- /**
3172
- * @description Append To
3173
- * @default ""
3174
- * @type {string}
3175
- */
3176
- appendTo = "";
3177
- /**
3178
- * @description Panel Style Class
3179
- * @default ""
3180
- * @type {string}
3181
- */
3182
- panelStyleClass = "prMultiselect";
3183
- /**
3184
- * @description Enable virtual scroll
3185
- * @default ""
3186
- * @type {boolean}
3187
- */
3188
- virtualScroll = false;
3189
- /**
3190
- * @description Label for the selected items
3191
- * @default ""
3192
- * @type {string}
3193
- */
3194
- selectedItemsLabel = "Selected";
3195
- /**
3196
- * @description Change event
3197
- * @emits {string[]}
3198
- * @type {EventEmitter<string[]>}
3199
- */
3200
- onChangeEvent = new EventEmitter();
3201
- checked = false;
3202
- selectedOptions = [];
3203
- onChange = () => { };
3204
- onTouched = () => { };
3205
- toggleAllSelection(event) {
3206
- this.selectedOptions = event.checked ? this.options.map(option => option.value) : [];
3207
- this.emitChangeEvent();
3208
- this.onChange(this.selectedOptions);
3209
- this.onTouched();
3210
- }
3211
- onChangeSelect(event) {
3212
- console.log("onChange -> ", event);
3213
- this.checked = this.selectedOptions.length === this.options.length;
3214
- this.emitChangeEvent();
3215
- this.onChange(this.selectedOptions);
3216
- this.onTouched();
3217
- }
3218
- emitChangeEvent() {
3219
- this.onChangeEvent.emit(this.selectedOptions);
3220
- }
3221
- writeValue(value) {
3222
- this.selectedOptions = value || [];
3223
- this.checked = this.selectedOptions.length === this.options.length;
3224
- }
3225
- registerOnChange(fn) {
3226
- this.onChange = fn;
3227
- }
3228
- registerOnTouched(fn) {
3229
- this.onTouched = fn;
3230
- }
3231
- setDisabledState(isDisabled) {
3232
- // Aquí puedes manejar el estado disabled si es necesario
3233
- }
3234
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: MultiSelectComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
3235
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.1", type: MultiSelectComponent, isStandalone: true, selector: "intelica-multi-select", inputs: { id: "id", options: "options", optionLabel: "optionLabel", optionValue: "optionValue", placeholder: "placeholder", showFilter: "showFilter", showAll: "showAll", allText: "allText", maxSelectedLabels: "maxSelectedLabels", appendTo: "appendTo", panelStyleClass: "panelStyleClass", virtualScroll: "virtualScroll", selectedItemsLabel: "selectedItemsLabel" }, outputs: { onChangeEvent: "onChange" }, providers: [
3236
- {
3237
- provide: NG_VALUE_ACCESSOR,
3238
- useExisting: forwardRef(() => MultiSelectComponent),
3239
- multi: true,
3240
- },
3241
- ], ngImport: i0, template: "<p-multiSelect\r\n\tclass=\"prMultiselect\"\r\n\t[options]=\"options\"\r\n\t[(ngModel)]=\"selectedOptions\"\r\n\t[optionLabel]=\"optionLabel\"\r\n\t[optionValue]=\"optionValue\"\r\n\t[placeholder]=\"placeholder\"\r\n\t[maxSelectedLabels]=\"maxSelectedLabels\"\r\n\t[filter]=\"showFilter\"\r\n\t[showToggleAll]=\"false\"\r\n\t(onChange)=\"onChangeSelect($event)\"\r\n\t[appendTo]=\"appendTo\"\r\n\t[panelStyleClass]=\"panelStyleClass\"\r\n\t[virtualScroll]=\"virtualScroll\"\r\n\t[virtualScrollOptions]=\"{ itemSize: 25, scrollHeight: '200px' }\"\r\n\tselectedItemsLabel=\"{0} {{ selectedItemsLabel }}\"\r\n>\r\n\t@if(showAll){\r\n\t<ng-template #header>\r\n\t\t<div class=\"prMultiselect__all\">\r\n\t\t\t<label [for]=\"id + '-all'\">\r\n\t\t\t\t<p-checkbox [inputId]=\"id + '-all'\" [binary]=\"true\" [(ngModel)]=\"checked\" (onChange)=\"toggleAllSelection($event)\"></p-checkbox>\r\n\t\t\t\t{{ allText }}\r\n\t\t\t</label>\r\n\t\t</div>\r\n\t</ng-template>\r\n\t}\r\n</p-multiSelect>\r\n", dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: MultiSelectModule }, { kind: "component", type: i2$2.MultiSelect, selector: "p-multiSelect, p-multiselect, p-multi-select", inputs: ["id", "ariaLabel", "style", "styleClass", "panelStyle", "panelStyleClass", "inputId", "disabled", "fluid", "readonly", "group", "filter", "filterPlaceHolder", "filterLocale", "overlayVisible", "tabindex", "variant", "appendTo", "dataKey", "name", "ariaLabelledBy", "displaySelectedLabel", "maxSelectedLabels", "selectionLimit", "selectedItemsLabel", "showToggleAll", "emptyFilterMessage", "emptyMessage", "resetFilterOnHide", "dropdownIcon", "chipIcon", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "showHeader", "filterBy", "scrollHeight", "lazy", "virtualScroll", "loading", "virtualScrollItemSize", "loadingIcon", "virtualScrollOptions", "overlayOptions", "ariaFilterLabel", "filterMatchMode", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "autofocusFilter", "display", "autocomplete", "size", "showClear", "autofocus", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "defaultLabel", "placeholder", "options", "filterValue", "itemSize", "selectAll", "focusOnHover", "filterFields", "selectOnFocus", "autoOptionFocus"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onClear", "onPanelShow", "onPanelHide", "onLazyLoad", "onRemove", "onSelectAllChange"] }, { kind: "ngmodule", type: CheckboxModule }, { kind: "component", type: i5.Checkbox, selector: "p-checkbox, p-checkBox, p-check-box", inputs: ["value", "name", "disabled", "binary", "ariaLabelledBy", "ariaLabel", "tabindex", "inputId", "style", "inputStyle", "styleClass", "inputClass", "indeterminate", "size", "formControl", "checkboxIcon", "readonly", "required", "autofocus", "trueValue", "falseValue", "variant"], outputs: ["onChange", "onFocus", "onBlur"] }] });
3242
- }
3243
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: MultiSelectComponent, decorators: [{
3244
- type: Component,
3245
- args: [{ selector: "intelica-multi-select", imports: [FormsModule, MultiSelectModule, CheckboxModule], providers: [
3246
- {
3247
- provide: NG_VALUE_ACCESSOR,
3248
- useExisting: forwardRef(() => MultiSelectComponent),
3249
- multi: true,
3250
- },
3251
- ], template: "<p-multiSelect\r\n\tclass=\"prMultiselect\"\r\n\t[options]=\"options\"\r\n\t[(ngModel)]=\"selectedOptions\"\r\n\t[optionLabel]=\"optionLabel\"\r\n\t[optionValue]=\"optionValue\"\r\n\t[placeholder]=\"placeholder\"\r\n\t[maxSelectedLabels]=\"maxSelectedLabels\"\r\n\t[filter]=\"showFilter\"\r\n\t[showToggleAll]=\"false\"\r\n\t(onChange)=\"onChangeSelect($event)\"\r\n\t[appendTo]=\"appendTo\"\r\n\t[panelStyleClass]=\"panelStyleClass\"\r\n\t[virtualScroll]=\"virtualScroll\"\r\n\t[virtualScrollOptions]=\"{ itemSize: 25, scrollHeight: '200px' }\"\r\n\tselectedItemsLabel=\"{0} {{ selectedItemsLabel }}\"\r\n>\r\n\t@if(showAll){\r\n\t<ng-template #header>\r\n\t\t<div class=\"prMultiselect__all\">\r\n\t\t\t<label [for]=\"id + '-all'\">\r\n\t\t\t\t<p-checkbox [inputId]=\"id + '-all'\" [binary]=\"true\" [(ngModel)]=\"checked\" (onChange)=\"toggleAllSelection($event)\"></p-checkbox>\r\n\t\t\t\t{{ allText }}\r\n\t\t\t</label>\r\n\t\t</div>\r\n\t</ng-template>\r\n\t}\r\n</p-multiSelect>\r\n" }]
3252
- }], propDecorators: { id: [{
3253
- type: Input
3254
- }], options: [{
3255
- type: Input
3256
- }], optionLabel: [{
3257
- type: Input
3258
- }], optionValue: [{
3259
- type: Input
3260
- }], placeholder: [{
3261
- type: Input
3262
- }], showFilter: [{
3263
- type: Input
3264
- }], showAll: [{
3265
- type: Input
3266
- }], allText: [{
3267
- type: Input
3268
- }], maxSelectedLabels: [{
3269
- type: Input
3270
- }], appendTo: [{
3271
- type: Input
3272
- }], panelStyleClass: [{
3273
- type: Input
3274
- }], virtualScroll: [{
3275
- type: Input
3276
- }], selectedItemsLabel: [{
3277
- type: Input
3278
- }], onChangeEvent: [{
3279
- type: Output,
3280
- args: ["onChange"]
3281
- }] } });
3282
-
3283
3969
  class SkeletonService {
3284
3970
  isLoading = signal(false);
3285
3971
  hide() {
@@ -3350,7 +4036,7 @@ class SkeletonTableComponent {
3350
4036
  return new Array(this.rows);
3351
4037
  }
3352
4038
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: SkeletonTableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
3353
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.1", type: SkeletonTableComponent, isStandalone: true, selector: "intelica-skeleton-table", inputs: { rows: "rows", columns: "columns", showLeftSkeleton: "showLeftSkeleton", showRightSkeleton: "showRightSkeleton" }, ngImport: i0, template: "<div class=\"skeletonTable\">\r\n\t<div class=\"mb-2 row\" *ngIf=\"showLeftSkeleton || showRightSkeleton\" [ngClass]=\"justifyClass\">\r\n\t\t<div class=\"col-1 px-0\" *ngIf=\"showLeftSkeleton\">\r\n\t\t\t<p-skeleton class=\"prSkeleton\" [height]=\"'3rem'\"></p-skeleton>\r\n\t\t</div>\r\n\t\t<div class=\"col-3 px-0\" *ngIf=\"showRightSkeleton\">\r\n\t\t\t<p-skeleton class=\"prSkeleton\" [height]=\"'3rem'\"></p-skeleton>\r\n\t\t</div>\r\n\t</div>\r\n\r\n\t<div class=\"row\">\r\n\t\t<div class=\"col-12 px-0 mb-2\">\r\n\t\t\t<p-skeleton class=\"prSkeleton\" [height]=\"'4rem'\"></p-skeleton>\r\n\t\t</div>\r\n\t</div>\r\n\t@for (row of getRows(); track $index) {\r\n\t<div class=\"row borderBottomRow\">\r\n\t\t@for (column of columnSizes; track $index) {\r\n\t\t<div class=\"{{ column }} px-0\">\r\n\t\t\t<div class=\"bodyPaddingTable\">\r\n\t\t\t\t<p-skeleton class=\"prSkeleton\" [height]=\"'2rem'\"></p-skeleton>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t\t}\r\n\t</div>\r\n\t}\r\n</div>\r\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: SkeletonModule }, { kind: "component", type: i2$3.Skeleton, selector: "p-skeleton", inputs: ["styleClass", "style", "shape", "animation", "borderRadius", "size", "width", "height"] }] });
4039
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.1", type: SkeletonTableComponent, isStandalone: true, selector: "intelica-skeleton-table", inputs: { rows: "rows", columns: "columns", showLeftSkeleton: "showLeftSkeleton", showRightSkeleton: "showRightSkeleton" }, ngImport: i0, template: "<div class=\"skeletonTable\">\r\n\t<div class=\"mb-2 row\" *ngIf=\"showLeftSkeleton || showRightSkeleton\" [ngClass]=\"justifyClass\">\r\n\t\t<div class=\"col-1 px-0\" *ngIf=\"showLeftSkeleton\">\r\n\t\t\t<p-skeleton class=\"prSkeleton\" [height]=\"'3rem'\"></p-skeleton>\r\n\t\t</div>\r\n\t\t<div class=\"col-3 px-0\" *ngIf=\"showRightSkeleton\">\r\n\t\t\t<p-skeleton class=\"prSkeleton\" [height]=\"'3rem'\"></p-skeleton>\r\n\t\t</div>\r\n\t</div>\r\n\r\n\t<div class=\"row\">\r\n\t\t<div class=\"col-12 px-0 mb-2\">\r\n\t\t\t<p-skeleton class=\"prSkeleton\" [height]=\"'4rem'\"></p-skeleton>\r\n\t\t</div>\r\n\t</div>\r\n\t@for (row of getRows(); track $index) {\r\n\t<div class=\"row borderBottomRow\">\r\n\t\t@for (column of columnSizes; track $index) {\r\n\t\t<div class=\"{{ column }} px-0\">\r\n\t\t\t<div class=\"bodyPaddingTable\">\r\n\t\t\t\t<p-skeleton class=\"prSkeleton\" [height]=\"'2rem'\"></p-skeleton>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t\t}\r\n\t</div>\r\n\t}\r\n</div>\r\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: SkeletonModule }, { kind: "component", type: i2$4.Skeleton, selector: "p-skeleton", inputs: ["styleClass", "style", "shape", "animation", "borderRadius", "size", "width", "height"] }] });
3354
4040
  }
3355
4041
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: SkeletonTableComponent, decorators: [{
3356
4042
  type: Component,
@@ -3443,7 +4129,7 @@ class SkeletonChartComponent {
3443
4129
  return Array.from({ length }, (_, i) => i);
3444
4130
  }
3445
4131
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: SkeletonChartComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
3446
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.1", type: SkeletonChartComponent, isStandalone: true, selector: "intelica-skeleton-chart", inputs: { type: "type", series: "series", data: "data", label: "label" }, queries: [{ propertyName: "dataElements", predicate: DataDirective }], ngImport: i0, template: "@switch (type) { @case('bar'){\r\n<div class=\"skeletonGraphic skeletonGraphic--verticalBars\">\r\n\t<div class=\"skeletonGraphic__serie\" *ngFor=\"let i of getArray(series)\">\r\n\t\t<div class=\"skeletonGraphic__data\">\r\n\t\t\t<!-- Si hay etiquetas <data> proyectadas, las usamos con las alturas fijas -->\r\n\t\t\t<ng-container *ngIf=\"dataElements.length > 0\">\r\n\t\t\t\t<ng-container *ngFor=\"let data of dataElements.toArray()\">\r\n\t\t\t\t\t<p-skeleton class=\"prSkeleton\" [width]=\"'100%'\" [height]=\"data.size\"></p-skeleton>\r\n\t\t\t\t</ng-container>\r\n\t\t\t</ng-container>\r\n\r\n\t\t\t<!-- Si no hay etiquetas <data>, usamos los valores aleatorios -->\r\n\t\t\t<ng-container *ngIf=\"dataElements.length === 0\">\r\n\t\t\t\t<ng-container *ngFor=\"let j of getArray(data)\">\r\n\t\t\t\t\t<p-skeleton class=\"prSkeleton\" [width]=\"'100%'\" [height]=\"randomPercent[i][j]\"></p-skeleton>\r\n\t\t\t\t</ng-container>\r\n\t\t\t</ng-container>\r\n\t\t</div>\r\n\t\t<div class=\"skeletonGraphic__label\" *ngIf=\"label\">\r\n\t\t\t<p-skeleton class=\"prSkeleton\" [width]=\"'50%'\" [height]=\"'1rem'\"></p-skeleton>\r\n\t\t</div>\r\n\t</div>\r\n</div>\r\n} @case ('horizontal-bar'){\r\n<div class=\"skeletonGraphic skeletonGraphic--horizontalBars\">\r\n\t<div class=\"skeletonGraphic__serie\" *ngFor=\"let i of getArray(series)\">\r\n\t\t<div class=\"skeletonGraphic__data\">\r\n\t\t\t<!-- Si hay etiquetas <data> proyectadas, las usamos con las alturas fijas -->\r\n\t\t\t<ng-container *ngIf=\"dataElements.length > 0\">\r\n\t\t\t\t<ng-container *ngFor=\"let data of dataElements.toArray()\">\r\n\t\t\t\t\t<p-skeleton class=\"prSkeleton\" [width]=\"data.size\" [height]=\"'100%'\"></p-skeleton>\r\n\t\t\t\t</ng-container>\r\n\t\t\t</ng-container>\r\n\r\n\t\t\t<!-- Si no hay etiquetas <data>, usamos los valores aleatorios -->\r\n\t\t\t<ng-container *ngIf=\"dataElements.length === 0\">\r\n\t\t\t\t<ng-container *ngFor=\"let j of getArray(data)\">\r\n\t\t\t\t\t<p-skeleton class=\"prSkeleton\" [width]=\"randomPercent[i][j]\" [height]=\"'100%'\"></p-skeleton>\r\n\t\t\t\t</ng-container>\r\n\t\t\t</ng-container>\r\n\t\t</div>\r\n\t\t<div class=\"skeletonGraphic__label\" *ngIf=\"label\">\r\n\t\t\t<p-skeleton class=\"prSkeleton\" [width]=\"'10rem'\" [height]=\"'1rem'\"></p-skeleton>\r\n\t\t</div>\r\n\t</div>\r\n</div>\r\n} @case ('pie'){\r\n<div class=\"skeletonGraphic skeletonGraphic--pie\">\r\n\t<ng-container *ngTemplateOutlet=\"pieDonutTemplate\"></ng-container>\r\n</div>\r\n} @case ('donut'){\r\n<div class=\"skeletonGraphic skeletonGraphic--pie skeletonGraphic--donut\">\r\n\t<ng-container *ngTemplateOutlet=\"pieDonutTemplate\"></ng-container>\r\n</div>\r\n} @case ('line'){\r\n<div class=\"col-6 mb-3\">\r\n\t<div class=\"row align-items-end\">\r\n\t\t<div class=\"col-1 d-flex justify-content-end\">\r\n\t\t\t<p-skeleton class=\"prSkeleton\" [width]=\"'0.5rem'\" [height]=\"'25rem'\"></p-skeleton>\r\n\t\t</div>\r\n\t\t<div class=\"col d-flex justify-content-center px-0\">\r\n\t\t\t<div class=\"col-8 px-0\">\r\n\t\t\t\t<p-skeleton class=\"prSkeleton\" [width]=\"'100%'\" [height]=\"'10rem'\"></p-skeleton>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t\t<div class=\"col d-flex justify-content-center px-0\">\r\n\t\t\t<div class=\"col-8 px-0\">\r\n\t\t\t\t<p-skeleton class=\"prSkeleton\" [width]=\"'100%'\" [height]=\"'20rem'\"></p-skeleton>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t\t<div class=\"col d-flex justify-content-center px-0\">\r\n\t\t\t<div class=\"col-8 px-0\">\r\n\t\t\t\t<p-skeleton class=\"prSkeleton\" [width]=\"'100%'\" [height]=\"'8rem'\"></p-skeleton>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t\t<div class=\"col d-flex justify-content-center px-0\">\r\n\t\t\t<div class=\"col-8 px-0\">\r\n\t\t\t\t<p-skeleton class=\"prSkeleton\" [width]=\"'100%'\" [height]=\"'15rem'\"></p-skeleton>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t\t<div class=\"col d-flex justify-content-center px-0\">\r\n\t\t\t<div class=\"col-8 px-0\">\r\n\t\t\t\t<p-skeleton class=\"prSkeleton\" [width]=\"'100%'\" [height]=\"'20rem'\"></p-skeleton>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t\t<div class=\"col d-flex justify-content-center px-0\">\r\n\t\t\t<div class=\"col-8 px-0\">\r\n\t\t\t\t<p-skeleton class=\"prSkeleton\" [width]=\"'100%'\" [height]=\"'8rem'\"></p-skeleton>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t</div>\r\n\t<div class=\"row mt-3\">\r\n\t\t<div class=\"col-1\"></div>\r\n\t\t<div class=\"col\">\r\n\t\t\t<p-skeleton class=\"prSkeleton\" [width]=\"'100%'\" [height]=\"'0.5rem'\"></p-skeleton>\r\n\t\t</div>\r\n\t</div>\r\n</div>\r\n} }\r\n\r\n<ng-template #pieDonutTemplate>\r\n\t<div class=\"skeletonGraphic__serie\">\r\n\t\t<div class=\"skeletonGraphic__wrap\">\r\n\t\t\t<div class=\"skeletonGraphic__label left\" *ngIf=\"label\">\r\n\t\t\t\t<p-skeleton class=\"prSkeleton\" [width]=\"'100%'\" [height]=\"'100%'\"></p-skeleton>\r\n\t\t\t</div>\r\n\t\t\t<div class=\"skeletonGraphic__data\">\r\n\t\t\t\t<p-skeleton class=\"prSkeleton\" shape=\"circle\" [size]=\"'100%'\"></p-skeleton>\r\n\t\t\t</div>\r\n\t\t\t<div class=\"skeletonGraphic__label right\" *ngIf=\"label\">\r\n\t\t\t\t<p-skeleton class=\"prSkeleton\" [width]=\"'100%'\" [height]=\"'100%'\"></p-skeleton>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t</div>\r\n</ng-template>\r\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: SkeletonModule }, { kind: "component", type: i2$3.Skeleton, selector: "p-skeleton", inputs: ["styleClass", "style", "shape", "animation", "borderRadius", "size", "width", "height"] }] });
4132
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.1", type: SkeletonChartComponent, isStandalone: true, selector: "intelica-skeleton-chart", inputs: { type: "type", series: "series", data: "data", label: "label" }, queries: [{ propertyName: "dataElements", predicate: DataDirective }], ngImport: i0, template: "@switch (type) { @case('bar'){\r\n<div class=\"skeletonGraphic skeletonGraphic--verticalBars\">\r\n\t<div class=\"skeletonGraphic__serie\" *ngFor=\"let i of getArray(series)\">\r\n\t\t<div class=\"skeletonGraphic__data\">\r\n\t\t\t<!-- Si hay etiquetas <data> proyectadas, las usamos con las alturas fijas -->\r\n\t\t\t<ng-container *ngIf=\"dataElements.length > 0\">\r\n\t\t\t\t<ng-container *ngFor=\"let data of dataElements.toArray()\">\r\n\t\t\t\t\t<p-skeleton class=\"prSkeleton\" [width]=\"'100%'\" [height]=\"data.size\"></p-skeleton>\r\n\t\t\t\t</ng-container>\r\n\t\t\t</ng-container>\r\n\r\n\t\t\t<!-- Si no hay etiquetas <data>, usamos los valores aleatorios -->\r\n\t\t\t<ng-container *ngIf=\"dataElements.length === 0\">\r\n\t\t\t\t<ng-container *ngFor=\"let j of getArray(data)\">\r\n\t\t\t\t\t<p-skeleton class=\"prSkeleton\" [width]=\"'100%'\" [height]=\"randomPercent[i][j]\"></p-skeleton>\r\n\t\t\t\t</ng-container>\r\n\t\t\t</ng-container>\r\n\t\t</div>\r\n\t\t<div class=\"skeletonGraphic__label\" *ngIf=\"label\">\r\n\t\t\t<p-skeleton class=\"prSkeleton\" [width]=\"'50%'\" [height]=\"'1rem'\"></p-skeleton>\r\n\t\t</div>\r\n\t</div>\r\n</div>\r\n} @case ('horizontal-bar'){\r\n<div class=\"skeletonGraphic skeletonGraphic--horizontalBars\">\r\n\t<div class=\"skeletonGraphic__serie\" *ngFor=\"let i of getArray(series)\">\r\n\t\t<div class=\"skeletonGraphic__data\">\r\n\t\t\t<!-- Si hay etiquetas <data> proyectadas, las usamos con las alturas fijas -->\r\n\t\t\t<ng-container *ngIf=\"dataElements.length > 0\">\r\n\t\t\t\t<ng-container *ngFor=\"let data of dataElements.toArray()\">\r\n\t\t\t\t\t<p-skeleton class=\"prSkeleton\" [width]=\"data.size\" [height]=\"'100%'\"></p-skeleton>\r\n\t\t\t\t</ng-container>\r\n\t\t\t</ng-container>\r\n\r\n\t\t\t<!-- Si no hay etiquetas <data>, usamos los valores aleatorios -->\r\n\t\t\t<ng-container *ngIf=\"dataElements.length === 0\">\r\n\t\t\t\t<ng-container *ngFor=\"let j of getArray(data)\">\r\n\t\t\t\t\t<p-skeleton class=\"prSkeleton\" [width]=\"randomPercent[i][j]\" [height]=\"'100%'\"></p-skeleton>\r\n\t\t\t\t</ng-container>\r\n\t\t\t</ng-container>\r\n\t\t</div>\r\n\t\t<div class=\"skeletonGraphic__label\" *ngIf=\"label\">\r\n\t\t\t<p-skeleton class=\"prSkeleton\" [width]=\"'10rem'\" [height]=\"'1rem'\"></p-skeleton>\r\n\t\t</div>\r\n\t</div>\r\n</div>\r\n} @case ('pie'){\r\n<div class=\"skeletonGraphic skeletonGraphic--pie\">\r\n\t<ng-container *ngTemplateOutlet=\"pieDonutTemplate\"></ng-container>\r\n</div>\r\n} @case ('donut'){\r\n<div class=\"skeletonGraphic skeletonGraphic--pie skeletonGraphic--donut\">\r\n\t<ng-container *ngTemplateOutlet=\"pieDonutTemplate\"></ng-container>\r\n</div>\r\n} @case ('line'){\r\n<div class=\"col-6 mb-3\">\r\n\t<div class=\"row align-items-end\">\r\n\t\t<div class=\"col-1 d-flex justify-content-end\">\r\n\t\t\t<p-skeleton class=\"prSkeleton\" [width]=\"'0.5rem'\" [height]=\"'25rem'\"></p-skeleton>\r\n\t\t</div>\r\n\t\t<div class=\"col d-flex justify-content-center px-0\">\r\n\t\t\t<div class=\"col-8 px-0\">\r\n\t\t\t\t<p-skeleton class=\"prSkeleton\" [width]=\"'100%'\" [height]=\"'10rem'\"></p-skeleton>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t\t<div class=\"col d-flex justify-content-center px-0\">\r\n\t\t\t<div class=\"col-8 px-0\">\r\n\t\t\t\t<p-skeleton class=\"prSkeleton\" [width]=\"'100%'\" [height]=\"'20rem'\"></p-skeleton>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t\t<div class=\"col d-flex justify-content-center px-0\">\r\n\t\t\t<div class=\"col-8 px-0\">\r\n\t\t\t\t<p-skeleton class=\"prSkeleton\" [width]=\"'100%'\" [height]=\"'8rem'\"></p-skeleton>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t\t<div class=\"col d-flex justify-content-center px-0\">\r\n\t\t\t<div class=\"col-8 px-0\">\r\n\t\t\t\t<p-skeleton class=\"prSkeleton\" [width]=\"'100%'\" [height]=\"'15rem'\"></p-skeleton>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t\t<div class=\"col d-flex justify-content-center px-0\">\r\n\t\t\t<div class=\"col-8 px-0\">\r\n\t\t\t\t<p-skeleton class=\"prSkeleton\" [width]=\"'100%'\" [height]=\"'20rem'\"></p-skeleton>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t\t<div class=\"col d-flex justify-content-center px-0\">\r\n\t\t\t<div class=\"col-8 px-0\">\r\n\t\t\t\t<p-skeleton class=\"prSkeleton\" [width]=\"'100%'\" [height]=\"'8rem'\"></p-skeleton>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t</div>\r\n\t<div class=\"row mt-3\">\r\n\t\t<div class=\"col-1\"></div>\r\n\t\t<div class=\"col\">\r\n\t\t\t<p-skeleton class=\"prSkeleton\" [width]=\"'100%'\" [height]=\"'0.5rem'\"></p-skeleton>\r\n\t\t</div>\r\n\t</div>\r\n</div>\r\n} }\r\n\r\n<ng-template #pieDonutTemplate>\r\n\t<div class=\"skeletonGraphic__serie\">\r\n\t\t<div class=\"skeletonGraphic__wrap\">\r\n\t\t\t<div class=\"skeletonGraphic__label left\" *ngIf=\"label\">\r\n\t\t\t\t<p-skeleton class=\"prSkeleton\" [width]=\"'100%'\" [height]=\"'100%'\"></p-skeleton>\r\n\t\t\t</div>\r\n\t\t\t<div class=\"skeletonGraphic__data\">\r\n\t\t\t\t<p-skeleton class=\"prSkeleton\" shape=\"circle\" [size]=\"'100%'\"></p-skeleton>\r\n\t\t\t</div>\r\n\t\t\t<div class=\"skeletonGraphic__label right\" *ngIf=\"label\">\r\n\t\t\t\t<p-skeleton class=\"prSkeleton\" [width]=\"'100%'\" [height]=\"'100%'\"></p-skeleton>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t</div>\r\n</ng-template>\r\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: SkeletonModule }, { kind: "component", type: i2$4.Skeleton, selector: "p-skeleton", inputs: ["styleClass", "style", "shape", "animation", "borderRadius", "size", "width", "height"] }] });
3447
4133
  }
3448
4134
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: SkeletonChartComponent, decorators: [{
3449
4135
  type: Component,
@@ -3650,6 +4336,200 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImpor
3650
4336
  type: Input
3651
4337
  }] } });
3652
4338
 
4339
+ class CheckboxFilterDirective extends FilterDirective {
4340
+ constructor() {
4341
+ super(FilterTypeEnum.Checkbox);
4342
+ }
4343
+ modeCheckBox = "";
4344
+ ngOnChanges(changes) {
4345
+ this.$changes.next(changes);
4346
+ }
4347
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: CheckboxFilterDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
4348
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.1", type: CheckboxFilterDirective, isStandalone: true, selector: "checkbox-filter", inputs: { modeCheckBox: "modeCheckBox" }, providers: [{ provide: FilterDirective, useExisting: forwardRef(() => CheckboxFilterDirective) }], usesInheritance: true, usesOnChanges: true, ngImport: i0 });
4349
+ }
4350
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: CheckboxFilterDirective, decorators: [{
4351
+ type: Directive,
4352
+ args: [{
4353
+ selector: "checkbox-filter",
4354
+ providers: [{ provide: FilterDirective, useExisting: forwardRef(() => CheckboxFilterDirective) }],
4355
+ }]
4356
+ }], ctorParameters: () => [], propDecorators: { modeCheckBox: [{
4357
+ type: Input
4358
+ }] } });
4359
+
4360
+ class DateFilterDirective extends FilterDirective {
4361
+ constructor() {
4362
+ super(FilterTypeEnum.Date);
4363
+ }
4364
+ format = "MM-yyyy";
4365
+ start = "year";
4366
+ depth = "Year";
4367
+ strictMode = false;
4368
+ min = new Date(1970, 0, 1);
4369
+ max = new Date();
4370
+ showTodayButton = false;
4371
+ allowEdit = true;
4372
+ range = false;
4373
+ dateMode = "day";
4374
+ open = new EventEmitter();
4375
+ navigated = new EventEmitter();
4376
+ ngOnChanges(changes) {
4377
+ this.$changes.next(changes);
4378
+ }
4379
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: DateFilterDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
4380
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.1", type: DateFilterDirective, isStandalone: true, selector: "date-filter", inputs: { format: "format", start: "start", depth: "depth", strictMode: "strictMode", min: "min", max: "max", showTodayButton: "showTodayButton", allowEdit: "allowEdit", range: "range", dateMode: "dateMode" }, outputs: { open: "open", navigated: "navigated" }, providers: [{ provide: FilterDirective, useExisting: forwardRef(() => DateFilterDirective) }], usesInheritance: true, usesOnChanges: true, ngImport: i0 });
4381
+ }
4382
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: DateFilterDirective, decorators: [{
4383
+ type: Directive,
4384
+ args: [{
4385
+ selector: "date-filter",
4386
+ providers: [{ provide: FilterDirective, useExisting: forwardRef(() => DateFilterDirective) }],
4387
+ }]
4388
+ }], ctorParameters: () => [], propDecorators: { format: [{
4389
+ type: Input
4390
+ }], start: [{
4391
+ type: Input
4392
+ }], depth: [{
4393
+ type: Input
4394
+ }], strictMode: [{
4395
+ type: Input
4396
+ }], min: [{
4397
+ type: Input
4398
+ }], max: [{
4399
+ type: Input
4400
+ }], showTodayButton: [{
4401
+ type: Input
4402
+ }], allowEdit: [{
4403
+ type: Input
4404
+ }], range: [{
4405
+ type: Input
4406
+ }], dateMode: [{
4407
+ type: Input
4408
+ }], open: [{
4409
+ type: Output
4410
+ }], navigated: [{
4411
+ type: Output
4412
+ }] } });
4413
+
4414
+ class SelectDetailFilterDirective extends FilterDirective {
4415
+ constructor() {
4416
+ super(FilterTypeEnum.SelectDetail);
4417
+ }
4418
+ id = "";
4419
+ fieldText = "";
4420
+ fieldValue = "";
4421
+ fieldDetail = "";
4422
+ data = [];
4423
+ ngOnChanges(changes) {
4424
+ this.$changes.next(changes);
4425
+ }
4426
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: SelectDetailFilterDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
4427
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.1", type: SelectDetailFilterDirective, isStandalone: true, selector: "select-detail-filter", inputs: { id: "id", fieldText: "fieldText", fieldValue: "fieldValue", fieldDetail: "fieldDetail", data: "data" }, providers: [{ provide: FilterDirective, useExisting: forwardRef(() => SelectDetailFilterDirective) }], usesInheritance: true, usesOnChanges: true, ngImport: i0 });
4428
+ }
4429
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: SelectDetailFilterDirective, decorators: [{
4430
+ type: Directive,
4431
+ args: [{
4432
+ selector: "select-detail-filter",
4433
+ providers: [{ provide: FilterDirective, useExisting: forwardRef(() => SelectDetailFilterDirective) }],
4434
+ }]
4435
+ }], ctorParameters: () => [], propDecorators: { id: [{
4436
+ type: Input
4437
+ }], fieldText: [{
4438
+ type: Input
4439
+ }], fieldValue: [{
4440
+ type: Input
4441
+ }], fieldDetail: [{
4442
+ type: Input
4443
+ }], data: [{
4444
+ type: Input
4445
+ }] } });
4446
+
4447
+ class TemplateDirective extends FilterDirective {
4448
+ constructor() {
4449
+ super(FilterTypeEnum.Template);
4450
+ }
4451
+ content;
4452
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: TemplateDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
4453
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.1", type: TemplateDirective, isStandalone: true, selector: "template-filter", providers: [{ provide: FilterDirective, useExisting: forwardRef(() => TemplateDirective) }], queries: [{ propertyName: "content", first: true, predicate: ["content"], descendants: true }], usesInheritance: true, ngImport: i0 });
4454
+ }
4455
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: TemplateDirective, decorators: [{
4456
+ type: Directive,
4457
+ args: [{
4458
+ selector: "template-filter",
4459
+ providers: [{ provide: FilterDirective, useExisting: forwardRef(() => TemplateDirective) }],
4460
+ }]
4461
+ }], ctorParameters: () => [], propDecorators: { content: [{
4462
+ type: ContentChild,
4463
+ args: ["content"]
4464
+ }] } });
4465
+
4466
+ class TextAreaFilterDirective extends FilterDirective {
4467
+ constructor() {
4468
+ super(FilterTypeEnum.TextArea);
4469
+ }
4470
+ ngOnChanges(changes) {
4471
+ this.$changes.next(changes);
4472
+ }
4473
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: TextAreaFilterDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
4474
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.1", type: TextAreaFilterDirective, isStandalone: true, selector: "view-text-area-filter", providers: [{ provide: FilterDirective, useExisting: forwardRef(() => TextAreaFilterDirective) }], usesInheritance: true, usesOnChanges: true, ngImport: i0 });
4475
+ }
4476
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: TextAreaFilterDirective, decorators: [{
4477
+ type: Directive,
4478
+ args: [{
4479
+ selector: "view-text-area-filter",
4480
+ providers: [{ provide: FilterDirective, useExisting: forwardRef(() => TextAreaFilterDirective) }],
4481
+ }]
4482
+ }], ctorParameters: () => [] });
4483
+
4484
+ class TextFilterDirective extends FilterDirective {
4485
+ constructor() {
4486
+ super(FilterTypeEnum.Text);
4487
+ }
4488
+ ngOnChanges(changes) {
4489
+ this.$changes.next(changes);
4490
+ }
4491
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: TextFilterDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
4492
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.1", type: TextFilterDirective, isStandalone: true, selector: "text-filter", providers: [{ provide: FilterDirective, useExisting: forwardRef(() => TextFilterDirective) }], usesInheritance: true, usesOnChanges: true, ngImport: i0 });
4493
+ }
4494
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: TextFilterDirective, decorators: [{
4495
+ type: Directive,
4496
+ args: [{
4497
+ selector: "text-filter",
4498
+ providers: [{ provide: FilterDirective, useExisting: forwardRef(() => TextFilterDirective) }],
4499
+ standalone: true,
4500
+ }]
4501
+ }], ctorParameters: () => [] });
4502
+
4503
+ class TextRangeFilterDirective extends FilterDirective {
4504
+ constructor() {
4505
+ super(FilterTypeEnum.TextRange);
4506
+ }
4507
+ minRange = "";
4508
+ maxRange = "";
4509
+ minLabel = "";
4510
+ maxLabel = "";
4511
+ ngOnChanges(changes) {
4512
+ this.$changes.next(changes);
4513
+ }
4514
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: TextRangeFilterDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
4515
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.1", type: TextRangeFilterDirective, isStandalone: true, selector: "text-range-filter", inputs: { minRange: "minRange", maxRange: "maxRange", minLabel: "minLabel", maxLabel: "maxLabel" }, providers: [{ provide: FilterDirective, useExisting: forwardRef(() => TextRangeFilterDirective) }], usesInheritance: true, usesOnChanges: true, ngImport: i0 });
4516
+ }
4517
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: TextRangeFilterDirective, decorators: [{
4518
+ type: Directive,
4519
+ args: [{
4520
+ selector: "text-range-filter",
4521
+ providers: [{ provide: FilterDirective, useExisting: forwardRef(() => TextRangeFilterDirective) }],
4522
+ }]
4523
+ }], ctorParameters: () => [], propDecorators: { minRange: [{
4524
+ type: Input
4525
+ }], maxRange: [{
4526
+ type: Input
4527
+ }], minLabel: [{
4528
+ type: Input
4529
+ }], maxLabel: [{
4530
+ type: Input
4531
+ }] } });
4532
+
3653
4533
  class HtmlToExcelService {
3654
4534
  ExportTOExcel(idTabla, html, filename, tabname, extension) {
3655
4535
  let Table = document.getElementById(idTabla);
@@ -6910,5 +7790,5 @@ const IntelicaTheme = definePreset(Aura, {
6910
7790
  * Generated bundle index. Do not edit.
6911
7791
  */
6912
7792
 
6913
- export { ActionDirective, ActionsMenuComponent, ButtonSplitComponent, Color, ColumnComponent, ColumnGroupComponent, CompareByField, ConfigService, CookieAttributesGeneral, DataDirective, DynamicInputValidation, EchartComponent, EchartService, EmailInputValidation, ErrorInterceptor, FeatureFlagService, FormatAmountPipe, GetCookieAttributes, GlobalFeatureFlagService, GlobalTermService, HtmlToExcelService, InitializeConfigService, InputValidation, IntelicaTheme, ItemSplitDirective, LanguageService, MatrixColumnComponent, MatrixColumnGroupComponent, MatrixTableComponent, ModalDialogComponent, MultiSelectComponent, OrderConstants, PaginatorComponent, Patterns, PopoverComponent, ProfileService, RecordPerPageComponent, RefreshTokenInterceptor, RouteGuard, RowResumenComponent, SearchComponent, SharedService, SkeletonChartComponent, SkeletonComponent, SkeletonService, SkeletonTableComponent, SortingComponent, SpinnerComponent, SpinnerService, SweetAlertService, TableComponent, TableFetchComponent, TemplateMenuComponent, TermGuard, TermPipe, TermService, TreeColumnComponent, TreeColumnGroupComponent, TreeTableComponent, TruncatePipe, decryptData, encryptData, getColor };
7793
+ export { ActionDirective, ActionsMenuComponent, ButtonSplitComponent, CheckboxFilterDirective, Color, ColumnComponent, ColumnGroupComponent, CompareByField, ConfigService, CookieAttributesGeneral, DataDirective, DateFilterDirective, DateModeOptions, DynamicInputValidation, EchartComponent, EchartService, EmailInputValidation, ErrorInterceptor, FeatureFlagService, FiltersComponent, FormatAmountPipe, GetCookieAttributes, GlobalFeatureFlagService, GlobalTermService, HtmlToExcelService, InitializeConfigService, InputValidation, IntelicaTheme, ItemSplitDirective, LanguageService, MatrixColumnComponent, MatrixColumnGroupComponent, MatrixTableComponent, ModalDialogComponent, MultiSelectComponent, OrderConstants, PaginatorComponent, Patterns, PopoverComponent, ProfileService, RecordPerPageComponent, RefreshTokenInterceptor, RouteGuard, RowResumenComponent, SearchComponent, SelectDetailFilterDirective, SelectFilterDirective, SharedService, SkeletonChartComponent, SkeletonComponent, SkeletonService, SkeletonTableComponent, SortingComponent, SpinnerComponent, SpinnerService, SweetAlertService, TableComponent, TableFetchComponent, TemplateDirective, TemplateMenuComponent, TermGuard, TermPipe, TermService, TextAreaFilterDirective, TextFilterDirective, TextRangeFilterDirective, TreeColumnComponent, TreeColumnGroupComponent, TreeTableComponent, TruncatePipe, decryptData, encryptData, getColor };
6914
7794
  //# sourceMappingURL=intelica-library-ui.mjs.map