@decaf-ts/for-angular 0.0.12 → 0.0.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (143) hide show
  1. package/{dist/lib/components → components}/component-renderer/component-renderer.component.d.ts +0 -1
  2. package/{dist/lib/components → components}/crud-field/crud-field.component.d.ts +0 -1
  3. package/{dist/lib/components → components}/crud-form/constants.d.ts +0 -1
  4. package/{dist/lib/components → components}/crud-form/crud-form.component.d.ts +0 -1
  5. package/{dist/lib/components → components}/crud-form/types.d.ts +0 -1
  6. package/{dist/lib/components → components}/empty-state/empty-state.component.d.ts +0 -1
  7. package/{dist/lib/components → components}/fieldset/fieldset.component.d.ts +0 -1
  8. package/{dist/lib/components → components}/filter/filter.component.d.ts +0 -1
  9. package/{dist/lib/components → components}/for-angular-components.module.d.ts +0 -1
  10. package/{dist/lib/components → components}/index.d.ts +0 -1
  11. package/{dist/lib/components → components}/layout/layout.component.d.ts +0 -1
  12. package/{dist/lib/components → components}/list/constants.d.ts +0 -1
  13. package/{dist/lib/components → components}/list/list.component.d.ts +0 -1
  14. package/{dist/lib/components → components}/list-item/list-item.component.d.ts +0 -1
  15. package/{dist/lib/components → components}/model-renderer/model-renderer.component.d.ts +0 -1
  16. package/{dist/lib/components → components}/pagination/constants.d.ts +0 -1
  17. package/{dist/lib/components → components}/pagination/pagination.component.d.ts +0 -1
  18. package/{dist/lib/components → components}/searchbar/searchbar.component.d.ts +0 -1
  19. package/{dist/lib/directives → directives}/collapsable.directive.d.ts +0 -1
  20. package/{dist/lib/directives → directives}/index.d.ts +0 -1
  21. package/{dist/lib/engine → engine}/DynamicModule.d.ts +0 -1
  22. package/{dist/lib/engine → engine}/NgxBaseComponent.d.ts +0 -1
  23. package/{dist/lib/engine → engine}/NgxCrudFormField.d.ts +0 -1
  24. package/{dist/lib/engine → engine}/NgxFormService.d.ts +0 -1
  25. package/{dist/lib/engine → engine}/NgxRenderingEngine.d.ts +0 -1
  26. package/{dist/lib/engine → engine}/NgxRenderingEngine2.d.ts +0 -1
  27. package/{dist/lib/engine → engine}/ValidatorFactory.d.ts +0 -1
  28. package/{dist/lib/engine → engine}/constants.d.ts +0 -1
  29. package/{dist/lib/engine → engine}/decorators.d.ts +0 -1
  30. package/{dist/lib/engine → engine}/index.d.ts +0 -1
  31. package/{dist/lib/engine → engine}/types.d.ts +0 -1
  32. package/esm2022/components/component-renderer/component-renderer.component.mjs +313 -0
  33. package/esm2022/components/crud-field/crud-field.component.mjs +301 -0
  34. package/esm2022/components/crud-form/crud-form.component.mjs +139 -0
  35. package/esm2022/components/empty-state/empty-state.component.mjs +348 -0
  36. package/esm2022/components/fieldset/fieldset.component.mjs +225 -0
  37. package/esm2022/components/filter/filter.component.mjs +689 -0
  38. package/esm2022/components/for-angular-components.module.mjs +71 -0
  39. package/esm2022/components/layout/layout.component.mjs +176 -0
  40. package/esm2022/components/list/list.component.mjs +1236 -0
  41. package/esm2022/components/list-item/list-item.component.mjs +408 -0
  42. package/esm2022/components/model-renderer/model-renderer.component.mjs +138 -0
  43. package/esm2022/components/pagination/pagination.component.mjs +323 -0
  44. package/esm2022/components/searchbar/searchbar.component.mjs +493 -0
  45. package/esm2022/directives/collapsable.directive.mjs +28 -0
  46. package/esm2022/engine/NgxBaseComponent.mjs +539 -0
  47. package/esm2022/for-angular.module.mjs +118 -0
  48. package/{dist/lib/fesm2022 → fesm2022}/decaf-ts-for-angular.mjs +621 -1805
  49. package/fesm2022/decaf-ts-for-angular.mjs.map +1 -0
  50. package/{dist/lib/for-angular.module.d.ts → for-angular.module.d.ts} +0 -1
  51. package/{dist/lib/helpers → helpers}/index.d.ts +0 -1
  52. package/{dist/lib/helpers → helpers}/utils.d.ts +0 -1
  53. package/{dist/lib/index.d.ts → index.d.ts} +0 -1
  54. package/{dist/lib/interfaces.d.ts → interfaces.d.ts} +0 -1
  55. package/package.json +19 -95
  56. package/{dist/lib/public-apis.d.ts → public-apis.d.ts} +0 -1
  57. package/LICENSE.md +0 -659
  58. package/dist/for-angular/cli/cli-module.d.ts +0 -22
  59. package/dist/for-angular/cli/cli-module.d.ts.map +0 -1
  60. package/dist/for-angular/cli/cli-module.js +0 -131
  61. package/dist/for-angular/cli/cli-module.js.map +0 -1
  62. package/dist/lib/README.md +0 -92
  63. package/dist/lib/components/component-renderer/component-renderer.component.d.ts.map +0 -1
  64. package/dist/lib/components/crud-field/crud-field.component.d.ts.map +0 -1
  65. package/dist/lib/components/crud-form/constants.d.ts.map +0 -1
  66. package/dist/lib/components/crud-form/crud-form.component.d.ts.map +0 -1
  67. package/dist/lib/components/crud-form/types.d.ts.map +0 -1
  68. package/dist/lib/components/empty-state/empty-state.component.d.ts.map +0 -1
  69. package/dist/lib/components/fieldset/fieldset.component.d.ts.map +0 -1
  70. package/dist/lib/components/filter/filter.component.d.ts.map +0 -1
  71. package/dist/lib/components/for-angular-components.module.d.ts.map +0 -1
  72. package/dist/lib/components/index.d.ts.map +0 -1
  73. package/dist/lib/components/layout/layout.component.d.ts.map +0 -1
  74. package/dist/lib/components/list/constants.d.ts.map +0 -1
  75. package/dist/lib/components/list/list.component.d.ts.map +0 -1
  76. package/dist/lib/components/list-item/list-item.component.d.ts.map +0 -1
  77. package/dist/lib/components/model-renderer/model-renderer.component.d.ts.map +0 -1
  78. package/dist/lib/components/pagination/constants.d.ts.map +0 -1
  79. package/dist/lib/components/pagination/pagination.component.d.ts.map +0 -1
  80. package/dist/lib/components/searchbar/searchbar.component.d.ts.map +0 -1
  81. package/dist/lib/decaf-ts-for-angular.d.ts.map +0 -1
  82. package/dist/lib/directives/collapsable.directive.d.ts.map +0 -1
  83. package/dist/lib/directives/index.d.ts.map +0 -1
  84. package/dist/lib/engine/DynamicModule.d.ts.map +0 -1
  85. package/dist/lib/engine/NgxBaseComponent.d.ts.map +0 -1
  86. package/dist/lib/engine/NgxCrudFormField.d.ts.map +0 -1
  87. package/dist/lib/engine/NgxFormService.d.ts.map +0 -1
  88. package/dist/lib/engine/NgxRenderingEngine.d.ts.map +0 -1
  89. package/dist/lib/engine/NgxRenderingEngine2.d.ts.map +0 -1
  90. package/dist/lib/engine/ValidatorFactory.d.ts.map +0 -1
  91. package/dist/lib/engine/constants.d.ts.map +0 -1
  92. package/dist/lib/engine/decorators.d.ts.map +0 -1
  93. package/dist/lib/engine/index.d.ts.map +0 -1
  94. package/dist/lib/engine/types.d.ts.map +0 -1
  95. package/dist/lib/esm2022/components/component-renderer/component-renderer.component.mjs +0 -359
  96. package/dist/lib/esm2022/components/crud-field/crud-field.component.mjs +0 -456
  97. package/dist/lib/esm2022/components/crud-form/crud-form.component.mjs +0 -272
  98. package/dist/lib/esm2022/components/empty-state/empty-state.component.mjs +0 -410
  99. package/dist/lib/esm2022/components/fieldset/fieldset.component.mjs +0 -250
  100. package/dist/lib/esm2022/components/filter/filter.component.mjs +0 -906
  101. package/dist/lib/esm2022/components/for-angular-components.module.mjs +0 -72
  102. package/dist/lib/esm2022/components/layout/layout.component.mjs +0 -245
  103. package/dist/lib/esm2022/components/list/list.component.mjs +0 -1405
  104. package/dist/lib/esm2022/components/list-item/list-item.component.mjs +0 -612
  105. package/dist/lib/esm2022/components/model-renderer/model-renderer.component.mjs +0 -182
  106. package/dist/lib/esm2022/components/pagination/pagination.component.mjs +0 -364
  107. package/dist/lib/esm2022/components/searchbar/searchbar.component.mjs +0 -503
  108. package/dist/lib/esm2022/directives/collapsable.directive.mjs +0 -28
  109. package/dist/lib/esm2022/engine/NgxBaseComponent.mjs +0 -546
  110. package/dist/lib/esm2022/for-angular.module.mjs +0 -119
  111. package/dist/lib/fesm2022/decaf-ts-for-angular.mjs.map +0 -1
  112. package/dist/lib/for-angular.module.d.ts.map +0 -1
  113. package/dist/lib/helpers/index.d.ts.map +0 -1
  114. package/dist/lib/helpers/utils.d.ts.map +0 -1
  115. package/dist/lib/interfaces.d.ts.map +0 -1
  116. package/dist/lib/public-apis.d.ts.map +0 -1
  117. /package/{dist/lib/assets → assets}/i18n/en.json +0 -0
  118. /package/{dist/lib/assets → assets}/images/angular-logo.svg +0 -0
  119. /package/{dist/lib/assets → assets}/images/decaf-logo-black.svg +0 -0
  120. /package/{dist/lib/assets → assets}/images/decaf-logo-lw.svg +0 -0
  121. /package/{dist/lib/assets → assets}/images/decaf-logo-white.svg +0 -0
  122. /package/{dist/lib/assets → assets}/images/decaf-logo.svg +0 -0
  123. /package/{dist/lib/esm2022 → esm2022}/components/crud-form/constants.mjs +0 -0
  124. /package/{dist/lib/esm2022 → esm2022}/components/crud-form/types.mjs +0 -0
  125. /package/{dist/lib/esm2022 → esm2022}/components/index.mjs +0 -0
  126. /package/{dist/lib/esm2022 → esm2022}/components/list/constants.mjs +0 -0
  127. /package/{dist/lib/esm2022 → esm2022}/components/pagination/constants.mjs +0 -0
  128. /package/{dist/lib/esm2022 → esm2022}/decaf-ts-for-angular.mjs +0 -0
  129. /package/{dist/lib/esm2022 → esm2022}/directives/index.mjs +0 -0
  130. /package/{dist/lib/esm2022 → esm2022}/engine/DynamicModule.mjs +0 -0
  131. /package/{dist/lib/esm2022 → esm2022}/engine/NgxCrudFormField.mjs +0 -0
  132. /package/{dist/lib/esm2022 → esm2022}/engine/NgxFormService.mjs +0 -0
  133. /package/{dist/lib/esm2022 → esm2022}/engine/NgxRenderingEngine.mjs +0 -0
  134. /package/{dist/lib/esm2022 → esm2022}/engine/NgxRenderingEngine2.mjs +0 -0
  135. /package/{dist/lib/esm2022 → esm2022}/engine/ValidatorFactory.mjs +0 -0
  136. /package/{dist/lib/esm2022 → esm2022}/engine/constants.mjs +0 -0
  137. /package/{dist/lib/esm2022 → esm2022}/engine/decorators.mjs +0 -0
  138. /package/{dist/lib/esm2022 → esm2022}/engine/index.mjs +0 -0
  139. /package/{dist/lib/esm2022 → esm2022}/engine/types.mjs +0 -0
  140. /package/{dist/lib/esm2022 → esm2022}/helpers/index.mjs +0 -0
  141. /package/{dist/lib/esm2022 → esm2022}/helpers/utils.mjs +0 -0
  142. /package/{dist/lib/esm2022 → esm2022}/interfaces.mjs +0 -0
  143. /package/{dist/lib/esm2022 → esm2022}/public-apis.mjs +0 -0
@@ -1,6 +1,6 @@
1
1
  import { UIKeys, parseValueByType, HTML5InputTypes, HTML5CheckTypes, escapeHtml, parseToNumber, RenderingEngine, RenderingError } from '@decaf-ts/ui-decorators';
2
2
  import * as i0 from '@angular/core';
3
- import { reflectComponentType, CUSTOM_ELEMENTS_SCHEMA, NO_ERRORS_SCHEMA, NgModule, inject, EnvironmentInjector, EventEmitter, ViewContainerRef, TemplateRef, Component, ViewChild, Input, Output, ElementRef, isDevMode, Inject, Directive, ChangeDetectorRef, HostListener, Injector } from '@angular/core';
3
+ import { reflectComponentType, CUSTOM_ELEMENTS_SCHEMA, NO_ERRORS_SCHEMA, NgModule, inject, EnvironmentInjector, EventEmitter, ViewContainerRef, TemplateRef, ViewChild, Input, Output, Component, ElementRef, isDevMode, Inject, Directive, ChangeDetectorRef, HostListener, Injector } from '@angular/core';
4
4
  import { VALIDATION_PARENT_KEY, ValidationKeys, DEFAULT_PATTERNS, Validation, ComparisonValidationKeys, PathProxyEngine, isValidDate as isValidDate$1, parseDate, sf, Primitives, Model } from '@decaf-ts/decorator-validation';
5
5
  import { InternalError, OperationKeys } from '@decaf-ts/db-decorators';
6
6
  import * as i2$1 from '@angular/forms';
@@ -973,9 +973,35 @@ class ForAngularModule {
973
973
  ngModule: ForAngularModule,
974
974
  };
975
975
  }
976
- static { this.ɵfac = function ForAngularModule_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || ForAngularModule)(); }; }
977
- static { this.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: ForAngularModule }); }
978
- static { this.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [IonApp,
976
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ForAngularModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
977
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: ForAngularModule, imports: [IonApp,
978
+ IonRouterOutlet,
979
+ IonSplitPane,
980
+ IonImg,
981
+ IonText,
982
+ IonTitle,
983
+ IonButton,
984
+ IonRouterLink,
985
+ IonContent,
986
+ CommonModule,
987
+ FormsModule,
988
+ ReactiveFormsModule,
989
+ TranslateModule,
990
+ TranslatePipe], exports: [IonApp,
991
+ IonRouterOutlet,
992
+ IonSplitPane,
993
+ IonImg,
994
+ IonText,
995
+ IonTitle,
996
+ IonButton,
997
+ IonRouterLink,
998
+ IonContent,
999
+ CommonModule,
1000
+ FormsModule,
1001
+ ReactiveFormsModule,
1002
+ TranslateModule,
1003
+ TranslatePipe] }); }
1004
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ForAngularModule, imports: [IonApp,
979
1005
  IonRouterOutlet,
980
1006
  IonSplitPane,
981
1007
  IonImg,
@@ -992,79 +1018,16 @@ class ForAngularModule {
992
1018
  ReactiveFormsModule,
993
1019
  TranslateModule] }); }
994
1020
  }
995
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ForAngularModule, [{
996
- type: NgModule,
997
- args: [{
998
- imports: ComponentsAndModules,
999
- declarations: [],
1000
- exports: ComponentsAndModules,
1001
- schemas: [CUSTOM_ELEMENTS_SCHEMA, NO_ERRORS_SCHEMA],
1002
- }]
1003
- }], null, null); })();
1004
- (function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(ForAngularModule, { imports: [IonApp,
1005
- IonRouterOutlet,
1006
- IonSplitPane,
1007
- IonImg,
1008
- IonText,
1009
- IonTitle,
1010
- IonButton,
1011
- IonRouterLink,
1012
- IonContent,
1013
- CommonModule,
1014
- FormsModule,
1015
- ReactiveFormsModule,
1016
- TranslateModule,
1017
- TranslatePipe], exports: [IonApp,
1018
- IonRouterOutlet,
1019
- IonSplitPane,
1020
- IonImg,
1021
- IonText,
1022
- IonTitle,
1023
- IonButton,
1024
- IonRouterLink,
1025
- IonContent,
1026
- CommonModule,
1027
- FormsModule,
1028
- ReactiveFormsModule,
1029
- TranslateModule,
1030
- TranslatePipe] }); })();
1021
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ForAngularModule, decorators: [{
1022
+ type: NgModule,
1023
+ args: [{
1024
+ imports: ComponentsAndModules,
1025
+ declarations: [],
1026
+ exports: ComponentsAndModules,
1027
+ schemas: [CUSTOM_ELEMENTS_SCHEMA, NO_ERRORS_SCHEMA],
1028
+ }]
1029
+ }] });
1031
1030
 
1032
- const _c0$a = ["componentViewContainer"];
1033
- const _c1$7 = ["inner"];
1034
- function ComponentRendererComponent_ng_template_0_Template(rf, ctx) { }
1035
- function ComponentRendererComponent_ng_template_2_Conditional_0_For_1_Conditional_0_ng_container_0_Template(rf, ctx) { if (rf & 1) {
1036
- i0.ɵɵelementContainer(0);
1037
- } }
1038
- function ComponentRendererComponent_ng_template_2_Conditional_0_For_1_Conditional_0_Template(rf, ctx) { if (rf & 1) {
1039
- i0.ɵɵtemplate(0, ComponentRendererComponent_ng_template_2_Conditional_0_For_1_Conditional_0_ng_container_0_Template, 1, 0, "ng-container", 3);
1040
- } if (rf & 2) {
1041
- const child_r1 = i0.ɵɵnextContext().$implicit;
1042
- i0.ɵɵproperty("ngComponentOutlet", child_r1.component)("ngComponentOutletInjector", child_r1.injector)("ngComponentOutletInputs", child_r1.inputs)("ngComponentOutletContent", child_r1.content);
1043
- } }
1044
- function ComponentRendererComponent_ng_template_2_Conditional_0_For_1_Conditional_1_Template(rf, ctx) { if (rf & 1) {
1045
- i0.ɵɵelement(0, "ngx-decaf-component-renderer", 2);
1046
- } if (rf & 2) {
1047
- const child_r1 = i0.ɵɵnextContext().$implicit;
1048
- i0.ɵɵproperty("parent", child_r1);
1049
- } }
1050
- function ComponentRendererComponent_ng_template_2_Conditional_0_For_1_Template(rf, ctx) { if (rf & 1) {
1051
- i0.ɵɵtemplate(0, ComponentRendererComponent_ng_template_2_Conditional_0_For_1_Conditional_0_Template, 1, 4, "ng-container")(1, ComponentRendererComponent_ng_template_2_Conditional_0_For_1_Conditional_1_Template, 1, 1, "ngx-decaf-component-renderer", 2);
1052
- } if (rf & 2) {
1053
- const child_r1 = ctx.$implicit;
1054
- i0.ɵɵconditional(!(child_r1.children == null ? null : child_r1.children.length) ? 0 : 1);
1055
- } }
1056
- function ComponentRendererComponent_ng_template_2_Conditional_0_Template(rf, ctx) { if (rf & 1) {
1057
- i0.ɵɵrepeaterCreate(0, ComponentRendererComponent_ng_template_2_Conditional_0_For_1_Template, 2, 1, null, null, i0.ɵɵrepeaterTrackByIdentity);
1058
- } if (rf & 2) {
1059
- const ctx_r1 = i0.ɵɵnextContext(2);
1060
- i0.ɵɵrepeater(ctx_r1.parent.children);
1061
- } }
1062
- function ComponentRendererComponent_ng_template_2_Template(rf, ctx) { if (rf & 1) {
1063
- i0.ɵɵtemplate(0, ComponentRendererComponent_ng_template_2_Conditional_0_Template, 2, 0);
1064
- } if (rf & 2) {
1065
- const ctx_r1 = i0.ɵɵnextContext();
1066
- i0.ɵɵconditional((ctx_r1.parent == null ? null : ctx_r1.parent.children == null ? null : ctx_r1.parent.children.length) ? 0 : -1);
1067
- } }
1068
1031
  /**
1069
1032
  * @description Dynamic component renderer for Decaf Angular applications.
1070
1033
  * @summary This component provides a flexible way to dynamically render Angular components
@@ -1348,40 +1311,30 @@ class ComponentRendererComponent {
1348
1311
  }
1349
1312
  }
1350
1313
  }
1351
- static { this.ɵfac = function ComponentRendererComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || ComponentRendererComponent)(); }; }
1352
- static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ComponentRendererComponent, selectors: [["ngx-decaf-component-renderer"]], viewQuery: function ComponentRendererComponent_Query(rf, ctx) { if (rf & 1) {
1353
- i0.ɵɵviewQuery(_c0$a, 7, ViewContainerRef);
1354
- i0.ɵɵviewQuery(_c1$7, 7, TemplateRef);
1355
- } if (rf & 2) {
1356
- let _t;
1357
- i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.vcr = _t.first);
1358
- i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.inner = _t.first);
1359
- } }, inputs: { tag: "tag", globals: "globals", model: "model", parent: "parent" }, outputs: { listenEvent: "listenEvent" }, standalone: true, features: [i0.ɵɵStandaloneFeature], decls: 4, vars: 0, consts: [["componentViewContainer", ""], ["inner", ""], [3, "parent"], [4, "ngComponentOutlet", "ngComponentOutletInjector", "ngComponentOutletInputs", "ngComponentOutletContent"]], template: function ComponentRendererComponent_Template(rf, ctx) { if (rf & 1) {
1360
- i0.ɵɵtemplate(0, ComponentRendererComponent_ng_template_0_Template, 0, 0, "ng-template", null, 0, i0.ɵɵtemplateRefExtractor)(2, ComponentRendererComponent_ng_template_2_Template, 1, 1, "ng-template", null, 1, i0.ɵɵtemplateRefExtractor);
1361
- } }, dependencies: [ComponentRendererComponent, ForAngularModule, i2.NgComponentOutlet] }); }
1314
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ComponentRendererComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1315
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: ComponentRendererComponent, isStandalone: true, selector: "ngx-decaf-component-renderer", inputs: { tag: "tag", globals: "globals", model: "model", parent: "parent" }, outputs: { listenEvent: "listenEvent" }, viewQueries: [{ propertyName: "vcr", first: true, predicate: ["componentViewContainer"], descendants: true, read: ViewContainerRef, static: true }, { propertyName: "inner", first: true, predicate: ["inner"], descendants: true, read: TemplateRef, static: true }], ngImport: i0, template: "<ng-template #componentViewContainer></ng-template>\n\n<ng-template #inner>\n @if(parent?.children?.length) {\n @for(child of parent.children; track child) {\n @if(!child.children?.length) {\n <ng-container\n *ngComponentOutlet=\"\n child.component;\n injector: child.injector;\n inputs: child.inputs;\n content:child.content;\n \"\n />\n } @else {\n <ngx-decaf-component-renderer [parent]=\"child\"> </ngx-decaf-component-renderer>\n }\n }\n }\n</ng-template>\n\n\n", styles: [""], dependencies: [{ kind: "component", type: ComponentRendererComponent, selector: "ngx-decaf-component-renderer", inputs: ["tag", "globals", "model", "parent"], outputs: ["listenEvent"] }, { kind: "ngmodule", type: ForAngularModule }, { kind: "directive", type: i2.NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"] }] }); }
1362
1316
  }
1363
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ComponentRendererComponent, [{
1364
- type: Component,
1365
- args: [{ selector: 'ngx-decaf-component-renderer', imports: [ForAngularModule], standalone: true, template: "<ng-template #componentViewContainer></ng-template>\n\n<ng-template #inner>\n @if(parent?.children?.length) {\n @for(child of parent.children; track child) {\n @if(!child.children?.length) {\n <ng-container\n *ngComponentOutlet=\"\n child.component;\n injector: child.injector;\n inputs: child.inputs;\n content:child.content;\n \"\n />\n } @else {\n <ngx-decaf-component-renderer [parent]=\"child\"> </ngx-decaf-component-renderer>\n }\n }\n }\n</ng-template>\n\n\n" }]
1366
- }], () => [], { vcr: [{
1367
- type: ViewChild,
1368
- args: ['componentViewContainer', { static: true, read: ViewContainerRef }]
1369
- }], tag: [{
1370
- type: Input,
1371
- args: [{ required: true }]
1372
- }], globals: [{
1373
- type: Input
1374
- }], listenEvent: [{
1375
- type: Output
1376
- }], model: [{
1377
- type: Input
1378
- }], parent: [{
1379
- type: Input
1380
- }], inner: [{
1381
- type: ViewChild,
1382
- args: ['inner', { read: TemplateRef, static: true }]
1383
- }] }); })();
1384
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ComponentRendererComponent, { className: "ComponentRendererComponent", filePath: "components/component-renderer/component-renderer.component.ts", lineNumber: 71 }); })();
1317
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ComponentRendererComponent, decorators: [{
1318
+ type: Component,
1319
+ args: [{ selector: 'ngx-decaf-component-renderer', imports: [ForAngularModule], standalone: true, template: "<ng-template #componentViewContainer></ng-template>\n\n<ng-template #inner>\n @if(parent?.children?.length) {\n @for(child of parent.children; track child) {\n @if(!child.children?.length) {\n <ng-container\n *ngComponentOutlet=\"\n child.component;\n injector: child.injector;\n inputs: child.inputs;\n content:child.content;\n \"\n />\n } @else {\n <ngx-decaf-component-renderer [parent]=\"child\"> </ngx-decaf-component-renderer>\n }\n }\n }\n</ng-template>\n\n\n" }]
1320
+ }], ctorParameters: () => [], propDecorators: { vcr: [{
1321
+ type: ViewChild,
1322
+ args: ['componentViewContainer', { static: true, read: ViewContainerRef }]
1323
+ }], tag: [{
1324
+ type: Input,
1325
+ args: [{ required: true }]
1326
+ }], globals: [{
1327
+ type: Input
1328
+ }], listenEvent: [{
1329
+ type: Output
1330
+ }], model: [{
1331
+ type: Input
1332
+ }], parent: [{
1333
+ type: Input
1334
+ }], inner: [{
1335
+ type: ViewChild,
1336
+ args: ['inner', { read: TemplateRef, static: true }]
1337
+ }] } });
1385
1338
 
1386
1339
  /**
1387
1340
  * @class NgxCrudFormField
@@ -1535,143 +1488,6 @@ function Dynamic() {
1535
1488
  }, metadata(NgxRenderingEngine2.key(AngularEngineKeys.DYNAMIC), true));
1536
1489
  }
1537
1490
 
1538
- const _c0$9 = ["component"];
1539
- const _forTrack0$2 = ($index, $item) => $item.value;
1540
- function CrudFieldComponent_Conditional_0_Conditional_8_Template(rf, ctx) { if (rf & 1) {
1541
- i0.ɵɵelement(0, "ion-text", 4);
1542
- } if (rf & 2) {
1543
- const ctx_r0 = i0.ɵɵnextContext(2);
1544
- i0.ɵɵproperty("innerHTML", ctx_r0.type === "password" ? "********" : ctx_r0.value, i0.ɵɵsanitizeHtml);
1545
- } }
1546
- function CrudFieldComponent_Conditional_0_Conditional_9_Template(rf, ctx) { if (rf & 1) {
1547
- i0.ɵɵelement(0, "br");
1548
- } }
1549
- function CrudFieldComponent_Conditional_0_Template(rf, ctx) { if (rf & 1) {
1550
- i0.ɵɵelementContainerStart(0, null, 0);
1551
- i0.ɵɵelementStart(2, "div")(3, "ion-item")(4, "ion-label");
1552
- i0.ɵɵtext(5);
1553
- i0.ɵɵpipe(6, "translate");
1554
- i0.ɵɵelement(7, "br");
1555
- i0.ɵɵtemplate(8, CrudFieldComponent_Conditional_0_Conditional_8_Template, 1, 1, "ion-text", 4)(9, CrudFieldComponent_Conditional_0_Conditional_9_Template, 1, 0, "br");
1556
- i0.ɵɵelementEnd()()();
1557
- i0.ɵɵelementContainerEnd();
1558
- } if (rf & 2) {
1559
- const ctx_r0 = i0.ɵɵnextContext();
1560
- i0.ɵɵadvance(2);
1561
- i0.ɵɵclassMap("dcf-input-item " + ctx_r0.operation);
1562
- i0.ɵɵadvance(3);
1563
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(6, 4, ctx_r0.label), "");
1564
- i0.ɵɵadvance(3);
1565
- i0.ɵɵconditional(ctx_r0.value ? 8 : 9);
1566
- } }
1567
- function CrudFieldComponent_Conditional_1_Conditional_4_Template(rf, ctx) { if (rf & 1) {
1568
- i0.ɵɵelement(0, "ion-textarea", 5);
1569
- i0.ɵɵpipe(1, "translate");
1570
- i0.ɵɵpipe(2, "translate");
1571
- } if (rf & 2) {
1572
- i0.ɵɵnextContext();
1573
- const container_r2 = i0.ɵɵreference(3);
1574
- const ctx_r0 = i0.ɵɵnextContext();
1575
- i0.ɵɵproperty("mode", ctx_r0.mode)("hidden", ctx_r0.hidden)("required", ctx_r0.required !== undefined ? ctx_r0.required : null)("minlength", ctx_r0.minlength !== undefined ? ctx_r0.minlength : null)("maxlength", ctx_r0.maxlength !== undefined ? ctx_r0.maxlength : null)("readonly", ctx_r0.readonly !== undefined ? ctx_r0.readonly : null)("inputmode", ctx_r0.inputmode)("spellcheck", ctx_r0.spellcheck)("rows", ctx_r0.rows)("labelPlacement", ctx_r0.labelPlacement)("value", ctx_r0.value)("fill", ctx_r0.fill)("errorText", ctx_r0.getErrors(container_r2))("placeholder", ctx_r0.translatable ? i0.ɵɵpipeBind1(1, 16, ctx_r0.placeholder) : ctx_r0.placeholder)("formControlName", ctx_r0.name)("label", ctx_r0.translatable ? i0.ɵɵpipeBind1(2, 18, ctx_r0.label) : ctx_r0.label);
1576
- } }
1577
- function CrudFieldComponent_Conditional_1_Conditional_5_Template(rf, ctx) { if (rf & 1) {
1578
- const _r3 = i0.ɵɵgetCurrentView();
1579
- i0.ɵɵelementStart(0, "ion-item")(1, "ion-checkbox", 9, 2);
1580
- i0.ɵɵlistener("ionChange", function CrudFieldComponent_Conditional_1_Conditional_5_Template_ion_checkbox_ionChange_1_listener() { i0.ɵɵrestoreView(_r3); const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.checked = !ctx_r0.checked); });
1581
- i0.ɵɵelement(3, "span", 4);
1582
- i0.ɵɵpipe(4, "translate");
1583
- i0.ɵɵelementEnd()();
1584
- } if (rf & 2) {
1585
- i0.ɵɵnextContext();
1586
- const container_r2 = i0.ɵɵreference(3);
1587
- const ctx_r0 = i0.ɵɵnextContext();
1588
- i0.ɵɵadvance();
1589
- i0.ɵɵproperty("name", ctx_r0.path)("mode", ctx_r0.mode)("errorText", ctx_r0.getErrors(container_r2))("hidden", ctx_r0.hidden)("labelPlacement", ctx_r0.labelPlacement)("justify", ctx_r0.justify)("value", ctx_r0.value)("checked", ctx_r0.checked)("readonly", ctx_r0.readonly)("formControlName", ctx_r0.name);
1590
- i0.ɵɵadvance(2);
1591
- i0.ɵɵproperty("innerHTML", i0.ɵɵpipeBind1(4, 11, ctx_r0.label), i0.ɵɵsanitizeHtml);
1592
- } }
1593
- function CrudFieldComponent_Conditional_1_Conditional_6_For_6_Template(rf, ctx) { if (rf & 1) {
1594
- i0.ɵɵelementStart(0, "ion-item")(1, "ion-radio", 11);
1595
- i0.ɵɵtext(2);
1596
- i0.ɵɵpipe(3, "translate");
1597
- i0.ɵɵelementEnd()();
1598
- } if (rf & 2) {
1599
- const option_r4 = ctx.$implicit;
1600
- i0.ɵɵnextContext(2);
1601
- const container_r2 = i0.ɵɵreference(3);
1602
- const ctx_r0 = i0.ɵɵnextContext();
1603
- i0.ɵɵadvance();
1604
- i0.ɵɵproperty("errorText", ctx_r0.getErrors(container_r2))("mode", ctx_r0.mode)("hidden", ctx_r0.hidden)("labelPlacement", ctx_r0.labelPlacement)("alignment", ctx_r0.alignment)("justify", ctx_r0.justify)("readonly", ctx_r0.readonly)("value", option_r4.value);
1605
- i0.ɵɵadvance();
1606
- i0.ɵɵtextInterpolate(ctx_r0.translatable ? i0.ɵɵpipeBind1(3, 9, option_r4 == null ? null : option_r4.text) : option_r4 == null ? null : option_r4.text);
1607
- } }
1608
- function CrudFieldComponent_Conditional_1_Conditional_6_Template(rf, ctx) { if (rf & 1) {
1609
- i0.ɵɵelementStart(0, "ion-radio-group", 6, 0)(2, "label", 10);
1610
- i0.ɵɵtext(3);
1611
- i0.ɵɵpipe(4, "translate");
1612
- i0.ɵɵelementEnd();
1613
- i0.ɵɵrepeaterCreate(5, CrudFieldComponent_Conditional_1_Conditional_6_For_6_Template, 4, 11, "ion-item", null, i0.ɵɵrepeaterTrackByIdentity);
1614
- i0.ɵɵelementEnd();
1615
- } if (rf & 2) {
1616
- const ctx_r0 = i0.ɵɵnextContext(2);
1617
- i0.ɵɵproperty("formControlName", ctx_r0.name)("name", ctx_r0.path)("value", ctx_r0.value);
1618
- i0.ɵɵadvance(2);
1619
- i0.ɵɵproperty("for", ctx_r0.path);
1620
- i0.ɵɵadvance();
1621
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(4, 5, ctx_r0.label));
1622
- i0.ɵɵadvance(2);
1623
- i0.ɵɵrepeater(ctx_r0.options);
1624
- } }
1625
- function CrudFieldComponent_Conditional_1_Conditional_7_For_4_Template(rf, ctx) { if (rf & 1) {
1626
- i0.ɵɵelementStart(0, "ion-select-option", 12);
1627
- i0.ɵɵtext(1);
1628
- i0.ɵɵpipe(2, "translate");
1629
- i0.ɵɵelementEnd();
1630
- } if (rf & 2) {
1631
- const option_r5 = ctx.$implicit;
1632
- const ctx_r0 = i0.ɵɵnextContext(3);
1633
- i0.ɵɵproperty("value", option_r5.value);
1634
- i0.ɵɵadvance();
1635
- i0.ɵɵtextInterpolate1(" ", ctx_r0.translatable ? i0.ɵɵpipeBind1(2, 2, option_r5.text) : ctx_r0.options.text, " ");
1636
- } }
1637
- function CrudFieldComponent_Conditional_1_Conditional_7_Template(rf, ctx) { if (rf & 1) {
1638
- i0.ɵɵelementStart(0, "ion-select", 7);
1639
- i0.ɵɵpipe(1, "translate");
1640
- i0.ɵɵpipe(2, "translate");
1641
- i0.ɵɵrepeaterCreate(3, CrudFieldComponent_Conditional_1_Conditional_7_For_4_Template, 3, 4, "ion-select-option", 12, _forTrack0$2);
1642
- i0.ɵɵelementEnd();
1643
- } if (rf & 2) {
1644
- i0.ɵɵnextContext();
1645
- const container_r2 = i0.ɵɵreference(3);
1646
- const ctx_r0 = i0.ɵɵnextContext();
1647
- i0.ɵɵproperty("name", ctx_r0.path)("mode", ctx_r0.mode)("hidden", ctx_r0.hidden)("labelPlacement", ctx_r0.labelPlacement)("label", ctx_r0.translatable ? i0.ɵɵpipeBind1(1, 11, ctx_r0.label) : ctx_r0.label)("value", ctx_r0.value)("fill", ctx_r0.fill)("placeholder", ctx_r0.translatable ? i0.ɵɵpipeBind1(2, 13, ctx_r0.placeholder) : ctx_r0.placeholder)("formControlName", ctx_r0.name)("errorText", ctx_r0.getErrors(container_r2))("interface", ctx_r0.interface);
1648
- i0.ɵɵadvance(3);
1649
- i0.ɵɵrepeater(ctx_r0.options);
1650
- } }
1651
- function CrudFieldComponent_Conditional_1_Conditional_8_Template(rf, ctx) { if (rf & 1) {
1652
- i0.ɵɵelement(0, "ion-input", 8);
1653
- i0.ɵɵpipe(1, "translate");
1654
- i0.ɵɵpipe(2, "translate");
1655
- } if (rf & 2) {
1656
- i0.ɵɵnextContext();
1657
- const container_r2 = i0.ɵɵreference(3);
1658
- const ctx_r0 = i0.ɵɵnextContext();
1659
- i0.ɵɵproperty("name", ctx_r0.path)("type", ctx_r0.type)("mode", ctx_r0.mode)("hidden", ctx_r0.hidden)("inputmode", ctx_r0.inputmode)("labelPlacement", ctx_r0.labelPlacement)("required", ctx_r0.required !== undefined ? ctx_r0.required : false)("minlength", ctx_r0.minlength !== undefined ? ctx_r0.minlength : null)("maxlength", ctx_r0.maxlength !== undefined ? ctx_r0.maxlength : null)("readonly", ctx_r0.readonly !== undefined ? ctx_r0.readonly : null)("max", ctx_r0.max !== undefined ? ctx_r0.max : null)("min", ctx_r0.min !== undefined ? ctx_r0.min : null)("pattern", ctx_r0.pattern !== undefined ? ctx_r0.pattern : null)("step", ctx_r0.step !== undefined ? ctx_r0.step : null)("fill", ctx_r0.fill)("placeholder", ctx_r0.translatable ? i0.ɵɵpipeBind1(1, 19, ctx_r0.placeholder) : ctx_r0.placeholder)("formControlName", ctx_r0.name)("errorText", ctx_r0.getErrors(container_r2))("label", ctx_r0.translatable ? i0.ɵɵpipeBind1(2, 21, ctx_r0.label) : ctx_r0.label);
1660
- } }
1661
- function CrudFieldComponent_Conditional_1_Template(rf, ctx) { if (rf & 1) {
1662
- i0.ɵɵelementContainerStart(0, 3, 0);
1663
- i0.ɵɵelementStart(2, "div", null, 1);
1664
- i0.ɵɵtemplate(4, CrudFieldComponent_Conditional_1_Conditional_4_Template, 3, 20, "ion-textarea", 5)(5, CrudFieldComponent_Conditional_1_Conditional_5_Template, 5, 13, "ion-item")(6, CrudFieldComponent_Conditional_1_Conditional_6_Template, 7, 7, "ion-radio-group", 6)(7, CrudFieldComponent_Conditional_1_Conditional_7_Template, 5, 15, "ion-select", 7)(8, CrudFieldComponent_Conditional_1_Conditional_8_Template, 3, 23, "ion-input", 8);
1665
- i0.ɵɵelementEnd();
1666
- i0.ɵɵelementContainerEnd();
1667
- } if (rf & 2) {
1668
- const ctx_r0 = i0.ɵɵnextContext();
1669
- i0.ɵɵproperty("formGroup", ctx_r0.formGroup);
1670
- i0.ɵɵadvance(2);
1671
- i0.ɵɵclassMap("dcf-input-item " + (ctx_r0.operation || "create"));
1672
- i0.ɵɵadvance(2);
1673
- i0.ɵɵconditional(ctx_r0.type === "textarea" ? 4 : ctx_r0.type === "checkbox" ? 5 : ctx_r0.type === "radio" ? 6 : ctx_r0.type === "select" ? 7 : 8);
1674
- } }
1675
1491
  /**
1676
1492
  * @description A dynamic form field component for CRUD operations.
1677
1493
  * @summary The CrudFieldComponent is a versatile form field component that adapts to different
@@ -1837,143 +1653,125 @@ let CrudFieldComponent = class CrudFieldComponent extends NgxCrudFormField {
1837
1653
  if ([OperationKeys.READ, OperationKeys.DELETE].includes(this.operation))
1838
1654
  this.onDestroy();
1839
1655
  }
1840
- static { this.ɵfac = /*@__PURE__*/ (() => { let ɵCrudFieldComponent_BaseFactory; return function CrudFieldComponent_Factory(__ngFactoryType__) { return (ɵCrudFieldComponent_BaseFactory || (ɵCrudFieldComponent_BaseFactory = i0.ɵɵgetInheritedFactory(CrudFieldComponent)))(__ngFactoryType__ || CrudFieldComponent); }; })(); }
1841
- static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: CrudFieldComponent, selectors: [["ngx-decaf-crud-field"]], viewQuery: function CrudFieldComponent_Query(rf, ctx) { if (rf & 1) {
1842
- i0.ɵɵviewQuery(_c0$9, 5, ElementRef);
1843
- } if (rf & 2) {
1844
- let _t;
1845
- i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.component = _t.first);
1846
- } }, inputs: { operation: "operation", name: "name", path: "path", childOf: "childOf", type: "type", value: "value", disabled: "disabled", label: "label", placeholder: "placeholder", format: "format", hidden: "hidden", max: "max", maxlength: "maxlength", min: "min", minlength: "minlength", pattern: "pattern", readonly: "readonly", required: "required", step: "step", equals: "equals", different: "different", lessThan: "lessThan", lessThanOrEqual: "lessThanOrEqual", greaterThan: "greaterThan", greaterThanOrEqual: "greaterThanOrEqual", cols: "cols", rows: "rows", alignment: "alignment", checked: "checked", justify: "justify", cancelText: "cancelText", interface: "interface", options: "options", mode: "mode", spellcheck: "spellcheck", inputmode: "inputmode", autocomplete: "autocomplete", fill: "fill", labelPlacement: "labelPlacement", updateOn: "updateOn", formGroup: "formGroup", formControl: "formControl", translatable: "translatable", uid: "uid" }, standalone: true, features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature], decls: 2, vars: 1, consts: [["component", ""], ["container", ""], ["checkboxElement", ""], [3, "formGroup"], [3, "innerHTML"], [3, "mode", "hidden", "required", "minlength", "maxlength", "readonly", "inputmode", "spellcheck", "rows", "labelPlacement", "value", "fill", "errorText", "placeholder", "formControlName", "label"], [3, "formControlName", "name", "value"], ["toggleIcon", "chevron-down-outline", "expandedIcon", "chevron-up-outline", 3, "name", "mode", "hidden", "labelPlacement", "label", "value", "fill", "placeholder", "formControlName", "errorText", "interface"], [3, "name", "type", "mode", "hidden", "inputmode", "labelPlacement", "required", "minlength", "maxlength", "readonly", "max", "min", "pattern", "step", "fill", "placeholder", "formControlName", "errorText", "label"], [3, "ionChange", "name", "mode", "errorText", "hidden", "labelPlacement", "justify", "value", "checked", "readonly", "formControlName"], [1, "dcf-radio-group-label", 3, "for"], [3, "errorText", "mode", "hidden", "labelPlacement", "alignment", "justify", "readonly", "value"], [3, "value"]], template: function CrudFieldComponent_Template(rf, ctx) { if (rf & 1) {
1847
- i0.ɵɵtemplate(0, CrudFieldComponent_Conditional_0_Template, 10, 6, "ng-container")(1, CrudFieldComponent_Conditional_1_Template, 9, 4, "ng-container", 3);
1848
- } if (rf & 2) {
1849
- i0.ɵɵconditional(ctx.operation === "read" || ctx.operation === "delete" ? 0 : 1);
1850
- } }, dependencies: [ForAngularModule, i1.IonText, i2$1.NgControlStatus, i2$1.NgControlStatusGroup, i2$1.RequiredValidator, i2$1.MinLengthValidator, i2$1.MaxLengthValidator, i2$1.PatternValidator, i2$1.FormGroupDirective, i2$1.FormControlName, i3.TranslatePipe, IonInput,
1851
- IonItem,
1852
- IonCheckbox,
1853
- IonRadioGroup,
1854
- IonRadio,
1855
- IonSelect,
1856
- IonSelectOption,
1857
- IonLabel,
1858
- IonTextarea], styles: [".dcf-input-item.create[_ngcontent-%COMP%], .dcf-input-item.update[_ngcontent-%COMP%]{margin-bottom:1.8rem;margin-top:0!important}.dcf-input-item.create.checkbox[_ngcontent-%COMP%] + .checkbox[_ngcontent-%COMP%], .dcf-input-item.update.checkbox[_ngcontent-%COMP%] + .checkbox[_ngcontent-%COMP%]{margin-top:-.25rem!important}.dcf-input-item.create[_ngcontent-%COMP%] ion-item[_ngcontent-%COMP%], .dcf-input-item.update[_ngcontent-%COMP%] ion-item[_ngcontent-%COMP%]{--border-color: transparent}.dcf-input-item.create[_ngcontent-%COMP%] ion-item.dcf-text-wrap[_ngcontent-%COMP%] ion-label[_ngcontent-%COMP%] > *[_ngcontent-%COMP%], .dcf-input-item.update[_ngcontent-%COMP%] ion-item.dcf-text-wrap[_ngcontent-%COMP%] ion-label[_ngcontent-%COMP%] > *[_ngcontent-%COMP%]{white-space:wrap!important;word-break:break-all!important}.dcf-input-item.read[_ngcontent-%COMP%] ion-label[_ngcontent-%COMP%], .dcf-input-item.delete[_ngcontent-%COMP%] ion-label[_ngcontent-%COMP%]{font-weight:600;color:var(--ion-color-gray-7)}.dcf-input-item.read[_ngcontent-%COMP%] ion-text[_ngcontent-%COMP%], .dcf-input-item.delete[_ngcontent-%COMP%] ion-text[_ngcontent-%COMP%]{display:block;margin-top:.5rem!important;color:var(--ion-color-gray-5)}.dcf-input-item[_ngcontent-%COMP%] ion-item[_ngcontent-%COMP%]{--padding-end: 0rem;--padding-start: 0px !important;--padding-top: 0px !important;--background: transparent;--background-hover-opacity: .1;--background-hover: var(--ion-color-primary);--background-activated-opacity: .15;--background-focused: var(--ion-color-primary);--background-focused-opacity: .15;--border-color: var(--ion-color-gray-2)}.dcf-input-item[_ngcontent-%COMP%] ion-item[_ngcontent-%COMP%] span[_ngcontent-%COMP%], .dcf-input-item[_ngcontent-%COMP%] ion-item[_ngcontent-%COMP%] ion-text[_ngcontent-%COMP%]{font-weight:400!important;font-size:.925rem;min-height:.5rem!important}.dcf-input-item[_ngcontent-%COMP%] ion-item[_ngcontent-%COMP%] span[_ngcontent-%COMP%]:not(.dcf-display-block), .dcf-input-item[_ngcontent-%COMP%] ion-item[_ngcontent-%COMP%] ion-text[_ngcontent-%COMP%]:not(.dcf-display-block){display:inline-block}.dcf-input-item[_ngcontent-%COMP%] ion-item[_ngcontent-%COMP%] span.dcf-display-block[_ngcontent-%COMP%], .dcf-input-item[_ngcontent-%COMP%] ion-item[_ngcontent-%COMP%] ion-text.dcf-display-block[_ngcontent-%COMP%]{display:block!important}ion-textarea[_ngcontent-%COMP%] textarea[_ngcontent-%COMP%]{scrollbar-width:thin!important;margin-bottom:.5rem!important}ion-select.dcf-select-label-placement-floating[_ngcontent-%COMP%]::part(label){line-height:1.2rem!important}.dcf-proccessing[_ngcontent-%COMP%], .dcf-proccessing[_ngcontent-%COMP%] *[_ngcontent-%COMP%]{pointer-events:none;touch-action:none;cursor:text}ion-checkbox[_ngcontent-%COMP%]{--size: 1.5rem;--checkbox-background-checked: var(--ion-color-primary);--checkmark-width: 2px}ion-item[_ngcontent-%COMP%]{--inner-padding-start: .75rem}ion-checkbox[_ngcontent-%COMP%]::part(container){border-radius:50%;border:2px solid var(--ion-color-primary);padding:3px}ion-item[_ngcontent-%COMP%] .dcf-radio-group-label[_ngcontent-%COMP%], ion-radio-group[_ngcontent-%COMP%] .dcf-radio-group-label[_ngcontent-%COMP%]{font-weight:600}ion-item[_ngcontent-%COMP%] .dcf-radio-group-label[_ngcontent-%COMP%] ~ ion-item[_ngcontent-%COMP%], ion-radio-group[_ngcontent-%COMP%] .dcf-radio-group-label[_ngcontent-%COMP%] ~ ion-item[_ngcontent-%COMP%]{margin-top:.5rem;--inner-padding-start: .75rem}ion-item[_ngcontent-%COMP%] + .dcf-helper[_ngcontent-%COMP%], ion-radio-group[_ngcontent-%COMP%] + .dcf-helper[_ngcontent-%COMP%]{padding-left:.75rem;position:relative}.dcf-error[_ngcontent-%COMP%]{position:absolute;color:var(--ion-color-danger)!important;font-size:.8rem!important;font-weight:600!important;line-height:1.1rem;box-sizing:border-box;z-index:9999;margin-top:0;animation-duration:.1s;animation-timing-function:ease-out;animation-fill-mode:both;animation-name:_ngcontent-%COMP%_fadeTopSmallAnimation;display:flex;align-items:flex-start;gap:.25rem}.dcf-error[_ngcontent-%COMP%] .ti[_ngcontent-%COMP%], .dcf-error[_ngcontent-%COMP%] ion-icon[_ngcontent-%COMP%]{position:relative;top:2px!important;min-width:20px;font-size:1rem!important;text-align:left}.dcf-helper[_ngcontent-%COMP%]{font-size:.875rem!important;font-weight:500;margin-top:.25rem;margin-bottom:-.75rem}.dcf-helper.dcf-has-action[_ngcontent-%COMP%]{cursor:pointer;color:var(--ion-color-gray-7)!important;text-decoration:underline}.dcf-error[_ngcontent-%COMP%] + .dcf-helper[_ngcontent-%COMP%]{padding-top:1rem}@keyframes _ngcontent-%COMP%_fadeTopSmallAnimation{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@keyframes _ngcontent-%COMP%_fadeBottomSmallAnimation{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes _ngcontent-%COMP%_fadeTopMediumAnimation{0%{opacity:0;transform:translateY(-50px)}to{opacity:1;transform:translateY(0)}}"] }); }
1656
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CrudFieldComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
1657
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: CrudFieldComponent, isStandalone: true, selector: "ngx-decaf-crud-field", inputs: { operation: "operation", name: "name", path: "path", childOf: "childOf", type: "type", value: "value", disabled: "disabled", label: "label", placeholder: "placeholder", format: "format", hidden: "hidden", max: "max", maxlength: "maxlength", min: "min", minlength: "minlength", pattern: "pattern", readonly: "readonly", required: "required", step: "step", equals: "equals", different: "different", lessThan: "lessThan", lessThanOrEqual: "lessThanOrEqual", greaterThan: "greaterThan", greaterThanOrEqual: "greaterThanOrEqual", cols: "cols", rows: "rows", alignment: "alignment", checked: "checked", justify: "justify", cancelText: "cancelText", interface: "interface", options: "options", mode: "mode", spellcheck: "spellcheck", inputmode: "inputmode", autocomplete: "autocomplete", fill: "fill", labelPlacement: "labelPlacement", updateOn: "updateOn", formGroup: "formGroup", formControl: "formControl", translatable: "translatable", uid: "uid" }, viewQueries: [{ propertyName: "component", first: true, predicate: ["component"], descendants: true, read: ElementRef }], usesInheritance: true, ngImport: i0, template: "@if(operation === 'read' || operation === 'delete') {\n <ng-container #component>\n <div [class]=\"'dcf-input-item ' + operation\">\n <ion-item>\n <ion-label>\n {{ label | translate }}<br />\n @if(value) {\n <ion-text [innerHTML]=\"type === 'password' ? '********' : value\"></ion-text>\n } @else {\n <br />\n }\n </ion-label>\n </ion-item>\n </div>\n </ng-container>\n} @else {\n <ng-container #component [formGroup]=\"formGroup\">\n <div #container [class]=\"'dcf-input-item ' + (operation || 'create')\">\n @if(type === 'textarea') {\n <ion-textarea\n [mode]=\"mode\"\n [hidden]=\"hidden\"\n [required]=\"required !== undefined ? required : null\"\n [minlength]=\"minlength !== undefined ? minlength : null\"\n [maxlength]=\"maxlength !== undefined ? maxlength : null\"\n [readonly]=\"readonly !== undefined ? readonly : null\"\n [inputmode]=\"inputmode\"\n [spellcheck]=\"spellcheck\"\n [rows]=\"rows\"\n [labelPlacement]=\"labelPlacement\"\n [value]=\"value\"\n [fill]=\"fill\"\n [errorText]=\"getErrors(container)\"\n [placeholder]=\"translatable ? (placeholder | translate) : placeholder\"\n [formControlName]=\"name\"\n [label]=\"translatable ? (label | translate) : label\"\n >\n </ion-textarea>\n }\n @else if(type === 'checkbox') {\n <ion-item>\n <ion-checkbox\n #checkboxElement\n [name]=\"path\"\n [mode]=\"mode\"\n [errorText]=\"getErrors(container)\"\n [hidden]=\"hidden\"\n [labelPlacement]=\"labelPlacement\"\n [justify]=\"justify\"\n [value]=\"value\"\n [checked]=\"checked\"\n [readonly]=\"readonly\"\n (ionChange)=\"checked = !checked\"\n [formControlName]=\"name\"\n >\n <span [innerHTML]=\"label | translate\"></span>\n </ion-checkbox>\n </ion-item>\n }\n @else if(type === 'radio') {\n <ion-radio-group [formControlName]=\"name\" [name]=\"path\" [value]=\"value\" #component>\n <label class=\"dcf-radio-group-label\" [for]=\"path\">{{label | translate}}</label>\n @for(option of options; track option) {\n <ion-item>\n <ion-radio\n [errorText]=\"getErrors(container)\"\n [mode]=\"mode\"\n [hidden]=\"hidden\"\n [labelPlacement]=\"labelPlacement\"\n [alignment]=\"alignment\"\n [justify]=\"justify\"\n [readonly]=\"readonly\"\n [value]=\"option.value\"\n >{{ translatable ? (option?.text | translate) : option?.text }}</ion-radio>\n </ion-item>\n }\n </ion-radio-group>\n }\n @else if(type === 'select') {\n <ion-select\n toggleIcon=\"chevron-down-outline\"\n expandedIcon=\"chevron-up-outline\"\n [name]=\"path\"\n [mode]=\"mode\"\n [hidden]=\"hidden\"\n [labelPlacement]=\"labelPlacement\"\n [label]=\"translatable ? (label | translate) : label\"\n [value]=\"value\"\n [fill]=\"fill\"\n [placeholder]=\"translatable ? (placeholder | translate) : placeholder\"\n [formControlName]=\"name\"\n [errorText]=\"getErrors(container)\"\n [interface]=\"interface\">\n @for(option of options; track option.value) {\n <ion-select-option [value]=\"option.value\">\n {{ translatable ? (option.text | translate) : options.text }}\n </ion-select-option>\n }\n </ion-select>\n }\n @else {\n <ion-input\n [name]=\"path\"\n [type]=\"type\"\n [mode]=\"mode\"\n [hidden]=\"hidden\"\n [inputmode]=\"inputmode\"\n [labelPlacement]=\"labelPlacement\"\n [required]=\"required !== undefined ? required : false\"\n [minlength]=\"minlength !== undefined ? minlength : null\"\n [maxlength]=\"maxlength !== undefined ? maxlength : null\"\n [readonly]=\"readonly !== undefined ? readonly : null\"\n [max]=\"max !== undefined ? max : null\"\n [min]=\"min !== undefined ? min : null\"\n [pattern]=\"pattern !== undefined ? pattern : null\"\n [step]=\"step !== undefined ? step : null\"\n [fill]=\"fill\"\n [placeholder]=\"translatable ? (placeholder | translate) : placeholder\"\n [formControlName]=\"name\"\n [errorText]=\"getErrors(container)\"\n [label]=\"translatable ? (label | translate) : label\">\n </ion-input>\n }\n </div>\n </ng-container>\n}\n\n", styles: [".dcf-input-item.create,.dcf-input-item.update{margin-bottom:1.8rem;margin-top:0!important}.dcf-input-item.create.checkbox+.checkbox,.dcf-input-item.update.checkbox+.checkbox{margin-top:-.25rem!important}.dcf-input-item.create ion-item,.dcf-input-item.update ion-item{--border-color: transparent}.dcf-input-item.create ion-item.dcf-text-wrap ion-label>*,.dcf-input-item.update ion-item.dcf-text-wrap ion-label>*{white-space:wrap!important;word-break:break-all!important}.dcf-input-item.read ion-label,.dcf-input-item.delete ion-label{font-weight:600;color:var(--ion-color-gray-7)}.dcf-input-item.read ion-text,.dcf-input-item.delete ion-text{display:block;margin-top:.5rem!important;color:var(--ion-color-gray-5)}.dcf-input-item ion-item{--padding-end: 0rem;--padding-start: 0px !important;--padding-top: 0px !important;--background: transparent;--background-hover-opacity: .1;--background-hover: var(--ion-color-primary);--background-activated-opacity: .15;--background-focused: var(--ion-color-primary);--background-focused-opacity: .15;--border-color: var(--ion-color-gray-2)}.dcf-input-item ion-item span,.dcf-input-item ion-item ion-text{font-weight:400!important;font-size:.925rem;min-height:.5rem!important}.dcf-input-item ion-item span:not(.dcf-display-block),.dcf-input-item ion-item ion-text:not(.dcf-display-block){display:inline-block}.dcf-input-item ion-item span.dcf-display-block,.dcf-input-item ion-item ion-text.dcf-display-block{display:block!important}ion-textarea textarea{scrollbar-width:thin!important;margin-bottom:.5rem!important}ion-select.dcf-select-label-placement-floating::part(label){line-height:1.2rem!important}.dcf-proccessing,.dcf-proccessing *{pointer-events:none;touch-action:none;cursor:text}ion-checkbox{--size: 1.5rem;--checkbox-background-checked: var(--ion-color-primary);--checkmark-width: 2px}ion-item{--inner-padding-start: .75rem}ion-checkbox::part(container){border-radius:50%;border:2px solid var(--ion-color-primary);padding:3px}ion-item .dcf-radio-group-label,ion-radio-group .dcf-radio-group-label{font-weight:600}ion-item .dcf-radio-group-label~ion-item,ion-radio-group .dcf-radio-group-label~ion-item{margin-top:.5rem;--inner-padding-start: .75rem}ion-item+.dcf-helper,ion-radio-group+.dcf-helper{padding-left:.75rem;position:relative}.dcf-error{position:absolute;color:var(--ion-color-danger)!important;font-size:.8rem!important;font-weight:600!important;line-height:1.1rem;box-sizing:border-box;z-index:9999;margin-top:0;animation-duration:.1s;animation-timing-function:ease-out;animation-fill-mode:both;animation-name:fadeTopSmallAnimation;display:flex;align-items:flex-start;gap:.25rem}.dcf-error .ti,.dcf-error ion-icon{position:relative;top:2px!important;min-width:20px;font-size:1rem!important;text-align:left}.dcf-helper{font-size:.875rem!important;font-weight:500;margin-top:.25rem;margin-bottom:-.75rem}.dcf-helper.dcf-has-action{cursor:pointer;color:var(--ion-color-gray-7)!important;text-decoration:underline}.dcf-error+.dcf-helper{padding-top:1rem}@keyframes fadeTopSmallAnimation{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeBottomSmallAnimation{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeTopMediumAnimation{0%{opacity:0;transform:translateY(-50px)}to{opacity:1;transform:translateY(0)}}\n"], dependencies: [{ kind: "ngmodule", type: ForAngularModule }, { kind: "component", type: i1.IonText, selector: "ion-text", inputs: ["color", "mode"] }, { kind: "directive", type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2$1.MinLengthValidator, selector: "[minlength][formControlName],[minlength][formControl],[minlength][ngModel]", inputs: ["minlength"] }, { kind: "directive", type: i2$1.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i2$1.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i2$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }, { kind: "component", type: IonInput, selector: "ion-input", inputs: ["accept", "autocapitalize", "autocomplete", "autocorrect", "autofocus", "clearInput", "clearOnEdit", "color", "counter", "counterFormatter", "debounce", "disabled", "enterkeyhint", "errorText", "fill", "helperText", "inputmode", "label", "labelPlacement", "max", "maxlength", "min", "minlength", "mode", "multiple", "name", "pattern", "placeholder", "readonly", "required", "shape", "size", "spellcheck", "step", "type", "value"] }, { kind: "component", type: IonItem, selector: "ion-item", inputs: ["button", "color", "detail", "detailIcon", "disabled", "download", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: IonCheckbox, selector: "ion-checkbox", inputs: ["checked", "color", "disabled", "errorText", "helperText", "indeterminate", "justify", "labelPlacement", "mode", "name", "value"] }, { kind: "component", type: IonRadioGroup, selector: "ion-radio-group", inputs: ["allowEmptySelection", "compareWith", "errorText", "helperText", "name", "value"] }, { kind: "component", type: IonRadio, selector: "ion-radio", inputs: ["alignment", "color", "disabled", "justify", "labelPlacement", "mode", "name", "value"] }, { kind: "component", type: IonSelect, selector: "ion-select", inputs: ["cancelText", "color", "compareWith", "disabled", "errorText", "expandedIcon", "fill", "helperText", "interface", "interfaceOptions", "justify", "label", "labelPlacement", "mode", "multiple", "name", "okText", "placeholder", "selectedText", "shape", "toggleIcon", "value"] }, { kind: "component", type: IonSelectOption, selector: "ion-select-option", inputs: ["disabled", "value"] }, { kind: "component", type: IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: IonTextarea, selector: "ion-textarea", inputs: ["autoGrow", "autocapitalize", "autofocus", "clearOnEdit", "color", "cols", "counter", "counterFormatter", "debounce", "disabled", "enterkeyhint", "errorText", "fill", "helperText", "inputmode", "label", "labelPlacement", "maxlength", "minlength", "mode", "name", "placeholder", "readonly", "required", "rows", "shape", "spellcheck", "value", "wrap"] }] }); }
1859
1658
  };
1860
1659
  CrudFieldComponent = __decorate([
1861
1660
  Dynamic()
1862
1661
  ], CrudFieldComponent);
1863
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CrudFieldComponent, [{
1864
- type: Component,
1865
- args: [{ standalone: true, imports: [
1866
- ForAngularModule,
1867
- IonInput,
1868
- IonItem,
1869
- IonCheckbox,
1870
- IonRadioGroup,
1871
- IonRadio,
1872
- IonSelect,
1873
- IonSelectOption,
1874
- IonLabel,
1875
- IonText,
1876
- IonTextarea,
1877
- IonIcon
1878
- ], selector: 'ngx-decaf-crud-field', schemas: [CUSTOM_ELEMENTS_SCHEMA], template: "@if(operation === 'read' || operation === 'delete') {\n <ng-container #component>\n <div [class]=\"'dcf-input-item ' + operation\">\n <ion-item>\n <ion-label>\n {{ label | translate }}<br />\n @if(value) {\n <ion-text [innerHTML]=\"type === 'password' ? '********' : value\"></ion-text>\n } @else {\n <br />\n }\n </ion-label>\n </ion-item>\n </div>\n </ng-container>\n} @else {\n <ng-container #component [formGroup]=\"formGroup\">\n <div #container [class]=\"'dcf-input-item ' + (operation || 'create')\">\n @if(type === 'textarea') {\n <ion-textarea\n [mode]=\"mode\"\n [hidden]=\"hidden\"\n [required]=\"required !== undefined ? required : null\"\n [minlength]=\"minlength !== undefined ? minlength : null\"\n [maxlength]=\"maxlength !== undefined ? maxlength : null\"\n [readonly]=\"readonly !== undefined ? readonly : null\"\n [inputmode]=\"inputmode\"\n [spellcheck]=\"spellcheck\"\n [rows]=\"rows\"\n [labelPlacement]=\"labelPlacement\"\n [value]=\"value\"\n [fill]=\"fill\"\n [errorText]=\"getErrors(container)\"\n [placeholder]=\"translatable ? (placeholder | translate) : placeholder\"\n [formControlName]=\"name\"\n [label]=\"translatable ? (label | translate) : label\"\n >\n </ion-textarea>\n }\n @else if(type === 'checkbox') {\n <ion-item>\n <ion-checkbox\n #checkboxElement\n [name]=\"path\"\n [mode]=\"mode\"\n [errorText]=\"getErrors(container)\"\n [hidden]=\"hidden\"\n [labelPlacement]=\"labelPlacement\"\n [justify]=\"justify\"\n [value]=\"value\"\n [checked]=\"checked\"\n [readonly]=\"readonly\"\n (ionChange)=\"checked = !checked\"\n [formControlName]=\"name\"\n >\n <span [innerHTML]=\"label | translate\"></span>\n </ion-checkbox>\n </ion-item>\n }\n @else if(type === 'radio') {\n <ion-radio-group [formControlName]=\"name\" [name]=\"path\" [value]=\"value\" #component>\n <label class=\"dcf-radio-group-label\" [for]=\"path\">{{label | translate}}</label>\n @for(option of options; track option) {\n <ion-item>\n <ion-radio\n [errorText]=\"getErrors(container)\"\n [mode]=\"mode\"\n [hidden]=\"hidden\"\n [labelPlacement]=\"labelPlacement\"\n [alignment]=\"alignment\"\n [justify]=\"justify\"\n [readonly]=\"readonly\"\n [value]=\"option.value\"\n >{{ translatable ? (option?.text | translate) : option?.text }}</ion-radio>\n </ion-item>\n }\n </ion-radio-group>\n }\n @else if(type === 'select') {\n <ion-select\n toggleIcon=\"chevron-down-outline\"\n expandedIcon=\"chevron-up-outline\"\n [name]=\"path\"\n [mode]=\"mode\"\n [hidden]=\"hidden\"\n [labelPlacement]=\"labelPlacement\"\n [label]=\"translatable ? (label | translate) : label\"\n [value]=\"value\"\n [fill]=\"fill\"\n [placeholder]=\"translatable ? (placeholder | translate) : placeholder\"\n [formControlName]=\"name\"\n [errorText]=\"getErrors(container)\"\n [interface]=\"interface\">\n @for(option of options; track option.value) {\n <ion-select-option [value]=\"option.value\">\n {{ translatable ? (option.text | translate) : options.text }}\n </ion-select-option>\n }\n </ion-select>\n }\n @else {\n <ion-input\n [name]=\"path\"\n [type]=\"type\"\n [mode]=\"mode\"\n [hidden]=\"hidden\"\n [inputmode]=\"inputmode\"\n [labelPlacement]=\"labelPlacement\"\n [required]=\"required !== undefined ? required : false\"\n [minlength]=\"minlength !== undefined ? minlength : null\"\n [maxlength]=\"maxlength !== undefined ? maxlength : null\"\n [readonly]=\"readonly !== undefined ? readonly : null\"\n [max]=\"max !== undefined ? max : null\"\n [min]=\"min !== undefined ? min : null\"\n [pattern]=\"pattern !== undefined ? pattern : null\"\n [step]=\"step !== undefined ? step : null\"\n [fill]=\"fill\"\n [placeholder]=\"translatable ? (placeholder | translate) : placeholder\"\n [formControlName]=\"name\"\n [errorText]=\"getErrors(container)\"\n [label]=\"translatable ? (label | translate) : label\">\n </ion-input>\n }\n </div>\n </ng-container>\n}\n\n", styles: [".dcf-input-item.create,.dcf-input-item.update{margin-bottom:1.8rem;margin-top:0!important}.dcf-input-item.create.checkbox+.checkbox,.dcf-input-item.update.checkbox+.checkbox{margin-top:-.25rem!important}.dcf-input-item.create ion-item,.dcf-input-item.update ion-item{--border-color: transparent}.dcf-input-item.create ion-item.dcf-text-wrap ion-label>*,.dcf-input-item.update ion-item.dcf-text-wrap ion-label>*{white-space:wrap!important;word-break:break-all!important}.dcf-input-item.read ion-label,.dcf-input-item.delete ion-label{font-weight:600;color:var(--ion-color-gray-7)}.dcf-input-item.read ion-text,.dcf-input-item.delete ion-text{display:block;margin-top:.5rem!important;color:var(--ion-color-gray-5)}.dcf-input-item ion-item{--padding-end: 0rem;--padding-start: 0px !important;--padding-top: 0px !important;--background: transparent;--background-hover-opacity: .1;--background-hover: var(--ion-color-primary);--background-activated-opacity: .15;--background-focused: var(--ion-color-primary);--background-focused-opacity: .15;--border-color: var(--ion-color-gray-2)}.dcf-input-item ion-item span,.dcf-input-item ion-item ion-text{font-weight:400!important;font-size:.925rem;min-height:.5rem!important}.dcf-input-item ion-item span:not(.dcf-display-block),.dcf-input-item ion-item ion-text:not(.dcf-display-block){display:inline-block}.dcf-input-item ion-item span.dcf-display-block,.dcf-input-item ion-item ion-text.dcf-display-block{display:block!important}ion-textarea textarea{scrollbar-width:thin!important;margin-bottom:.5rem!important}ion-select.dcf-select-label-placement-floating::part(label){line-height:1.2rem!important}.dcf-proccessing,.dcf-proccessing *{pointer-events:none;touch-action:none;cursor:text}ion-checkbox{--size: 1.5rem;--checkbox-background-checked: var(--ion-color-primary);--checkmark-width: 2px}ion-item{--inner-padding-start: .75rem}ion-checkbox::part(container){border-radius:50%;border:2px solid var(--ion-color-primary);padding:3px}ion-item .dcf-radio-group-label,ion-radio-group .dcf-radio-group-label{font-weight:600}ion-item .dcf-radio-group-label~ion-item,ion-radio-group .dcf-radio-group-label~ion-item{margin-top:.5rem;--inner-padding-start: .75rem}ion-item+.dcf-helper,ion-radio-group+.dcf-helper{padding-left:.75rem;position:relative}.dcf-error{position:absolute;color:var(--ion-color-danger)!important;font-size:.8rem!important;font-weight:600!important;line-height:1.1rem;box-sizing:border-box;z-index:9999;margin-top:0;animation-duration:.1s;animation-timing-function:ease-out;animation-fill-mode:both;animation-name:fadeTopSmallAnimation;display:flex;align-items:flex-start;gap:.25rem}.dcf-error .ti,.dcf-error ion-icon{position:relative;top:2px!important;min-width:20px;font-size:1rem!important;text-align:left}.dcf-helper{font-size:.875rem!important;font-weight:500;margin-top:.25rem;margin-bottom:-.75rem}.dcf-helper.dcf-has-action{cursor:pointer;color:var(--ion-color-gray-7)!important;text-decoration:underline}.dcf-error+.dcf-helper{padding-top:1rem}@keyframes fadeTopSmallAnimation{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeBottomSmallAnimation{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeTopMediumAnimation{0%{opacity:0;transform:translateY(-50px)}to{opacity:1;transform:translateY(0)}}\n"] }]
1879
- }], null, { operation: [{
1880
- type: Input,
1881
- args: [{ required: true }]
1882
- }], name: [{
1883
- type: Input,
1884
- args: [{ required: true }]
1885
- }], path: [{
1886
- type: Input,
1887
- args: [{ required: true }]
1888
- }], childOf: [{
1889
- type: Input
1890
- }], type: [{
1891
- type: Input,
1892
- args: [{ required: true }]
1893
- }], value: [{
1894
- type: Input
1895
- }], disabled: [{
1896
- type: Input
1897
- }], label: [{
1898
- type: Input,
1899
- args: [{ required: true }]
1900
- }], placeholder: [{
1901
- type: Input
1902
- }], format: [{
1903
- type: Input
1904
- }], hidden: [{
1905
- type: Input
1906
- }], max: [{
1907
- type: Input
1908
- }], maxlength: [{
1909
- type: Input
1910
- }], min: [{
1911
- type: Input
1912
- }], minlength: [{
1913
- type: Input
1914
- }], pattern: [{
1915
- type: Input
1916
- }], readonly: [{
1917
- type: Input
1918
- }], required: [{
1919
- type: Input
1920
- }], step: [{
1921
- type: Input
1922
- }], equals: [{
1923
- type: Input
1924
- }], different: [{
1925
- type: Input
1926
- }], lessThan: [{
1927
- type: Input
1928
- }], lessThanOrEqual: [{
1929
- type: Input
1930
- }], greaterThan: [{
1931
- type: Input
1932
- }], greaterThanOrEqual: [{
1933
- type: Input
1934
- }], cols: [{
1935
- type: Input
1936
- }], rows: [{
1937
- type: Input
1938
- }], alignment: [{
1939
- type: Input
1940
- }], checked: [{
1941
- type: Input
1942
- }], justify: [{
1943
- type: Input
1944
- }], cancelText: [{
1945
- type: Input
1946
- }], interface: [{
1947
- type: Input
1948
- }], options: [{
1949
- type: Input
1950
- }], mode: [{
1951
- type: Input
1952
- }], spellcheck: [{
1953
- type: Input
1954
- }], inputmode: [{
1955
- type: Input
1956
- }], autocomplete: [{
1957
- type: Input
1958
- }], fill: [{
1959
- type: Input
1960
- }], labelPlacement: [{
1961
- type: Input
1962
- }], updateOn: [{
1963
- type: Input
1964
- }], component: [{
1965
- type: ViewChild,
1966
- args: ['component', { read: ElementRef }]
1967
- }], formGroup: [{
1968
- type: Input
1969
- }], formControl: [{
1970
- type: Input
1971
- }], translatable: [{
1972
- type: Input
1973
- }], uid: [{
1974
- type: Input
1975
- }] }); })();
1976
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(CrudFieldComponent, { className: "CrudFieldComponent", filePath: "components/crud-field/crud-field.component.ts", lineNumber: 100 }); })();
1662
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CrudFieldComponent, decorators: [{
1663
+ type: Component,
1664
+ args: [{ standalone: true, imports: [
1665
+ ForAngularModule,
1666
+ IonInput,
1667
+ IonItem,
1668
+ IonCheckbox,
1669
+ IonRadioGroup,
1670
+ IonRadio,
1671
+ IonSelect,
1672
+ IonSelectOption,
1673
+ IonLabel,
1674
+ IonText,
1675
+ IonTextarea,
1676
+ IonIcon
1677
+ ], selector: 'ngx-decaf-crud-field', schemas: [CUSTOM_ELEMENTS_SCHEMA], template: "@if(operation === 'read' || operation === 'delete') {\n <ng-container #component>\n <div [class]=\"'dcf-input-item ' + operation\">\n <ion-item>\n <ion-label>\n {{ label | translate }}<br />\n @if(value) {\n <ion-text [innerHTML]=\"type === 'password' ? '********' : value\"></ion-text>\n } @else {\n <br />\n }\n </ion-label>\n </ion-item>\n </div>\n </ng-container>\n} @else {\n <ng-container #component [formGroup]=\"formGroup\">\n <div #container [class]=\"'dcf-input-item ' + (operation || 'create')\">\n @if(type === 'textarea') {\n <ion-textarea\n [mode]=\"mode\"\n [hidden]=\"hidden\"\n [required]=\"required !== undefined ? required : null\"\n [minlength]=\"minlength !== undefined ? minlength : null\"\n [maxlength]=\"maxlength !== undefined ? maxlength : null\"\n [readonly]=\"readonly !== undefined ? readonly : null\"\n [inputmode]=\"inputmode\"\n [spellcheck]=\"spellcheck\"\n [rows]=\"rows\"\n [labelPlacement]=\"labelPlacement\"\n [value]=\"value\"\n [fill]=\"fill\"\n [errorText]=\"getErrors(container)\"\n [placeholder]=\"translatable ? (placeholder | translate) : placeholder\"\n [formControlName]=\"name\"\n [label]=\"translatable ? (label | translate) : label\"\n >\n </ion-textarea>\n }\n @else if(type === 'checkbox') {\n <ion-item>\n <ion-checkbox\n #checkboxElement\n [name]=\"path\"\n [mode]=\"mode\"\n [errorText]=\"getErrors(container)\"\n [hidden]=\"hidden\"\n [labelPlacement]=\"labelPlacement\"\n [justify]=\"justify\"\n [value]=\"value\"\n [checked]=\"checked\"\n [readonly]=\"readonly\"\n (ionChange)=\"checked = !checked\"\n [formControlName]=\"name\"\n >\n <span [innerHTML]=\"label | translate\"></span>\n </ion-checkbox>\n </ion-item>\n }\n @else if(type === 'radio') {\n <ion-radio-group [formControlName]=\"name\" [name]=\"path\" [value]=\"value\" #component>\n <label class=\"dcf-radio-group-label\" [for]=\"path\">{{label | translate}}</label>\n @for(option of options; track option) {\n <ion-item>\n <ion-radio\n [errorText]=\"getErrors(container)\"\n [mode]=\"mode\"\n [hidden]=\"hidden\"\n [labelPlacement]=\"labelPlacement\"\n [alignment]=\"alignment\"\n [justify]=\"justify\"\n [readonly]=\"readonly\"\n [value]=\"option.value\"\n >{{ translatable ? (option?.text | translate) : option?.text }}</ion-radio>\n </ion-item>\n }\n </ion-radio-group>\n }\n @else if(type === 'select') {\n <ion-select\n toggleIcon=\"chevron-down-outline\"\n expandedIcon=\"chevron-up-outline\"\n [name]=\"path\"\n [mode]=\"mode\"\n [hidden]=\"hidden\"\n [labelPlacement]=\"labelPlacement\"\n [label]=\"translatable ? (label | translate) : label\"\n [value]=\"value\"\n [fill]=\"fill\"\n [placeholder]=\"translatable ? (placeholder | translate) : placeholder\"\n [formControlName]=\"name\"\n [errorText]=\"getErrors(container)\"\n [interface]=\"interface\">\n @for(option of options; track option.value) {\n <ion-select-option [value]=\"option.value\">\n {{ translatable ? (option.text | translate) : options.text }}\n </ion-select-option>\n }\n </ion-select>\n }\n @else {\n <ion-input\n [name]=\"path\"\n [type]=\"type\"\n [mode]=\"mode\"\n [hidden]=\"hidden\"\n [inputmode]=\"inputmode\"\n [labelPlacement]=\"labelPlacement\"\n [required]=\"required !== undefined ? required : false\"\n [minlength]=\"minlength !== undefined ? minlength : null\"\n [maxlength]=\"maxlength !== undefined ? maxlength : null\"\n [readonly]=\"readonly !== undefined ? readonly : null\"\n [max]=\"max !== undefined ? max : null\"\n [min]=\"min !== undefined ? min : null\"\n [pattern]=\"pattern !== undefined ? pattern : null\"\n [step]=\"step !== undefined ? step : null\"\n [fill]=\"fill\"\n [placeholder]=\"translatable ? (placeholder | translate) : placeholder\"\n [formControlName]=\"name\"\n [errorText]=\"getErrors(container)\"\n [label]=\"translatable ? (label | translate) : label\">\n </ion-input>\n }\n </div>\n </ng-container>\n}\n\n", styles: [".dcf-input-item.create,.dcf-input-item.update{margin-bottom:1.8rem;margin-top:0!important}.dcf-input-item.create.checkbox+.checkbox,.dcf-input-item.update.checkbox+.checkbox{margin-top:-.25rem!important}.dcf-input-item.create ion-item,.dcf-input-item.update ion-item{--border-color: transparent}.dcf-input-item.create ion-item.dcf-text-wrap ion-label>*,.dcf-input-item.update ion-item.dcf-text-wrap ion-label>*{white-space:wrap!important;word-break:break-all!important}.dcf-input-item.read ion-label,.dcf-input-item.delete ion-label{font-weight:600;color:var(--ion-color-gray-7)}.dcf-input-item.read ion-text,.dcf-input-item.delete ion-text{display:block;margin-top:.5rem!important;color:var(--ion-color-gray-5)}.dcf-input-item ion-item{--padding-end: 0rem;--padding-start: 0px !important;--padding-top: 0px !important;--background: transparent;--background-hover-opacity: .1;--background-hover: var(--ion-color-primary);--background-activated-opacity: .15;--background-focused: var(--ion-color-primary);--background-focused-opacity: .15;--border-color: var(--ion-color-gray-2)}.dcf-input-item ion-item span,.dcf-input-item ion-item ion-text{font-weight:400!important;font-size:.925rem;min-height:.5rem!important}.dcf-input-item ion-item span:not(.dcf-display-block),.dcf-input-item ion-item ion-text:not(.dcf-display-block){display:inline-block}.dcf-input-item ion-item span.dcf-display-block,.dcf-input-item ion-item ion-text.dcf-display-block{display:block!important}ion-textarea textarea{scrollbar-width:thin!important;margin-bottom:.5rem!important}ion-select.dcf-select-label-placement-floating::part(label){line-height:1.2rem!important}.dcf-proccessing,.dcf-proccessing *{pointer-events:none;touch-action:none;cursor:text}ion-checkbox{--size: 1.5rem;--checkbox-background-checked: var(--ion-color-primary);--checkmark-width: 2px}ion-item{--inner-padding-start: .75rem}ion-checkbox::part(container){border-radius:50%;border:2px solid var(--ion-color-primary);padding:3px}ion-item .dcf-radio-group-label,ion-radio-group .dcf-radio-group-label{font-weight:600}ion-item .dcf-radio-group-label~ion-item,ion-radio-group .dcf-radio-group-label~ion-item{margin-top:.5rem;--inner-padding-start: .75rem}ion-item+.dcf-helper,ion-radio-group+.dcf-helper{padding-left:.75rem;position:relative}.dcf-error{position:absolute;color:var(--ion-color-danger)!important;font-size:.8rem!important;font-weight:600!important;line-height:1.1rem;box-sizing:border-box;z-index:9999;margin-top:0;animation-duration:.1s;animation-timing-function:ease-out;animation-fill-mode:both;animation-name:fadeTopSmallAnimation;display:flex;align-items:flex-start;gap:.25rem}.dcf-error .ti,.dcf-error ion-icon{position:relative;top:2px!important;min-width:20px;font-size:1rem!important;text-align:left}.dcf-helper{font-size:.875rem!important;font-weight:500;margin-top:.25rem;margin-bottom:-.75rem}.dcf-helper.dcf-has-action{cursor:pointer;color:var(--ion-color-gray-7)!important;text-decoration:underline}.dcf-error+.dcf-helper{padding-top:1rem}@keyframes fadeTopSmallAnimation{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeBottomSmallAnimation{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeTopMediumAnimation{0%{opacity:0;transform:translateY(-50px)}to{opacity:1;transform:translateY(0)}}\n"] }]
1678
+ }], propDecorators: { operation: [{
1679
+ type: Input,
1680
+ args: [{ required: true }]
1681
+ }], name: [{
1682
+ type: Input,
1683
+ args: [{ required: true }]
1684
+ }], path: [{
1685
+ type: Input,
1686
+ args: [{ required: true }]
1687
+ }], childOf: [{
1688
+ type: Input
1689
+ }], type: [{
1690
+ type: Input,
1691
+ args: [{ required: true }]
1692
+ }], value: [{
1693
+ type: Input
1694
+ }], disabled: [{
1695
+ type: Input
1696
+ }], label: [{
1697
+ type: Input,
1698
+ args: [{ required: true }]
1699
+ }], placeholder: [{
1700
+ type: Input
1701
+ }], format: [{
1702
+ type: Input
1703
+ }], hidden: [{
1704
+ type: Input
1705
+ }], max: [{
1706
+ type: Input
1707
+ }], maxlength: [{
1708
+ type: Input
1709
+ }], min: [{
1710
+ type: Input
1711
+ }], minlength: [{
1712
+ type: Input
1713
+ }], pattern: [{
1714
+ type: Input
1715
+ }], readonly: [{
1716
+ type: Input
1717
+ }], required: [{
1718
+ type: Input
1719
+ }], step: [{
1720
+ type: Input
1721
+ }], equals: [{
1722
+ type: Input
1723
+ }], different: [{
1724
+ type: Input
1725
+ }], lessThan: [{
1726
+ type: Input
1727
+ }], lessThanOrEqual: [{
1728
+ type: Input
1729
+ }], greaterThan: [{
1730
+ type: Input
1731
+ }], greaterThanOrEqual: [{
1732
+ type: Input
1733
+ }], cols: [{
1734
+ type: Input
1735
+ }], rows: [{
1736
+ type: Input
1737
+ }], alignment: [{
1738
+ type: Input
1739
+ }], checked: [{
1740
+ type: Input
1741
+ }], justify: [{
1742
+ type: Input
1743
+ }], cancelText: [{
1744
+ type: Input
1745
+ }], interface: [{
1746
+ type: Input
1747
+ }], options: [{
1748
+ type: Input
1749
+ }], mode: [{
1750
+ type: Input
1751
+ }], spellcheck: [{
1752
+ type: Input
1753
+ }], inputmode: [{
1754
+ type: Input
1755
+ }], autocomplete: [{
1756
+ type: Input
1757
+ }], fill: [{
1758
+ type: Input
1759
+ }], labelPlacement: [{
1760
+ type: Input
1761
+ }], updateOn: [{
1762
+ type: Input
1763
+ }], component: [{
1764
+ type: ViewChild,
1765
+ args: ['component', { read: ElementRef }]
1766
+ }], formGroup: [{
1767
+ type: Input
1768
+ }], formControl: [{
1769
+ type: Input
1770
+ }], translatable: [{
1771
+ type: Input
1772
+ }], uid: [{
1773
+ type: Input
1774
+ }] } });
1977
1775
 
1978
1776
  /**
1979
1777
  * @description Abstract base class for dynamic Angular modules
@@ -2595,7 +2393,6 @@ function removeFocusTrap() {
2595
2393
  doc.activeElement?.blur();
2596
2394
  }
2597
2395
 
2598
- const _c0$8 = ["component"];
2599
2396
  /**
2600
2397
  * @description Base component class that provides common functionality for all Decaf components.
2601
2398
  * @summary The NgxBaseComponent serves as the foundation for all Decaf UI components, providing
@@ -3079,58 +2876,52 @@ class NgxBaseComponent {
3079
2876
  trackItemFn(index, item) {
3080
2877
  return `${index}-${item}`;
3081
2878
  }
3082
- static { this.ɵfac = function NgxBaseComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || NgxBaseComponent)(i0.ɵɵdirectiveInject('instanceToken')); }; }
3083
- static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: NgxBaseComponent, selectors: [["ng-component"]], viewQuery: function NgxBaseComponent_Query(rf, ctx) { if (rf & 1) {
3084
- i0.ɵɵviewQuery(_c0$8, 7, ElementRef);
3085
- } if (rf & 2) {
3086
- let _t;
3087
- i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.component = _t.first);
3088
- } }, inputs: { rendererId: "rendererId", model: "model", props: "props", item: "item", pk: "pk", route: "route", operations: "operations", uid: "uid", mapper: "mapper", locale: "locale", translatable: "translatable", className: "className", mode: "mode", renderChild: "renderChild" }, outputs: { listenEvent: "listenEvent" }, standalone: true, features: [i0.ɵɵNgOnChangesFeature, i0.ɵɵStandaloneFeature], decls: 0, vars: 0, template: function NgxBaseComponent_Template(rf, ctx) { }, encapsulation: 2 }); }
2879
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NgxBaseComponent, deps: [{ token: 'instanceToken' }], target: i0.ɵɵFactoryTarget.Component }); }
2880
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: NgxBaseComponent, isStandalone: true, selector: "ng-component", inputs: { rendererId: "rendererId", model: "model", props: "props", item: "item", pk: "pk", route: "route", operations: "operations", uid: "uid", mapper: "mapper", locale: "locale", translatable: "translatable", className: "className", mode: "mode", renderChild: "renderChild" }, outputs: { listenEvent: "listenEvent" }, viewQueries: [{ propertyName: "component", first: true, predicate: ["component"], descendants: true, read: ElementRef, static: true }], usesOnChanges: true, ngImport: i0, template: '', isInline: true }); }
3089
2881
  }
3090
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(NgxBaseComponent, [{
3091
- type: Component,
3092
- args: [{
3093
- standalone: true,
3094
- template: '',
3095
- }]
3096
- }], () => [{ type: undefined, decorators: [{
3097
- type: Inject,
3098
- args: ['instanceToken']
3099
- }] }], { component: [{
3100
- type: ViewChild,
3101
- args: ['component', { read: ElementRef, static: true }]
3102
- }], rendererId: [{
3103
- type: Input
3104
- }], model: [{
3105
- type: Input
3106
- }], props: [{
3107
- type: Input
3108
- }], item: [{
3109
- type: Input
3110
- }], pk: [{
3111
- type: Input
3112
- }], route: [{
3113
- type: Input
3114
- }], operations: [{
3115
- type: Input
3116
- }], uid: [{
3117
- type: Input
3118
- }], mapper: [{
3119
- type: Input
3120
- }], locale: [{
3121
- type: Input
3122
- }], translatable: [{
3123
- type: Input
3124
- }], className: [{
3125
- type: Input
3126
- }], mode: [{
3127
- type: Input
3128
- }], renderChild: [{
3129
- type: Input
3130
- }], listenEvent: [{
3131
- type: Output
3132
- }] }); })();
3133
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(NgxBaseComponent, { className: "NgxBaseComponent", filePath: "engine/NgxBaseComponent.ts", lineNumber: 97 }); })();
2882
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NgxBaseComponent, decorators: [{
2883
+ type: Component,
2884
+ args: [{
2885
+ standalone: true,
2886
+ template: '',
2887
+ }]
2888
+ }], ctorParameters: () => [{ type: undefined, decorators: [{
2889
+ type: Inject,
2890
+ args: ['instanceToken']
2891
+ }] }], propDecorators: { component: [{
2892
+ type: ViewChild,
2893
+ args: ['component', { read: ElementRef, static: true }]
2894
+ }], rendererId: [{
2895
+ type: Input
2896
+ }], model: [{
2897
+ type: Input
2898
+ }], props: [{
2899
+ type: Input
2900
+ }], item: [{
2901
+ type: Input
2902
+ }], pk: [{
2903
+ type: Input
2904
+ }], route: [{
2905
+ type: Input
2906
+ }], operations: [{
2907
+ type: Input
2908
+ }], uid: [{
2909
+ type: Input
2910
+ }], mapper: [{
2911
+ type: Input
2912
+ }], locale: [{
2913
+ type: Input
2914
+ }], translatable: [{
2915
+ type: Input
2916
+ }], className: [{
2917
+ type: Input
2918
+ }], mode: [{
2919
+ type: Input
2920
+ }], renderChild: [{
2921
+ type: Input
2922
+ }], listenEvent: [{
2923
+ type: Output
2924
+ }] } });
3134
2925
 
3135
2926
  /**
3136
2927
  * @module engine
@@ -3156,128 +2947,6 @@ const DefaultFormReactiveOptions = {
3156
2947
  },
3157
2948
  };
3158
2949
 
3159
- const _c0$7 = ["reactiveForm"];
3160
- const _c1$6 = ["*"];
3161
- const _c2$2 = () => ["create", "update"];
3162
- const _c3$1 = () => ["delete", "read", "update"];
3163
- function CrudFormComponent_Conditional_0_Conditional_6_Template(rf, ctx) { if (rf & 1) {
3164
- i0.ɵɵelement(0, "ion-icon", 6);
3165
- } if (rf & 2) {
3166
- const ctx_r1 = i0.ɵɵnextContext(2);
3167
- i0.ɵɵproperty("slot", ctx_r1.options.buttons.submit.iconSlot)("name", ctx_r1.options.buttons.submit.icon);
3168
- } }
3169
- function CrudFormComponent_Conditional_0_Conditional_9_Conditional_1_Template(rf, ctx) { if (rf & 1) {
3170
- i0.ɵɵelement(0, "ion-icon", 6);
3171
- } if (rf & 2) {
3172
- const ctx_r1 = i0.ɵɵnextContext(3);
3173
- i0.ɵɵproperty("slot", ctx_r1.options.buttons.clear == null ? null : ctx_r1.options.buttons.clear.iconSlot)("name", ctx_r1.options.buttons.clear == null ? null : ctx_r1.options.buttons.clear.icon);
3174
- } }
3175
- function CrudFormComponent_Conditional_0_Conditional_9_Template(rf, ctx) { if (rf & 1) {
3176
- const _r3 = i0.ɵɵgetCurrentView();
3177
- i0.ɵɵelementStart(0, "ion-button", 8);
3178
- i0.ɵɵlistener("click", function CrudFormComponent_Conditional_0_Conditional_9_Template_ion_button_click_0_listener() { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.handleReset()); });
3179
- i0.ɵɵtemplate(1, CrudFormComponent_Conditional_0_Conditional_9_Conditional_1_Template, 1, 2, "ion-icon", 6);
3180
- i0.ɵɵtext(2);
3181
- i0.ɵɵelementEnd();
3182
- } if (rf & 2) {
3183
- const ctx_r1 = i0.ɵɵnextContext(2);
3184
- i0.ɵɵadvance();
3185
- i0.ɵɵconditional((ctx_r1.options.buttons.clear == null ? null : ctx_r1.options.buttons.clear.icon) ? 1 : -1);
3186
- i0.ɵɵadvance();
3187
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpureFunction0(2, _c2$2).includes(ctx_r1.operation) ? "Back" : ctx_r1.options.buttons.clear == null ? null : ctx_r1.options.buttons.clear.text, " ");
3188
- } }
3189
- function CrudFormComponent_Conditional_0_Template(rf, ctx) { if (rf & 1) {
3190
- const _r1 = i0.ɵɵgetCurrentView();
3191
- i0.ɵɵelementStart(0, "form", 3, 0);
3192
- i0.ɵɵlistener("submit", function CrudFormComponent_Conditional_0_Template_form_submit_0_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.submit($event)); });
3193
- i0.ɵɵprojection(2, 0, ["#formContent", ""]);
3194
- i0.ɵɵelementStart(3, "div", 4)(4, "div")(5, "ion-button", 5);
3195
- i0.ɵɵtemplate(6, CrudFormComponent_Conditional_0_Conditional_6_Template, 1, 2, "ion-icon", 6);
3196
- i0.ɵɵtext(7);
3197
- i0.ɵɵelementEnd()();
3198
- i0.ɵɵelementStart(8, "div");
3199
- i0.ɵɵtemplate(9, CrudFormComponent_Conditional_0_Conditional_9_Template, 3, 3, "ion-button", 7);
3200
- i0.ɵɵelementEnd()()();
3201
- } if (rf & 2) {
3202
- const ctx_r1 = i0.ɵɵnextContext();
3203
- i0.ɵɵproperty("id", ctx_r1.rendererId)("formGroup", ctx_r1.formGroup)("target", ctx_r1.target);
3204
- i0.ɵɵadvance(6);
3205
- i0.ɵɵconditional(ctx_r1.options.buttons.submit.icon ? 6 : -1);
3206
- i0.ɵɵadvance();
3207
- i0.ɵɵtextInterpolate1(" ", ctx_r1.action ? ctx_r1.action : ctx_r1.options.buttons.submit.text, " ");
3208
- i0.ɵɵadvance(2);
3209
- i0.ɵɵconditional(ctx_r1.options.buttons.clear ? 9 : -1);
3210
- } }
3211
- function CrudFormComponent_Conditional_1_Conditional_1_Conditional_2_Template(rf, ctx) { if (rf & 1) {
3212
- i0.ɵɵelement(0, "ion-icon", 6);
3213
- } if (rf & 2) {
3214
- const ctx_r1 = i0.ɵɵnextContext(3);
3215
- i0.ɵɵproperty("slot", ctx_r1.options.buttons.submit.iconSlot)("name", ctx_r1.options.buttons.submit.icon);
3216
- } }
3217
- function CrudFormComponent_Conditional_1_Conditional_1_Template(rf, ctx) { if (rf & 1) {
3218
- const _r4 = i0.ɵɵgetCurrentView();
3219
- i0.ɵɵelementStart(0, "div")(1, "ion-button", 10);
3220
- i0.ɵɵlistener("click", function CrudFormComponent_Conditional_1_Conditional_1_Template_ion_button_click_1_listener() { i0.ɵɵrestoreView(_r4); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.handleDelete()); });
3221
- i0.ɵɵtemplate(2, CrudFormComponent_Conditional_1_Conditional_1_Conditional_2_Template, 1, 2, "ion-icon", 6);
3222
- i0.ɵɵtext(3, " Delete ");
3223
- i0.ɵɵelementEnd()();
3224
- } if (rf & 2) {
3225
- const ctx_r1 = i0.ɵɵnextContext(2);
3226
- i0.ɵɵadvance(2);
3227
- i0.ɵɵconditional(ctx_r1.options.buttons.submit.icon ? 2 : -1);
3228
- } }
3229
- function CrudFormComponent_Conditional_1_Conditional_2_Conditional_2_Template(rf, ctx) { if (rf & 1) {
3230
- i0.ɵɵelement(0, "ion-icon", 6);
3231
- } if (rf & 2) {
3232
- const ctx_r1 = i0.ɵɵnextContext(3);
3233
- i0.ɵɵproperty("slot", ctx_r1.options.buttons.submit.iconSlot)("name", ctx_r1.options.buttons.submit.icon);
3234
- } }
3235
- function CrudFormComponent_Conditional_1_Conditional_2_Template(rf, ctx) { if (rf & 1) {
3236
- i0.ɵɵelementStart(0, "div")(1, "ion-button", 5);
3237
- i0.ɵɵtemplate(2, CrudFormComponent_Conditional_1_Conditional_2_Conditional_2_Template, 1, 2, "ion-icon", 6);
3238
- i0.ɵɵtext(3);
3239
- i0.ɵɵelementEnd()();
3240
- } if (rf & 2) {
3241
- const ctx_r1 = i0.ɵɵnextContext(2);
3242
- i0.ɵɵadvance(2);
3243
- i0.ɵɵconditional(ctx_r1.options.buttons.submit.icon ? 2 : -1);
3244
- i0.ɵɵadvance();
3245
- i0.ɵɵtextInterpolate1(" ", ctx_r1.options.buttons.submit.text, " ");
3246
- } }
3247
- function CrudFormComponent_Conditional_1_Conditional_3_Conditional_2_Template(rf, ctx) { if (rf & 1) {
3248
- i0.ɵɵelement(0, "ion-icon", 6);
3249
- } if (rf & 2) {
3250
- const ctx_r1 = i0.ɵɵnextContext(3);
3251
- i0.ɵɵproperty("slot", ctx_r1.options.buttons.clear == null ? null : ctx_r1.options.buttons.clear.iconSlot)("name", ctx_r1.options.buttons.clear == null ? null : ctx_r1.options.buttons.clear.icon);
3252
- } }
3253
- function CrudFormComponent_Conditional_1_Conditional_3_Template(rf, ctx) { if (rf & 1) {
3254
- const _r5 = i0.ɵɵgetCurrentView();
3255
- i0.ɵɵelementStart(0, "div")(1, "ion-button", 8);
3256
- i0.ɵɵlistener("click", function CrudFormComponent_Conditional_1_Conditional_3_Template_ion_button_click_1_listener() { i0.ɵɵrestoreView(_r5); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.handleReset()); });
3257
- i0.ɵɵtemplate(2, CrudFormComponent_Conditional_1_Conditional_3_Conditional_2_Template, 1, 2, "ion-icon", 6);
3258
- i0.ɵɵtext(3);
3259
- i0.ɵɵelementEnd()();
3260
- } if (rf & 2) {
3261
- const ctx_r1 = i0.ɵɵnextContext(2);
3262
- i0.ɵɵadvance(2);
3263
- i0.ɵɵconditional((ctx_r1.options.buttons.clear == null ? null : ctx_r1.options.buttons.clear.icon) ? 2 : -1);
3264
- i0.ɵɵadvance();
3265
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpureFunction0(2, _c3$1).includes(ctx_r1.operation) ? "Back" : ctx_r1.options.buttons.clear == null ? null : ctx_r1.options.buttons.clear.text, " ");
3266
- } }
3267
- function CrudFormComponent_Conditional_1_Template(rf, ctx) { if (rf & 1) {
3268
- i0.ɵɵelementStart(0, "div", 9);
3269
- i0.ɵɵtemplate(1, CrudFormComponent_Conditional_1_Conditional_1_Template, 4, 1, "div")(2, CrudFormComponent_Conditional_1_Conditional_2_Template, 4, 2, "div")(3, CrudFormComponent_Conditional_1_Conditional_3_Template, 4, 3, "div");
3270
- i0.ɵɵelementEnd();
3271
- } if (rf & 2) {
3272
- const ctx_r1 = i0.ɵɵnextContext();
3273
- i0.ɵɵclassMap("dcf-grid dcf-grid-collapse dcf-flex dcf-flex-left " + ctx_r1.operation);
3274
- i0.ɵɵadvance();
3275
- i0.ɵɵconditional(ctx_r1.operation === "delete" && ctx_r1.uid ? 1 : -1);
3276
- i0.ɵɵadvance();
3277
- i0.ɵɵconditional(ctx_r1.operation === ctx_r1.OperationKeys.CREATE || ctx_r1.operation === ctx_r1.OperationKeys.UPDATE ? 2 : -1);
3278
- i0.ɵɵadvance();
3279
- i0.ɵɵconditional(ctx_r1.options.buttons.clear ? 3 : -1);
3280
- } }
3281
2950
  /**
3282
2951
  * @component CrudFormComponent
3283
2952
  * @example <ngx-decaf-crud-form
@@ -3363,57 +3032,46 @@ let CrudFormComponent = class CrudFormComponent {
3363
3032
  name: EventConstants.SUBMIT_EVENT,
3364
3033
  });
3365
3034
  }
3366
- static { this.ɵfac = function CrudFormComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || CrudFormComponent)(); }; }
3367
- static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: CrudFormComponent, selectors: [["ngx-decaf-crud-form"]], viewQuery: function CrudFormComponent_Query(rf, ctx) { if (rf & 1) {
3368
- i0.ɵɵviewQuery(_c0$7, 5, ElementRef);
3369
- } if (rf & 2) {
3370
- let _t;
3371
- i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.component = _t.first);
3372
- } }, inputs: { model: "model", updateOn: "updateOn", target: "target", method: "method", options: "options", action: "action", operation: "operation", handlers: "handlers", formGroup: "formGroup", childOf: "childOf", rendererId: "rendererId", uid: "uid" }, outputs: { submitEvent: "submitEvent" }, standalone: true, features: [i0.ɵɵStandaloneFeature], ngContentSelectors: _c1$6, decls: 2, vars: 1, consts: [["reactiveForm", ""], ["novalidate", "", 3, "id", "formGroup", "target"], ["id", "dcf-buttons-container", 3, "class"], ["novalidate", "", 3, "submit", "id", "formGroup", "target"], ["id", "dcf-buttons-container", 1, "dcf-grid", "dcf-grid-collapse", "dcf-flex", "dcf-flex-left"], ["type", "submit"], ["aria-hidden", "true", 3, "slot", "name"], ["fill", "clear"], ["fill", "clear", 3, "click"], ["id", "dcf-buttons-container"], ["color", "danger", "type", "button", 3, "click"]], template: function CrudFormComponent_Template(rf, ctx) { if (rf & 1) {
3373
- i0.ɵɵprojectionDef();
3374
- i0.ɵɵtemplate(0, CrudFormComponent_Conditional_0_Template, 10, 6, "form", 1)(1, CrudFormComponent_Conditional_1_Template, 4, 5, "div", 2);
3375
- } if (rf & 2) {
3376
- i0.ɵɵconditional(ctx.operation !== "read" && ctx.operation !== "delete" ? 0 : 1);
3377
- } }, dependencies: [ForAngularModule, i1.IonButton, i2$1.ɵNgNoValidate, i2$1.NgControlStatusGroup, i2$1.FormGroupDirective, IonIcon], styles: ["#dcf-buttons-container[_ngcontent-%COMP%]{margin-top:1.8rem;margin-bottom:0}@media (min-width: 991px){#dcf-buttons-container.dcf-flex[_ngcontent-%COMP%]{flex-direction:row-reverse}}@media (max-width: 990px){#dcf-buttons-container.dcf-flex[_ngcontent-%COMP%] div[_ngcontent-%COMP%]{width:100%}#dcf-buttons-container.dcf-flex[_ngcontent-%COMP%] ion-button[_ngcontent-%COMP%]{width:100%;margin-bottom:1rem}}"] }); }
3035
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CrudFormComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
3036
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: CrudFormComponent, isStandalone: true, selector: "ngx-decaf-crud-form", inputs: { model: "model", updateOn: "updateOn", target: "target", method: "method", options: "options", action: "action", operation: "operation", handlers: "handlers", formGroup: "formGroup", childOf: "childOf", rendererId: "rendererId", uid: "uid" }, outputs: { submitEvent: "submitEvent" }, viewQueries: [{ propertyName: "component", first: true, predicate: ["reactiveForm"], descendants: true, read: ElementRef }], ngImport: i0, template: "@if(operation !== 'read' && operation !== 'delete') {\n <form #reactiveForm [id]=\"rendererId\" [formGroup]=\"formGroup\" (submit)=\"submit($event)\" novalidate [target]=\"target\">\n <ng-content #formContent></ng-content>\n <div id=\"dcf-buttons-container\" class=\"dcf-grid dcf-grid-collapse dcf-flex dcf-flex-left\">\n <div>\n <ion-button\n type=\"submit\">\n @if(options.buttons.submit.icon) {\n <ion-icon aria-hidden=\"true\" [slot]=\"options.buttons.submit.iconSlot\" [name]=\"options.buttons.submit.icon\"></ion-icon>\n }\n {{ action ? action : options.buttons.submit.text}}\n </ion-button>\n </div>\n <div>\n @if(options.buttons.clear) {\n <ion-button fill=\"clear\" (click)=\"handleReset()\">\n @if(options.buttons.clear?.icon) {\n <ion-icon aria-hidden=\"true\" [slot]=\"options.buttons.clear?.iconSlot\" [name]=\"options.buttons.clear?.icon\"></ion-icon>\n }\n {{ ['create', 'update'].includes(operation) ? 'Back' : options.buttons.clear?.text}}\n </ion-button>\n }\n </div>\n </div>\n </form>\n} @else {\n <div [class]=\"'dcf-grid dcf-grid-collapse dcf-flex dcf-flex-left ' + operation\" id=\"dcf-buttons-container\">\n\n @if(operation === 'delete' && uid) {\n <div>\n <ion-button\n (click)=\"handleDelete()\"\n color=\"danger\"\n type=\"button\">\n @if(options.buttons.submit.icon) {\n <ion-icon aria-hidden=\"true\" [slot]=\"options.buttons.submit.iconSlot\" [name]=\"options.buttons.submit.icon\"></ion-icon>\n }\n Delete\n </ion-button>\n </div>\n\n }\n @if(operation === OperationKeys.CREATE || operation === OperationKeys.UPDATE) {\n <div>\n <ion-button\n type=\"submit\">\n @if(options.buttons.submit.icon) {\n <ion-icon aria-hidden=\"true\" [slot]=\"options.buttons.submit.iconSlot\" [name]=\"options.buttons.submit.icon\"></ion-icon>\n }\n {{options.buttons.submit.text}}\n </ion-button>\n </div>\n }\n\n @if(options.buttons.clear) {\n <div>\n <ion-button fill=\"clear\" (click)=\"handleReset()\">\n @if(options.buttons.clear?.icon) {\n <ion-icon aria-hidden=\"true\" [slot]=\"options.buttons.clear?.iconSlot\" [name]=\"options.buttons.clear?.icon\"></ion-icon>\n }\n {{ ['delete', 'read', 'update'].includes(operation) ? 'Back' : options.buttons.clear?.text}}\n </ion-button>\n </div>\n\n }\n </div>\n}\n\n", styles: ["#dcf-buttons-container{margin-top:1.8rem;margin-bottom:0}@media (min-width: 991px){#dcf-buttons-container.dcf-flex{flex-direction:row-reverse}}@media (max-width: 990px){#dcf-buttons-container.dcf-flex div{width:100%}#dcf-buttons-container.dcf-flex ion-button{width:100%;margin-bottom:1rem}}\n"], dependencies: [{ kind: "ngmodule", type: ForAngularModule }, { kind: "component", type: i1.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "directive", type: i2$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }] }); }
3378
3037
  };
3379
3038
  CrudFormComponent = __decorate([
3380
3039
  Dynamic()
3381
3040
  ], CrudFormComponent);
3382
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CrudFormComponent, [{
3383
- type: Component,
3384
- args: [{ standalone: true, selector: 'ngx-decaf-crud-form', imports: [ForAngularModule, IonIcon], template: "@if(operation !== 'read' && operation !== 'delete') {\n <form #reactiveForm [id]=\"rendererId\" [formGroup]=\"formGroup\" (submit)=\"submit($event)\" novalidate [target]=\"target\">\n <ng-content #formContent></ng-content>\n <div id=\"dcf-buttons-container\" class=\"dcf-grid dcf-grid-collapse dcf-flex dcf-flex-left\">\n <div>\n <ion-button\n type=\"submit\">\n @if(options.buttons.submit.icon) {\n <ion-icon aria-hidden=\"true\" [slot]=\"options.buttons.submit.iconSlot\" [name]=\"options.buttons.submit.icon\"></ion-icon>\n }\n {{ action ? action : options.buttons.submit.text}}\n </ion-button>\n </div>\n <div>\n @if(options.buttons.clear) {\n <ion-button fill=\"clear\" (click)=\"handleReset()\">\n @if(options.buttons.clear?.icon) {\n <ion-icon aria-hidden=\"true\" [slot]=\"options.buttons.clear?.iconSlot\" [name]=\"options.buttons.clear?.icon\"></ion-icon>\n }\n {{ ['create', 'update'].includes(operation) ? 'Back' : options.buttons.clear?.text}}\n </ion-button>\n }\n </div>\n </div>\n </form>\n} @else {\n <div [class]=\"'dcf-grid dcf-grid-collapse dcf-flex dcf-flex-left ' + operation\" id=\"dcf-buttons-container\">\n\n @if(operation === 'delete' && uid) {\n <div>\n <ion-button\n (click)=\"handleDelete()\"\n color=\"danger\"\n type=\"button\">\n @if(options.buttons.submit.icon) {\n <ion-icon aria-hidden=\"true\" [slot]=\"options.buttons.submit.iconSlot\" [name]=\"options.buttons.submit.icon\"></ion-icon>\n }\n Delete\n </ion-button>\n </div>\n\n }\n @if(operation === OperationKeys.CREATE || operation === OperationKeys.UPDATE) {\n <div>\n <ion-button\n type=\"submit\">\n @if(options.buttons.submit.icon) {\n <ion-icon aria-hidden=\"true\" [slot]=\"options.buttons.submit.iconSlot\" [name]=\"options.buttons.submit.icon\"></ion-icon>\n }\n {{options.buttons.submit.text}}\n </ion-button>\n </div>\n }\n\n @if(options.buttons.clear) {\n <div>\n <ion-button fill=\"clear\" (click)=\"handleReset()\">\n @if(options.buttons.clear?.icon) {\n <ion-icon aria-hidden=\"true\" [slot]=\"options.buttons.clear?.iconSlot\" [name]=\"options.buttons.clear?.icon\"></ion-icon>\n }\n {{ ['delete', 'read', 'update'].includes(operation) ? 'Back' : options.buttons.clear?.text}}\n </ion-button>\n </div>\n\n }\n </div>\n}\n\n", styles: ["#dcf-buttons-container{margin-top:1.8rem;margin-bottom:0}@media (min-width: 991px){#dcf-buttons-container.dcf-flex{flex-direction:row-reverse}}@media (max-width: 990px){#dcf-buttons-container.dcf-flex div{width:100%}#dcf-buttons-container.dcf-flex ion-button{width:100%;margin-bottom:1rem}}\n"] }]
3385
- }], null, { model: [{
3386
- type: Input
3387
- }], updateOn: [{
3388
- type: Input
3389
- }], component: [{
3390
- type: ViewChild,
3391
- args: ['reactiveForm', { static: false, read: ElementRef }]
3392
- }], target: [{
3393
- type: Input
3394
- }], method: [{
3395
- type: Input
3396
- }], options: [{
3397
- type: Input
3398
- }], action: [{
3399
- type: Input
3400
- }], operation: [{
3401
- type: Input,
3402
- args: [{ required: true }]
3403
- }], handlers: [{
3404
- type: Input
3405
- }], formGroup: [{
3406
- type: Input
3407
- }], childOf: [{
3408
- type: Input
3409
- }], rendererId: [{
3410
- type: Input
3411
- }], uid: [{
3412
- type: Input
3413
- }], submitEvent: [{
3414
- type: Output
3415
- }] }); })();
3416
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(CrudFormComponent, { className: "CrudFormComponent", filePath: "components/crud-form/crud-form.component.ts", lineNumber: 54 }); })();
3041
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CrudFormComponent, decorators: [{
3042
+ type: Component,
3043
+ args: [{ standalone: true, selector: 'ngx-decaf-crud-form', imports: [ForAngularModule, IonIcon], template: "@if(operation !== 'read' && operation !== 'delete') {\n <form #reactiveForm [id]=\"rendererId\" [formGroup]=\"formGroup\" (submit)=\"submit($event)\" novalidate [target]=\"target\">\n <ng-content #formContent></ng-content>\n <div id=\"dcf-buttons-container\" class=\"dcf-grid dcf-grid-collapse dcf-flex dcf-flex-left\">\n <div>\n <ion-button\n type=\"submit\">\n @if(options.buttons.submit.icon) {\n <ion-icon aria-hidden=\"true\" [slot]=\"options.buttons.submit.iconSlot\" [name]=\"options.buttons.submit.icon\"></ion-icon>\n }\n {{ action ? action : options.buttons.submit.text}}\n </ion-button>\n </div>\n <div>\n @if(options.buttons.clear) {\n <ion-button fill=\"clear\" (click)=\"handleReset()\">\n @if(options.buttons.clear?.icon) {\n <ion-icon aria-hidden=\"true\" [slot]=\"options.buttons.clear?.iconSlot\" [name]=\"options.buttons.clear?.icon\"></ion-icon>\n }\n {{ ['create', 'update'].includes(operation) ? 'Back' : options.buttons.clear?.text}}\n </ion-button>\n }\n </div>\n </div>\n </form>\n} @else {\n <div [class]=\"'dcf-grid dcf-grid-collapse dcf-flex dcf-flex-left ' + operation\" id=\"dcf-buttons-container\">\n\n @if(operation === 'delete' && uid) {\n <div>\n <ion-button\n (click)=\"handleDelete()\"\n color=\"danger\"\n type=\"button\">\n @if(options.buttons.submit.icon) {\n <ion-icon aria-hidden=\"true\" [slot]=\"options.buttons.submit.iconSlot\" [name]=\"options.buttons.submit.icon\"></ion-icon>\n }\n Delete\n </ion-button>\n </div>\n\n }\n @if(operation === OperationKeys.CREATE || operation === OperationKeys.UPDATE) {\n <div>\n <ion-button\n type=\"submit\">\n @if(options.buttons.submit.icon) {\n <ion-icon aria-hidden=\"true\" [slot]=\"options.buttons.submit.iconSlot\" [name]=\"options.buttons.submit.icon\"></ion-icon>\n }\n {{options.buttons.submit.text}}\n </ion-button>\n </div>\n }\n\n @if(options.buttons.clear) {\n <div>\n <ion-button fill=\"clear\" (click)=\"handleReset()\">\n @if(options.buttons.clear?.icon) {\n <ion-icon aria-hidden=\"true\" [slot]=\"options.buttons.clear?.iconSlot\" [name]=\"options.buttons.clear?.icon\"></ion-icon>\n }\n {{ ['delete', 'read', 'update'].includes(operation) ? 'Back' : options.buttons.clear?.text}}\n </ion-button>\n </div>\n\n }\n </div>\n}\n\n", styles: ["#dcf-buttons-container{margin-top:1.8rem;margin-bottom:0}@media (min-width: 991px){#dcf-buttons-container.dcf-flex{flex-direction:row-reverse}}@media (max-width: 990px){#dcf-buttons-container.dcf-flex div{width:100%}#dcf-buttons-container.dcf-flex ion-button{width:100%;margin-bottom:1rem}}\n"] }]
3044
+ }], propDecorators: { model: [{
3045
+ type: Input
3046
+ }], updateOn: [{
3047
+ type: Input
3048
+ }], component: [{
3049
+ type: ViewChild,
3050
+ args: ['reactiveForm', { static: false, read: ElementRef }]
3051
+ }], target: [{
3052
+ type: Input
3053
+ }], method: [{
3054
+ type: Input
3055
+ }], options: [{
3056
+ type: Input
3057
+ }], action: [{
3058
+ type: Input
3059
+ }], operation: [{
3060
+ type: Input,
3061
+ args: [{ required: true }]
3062
+ }], handlers: [{
3063
+ type: Input
3064
+ }], formGroup: [{
3065
+ type: Input
3066
+ }], childOf: [{
3067
+ type: Input
3068
+ }], rendererId: [{
3069
+ type: Input
3070
+ }], uid: [{
3071
+ type: Input
3072
+ }], submitEvent: [{
3073
+ type: Output
3074
+ }] } });
3417
3075
 
3418
3076
  /**
3419
3077
  * @module helpers
@@ -3427,51 +3085,6 @@ CrudFormComponent = __decorate([
3427
3085
  * utility functions.
3428
3086
  */
3429
3087
 
3430
- function EmptyStateComponent_Conditional_2_Template(rf, ctx) { if (rf & 1) {
3431
- i0.ɵɵelementStart(0, "div", 1);
3432
- i0.ɵɵelement(1, "ion-icon", 3);
3433
- i0.ɵɵelementEnd();
3434
- } }
3435
- function EmptyStateComponent_Conditional_3_Template(rf, ctx) { if (rf & 1) {
3436
- i0.ɵɵelement(0, "h5", 4);
3437
- } if (rf & 2) {
3438
- const ctx_r0 = i0.ɵɵnextContext();
3439
- i0.ɵɵclassMap(ctx_r0.titleColor);
3440
- i0.ɵɵproperty("innerHTML", ctx_r0.title, i0.ɵɵsanitizeHtml);
3441
- } }
3442
- function EmptyStateComponent_Conditional_4_Conditional_0_Template(rf, ctx) { if (rf & 1) {
3443
- i0.ɵɵelement(0, "p", 4);
3444
- } if (rf & 2) {
3445
- const ctx_r0 = i0.ɵɵnextContext(2);
3446
- i0.ɵɵclassMap(ctx_r0.subtitleColor);
3447
- i0.ɵɵproperty("innerHTML", ctx_r0.subtitle, i0.ɵɵsanitizeHtml);
3448
- } }
3449
- function EmptyStateComponent_Conditional_4_Conditional_1_Template(rf, ctx) { if (rf & 1) {
3450
- i0.ɵɵelement(0, "p", 4);
3451
- } if (rf & 2) {
3452
- const ctx_r0 = i0.ɵɵnextContext(2);
3453
- i0.ɵɵclassMap(ctx_r0.subtitleColor);
3454
- i0.ɵɵproperty("innerHTML", ctx_r0.searchSubtitle, i0.ɵɵsanitizeHtml);
3455
- } }
3456
- function EmptyStateComponent_Conditional_4_Template(rf, ctx) { if (rf & 1) {
3457
- i0.ɵɵtemplate(0, EmptyStateComponent_Conditional_4_Conditional_0_Template, 1, 3, "p", 2)(1, EmptyStateComponent_Conditional_4_Conditional_1_Template, 1, 3, "p", 2);
3458
- } if (rf & 2) {
3459
- const ctx_r0 = i0.ɵɵnextContext();
3460
- i0.ɵɵconditional(!ctx_r0.searchValue ? 0 : 1);
3461
- } }
3462
- function EmptyStateComponent_Conditional_5_Template(rf, ctx) { if (rf & 1) {
3463
- const _r2 = i0.ɵɵgetCurrentView();
3464
- i0.ɵɵelementStart(0, "div")(1, "ion-button", 5);
3465
- i0.ɵɵlistener("click", function EmptyStateComponent_Conditional_5_Template_ion_button_click_1_listener() { i0.ɵɵrestoreView(_r2); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.handleClick()); });
3466
- i0.ɵɵtext(2);
3467
- i0.ɵɵelementEnd()();
3468
- } if (rf & 2) {
3469
- const ctx_r0 = i0.ɵɵnextContext();
3470
- i0.ɵɵadvance();
3471
- i0.ɵɵproperty("size", ctx_r0.buttonSize)("fill", ctx_r0.buttonFill)("color", ctx_r0.buttonColor);
3472
- i0.ɵɵadvance();
3473
- i0.ɵɵtextInterpolate1(" ", ctx_r0.buttonText, " ");
3474
- } }
3475
3088
  /**
3476
3089
  * @description Component for displaying empty state messages with optional actions.
3477
3090
  * @summary This component provides a standardized way to display empty state messages
@@ -3759,68 +3372,51 @@ let EmptyStateComponent = class EmptyStateComponent extends NgxBaseComponent {
3759
3372
  const result = await this.translate.instant(content, { 'value0': this.searchValue });
3760
3373
  return this.sanitizer.bypassSecurityTrustHtml(result);
3761
3374
  }
3762
- static { this.ɵfac = function EmptyStateComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || EmptyStateComponent)(); }; }
3763
- static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: EmptyStateComponent, selectors: [["ngx-decaf-empty-state"]], inputs: { title: "title", titleColor: "titleColor", subtitle: "subtitle", subtitleColor: "subtitleColor", showIcon: "showIcon", icon: "icon", iconSize: "iconSize", iconColor: "iconColor", buttonLink: "buttonLink", buttonText: "buttonText", buttonFill: "buttonFill", buttonColor: "buttonColor", buttonSize: "buttonSize", searchValue: "searchValue" }, standalone: true, features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature], decls: 6, vars: 5, consts: [["id", "dcf-card-empty-state", 3, "ngClass"], [1, "dcf-icon-container"], [3, "class", "innerHTML"], ["name", "alert-circle-outline", "size", "large", "color", "danger"], [3, "innerHTML"], [3, "click", "size", "fill", "color"]], template: function EmptyStateComponent_Template(rf, ctx) { if (rf & 1) {
3764
- i0.ɵɵelementStart(0, "ion-card", 0)(1, "ion-card-content");
3765
- i0.ɵɵtemplate(2, EmptyStateComponent_Conditional_2_Template, 2, 0, "div", 1)(3, EmptyStateComponent_Conditional_3_Template, 1, 3, "h5", 2)(4, EmptyStateComponent_Conditional_4_Template, 2, 1)(5, EmptyStateComponent_Conditional_5_Template, 3, 4, "div");
3766
- i0.ɵɵelementEnd()();
3767
- } if (rf & 2) {
3768
- i0.ɵɵproperty("ngClass", ctx.className);
3769
- i0.ɵɵadvance(2);
3770
- i0.ɵɵconditional(ctx.icon && ctx.showIcon ? 2 : -1);
3771
- i0.ɵɵadvance();
3772
- i0.ɵɵconditional(ctx.title ? 3 : -1);
3773
- i0.ɵɵadvance();
3774
- i0.ɵɵconditional(ctx.subtitle ? 4 : -1);
3775
- i0.ɵɵadvance();
3776
- i0.ɵɵconditional(ctx.buttonLink && ctx.buttonText ? 5 : -1);
3777
- } }, dependencies: [ForAngularModule, i1.IonButton, i2.NgClass, IonCard,
3778
- IonCardContent,
3779
- IonIcon], styles: ["ion-card[_ngcontent-%COMP%]{text-align:center}ion-card[_ngcontent-%COMP%] ion-button[_ngcontent-%COMP%]{margin-top:.75rem}ion-card[_ngcontent-%COMP%] ion-icon[_ngcontent-%COMP%]{font-size:2.5rem}ion-card[_ngcontent-%COMP%] .dcf-icon-container[_ngcontent-%COMP%]{transform:scale(1.25);opacity:.75;margin-top:1.25rem!important;margin-bottom:.5rem!important}ion-card[_ngcontent-%COMP%] .dcf-ititle[_ngcontent-%COMP%]{font-weight:600!important;color:var(--ion-color-gray-6)!important}ion-card[_ngcontent-%COMP%] .dcf-isubtitle[_ngcontent-%COMP%]{font-weight:500!important}"] }); }
3375
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EmptyStateComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
3376
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: EmptyStateComponent, isStandalone: true, selector: "ngx-decaf-empty-state", inputs: { title: "title", titleColor: "titleColor", subtitle: "subtitle", subtitleColor: "subtitleColor", showIcon: "showIcon", icon: "icon", iconSize: "iconSize", iconColor: "iconColor", buttonLink: "buttonLink", buttonText: "buttonText", buttonFill: "buttonFill", buttonColor: "buttonColor", buttonSize: "buttonSize", searchValue: "searchValue" }, usesInheritance: true, ngImport: i0, template: "\n<ion-card id=\"dcf-card-empty-state\" [ngClass]=\"className\">\n <ion-card-content>\n @if(icon && showIcon) {\n <div class=\"dcf-icon-container\">\n <ion-icon\n name=\"alert-circle-outline\"\n size=\"large\"\n color=\"danger\"\n />\n </div>\n }\n @if(title) {\n <h5 [class]=\"titleColor\" [innerHTML]=\"title\"></h5>\n }\n @if(subtitle) {\n @if(!searchValue) {\n <p [class]=\"subtitleColor\" [innerHTML]=\"subtitle\"></p>\n } @else {\n <p [class]=\"subtitleColor\" [innerHTML]=\"searchSubtitle\"></p>\n }\n }\n @if(buttonLink && buttonText) {\n <div>\n <ion-button\n [size]=\"buttonSize\"\n [fill]=\"buttonFill\"\n [color]=\"buttonColor\"\n (click)=\"handleClick()\">\n {{ buttonText }}\n </ion-button>\n </div>\n }\n </ion-card-content>\n</ion-card>\n", styles: ["ion-card{text-align:center}ion-card ion-button{margin-top:.75rem}ion-card ion-icon{font-size:2.5rem}ion-card .dcf-icon-container{transform:scale(1.25);opacity:.75;margin-top:1.25rem!important;margin-bottom:.5rem!important}ion-card .dcf-ititle{font-weight:600!important;color:var(--ion-color-gray-6)!important}ion-card .dcf-isubtitle{font-weight:500!important}\n"], dependencies: [{ kind: "ngmodule", type: ForAngularModule }, { kind: "component", type: i1.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: IonCard, selector: "ion-card", inputs: ["button", "color", "disabled", "download", "href", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: IonCardContent, selector: "ion-card-content", inputs: ["mode"] }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }] }); }
3780
3377
  };
3781
3378
  EmptyStateComponent = __decorate([
3782
3379
  Dynamic(),
3783
3380
  __metadata("design:paramtypes", [])
3784
3381
  ], EmptyStateComponent);
3785
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(EmptyStateComponent, [{
3786
- type: Component,
3787
- args: [{ selector: 'ngx-decaf-empty-state', standalone: true, imports: [
3788
- ForAngularModule,
3789
- IonCard,
3790
- IonCardContent,
3791
- IonTitle,
3792
- IonIcon
3793
- ], template: "\n<ion-card id=\"dcf-card-empty-state\" [ngClass]=\"className\">\n <ion-card-content>\n @if(icon && showIcon) {\n <div class=\"dcf-icon-container\">\n <ion-icon\n name=\"alert-circle-outline\"\n size=\"large\"\n color=\"danger\"\n />\n </div>\n }\n @if(title) {\n <h5 [class]=\"titleColor\" [innerHTML]=\"title\"></h5>\n }\n @if(subtitle) {\n @if(!searchValue) {\n <p [class]=\"subtitleColor\" [innerHTML]=\"subtitle\"></p>\n } @else {\n <p [class]=\"subtitleColor\" [innerHTML]=\"searchSubtitle\"></p>\n }\n }\n @if(buttonLink && buttonText) {\n <div>\n <ion-button\n [size]=\"buttonSize\"\n [fill]=\"buttonFill\"\n [color]=\"buttonColor\"\n (click)=\"handleClick()\">\n {{ buttonText }}\n </ion-button>\n </div>\n }\n </ion-card-content>\n</ion-card>\n", styles: ["ion-card{text-align:center}ion-card ion-button{margin-top:.75rem}ion-card ion-icon{font-size:2.5rem}ion-card .dcf-icon-container{transform:scale(1.25);opacity:.75;margin-top:1.25rem!important;margin-bottom:.5rem!important}ion-card .dcf-ititle{font-weight:600!important;color:var(--ion-color-gray-6)!important}ion-card .dcf-isubtitle{font-weight:500!important}\n"] }]
3794
- }], () => [], { title: [{
3795
- type: Input
3796
- }], titleColor: [{
3797
- type: Input
3798
- }], subtitle: [{
3799
- type: Input
3800
- }], subtitleColor: [{
3801
- type: Input
3802
- }], showIcon: [{
3803
- type: Input
3804
- }], icon: [{
3805
- type: Input
3806
- }], iconSize: [{
3807
- type: Input
3808
- }], iconColor: [{
3809
- type: Input
3810
- }], buttonLink: [{
3811
- type: Input
3812
- }], buttonText: [{
3813
- type: Input
3814
- }], buttonFill: [{
3815
- type: Input
3816
- }], buttonColor: [{
3817
- type: Input
3818
- }], buttonSize: [{
3819
- type: Input
3820
- }], searchValue: [{
3821
- type: Input
3822
- }] }); })();
3823
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(EmptyStateComponent, { className: "EmptyStateComponent", filePath: "components/empty-state/empty-state.component.ts", lineNumber: 72 }); })();
3382
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EmptyStateComponent, decorators: [{
3383
+ type: Component,
3384
+ args: [{ selector: 'ngx-decaf-empty-state', standalone: true, imports: [
3385
+ ForAngularModule,
3386
+ IonCard,
3387
+ IonCardContent,
3388
+ IonTitle,
3389
+ IonIcon
3390
+ ], template: "\n<ion-card id=\"dcf-card-empty-state\" [ngClass]=\"className\">\n <ion-card-content>\n @if(icon && showIcon) {\n <div class=\"dcf-icon-container\">\n <ion-icon\n name=\"alert-circle-outline\"\n size=\"large\"\n color=\"danger\"\n />\n </div>\n }\n @if(title) {\n <h5 [class]=\"titleColor\" [innerHTML]=\"title\"></h5>\n }\n @if(subtitle) {\n @if(!searchValue) {\n <p [class]=\"subtitleColor\" [innerHTML]=\"subtitle\"></p>\n } @else {\n <p [class]=\"subtitleColor\" [innerHTML]=\"searchSubtitle\"></p>\n }\n }\n @if(buttonLink && buttonText) {\n <div>\n <ion-button\n [size]=\"buttonSize\"\n [fill]=\"buttonFill\"\n [color]=\"buttonColor\"\n (click)=\"handleClick()\">\n {{ buttonText }}\n </ion-button>\n </div>\n }\n </ion-card-content>\n</ion-card>\n", styles: ["ion-card{text-align:center}ion-card ion-button{margin-top:.75rem}ion-card ion-icon{font-size:2.5rem}ion-card .dcf-icon-container{transform:scale(1.25);opacity:.75;margin-top:1.25rem!important;margin-bottom:.5rem!important}ion-card .dcf-ititle{font-weight:600!important;color:var(--ion-color-gray-6)!important}ion-card .dcf-isubtitle{font-weight:500!important}\n"] }]
3391
+ }], ctorParameters: () => [], propDecorators: { title: [{
3392
+ type: Input
3393
+ }], titleColor: [{
3394
+ type: Input
3395
+ }], subtitle: [{
3396
+ type: Input
3397
+ }], subtitleColor: [{
3398
+ type: Input
3399
+ }], showIcon: [{
3400
+ type: Input
3401
+ }], icon: [{
3402
+ type: Input
3403
+ }], iconSize: [{
3404
+ type: Input
3405
+ }], iconColor: [{
3406
+ type: Input
3407
+ }], buttonLink: [{
3408
+ type: Input
3409
+ }], buttonText: [{
3410
+ type: Input
3411
+ }], buttonFill: [{
3412
+ type: Input
3413
+ }], buttonColor: [{
3414
+ type: Input
3415
+ }], buttonSize: [{
3416
+ type: Input
3417
+ }], searchValue: [{
3418
+ type: Input
3419
+ }] } });
3824
3420
 
3825
3421
  class CollapsableDirective {
3826
3422
  constructor() {
@@ -3837,19 +3433,17 @@ class CollapsableDirective {
3837
3433
  }
3838
3434
  }
3839
3435
  }
3840
- static { this.ɵfac = function CollapsableDirective_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || CollapsableDirective)(); }; }
3841
- static { this.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: CollapsableDirective, selectors: [["", "decafCollapsable", ""]], standalone: true }); }
3436
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CollapsableDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
3437
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: CollapsableDirective, isStandalone: true, selector: "[decafCollapsable]", ngImport: i0 }); }
3842
3438
  }
3843
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CollapsableDirective, [{
3844
- type: Directive,
3845
- args: [{
3846
- selector: '[decafCollapsable]',
3847
- standalone: true
3848
- }]
3849
- }], null, null); })();
3439
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CollapsableDirective, decorators: [{
3440
+ type: Directive,
3441
+ args: [{
3442
+ selector: '[decafCollapsable]',
3443
+ standalone: true
3444
+ }]
3445
+ }] });
3850
3446
 
3851
- const _c0$6 = ["component"];
3852
- const _c1$5 = ["*"];
3853
3447
  /**
3854
3448
  * @description Dynamic fieldset component with collapsible accordion functionality.
3855
3449
  * @summary This component provides a sophisticated fieldset container that automatically
@@ -4046,48 +3640,25 @@ let FieldsetComponent = class FieldsetComponent {
4046
3640
  if (target.tagName === 'ION-ACCORDION-GROUP')
4047
3641
  this.isOpen = !!value;
4048
3642
  }
4049
- static { this.ɵfac = function FieldsetComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || FieldsetComponent)(); }; }
4050
- static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: FieldsetComponent, selectors: [["ngx-decaf-fieldset"]], viewQuery: function FieldsetComponent_Query(rf, ctx) { if (rf & 1) {
4051
- i0.ɵɵviewQuery(_c0$6, 5, ElementRef);
4052
- } if (rf & 2) {
4053
- let _t;
4054
- i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.component = _t.first);
4055
- } }, inputs: { name: "name", operation: "operation", target: "target" }, standalone: true, features: [i0.ɵɵStandaloneFeature], ngContentSelectors: _c1$5, decls: 9, vars: 4, consts: [["component", ""], [3, "ionChange"], ["value", "open"], ["slot", "header"], ["slot", "content", "decafCollapsable", ""]], template: function FieldsetComponent_Template(rf, ctx) { if (rf & 1) {
4056
- const _r1 = i0.ɵɵgetCurrentView();
4057
- i0.ɵɵprojectionDef();
4058
- i0.ɵɵelementStart(0, "fieldset", null, 0)(2, "ion-accordion-group", 1);
4059
- i0.ɵɵlistener("ionChange", function FieldsetComponent_Template_ion_accordion_group_ionChange_2_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.handleChange($event)); });
4060
- i0.ɵɵelementStart(3, "ion-accordion", 2)(4, "ion-item", 3)(5, "legend");
4061
- i0.ɵɵtext(6);
4062
- i0.ɵɵelementEnd()();
4063
- i0.ɵɵelementStart(7, "div", 4);
4064
- i0.ɵɵprojection(8);
4065
- i0.ɵɵelementEnd()()()();
4066
- } if (rf & 2) {
4067
- i0.ɵɵclassMap("dcf-fieldset " + ctx.operation);
4068
- i0.ɵɵadvance(6);
4069
- i0.ɵɵtextInterpolate(ctx.name);
4070
- i0.ɵɵadvance();
4071
- i0.ɵɵattribute("aria-hidden", !ctx.isOpen);
4072
- } }, dependencies: [ForAngularModule, IonAccordionGroup, IonAccordion, IonItem, CollapsableDirective], styles: [".dcf-fieldset[_ngcontent-%COMP%]{margin-bottom:1.8rem;padding-bottom:0;padding-top:1rem;border:1px solid var(--ion-color-gray-2);border-radius:8px}.dcf-fieldset[_ngcontent-%COMP%] ion-accordion-group[_ngcontent-%COMP%]{--border-color:red !important}.dcf-fieldset.read[_ngcontent-%COMP%]{margin-top:1.25rem}.dcf-fieldset[_ngcontent-%COMP%] ion-accordion.accordion-collapsing[_ngcontent-%COMP%], .dcf-fieldset[_ngcontent-%COMP%] ion-accordion.accordion-collapsed[_ngcontent-%COMP%]{margin-bottom:1rem}.dcf-fieldset[_ngcontent-%COMP%] ion-accordion[_ngcontent-%COMP%] ion-item[slot=header][_ngcontent-%COMP%]{--border-color: transparent;--border-radius: 6px;--inner-border-width: 0;--padding-start: 12px}.dcf-fieldset[_ngcontent-%COMP%] ion-accordion[_ngcontent-%COMP%] ion-item[slot=header][_ngcontent-%COMP%] legend[_ngcontent-%COMP%]{font-weight:600;font-size:1rem;color:#333;margin:0}.dcf-fieldset[_ngcontent-%COMP%] ion-accordion[_ngcontent-%COMP%] [slot=content][_ngcontent-%COMP%]{padding-top:1rem!important;padding-inline:.75rem;background-color:#fff}"] }); }
3643
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FieldsetComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
3644
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: FieldsetComponent, isStandalone: true, selector: "ngx-decaf-fieldset", inputs: { name: "name", operation: "operation", target: "target" }, viewQueries: [{ propertyName: "component", first: true, predicate: ["component"], descendants: true, read: ElementRef }], ngImport: i0, template: "<fieldset [class]=\"'dcf-fieldset ' + operation\" #component>\n <ion-accordion-group (ionChange)=\"handleChange($event)\">\n <ion-accordion value=\"open\">\n <ion-item slot=\"header\" >\n <legend>{{ name }}</legend>\n </ion-item>\n <div slot=\"content\" [attr.aria-hidden]=\"!isOpen\" decafCollapsable>\n <ng-content></ng-content>\n </div>\n </ion-accordion>\n </ion-accordion-group>\n</fieldset>\n", styles: [".dcf-fieldset{margin-bottom:1.8rem;padding-bottom:0;padding-top:1rem;border:1px solid var(--ion-color-gray-2);border-radius:8px}.dcf-fieldset ion-accordion-group{--border-color:red !important}.dcf-fieldset.read{margin-top:1.25rem}.dcf-fieldset ion-accordion.accordion-collapsing,.dcf-fieldset ion-accordion.accordion-collapsed{margin-bottom:1rem}.dcf-fieldset ion-accordion ion-item[slot=header]{--border-color: transparent;--border-radius: 6px;--inner-border-width: 0;--padding-start: 12px}.dcf-fieldset ion-accordion ion-item[slot=header] legend{font-weight:600;font-size:1rem;color:#333;margin:0}.dcf-fieldset ion-accordion [slot=content]{padding-top:1rem!important;padding-inline:.75rem;background-color:#fff}\n"], dependencies: [{ kind: "ngmodule", type: ForAngularModule }, { kind: "component", type: IonAccordionGroup, selector: "ion-accordion-group", inputs: ["animated", "disabled", "expand", "mode", "multiple", "readonly", "value"] }, { kind: "component", type: IonAccordion, selector: "ion-accordion", inputs: ["disabled", "mode", "readonly", "toggleIcon", "toggleIconSlot", "value"] }, { kind: "component", type: IonItem, selector: "ion-item", inputs: ["button", "color", "detail", "detailIcon", "disabled", "download", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "directive", type: CollapsableDirective, selector: "[decafCollapsable]" }] }); }
4073
3645
  };
4074
3646
  FieldsetComponent = __decorate([
4075
3647
  Dynamic()
4076
3648
  ], FieldsetComponent);
4077
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(FieldsetComponent, [{
4078
- type: Component,
4079
- args: [{ standalone: true, selector: 'ngx-decaf-fieldset', schemas: [CUSTOM_ELEMENTS_SCHEMA], imports: [ForAngularModule, IonAccordionGroup, IonAccordion, IonItem, CollapsableDirective], template: "<fieldset [class]=\"'dcf-fieldset ' + operation\" #component>\n <ion-accordion-group (ionChange)=\"handleChange($event)\">\n <ion-accordion value=\"open\">\n <ion-item slot=\"header\" >\n <legend>{{ name }}</legend>\n </ion-item>\n <div slot=\"content\" [attr.aria-hidden]=\"!isOpen\" decafCollapsable>\n <ng-content></ng-content>\n </div>\n </ion-accordion>\n </ion-accordion-group>\n</fieldset>\n", styles: [".dcf-fieldset{margin-bottom:1.8rem;padding-bottom:0;padding-top:1rem;border:1px solid var(--ion-color-gray-2);border-radius:8px}.dcf-fieldset ion-accordion-group{--border-color:red !important}.dcf-fieldset.read{margin-top:1.25rem}.dcf-fieldset ion-accordion.accordion-collapsing,.dcf-fieldset ion-accordion.accordion-collapsed{margin-bottom:1rem}.dcf-fieldset ion-accordion ion-item[slot=header]{--border-color: transparent;--border-radius: 6px;--inner-border-width: 0;--padding-start: 12px}.dcf-fieldset ion-accordion ion-item[slot=header] legend{font-weight:600;font-size:1rem;color:#333;margin:0}.dcf-fieldset ion-accordion [slot=content]{padding-top:1rem!important;padding-inline:.75rem;background-color:#fff}\n"] }]
4080
- }], null, { component: [{
4081
- type: ViewChild,
4082
- args: ['component', { static: false, read: ElementRef }]
4083
- }], name: [{
4084
- type: Input
4085
- }], operation: [{
4086
- type: Input
4087
- }], target: [{
4088
- type: Input
4089
- }] }); })();
4090
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(FieldsetComponent, { className: "FieldsetComponent", filePath: "components/fieldset/fieldset.component.ts", lineNumber: 68 }); })();
3649
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FieldsetComponent, decorators: [{
3650
+ type: Component,
3651
+ args: [{ standalone: true, selector: 'ngx-decaf-fieldset', schemas: [CUSTOM_ELEMENTS_SCHEMA], imports: [ForAngularModule, IonAccordionGroup, IonAccordion, IonItem, CollapsableDirective], template: "<fieldset [class]=\"'dcf-fieldset ' + operation\" #component>\n <ion-accordion-group (ionChange)=\"handleChange($event)\">\n <ion-accordion value=\"open\">\n <ion-item slot=\"header\" >\n <legend>{{ name }}</legend>\n </ion-item>\n <div slot=\"content\" [attr.aria-hidden]=\"!isOpen\" decafCollapsable>\n <ng-content></ng-content>\n </div>\n </ion-accordion>\n </ion-accordion-group>\n</fieldset>\n", styles: [".dcf-fieldset{margin-bottom:1.8rem;padding-bottom:0;padding-top:1rem;border:1px solid var(--ion-color-gray-2);border-radius:8px}.dcf-fieldset ion-accordion-group{--border-color:red !important}.dcf-fieldset.read{margin-top:1.25rem}.dcf-fieldset ion-accordion.accordion-collapsing,.dcf-fieldset ion-accordion.accordion-collapsed{margin-bottom:1rem}.dcf-fieldset ion-accordion ion-item[slot=header]{--border-color: transparent;--border-radius: 6px;--inner-border-width: 0;--padding-start: 12px}.dcf-fieldset ion-accordion ion-item[slot=header] legend{font-weight:600;font-size:1rem;color:#333;margin:0}.dcf-fieldset ion-accordion [slot=content]{padding-top:1rem!important;padding-inline:.75rem;background-color:#fff}\n"] }]
3652
+ }], propDecorators: { component: [{
3653
+ type: ViewChild,
3654
+ args: ['component', { static: false, read: ElementRef }]
3655
+ }], name: [{
3656
+ type: Input
3657
+ }], operation: [{
3658
+ type: Input
3659
+ }], target: [{
3660
+ type: Input
3661
+ }] } });
4091
3662
 
4092
3663
  /**
4093
3664
  * @description Searchbar component for Angular applications.
@@ -4515,242 +4086,63 @@ class SearchbarComponent extends NgxBaseComponent {
4515
4086
  preventChange(event) {
4516
4087
  event.preventDefault();
4517
4088
  }
4518
- static { this.ɵfac = function SearchbarComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || SearchbarComponent)(); }; }
4519
- static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SearchbarComponent, selectors: [["ngx-decaf-searchbar"]], hostBindings: function SearchbarComponent_HostBindings(rf, ctx) { if (rf & 1) {
4520
- i0.ɵɵlistener("toggleSearchbarVisibility", function SearchbarComponent_toggleSearchbarVisibility_HostBindingHandler($event) { return ctx.handleToggleVisibility($event); }, false, i0.ɵɵresolveWindow);
4521
- } }, inputs: { autocomplete: "autocomplete", autocorrect: "autocorrect", animated: "animated", buttonCancelText: "buttonCancelText", clearIcon: "clearIcon", color: "color", debounce: "debounce", disabled: "disabled", enterkeyhint: "enterkeyhint", inputmode: "inputmode", placeholder: "placeholder", searchIcon: "searchIcon", showCancelButton: "showCancelButton", showClearButton: "showClearButton", spellcheck: "spellcheck", type: "type", value: "value", queryKeys: "queryKeys", isVisible: "isVisible", wrapper: "wrapper", wrapperColor: "wrapperColor", emitEventToWindow: "emitEventToWindow" }, outputs: { searchEvent: "searchEvent" }, standalone: true, features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature], decls: 2, vars: 14, consts: [["component", ""], ["ngClass", "dcf-searchbar", "name", "search", "mode", "ios", 3, "keyup.enter", "ionChange", "ionInput", "ionClear", "autocomplete", "showCancelButton", "cancelButtonText", "clearIcon", "color", "debounce", "disabled", "enterkeyhint", "inputmode", "placeholder", "searchIcon", "showClearButton", "spellcheck", "type"]], template: function SearchbarComponent_Template(rf, ctx) { if (rf & 1) {
4522
- const _r1 = i0.ɵɵgetCurrentView();
4523
- i0.ɵɵelementStart(0, "ion-searchbar", 1, 0);
4524
- i0.ɵɵlistener("keyup.enter", function SearchbarComponent_Template_ion_searchbar_keyup_enter_0_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.preventChange($event)); })("ionChange", function SearchbarComponent_Template_ion_searchbar_ionChange_0_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.handleChange($event)); })("ionInput", function SearchbarComponent_Template_ion_searchbar_ionInput_0_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.handleInput($event)); })("ionClear", function SearchbarComponent_Template_ion_searchbar_ionClear_0_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.handleClear()); });
4525
- i0.ɵɵelementEnd();
4526
- } if (rf & 2) {
4527
- i0.ɵɵproperty("autocomplete", ctx.autocomplete)("showCancelButton", ctx.showCancelButton)("cancelButtonText", ctx.buttonCancelText)("clearIcon", ctx.clearIcon)("color", ctx.color)("debounce", ctx.debounce)("disabled", ctx.disabled)("enterkeyhint", ctx.enterkeyhint)("inputmode", ctx.inputmode)("placeholder", ctx.placeholder)("searchIcon", ctx.searchIcon)("showClearButton", ctx.showClearButton)("spellcheck", ctx.spellcheck)("type", ctx.type);
4528
- } }, dependencies: [ForAngularModule, i2.NgClass, IonSearchbar] }); }
4089
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SearchbarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
4090
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: SearchbarComponent, isStandalone: true, selector: "ngx-decaf-searchbar", inputs: { autocomplete: "autocomplete", autocorrect: "autocorrect", animated: "animated", buttonCancelText: "buttonCancelText", clearIcon: "clearIcon", color: "color", debounce: "debounce", disabled: "disabled", enterkeyhint: "enterkeyhint", inputmode: "inputmode", placeholder: "placeholder", searchIcon: "searchIcon", showCancelButton: "showCancelButton", showClearButton: "showClearButton", spellcheck: "spellcheck", type: "type", value: "value", queryKeys: "queryKeys", isVisible: "isVisible", wrapper: "wrapper", wrapperColor: "wrapperColor", emitEventToWindow: "emitEventToWindow" }, outputs: { searchEvent: "searchEvent" }, host: { listeners: { "window:toggleSearchbarVisibility": "handleToggleVisibility($event)" } }, usesInheritance: true, ngImport: i0, template: "<ion-searchbar\n ngClass=\"dcf-searchbar\"\n name=\"search\"\n mode=\"ios\"\n (keyup.enter)=\"preventChange($event)\"\n (ionChange)=\"handleChange($event)\"\n (ionInput)=\"handleInput($event)\"\n (ionClear)=\"handleClear()\"\n [autocomplete]=\"autocomplete\"\n [showCancelButton]=\"showCancelButton\"\n [cancelButtonText]=\"buttonCancelText\"\n [clearIcon]=\"clearIcon\"\n [color]=\"color\"\n [debounce]=\"debounce\"\n [disabled]=\"disabled\"\n [enterkeyhint]=\"enterkeyhint\"\n [inputmode]=\"inputmode\"\n [placeholder]=\"placeholder\"\n [searchIcon]=\"searchIcon\"\n [showClearButton]=\"showClearButton\"\n [spellcheck]=\"spellcheck\"\n [type]=\"type\"\n #component\n />\n", styles: [""], dependencies: [{ kind: "ngmodule", type: ForAngularModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: IonSearchbar, selector: "ion-searchbar", inputs: ["animated", "autocomplete", "autocorrect", "cancelButtonIcon", "cancelButtonText", "clearIcon", "color", "debounce", "disabled", "enterkeyhint", "inputmode", "mode", "name", "placeholder", "searchIcon", "showCancelButton", "showClearButton", "spellcheck", "type", "value"] }] }); }
4529
4091
  }
4530
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SearchbarComponent, [{
4531
- type: Component,
4532
- args: [{ selector: 'ngx-decaf-searchbar', standalone: true, imports: [ForAngularModule, IonSearchbar], template: "<ion-searchbar\n ngClass=\"dcf-searchbar\"\n name=\"search\"\n mode=\"ios\"\n (keyup.enter)=\"preventChange($event)\"\n (ionChange)=\"handleChange($event)\"\n (ionInput)=\"handleInput($event)\"\n (ionClear)=\"handleClear()\"\n [autocomplete]=\"autocomplete\"\n [showCancelButton]=\"showCancelButton\"\n [cancelButtonText]=\"buttonCancelText\"\n [clearIcon]=\"clearIcon\"\n [color]=\"color\"\n [debounce]=\"debounce\"\n [disabled]=\"disabled\"\n [enterkeyhint]=\"enterkeyhint\"\n [inputmode]=\"inputmode\"\n [placeholder]=\"placeholder\"\n [searchIcon]=\"searchIcon\"\n [showClearButton]=\"showClearButton\"\n [spellcheck]=\"spellcheck\"\n [type]=\"type\"\n #component\n />\n" }]
4533
- }], () => [], { autocomplete: [{
4534
- type: Input
4535
- }], autocorrect: [{
4536
- type: Input
4537
- }], animated: [{
4538
- type: Input
4539
- }], buttonCancelText: [{
4540
- type: Input
4541
- }], clearIcon: [{
4542
- type: Input
4543
- }], color: [{
4544
- type: Input
4545
- }], debounce: [{
4546
- type: Input
4547
- }], disabled: [{
4548
- type: Input
4549
- }], enterkeyhint: [{
4550
- type: Input
4551
- }], inputmode: [{
4552
- type: Input
4553
- }], placeholder: [{
4554
- type: Input
4555
- }], searchIcon: [{
4556
- type: Input
4557
- }], showCancelButton: [{
4558
- type: Input
4559
- }], showClearButton: [{
4560
- type: Input
4561
- }], spellcheck: [{
4562
- type: Input
4563
- }], type: [{
4564
- type: Input
4565
- }], value: [{
4566
- type: Input
4567
- }], queryKeys: [{
4568
- type: Input
4569
- }], isVisible: [{
4570
- type: Input
4571
- }], wrapper: [{
4572
- type: Input
4573
- }], wrapperColor: [{
4574
- type: Input
4575
- }], emitEventToWindow: [{
4576
- type: Input
4577
- }], searchEvent: [{
4578
- type: Output
4579
- }], handleToggleVisibility: [{
4580
- type: HostListener,
4581
- args: ["window:toggleSearchbarVisibility", ['$event']]
4582
- }] }); })();
4583
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SearchbarComponent, { className: "SearchbarComponent", filePath: "components/searchbar/searchbar.component.ts", lineNumber: 32 }); })();
4092
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SearchbarComponent, decorators: [{
4093
+ type: Component,
4094
+ args: [{ selector: 'ngx-decaf-searchbar', standalone: true, imports: [ForAngularModule, IonSearchbar], template: "<ion-searchbar\n ngClass=\"dcf-searchbar\"\n name=\"search\"\n mode=\"ios\"\n (keyup.enter)=\"preventChange($event)\"\n (ionChange)=\"handleChange($event)\"\n (ionInput)=\"handleInput($event)\"\n (ionClear)=\"handleClear()\"\n [autocomplete]=\"autocomplete\"\n [showCancelButton]=\"showCancelButton\"\n [cancelButtonText]=\"buttonCancelText\"\n [clearIcon]=\"clearIcon\"\n [color]=\"color\"\n [debounce]=\"debounce\"\n [disabled]=\"disabled\"\n [enterkeyhint]=\"enterkeyhint\"\n [inputmode]=\"inputmode\"\n [placeholder]=\"placeholder\"\n [searchIcon]=\"searchIcon\"\n [showClearButton]=\"showClearButton\"\n [spellcheck]=\"spellcheck\"\n [type]=\"type\"\n #component\n />\n" }]
4095
+ }], ctorParameters: () => [], propDecorators: { autocomplete: [{
4096
+ type: Input
4097
+ }], autocorrect: [{
4098
+ type: Input
4099
+ }], animated: [{
4100
+ type: Input
4101
+ }], buttonCancelText: [{
4102
+ type: Input
4103
+ }], clearIcon: [{
4104
+ type: Input
4105
+ }], color: [{
4106
+ type: Input
4107
+ }], debounce: [{
4108
+ type: Input
4109
+ }], disabled: [{
4110
+ type: Input
4111
+ }], enterkeyhint: [{
4112
+ type: Input
4113
+ }], inputmode: [{
4114
+ type: Input
4115
+ }], placeholder: [{
4116
+ type: Input
4117
+ }], searchIcon: [{
4118
+ type: Input
4119
+ }], showCancelButton: [{
4120
+ type: Input
4121
+ }], showClearButton: [{
4122
+ type: Input
4123
+ }], spellcheck: [{
4124
+ type: Input
4125
+ }], type: [{
4126
+ type: Input
4127
+ }], value: [{
4128
+ type: Input
4129
+ }], queryKeys: [{
4130
+ type: Input
4131
+ }], isVisible: [{
4132
+ type: Input
4133
+ }], wrapper: [{
4134
+ type: Input
4135
+ }], wrapperColor: [{
4136
+ type: Input
4137
+ }], emitEventToWindow: [{
4138
+ type: Input
4139
+ }], searchEvent: [{
4140
+ type: Output
4141
+ }], handleToggleVisibility: [{
4142
+ type: HostListener,
4143
+ args: ["window:toggleSearchbarVisibility", ['$event']]
4144
+ }] } });
4584
4145
 
4585
- const _c0$5 = ["optionsFilterElement"];
4586
- function _forTrack0$1($index, $item) { return this.trackItemFn($index, $item == null ? null : $item["index"]); }
4587
- const _c1$4 = a0 => ({ "dcf-hidden": a0 });
4588
- function FilterComponent_Conditional_0_Template(rf, ctx) { if (rf & 1) {
4589
- const _r2 = i0.ɵɵgetCurrentView();
4590
- i0.ɵɵelementStart(0, "ngx-decaf-searchbar", 15);
4591
- i0.ɵɵlistener("searchEvent", function FilterComponent_Conditional_0_Template_ngx_decaf_searchbar_searchEvent_0_listener($event) { i0.ɵɵrestoreView(_r2); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.handleSearch($event)); });
4592
- i0.ɵɵelementEnd();
4593
- } if (rf & 2) {
4594
- i0.ɵɵproperty("emitEventToWindow", false)("debounce", 500);
4595
- } }
4596
- function FilterComponent_For_6_Conditional_0_Template(rf, ctx) { if (rf & 1) {
4597
- i0.ɵɵelementStart(0, "ion-chip", 16);
4598
- i0.ɵɵtext(1);
4599
- i0.ɵɵelementEnd();
4600
- } if (rf & 2) {
4601
- const filter_r4 = i0.ɵɵnextContext().$implicit;
4602
- i0.ɵɵproperty("outline", true);
4603
- i0.ɵɵadvance();
4604
- i0.ɵɵtextInterpolate(filter_r4 == null ? null : filter_r4["index"]);
4605
- } }
4606
- function FilterComponent_For_6_Conditional_1_Template(rf, ctx) { if (rf & 1) {
4607
- i0.ɵɵelementStart(0, "ion-chip", 16);
4608
- i0.ɵɵtext(1);
4609
- i0.ɵɵelementEnd();
4610
- } if (rf & 2) {
4611
- const filter_r4 = i0.ɵɵnextContext().$implicit;
4612
- i0.ɵɵproperty("outline", true);
4613
- i0.ɵɵadvance();
4614
- i0.ɵɵtextInterpolate(filter_r4 == null ? null : filter_r4["condition"]);
4615
- } }
4616
- function FilterComponent_For_6_Conditional_2_Template(rf, ctx) { if (rf & 1) {
4617
- const _r5 = i0.ɵɵgetCurrentView();
4618
- i0.ɵɵelementStart(0, "ion-chip", 17);
4619
- i0.ɵɵtext(1);
4620
- i0.ɵɵelementStart(2, "ion-icon", 18);
4621
- i0.ɵɵlistener("click", function FilterComponent_For_6_Conditional_2_Template_ion_icon_click_2_listener() { i0.ɵɵrestoreView(_r5); const filter_r4 = i0.ɵɵnextContext().$implicit; const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.removeFilter(filter_r4 == null ? null : filter_r4["value"])); });
4622
- i0.ɵɵelementEnd()();
4623
- } if (rf & 2) {
4624
- const filter_r4 = i0.ɵɵnextContext().$implicit;
4625
- i0.ɵɵproperty("outline", true);
4626
- i0.ɵɵadvance();
4627
- i0.ɵɵtextInterpolate1(" ", filter_r4 == null ? null : filter_r4["value"], " ");
4628
- } }
4629
- function FilterComponent_For_6_Template(rf, ctx) { if (rf & 1) {
4630
- i0.ɵɵtemplate(0, FilterComponent_For_6_Conditional_0_Template, 2, 2, "ion-chip", 16)(1, FilterComponent_For_6_Conditional_1_Template, 2, 2, "ion-chip", 16)(2, FilterComponent_For_6_Conditional_2_Template, 3, 2, "ion-chip", 17);
4631
- } if (rf & 2) {
4632
- const filter_r4 = ctx.$implicit;
4633
- i0.ɵɵconditional((filter_r4 == null ? null : filter_r4["index"]) ? 0 : -1);
4634
- i0.ɵɵadvance();
4635
- i0.ɵɵconditional((filter_r4 == null ? null : filter_r4["condition"]) ? 1 : -1);
4636
- i0.ɵɵadvance();
4637
- i0.ɵɵconditional((filter_r4 == null ? null : filter_r4["value"]) ? 2 : -1);
4638
- } }
4639
- function FilterComponent_Conditional_11_Conditional_3_For_1_Template(rf, ctx) { if (rf & 1) {
4640
- const _r6 = i0.ɵɵgetCurrentView();
4641
- i0.ɵɵelementStart(0, "div", 21);
4642
- i0.ɵɵlistener("keydown.enter", function FilterComponent_Conditional_11_Conditional_3_For_1_Template_div_keydown_enter_0_listener() { const key_r7 = i0.ɵɵrestoreView(_r6).$implicit; const ctx_r2 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r2.selectOption(key_r7)); })("click", function FilterComponent_Conditional_11_Conditional_3_For_1_Template_div_click_0_listener() { const key_r7 = i0.ɵɵrestoreView(_r6).$implicit; const ctx_r2 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r2.selectOption(key_r7)); });
4643
- i0.ɵɵtext(1);
4644
- i0.ɵɵelementEnd();
4645
- } if (rf & 2) {
4646
- const key_r7 = ctx.$implicit;
4647
- i0.ɵɵadvance();
4648
- i0.ɵɵtextInterpolate1(" ", key_r7, " ");
4649
- } }
4650
- function FilterComponent_Conditional_11_Conditional_3_Template(rf, ctx) { if (rf & 1) {
4651
- i0.ɵɵrepeaterCreate(0, FilterComponent_Conditional_11_Conditional_3_For_1_Template, 2, 1, "div", 20, i0.ɵɵrepeaterTrackByIdentity);
4652
- } if (rf & 2) {
4653
- const ctx_r2 = i0.ɵɵnextContext(2);
4654
- i0.ɵɵrepeater(ctx_r2.filteredOptions);
4655
- } }
4656
- function FilterComponent_Conditional_11_Conditional_4_Template(rf, ctx) { if (rf & 1) {
4657
- const _r8 = i0.ɵɵgetCurrentView();
4658
- i0.ɵɵelementStart(0, "div", 22);
4659
- i0.ɵɵlistener("click", function FilterComponent_Conditional_11_Conditional_4_Template_div_click_0_listener() { i0.ɵɵrestoreView(_r8); const ctx_r2 = i0.ɵɵnextContext(2); ctx_r2.filteredOptions = ctx_r2.options; return i0.ɵɵresetView(ctx_r2.value = ""); })("keydown.enter", function FilterComponent_Conditional_11_Conditional_4_Template_div_keydown_enter_0_listener() { i0.ɵɵrestoreView(_r8); const ctx_r2 = i0.ɵɵnextContext(2); ctx_r2.filteredOptions = ctx_r2.options; return i0.ɵɵresetView(ctx_r2.value = ""); });
4660
- i0.ɵɵtext(1);
4661
- i0.ɵɵpipe(2, "translate");
4662
- i0.ɵɵelementEnd();
4663
- } if (rf & 2) {
4664
- i0.ɵɵadvance();
4665
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(2, 1, "no_suggestions"), " ");
4666
- } }
4667
- function FilterComponent_Conditional_11_Template(rf, ctx) { if (rf & 1) {
4668
- i0.ɵɵelementStart(0, "div", null, 1)(2, "div");
4669
- i0.ɵɵtemplate(3, FilterComponent_Conditional_11_Conditional_3_Template, 2, 0)(4, FilterComponent_Conditional_11_Conditional_4_Template, 3, 3, "div", 19);
4670
- i0.ɵɵelementEnd()();
4671
- } if (rf & 2) {
4672
- const ctx_r2 = i0.ɵɵnextContext();
4673
- i0.ɵɵclassMap("dcf-dropdown " + (ctx_r2.options.length > 0 ? " dcf-active" : ""));
4674
- i0.ɵɵadvance(3);
4675
- i0.ɵɵconditional(ctx_r2.filteredOptions.length > 0 ? 3 : 4);
4676
- } }
4677
- function FilterComponent_Conditional_12_Template(rf, ctx) { if (rf & 1) {
4678
- const _r9 = i0.ɵɵgetCurrentView();
4679
- i0.ɵɵelementStart(0, "div", 10)(1, "ion-button", 12);
4680
- i0.ɵɵlistener("click", function FilterComponent_Conditional_12_Template_ion_button_click_1_listener() { i0.ɵɵrestoreView(_r9); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.clear()); });
4681
- i0.ɵɵelement(2, "ion-icon", 23);
4682
- i0.ɵɵelementEnd()();
4683
- } }
4684
- function FilterComponent_Conditional_16_Conditional_3_For_1_Template(rf, ctx) { if (rf & 1) {
4685
- const _r10 = i0.ɵɵgetCurrentView();
4686
- i0.ɵɵelementStart(0, "div", 21);
4687
- i0.ɵɵlistener("keydown.enter", function FilterComponent_Conditional_16_Conditional_3_For_1_Template_div_keydown_enter_0_listener() { const key_r11 = i0.ɵɵrestoreView(_r10).$implicit; const ctx_r2 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r2.selectOption(key_r11)); })("click", function FilterComponent_Conditional_16_Conditional_3_For_1_Template_div_click_0_listener() { const key_r11 = i0.ɵɵrestoreView(_r10).$implicit; const ctx_r2 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r2.selectOption(key_r11)); });
4688
- i0.ɵɵtext(1);
4689
- i0.ɵɵelementEnd();
4690
- } if (rf & 2) {
4691
- const key_r11 = ctx.$implicit;
4692
- i0.ɵɵadvance();
4693
- i0.ɵɵtextInterpolate1(" ", key_r11, " ");
4694
- } }
4695
- function FilterComponent_Conditional_16_Conditional_3_Template(rf, ctx) { if (rf & 1) {
4696
- i0.ɵɵrepeaterCreate(0, FilterComponent_Conditional_16_Conditional_3_For_1_Template, 2, 1, "div", 20, i0.ɵɵrepeaterTrackByIdentity);
4697
- } if (rf & 2) {
4698
- const ctx_r2 = i0.ɵɵnextContext(2);
4699
- i0.ɵɵrepeater(ctx_r2.filteredOptions);
4700
- } }
4701
- function FilterComponent_Conditional_16_Conditional_4_Template(rf, ctx) { if (rf & 1) {
4702
- const _r12 = i0.ɵɵgetCurrentView();
4703
- i0.ɵɵelementStart(0, "div", 22);
4704
- i0.ɵɵlistener("click", function FilterComponent_Conditional_16_Conditional_4_Template_div_click_0_listener() { i0.ɵɵrestoreView(_r12); const ctx_r2 = i0.ɵɵnextContext(2); ctx_r2.filteredOptions = ctx_r2.options; return i0.ɵɵresetView(ctx_r2.value = ""); })("keydown.enter", function FilterComponent_Conditional_16_Conditional_4_Template_div_keydown_enter_0_listener() { i0.ɵɵrestoreView(_r12); const ctx_r2 = i0.ɵɵnextContext(2); ctx_r2.filteredOptions = ctx_r2.options; return i0.ɵɵresetView(ctx_r2.value = ""); });
4705
- i0.ɵɵtext(1);
4706
- i0.ɵɵpipe(2, "translate");
4707
- i0.ɵɵelementEnd();
4708
- } if (rf & 2) {
4709
- i0.ɵɵadvance();
4710
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(2, 1, "no_suggestions"), " ");
4711
- } }
4712
- function FilterComponent_Conditional_16_Template(rf, ctx) { if (rf & 1) {
4713
- i0.ɵɵelementStart(0, "div", null, 1)(2, "div");
4714
- i0.ɵɵtemplate(3, FilterComponent_Conditional_16_Conditional_3_Template, 2, 0)(4, FilterComponent_Conditional_16_Conditional_4_Template, 3, 3, "div", 19);
4715
- i0.ɵɵelementEnd()();
4716
- } if (rf & 2) {
4717
- const ctx_r2 = i0.ɵɵnextContext();
4718
- i0.ɵɵclassMap("dcf-dropdown " + (ctx_r2.options.length > 0 ? " dcf-active" : ""));
4719
- i0.ɵɵadvance(3);
4720
- i0.ɵɵconditional(ctx_r2.filteredOptions.length > 0 ? 3 : 4);
4721
- } }
4722
- function FilterComponent_Conditional_17_For_5_Template(rf, ctx) { if (rf & 1) {
4723
- i0.ɵɵtext(0, " aa ");
4724
- i0.ɵɵelementStart(1, "ion-select-option", 26);
4725
- i0.ɵɵtext(2);
4726
- i0.ɵɵpipe(3, "translate");
4727
- i0.ɵɵelementEnd();
4728
- } if (rf & 2) {
4729
- const sort_r14 = ctx.$implicit;
4730
- i0.ɵɵadvance();
4731
- i0.ɵɵproperty("value", sort_r14);
4732
- i0.ɵɵadvance();
4733
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(3, 2, sort_r14));
4734
- } }
4735
- function FilterComponent_Conditional_17_Template(rf, ctx) { if (rf & 1) {
4736
- const _r13 = i0.ɵɵgetCurrentView();
4737
- i0.ɵɵelementStart(0, "div", 14)(1, "div", 24)(2, "div", 4)(3, "ion-select", 25);
4738
- i0.ɵɵlistener("ionChange", function FilterComponent_Conditional_17_Template_ion_select_ionChange_3_listener($event) { i0.ɵɵrestoreView(_r13); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.handleSortChange($event)); });
4739
- i0.ɵɵrepeaterCreate(4, FilterComponent_Conditional_17_For_5_Template, 4, 4, "ion-select-option", 26, i0.ɵɵrepeaterTrackByIdentity);
4740
- i0.ɵɵelementEnd()();
4741
- i0.ɵɵelementStart(6, "div", 27)(7, "ion-button", 28);
4742
- i0.ɵɵlistener("click", function FilterComponent_Conditional_17_Template_ion_button_click_7_listener() { i0.ɵɵrestoreView(_r13); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.handleSortDirectionChange()); });
4743
- i0.ɵɵelement(8, "ion-icon", 29);
4744
- i0.ɵɵelementEnd()()()();
4745
- } if (rf & 2) {
4746
- const ctx_r2 = i0.ɵɵnextContext();
4747
- i0.ɵɵadvance(3);
4748
- i0.ɵɵproperty("value", ctx_r2.sortValue);
4749
- i0.ɵɵadvance();
4750
- i0.ɵɵrepeater(ctx_r2.sortBy);
4751
- i0.ɵɵadvance(4);
4752
- i0.ɵɵproperty("name", ctx_r2.sortDirection === "desc" ? "arrow-down-outline" : "arrow-up-outline");
4753
- } }
4754
4146
  /**
4755
4147
  * @description Advanced filter component for creating dynamic search filters with step-by-step construction.
4756
4148
  * @summary This component provides a comprehensive filtering interface that allows users to build
@@ -5386,124 +4778,42 @@ let FilterComponent = class FilterComponent extends NgxBaseComponent {
5386
4778
  handleSearch(value) {
5387
4779
  this.searchEvent.emit(value);
5388
4780
  }
5389
- static { this.ɵfac = function FilterComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || FilterComponent)(); }; }
5390
- static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: FilterComponent, selectors: [["ngx-decaf-filter"]], viewQuery: function FilterComponent_Query(rf, ctx) { if (rf & 1) {
5391
- i0.ɵɵviewQuery(_c0$5, 5, ElementRef);
5392
- } if (rf & 2) {
5393
- let _t;
5394
- i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.optionsFilterElement = _t.first);
5395
- } }, inputs: { indexes: "indexes", conditions: "conditions", sortBy: "sortBy", disableSort: "disableSort" }, outputs: { filterEvent: "filterEvent", searchEvent: "searchEvent" }, standalone: true, features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature], decls: 18, vars: 13, consts: [["component", ""], ["optionsFilterElement", ""], [3, "emitEventToWindow", "debounce"], [1, "dcf-grid", "dcf-grid-small", "dcf-grid-match", "dcf-filter-grid", 3, "ngClass"], [1, "dcf-width-expand"], [1, "dcf-filter"], [1, "dcf-input"], [1, "dcf-width-1-1"], ["fill", "none", "type", "text", 3, "ngModelChange", "keydown.enter", "keydown.backspace", "input", "click", "blur", "ngModel", "readonly", "placeholder"], [3, "class"], [1, "dcf-icon-clear"], [1, "dcf-icon-search"], ["fill", "clear", "size", "small", 3, "click"], ["name", "search-outline", "color", "dark", "slot", "icon-only"], [1, "dcf-width-1-5@m", "dcf-width-1-1", "dcf-sort-container"], [3, "searchEvent", "emitEventToWindow", "debounce"], [3, "outline"], [1, "dcf-filter-value", 3, "outline"], ["name", "close", "size", "small", 3, "click"], ["tabindex", "0", 1, "dcf-empty"], ["tabindex", "0", 1, "dcf-item"], ["tabindex", "0", 1, "dcf-item", 3, "keydown.enter", "click"], ["tabindex", "0", 1, "dcf-empty", 3, "click", "keydown.enter"], ["name", "trash-outline", "color", "dark", "slot", "icon-only"], [1, "dcf-grid", "dcf-grid-collapse", "dcf-flex", "dcf-flex-middle", "dcf-grid-match"], ["toggleIcon", "chevron-down-outline", "expandedIcon", "chevron-up-outline", "interface", "popover", "label-placement", "floating", "fill", "outline", 1, "dcf-sort-select", 3, "ionChange", "value"], [3, "value"], [1, "dcf-width-auto"], ["fill", "clear", 3, "click"], ["slot", "icon-only", 3, "name"]], template: function FilterComponent_Template(rf, ctx) { if (rf & 1) {
5396
- const _r1 = i0.ɵɵgetCurrentView();
5397
- i0.ɵɵtemplate(0, FilterComponent_Conditional_0_Template, 1, 2, "ngx-decaf-searchbar", 2);
5398
- i0.ɵɵelementStart(1, "div", 3)(2, "div", 4)(3, "div", 5)(4, "div", 6);
5399
- i0.ɵɵrepeaterCreate(5, FilterComponent_For_6_Template, 3, 3, null, null, _forTrack0$1, true);
5400
- i0.ɵɵelementStart(7, "div", 7)(8, "input", 8, 0);
5401
- i0.ɵɵpipe(10, "translate");
5402
- i0.ɵɵtwoWayListener("ngModelChange", function FilterComponent_Template_input_ngModelChange_8_listener($event) { i0.ɵɵrestoreView(_r1); i0.ɵɵtwoWayBindingSet(ctx.value, $event) || (ctx.value = $event); return i0.ɵɵresetView($event); });
5403
- i0.ɵɵlistener("keydown.enter", function FilterComponent_Template_input_keydown_enter_8_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.addFilter(ctx.value, $event)); })("keydown.backspace", function FilterComponent_Template_input_keydown_backspace_8_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.clear(ctx.value)); })("input", function FilterComponent_Template_input_input_8_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.handleInput($event)); })("click", function FilterComponent_Template_input_click_8_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.handleFocus()); })("blur", function FilterComponent_Template_input_blur_8_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.handleBlur()); });
5404
- i0.ɵɵelementEnd();
5405
- i0.ɵɵtemplate(11, FilterComponent_Conditional_11_Template, 5, 3, "div", 9);
5406
- i0.ɵɵelementEnd()();
5407
- i0.ɵɵtemplate(12, FilterComponent_Conditional_12_Template, 3, 0, "div", 10);
5408
- i0.ɵɵelementStart(13, "div", 11)(14, "ion-button", 12);
5409
- i0.ɵɵlistener("click", function FilterComponent_Template_ion_button_click_14_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.submit()); });
5410
- i0.ɵɵelement(15, "ion-icon", 13);
5411
- i0.ɵɵelementEnd()()();
5412
- i0.ɵɵtemplate(16, FilterComponent_Conditional_16_Template, 5, 3, "div", 9);
5413
- i0.ɵɵelementEnd();
5414
- i0.ɵɵtemplate(17, FilterComponent_Conditional_17_Template, 9, 2, "div", 14);
5415
- i0.ɵɵelementEnd();
5416
- } if (rf & 2) {
5417
- i0.ɵɵconditional(!ctx.indexes.length ? 0 : -1);
5418
- i0.ɵɵadvance();
5419
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(11, _c1$4, !ctx.indexes.length));
5420
- i0.ɵɵadvance(4);
5421
- i0.ɵɵrepeater(ctx.filterValue);
5422
- i0.ɵɵadvance(3);
5423
- i0.ɵɵpropertyInterpolate("placeholder", i0.ɵɵpipeBind1(10, 9, ctx.locale + (ctx.step === 3 ? ".type" : ".select")));
5424
- i0.ɵɵtwoWayProperty("ngModel", ctx.value);
5425
- i0.ɵɵproperty("readonly", ctx.step !== 3);
5426
- i0.ɵɵadvance(3);
5427
- i0.ɵɵconditional(ctx.windowWidth >= 768 ? 11 : -1);
5428
- i0.ɵɵadvance();
5429
- i0.ɵɵconditional(ctx.filterValue.length > 0 ? 12 : -1);
5430
- i0.ɵɵadvance(4);
5431
- i0.ɵɵconditional(ctx.windowWidth < 768 ? 16 : -1);
5432
- i0.ɵɵadvance();
5433
- i0.ɵɵconditional(!ctx.disableSort ? 17 : -1);
5434
- } }, dependencies: [ForAngularModule, i1.IonButton, i2.NgClass, i2$1.DefaultValueAccessor, i2$1.NgControlStatus, i2$1.NgModel, i3.TranslatePipe, IonChip,
5435
- IonIcon,
5436
- IonSelect,
5437
- SearchbarComponent], styles: [".dcf-filter-grid[_ngcontent-%COMP%]{padding:0 .5rem;margin-top:.75rem;margin-bottom:.75rem}ion-select[_ngcontent-%COMP%]{min-height:44px!important}.dcf-hidden[_ngcontent-%COMP%]{display:none!important}.dcf-filter[_ngcontent-%COMP%]{display:flex;width:100%;min-height:40px;border:1px solid var(--ion-color-gray-3);box-shadow:0 1px 2px #0a0d120d;background-color:#fff;border-radius:var(--dcf-border-radius);box-sizing:border-box}.dcf-filter[_ngcontent-%COMP%]:focus-within{border-color:var(--ion-color-primary);background-color:#fff}.dcf-filter[_ngcontent-%COMP%] ion-chip[_ngcontent-%COMP%]{border-radius:6px;padding:0 8px!important;height:24px;min-height:24px;font-size:.75rem;border:1px solid var(--ion-color-gray-3);color:var(--ion-color-gray-7);font-style:normal;font-weight:500;flex-shrink:0;margin-right:2px;white-space:nowrap}.dcf-filter[_ngcontent-%COMP%] ion-chip.dcf-filter-value[_ngcontent-%COMP%]{background:var(--ion-color-gray-2);border-color:var(--ion-color-gray-4)!important;color:var(--ion-color-gray-8)!important}.dcf-filter[_ngcontent-%COMP%] ion-chip.sc-ion-chip-md-h[_ngcontent-%COMP%], .dcf-filter[_ngcontent-%COMP%] ion-chip.sc-ion-chip-ios-h[_ngcontent-%COMP%]{height:24px;min-height:24px}.dcf-filter[_ngcontent-%COMP%] ion-chip.sc-ion-chip-md-h[_ngcontent-%COMP%] .chip-native[_ngcontent-%COMP%], .dcf-filter[_ngcontent-%COMP%] ion-chip.sc-ion-chip-ios-h[_ngcontent-%COMP%] .chip-native[_ngcontent-%COMP%]{padding:0 8px!important;height:24px;min-height:24px}.dcf-filter[_ngcontent-%COMP%] ion-chip[_ngcontent-%COMP%] ion-label[_ngcontent-%COMP%]{padding:0 4px;margin:0;font-size:.75rem;white-space:nowrap}.dcf-filter[_ngcontent-%COMP%] ion-chip[_ngcontent-%COMP%] ion-icon[_ngcontent-%COMP%]{margin:0 2px;font-size:.75rem}.dcf-filter[_ngcontent-%COMP%] .dcf-input[_ngcontent-%COMP%]{width:100%;display:flex;align-items:center;overflow-x:auto;overflow-y:hidden;white-space:nowrap;padding-left:.5rem}.dcf-filter[_ngcontent-%COMP%] .dcf-input[_ngcontent-%COMP%] input[_ngcontent-%COMP%]{min-height:40px;color:var(--ion-color-gray-7);min-width:100px;width:100%;font-size:1rem;border:none;outline:none;background:transparent;border:0px!important;outline:none!important}.dcf-filter[_ngcontent-%COMP%] .dcf-input[_ngcontent-%COMP%] input[_ngcontent-%COMP%]:focus{border:0px!important;outline:none!important}.dcf-filter[_ngcontent-%COMP%] .dcf-icon-clear[_ngcontent-%COMP%], .dcf-filter[_ngcontent-%COMP%] .dcf-icon-search[_ngcontent-%COMP%]{display:flex;justify-content:center;text-align:center;align-items:center;min-width:40px}.dcf-filter[_ngcontent-%COMP%] .dcf-icon-search[_ngcontent-%COMP%] ion-icon[_ngcontent-%COMP%]{font-size:1.25rem}.dcf-sort-container[_ngcontent-%COMP%]{min-width:200px!important;width:auto}@media (min-width: 990px){.dcf-sort-container[_ngcontent-%COMP%]{max-width:20%!important}}@media (max-width: 680px){.dcf-sort-container[_ngcontent-%COMP%]{min-width:100%!important;margin:.75rem 0rem}}.dcf-dropdown[_ngcontent-%COMP%]{position:absolute;max-height:200px;overflow-y:auto;background-color:#fff;border-radius:4px;z-index:1000!important;min-width:200px;max-width:300px;display:none}.dcf-dropdown.dcf-active[_ngcontent-%COMP%]{display:block;margin-top:-3px;box-shadow:0 12px 16px -4px #0a0d1214,0 4px 6px -2px #0a0d1208,0 2px 2px -1px #0a0d120a!important;border:1px solid var(--ion-color-gray-2);border-radius:var(--dcf-border-radius);padding:.5rem .25rem}@media (max-width: 768px){.dcf-dropdown.dcf-active[_ngcontent-%COMP%]{margin-top:55px}}.dcf-dropdown.dcf-active[_ngcontent-%COMP%] > div[_ngcontent-%COMP%] > div[_ngcontent-%COMP%]{cursor:pointer;height:35px;padding:.5rem 1rem;border:1px solid transparent;font-size:1rem;display:flex;align-items:center;color:var(--ion-color-gray-8);border-radius:6px}.dcf-dropdown.dcf-active[_ngcontent-%COMP%] > div[_ngcontent-%COMP%] > div.dcf-filtering-item[_ngcontent-%COMP%], .dcf-dropdown.dcf-active[_ngcontent-%COMP%] > div[_ngcontent-%COMP%] > div[_ngcontent-%COMP%]:only-child{border-color:var(--ion-color-primary)}.dcf-dropdown.dcf-active[_ngcontent-%COMP%] > div[_ngcontent-%COMP%] > div.dcf-filtering-item.dcf-empty[_ngcontent-%COMP%], .dcf-dropdown.dcf-active[_ngcontent-%COMP%] > div[_ngcontent-%COMP%] > div[_ngcontent-%COMP%]:only-child.dcf-empty{border-color:var(--ion-color-gray-7)!important}.dcf-dropdown.dcf-active[_ngcontent-%COMP%] > div[_ngcontent-%COMP%] > div[_ngcontent-%COMP%]:hover{background-color:var(--ion-color-gray-1)}"] }); }
4781
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FilterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
4782
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: FilterComponent, isStandalone: true, selector: "ngx-decaf-filter", inputs: { indexes: "indexes", conditions: "conditions", sortBy: "sortBy", disableSort: "disableSort" }, outputs: { filterEvent: "filterEvent", searchEvent: "searchEvent" }, viewQueries: [{ propertyName: "optionsFilterElement", first: true, predicate: ["optionsFilterElement"], descendants: true, read: ElementRef }], usesInheritance: true, ngImport: i0, template: "\n@if(!indexes.length) {\n <ngx-decaf-searchbar [emitEventToWindow]=\"false\" [debounce]=\"500\" (searchEvent)=\"handleSearch($event)\" />\n}\n\n<div class=\"dcf-grid dcf-grid-small dcf-grid-match dcf-filter-grid\" [ngClass]=\"{'dcf-hidden': !indexes.length}\">\n <div class=\"dcf-width-expand\">\n <div class=\"dcf-filter\">\n <div class=\"dcf-input\">\n @for(filter of filterValue; track trackItemFn($index, filter?.['index'])) {\n @if(filter?.['index']) {\n <ion-chip [outline]=\"true\">{{ filter?.['index'] }}</ion-chip>\n }\n @if(filter?.['condition']) {\n <ion-chip [outline]=\"true\">{{ filter?.['condition'] }}</ion-chip>\n }\n @if(filter?.['value']) {\n <ion-chip [outline]=\"true\" class=\"dcf-filter-value\">\n {{ filter?.['value'] }}\n <ion-icon name=\"close\" (click)=\"removeFilter(filter?.['value'])\" size=\"small\"></ion-icon>\n </ion-chip>\n }\n }\n <div class=\"dcf-width-1-1\">\n <input\n fill=\"none\"\n [(ngModel)]=\"value\"\n (keydown.enter)=\"addFilter(value, $event)\"\n (keydown.backspace)=\"clear(value)\"\n (input)=\"handleInput($event)\"\n (click)=\"handleFocus()\"\n (blur)=\"handleBlur()\"\n type=\"text\"\n [readonly]=\"step !== 3\"\n placeholder=\"{{ locale + (step === 3 ? '.type' : '.select') | translate }}\"\n #component\n />\n @if(windowWidth >= 768) {\n <div [class]=\"'dcf-dropdown ' + (options.length > 0 ? ' dcf-active' : '')\" #optionsFilterElement>\n <div>\n @if(filteredOptions.length > 0) {\n @for(key of filteredOptions; track key) {\n <div\n class=\"dcf-item\"\n tabindex=\"0\"\n (keydown.enter)=\"selectOption(key)\"\n (click)=\"selectOption(key)\">\n {{ key }}\n </div>\n }\n } @else {\n <div class=\"dcf-empty\"\n (click)=\"filteredOptions = options; value = ''\"\n tabindex=\"0\"\n (keydown.enter)=\"filteredOptions = options; value = ''\"\n >\n {{ 'no_suggestions' | translate }}\n </div>\n }\n </div>\n </div>\n }\n </div>\n </div>\n @if(filterValue.length > 0) {\n <div class=\"dcf-icon-clear\">\n <ion-button fill=\"clear\" size=\"small\" (click)=\"clear()\">\n <ion-icon name=\"trash-outline\" color=\"dark\" slot=\"icon-only\"></ion-icon>\n </ion-button>\n </div>\n }\n <div class=\"dcf-icon-search\">\n <ion-button fill=\"clear\" size=\"small\" (click)=\"submit()\">\n <ion-icon name=\"search-outline\" color=\"dark\" slot=\"icon-only\"></ion-icon>\n </ion-button>\n </div>\n </div>\n @if(windowWidth < 768) {\n <div [class]=\"'dcf-dropdown ' + (options.length > 0 ? ' dcf-active' : '')\" #optionsFilterElement>\n <div>\n @if(filteredOptions.length > 0) {\n @for(key of filteredOptions; track key) {\n <div\n class=\"dcf-item\"\n tabindex=\"0\"\n (keydown.enter)=\"selectOption(key)\"\n (click)=\"selectOption(key)\">\n {{ key }}\n </div>\n }\n } @else {\n <div class=\"dcf-empty\"\n (click)=\"filteredOptions = options; value = ''\"\n tabindex=\"0\"\n (keydown.enter)=\"filteredOptions = options; value = ''\"\n >\n {{ 'no_suggestions' | translate }}\n </div>\n }\n </div>\n </div>\n }\n </div>\n @if(!disableSort) {\n <div class=\"dcf-width-1-5@m dcf-width-1-1 dcf-sort-container\">\n <div class=\"dcf-grid dcf-grid-collapse dcf-flex dcf-flex-middle dcf-grid-match\">\n <div class=\"dcf-width-expand\">\n <ion-select\n toggleIcon=\"chevron-down-outline\"\n expandedIcon=\"chevron-up-outline\"\n class=\"dcf-sort-select\"\n (ionChange)=\"handleSortChange($event)\"\n interface=\"popover\"\n [value]=\"sortValue\"\n label-placement=\"floating\"\n fill=\"outline\"\n >\n @for(sort of sortBy; track sort) {\n aa\n <ion-select-option [value]=\"sort\">{{ sort | translate }}</ion-select-option>\n }\n </ion-select>\n </div>\n <div class=\"dcf-width-auto\">\n <ion-button (click)=\"handleSortDirectionChange()\" fill=\"clear\">\n <ion-icon slot=\"icon-only\" [name]=\"sortDirection === 'desc' ? 'arrow-down-outline' : 'arrow-up-outline'\"></ion-icon>\n </ion-button>\n </div>\n </div>\n </div>\n }\n</div>\n\n\n", styles: [".dcf-filter-grid{padding:0 .5rem;margin-top:.75rem;margin-bottom:.75rem}ion-select{min-height:44px!important}.dcf-hidden{display:none!important}.dcf-filter{display:flex;width:100%;min-height:40px;border:1px solid var(--ion-color-gray-3);box-shadow:0 1px 2px #0a0d120d;background-color:#fff;border-radius:var(--dcf-border-radius);box-sizing:border-box}.dcf-filter:focus-within{border-color:var(--ion-color-primary);background-color:#fff}.dcf-filter ion-chip{border-radius:6px;padding:0 8px!important;height:24px;min-height:24px;font-size:.75rem;border:1px solid var(--ion-color-gray-3);color:var(--ion-color-gray-7);font-style:normal;font-weight:500;flex-shrink:0;margin-right:2px;white-space:nowrap}.dcf-filter ion-chip.dcf-filter-value{background:var(--ion-color-gray-2);border-color:var(--ion-color-gray-4)!important;color:var(--ion-color-gray-8)!important}.dcf-filter ion-chip.sc-ion-chip-md-h,.dcf-filter ion-chip.sc-ion-chip-ios-h{height:24px;min-height:24px}.dcf-filter ion-chip.sc-ion-chip-md-h .chip-native,.dcf-filter ion-chip.sc-ion-chip-ios-h .chip-native{padding:0 8px!important;height:24px;min-height:24px}.dcf-filter ion-chip ion-label{padding:0 4px;margin:0;font-size:.75rem;white-space:nowrap}.dcf-filter ion-chip ion-icon{margin:0 2px;font-size:.75rem}.dcf-filter .dcf-input{width:100%;display:flex;align-items:center;overflow-x:auto;overflow-y:hidden;white-space:nowrap;padding-left:.5rem}.dcf-filter .dcf-input input{min-height:40px;color:var(--ion-color-gray-7);min-width:100px;width:100%;font-size:1rem;border:none;outline:none;background:transparent;border:0px!important;outline:none!important}.dcf-filter .dcf-input input:focus{border:0px!important;outline:none!important}.dcf-filter .dcf-icon-clear,.dcf-filter .dcf-icon-search{display:flex;justify-content:center;text-align:center;align-items:center;min-width:40px}.dcf-filter .dcf-icon-search ion-icon{font-size:1.25rem}.dcf-sort-container{min-width:200px!important;width:auto}@media (min-width: 990px){.dcf-sort-container{max-width:20%!important}}@media (max-width: 680px){.dcf-sort-container{min-width:100%!important;margin:.75rem 0rem}}.dcf-dropdown{position:absolute;max-height:200px;overflow-y:auto;background-color:#fff;border-radius:4px;z-index:1000!important;min-width:200px;max-width:300px;display:none}.dcf-dropdown.dcf-active{display:block;margin-top:-3px;box-shadow:0 12px 16px -4px #0a0d1214,0 4px 6px -2px #0a0d1208,0 2px 2px -1px #0a0d120a!important;border:1px solid var(--ion-color-gray-2);border-radius:var(--dcf-border-radius);padding:.5rem .25rem}@media (max-width: 768px){.dcf-dropdown.dcf-active{margin-top:55px}}.dcf-dropdown.dcf-active>div>div{cursor:pointer;height:35px;padding:.5rem 1rem;border:1px solid transparent;font-size:1rem;display:flex;align-items:center;color:var(--ion-color-gray-8);border-radius:6px}.dcf-dropdown.dcf-active>div>div.dcf-filtering-item,.dcf-dropdown.dcf-active>div>div:only-child{border-color:var(--ion-color-primary)}.dcf-dropdown.dcf-active>div>div.dcf-filtering-item.dcf-empty,.dcf-dropdown.dcf-active>div>div:only-child.dcf-empty{border-color:var(--ion-color-gray-7)!important}.dcf-dropdown.dcf-active>div>div:hover{background-color:var(--ion-color-gray-1)}\n"], dependencies: [{ kind: "ngmodule", type: ForAngularModule }, { kind: "component", type: i1.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2$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: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }, { kind: "component", type: IonChip, selector: "ion-chip", inputs: ["color", "disabled", "mode", "outline"] }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: IonSelect, selector: "ion-select", inputs: ["cancelText", "color", "compareWith", "disabled", "errorText", "expandedIcon", "fill", "helperText", "interface", "interfaceOptions", "justify", "label", "labelPlacement", "mode", "multiple", "name", "okText", "placeholder", "selectedText", "shape", "toggleIcon", "value"] }, { kind: "component", type: SearchbarComponent, selector: "ngx-decaf-searchbar", inputs: ["autocomplete", "autocorrect", "animated", "buttonCancelText", "clearIcon", "color", "debounce", "disabled", "enterkeyhint", "inputmode", "placeholder", "searchIcon", "showCancelButton", "showClearButton", "spellcheck", "type", "value", "queryKeys", "isVisible", "wrapper", "wrapperColor", "emitEventToWindow"], outputs: ["searchEvent"] }] }); }
5438
4783
  };
5439
4784
  FilterComponent = __decorate([
5440
4785
  Dynamic(),
5441
4786
  __metadata("design:paramtypes", [])
5442
4787
  ], FilterComponent);
5443
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(FilterComponent, [{
5444
- type: Component,
5445
- args: [{ selector: 'ngx-decaf-filter', imports: [
5446
- ForAngularModule,
5447
- IonLabel,
5448
- IonItem,
5449
- IonChip,
5450
- IonIcon,
5451
- IonSelect,
5452
- IonIcon,
5453
- SearchbarComponent
5454
- ], standalone: true, template: "\n@if(!indexes.length) {\n <ngx-decaf-searchbar [emitEventToWindow]=\"false\" [debounce]=\"500\" (searchEvent)=\"handleSearch($event)\" />\n}\n\n<div class=\"dcf-grid dcf-grid-small dcf-grid-match dcf-filter-grid\" [ngClass]=\"{'dcf-hidden': !indexes.length}\">\n <div class=\"dcf-width-expand\">\n <div class=\"dcf-filter\">\n <div class=\"dcf-input\">\n @for(filter of filterValue; track trackItemFn($index, filter?.['index'])) {\n @if(filter?.['index']) {\n <ion-chip [outline]=\"true\">{{ filter?.['index'] }}</ion-chip>\n }\n @if(filter?.['condition']) {\n <ion-chip [outline]=\"true\">{{ filter?.['condition'] }}</ion-chip>\n }\n @if(filter?.['value']) {\n <ion-chip [outline]=\"true\" class=\"dcf-filter-value\">\n {{ filter?.['value'] }}\n <ion-icon name=\"close\" (click)=\"removeFilter(filter?.['value'])\" size=\"small\"></ion-icon>\n </ion-chip>\n }\n }\n <div class=\"dcf-width-1-1\">\n <input\n fill=\"none\"\n [(ngModel)]=\"value\"\n (keydown.enter)=\"addFilter(value, $event)\"\n (keydown.backspace)=\"clear(value)\"\n (input)=\"handleInput($event)\"\n (click)=\"handleFocus()\"\n (blur)=\"handleBlur()\"\n type=\"text\"\n [readonly]=\"step !== 3\"\n placeholder=\"{{ locale + (step === 3 ? '.type' : '.select') | translate }}\"\n #component\n />\n @if(windowWidth >= 768) {\n <div [class]=\"'dcf-dropdown ' + (options.length > 0 ? ' dcf-active' : '')\" #optionsFilterElement>\n <div>\n @if(filteredOptions.length > 0) {\n @for(key of filteredOptions; track key) {\n <div\n class=\"dcf-item\"\n tabindex=\"0\"\n (keydown.enter)=\"selectOption(key)\"\n (click)=\"selectOption(key)\">\n {{ key }}\n </div>\n }\n } @else {\n <div class=\"dcf-empty\"\n (click)=\"filteredOptions = options; value = ''\"\n tabindex=\"0\"\n (keydown.enter)=\"filteredOptions = options; value = ''\"\n >\n {{ 'no_suggestions' | translate }}\n </div>\n }\n </div>\n </div>\n }\n </div>\n </div>\n @if(filterValue.length > 0) {\n <div class=\"dcf-icon-clear\">\n <ion-button fill=\"clear\" size=\"small\" (click)=\"clear()\">\n <ion-icon name=\"trash-outline\" color=\"dark\" slot=\"icon-only\"></ion-icon>\n </ion-button>\n </div>\n }\n <div class=\"dcf-icon-search\">\n <ion-button fill=\"clear\" size=\"small\" (click)=\"submit()\">\n <ion-icon name=\"search-outline\" color=\"dark\" slot=\"icon-only\"></ion-icon>\n </ion-button>\n </div>\n </div>\n @if(windowWidth < 768) {\n <div [class]=\"'dcf-dropdown ' + (options.length > 0 ? ' dcf-active' : '')\" #optionsFilterElement>\n <div>\n @if(filteredOptions.length > 0) {\n @for(key of filteredOptions; track key) {\n <div\n class=\"dcf-item\"\n tabindex=\"0\"\n (keydown.enter)=\"selectOption(key)\"\n (click)=\"selectOption(key)\">\n {{ key }}\n </div>\n }\n } @else {\n <div class=\"dcf-empty\"\n (click)=\"filteredOptions = options; value = ''\"\n tabindex=\"0\"\n (keydown.enter)=\"filteredOptions = options; value = ''\"\n >\n {{ 'no_suggestions' | translate }}\n </div>\n }\n </div>\n </div>\n }\n </div>\n @if(!disableSort) {\n <div class=\"dcf-width-1-5@m dcf-width-1-1 dcf-sort-container\">\n <div class=\"dcf-grid dcf-grid-collapse dcf-flex dcf-flex-middle dcf-grid-match\">\n <div class=\"dcf-width-expand\">\n <ion-select\n toggleIcon=\"chevron-down-outline\"\n expandedIcon=\"chevron-up-outline\"\n class=\"dcf-sort-select\"\n (ionChange)=\"handleSortChange($event)\"\n interface=\"popover\"\n [value]=\"sortValue\"\n label-placement=\"floating\"\n fill=\"outline\"\n >\n @for(sort of sortBy; track sort) {\n aa\n <ion-select-option [value]=\"sort\">{{ sort | translate }}</ion-select-option>\n }\n </ion-select>\n </div>\n <div class=\"dcf-width-auto\">\n <ion-button (click)=\"handleSortDirectionChange()\" fill=\"clear\">\n <ion-icon slot=\"icon-only\" [name]=\"sortDirection === 'desc' ? 'arrow-down-outline' : 'arrow-up-outline'\"></ion-icon>\n </ion-button>\n </div>\n </div>\n </div>\n }\n</div>\n\n\n", styles: [".dcf-filter-grid{padding:0 .5rem;margin-top:.75rem;margin-bottom:.75rem}ion-select{min-height:44px!important}.dcf-hidden{display:none!important}.dcf-filter{display:flex;width:100%;min-height:40px;border:1px solid var(--ion-color-gray-3);box-shadow:0 1px 2px #0a0d120d;background-color:#fff;border-radius:var(--dcf-border-radius);box-sizing:border-box}.dcf-filter:focus-within{border-color:var(--ion-color-primary);background-color:#fff}.dcf-filter ion-chip{border-radius:6px;padding:0 8px!important;height:24px;min-height:24px;font-size:.75rem;border:1px solid var(--ion-color-gray-3);color:var(--ion-color-gray-7);font-style:normal;font-weight:500;flex-shrink:0;margin-right:2px;white-space:nowrap}.dcf-filter ion-chip.dcf-filter-value{background:var(--ion-color-gray-2);border-color:var(--ion-color-gray-4)!important;color:var(--ion-color-gray-8)!important}.dcf-filter ion-chip.sc-ion-chip-md-h,.dcf-filter ion-chip.sc-ion-chip-ios-h{height:24px;min-height:24px}.dcf-filter ion-chip.sc-ion-chip-md-h .chip-native,.dcf-filter ion-chip.sc-ion-chip-ios-h .chip-native{padding:0 8px!important;height:24px;min-height:24px}.dcf-filter ion-chip ion-label{padding:0 4px;margin:0;font-size:.75rem;white-space:nowrap}.dcf-filter ion-chip ion-icon{margin:0 2px;font-size:.75rem}.dcf-filter .dcf-input{width:100%;display:flex;align-items:center;overflow-x:auto;overflow-y:hidden;white-space:nowrap;padding-left:.5rem}.dcf-filter .dcf-input input{min-height:40px;color:var(--ion-color-gray-7);min-width:100px;width:100%;font-size:1rem;border:none;outline:none;background:transparent;border:0px!important;outline:none!important}.dcf-filter .dcf-input input:focus{border:0px!important;outline:none!important}.dcf-filter .dcf-icon-clear,.dcf-filter .dcf-icon-search{display:flex;justify-content:center;text-align:center;align-items:center;min-width:40px}.dcf-filter .dcf-icon-search ion-icon{font-size:1.25rem}.dcf-sort-container{min-width:200px!important;width:auto}@media (min-width: 990px){.dcf-sort-container{max-width:20%!important}}@media (max-width: 680px){.dcf-sort-container{min-width:100%!important;margin:.75rem 0rem}}.dcf-dropdown{position:absolute;max-height:200px;overflow-y:auto;background-color:#fff;border-radius:4px;z-index:1000!important;min-width:200px;max-width:300px;display:none}.dcf-dropdown.dcf-active{display:block;margin-top:-3px;box-shadow:0 12px 16px -4px #0a0d1214,0 4px 6px -2px #0a0d1208,0 2px 2px -1px #0a0d120a!important;border:1px solid var(--ion-color-gray-2);border-radius:var(--dcf-border-radius);padding:.5rem .25rem}@media (max-width: 768px){.dcf-dropdown.dcf-active{margin-top:55px}}.dcf-dropdown.dcf-active>div>div{cursor:pointer;height:35px;padding:.5rem 1rem;border:1px solid transparent;font-size:1rem;display:flex;align-items:center;color:var(--ion-color-gray-8);border-radius:6px}.dcf-dropdown.dcf-active>div>div.dcf-filtering-item,.dcf-dropdown.dcf-active>div>div:only-child{border-color:var(--ion-color-primary)}.dcf-dropdown.dcf-active>div>div.dcf-filtering-item.dcf-empty,.dcf-dropdown.dcf-active>div>div:only-child.dcf-empty{border-color:var(--ion-color-gray-7)!important}.dcf-dropdown.dcf-active>div>div:hover{background-color:var(--ion-color-gray-1)}\n"] }]
5455
- }], () => [], { optionsFilterElement: [{
5456
- type: ViewChild,
5457
- args: ['optionsFilterElement', { read: ElementRef, static: false }]
5458
- }], indexes: [{
5459
- type: Input
5460
- }], conditions: [{
5461
- type: Input
5462
- }], sortBy: [{
5463
- type: Input
5464
- }], disableSort: [{
5465
- type: Input
5466
- }], filterEvent: [{
5467
- type: Output
5468
- }], searchEvent: [{
5469
- type: Output
5470
- }] }); })();
5471
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(FilterComponent, { className: "FilterComponent", filePath: "components/filter/filter.component.ts", lineNumber: 72 }); })();
4788
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FilterComponent, decorators: [{
4789
+ type: Component,
4790
+ args: [{ selector: 'ngx-decaf-filter', imports: [
4791
+ ForAngularModule,
4792
+ IonLabel,
4793
+ IonItem,
4794
+ IonChip,
4795
+ IonIcon,
4796
+ IonSelect,
4797
+ IonIcon,
4798
+ SearchbarComponent
4799
+ ], standalone: true, template: "\n@if(!indexes.length) {\n <ngx-decaf-searchbar [emitEventToWindow]=\"false\" [debounce]=\"500\" (searchEvent)=\"handleSearch($event)\" />\n}\n\n<div class=\"dcf-grid dcf-grid-small dcf-grid-match dcf-filter-grid\" [ngClass]=\"{'dcf-hidden': !indexes.length}\">\n <div class=\"dcf-width-expand\">\n <div class=\"dcf-filter\">\n <div class=\"dcf-input\">\n @for(filter of filterValue; track trackItemFn($index, filter?.['index'])) {\n @if(filter?.['index']) {\n <ion-chip [outline]=\"true\">{{ filter?.['index'] }}</ion-chip>\n }\n @if(filter?.['condition']) {\n <ion-chip [outline]=\"true\">{{ filter?.['condition'] }}</ion-chip>\n }\n @if(filter?.['value']) {\n <ion-chip [outline]=\"true\" class=\"dcf-filter-value\">\n {{ filter?.['value'] }}\n <ion-icon name=\"close\" (click)=\"removeFilter(filter?.['value'])\" size=\"small\"></ion-icon>\n </ion-chip>\n }\n }\n <div class=\"dcf-width-1-1\">\n <input\n fill=\"none\"\n [(ngModel)]=\"value\"\n (keydown.enter)=\"addFilter(value, $event)\"\n (keydown.backspace)=\"clear(value)\"\n (input)=\"handleInput($event)\"\n (click)=\"handleFocus()\"\n (blur)=\"handleBlur()\"\n type=\"text\"\n [readonly]=\"step !== 3\"\n placeholder=\"{{ locale + (step === 3 ? '.type' : '.select') | translate }}\"\n #component\n />\n @if(windowWidth >= 768) {\n <div [class]=\"'dcf-dropdown ' + (options.length > 0 ? ' dcf-active' : '')\" #optionsFilterElement>\n <div>\n @if(filteredOptions.length > 0) {\n @for(key of filteredOptions; track key) {\n <div\n class=\"dcf-item\"\n tabindex=\"0\"\n (keydown.enter)=\"selectOption(key)\"\n (click)=\"selectOption(key)\">\n {{ key }}\n </div>\n }\n } @else {\n <div class=\"dcf-empty\"\n (click)=\"filteredOptions = options; value = ''\"\n tabindex=\"0\"\n (keydown.enter)=\"filteredOptions = options; value = ''\"\n >\n {{ 'no_suggestions' | translate }}\n </div>\n }\n </div>\n </div>\n }\n </div>\n </div>\n @if(filterValue.length > 0) {\n <div class=\"dcf-icon-clear\">\n <ion-button fill=\"clear\" size=\"small\" (click)=\"clear()\">\n <ion-icon name=\"trash-outline\" color=\"dark\" slot=\"icon-only\"></ion-icon>\n </ion-button>\n </div>\n }\n <div class=\"dcf-icon-search\">\n <ion-button fill=\"clear\" size=\"small\" (click)=\"submit()\">\n <ion-icon name=\"search-outline\" color=\"dark\" slot=\"icon-only\"></ion-icon>\n </ion-button>\n </div>\n </div>\n @if(windowWidth < 768) {\n <div [class]=\"'dcf-dropdown ' + (options.length > 0 ? ' dcf-active' : '')\" #optionsFilterElement>\n <div>\n @if(filteredOptions.length > 0) {\n @for(key of filteredOptions; track key) {\n <div\n class=\"dcf-item\"\n tabindex=\"0\"\n (keydown.enter)=\"selectOption(key)\"\n (click)=\"selectOption(key)\">\n {{ key }}\n </div>\n }\n } @else {\n <div class=\"dcf-empty\"\n (click)=\"filteredOptions = options; value = ''\"\n tabindex=\"0\"\n (keydown.enter)=\"filteredOptions = options; value = ''\"\n >\n {{ 'no_suggestions' | translate }}\n </div>\n }\n </div>\n </div>\n }\n </div>\n @if(!disableSort) {\n <div class=\"dcf-width-1-5@m dcf-width-1-1 dcf-sort-container\">\n <div class=\"dcf-grid dcf-grid-collapse dcf-flex dcf-flex-middle dcf-grid-match\">\n <div class=\"dcf-width-expand\">\n <ion-select\n toggleIcon=\"chevron-down-outline\"\n expandedIcon=\"chevron-up-outline\"\n class=\"dcf-sort-select\"\n (ionChange)=\"handleSortChange($event)\"\n interface=\"popover\"\n [value]=\"sortValue\"\n label-placement=\"floating\"\n fill=\"outline\"\n >\n @for(sort of sortBy; track sort) {\n aa\n <ion-select-option [value]=\"sort\">{{ sort | translate }}</ion-select-option>\n }\n </ion-select>\n </div>\n <div class=\"dcf-width-auto\">\n <ion-button (click)=\"handleSortDirectionChange()\" fill=\"clear\">\n <ion-icon slot=\"icon-only\" [name]=\"sortDirection === 'desc' ? 'arrow-down-outline' : 'arrow-up-outline'\"></ion-icon>\n </ion-button>\n </div>\n </div>\n </div>\n }\n</div>\n\n\n", styles: [".dcf-filter-grid{padding:0 .5rem;margin-top:.75rem;margin-bottom:.75rem}ion-select{min-height:44px!important}.dcf-hidden{display:none!important}.dcf-filter{display:flex;width:100%;min-height:40px;border:1px solid var(--ion-color-gray-3);box-shadow:0 1px 2px #0a0d120d;background-color:#fff;border-radius:var(--dcf-border-radius);box-sizing:border-box}.dcf-filter:focus-within{border-color:var(--ion-color-primary);background-color:#fff}.dcf-filter ion-chip{border-radius:6px;padding:0 8px!important;height:24px;min-height:24px;font-size:.75rem;border:1px solid var(--ion-color-gray-3);color:var(--ion-color-gray-7);font-style:normal;font-weight:500;flex-shrink:0;margin-right:2px;white-space:nowrap}.dcf-filter ion-chip.dcf-filter-value{background:var(--ion-color-gray-2);border-color:var(--ion-color-gray-4)!important;color:var(--ion-color-gray-8)!important}.dcf-filter ion-chip.sc-ion-chip-md-h,.dcf-filter ion-chip.sc-ion-chip-ios-h{height:24px;min-height:24px}.dcf-filter ion-chip.sc-ion-chip-md-h .chip-native,.dcf-filter ion-chip.sc-ion-chip-ios-h .chip-native{padding:0 8px!important;height:24px;min-height:24px}.dcf-filter ion-chip ion-label{padding:0 4px;margin:0;font-size:.75rem;white-space:nowrap}.dcf-filter ion-chip ion-icon{margin:0 2px;font-size:.75rem}.dcf-filter .dcf-input{width:100%;display:flex;align-items:center;overflow-x:auto;overflow-y:hidden;white-space:nowrap;padding-left:.5rem}.dcf-filter .dcf-input input{min-height:40px;color:var(--ion-color-gray-7);min-width:100px;width:100%;font-size:1rem;border:none;outline:none;background:transparent;border:0px!important;outline:none!important}.dcf-filter .dcf-input input:focus{border:0px!important;outline:none!important}.dcf-filter .dcf-icon-clear,.dcf-filter .dcf-icon-search{display:flex;justify-content:center;text-align:center;align-items:center;min-width:40px}.dcf-filter .dcf-icon-search ion-icon{font-size:1.25rem}.dcf-sort-container{min-width:200px!important;width:auto}@media (min-width: 990px){.dcf-sort-container{max-width:20%!important}}@media (max-width: 680px){.dcf-sort-container{min-width:100%!important;margin:.75rem 0rem}}.dcf-dropdown{position:absolute;max-height:200px;overflow-y:auto;background-color:#fff;border-radius:4px;z-index:1000!important;min-width:200px;max-width:300px;display:none}.dcf-dropdown.dcf-active{display:block;margin-top:-3px;box-shadow:0 12px 16px -4px #0a0d1214,0 4px 6px -2px #0a0d1208,0 2px 2px -1px #0a0d120a!important;border:1px solid var(--ion-color-gray-2);border-radius:var(--dcf-border-radius);padding:.5rem .25rem}@media (max-width: 768px){.dcf-dropdown.dcf-active{margin-top:55px}}.dcf-dropdown.dcf-active>div>div{cursor:pointer;height:35px;padding:.5rem 1rem;border:1px solid transparent;font-size:1rem;display:flex;align-items:center;color:var(--ion-color-gray-8);border-radius:6px}.dcf-dropdown.dcf-active>div>div.dcf-filtering-item,.dcf-dropdown.dcf-active>div>div:only-child{border-color:var(--ion-color-primary)}.dcf-dropdown.dcf-active>div>div.dcf-filtering-item.dcf-empty,.dcf-dropdown.dcf-active>div>div:only-child.dcf-empty{border-color:var(--ion-color-gray-7)!important}.dcf-dropdown.dcf-active>div>div:hover{background-color:var(--ion-color-gray-1)}\n"] }]
4800
+ }], ctorParameters: () => [], propDecorators: { optionsFilterElement: [{
4801
+ type: ViewChild,
4802
+ args: ['optionsFilterElement', { read: ElementRef, static: false }]
4803
+ }], indexes: [{
4804
+ type: Input
4805
+ }], conditions: [{
4806
+ type: Input
4807
+ }], sortBy: [{
4808
+ type: Input
4809
+ }], disableSort: [{
4810
+ type: Input
4811
+ }], filterEvent: [{
4812
+ type: Output
4813
+ }], searchEvent: [{
4814
+ type: Output
4815
+ }] } });
5472
4816
 
5473
- const _c0$4 = ["inner"];
5474
- const _c1$3 = ["componentOuter"];
5475
- function ModelRendererComponent_ng_template_0_Template(rf, ctx) { }
5476
- function ModelRendererComponent_ng_template_2_For_2_Conditional_0_Template(rf, ctx) { if (rf & 1) {
5477
- i0.ɵɵelement(0, "ngx-decaf-component-renderer", 4);
5478
- } if (rf & 2) {
5479
- const child_r1 = i0.ɵɵnextContext().$implicit;
5480
- i0.ɵɵproperty("parent", child_r1);
5481
- } }
5482
- function ModelRendererComponent_ng_template_2_For_2_Conditional_1_ng_container_0_Template(rf, ctx) { if (rf & 1) {
5483
- i0.ɵɵelementContainer(0, null, 2);
5484
- } }
5485
- function ModelRendererComponent_ng_template_2_For_2_Conditional_1_Template(rf, ctx) { if (rf & 1) {
5486
- i0.ɵɵtemplate(0, ModelRendererComponent_ng_template_2_For_2_Conditional_1_ng_container_0_Template, 2, 0, "ng-container", 5);
5487
- } if (rf & 2) {
5488
- const child_r1 = i0.ɵɵnextContext().$implicit;
5489
- i0.ɵɵproperty("ngComponentOutlet", child_r1.component)("ngComponentOutletInjector", child_r1.injector)("ngComponentOutletInputs", child_r1.inputs)("ngComponentOutletContent", child_r1.content);
5490
- } }
5491
- function ModelRendererComponent_ng_template_2_For_2_Template(rf, ctx) { if (rf & 1) {
5492
- i0.ɵɵtemplate(0, ModelRendererComponent_ng_template_2_For_2_Conditional_0_Template, 1, 1, "ngx-decaf-component-renderer", 4)(1, ModelRendererComponent_ng_template_2_For_2_Conditional_1_Template, 1, 4, "ng-container");
5493
- } if (rf & 2) {
5494
- const child_r1 = ctx.$implicit;
5495
- i0.ɵɵconditional((child_r1 == null ? null : child_r1.children == null ? null : child_r1.children.length) ? 0 : 1);
5496
- } }
5497
- function ModelRendererComponent_ng_template_2_Template(rf, ctx) { if (rf & 1) {
5498
- i0.ɵɵelementStart(0, "div", 3);
5499
- i0.ɵɵrepeaterCreate(1, ModelRendererComponent_ng_template_2_For_2_Template, 2, 1, null, null, i0.ɵɵrepeaterTrackByIdentity);
5500
- i0.ɵɵelementEnd();
5501
- } if (rf & 2) {
5502
- const ctx_r1 = i0.ɵɵnextContext();
5503
- i0.ɵɵproperty("id", ctx_r1.rendererId || null);
5504
- i0.ɵɵadvance();
5505
- i0.ɵɵrepeater(ctx_r1.output == null ? null : ctx_r1.output.children);
5506
- } }
5507
4817
  /**
5508
4818
  * @description Component for rendering dynamic models
5509
4819
  * @summary This component is responsible for dynamically rendering models,
@@ -5611,103 +4921,29 @@ class ModelRendererComponent {
5611
4921
  }
5612
4922
  }
5613
4923
  }
5614
- static { this.ɵfac = function ModelRendererComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || ModelRendererComponent)(); }; }
5615
- static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ModelRendererComponent, selectors: [["ngx-decaf-model-renderer"]], viewQuery: function ModelRendererComponent_Query(rf, ctx) { if (rf & 1) {
5616
- i0.ɵɵviewQuery(_c0$4, 7, TemplateRef);
5617
- i0.ɵɵviewQuery(_c1$3, 7, ViewContainerRef);
5618
- } if (rf & 2) {
5619
- let _t;
5620
- i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.inner = _t.first);
5621
- i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.vcr = _t.first);
5622
- } }, inputs: { model: "model", globals: "globals", rendererId: "rendererId" }, outputs: { listenEvent: "listenEvent" }, standalone: true, features: [i0.ɵɵNgOnChangesFeature, i0.ɵɵStandaloneFeature], decls: 4, vars: 0, consts: [["componentOuter", ""], ["inner", ""], ["childComponents", ""], [3, "id"], [3, "parent"], [4, "ngComponentOutlet", "ngComponentOutletInjector", "ngComponentOutletInputs", "ngComponentOutletContent"]], template: function ModelRendererComponent_Template(rf, ctx) { if (rf & 1) {
5623
- i0.ɵɵtemplate(0, ModelRendererComponent_ng_template_0_Template, 0, 0, "ng-template", null, 0, i0.ɵɵtemplateRefExtractor)(2, ModelRendererComponent_ng_template_2_Template, 3, 1, "ng-template", null, 1, i0.ɵɵtemplateRefExtractor);
5624
- } }, dependencies: [ForAngularModule, i2.NgComponentOutlet, ComponentRendererComponent] }); }
4924
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ModelRendererComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
4925
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: ModelRendererComponent, isStandalone: true, selector: "ngx-decaf-model-renderer", inputs: { model: "model", globals: "globals", rendererId: "rendererId" }, outputs: { listenEvent: "listenEvent" }, viewQueries: [{ propertyName: "inner", first: true, predicate: ["inner"], descendants: true, read: TemplateRef, static: true }, { propertyName: "vcr", first: true, predicate: ["componentOuter"], descendants: true, read: ViewContainerRef, static: true }], usesOnChanges: true, ngImport: i0, template: " <ng-template #componentOuter></ng-template>\n <ng-template #inner>\n <div [id]=\"rendererId || null\">\n @for (child of output?.children; track child) {\n @if(child?.children?.length) {\n <ngx-decaf-component-renderer [parent]=\"child\" />\n } @else {\n <ng-container\n #childComponents\n *ngComponentOutlet=\"\n child.component;\n injector: child.injector;\n inputs: child.inputs;\n content:child.content;\n \"\n />\n }\n }\n </div>\n </ng-template>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: ForAngularModule }, { kind: "directive", type: i2.NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"] }, { kind: "component", type: ComponentRendererComponent, selector: "ngx-decaf-component-renderer", inputs: ["tag", "globals", "model", "parent"], outputs: ["listenEvent"] }] }); }
5625
4926
  }
5626
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ModelRendererComponent, [{
5627
- type: Component,
5628
- args: [{ standalone: true, imports: [ForAngularModule, NgComponentOutlet, ComponentRendererComponent], selector: 'ngx-decaf-model-renderer', template: " <ng-template #componentOuter></ng-template>\n <ng-template #inner>\n <div [id]=\"rendererId || null\">\n @for (child of output?.children; track child) {\n @if(child?.children?.length) {\n <ngx-decaf-component-renderer [parent]=\"child\" />\n } @else {\n <ng-container\n #childComponents\n *ngComponentOutlet=\"\n child.component;\n injector: child.injector;\n inputs: child.inputs;\n content:child.content;\n \"\n />\n }\n }\n </div>\n </ng-template>\n" }]
5629
- }], null, { model: [{
5630
- type: Input,
5631
- args: [{ required: true }]
5632
- }], globals: [{
5633
- type: Input
5634
- }], inner: [{
5635
- type: ViewChild,
5636
- args: ['inner', { read: TemplateRef, static: true }]
5637
- }], rendererId: [{
5638
- type: Input
5639
- }], vcr: [{
5640
- type: ViewChild,
5641
- args: ['componentOuter', { static: true, read: ViewContainerRef }]
5642
- }], listenEvent: [{
5643
- type: Output
5644
- }] }); })();
5645
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ModelRendererComponent, { className: "ModelRendererComponent", filePath: "components/model-renderer/model-renderer.component.ts", lineNumber: 65 }); })();
4927
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ModelRendererComponent, decorators: [{
4928
+ type: Component,
4929
+ args: [{ standalone: true, imports: [ForAngularModule, NgComponentOutlet, ComponentRendererComponent], selector: 'ngx-decaf-model-renderer', template: " <ng-template #componentOuter></ng-template>\n <ng-template #inner>\n <div [id]=\"rendererId || null\">\n @for (child of output?.children; track child) {\n @if(child?.children?.length) {\n <ngx-decaf-component-renderer [parent]=\"child\" />\n } @else {\n <ng-container\n #childComponents\n *ngComponentOutlet=\"\n child.component;\n injector: child.injector;\n inputs: child.inputs;\n content:child.content;\n \"\n />\n }\n }\n </div>\n </ng-template>\n" }]
4930
+ }], propDecorators: { model: [{
4931
+ type: Input,
4932
+ args: [{ required: true }]
4933
+ }], globals: [{
4934
+ type: Input
4935
+ }], inner: [{
4936
+ type: ViewChild,
4937
+ args: ['inner', { read: TemplateRef, static: true }]
4938
+ }], rendererId: [{
4939
+ type: Input
4940
+ }], vcr: [{
4941
+ type: ViewChild,
4942
+ args: ['componentOuter', { static: true, read: ViewContainerRef }]
4943
+ }], listenEvent: [{
4944
+ type: Output
4945
+ }] } });
5646
4946
 
5647
- function _forTrack0($index, $item) { return this.trackItemFn($index, $item.col); }
5648
- const _c0$3 = a0 => ({ props: a0 });
5649
- function LayoutComponent_Conditional_0_For_1_Conditional_1_Template(rf, ctx) { if (rf & 1) {
5650
- i0.ɵɵelementStart(0, "div", 1)(1, "ion-card", 3);
5651
- i0.ɵɵtext(2);
5652
- i0.ɵɵpipe(3, "translate");
5653
- i0.ɵɵelementEnd()();
5654
- } if (rf & 2) {
5655
- const row_r1 = i0.ɵɵnextContext().$implicit;
5656
- i0.ɵɵadvance(2);
5657
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(3, 1, row_r1.title), " ");
5658
- } }
5659
- function LayoutComponent_Conditional_0_For_1_For_3_Conditional_2_Template(rf, ctx) { if (rf & 1) {
5660
- const _r2 = i0.ɵɵgetCurrentView();
5661
- i0.ɵɵelementStart(0, "ion-card")(1, "ion-card-content")(2, "ngx-decaf-model-renderer", 5);
5662
- i0.ɵɵlistener("listenEvent", function LayoutComponent_Conditional_0_For_1_For_3_Conditional_2_Template_ngx_decaf_model_renderer_listenEvent_2_listener($event) { i0.ɵɵrestoreView(_r2); const ctx_r2 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r2.handleEvent($event)); });
5663
- i0.ɵɵelementEnd()()();
5664
- } if (rf & 2) {
5665
- const child_r4 = i0.ɵɵnextContext().$implicit;
5666
- const ctx_r2 = i0.ɵɵnextContext(3);
5667
- i0.ɵɵclassMap("dcf-height-1-1 " + ctx_r2.className);
5668
- i0.ɵɵadvance(2);
5669
- i0.ɵɵproperty("model", child_r4.props.name);
5670
- } }
5671
- function LayoutComponent_Conditional_0_For_1_For_3_Conditional_3_Template(rf, ctx) { if (rf & 1) {
5672
- const _r5 = i0.ɵɵgetCurrentView();
5673
- i0.ɵɵelementStart(0, "ngx-decaf-component-renderer", 6);
5674
- i0.ɵɵlistener("listenEvent", function LayoutComponent_Conditional_0_For_1_For_3_Conditional_3_Template_ngx_decaf_component_renderer_listenEvent_0_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r2 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r2.handleEvent($event)); });
5675
- i0.ɵɵelementEnd();
5676
- } if (rf & 2) {
5677
- const child_r4 = i0.ɵɵnextContext().$implicit;
5678
- i0.ɵɵproperty("tag", child_r4.tag)("globals", i0.ɵɵpureFunction1(2, _c0$3, child_r4.props));
5679
- } }
5680
- function LayoutComponent_Conditional_0_For_1_For_3_Template(rf, ctx) { if (rf & 1) {
5681
- i0.ɵɵelementStart(0, "div")(1, "div");
5682
- i0.ɵɵtemplate(2, LayoutComponent_Conditional_0_For_1_For_3_Conditional_2_Template, 3, 3, "ion-card", 2)(3, LayoutComponent_Conditional_0_For_1_For_3_Conditional_3_Template, 1, 4, "ngx-decaf-component-renderer", 4);
5683
- i0.ɵɵelementEnd()();
5684
- } if (rf & 2) {
5685
- const child_r4 = ctx.$implicit;
5686
- const ctx_r2 = i0.ɵɵnextContext(3);
5687
- i0.ɵɵclassMap(child_r4.col === ctx_r2.cols.length ? "dcf-width-1-1" : "dcf-width-" + child_r4.col + "-" + ctx_r2.cols.length + "@" + ctx_r2.breakpoint);
5688
- i0.ɵɵadvance();
5689
- i0.ɵɵclassMap("dcf-grid-child " + child_r4.col);
5690
- i0.ɵɵadvance();
5691
- i0.ɵɵconditional(child_r4.tag === "ngx-decaf-crud-form" ? 2 : 3);
5692
- } }
5693
- function LayoutComponent_Conditional_0_For_1_Template(rf, ctx) { if (rf & 1) {
5694
- i0.ɵɵelementStart(0, "div", 0);
5695
- i0.ɵɵtemplate(1, LayoutComponent_Conditional_0_For_1_Conditional_1_Template, 4, 3, "div", 1);
5696
- i0.ɵɵrepeaterCreate(2, LayoutComponent_Conditional_0_For_1_For_3_Template, 4, 5, "div", 2, _forTrack0, true);
5697
- i0.ɵɵelementEnd();
5698
- } if (rf & 2) {
5699
- const row_r1 = ctx.$implicit;
5700
- i0.ɵɵadvance();
5701
- i0.ɵɵconditional(row_r1 ? 1 : -1);
5702
- i0.ɵɵadvance();
5703
- i0.ɵɵrepeater(row_r1.cols);
5704
- } }
5705
- function LayoutComponent_Conditional_0_Template(rf, ctx) { if (rf & 1) {
5706
- i0.ɵɵrepeaterCreate(0, LayoutComponent_Conditional_0_For_1_Template, 4, 1, "div", 0, i0.ɵɵcomponentInstance().trackItemFn, true);
5707
- } if (rf & 2) {
5708
- const ctx_r2 = i0.ɵɵnextContext();
5709
- i0.ɵɵrepeater(ctx_r2.rows);
5710
- } }
5711
4947
  /**
5712
4948
  * @description Layout component for creating responsive grid layouts in Angular applications.
5713
4949
  * @summary This component provides a flexible grid system that can be configured with dynamic
@@ -5861,210 +5097,22 @@ class LayoutComponent extends NgxBaseComponent {
5861
5097
  this.rows = this._rows;
5862
5098
  this.initialized = true;
5863
5099
  }
5864
- static { this.ɵfac = function LayoutComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || LayoutComponent)(); }; }
5865
- static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: LayoutComponent, selectors: [["ngx-decaf-layout"]], inputs: { cols: "cols", rows: "rows", breakpoint: "breakpoint", children: "children" }, standalone: true, features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature], decls: 1, vars: 1, consts: [[1, "dcf-grid", "dcf-grid-collapse", "dcf-grid-match"], [1, "dcf-width-1-1", "dcf-grid-title"], [3, "class"], [1, "dcf-grid-title"], [3, "tag", "globals"], [3, "listenEvent", "model"], [3, "listenEvent", "tag", "globals"]], template: function LayoutComponent_Template(rf, ctx) { if (rf & 1) {
5866
- i0.ɵɵtemplate(0, LayoutComponent_Conditional_0_Template, 2, 0);
5867
- } if (rf & 2) {
5868
- i0.ɵɵconditional(ctx.initialized ? 0 : -1);
5869
- } }, dependencies: [ForAngularModule, i3.TranslatePipe, ModelRendererComponent, ComponentRendererComponent], styles: [".dcf-grid[_ngcontent-%COMP%] > div[_ngcontent-%COMP%]:not(.dcf-grid-title) ngx-decaf-component-renderer>*>*{height:100%;display:flex;justify-content:center!important;align-items:center!important}.dcf-grid.dcf-grid-small[_ngcontent-%COMP%] .dcf-grid-child[_ngcontent-%COMP%]{margin-bottom:2rem}.dcf-grid.dcf-grid-collapse[_ngcontent-%COMP%] .dcf-grid-child[_ngcontent-%COMP%]{margin-bottom:1.25rem}.dcf-grid.dcf-grid-collapse[_ngcontent-%COMP%] .dcf-grid-child[_ngcontent-%COMP%] ion-card[_ngcontent-%COMP%]{margin-bottom:1.25rem}.dcf-grid-title[_ngcontent-%COMP%]{font-size:1.05rem!important;background:none;box-shadow:none;margin-bottom:0;padding-bottom:0;font-weight:600;color:var(--ion-text-color);display:flex;align-items:center;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}"] }); }
5100
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LayoutComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
5101
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: LayoutComponent, isStandalone: true, selector: "ngx-decaf-layout", inputs: { cols: "cols", rows: "rows", breakpoint: "breakpoint", children: "children" }, usesInheritance: true, ngImport: i0, template: "\n@if(initialized) {\n @for (row of rows; track trackItemFn($index, row); let rowIndex = $index) {\n <div class=\"dcf-grid dcf-grid-collapse dcf-grid-match\">\n @if(row) {\n <div class=\"dcf-width-1-1 dcf-grid-title\">\n <ion-card class=\"dcf-grid-title\">\n {{row.title | translate}}\n </ion-card>\n </div>\n }\n @for (child of row.cols; track trackItemFn($index, child.col); let colIndex = $index) {\n <div [class]=\"(child.col === cols.length ? 'dcf-width-1-1' : 'dcf-width-'+child.col+'-'+cols.length+'@'+breakpoint)\">\n <div [class]=\"'dcf-grid-child '+child.col \">\n @if(child.tag === 'ngx-decaf-crud-form') {\n <ion-card [class]=\"'dcf-height-1-1 ' + className\">\n <ion-card-content>\n <ngx-decaf-model-renderer\n [model]=\"child.props.name\"\n (listenEvent)=\"handleEvent($event)\"\n />\n </ion-card-content>\n </ion-card>\n } @else {\n <ngx-decaf-component-renderer\n [tag]=\"child.tag\"\n (listenEvent)=\"handleEvent($event)\"\n [globals]=\"{props: child.props}\"\n />\n }\n </div>\n </div>\n }\n </div>\n }\n}\n", styles: [".dcf-grid>div:not(.dcf-grid-title) ::ng-deep ngx-decaf-component-renderer>*>*{height:100%;display:flex;justify-content:center!important;align-items:center!important}.dcf-grid.dcf-grid-small .dcf-grid-child{margin-bottom:2rem}.dcf-grid.dcf-grid-collapse .dcf-grid-child{margin-bottom:1.25rem}.dcf-grid.dcf-grid-collapse .dcf-grid-child ion-card{margin-bottom:1.25rem}.dcf-grid-title{font-size:1.05rem!important;background:none;box-shadow:none;margin-bottom:0;padding-bottom:0;font-weight:600;color:var(--ion-text-color);display:flex;align-items:center;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}\n"], dependencies: [{ kind: "ngmodule", type: ForAngularModule }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }, { kind: "component", type: ModelRendererComponent, selector: "ngx-decaf-model-renderer", inputs: ["model", "globals", "rendererId"], outputs: ["listenEvent"] }, { kind: "component", type: ComponentRendererComponent, selector: "ngx-decaf-component-renderer", inputs: ["tag", "globals", "model", "parent"], outputs: ["listenEvent"] }] }); }
5870
5102
  }
5871
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(LayoutComponent, [{
5872
- type: Component,
5873
- args: [{ selector: 'ngx-decaf-layout', imports: [ForAngularModule, ModelRendererComponent, ComponentRendererComponent], standalone: true, template: "\n@if(initialized) {\n @for (row of rows; track trackItemFn($index, row); let rowIndex = $index) {\n <div class=\"dcf-grid dcf-grid-collapse dcf-grid-match\">\n @if(row) {\n <div class=\"dcf-width-1-1 dcf-grid-title\">\n <ion-card class=\"dcf-grid-title\">\n {{row.title | translate}}\n </ion-card>\n </div>\n }\n @for (child of row.cols; track trackItemFn($index, child.col); let colIndex = $index) {\n <div [class]=\"(child.col === cols.length ? 'dcf-width-1-1' : 'dcf-width-'+child.col+'-'+cols.length+'@'+breakpoint)\">\n <div [class]=\"'dcf-grid-child '+child.col \">\n @if(child.tag === 'ngx-decaf-crud-form') {\n <ion-card [class]=\"'dcf-height-1-1 ' + className\">\n <ion-card-content>\n <ngx-decaf-model-renderer\n [model]=\"child.props.name\"\n (listenEvent)=\"handleEvent($event)\"\n />\n </ion-card-content>\n </ion-card>\n } @else {\n <ngx-decaf-component-renderer\n [tag]=\"child.tag\"\n (listenEvent)=\"handleEvent($event)\"\n [globals]=\"{props: child.props}\"\n />\n }\n </div>\n </div>\n }\n </div>\n }\n}\n", styles: [".dcf-grid>div:not(.dcf-grid-title) ::ng-deep ngx-decaf-component-renderer>*>*{height:100%;display:flex;justify-content:center!important;align-items:center!important}.dcf-grid.dcf-grid-small .dcf-grid-child{margin-bottom:2rem}.dcf-grid.dcf-grid-collapse .dcf-grid-child{margin-bottom:1.25rem}.dcf-grid.dcf-grid-collapse .dcf-grid-child ion-card{margin-bottom:1.25rem}.dcf-grid-title{font-size:1.05rem!important;background:none;box-shadow:none;margin-bottom:0;padding-bottom:0;font-weight:600;color:var(--ion-text-color);display:flex;align-items:center;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}\n"] }]
5874
- }], () => [], { cols: [{
5875
- type: Input
5876
- }], rows: [{
5877
- type: Input
5878
- }], breakpoint: [{
5879
- type: Input
5880
- }], children: [{
5881
- type: Input
5882
- }] }); })();
5883
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(LayoutComponent, { className: "LayoutComponent", filePath: "components/layout/layout.component.ts", lineNumber: 29 }); })();
5103
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LayoutComponent, decorators: [{
5104
+ type: Component,
5105
+ args: [{ selector: 'ngx-decaf-layout', imports: [ForAngularModule, ModelRendererComponent, ComponentRendererComponent], standalone: true, template: "\n@if(initialized) {\n @for (row of rows; track trackItemFn($index, row); let rowIndex = $index) {\n <div class=\"dcf-grid dcf-grid-collapse dcf-grid-match\">\n @if(row) {\n <div class=\"dcf-width-1-1 dcf-grid-title\">\n <ion-card class=\"dcf-grid-title\">\n {{row.title | translate}}\n </ion-card>\n </div>\n }\n @for (child of row.cols; track trackItemFn($index, child.col); let colIndex = $index) {\n <div [class]=\"(child.col === cols.length ? 'dcf-width-1-1' : 'dcf-width-'+child.col+'-'+cols.length+'@'+breakpoint)\">\n <div [class]=\"'dcf-grid-child '+child.col \">\n @if(child.tag === 'ngx-decaf-crud-form') {\n <ion-card [class]=\"'dcf-height-1-1 ' + className\">\n <ion-card-content>\n <ngx-decaf-model-renderer\n [model]=\"child.props.name\"\n (listenEvent)=\"handleEvent($event)\"\n />\n </ion-card-content>\n </ion-card>\n } @else {\n <ngx-decaf-component-renderer\n [tag]=\"child.tag\"\n (listenEvent)=\"handleEvent($event)\"\n [globals]=\"{props: child.props}\"\n />\n }\n </div>\n </div>\n }\n </div>\n }\n}\n", styles: [".dcf-grid>div:not(.dcf-grid-title) ::ng-deep ngx-decaf-component-renderer>*>*{height:100%;display:flex;justify-content:center!important;align-items:center!important}.dcf-grid.dcf-grid-small .dcf-grid-child{margin-bottom:2rem}.dcf-grid.dcf-grid-collapse .dcf-grid-child{margin-bottom:1.25rem}.dcf-grid.dcf-grid-collapse .dcf-grid-child ion-card{margin-bottom:1.25rem}.dcf-grid-title{font-size:1.05rem!important;background:none;box-shadow:none;margin-bottom:0;padding-bottom:0;font-weight:600;color:var(--ion-text-color);display:flex;align-items:center;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}\n"] }]
5106
+ }], ctorParameters: () => [], propDecorators: { cols: [{
5107
+ type: Input
5108
+ }], rows: [{
5109
+ type: Input
5110
+ }], breakpoint: [{
5111
+ type: Input
5112
+ }], children: [{
5113
+ type: Input
5114
+ }] } });
5884
5115
 
5885
- const _c0$2 = ["actionMenuComponent"];
5886
- const _c1$2 = [[["", "slot", "end"]]];
5887
- const _c2$1 = ["[slot='end']"];
5888
- const _c3 = () => ["update", "delete"];
5889
- function ListItemComponent_Conditional_0_Conditional_3_Template(rf, ctx) { if (rf & 1) {
5890
- i0.ɵɵelementStart(0, "div", 3)(1, "ion-button", 15);
5891
- i0.ɵɵelement(2, "ion-icon", 16);
5892
- i0.ɵɵelementEnd()();
5893
- } if (rf & 2) {
5894
- const ctx_r2 = i0.ɵɵnextContext(2);
5895
- i0.ɵɵproperty("slot", ctx_r2.iconSlot);
5896
- } }
5897
- function ListItemComponent_Conditional_0_Conditional_6_Template(rf, ctx) { if (rf & 1) {
5898
- i0.ɵɵelementStart(0, "div", 6)(1, "ion-button", 15);
5899
- i0.ɵɵelement(2, "ion-icon", 16);
5900
- i0.ɵɵelementEnd()();
5901
- } }
5902
- function ListItemComponent_Conditional_0_div_9_Template(rf, ctx) { if (rf & 1) {
5903
- i0.ɵɵelement(0, "div", 17);
5904
- } if (rf & 2) {
5905
- const ctx_r2 = i0.ɵɵnextContext(2);
5906
- i0.ɵɵproperty("innerHTML", ctx_r2.description, i0.ɵɵsanitizeHtml);
5907
- } }
5908
- function ListItemComponent_Conditional_0_Conditional_10_span_2_Template(rf, ctx) { if (rf & 1) {
5909
- i0.ɵɵelement(0, "span", 20);
5910
- } if (rf & 2) {
5911
- const ctx_r2 = i0.ɵɵnextContext(3);
5912
- i0.ɵɵproperty("innerHTML", ctx_r2.info, i0.ɵɵsanitizeHtml);
5913
- } }
5914
- function ListItemComponent_Conditional_0_Conditional_10_div_3_Template(rf, ctx) { if (rf & 1) {
5915
- i0.ɵɵelement(0, "div", 21);
5916
- } if (rf & 2) {
5917
- const ctx_r2 = i0.ɵɵnextContext(3);
5918
- i0.ɵɵproperty("innerHTML", ctx_r2.subinfo, i0.ɵɵsanitizeHtml);
5919
- } }
5920
- function ListItemComponent_Conditional_0_Conditional_10_Template(rf, ctx) { if (rf & 1) {
5921
- i0.ɵɵelementStart(0, "div", 10)(1, "div");
5922
- i0.ɵɵtemplate(2, ListItemComponent_Conditional_0_Conditional_10_span_2_Template, 1, 1, "span", 18)(3, ListItemComponent_Conditional_0_Conditional_10_div_3_Template, 1, 1, "div", 19);
5923
- i0.ɵɵelementEnd()();
5924
- } if (rf & 2) {
5925
- const ctx_r2 = i0.ɵɵnextContext(2);
5926
- i0.ɵɵadvance(2);
5927
- i0.ɵɵproperty("ngIf", ctx_r2.info);
5928
- i0.ɵɵadvance();
5929
- i0.ɵɵproperty("ngIf", ctx_r2.subinfo);
5930
- } }
5931
- function ListItemComponent_Conditional_0_Conditional_12_ng_template_5_For_6_Conditional_0_Conditional_2_Template(rf, ctx) { if (rf & 1) {
5932
- i0.ɵɵelement(0, "ion-icon", 31);
5933
- } }
5934
- function ListItemComponent_Conditional_0_Conditional_12_ng_template_5_For_6_Conditional_0_Conditional_3_Template(rf, ctx) { if (rf & 1) {
5935
- i0.ɵɵelement(0, "ion-icon", 32);
5936
- } }
5937
- function ListItemComponent_Conditional_0_Conditional_12_ng_template_5_For_6_Conditional_0_Template(rf, ctx) { if (rf & 1) {
5938
- const _r5 = i0.ɵɵgetCurrentView();
5939
- i0.ɵɵelementStart(0, "ion-item", 29);
5940
- i0.ɵɵlistener("click", function ListItemComponent_Conditional_0_Conditional_12_ng_template_5_For_6_Conditional_0_Template_ion_item_click_0_listener($event) { i0.ɵɵrestoreView(_r5); const operation_r6 = i0.ɵɵnextContext().$implicit; i0.ɵɵnextContext(3); const component_r2 = i0.ɵɵreference(1); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.handleAction(operation_r6, $event, component_r2)); });
5941
- i0.ɵɵelementStart(1, "ion-avatar", 30);
5942
- i0.ɵɵtemplate(2, ListItemComponent_Conditional_0_Conditional_12_ng_template_5_For_6_Conditional_0_Conditional_2_Template, 1, 0, "ion-icon", 31)(3, ListItemComponent_Conditional_0_Conditional_12_ng_template_5_For_6_Conditional_0_Conditional_3_Template, 1, 0, "ion-icon", 32);
5943
- i0.ɵɵelementEnd();
5944
- i0.ɵɵelementStart(4, "ion-label", 33);
5945
- i0.ɵɵtext(5);
5946
- i0.ɵɵpipe(6, "translate");
5947
- i0.ɵɵelementEnd()();
5948
- } if (rf & 2) {
5949
- const operation_r6 = i0.ɵɵnextContext().$implicit;
5950
- i0.ɵɵproperty("button", true);
5951
- i0.ɵɵadvance(2);
5952
- i0.ɵɵconditional(operation_r6 === "update" ? 2 : 3);
5953
- i0.ɵɵadvance(3);
5954
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(6, 3, operation_r6));
5955
- } }
5956
- function ListItemComponent_Conditional_0_Conditional_12_ng_template_5_For_6_Template(rf, ctx) { if (rf & 1) {
5957
- i0.ɵɵtemplate(0, ListItemComponent_Conditional_0_Conditional_12_ng_template_5_For_6_Conditional_0_Template, 7, 5, "ion-item", 28);
5958
- } if (rf & 2) {
5959
- const operation_r6 = ctx.$implicit;
5960
- const ctx_r2 = i0.ɵɵnextContext(4);
5961
- i0.ɵɵconditional(ctx_r2.operations.includes(operation_r6) ? 0 : -1);
5962
- } }
5963
- function ListItemComponent_Conditional_0_Conditional_12_ng_template_5_Template(rf, ctx) { if (rf & 1) {
5964
- i0.ɵɵelementStart(0, "ion-content", 25)(1, "ion-list", 26)(2, "ion-list-header");
5965
- i0.ɵɵelement(3, "h4", 27);
5966
- i0.ɵɵpipe(4, "translate");
5967
- i0.ɵɵelementEnd();
5968
- i0.ɵɵrepeaterCreate(5, ListItemComponent_Conditional_0_Conditional_12_ng_template_5_For_6_Template, 1, 1, null, null, i0.ɵɵrepeaterTrackByIdentity);
5969
- i0.ɵɵelementEnd()();
5970
- } if (rf & 2) {
5971
- i0.ɵɵadvance(3);
5972
- i0.ɵɵproperty("innerHTML", i0.ɵɵpipeBind1(4, 1, "actions"), i0.ɵɵsanitizeHtml);
5973
- i0.ɵɵadvance(2);
5974
- i0.ɵɵrepeater(i0.ɵɵpureFunction0(3, _c3));
5975
- } }
5976
- function ListItemComponent_Conditional_0_Conditional_12_Template(rf, ctx) { if (rf & 1) {
5977
- const _r4 = i0.ɵɵgetCurrentView();
5978
- i0.ɵɵelementStart(0, "div", 12)(1, "ion-button", 22);
5979
- i0.ɵɵlistener("click", function ListItemComponent_Conditional_0_Conditional_12_Template_ion_button_click_1_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.presentActionsMenu($event)); });
5980
- i0.ɵɵelement(2, "ion-icon", 23);
5981
- i0.ɵɵelementEnd();
5982
- i0.ɵɵelementStart(3, "ion-popover", 24, 1);
5983
- i0.ɵɵlistener("didDismiss", function ListItemComponent_Conditional_0_Conditional_12_Template_ion_popover_didDismiss_3_listener() { i0.ɵɵrestoreView(_r4); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.actionMenuOpen = false); });
5984
- i0.ɵɵtemplate(5, ListItemComponent_Conditional_0_Conditional_12_ng_template_5_Template, 7, 4, "ng-template");
5985
- i0.ɵɵelementEnd()();
5986
- } if (rf & 2) {
5987
- const ctx_r2 = i0.ɵɵnextContext(2);
5988
- i0.ɵɵadvance(3);
5989
- i0.ɵɵproperty("isOpen", ctx_r2.actionMenuOpen);
5990
- } }
5991
- function ListItemComponent_Conditional_0_Conditional_13_Template(rf, ctx) { if (rf & 1) {
5992
- i0.ɵɵelementStart(0, "div", 13);
5993
- i0.ɵɵprojection(1);
5994
- i0.ɵɵelementEnd();
5995
- } }
5996
- function ListItemComponent_Conditional_0_Conditional_14_Conditional_1_Template(rf, ctx) { if (rf & 1) {
5997
- const _r8 = i0.ɵɵgetCurrentView();
5998
- i0.ɵɵelementStart(0, "ion-item-option", 37);
5999
- i0.ɵɵlistener("click", function ListItemComponent_Conditional_0_Conditional_14_Conditional_1_Template_ion_item_option_click_0_listener($event) { i0.ɵɵrestoreView(_r8); i0.ɵɵnextContext(2); const component_r2 = i0.ɵɵreference(1); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.handleAction("update", $event, component_r2)); });
6000
- i0.ɵɵelement(1, "ion-icon", 38);
6001
- i0.ɵɵelementEnd();
6002
- } if (rf & 2) {
6003
- const ctx_r2 = i0.ɵɵnextContext(3);
6004
- i0.ɵɵproperty("expandable", ctx_r2.operations.length === 1);
6005
- } }
6006
- function ListItemComponent_Conditional_0_Conditional_14_Conditional_2_Template(rf, ctx) { if (rf & 1) {
6007
- const _r9 = i0.ɵɵgetCurrentView();
6008
- i0.ɵɵelementStart(0, "ion-item-option", 39);
6009
- i0.ɵɵlistener("click", function ListItemComponent_Conditional_0_Conditional_14_Conditional_2_Template_ion_item_option_click_0_listener($event) { i0.ɵɵrestoreView(_r9); i0.ɵɵnextContext(2); const component_r2 = i0.ɵɵreference(1); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.handleAction("delete", $event, component_r2)); });
6010
- i0.ɵɵelement(1, "ion-icon", 40);
6011
- i0.ɵɵelementEnd();
6012
- } if (rf & 2) {
6013
- const ctx_r2 = i0.ɵɵnextContext(3);
6014
- i0.ɵɵproperty("expandable", ctx_r2.operations.length === 1);
6015
- } }
6016
- function ListItemComponent_Conditional_0_Conditional_14_Template(rf, ctx) { if (rf & 1) {
6017
- const _r7 = i0.ɵɵgetCurrentView();
6018
- i0.ɵɵelementStart(0, "ion-item-options", 34);
6019
- i0.ɵɵlistener("ionSwipe", function ListItemComponent_Conditional_0_Conditional_14_Template_ion_item_options_ionSwipe_0_listener($event) { i0.ɵɵrestoreView(_r7); i0.ɵɵnextContext(); const component_r2 = i0.ɵɵreference(1); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.operations.length === 1 ? ctx_r2.handleAction(ctx_r2.operations[0], $event, component_r2) : ""); });
6020
- i0.ɵɵtemplate(1, ListItemComponent_Conditional_0_Conditional_14_Conditional_1_Template, 2, 1, "ion-item-option", 35)(2, ListItemComponent_Conditional_0_Conditional_14_Conditional_2_Template, 2, 1, "ion-item-option", 36);
6021
- i0.ɵɵelementEnd();
6022
- } if (rf & 2) {
6023
- const ctx_r2 = i0.ɵɵnextContext(2);
6024
- i0.ɵɵadvance();
6025
- i0.ɵɵconditional((ctx_r2.operations == null ? null : ctx_r2.operations.includes("update")) ? 1 : -1);
6026
- i0.ɵɵadvance();
6027
- i0.ɵɵconditional((ctx_r2.operations == null ? null : ctx_r2.operations.includes("delete")) ? 2 : -1);
6028
- } }
6029
- function ListItemComponent_Conditional_0_Template(rf, ctx) { if (rf & 1) {
6030
- const _r1 = i0.ɵɵgetCurrentView();
6031
- i0.ɵɵelementStart(0, "ion-item-sliding", null, 0)(2, "ion-item", 2);
6032
- i0.ɵɵlistener("click", function ListItemComponent_Conditional_0_Template_ion_item_click_2_listener($event) { i0.ɵɵrestoreView(_r1); const component_r2 = i0.ɵɵreference(1); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView((ctx_r2.operations == null ? null : ctx_r2.operations.includes("read")) ? ctx_r2.handleAction("read", $event, component_r2) : ""); });
6033
- i0.ɵɵtemplate(3, ListItemComponent_Conditional_0_Conditional_3_Template, 3, 1, "div", 3);
6034
- i0.ɵɵelementStart(4, "div", 4)(5, "div", 5);
6035
- i0.ɵɵtemplate(6, ListItemComponent_Conditional_0_Conditional_6_Template, 3, 0, "div", 6);
6036
- i0.ɵɵelementStart(7, "div", 7);
6037
- i0.ɵɵelement(8, "ion-label", 8);
6038
- i0.ɵɵtemplate(9, ListItemComponent_Conditional_0_div_9_Template, 1, 1, "div", 9);
6039
- i0.ɵɵelementEnd();
6040
- i0.ɵɵtemplate(10, ListItemComponent_Conditional_0_Conditional_10_Template, 4, 2, "div", 10);
6041
- i0.ɵɵelementStart(11, "div", 11);
6042
- i0.ɵɵtemplate(12, ListItemComponent_Conditional_0_Conditional_12_Template, 6, 1, "div", 12)(13, ListItemComponent_Conditional_0_Conditional_13_Template, 2, 0, "div", 13);
6043
- i0.ɵɵelementEnd()()()();
6044
- i0.ɵɵtemplate(14, ListItemComponent_Conditional_0_Conditional_14_Template, 3, 2, "ion-item-options", 14);
6045
- i0.ɵɵelementEnd();
6046
- } if (rf & 2) {
6047
- const ctx_r2 = i0.ɵɵnextContext();
6048
- i0.ɵɵadvance(2);
6049
- i0.ɵɵclassMap(ctx_r2.className);
6050
- i0.ɵɵproperty("lines", ctx_r2.lines)("button", ctx_r2.button);
6051
- i0.ɵɵadvance();
6052
- i0.ɵɵconditional(ctx_r2.icon && ctx_r2.lines !== "inset" ? 3 : -1);
6053
- i0.ɵɵadvance(3);
6054
- i0.ɵɵconditional(ctx_r2.icon && ctx_r2.lines === "inset" ? 6 : -1);
6055
- i0.ɵɵadvance(2);
6056
- i0.ɵɵproperty("innerHTML", ctx_r2.uid + " - " + ctx_r2.title, i0.ɵɵsanitizeHtml);
6057
- i0.ɵɵadvance();
6058
- i0.ɵɵproperty("ngIf", ctx_r2.description);
6059
- i0.ɵɵadvance();
6060
- i0.ɵɵconditional(ctx_r2.info || ctx_r2.subinfo ? 10 : -1);
6061
- i0.ɵɵadvance(2);
6062
- i0.ɵɵconditional((ctx_r2.operations.includes("delete") || ctx_r2.operations.includes("update")) && ctx_r2.uid ? 12 : -1);
6063
- i0.ɵɵadvance();
6064
- i0.ɵɵconditional(ctx_r2.windowWidth > 768 ? 13 : -1);
6065
- i0.ɵɵadvance();
6066
- i0.ɵɵconditional(ctx_r2.showSlideItems && ctx_r2.uid ? 14 : -1);
6067
- } }
6068
5116
  /**
6069
5117
  * @description A component for displaying a list item with various customization options.
6070
5118
  * @summary The ListItemComponent is an Angular component that extends NgxBaseComponent. It provides a flexible and customizable list item interface with support for icons, buttons, and various text elements. The component also handles actions and navigation based on user interactions.
@@ -6405,95 +5453,57 @@ let ListItemComponent = class ListItemComponent extends NgxBaseComponent {
6405
5453
  this.actionMenuComponent.event = event;
6406
5454
  this.actionMenuOpen = true;
6407
5455
  }
6408
- static { this.ɵfac = function ListItemComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || ListItemComponent)(); }; }
6409
- static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ListItemComponent, selectors: [["ngx-decaf-list-item"]], viewQuery: function ListItemComponent_Query(rf, ctx) { if (rf & 1) {
6410
- i0.ɵɵviewQuery(_c0$2, 5);
6411
- } if (rf & 2) {
6412
- let _t;
6413
- i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.actionMenuComponent = _t.first);
6414
- } }, hostBindings: function ListItemComponent_HostBindings(rf, ctx) { if (rf & 1) {
6415
- i0.ɵɵlistener("resize", function ListItemComponent_resize_HostBindingHandler($event) { return ctx.enableSlideItems($event); }, false, i0.ɵɵresolveWindow);
6416
- } }, inputs: { lines: "lines", item: "item", icon: "icon", iconSlot: "iconSlot", button: "button", title: "title", description: "description", info: "info", subinfo: "subinfo" }, outputs: { clickEvent: "clickEvent" }, standalone: true, features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature], ngContentSelectors: _c2$1, decls: 1, vars: 1, consts: [["component", ""], ["actionMenuComponent", ""], [3, "click", "lines", "button"], [1, "dcf-icon", 3, "slot"], [1, "dcf-width-expand"], ["dcf-grid", "", 1, "dcf-flex", "dcf-flex-middle", "dcf-grid-collapse"], [1, "dcf-icon", "dcf-grid-icon"], [1, "dcf-width-expand@s", "dcf-width-1-1", "dcf-label"], [1, "dcf-item-title", 3, "innerHTML"], ["class", "dcf-description", 3, "innerHTML", 4, "ngIf"], [1, "dcf-width-auto@s", "dcf-width-expand", "dcf-info", "dcf-flex", "dcf-flex-right@s"], [1, "dcf-width-auto", "dcf-flex", "dcf-flex-middle", "dcf-flex-right"], ["id", "dcf-actions", 1, "dcf-visible@m"], ["id", "end"], ["side", "end"], ["shape", "round", "fill", "clear"], ["aria-hidden", "true", "name", "reader-outline", "color", "dark", "size", "default"], [1, "dcf-description", 3, "innerHTML"], [3, "innerHTML", 4, "ngIf"], ["class", "dcf-subinfo dcf-text-truncate", 3, "innerHTML", 4, "ngIf"], [3, "innerHTML"], [1, "dcf-subinfo", "dcf-text-truncate", 3, "innerHTML"], ["shape", "round", "fill", "clear", "color", "primary", 1, "dcf-hidden@m", 3, "click"], ["slot", "icon-only", "aria-hidden", "true", "name", "ellipsis-vertical-outline"], ["side", "bottom", "alignment", "left", 3, "didDismiss", "isOpen"], [1, "ion-padding"], ["lines", "none"], [1, "dcf-text-capitalize", 3, "innerHTML"], [3, "button"], [3, "click", "button"], ["aria-hidden", "true", "slot", "start", 1, "dcf-flex", "dcf-flex-middle"], ["color", "primary", "aria-hidden", "true", "name", "create-outline"], ["color", "danger", "aria-hidden", "true", "name", "trash"], [1, "dcf-text-capitalize"], ["side", "end", 3, "ionSwipe"], [1, "update", 3, "expandable"], [1, "delete", 3, "expandable"], [1, "update", 3, "click", "expandable"], ["aria-hidden", "true", "slot", "icon-only", "name", "create-outline"], [1, "delete", 3, "click", "expandable"], ["aria-hidden", "true", "slot", "icon-only", "name", "trash"]], template: function ListItemComponent_Template(rf, ctx) { if (rf & 1) {
6417
- i0.ɵɵprojectionDef(_c1$2);
6418
- i0.ɵɵtemplate(0, ListItemComponent_Conditional_0_Template, 15, 12, "ion-item-sliding");
6419
- } if (rf & 2) {
6420
- i0.ɵɵconditional(ctx.title || ctx.description ? 0 : -1);
6421
- } }, dependencies: [ForAngularModule, i1.IonButton, i1.IonContent, i2.NgIf, i3.TranslatePipe, IonList,
6422
- IonListHeader,
6423
- IonItem,
6424
- IonItemSliding,
6425
- IonItemOptions,
6426
- IonItemOption,
6427
- IonIcon,
6428
- IonLabel,
6429
- IonPopover], styles: ["ion-item[_ngcontent-%COMP%]{--min-height: 50px;--padding-top: .25rem;--padding-bottom: .25rem;--padding-start: .75rem;--padding-end: .75rem;--inner-padding-start: 0px !important;--inner-padding-end: 0px !important;--border-color: var(--ion-color-gray-2)}ion-item.item-lines-inset[_ngcontent-%COMP%]{--padding-top: 0rem !important;--padding-bottom: 0rem !important;--inner-padding-top: .5rem !important;--inner-padding-bottom: .65rem !important;--border-color: var(--ion-color-gray-2)}ion-item[_ngcontent-%COMP%]:hover .dcf-info[_ngcontent-%COMP%]{background:transparent!important}ion-item[_ngcontent-%COMP%] .dcf-info[_ngcontent-%COMP%]{min-width:10vw;color:var(--ion-color-gray-6)}ion-item[_ngcontent-%COMP%] .dcf-grid[_ngcontent-%COMP%]{padding:0!important;margin:0!important;min-width:100%!important}ion-item[_ngcontent-%COMP%] .dcf-item-title[_ngcontent-%COMP%]{color:var(--ion-color-gray-8);font-style:normal;font-weight:700}ion-item[_ngcontent-%COMP%] .dcf-description[_ngcontent-%COMP%]{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ion-color-gray-6);font-style:normal;font-weight:400;font-size:.925rem}ion-item[_ngcontent-%COMP%]::part(native){min-width:100%}ion-item[_ngcontent-%COMP%] [slot=start][_ngcontent-%COMP%]{margin-right:.5rem!important}ion-item[_ngcontent-%COMP%] [slot=end][_ngcontent-%COMP%]{margin-left:.5rem!important}ion-item[_ngcontent-%COMP%] .dcf-info[_ngcontent-%COMP%]{font-size:.9rem;background:#fff}ion-item[_ngcontent-%COMP%] .dcf-info[_ngcontent-%COMP%] .dcf-subinfo.dcf-line[_ngcontent-%COMP%]{margin-left:.5rem}@media (min-width: var(--dcf-width-sm)){ion-item[_ngcontent-%COMP%] .dcf-info[_ngcontent-%COMP%] .dcf-subinfo.dcf-line[_ngcontent-%COMP%]{display:block;margin-left:0}}ion-item[_ngcontent-%COMP%] #dcf-actions[_ngcontent-%COMP%]{padding:5px}@media (max-width: 768px){ion-item[_ngcontent-%COMP%] #dcf-actions[_ngcontent-%COMP%]{display:none;pointer-events:none!important;cursor:text!important}ion-item[_ngcontent-%COMP%] #dcf-actions[_ngcontent-%COMP%] *[_ngcontent-%COMP%]{display:none;pointer-events:none!important;cursor:text!important}}ion-item[_ngcontent-%COMP%] #dcf-actions[_ngcontent-%COMP%] ion-button[_ngcontent-%COMP%]{--padding-start: 1rem;--padding-end: .75rem;--padding-top: .85rem !important;--padding-bottom: .85rem !important;color:#ccc;margin-right:.5rem!important;--background: var(--ion-color-gray-2) !important}ion-item[_ngcontent-%COMP%] #dcf-actions[_ngcontent-%COMP%] ion-button[_ngcontent-%COMP%] ion-icon[_ngcontent-%COMP%]{position:relative;left:-1px}@media (max-width: 768px){ion-item[_ngcontent-%COMP%] #dcf-end[_ngcontent-%COMP%], ion-item[_ngcontent-%COMP%] [slot=end][_ngcontent-%COMP%]{display:none!important}}ion-item[_ngcontent-%COMP%] #dcf-end[_ngcontent-%COMP%]{padding-top:5px;display:flex;align-items:flex-end}ion-item[_ngcontent-%COMP%] .dcf-icon[_ngcontent-%COMP%]{display:flex;justify-content:center;align-items:center;text-align:center;margin-right:.5rem!important}ion-item[_ngcontent-%COMP%] .dcf-icon.dcf-grid-icon[_ngcontent-%COMP%]{min-width:50px;text-align:left;display:flex;justify-content:flex-start}@media (max-width: 578px){ion-item[_ngcontent-%COMP%] .dcf-icon[_ngcontent-%COMP%]{align-items:flex-start!important}}ion-item[_ngcontent-%COMP%] .dcf-icon[_ngcontent-%COMP%] ion-button[_ngcontent-%COMP%]{color:var(--dcf-color-gray-3);--padding-start: 1rem;--padding-end: .85rem;--padding-top: .85rem !important;--padding-bottom: .85rem !important;--background: var(--ion-color-gray-1) !important}ion-item[_ngcontent-%COMP%] .dcf-icon[_ngcontent-%COMP%] ion-button[_ngcontent-%COMP%] ion-icon[_ngcontent-%COMP%]{font-size:20px}ion-item[_ngcontent-%COMP%] .dcf-icon[_ngcontent-%COMP%] ion-avatar[_ngcontent-%COMP%]{transform:scale(.9);background:var(--ion-color-gray-1);display:flex;justify-content:center;align-items:center;text-align:center;box-sizing:border-box!important}ion-item[_ngcontent-%COMP%] .dcf-icon[_ngcontent-%COMP%] ion-avatar[_ngcontent-%COMP%] .dcf-icon-large[_ngcontent-%COMP%]{transform:translateY(5px)}ion-item-sliding[_ngcontent-%COMP%]{box-sizing:border-box}ion-item-sliding[_ngcontent-%COMP%] ion-item-option[_ngcontent-%COMP%]:not(.dcf-delete), ion-item-sliding[_ngcontent-%COMP%] ion-item-option[_ngcontent-%COMP%]:not(.dcf-update){background:rgba(var(--ion-color-dark-rgb),.25)!important}ion-item-sliding[_ngcontent-%COMP%] ion-item-option[_ngcontent-%COMP%]:not(.dcf-delete) .dcf-ti[_ngcontent-%COMP%], ion-item-sliding[_ngcontent-%COMP%] ion-item-option[_ngcontent-%COMP%]:not(.dcf-delete) ion-icon[_ngcontent-%COMP%], ion-item-sliding[_ngcontent-%COMP%] ion-item-option[_ngcontent-%COMP%]:not(.dcf-update) .dcf-ti[_ngcontent-%COMP%], ion-item-sliding[_ngcontent-%COMP%] ion-item-option[_ngcontent-%COMP%]:not(.dcf-update) ion-icon[_ngcontent-%COMP%]{color:var(--ion-color-gray-7)!important}ion-item-sliding[_ngcontent-%COMP%] ion-item-option.dcf-delete[_ngcontent-%COMP%]{background:rgba(var(--ion-color-danger-rgb),.15)!important}ion-item-sliding[_ngcontent-%COMP%] ion-item-option.dcf-delete[_ngcontent-%COMP%] .dcf-ti[_ngcontent-%COMP%], ion-item-sliding[_ngcontent-%COMP%] ion-item-option.dcf-delete[_ngcontent-%COMP%] *[_ngcontent-%COMP%], ion-item-sliding[_ngcontent-%COMP%] ion-item-option.dcf-delete[_ngcontent-%COMP%] ion-icon[_ngcontent-%COMP%]{color:var(--ion-color-danger)!important}ion-item-sliding[_ngcontent-%COMP%] ion-item-option.dcf-update[_ngcontent-%COMP%]{background:rgba(var(--ion-color-primary-rgb),.25)!important}ion-item-sliding[_ngcontent-%COMP%] ion-item-option.dcf-update[_ngcontent-%COMP%] .dcf-ti[_ngcontent-%COMP%], ion-item-sliding[_ngcontent-%COMP%] ion-item-option.dcf-update[_ngcontent-%COMP%] ion-icon[_ngcontent-%COMP%]{color:var(--ion-color-gray-7)!important}ion-item-sliding[class*=active-slide][_ngcontent-%COMP%]{border-color:var(--ion-color-gray-3)}ion-item-sliding[_ngcontent-%COMP%] ion-item-option[_ngcontent-%COMP%]{color:var(--ion-color-gray-5);box-shadow:inset 0 0 5px rgba(var(--ion-color-dark-rgb),.15)!important;background:var(--ion-color-gray-3)}"] }); }
5456
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ListItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
5457
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: ListItemComponent, isStandalone: true, selector: "ngx-decaf-list-item", inputs: { lines: "lines", item: "item", icon: "icon", iconSlot: "iconSlot", button: "button", title: "title", description: "description", info: "info", subinfo: "subinfo" }, outputs: { clickEvent: "clickEvent" }, host: { listeners: { "window:resize": "enableSlideItems($event)" } }, viewQueries: [{ propertyName: "actionMenuComponent", first: true, predicate: ["actionMenuComponent"], descendants: true }], usesInheritance: true, ngImport: i0, template: "\n@if(title || description) {\n <ion-item-sliding #component>\n <ion-item\n [lines]=\"lines\"\n [button]=\"button\"\n [class]=\"className\"\n (click)=\"operations?.includes('read') ? handleAction('read', $event, component) : ''\n \">\n @if(icon && lines !== 'inset') {\n <div class=\"dcf-icon\" [slot]=\"iconSlot\">\n <ion-button shape=\"round\" fill=\"clear\">\n <ion-icon aria-hidden=\"true\" name=\"reader-outline\" color=\"dark\" size=\"default\"></ion-icon>\n </ion-button>\n </div>\n }\n <div class=\"dcf-width-expand\">\n <div class=\"dcf-flex dcf-flex-middle dcf-grid-collapse\" dcf-grid>\n @if(icon && lines === 'inset') {\n <div class=\"dcf-icon dcf-grid-icon\">\n <ion-button shape=\"round\" fill=\"clear\">\n <ion-icon aria-hidden=\"true\" name=\"reader-outline\" color=\"dark\" size=\"default\"></ion-icon>\n </ion-button>\n </div>\n }\n <div class=\"dcf-width-expand@s dcf-width-1-1 dcf-label\">\n <ion-label class=\"dcf-item-title\" [innerHTML]=\"uid + ' - ' + title\" ></ion-label>\n <div *ngIf =\"description\" class=\"dcf-description\" [innerHTML]=\"description\"></div>\n </div>\n @if(info || subinfo) {\n <div class=\"dcf-width-auto@s dcf-width-expand dcf-info dcf-flex dcf-flex-right@s\">\n <div>\n <span *ngIf=\"info\" [innerHTML]=\"info\"></span>\n <div *ngIf=\"subinfo\" class=\"dcf-subinfo dcf-text-truncate\" [innerHTML]=\"subinfo\" ></div>\n </div>\n </div>\n }\n\n <div class=\"dcf-width-auto dcf-flex dcf-flex-middle dcf-flex-right\">\n @if((operations.includes('delete') || operations.includes('update')) && uid) {\n <div class=\"dcf-visible@m\" id=\"dcf-actions\">\n <ion-button class=\"dcf-hidden@m\" shape=\"round\" fill=\"clear\" color=\"primary\" (click)=\"presentActionsMenu($event)\">\n <ion-icon slot=\"icon-only\" aria-hidden=\"true\" name=\"ellipsis-vertical-outline\"></ion-icon>\n </ion-button>\n <ion-popover\n #actionMenuComponent\n side=\"bottom\"\n alignment=\"left\"\n\n [isOpen]=\"actionMenuOpen\"\n (didDismiss)=\"actionMenuOpen = false\">\n <ng-template>\n <ion-content class=\"ion-padding\">\n <ion-list lines=\"none\">\n <ion-list-header>\n <h4 class=\"dcf-text-capitalize\" [innerHTML]=\"'actions' | translate\"></h4>\n </ion-list-header>\n @for (operation of ['update', 'delete']; track operation) {\n @if(operations.includes(operation)) {\n <ion-item [button]=\"true\" (click)=\"handleAction(operation, $event, component)\">\n <ion-avatar class=\"dcf-flex dcf-flex-middle\" aria-hidden=\"true\" slot=\"start\">\n @if(operation === 'update') {\n <ion-icon color=\"primary\" aria-hidden=\"true\" name=\"create-outline\"></ion-icon>\n } @else {\n <ion-icon color=\"danger\" aria-hidden=\"true\" name=\"trash\"></ion-icon>\n }\n </ion-avatar>\n <ion-label class=\"dcf-text-capitalize\">{{ operation | translate }}</ion-label>\n </ion-item>\n }\n }\n </ion-list>\n </ion-content>\n </ng-template>\n </ion-popover>\n </div>\n }\n <!-- @if(operations?.length && uid) {\n <div class=\"dcf-visible@m\" id=\"dcf-actions\">\n @if(operations?.includes('update')) {\n <ion-button fill=\"clear\" size=\"small\" color=\"primary\" (click)=\"handleAction('update', component)\">\n <ion-icon aria-hidden=\"true\" slot=\"icon-only\" name=\"create-outline\"></ion-icon>\n </ion-button>\n }\n @if(operations?.includes('delete')) {\n <ion-button fill=\"clear\" size=\"small\" color=\"danger\" (click)=\"handleAction('delete', component)\">\n <ion-icon aria-hidden=\"true\" slot=\"icon-only\" name=\"trash\"></ion-icon>\n </ion-button>\n }\n </div>\n } -->\n @if(windowWidth > 768) {\n <div id=\"end\">\n <ng-content select=\"[slot='end']\"></ng-content>\n </div>\n }\n </div>\n </div>\n </div>\n </ion-item>\n @if(showSlideItems && uid) {\n <ion-item-options side=\"end\" (ionSwipe)=\"operations.length === 1 ? handleAction(operations[0], $event, component) : ''\">\n @if(operations?.includes('update')) {\n <ion-item-option class=\"update\" (click)=\"handleAction('update', $event, component)\" [expandable]=\"operations.length === 1\">\n <ion-icon aria-hidden=\"true\" slot=\"icon-only\" name=\"create-outline\"></ion-icon>\n </ion-item-option>\n }\n @if(operations?.includes('delete')) {\n <ion-item-option class=\"delete\" (click)=\"handleAction('delete', $event, component)\" [expandable]=\"operations.length === 1\">\n <ion-icon aria-hidden=\"true\" slot=\"icon-only\" name=\"trash\"></ion-icon>\n </ion-item-option>\n }\n </ion-item-options>\n }\n </ion-item-sliding>\n}\n", styles: ["ion-item{--min-height: 50px;--padding-top: .25rem;--padding-bottom: .25rem;--padding-start: .75rem;--padding-end: .75rem;--inner-padding-start: 0px !important;--inner-padding-end: 0px !important;--border-color: var(--ion-color-gray-2)}ion-item.item-lines-inset{--padding-top: 0rem !important;--padding-bottom: 0rem !important;--inner-padding-top: .5rem !important;--inner-padding-bottom: .65rem !important;--border-color: var(--ion-color-gray-2)}ion-item:hover .dcf-info{background:transparent!important}ion-item .dcf-info{min-width:10vw;color:var(--ion-color-gray-6)}ion-item .dcf-grid{padding:0!important;margin:0!important;min-width:100%!important}ion-item .dcf-item-title{color:var(--ion-color-gray-8);font-style:normal;font-weight:700}ion-item .dcf-description{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ion-color-gray-6);font-style:normal;font-weight:400;font-size:.925rem}ion-item::part(native){min-width:100%}ion-item [slot=start]{margin-right:.5rem!important}ion-item [slot=end]{margin-left:.5rem!important}ion-item .dcf-info{font-size:.9rem;background:#fff}ion-item .dcf-info .dcf-subinfo.dcf-line{margin-left:.5rem}@media (min-width: var(--dcf-width-sm)){ion-item .dcf-info .dcf-subinfo.dcf-line{display:block;margin-left:0}}ion-item #dcf-actions{padding:5px}@media (max-width: 768px){ion-item #dcf-actions{display:none;pointer-events:none!important;cursor:text!important}ion-item #dcf-actions *{display:none;pointer-events:none!important;cursor:text!important}}ion-item #dcf-actions ion-button{--padding-start: 1rem;--padding-end: .75rem;--padding-top: .85rem !important;--padding-bottom: .85rem !important;color:#ccc;margin-right:.5rem!important;--background: var(--ion-color-gray-2) !important}ion-item #dcf-actions ion-button ion-icon{position:relative;left:-1px}@media (max-width: 768px){ion-item #dcf-end,ion-item [slot=end]{display:none!important}}ion-item #dcf-end{padding-top:5px;display:flex;align-items:flex-end}ion-item .dcf-icon{display:flex;justify-content:center;align-items:center;text-align:center;margin-right:.5rem!important}ion-item .dcf-icon.dcf-grid-icon{min-width:50px;text-align:left;display:flex;justify-content:flex-start}@media (max-width: 578px){ion-item .dcf-icon{align-items:flex-start!important}}ion-item .dcf-icon ion-button{color:var(--dcf-color-gray-3);--padding-start: 1rem;--padding-end: .85rem;--padding-top: .85rem !important;--padding-bottom: .85rem !important;--background: var(--ion-color-gray-1) !important}ion-item .dcf-icon ion-button ion-icon{font-size:20px}ion-item .dcf-icon ion-avatar{transform:scale(.9);background:var(--ion-color-gray-1);display:flex;justify-content:center;align-items:center;text-align:center;box-sizing:border-box!important}ion-item .dcf-icon ion-avatar .dcf-icon-large{transform:translateY(5px)}ion-item-sliding{box-sizing:border-box}ion-item-sliding ion-item-option:not(.dcf-delete),ion-item-sliding ion-item-option:not(.dcf-update){background:rgba(var(--ion-color-dark-rgb),.25)!important}ion-item-sliding ion-item-option:not(.dcf-delete) .dcf-ti,ion-item-sliding ion-item-option:not(.dcf-delete) ion-icon,ion-item-sliding ion-item-option:not(.dcf-update) .dcf-ti,ion-item-sliding ion-item-option:not(.dcf-update) ion-icon{color:var(--ion-color-gray-7)!important}ion-item-sliding ion-item-option.dcf-delete{background:rgba(var(--ion-color-danger-rgb),.15)!important}ion-item-sliding ion-item-option.dcf-delete .dcf-ti,ion-item-sliding ion-item-option.dcf-delete *,ion-item-sliding ion-item-option.dcf-delete ion-icon{color:var(--ion-color-danger)!important}ion-item-sliding ion-item-option.dcf-update{background:rgba(var(--ion-color-primary-rgb),.25)!important}ion-item-sliding ion-item-option.dcf-update .dcf-ti,ion-item-sliding ion-item-option.dcf-update ion-icon{color:var(--ion-color-gray-7)!important}ion-item-sliding[class*=active-slide]{border-color:var(--ion-color-gray-3)}ion-item-sliding ion-item-option{color:var(--ion-color-gray-5);box-shadow:inset 0 0 5px rgba(var(--ion-color-dark-rgb),.15)!important;background:var(--ion-color-gray-3)}\n"], dependencies: [{ kind: "ngmodule", type: ForAngularModule }, { kind: "component", type: i1.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i1.IonContent, selector: "ion-content", inputs: ["color", "fixedSlotPlacement", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }, { kind: "component", type: IonList, selector: "ion-list", inputs: ["inset", "lines", "mode"] }, { kind: "component", type: IonListHeader, selector: "ion-list-header", inputs: ["color", "lines", "mode"] }, { kind: "component", type: IonItem, selector: "ion-item", inputs: ["button", "color", "detail", "detailIcon", "disabled", "download", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: IonItemSliding, selector: "ion-item-sliding", inputs: ["disabled"] }, { kind: "component", type: IonItemOptions, selector: "ion-item-options", inputs: ["side"] }, { kind: "component", type: IonItemOption, selector: "ion-item-option", inputs: ["color", "disabled", "download", "expandable", "href", "mode", "rel", "target", "type"] }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: IonPopover, selector: "ion-popover" }] }); }
6430
5458
  };
6431
5459
  ListItemComponent = __decorate([
6432
5460
  Dynamic(),
6433
5461
  __metadata("design:paramtypes", [])
6434
5462
  ], ListItemComponent);
6435
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ListItemComponent, [{
6436
- type: Component,
6437
- args: [{ selector: 'ngx-decaf-list-item', standalone: true, imports: [
6438
- ForAngularModule,
6439
- IonList,
6440
- IonListHeader,
6441
- IonItem,
6442
- IonItemSliding,
6443
- IonItemOptions,
6444
- IonItemOption,
6445
- IonIcon,
6446
- IonLabel,
6447
- IonButton,
6448
- IonContent,
6449
- IonPopover
6450
- ], template: "\n@if(title || description) {\n <ion-item-sliding #component>\n <ion-item\n [lines]=\"lines\"\n [button]=\"button\"\n [class]=\"className\"\n (click)=\"operations?.includes('read') ? handleAction('read', $event, component) : ''\n \">\n @if(icon && lines !== 'inset') {\n <div class=\"dcf-icon\" [slot]=\"iconSlot\">\n <ion-button shape=\"round\" fill=\"clear\">\n <ion-icon aria-hidden=\"true\" name=\"reader-outline\" color=\"dark\" size=\"default\"></ion-icon>\n </ion-button>\n </div>\n }\n <div class=\"dcf-width-expand\">\n <div class=\"dcf-flex dcf-flex-middle dcf-grid-collapse\" dcf-grid>\n @if(icon && lines === 'inset') {\n <div class=\"dcf-icon dcf-grid-icon\">\n <ion-button shape=\"round\" fill=\"clear\">\n <ion-icon aria-hidden=\"true\" name=\"reader-outline\" color=\"dark\" size=\"default\"></ion-icon>\n </ion-button>\n </div>\n }\n <div class=\"dcf-width-expand@s dcf-width-1-1 dcf-label\">\n <ion-label class=\"dcf-item-title\" [innerHTML]=\"uid + ' - ' + title\" ></ion-label>\n <div *ngIf =\"description\" class=\"dcf-description\" [innerHTML]=\"description\"></div>\n </div>\n @if(info || subinfo) {\n <div class=\"dcf-width-auto@s dcf-width-expand dcf-info dcf-flex dcf-flex-right@s\">\n <div>\n <span *ngIf=\"info\" [innerHTML]=\"info\"></span>\n <div *ngIf=\"subinfo\" class=\"dcf-subinfo dcf-text-truncate\" [innerHTML]=\"subinfo\" ></div>\n </div>\n </div>\n }\n\n <div class=\"dcf-width-auto dcf-flex dcf-flex-middle dcf-flex-right\">\n @if((operations.includes('delete') || operations.includes('update')) && uid) {\n <div class=\"dcf-visible@m\" id=\"dcf-actions\">\n <ion-button class=\"dcf-hidden@m\" shape=\"round\" fill=\"clear\" color=\"primary\" (click)=\"presentActionsMenu($event)\">\n <ion-icon slot=\"icon-only\" aria-hidden=\"true\" name=\"ellipsis-vertical-outline\"></ion-icon>\n </ion-button>\n <ion-popover\n #actionMenuComponent\n side=\"bottom\"\n alignment=\"left\"\n\n [isOpen]=\"actionMenuOpen\"\n (didDismiss)=\"actionMenuOpen = false\">\n <ng-template>\n <ion-content class=\"ion-padding\">\n <ion-list lines=\"none\">\n <ion-list-header>\n <h4 class=\"dcf-text-capitalize\" [innerHTML]=\"'actions' | translate\"></h4>\n </ion-list-header>\n @for (operation of ['update', 'delete']; track operation) {\n @if(operations.includes(operation)) {\n <ion-item [button]=\"true\" (click)=\"handleAction(operation, $event, component)\">\n <ion-avatar class=\"dcf-flex dcf-flex-middle\" aria-hidden=\"true\" slot=\"start\">\n @if(operation === 'update') {\n <ion-icon color=\"primary\" aria-hidden=\"true\" name=\"create-outline\"></ion-icon>\n } @else {\n <ion-icon color=\"danger\" aria-hidden=\"true\" name=\"trash\"></ion-icon>\n }\n </ion-avatar>\n <ion-label class=\"dcf-text-capitalize\">{{ operation | translate }}</ion-label>\n </ion-item>\n }\n }\n </ion-list>\n </ion-content>\n </ng-template>\n </ion-popover>\n </div>\n }\n <!-- @if(operations?.length && uid) {\n <div class=\"dcf-visible@m\" id=\"dcf-actions\">\n @if(operations?.includes('update')) {\n <ion-button fill=\"clear\" size=\"small\" color=\"primary\" (click)=\"handleAction('update', component)\">\n <ion-icon aria-hidden=\"true\" slot=\"icon-only\" name=\"create-outline\"></ion-icon>\n </ion-button>\n }\n @if(operations?.includes('delete')) {\n <ion-button fill=\"clear\" size=\"small\" color=\"danger\" (click)=\"handleAction('delete', component)\">\n <ion-icon aria-hidden=\"true\" slot=\"icon-only\" name=\"trash\"></ion-icon>\n </ion-button>\n }\n </div>\n } -->\n @if(windowWidth > 768) {\n <div id=\"end\">\n <ng-content select=\"[slot='end']\"></ng-content>\n </div>\n }\n </div>\n </div>\n </div>\n </ion-item>\n @if(showSlideItems && uid) {\n <ion-item-options side=\"end\" (ionSwipe)=\"operations.length === 1 ? handleAction(operations[0], $event, component) : ''\">\n @if(operations?.includes('update')) {\n <ion-item-option class=\"update\" (click)=\"handleAction('update', $event, component)\" [expandable]=\"operations.length === 1\">\n <ion-icon aria-hidden=\"true\" slot=\"icon-only\" name=\"create-outline\"></ion-icon>\n </ion-item-option>\n }\n @if(operations?.includes('delete')) {\n <ion-item-option class=\"delete\" (click)=\"handleAction('delete', $event, component)\" [expandable]=\"operations.length === 1\">\n <ion-icon aria-hidden=\"true\" slot=\"icon-only\" name=\"trash\"></ion-icon>\n </ion-item-option>\n }\n </ion-item-options>\n }\n </ion-item-sliding>\n}\n", styles: ["ion-item{--min-height: 50px;--padding-top: .25rem;--padding-bottom: .25rem;--padding-start: .75rem;--padding-end: .75rem;--inner-padding-start: 0px !important;--inner-padding-end: 0px !important;--border-color: var(--ion-color-gray-2)}ion-item.item-lines-inset{--padding-top: 0rem !important;--padding-bottom: 0rem !important;--inner-padding-top: .5rem !important;--inner-padding-bottom: .65rem !important;--border-color: var(--ion-color-gray-2)}ion-item:hover .dcf-info{background:transparent!important}ion-item .dcf-info{min-width:10vw;color:var(--ion-color-gray-6)}ion-item .dcf-grid{padding:0!important;margin:0!important;min-width:100%!important}ion-item .dcf-item-title{color:var(--ion-color-gray-8);font-style:normal;font-weight:700}ion-item .dcf-description{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ion-color-gray-6);font-style:normal;font-weight:400;font-size:.925rem}ion-item::part(native){min-width:100%}ion-item [slot=start]{margin-right:.5rem!important}ion-item [slot=end]{margin-left:.5rem!important}ion-item .dcf-info{font-size:.9rem;background:#fff}ion-item .dcf-info .dcf-subinfo.dcf-line{margin-left:.5rem}@media (min-width: var(--dcf-width-sm)){ion-item .dcf-info .dcf-subinfo.dcf-line{display:block;margin-left:0}}ion-item #dcf-actions{padding:5px}@media (max-width: 768px){ion-item #dcf-actions{display:none;pointer-events:none!important;cursor:text!important}ion-item #dcf-actions *{display:none;pointer-events:none!important;cursor:text!important}}ion-item #dcf-actions ion-button{--padding-start: 1rem;--padding-end: .75rem;--padding-top: .85rem !important;--padding-bottom: .85rem !important;color:#ccc;margin-right:.5rem!important;--background: var(--ion-color-gray-2) !important}ion-item #dcf-actions ion-button ion-icon{position:relative;left:-1px}@media (max-width: 768px){ion-item #dcf-end,ion-item [slot=end]{display:none!important}}ion-item #dcf-end{padding-top:5px;display:flex;align-items:flex-end}ion-item .dcf-icon{display:flex;justify-content:center;align-items:center;text-align:center;margin-right:.5rem!important}ion-item .dcf-icon.dcf-grid-icon{min-width:50px;text-align:left;display:flex;justify-content:flex-start}@media (max-width: 578px){ion-item .dcf-icon{align-items:flex-start!important}}ion-item .dcf-icon ion-button{color:var(--dcf-color-gray-3);--padding-start: 1rem;--padding-end: .85rem;--padding-top: .85rem !important;--padding-bottom: .85rem !important;--background: var(--ion-color-gray-1) !important}ion-item .dcf-icon ion-button ion-icon{font-size:20px}ion-item .dcf-icon ion-avatar{transform:scale(.9);background:var(--ion-color-gray-1);display:flex;justify-content:center;align-items:center;text-align:center;box-sizing:border-box!important}ion-item .dcf-icon ion-avatar .dcf-icon-large{transform:translateY(5px)}ion-item-sliding{box-sizing:border-box}ion-item-sliding ion-item-option:not(.dcf-delete),ion-item-sliding ion-item-option:not(.dcf-update){background:rgba(var(--ion-color-dark-rgb),.25)!important}ion-item-sliding ion-item-option:not(.dcf-delete) .dcf-ti,ion-item-sliding ion-item-option:not(.dcf-delete) ion-icon,ion-item-sliding ion-item-option:not(.dcf-update) .dcf-ti,ion-item-sliding ion-item-option:not(.dcf-update) ion-icon{color:var(--ion-color-gray-7)!important}ion-item-sliding ion-item-option.dcf-delete{background:rgba(var(--ion-color-danger-rgb),.15)!important}ion-item-sliding ion-item-option.dcf-delete .dcf-ti,ion-item-sliding ion-item-option.dcf-delete *,ion-item-sliding ion-item-option.dcf-delete ion-icon{color:var(--ion-color-danger)!important}ion-item-sliding ion-item-option.dcf-update{background:rgba(var(--ion-color-primary-rgb),.25)!important}ion-item-sliding ion-item-option.dcf-update .dcf-ti,ion-item-sliding ion-item-option.dcf-update ion-icon{color:var(--ion-color-gray-7)!important}ion-item-sliding[class*=active-slide]{border-color:var(--ion-color-gray-3)}ion-item-sliding ion-item-option{color:var(--ion-color-gray-5);box-shadow:inset 0 0 5px rgba(var(--ion-color-dark-rgb),.15)!important;background:var(--ion-color-gray-3)}\n"] }]
6451
- }], () => [], { actionMenuComponent: [{
6452
- type: ViewChild,
6453
- args: ['actionMenuComponent']
6454
- }], lines: [{
6455
- type: Input
6456
- }], item: [{
6457
- type: Input
6458
- }], icon: [{
6459
- type: Input
6460
- }], iconSlot: [{
6461
- type: Input
6462
- }], button: [{
6463
- type: Input
6464
- }], title: [{
6465
- type: Input
6466
- }], description: [{
6467
- type: Input
6468
- }], info: [{
6469
- type: Input
6470
- }], subinfo: [{
6471
- type: Input
6472
- }], clickEvent: [{
6473
- type: Output
6474
- }], enableSlideItems: [{
6475
- type: HostListener,
6476
- args: ['window:resize', ['$event']]
6477
- }] }); })();
6478
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ListItemComponent, { className: "ListItemComponent", filePath: "components/list-item/list-item.component.ts", lineNumber: 87 }); })();
5463
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ListItemComponent, decorators: [{
5464
+ type: Component,
5465
+ args: [{ selector: 'ngx-decaf-list-item', standalone: true, imports: [
5466
+ ForAngularModule,
5467
+ IonList,
5468
+ IonListHeader,
5469
+ IonItem,
5470
+ IonItemSliding,
5471
+ IonItemOptions,
5472
+ IonItemOption,
5473
+ IonIcon,
5474
+ IonLabel,
5475
+ IonButton,
5476
+ IonContent,
5477
+ IonPopover
5478
+ ], template: "\n@if(title || description) {\n <ion-item-sliding #component>\n <ion-item\n [lines]=\"lines\"\n [button]=\"button\"\n [class]=\"className\"\n (click)=\"operations?.includes('read') ? handleAction('read', $event, component) : ''\n \">\n @if(icon && lines !== 'inset') {\n <div class=\"dcf-icon\" [slot]=\"iconSlot\">\n <ion-button shape=\"round\" fill=\"clear\">\n <ion-icon aria-hidden=\"true\" name=\"reader-outline\" color=\"dark\" size=\"default\"></ion-icon>\n </ion-button>\n </div>\n }\n <div class=\"dcf-width-expand\">\n <div class=\"dcf-flex dcf-flex-middle dcf-grid-collapse\" dcf-grid>\n @if(icon && lines === 'inset') {\n <div class=\"dcf-icon dcf-grid-icon\">\n <ion-button shape=\"round\" fill=\"clear\">\n <ion-icon aria-hidden=\"true\" name=\"reader-outline\" color=\"dark\" size=\"default\"></ion-icon>\n </ion-button>\n </div>\n }\n <div class=\"dcf-width-expand@s dcf-width-1-1 dcf-label\">\n <ion-label class=\"dcf-item-title\" [innerHTML]=\"uid + ' - ' + title\" ></ion-label>\n <div *ngIf =\"description\" class=\"dcf-description\" [innerHTML]=\"description\"></div>\n </div>\n @if(info || subinfo) {\n <div class=\"dcf-width-auto@s dcf-width-expand dcf-info dcf-flex dcf-flex-right@s\">\n <div>\n <span *ngIf=\"info\" [innerHTML]=\"info\"></span>\n <div *ngIf=\"subinfo\" class=\"dcf-subinfo dcf-text-truncate\" [innerHTML]=\"subinfo\" ></div>\n </div>\n </div>\n }\n\n <div class=\"dcf-width-auto dcf-flex dcf-flex-middle dcf-flex-right\">\n @if((operations.includes('delete') || operations.includes('update')) && uid) {\n <div class=\"dcf-visible@m\" id=\"dcf-actions\">\n <ion-button class=\"dcf-hidden@m\" shape=\"round\" fill=\"clear\" color=\"primary\" (click)=\"presentActionsMenu($event)\">\n <ion-icon slot=\"icon-only\" aria-hidden=\"true\" name=\"ellipsis-vertical-outline\"></ion-icon>\n </ion-button>\n <ion-popover\n #actionMenuComponent\n side=\"bottom\"\n alignment=\"left\"\n\n [isOpen]=\"actionMenuOpen\"\n (didDismiss)=\"actionMenuOpen = false\">\n <ng-template>\n <ion-content class=\"ion-padding\">\n <ion-list lines=\"none\">\n <ion-list-header>\n <h4 class=\"dcf-text-capitalize\" [innerHTML]=\"'actions' | translate\"></h4>\n </ion-list-header>\n @for (operation of ['update', 'delete']; track operation) {\n @if(operations.includes(operation)) {\n <ion-item [button]=\"true\" (click)=\"handleAction(operation, $event, component)\">\n <ion-avatar class=\"dcf-flex dcf-flex-middle\" aria-hidden=\"true\" slot=\"start\">\n @if(operation === 'update') {\n <ion-icon color=\"primary\" aria-hidden=\"true\" name=\"create-outline\"></ion-icon>\n } @else {\n <ion-icon color=\"danger\" aria-hidden=\"true\" name=\"trash\"></ion-icon>\n }\n </ion-avatar>\n <ion-label class=\"dcf-text-capitalize\">{{ operation | translate }}</ion-label>\n </ion-item>\n }\n }\n </ion-list>\n </ion-content>\n </ng-template>\n </ion-popover>\n </div>\n }\n <!-- @if(operations?.length && uid) {\n <div class=\"dcf-visible@m\" id=\"dcf-actions\">\n @if(operations?.includes('update')) {\n <ion-button fill=\"clear\" size=\"small\" color=\"primary\" (click)=\"handleAction('update', component)\">\n <ion-icon aria-hidden=\"true\" slot=\"icon-only\" name=\"create-outline\"></ion-icon>\n </ion-button>\n }\n @if(operations?.includes('delete')) {\n <ion-button fill=\"clear\" size=\"small\" color=\"danger\" (click)=\"handleAction('delete', component)\">\n <ion-icon aria-hidden=\"true\" slot=\"icon-only\" name=\"trash\"></ion-icon>\n </ion-button>\n }\n </div>\n } -->\n @if(windowWidth > 768) {\n <div id=\"end\">\n <ng-content select=\"[slot='end']\"></ng-content>\n </div>\n }\n </div>\n </div>\n </div>\n </ion-item>\n @if(showSlideItems && uid) {\n <ion-item-options side=\"end\" (ionSwipe)=\"operations.length === 1 ? handleAction(operations[0], $event, component) : ''\">\n @if(operations?.includes('update')) {\n <ion-item-option class=\"update\" (click)=\"handleAction('update', $event, component)\" [expandable]=\"operations.length === 1\">\n <ion-icon aria-hidden=\"true\" slot=\"icon-only\" name=\"create-outline\"></ion-icon>\n </ion-item-option>\n }\n @if(operations?.includes('delete')) {\n <ion-item-option class=\"delete\" (click)=\"handleAction('delete', $event, component)\" [expandable]=\"operations.length === 1\">\n <ion-icon aria-hidden=\"true\" slot=\"icon-only\" name=\"trash\"></ion-icon>\n </ion-item-option>\n }\n </ion-item-options>\n }\n </ion-item-sliding>\n}\n", styles: ["ion-item{--min-height: 50px;--padding-top: .25rem;--padding-bottom: .25rem;--padding-start: .75rem;--padding-end: .75rem;--inner-padding-start: 0px !important;--inner-padding-end: 0px !important;--border-color: var(--ion-color-gray-2)}ion-item.item-lines-inset{--padding-top: 0rem !important;--padding-bottom: 0rem !important;--inner-padding-top: .5rem !important;--inner-padding-bottom: .65rem !important;--border-color: var(--ion-color-gray-2)}ion-item:hover .dcf-info{background:transparent!important}ion-item .dcf-info{min-width:10vw;color:var(--ion-color-gray-6)}ion-item .dcf-grid{padding:0!important;margin:0!important;min-width:100%!important}ion-item .dcf-item-title{color:var(--ion-color-gray-8);font-style:normal;font-weight:700}ion-item .dcf-description{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ion-color-gray-6);font-style:normal;font-weight:400;font-size:.925rem}ion-item::part(native){min-width:100%}ion-item [slot=start]{margin-right:.5rem!important}ion-item [slot=end]{margin-left:.5rem!important}ion-item .dcf-info{font-size:.9rem;background:#fff}ion-item .dcf-info .dcf-subinfo.dcf-line{margin-left:.5rem}@media (min-width: var(--dcf-width-sm)){ion-item .dcf-info .dcf-subinfo.dcf-line{display:block;margin-left:0}}ion-item #dcf-actions{padding:5px}@media (max-width: 768px){ion-item #dcf-actions{display:none;pointer-events:none!important;cursor:text!important}ion-item #dcf-actions *{display:none;pointer-events:none!important;cursor:text!important}}ion-item #dcf-actions ion-button{--padding-start: 1rem;--padding-end: .75rem;--padding-top: .85rem !important;--padding-bottom: .85rem !important;color:#ccc;margin-right:.5rem!important;--background: var(--ion-color-gray-2) !important}ion-item #dcf-actions ion-button ion-icon{position:relative;left:-1px}@media (max-width: 768px){ion-item #dcf-end,ion-item [slot=end]{display:none!important}}ion-item #dcf-end{padding-top:5px;display:flex;align-items:flex-end}ion-item .dcf-icon{display:flex;justify-content:center;align-items:center;text-align:center;margin-right:.5rem!important}ion-item .dcf-icon.dcf-grid-icon{min-width:50px;text-align:left;display:flex;justify-content:flex-start}@media (max-width: 578px){ion-item .dcf-icon{align-items:flex-start!important}}ion-item .dcf-icon ion-button{color:var(--dcf-color-gray-3);--padding-start: 1rem;--padding-end: .85rem;--padding-top: .85rem !important;--padding-bottom: .85rem !important;--background: var(--ion-color-gray-1) !important}ion-item .dcf-icon ion-button ion-icon{font-size:20px}ion-item .dcf-icon ion-avatar{transform:scale(.9);background:var(--ion-color-gray-1);display:flex;justify-content:center;align-items:center;text-align:center;box-sizing:border-box!important}ion-item .dcf-icon ion-avatar .dcf-icon-large{transform:translateY(5px)}ion-item-sliding{box-sizing:border-box}ion-item-sliding ion-item-option:not(.dcf-delete),ion-item-sliding ion-item-option:not(.dcf-update){background:rgba(var(--ion-color-dark-rgb),.25)!important}ion-item-sliding ion-item-option:not(.dcf-delete) .dcf-ti,ion-item-sliding ion-item-option:not(.dcf-delete) ion-icon,ion-item-sliding ion-item-option:not(.dcf-update) .dcf-ti,ion-item-sliding ion-item-option:not(.dcf-update) ion-icon{color:var(--ion-color-gray-7)!important}ion-item-sliding ion-item-option.dcf-delete{background:rgba(var(--ion-color-danger-rgb),.15)!important}ion-item-sliding ion-item-option.dcf-delete .dcf-ti,ion-item-sliding ion-item-option.dcf-delete *,ion-item-sliding ion-item-option.dcf-delete ion-icon{color:var(--ion-color-danger)!important}ion-item-sliding ion-item-option.dcf-update{background:rgba(var(--ion-color-primary-rgb),.25)!important}ion-item-sliding ion-item-option.dcf-update .dcf-ti,ion-item-sliding ion-item-option.dcf-update ion-icon{color:var(--ion-color-gray-7)!important}ion-item-sliding[class*=active-slide]{border-color:var(--ion-color-gray-3)}ion-item-sliding ion-item-option{color:var(--ion-color-gray-5);box-shadow:inset 0 0 5px rgba(var(--ion-color-dark-rgb),.15)!important;background:var(--ion-color-gray-3)}\n"] }]
5479
+ }], ctorParameters: () => [], propDecorators: { actionMenuComponent: [{
5480
+ type: ViewChild,
5481
+ args: ['actionMenuComponent']
5482
+ }], lines: [{
5483
+ type: Input
5484
+ }], item: [{
5485
+ type: Input
5486
+ }], icon: [{
5487
+ type: Input
5488
+ }], iconSlot: [{
5489
+ type: Input
5490
+ }], button: [{
5491
+ type: Input
5492
+ }], title: [{
5493
+ type: Input
5494
+ }], description: [{
5495
+ type: Input
5496
+ }], info: [{
5497
+ type: Input
5498
+ }], subinfo: [{
5499
+ type: Input
5500
+ }], clickEvent: [{
5501
+ type: Output
5502
+ }], enableSlideItems: [{
5503
+ type: HostListener,
5504
+ args: ['window:resize', ['$event']]
5505
+ }] } });
6479
5506
 
6480
- const _c0$1 = (a0, a1) => ({ value0: a0, value1: a1 });
6481
- const _c1$1 = a0 => ({ "dcf-disabled": a0 });
6482
- const _c2 = (a0, a1) => ({ "dcf-active": a0, "dcf-disabled": a1 });
6483
- function PaginationComponent_For_9_Template(rf, ctx) { if (rf & 1) {
6484
- const _r2 = i0.ɵɵgetCurrentView();
6485
- i0.ɵɵelementStart(0, "div", 8);
6486
- i0.ɵɵlistener("click", function PaginationComponent_For_9_Template_div_click_0_listener() { const page_r3 = i0.ɵɵrestoreView(_r2).$implicit; const ctx_r3 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r3.navigate(page_r3["index"])); })("keydown.enter", function PaginationComponent_For_9_Template_div_keydown_enter_0_listener() { const page_r3 = i0.ɵɵrestoreView(_r2).$implicit; const ctx_r3 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r3.navigate(page_r3["index"])); });
6487
- i0.ɵɵelementStart(1, "span", 10);
6488
- i0.ɵɵtext(2);
6489
- i0.ɵɵelementEnd()();
6490
- } if (rf & 2) {
6491
- const page_r3 = ctx.$implicit;
6492
- const ctx_r3 = i0.ɵɵnextContext();
6493
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction2(2, _c2, ctx_r3.current === page_r3["index"], page_r3["index"] === ctx_r3.ndivl));
6494
- i0.ɵɵadvance(2);
6495
- i0.ɵɵtextInterpolate(page_r3["text"]);
6496
- } }
6497
5507
  /**
6498
5508
  * @description A pagination component for navigating through multiple pages of content.
6499
5509
  * @summary This component provides a user interface for paginated content navigation,
@@ -6789,47 +5799,23 @@ class PaginationComponent extends NgxBaseComponent {
6789
5799
  if (page !== null && this.current !== page)
6790
5800
  this.handleClick(page > this.current ? 'next' : 'previous', page);
6791
5801
  }
6792
- static { this.ɵfac = function PaginationComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || PaginationComponent)(); }; }
6793
- static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PaginationComponent, selectors: [["ngx-decaf-pagination"]], inputs: { totalPages: "totalPages", current: "current" }, outputs: { clickEvent: "clickEvent" }, standalone: true, features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature], decls: 12, vars: 13, consts: [["paginationComponent", ""], ["id", "dcf-paginator-container", 1, "dcf-flex", "dcf-flex-center"], [1, "dcf-width-1-1"], [1, "dcf-pagination-resume", 3, "innerHTML"], [1, "dcf-pagination", "aeon-pagination", "dcf-flex-center"], ["aria-label", "previous", "tabindex", "0", 3, "click", "keydown.enter", "ngClass"], ["name", "chevron-back-outline", "aria-hidden", "true"], ["tabindex", "0", 3, "ngClass"], ["tabindex", "0", 3, "click", "keydown.enter", "ngClass"], ["name", "chevron-forward-outline", "aria-hidden", "true"], [1, "page-item"]], template: function PaginationComponent_Template(rf, ctx) { if (rf & 1) {
6794
- const _r1 = i0.ɵɵgetCurrentView();
6795
- i0.ɵɵelementStart(0, "div", 1)(1, "div", 2);
6796
- i0.ɵɵelement(2, "div", 3);
6797
- i0.ɵɵpipe(3, "translate");
6798
- i0.ɵɵelementStart(4, "div", 4, 0)(6, "div", 5);
6799
- i0.ɵɵlistener("click", function PaginationComponent_Template_div_click_6_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.previous()); })("keydown.enter", function PaginationComponent_Template_div_keydown_enter_6_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.previous()); });
6800
- i0.ɵɵelement(7, "ion-icon", 6);
6801
- i0.ɵɵelementEnd();
6802
- i0.ɵɵrepeaterCreate(8, PaginationComponent_For_9_Template, 3, 5, "div", 7, i0.ɵɵrepeaterTrackByIdentity);
6803
- i0.ɵɵelementStart(10, "div", 8);
6804
- i0.ɵɵlistener("click", function PaginationComponent_Template_div_click_10_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.next()); })("keydown.enter", function PaginationComponent_Template_div_keydown_enter_10_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.next()); });
6805
- i0.ɵɵelement(11, "ion-icon", 9);
6806
- i0.ɵɵelementEnd()()()();
6807
- } if (rf & 2) {
6808
- i0.ɵɵadvance(2);
6809
- i0.ɵɵproperty("innerHTML", i0.ɵɵpipeBind2(3, 3, ctx.locale + ".resume", i0.ɵɵpureFunction2(6, _c0$1, ctx.current, ctx.last)), i0.ɵɵsanitizeHtml);
6810
- i0.ɵɵadvance(4);
6811
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(9, _c1$1, ctx.current === 1));
6812
- i0.ɵɵadvance(2);
6813
- i0.ɵɵrepeater(ctx.pages);
6814
- i0.ɵɵadvance(2);
6815
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(11, _c1$1, ctx.current === ctx.last));
6816
- } }, dependencies: [ForAngularModule, i2.NgClass, i3.TranslatePipe, IonIcon], styles: ["#dcf-paginator-container[_ngcontent-%COMP%]{margin-bottom:1rem}.dcf-pagination[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;align-items:center;margin-left:0;padding:0;list-style:none}.dcf-pagination[_ngcontent-%COMP%] .page-item[_ngcontent-%COMP%]{display:flex;justify-content:center;align-items:top;color:var(--ion-color-gray-7);font-weight:600;width:36px;line-height:34px;padding:0!important;border-radius:50%;box-sizing:border-box}.dcf-pagination[_ngcontent-%COMP%] > *[_ngcontent-%COMP%]{flex:none;padding-left:0;position:relative;margin:0px .15rem}.dcf-pagination[_ngcontent-%COMP%] > *[_ngcontent-%COMP%]:not(.disabled){cursor:pointer}.dcf-pagination[_ngcontent-%COMP%] > *[_ngcontent-%COMP%]:hover .page-item[_ngcontent-%COMP%]{color:var(--ion-color-primary)}.dcf-pagination[_ngcontent-%COMP%] > *[_ngcontent-%COMP%] .page-item[_ngcontent-%COMP%]{color:var(--ion-color-gray-7);font-weight:600}.dcf-pagination[_ngcontent-%COMP%] > *.dcf-active[_ngcontent-%COMP%] .page-item[_ngcontent-%COMP%]{background:rgba(var(--ion-color-primary-rgb),.15)}.dcf-pagination[_ngcontent-%COMP%] > *[_ngcontent-%COMP%] > *[_ngcontent-%COMP%]{display:flex;align-items:center;column-gap:.25em;padding:5px 10px;color:var(--ion-color-gray-8);transition:color .1s ease-in-out}.dcf-pagination[_ngcontent-%COMP%] > *[_ngcontent-%COMP%] > [_ngcontent-%COMP%]:hover{color:var(--ion-color-gray-6);text-decoration:none}.dcf-pagination[_ngcontent-%COMP%] .dcf-disabled[_ngcontent-%COMP%] > *[_ngcontent-%COMP%]{opacity:.5;color:var(--ion-color-gray-6)}.dcf-pagination-resume[_ngcontent-%COMP%]{color:var(--ion-color-gray-8);margin:1rem 0px;text-align:center}"] }); }
5802
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PaginationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
5803
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: PaginationComponent, isStandalone: true, selector: "ngx-decaf-pagination", inputs: { totalPages: "totalPages", current: "current" }, outputs: { clickEvent: "clickEvent" }, usesInheritance: true, ngImport: i0, template: " <div id=\"dcf-paginator-container\" class=\"dcf-flex dcf-flex-center\">\n <div class=\"dcf-width-1-1\">\n <div class=\"dcf-pagination-resume\" [innerHTML]=\"locale + '.resume' | translate: {value0: current, value1: last}\"></div>\n <div #paginationComponent class=\"dcf-pagination aeon-pagination dcf-flex-center\">\n <div\n aria-label=\"previous\"\n tabindex=\"0\"\n (click)=\"previous()\"\n (keydown.enter)=\"previous()\" [ngClass]=\"{'dcf-disabled': current === 1}\">\n <ion-icon name=\"chevron-back-outline\" aria-hidden=\"true\"></ion-icon>\n </div>\n @for(page of pages; track page) {\n <div tabindex=\"0\" (click)=\"navigate(page['index'])\"\n (keydown.enter)=\"navigate(page['index'])\"\n [ngClass]=\"{'dcf-active': current === page['index'], 'dcf-disabled': page['index'] === ndivl}\">\n <span class=\"page-item\">{{ page['text'] }}</span>\n </div>\n }\n <div\n tabindex=\"0\" (click)=\"next()\"\n (keydown.enter)=\"next()\"\n [ngClass]=\"{'dcf-disabled': current === last}\">\n <ion-icon name=\"chevron-forward-outline\" aria-hidden=\"true\"></ion-icon>\n </div>\n </div>\n </div>\n</div>\n", styles: ["#dcf-paginator-container{margin-bottom:1rem}.dcf-pagination{display:flex;flex-wrap:wrap;align-items:center;margin-left:0;padding:0;list-style:none}.dcf-pagination .page-item{display:flex;justify-content:center;align-items:top;color:var(--ion-color-gray-7);font-weight:600;width:36px;line-height:34px;padding:0!important;border-radius:50%;box-sizing:border-box}.dcf-pagination>*{flex:none;padding-left:0;position:relative;margin:0px .15rem}.dcf-pagination>*:not(.disabled){cursor:pointer}.dcf-pagination>*:hover .page-item{color:var(--ion-color-primary)}.dcf-pagination>* .page-item{color:var(--ion-color-gray-7);font-weight:600}.dcf-pagination>*.dcf-active .page-item{background:rgba(var(--ion-color-primary-rgb),.15)}.dcf-pagination>*>*{display:flex;align-items:center;column-gap:.25em;padding:5px 10px;color:var(--ion-color-gray-8);transition:color .1s ease-in-out}.dcf-pagination>*>:hover{color:var(--ion-color-gray-6);text-decoration:none}.dcf-pagination .dcf-disabled>*{opacity:.5;color:var(--ion-color-gray-6)}.dcf-pagination-resume{color:var(--ion-color-gray-8);margin:1rem 0px;text-align:center}\n"], dependencies: [{ kind: "ngmodule", type: ForAngularModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }] }); }
6817
5804
  }
6818
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PaginationComponent, [{
6819
- type: Component,
6820
- args: [{ selector: 'ngx-decaf-pagination', imports: [
6821
- ForAngularModule,
6822
- IonIcon
6823
- ], standalone: true, template: " <div id=\"dcf-paginator-container\" class=\"dcf-flex dcf-flex-center\">\n <div class=\"dcf-width-1-1\">\n <div class=\"dcf-pagination-resume\" [innerHTML]=\"locale + '.resume' | translate: {value0: current, value1: last}\"></div>\n <div #paginationComponent class=\"dcf-pagination aeon-pagination dcf-flex-center\">\n <div\n aria-label=\"previous\"\n tabindex=\"0\"\n (click)=\"previous()\"\n (keydown.enter)=\"previous()\" [ngClass]=\"{'dcf-disabled': current === 1}\">\n <ion-icon name=\"chevron-back-outline\" aria-hidden=\"true\"></ion-icon>\n </div>\n @for(page of pages; track page) {\n <div tabindex=\"0\" (click)=\"navigate(page['index'])\"\n (keydown.enter)=\"navigate(page['index'])\"\n [ngClass]=\"{'dcf-active': current === page['index'], 'dcf-disabled': page['index'] === ndivl}\">\n <span class=\"page-item\">{{ page['text'] }}</span>\n </div>\n }\n <div\n tabindex=\"0\" (click)=\"next()\"\n (keydown.enter)=\"next()\"\n [ngClass]=\"{'dcf-disabled': current === last}\">\n <ion-icon name=\"chevron-forward-outline\" aria-hidden=\"true\"></ion-icon>\n </div>\n </div>\n </div>\n</div>\n", styles: ["#dcf-paginator-container{margin-bottom:1rem}.dcf-pagination{display:flex;flex-wrap:wrap;align-items:center;margin-left:0;padding:0;list-style:none}.dcf-pagination .page-item{display:flex;justify-content:center;align-items:top;color:var(--ion-color-gray-7);font-weight:600;width:36px;line-height:34px;padding:0!important;border-radius:50%;box-sizing:border-box}.dcf-pagination>*{flex:none;padding-left:0;position:relative;margin:0px .15rem}.dcf-pagination>*:not(.disabled){cursor:pointer}.dcf-pagination>*:hover .page-item{color:var(--ion-color-primary)}.dcf-pagination>* .page-item{color:var(--ion-color-gray-7);font-weight:600}.dcf-pagination>*.dcf-active .page-item{background:rgba(var(--ion-color-primary-rgb),.15)}.dcf-pagination>*>*{display:flex;align-items:center;column-gap:.25em;padding:5px 10px;color:var(--ion-color-gray-8);transition:color .1s ease-in-out}.dcf-pagination>*>:hover{color:var(--ion-color-gray-6);text-decoration:none}.dcf-pagination .dcf-disabled>*{opacity:.5;color:var(--ion-color-gray-6)}.dcf-pagination-resume{color:var(--ion-color-gray-8);margin:1rem 0px;text-align:center}\n"] }]
6824
- }], () => [], { totalPages: [{
6825
- type: Input,
6826
- args: [{ required: true }]
6827
- }], current: [{
6828
- type: Input
6829
- }], clickEvent: [{
6830
- type: Output
6831
- }] }); })();
6832
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PaginationComponent, { className: "PaginationComponent", filePath: "components/pagination/pagination.component.ts", lineNumber: 62 }); })();
5805
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PaginationComponent, decorators: [{
5806
+ type: Component,
5807
+ args: [{ selector: 'ngx-decaf-pagination', imports: [
5808
+ ForAngularModule,
5809
+ IonIcon
5810
+ ], standalone: true, template: " <div id=\"dcf-paginator-container\" class=\"dcf-flex dcf-flex-center\">\n <div class=\"dcf-width-1-1\">\n <div class=\"dcf-pagination-resume\" [innerHTML]=\"locale + '.resume' | translate: {value0: current, value1: last}\"></div>\n <div #paginationComponent class=\"dcf-pagination aeon-pagination dcf-flex-center\">\n <div\n aria-label=\"previous\"\n tabindex=\"0\"\n (click)=\"previous()\"\n (keydown.enter)=\"previous()\" [ngClass]=\"{'dcf-disabled': current === 1}\">\n <ion-icon name=\"chevron-back-outline\" aria-hidden=\"true\"></ion-icon>\n </div>\n @for(page of pages; track page) {\n <div tabindex=\"0\" (click)=\"navigate(page['index'])\"\n (keydown.enter)=\"navigate(page['index'])\"\n [ngClass]=\"{'dcf-active': current === page['index'], 'dcf-disabled': page['index'] === ndivl}\">\n <span class=\"page-item\">{{ page['text'] }}</span>\n </div>\n }\n <div\n tabindex=\"0\" (click)=\"next()\"\n (keydown.enter)=\"next()\"\n [ngClass]=\"{'dcf-disabled': current === last}\">\n <ion-icon name=\"chevron-forward-outline\" aria-hidden=\"true\"></ion-icon>\n </div>\n </div>\n </div>\n</div>\n", styles: ["#dcf-paginator-container{margin-bottom:1rem}.dcf-pagination{display:flex;flex-wrap:wrap;align-items:center;margin-left:0;padding:0;list-style:none}.dcf-pagination .page-item{display:flex;justify-content:center;align-items:top;color:var(--ion-color-gray-7);font-weight:600;width:36px;line-height:34px;padding:0!important;border-radius:50%;box-sizing:border-box}.dcf-pagination>*{flex:none;padding-left:0;position:relative;margin:0px .15rem}.dcf-pagination>*:not(.disabled){cursor:pointer}.dcf-pagination>*:hover .page-item{color:var(--ion-color-primary)}.dcf-pagination>* .page-item{color:var(--ion-color-gray-7);font-weight:600}.dcf-pagination>*.dcf-active .page-item{background:rgba(var(--ion-color-primary-rgb),.15)}.dcf-pagination>*>*{display:flex;align-items:center;column-gap:.25em;padding:5px 10px;color:var(--ion-color-gray-8);transition:color .1s ease-in-out}.dcf-pagination>*>:hover{color:var(--ion-color-gray-6);text-decoration:none}.dcf-pagination .dcf-disabled>*{opacity:.5;color:var(--ion-color-gray-6)}.dcf-pagination-resume{color:var(--ion-color-gray-8);margin:1rem 0px;text-align:center}\n"] }]
5811
+ }], ctorParameters: () => [], propDecorators: { totalPages: [{
5812
+ type: Input,
5813
+ args: [{ required: true }]
5814
+ }], current: [{
5815
+ type: Input
5816
+ }], clickEvent: [{
5817
+ type: Output
5818
+ }] } });
6833
5819
 
6834
5820
  var ListComponentsTypes;
6835
5821
  (function (ListComponentsTypes) {
@@ -6837,150 +5823,6 @@ var ListComponentsTypes;
6837
5823
  ListComponentsTypes["PAGINATED"] = "paginated";
6838
5824
  })(ListComponentsTypes || (ListComponentsTypes = {}));
6839
5825
 
6840
- const _c0 = ["*"];
6841
- const _c1 = (a0, a1, a2) => ({ item: a0, mapper: a1, route: a2 });
6842
- function ListComponent_Conditional_0_Template(rf, ctx) { if (rf & 1) {
6843
- const _r1 = i0.ɵɵgetCurrentView();
6844
- i0.ɵɵelementStart(0, "ion-refresher", 2);
6845
- i0.ɵɵlistener("ionRefresh", function ListComponent_Conditional_0_Template_ion_refresher_ionRefresh_0_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.handleRefresh($event)); });
6846
- i0.ɵɵelement(1, "ion-refresher-content");
6847
- i0.ɵɵelementEnd();
6848
- } if (rf & 2) {
6849
- i0.ɵɵproperty("pullFactor", 1)("pullMin", 100)("pullMax", 200);
6850
- } }
6851
- function ListComponent_Conditional_1_Conditional_0_Template(rf, ctx) { if (rf & 1) {
6852
- const _r3 = i0.ɵɵgetCurrentView();
6853
- i0.ɵɵelementStart(0, "ngx-decaf-filter", 5);
6854
- i0.ɵɵlistener("filterEvent", function ListComponent_Conditional_1_Conditional_0_Template_ngx_decaf_filter_filterEvent_0_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.handleFilter($event)); })("searchEvent", function ListComponent_Conditional_1_Conditional_0_Template_ngx_decaf_filter_searchEvent_0_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.handleSearch($event)); });
6855
- i0.ɵɵelementEnd();
6856
- } if (rf & 2) {
6857
- const ctx_r1 = i0.ɵɵnextContext(2);
6858
- i0.ɵɵproperty("model", ctx_r1.model)("sortDirection", ctx_r1.sortDirection)("disableSort", ctx_r1.disableSort);
6859
- } }
6860
- function ListComponent_Conditional_1_Conditional_1_Template(rf, ctx) { if (rf & 1) {
6861
- const _r4 = i0.ɵɵgetCurrentView();
6862
- i0.ɵɵelementStart(0, "ngx-decaf-searchbar", 6);
6863
- i0.ɵɵlistener("searchEvent", function ListComponent_Conditional_1_Conditional_1_Template_ngx_decaf_searchbar_searchEvent_0_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.handleSearch($event)); });
6864
- i0.ɵɵelementEnd();
6865
- } if (rf & 2) {
6866
- i0.ɵɵproperty("emitEventToWindow", false)("debounce", 500);
6867
- } }
6868
- function ListComponent_Conditional_1_Template(rf, ctx) { if (rf & 1) {
6869
- i0.ɵɵtemplate(0, ListComponent_Conditional_1_Conditional_0_Template, 1, 3, "ngx-decaf-filter", 3)(1, ListComponent_Conditional_1_Conditional_1_Template, 1, 2, "ngx-decaf-searchbar", 4);
6870
- } if (rf & 2) {
6871
- const ctx_r1 = i0.ɵɵnextContext();
6872
- i0.ɵɵconditional(ctx_r1.model && ctx_r1.enableFilter ? 0 : 1);
6873
- } }
6874
- function ListComponent_Conditional_2_Conditional_2_For_1_Template(rf, ctx) { if (rf & 1) {
6875
- const _r5 = i0.ɵɵgetCurrentView();
6876
- i0.ɵɵelementStart(0, "ngx-decaf-component-renderer", 9);
6877
- i0.ɵɵlistener("listenEvent", function ListComponent_Conditional_2_Conditional_2_For_1_Template_ngx_decaf_component_renderer_listenEvent_0_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.handleEvent($event)); });
6878
- i0.ɵɵelementEnd();
6879
- } if (rf & 2) {
6880
- const child_r6 = ctx.$implicit;
6881
- const ctx_r1 = i0.ɵɵnextContext(3);
6882
- i0.ɵɵproperty("tag", ctx_r1.item.tag)("globals", i0.ɵɵpureFunction3(2, _c1, child_r6, ctx_r1.mapper, ctx_r1.route));
6883
- } }
6884
- function ListComponent_Conditional_2_Conditional_2_Template(rf, ctx) { if (rf & 1) {
6885
- i0.ɵɵrepeaterCreate(0, ListComponent_Conditional_2_Conditional_2_For_1_Template, 1, 6, "ngx-decaf-component-renderer", 8, i0.ɵɵcomponentInstance().trackItemFn, true);
6886
- } if (rf & 2) {
6887
- const ctx_r1 = i0.ɵɵnextContext(2);
6888
- i0.ɵɵrepeater(ctx_r1.items);
6889
- } }
6890
- function ListComponent_Conditional_2_Conditional_3_Template(rf, ctx) { if (rf & 1) {
6891
- i0.ɵɵprojection(0);
6892
- } }
6893
- function ListComponent_Conditional_2_Conditional_4_Conditional_0_Template(rf, ctx) { if (rf & 1) {
6894
- const _r7 = i0.ɵɵgetCurrentView();
6895
- i0.ɵɵelementStart(0, "ngx-decaf-pagination", 12);
6896
- i0.ɵɵlistener("clickEvent", function ListComponent_Conditional_2_Conditional_4_Conditional_0_Template_ngx_decaf_pagination_clickEvent_0_listener($event) { i0.ɵɵrestoreView(_r7); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.handlePaginate($event)); });
6897
- i0.ɵɵelementEnd();
6898
- } if (rf & 2) {
6899
- const ctx_r1 = i0.ɵɵnextContext(3);
6900
- i0.ɵɵproperty("totalPages", ctx_r1.pages)("current", ctx_r1.page);
6901
- } }
6902
- function ListComponent_Conditional_2_Conditional_4_Conditional_1_Template(rf, ctx) { if (rf & 1) {
6903
- const _r8 = i0.ɵɵgetCurrentView();
6904
- i0.ɵɵelementStart(0, "ion-infinite-scroll", 13);
6905
- i0.ɵɵlistener("ionInfinite", function ListComponent_Conditional_2_Conditional_4_Conditional_1_Template_ion_infinite_scroll_ionInfinite_0_listener($event) { i0.ɵɵrestoreView(_r8); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.handleRefresh($event)); });
6906
- i0.ɵɵelement(1, "ion-infinite-scroll-content", 14);
6907
- i0.ɵɵelementEnd();
6908
- } if (rf & 2) {
6909
- const ctx_r1 = i0.ɵɵnextContext(3);
6910
- i0.ɵɵclassMap((ctx_r1.searchValue == null ? null : ctx_r1.searchValue.length) ? "dcf-hidden" : "");
6911
- i0.ɵɵproperty("position", ctx_r1.scrollPosition)("threshold", ctx_r1.scrollThreshold);
6912
- i0.ɵɵadvance();
6913
- i0.ɵɵproperty("loadingSpinner", ctx_r1.loadingSpinner)("loadingText", ctx_r1.loadingText);
6914
- } }
6915
- function ListComponent_Conditional_2_Conditional_4_Template(rf, ctx) { if (rf & 1) {
6916
- i0.ɵɵtemplate(0, ListComponent_Conditional_2_Conditional_4_Conditional_0_Template, 1, 2, "ngx-decaf-pagination", 10)(1, ListComponent_Conditional_2_Conditional_4_Conditional_1_Template, 2, 6, "ion-infinite-scroll", 11);
6917
- } if (rf & 2) {
6918
- const ctx_r1 = i0.ɵɵnextContext(2);
6919
- i0.ɵɵconditional(ctx_r1.pages > 0 && ctx_r1.type === "paginated" && !(ctx_r1.searchValue == null ? null : ctx_r1.searchValue.length) ? 0 : 1);
6920
- } }
6921
- function ListComponent_Conditional_2_Template(rf, ctx) { if (rf & 1) {
6922
- i0.ɵɵelementStart(0, "ion-list", 7, 0);
6923
- i0.ɵɵtemplate(2, ListComponent_Conditional_2_Conditional_2_Template, 2, 0)(3, ListComponent_Conditional_2_Conditional_3_Template, 1, 0);
6924
- i0.ɵɵelementEnd();
6925
- i0.ɵɵtemplate(4, ListComponent_Conditional_2_Conditional_4_Template, 2, 1);
6926
- } if (rf & 2) {
6927
- const ctx_r1 = i0.ɵɵnextContext();
6928
- i0.ɵɵproperty("inset", ctx_r1.inset)("lines", ctx_r1.lines);
6929
- i0.ɵɵadvance(2);
6930
- i0.ɵɵconditional((ctx_r1.item == null ? null : ctx_r1.item.tag) ? 2 : 3);
6931
- i0.ɵɵadvance(2);
6932
- i0.ɵɵconditional(ctx_r1.loadMoreData ? 4 : -1);
6933
- } }
6934
- function ListComponent_Conditional_3_Conditional_0_ion_item_0_Template(rf, ctx) { if (rf & 1) {
6935
- i0.ɵɵelementStart(0, "ion-item")(1, "ion-thumbnail", 16);
6936
- i0.ɵɵelement(2, "ion-skeleton-text", 17);
6937
- i0.ɵɵelementEnd();
6938
- i0.ɵɵelementStart(3, "ion-label");
6939
- i0.ɵɵelement(4, "ion-skeleton-text", 17);
6940
- i0.ɵɵelementStart(5, "ion-text", 18);
6941
- i0.ɵɵelement(6, "ion-skeleton-text", 17);
6942
- i0.ɵɵelementEnd()()();
6943
- } if (rf & 2) {
6944
- i0.ɵɵadvance(2);
6945
- i0.ɵɵproperty("animated", true);
6946
- i0.ɵɵadvance(2);
6947
- i0.ɵɵproperty("animated", true);
6948
- i0.ɵɵadvance(2);
6949
- i0.ɵɵproperty("animated", true);
6950
- } }
6951
- function ListComponent_Conditional_3_Conditional_0_Template(rf, ctx) { if (rf & 1) {
6952
- i0.ɵɵtemplate(0, ListComponent_Conditional_3_Conditional_0_ion_item_0_Template, 7, 3, "ion-item", 15);
6953
- } if (rf & 2) {
6954
- const ctx_r1 = i0.ɵɵnextContext(2);
6955
- i0.ɵɵproperty("ngForOf", ctx_r1.skeletonData);
6956
- } }
6957
- function ListComponent_Conditional_3_Conditional_1_Conditional_0_Template(rf, ctx) { if (rf & 1) {
6958
- i0.ɵɵelement(0, "ngx-decaf-empty-state", 19);
6959
- i0.ɵɵpipe(1, "translate");
6960
- i0.ɵɵpipe(2, "translate");
6961
- i0.ɵɵpipe(3, "translate");
6962
- } if (rf & 2) {
6963
- const ctx_r1 = i0.ɵɵnextContext(3);
6964
- i0.ɵɵproperty("title", i0.ɵɵpipeBind1(1, 4, ctx_r1.locale + "." + ctx_r1.empty.title))("subtitle", i0.ɵɵpipeBind1(2, 6, ctx_r1.locale + "." + ctx_r1.empty.subtitle))("buttonText", ctx_r1.empty.showButton ? i0.ɵɵpipeBind1(3, 8, ctx_r1.locale + "." + ctx_r1.empty.button) : "")("buttonLink", ctx_r1.empty.showButton ? ctx_r1.empty.route : "");
6965
- } }
6966
- function ListComponent_Conditional_3_Conditional_1_Conditional_1_Template(rf, ctx) { if (rf & 1) {
6967
- i0.ɵɵelement(0, "ngx-decaf-empty-state", 20);
6968
- } if (rf & 2) {
6969
- const ctx_r1 = i0.ɵɵnextContext(3);
6970
- i0.ɵɵproperty("translatable", true)("searchValue", ctx_r1.searchValue);
6971
- } }
6972
- function ListComponent_Conditional_3_Conditional_1_Template(rf, ctx) { if (rf & 1) {
6973
- i0.ɵɵtemplate(0, ListComponent_Conditional_3_Conditional_1_Conditional_0_Template, 4, 10, "ngx-decaf-empty-state", 19)(1, ListComponent_Conditional_3_Conditional_1_Conditional_1_Template, 1, 2, "ngx-decaf-empty-state", 20);
6974
- } if (rf & 2) {
6975
- const ctx_r1 = i0.ɵɵnextContext(2);
6976
- i0.ɵɵconditional(!(ctx_r1.searchValue == null ? null : ctx_r1.searchValue.length) ? 0 : 1);
6977
- } }
6978
- function ListComponent_Conditional_3_Template(rf, ctx) { if (rf & 1) {
6979
- i0.ɵɵtemplate(0, ListComponent_Conditional_3_Conditional_0_Template, 1, 1, "ion-item")(1, ListComponent_Conditional_3_Conditional_1_Template, 2, 1);
6980
- } if (rf & 2) {
6981
- const ctx_r1 = i0.ɵɵnextContext();
6982
- i0.ɵɵconditional(ctx_r1.refreshing ? 0 : 1);
6983
- } }
6984
5826
  /**
6985
5827
  * @description A versatile list component that supports various data display modes.
6986
5828
  * @summary This component provides a flexible way to display lists of data with support
@@ -8106,118 +6948,93 @@ let ListComponent = class ListComponent extends NgxBaseComponent {
8106
6948
  return accum;
8107
6949
  }, []);
8108
6950
  }
8109
- static { this.ɵfac = function ListComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || ListComponent)(); }; }
8110
- static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ListComponent, selectors: [["ngx-decaf-list"]], hostBindings: function ListComponent_HostBindings(rf, ctx) { if (rf & 1) {
8111
- i0.ɵɵlistener("ListItemClickEvent", function ListComponent_ListItemClickEvent_HostBindingHandler($event) { return ctx.handleClick($event); }, false, i0.ɵɵresolveWindow)("searchbarEvent", function ListComponent_searchbarEvent_HostBindingHandler($event) { return ctx.handleSearch($event); }, false, i0.ɵɵresolveWindow)("BackButtonNavigationEndEvent", function ListComponent_BackButtonNavigationEndEvent_HostBindingHandler($event) { return ctx.refresh($event); }, false, i0.ɵɵresolveWindow);
8112
- } }, inputs: { type: "type", translatable: "translatable", showSearchbar: "showSearchbar", data: "data", source: "source", start: "start", limit: "limit", loadMoreData: "loadMoreData", lines: "lines", inset: "inset", scrollThreshold: "scrollThreshold", scrollPosition: "scrollPosition", loadingText: "loadingText", showRefresher: "showRefresher", loadingSpinner: "loadingSpinner", enableFilter: "enableFilter", sortDirection: "sortDirection", sortBy: "sortBy", disableSort: "disableSort", emptyIcon: "emptyIcon", empty: "empty" }, outputs: { refreshEvent: "refreshEvent", clickEvent: "clickEvent" }, standalone: true, features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature], ngContentSelectors: _c0, decls: 4, vars: 3, consts: [["component", ""], ["slot", "fixed", 3, "pullFactor", "pullMin", "pullMax"], ["slot", "fixed", 3, "ionRefresh", "pullFactor", "pullMin", "pullMax"], [3, "model", "sortDirection", "disableSort"], [3, "emitEventToWindow", "debounce"], [3, "filterEvent", "searchEvent", "model", "sortDirection", "disableSort"], [3, "searchEvent", "emitEventToWindow", "debounce"], [3, "inset", "lines"], [3, "tag", "globals"], [3, "listenEvent", "tag", "globals"], [3, "totalPages", "current"], [3, "class", "position", "threshold"], [3, "clickEvent", "totalPages", "current"], [3, "ionInfinite", "position", "threshold"], [3, "loadingSpinner", "loadingText"], [4, "ngFor", "ngForOf"], ["slot", "start"], [3, "animated"], [1, "date", 2, "width", "20%"], [3, "title", "subtitle", "buttonText", "buttonLink"], ["icon", "search-outline", "ngClass", "empty-search", "title", "search.title", "subtitle", "search.subtitle", 3, "translatable", "searchValue"]], template: function ListComponent_Template(rf, ctx) { if (rf & 1) {
8113
- i0.ɵɵprojectionDef();
8114
- i0.ɵɵtemplate(0, ListComponent_Conditional_0_Template, 2, 3, "ion-refresher", 1)(1, ListComponent_Conditional_1_Template, 2, 1)(2, ListComponent_Conditional_2_Template, 5, 4)(3, ListComponent_Conditional_3_Template, 2, 1);
8115
- } if (rf & 2) {
8116
- i0.ɵɵconditional(ctx.showRefresher ? 0 : -1);
8117
- i0.ɵɵadvance();
8118
- i0.ɵɵconditional(ctx.showSearchbar ? 1 : -1);
8119
- i0.ɵɵadvance();
8120
- i0.ɵɵconditional((ctx.data == null ? null : ctx.data.length) ? 2 : 3);
8121
- } }, dependencies: [ForAngularModule, i1.IonText, i2.NgClass, i2.NgForOf, i3.TranslatePipe, IonRefresher,
8122
- PaginationComponent,
8123
- IonList,
8124
- IonItem,
8125
- IonThumbnail,
8126
- IonSkeletonText,
8127
- IonLabel,
8128
- IonRefresherContent,
8129
- IonInfiniteScroll,
8130
- IonInfiniteScrollContent,
8131
- SearchbarComponent,
8132
- EmptyStateComponent,
8133
- FilterComponent,
8134
- ComponentRendererComponent], styles: ["ion-infinite-scroll-content[_ngcontent-%COMP%] ion-spinner[_ngcontent-%COMP%]{--color: var(--ion-color-primary)}@media (max-width: 768px){#end[_ngcontent-%COMP%], [slot=end][_ngcontent-%COMP%]{display:none!important}}"] }); }
6951
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
6952
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: ListComponent, isStandalone: true, selector: "ngx-decaf-list", inputs: { type: "type", translatable: "translatable", showSearchbar: "showSearchbar", data: "data", source: "source", start: "start", limit: "limit", loadMoreData: "loadMoreData", lines: "lines", inset: "inset", scrollThreshold: "scrollThreshold", scrollPosition: "scrollPosition", loadingText: "loadingText", showRefresher: "showRefresher", loadingSpinner: "loadingSpinner", enableFilter: "enableFilter", sortDirection: "sortDirection", sortBy: "sortBy", disableSort: "disableSort", emptyIcon: "emptyIcon", empty: "empty" }, outputs: { refreshEvent: "refreshEvent", clickEvent: "clickEvent" }, host: { listeners: { "window:ListItemClickEvent": "handleClick($event)", "window:searchbarEvent": "handleSearch($event)", "window:BackButtonNavigationEndEvent": "refresh($event)" } }, usesInheritance: true, ngImport: i0, template: "\n@if(showRefresher) {\n <ion-refresher slot=\"fixed\" [pullFactor]=\"1\" [pullMin]=\"100\" [pullMax]=\"200\" (ionRefresh)=\"handleRefresh($event)\">\n <ion-refresher-content />\n </ion-refresher>\n}\n\n@if(showSearchbar) {\n @if(model && enableFilter) {\n <ngx-decaf-filter\n [model]=\"model\"\n [sortDirection]=\"sortDirection\"\n [disableSort]=\"disableSort\"\n (filterEvent)=\"handleFilter($event)\"\n (searchEvent)=\"handleSearch($event)\"\n />\n } @else {\n <ngx-decaf-searchbar [emitEventToWindow]=\"false\" [debounce]=\"500\" (searchEvent)=\"handleSearch($event)\" />\n }\n}\n\n@if(data?.length) {\n <ion-list [inset]=\"inset\" [lines]=\"lines\" #component>\n @if(item?.tag) {\n @for(child of items; track trackItemFn($index, child)) {\n <ngx-decaf-component-renderer\n [tag]=\"item.tag\"\n (listenEvent)=\"handleEvent($event)\"\n [globals]='{\n item: child,\n mapper: mapper,\n route: route\n }'>\n </ngx-decaf-component-renderer>\n }\n } @else {\n <ng-content></ng-content>\n }\n </ion-list>\n\n @if(loadMoreData) {\n @if(pages > 0 && type === 'paginated' && !searchValue?.length) {\n <ngx-decaf-pagination\n [totalPages]=\"pages\"\n [current]=\"page\"\n (clickEvent)=\"handlePaginate($event)\"\n />\n\n } @else {\n <ion-infinite-scroll\n [class]=\"searchValue?.length ? 'dcf-hidden' : ''\"\n [position]=\"scrollPosition\"\n [threshold]=\"scrollThreshold\"\n (ionInfinite)=\"handleRefresh($event)\">\n <ion-infinite-scroll-content [loadingSpinner]=\"loadingSpinner\" [loadingText]=\"loadingText\" />\n </ion-infinite-scroll>\n }\n }\n} @else {\n @if(refreshing) {\n <ion-item *ngFor=\"let skl of skeletonData\">\n <ion-thumbnail slot=\"start\">\n <ion-skeleton-text [animated]=\"true\"></ion-skeleton-text>\n </ion-thumbnail>\n <ion-label>\n <ion-skeleton-text [animated]=\"true\"></ion-skeleton-text>\n <ion-text class=\"date\" style=\"width: 20%;\"><ion-skeleton-text [animated]=\"true\"></ion-skeleton-text></ion-text>\n </ion-label>\n </ion-item>\n } @else {\n @if(!searchValue?.length) {\n <ngx-decaf-empty-state\n [title]=\"(locale + '.'+ empty.title) | translate\"\n [subtitle]=\"(locale + '.'+ empty.subtitle) | translate\"\n [buttonText]=\"empty.showButton ? (locale + '.'+ empty.button | translate) : ''\"\n [buttonLink]=\"empty.showButton ? empty.route : ''\"\n />\n } @else {\n <ngx-decaf-empty-state\n icon=\"search-outline\"\n ngClass=\"empty-search\"\n [translatable]=\"true\"\n title=\"search.title\"\n subtitle=\"search.subtitle\"\n [searchValue]=\"searchValue\"\n />\n }\n }\n}\n\n", styles: ["ion-infinite-scroll-content ion-spinner{--color: var(--ion-color-primary)}@media (max-width: 768px){#end,[slot=end]{display:none!important}}\n"], dependencies: [{ kind: "ngmodule", type: ForAngularModule }, { kind: "component", type: i1.IonText, selector: "ion-text", inputs: ["color", "mode"] }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }, { kind: "component", type: IonRefresher, selector: "ion-refresher", inputs: ["closeDuration", "disabled", "mode", "pullFactor", "pullMax", "pullMin", "snapbackDuration"] }, { kind: "component", type: PaginationComponent, selector: "ngx-decaf-pagination", inputs: ["totalPages", "current"], outputs: ["clickEvent"] }, { kind: "component", type: IonList, selector: "ion-list", inputs: ["inset", "lines", "mode"] }, { kind: "component", type: IonItem, selector: "ion-item", inputs: ["button", "color", "detail", "detailIcon", "disabled", "download", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: IonThumbnail, selector: "ion-thumbnail" }, { kind: "component", type: IonSkeletonText, selector: "ion-skeleton-text", inputs: ["animated"] }, { kind: "component", type: IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: IonRefresherContent, selector: "ion-refresher-content", inputs: ["pullingIcon", "pullingText", "refreshingSpinner", "refreshingText"] }, { kind: "component", type: IonInfiniteScroll, selector: "ion-infinite-scroll", inputs: ["disabled", "position", "threshold"] }, { kind: "component", type: IonInfiniteScrollContent, selector: "ion-infinite-scroll-content", inputs: ["loadingSpinner", "loadingText"] }, { kind: "component", type: SearchbarComponent, selector: "ngx-decaf-searchbar", inputs: ["autocomplete", "autocorrect", "animated", "buttonCancelText", "clearIcon", "color", "debounce", "disabled", "enterkeyhint", "inputmode", "placeholder", "searchIcon", "showCancelButton", "showClearButton", "spellcheck", "type", "value", "queryKeys", "isVisible", "wrapper", "wrapperColor", "emitEventToWindow"], outputs: ["searchEvent"] }, { kind: "component", type: EmptyStateComponent, selector: "ngx-decaf-empty-state", inputs: ["title", "titleColor", "subtitle", "subtitleColor", "showIcon", "icon", "iconSize", "iconColor", "buttonLink", "buttonText", "buttonFill", "buttonColor", "buttonSize", "searchValue"] }, { kind: "component", type: FilterComponent, selector: "ngx-decaf-filter", inputs: ["indexes", "conditions", "sortBy", "disableSort"], outputs: ["filterEvent", "searchEvent"] }, { kind: "component", type: ComponentRendererComponent, selector: "ngx-decaf-component-renderer", inputs: ["tag", "globals", "model", "parent"], outputs: ["listenEvent"] }] }); }
8135
6953
  };
8136
6954
  ListComponent = __decorate([
8137
6955
  Dynamic(),
8138
6956
  __metadata("design:paramtypes", [])
8139
6957
  ], ListComponent);
8140
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ListComponent, [{
8141
- type: Component,
8142
- args: [{ selector: 'ngx-decaf-list', standalone: true, imports: [
8143
- ForAngularModule,
8144
- IonRefresher,
8145
- IonLoading,
8146
- PaginationComponent,
8147
- IonList,
8148
- IonItem,
8149
- IonThumbnail,
8150
- IonSkeletonText,
8151
- IonLabel,
8152
- IonText,
8153
- IonRefresherContent,
8154
- IonInfiniteScroll,
8155
- IonInfiniteScrollContent,
8156
- IonThumbnail,
8157
- IonSkeletonText,
8158
- SearchbarComponent,
8159
- EmptyStateComponent,
8160
- ListItemComponent,
8161
- FilterComponent,
8162
- ComponentRendererComponent
8163
- ], template: "\n@if(showRefresher) {\n <ion-refresher slot=\"fixed\" [pullFactor]=\"1\" [pullMin]=\"100\" [pullMax]=\"200\" (ionRefresh)=\"handleRefresh($event)\">\n <ion-refresher-content />\n </ion-refresher>\n}\n\n@if(showSearchbar) {\n @if(model && enableFilter) {\n <ngx-decaf-filter\n [model]=\"model\"\n [sortDirection]=\"sortDirection\"\n [disableSort]=\"disableSort\"\n (filterEvent)=\"handleFilter($event)\"\n (searchEvent)=\"handleSearch($event)\"\n />\n } @else {\n <ngx-decaf-searchbar [emitEventToWindow]=\"false\" [debounce]=\"500\" (searchEvent)=\"handleSearch($event)\" />\n }\n}\n\n@if(data?.length) {\n <ion-list [inset]=\"inset\" [lines]=\"lines\" #component>\n @if(item?.tag) {\n @for(child of items; track trackItemFn($index, child)) {\n <ngx-decaf-component-renderer\n [tag]=\"item.tag\"\n (listenEvent)=\"handleEvent($event)\"\n [globals]='{\n item: child,\n mapper: mapper,\n route: route\n }'>\n </ngx-decaf-component-renderer>\n }\n } @else {\n <ng-content></ng-content>\n }\n </ion-list>\n\n @if(loadMoreData) {\n @if(pages > 0 && type === 'paginated' && !searchValue?.length) {\n <ngx-decaf-pagination\n [totalPages]=\"pages\"\n [current]=\"page\"\n (clickEvent)=\"handlePaginate($event)\"\n />\n\n } @else {\n <ion-infinite-scroll\n [class]=\"searchValue?.length ? 'dcf-hidden' : ''\"\n [position]=\"scrollPosition\"\n [threshold]=\"scrollThreshold\"\n (ionInfinite)=\"handleRefresh($event)\">\n <ion-infinite-scroll-content [loadingSpinner]=\"loadingSpinner\" [loadingText]=\"loadingText\" />\n </ion-infinite-scroll>\n }\n }\n} @else {\n @if(refreshing) {\n <ion-item *ngFor=\"let skl of skeletonData\">\n <ion-thumbnail slot=\"start\">\n <ion-skeleton-text [animated]=\"true\"></ion-skeleton-text>\n </ion-thumbnail>\n <ion-label>\n <ion-skeleton-text [animated]=\"true\"></ion-skeleton-text>\n <ion-text class=\"date\" style=\"width: 20%;\"><ion-skeleton-text [animated]=\"true\"></ion-skeleton-text></ion-text>\n </ion-label>\n </ion-item>\n } @else {\n @if(!searchValue?.length) {\n <ngx-decaf-empty-state\n [title]=\"(locale + '.'+ empty.title) | translate\"\n [subtitle]=\"(locale + '.'+ empty.subtitle) | translate\"\n [buttonText]=\"empty.showButton ? (locale + '.'+ empty.button | translate) : ''\"\n [buttonLink]=\"empty.showButton ? empty.route : ''\"\n />\n } @else {\n <ngx-decaf-empty-state\n icon=\"search-outline\"\n ngClass=\"empty-search\"\n [translatable]=\"true\"\n title=\"search.title\"\n subtitle=\"search.subtitle\"\n [searchValue]=\"searchValue\"\n />\n }\n }\n}\n\n", styles: ["ion-infinite-scroll-content ion-spinner{--color: var(--ion-color-primary)}@media (max-width: 768px){#end,[slot=end]{display:none!important}}\n"] }]
8164
- }], () => [], { type: [{
8165
- type: Input
8166
- }], translatable: [{
8167
- type: Input
8168
- }], showSearchbar: [{
8169
- type: Input
8170
- }], data: [{
8171
- type: Input
8172
- }], source: [{
8173
- type: Input
8174
- }], start: [{
8175
- type: Input
8176
- }], limit: [{
8177
- type: Input
8178
- }], loadMoreData: [{
8179
- type: Input
8180
- }], lines: [{
8181
- type: Input
8182
- }], inset: [{
8183
- type: Input
8184
- }], scrollThreshold: [{
8185
- type: Input
8186
- }], scrollPosition: [{
8187
- type: Input
8188
- }], loadingText: [{
8189
- type: Input
8190
- }], showRefresher: [{
8191
- type: Input
8192
- }], loadingSpinner: [{
8193
- type: Input
8194
- }], enableFilter: [{
8195
- type: Input
8196
- }], sortDirection: [{
8197
- type: Input
8198
- }], sortBy: [{
8199
- type: Input
8200
- }], disableSort: [{
8201
- type: Input
8202
- }], emptyIcon: [{
8203
- type: Input
8204
- }], empty: [{
8205
- type: Input
8206
- }], refreshEvent: [{
8207
- type: Output
8208
- }], clickEvent: [{
8209
- type: Output
8210
- }], handleClick: [{
8211
- type: HostListener,
8212
- args: ['window:ListItemClickEvent', ['$event']]
8213
- }], handleSearch: [{
8214
- type: HostListener,
8215
- args: ['window:searchbarEvent', ['$event']]
8216
- }], refresh: [{
8217
- type: HostListener,
8218
- args: ['window:BackButtonNavigationEndEvent', ['$event']]
8219
- }] }); })();
8220
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ListComponent, { className: "ListComponent", filePath: "components/list/list.component.ts", lineNumber: 146 }); })();
6958
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ListComponent, decorators: [{
6959
+ type: Component,
6960
+ args: [{ selector: 'ngx-decaf-list', standalone: true, imports: [
6961
+ ForAngularModule,
6962
+ IonRefresher,
6963
+ IonLoading,
6964
+ PaginationComponent,
6965
+ IonList,
6966
+ IonItem,
6967
+ IonThumbnail,
6968
+ IonSkeletonText,
6969
+ IonLabel,
6970
+ IonText,
6971
+ IonRefresherContent,
6972
+ IonInfiniteScroll,
6973
+ IonInfiniteScrollContent,
6974
+ IonThumbnail,
6975
+ IonSkeletonText,
6976
+ SearchbarComponent,
6977
+ EmptyStateComponent,
6978
+ ListItemComponent,
6979
+ FilterComponent,
6980
+ ComponentRendererComponent
6981
+ ], template: "\n@if(showRefresher) {\n <ion-refresher slot=\"fixed\" [pullFactor]=\"1\" [pullMin]=\"100\" [pullMax]=\"200\" (ionRefresh)=\"handleRefresh($event)\">\n <ion-refresher-content />\n </ion-refresher>\n}\n\n@if(showSearchbar) {\n @if(model && enableFilter) {\n <ngx-decaf-filter\n [model]=\"model\"\n [sortDirection]=\"sortDirection\"\n [disableSort]=\"disableSort\"\n (filterEvent)=\"handleFilter($event)\"\n (searchEvent)=\"handleSearch($event)\"\n />\n } @else {\n <ngx-decaf-searchbar [emitEventToWindow]=\"false\" [debounce]=\"500\" (searchEvent)=\"handleSearch($event)\" />\n }\n}\n\n@if(data?.length) {\n <ion-list [inset]=\"inset\" [lines]=\"lines\" #component>\n @if(item?.tag) {\n @for(child of items; track trackItemFn($index, child)) {\n <ngx-decaf-component-renderer\n [tag]=\"item.tag\"\n (listenEvent)=\"handleEvent($event)\"\n [globals]='{\n item: child,\n mapper: mapper,\n route: route\n }'>\n </ngx-decaf-component-renderer>\n }\n } @else {\n <ng-content></ng-content>\n }\n </ion-list>\n\n @if(loadMoreData) {\n @if(pages > 0 && type === 'paginated' && !searchValue?.length) {\n <ngx-decaf-pagination\n [totalPages]=\"pages\"\n [current]=\"page\"\n (clickEvent)=\"handlePaginate($event)\"\n />\n\n } @else {\n <ion-infinite-scroll\n [class]=\"searchValue?.length ? 'dcf-hidden' : ''\"\n [position]=\"scrollPosition\"\n [threshold]=\"scrollThreshold\"\n (ionInfinite)=\"handleRefresh($event)\">\n <ion-infinite-scroll-content [loadingSpinner]=\"loadingSpinner\" [loadingText]=\"loadingText\" />\n </ion-infinite-scroll>\n }\n }\n} @else {\n @if(refreshing) {\n <ion-item *ngFor=\"let skl of skeletonData\">\n <ion-thumbnail slot=\"start\">\n <ion-skeleton-text [animated]=\"true\"></ion-skeleton-text>\n </ion-thumbnail>\n <ion-label>\n <ion-skeleton-text [animated]=\"true\"></ion-skeleton-text>\n <ion-text class=\"date\" style=\"width: 20%;\"><ion-skeleton-text [animated]=\"true\"></ion-skeleton-text></ion-text>\n </ion-label>\n </ion-item>\n } @else {\n @if(!searchValue?.length) {\n <ngx-decaf-empty-state\n [title]=\"(locale + '.'+ empty.title) | translate\"\n [subtitle]=\"(locale + '.'+ empty.subtitle) | translate\"\n [buttonText]=\"empty.showButton ? (locale + '.'+ empty.button | translate) : ''\"\n [buttonLink]=\"empty.showButton ? empty.route : ''\"\n />\n } @else {\n <ngx-decaf-empty-state\n icon=\"search-outline\"\n ngClass=\"empty-search\"\n [translatable]=\"true\"\n title=\"search.title\"\n subtitle=\"search.subtitle\"\n [searchValue]=\"searchValue\"\n />\n }\n }\n}\n\n", styles: ["ion-infinite-scroll-content ion-spinner{--color: var(--ion-color-primary)}@media (max-width: 768px){#end,[slot=end]{display:none!important}}\n"] }]
6982
+ }], ctorParameters: () => [], propDecorators: { type: [{
6983
+ type: Input
6984
+ }], translatable: [{
6985
+ type: Input
6986
+ }], showSearchbar: [{
6987
+ type: Input
6988
+ }], data: [{
6989
+ type: Input
6990
+ }], source: [{
6991
+ type: Input
6992
+ }], start: [{
6993
+ type: Input
6994
+ }], limit: [{
6995
+ type: Input
6996
+ }], loadMoreData: [{
6997
+ type: Input
6998
+ }], lines: [{
6999
+ type: Input
7000
+ }], inset: [{
7001
+ type: Input
7002
+ }], scrollThreshold: [{
7003
+ type: Input
7004
+ }], scrollPosition: [{
7005
+ type: Input
7006
+ }], loadingText: [{
7007
+ type: Input
7008
+ }], showRefresher: [{
7009
+ type: Input
7010
+ }], loadingSpinner: [{
7011
+ type: Input
7012
+ }], enableFilter: [{
7013
+ type: Input
7014
+ }], sortDirection: [{
7015
+ type: Input
7016
+ }], sortBy: [{
7017
+ type: Input
7018
+ }], disableSort: [{
7019
+ type: Input
7020
+ }], emptyIcon: [{
7021
+ type: Input
7022
+ }], empty: [{
7023
+ type: Input
7024
+ }], refreshEvent: [{
7025
+ type: Output
7026
+ }], clickEvent: [{
7027
+ type: Output
7028
+ }], handleClick: [{
7029
+ type: HostListener,
7030
+ args: ['window:ListItemClickEvent', ['$event']]
7031
+ }], handleSearch: [{
7032
+ type: HostListener,
7033
+ args: ['window:searchbarEvent', ['$event']]
7034
+ }], refresh: [{
7035
+ type: HostListener,
7036
+ args: ['window:BackButtonNavigationEndEvent', ['$event']]
7037
+ }] } });
8221
7038
 
8222
7039
  const Directives = [CollapsableDirective];
8223
7040
  const Components = [
@@ -8236,44 +7053,43 @@ const Components = [
8236
7053
  FilterComponent
8237
7054
  ];
8238
7055
  class ForAngularComponentsModule {
8239
- static { this.ɵfac = function ForAngularComponentsModule_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || ForAngularComponentsModule)(); }; }
8240
- static { this.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: ForAngularComponentsModule }); }
8241
- static { this.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [Components, ForAngularModule] }); }
7056
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ForAngularComponentsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
7057
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: ForAngularComponentsModule, imports: [ModelRendererComponent,
7058
+ ComponentRendererComponent,
7059
+ CrudFieldComponent,
7060
+ CrudFormComponent,
7061
+ EmptyStateComponent,
7062
+ ListComponent,
7063
+ ListItemComponent,
7064
+ SearchbarComponent,
7065
+ PaginationComponent,
7066
+ CrudFormComponent,
7067
+ FieldsetComponent,
7068
+ LayoutComponent,
7069
+ FilterComponent, CollapsableDirective], exports: [ModelRendererComponent,
7070
+ ComponentRendererComponent,
7071
+ CrudFieldComponent,
7072
+ CrudFormComponent,
7073
+ EmptyStateComponent,
7074
+ ListComponent,
7075
+ ListItemComponent,
7076
+ SearchbarComponent,
7077
+ PaginationComponent,
7078
+ CrudFormComponent,
7079
+ FieldsetComponent,
7080
+ LayoutComponent,
7081
+ FilterComponent, CollapsableDirective, ForAngularModule] }); }
7082
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ForAngularComponentsModule, imports: [Components, ForAngularModule] }); }
8242
7083
  }
8243
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ForAngularComponentsModule, [{
8244
- type: NgModule,
8245
- args: [{
8246
- imports: [Components, Directives],
8247
- declarations: [],
8248
- schemas: [CUSTOM_ELEMENTS_SCHEMA],
8249
- exports: [Components, Directives, ForAngularModule],
8250
- }]
8251
- }], null, null); })();
8252
- (function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(ForAngularComponentsModule, { imports: [ModelRendererComponent,
8253
- ComponentRendererComponent,
8254
- CrudFieldComponent,
8255
- CrudFormComponent,
8256
- EmptyStateComponent,
8257
- ListComponent,
8258
- ListItemComponent,
8259
- SearchbarComponent,
8260
- PaginationComponent,
8261
- CrudFormComponent,
8262
- FieldsetComponent,
8263
- LayoutComponent,
8264
- FilterComponent, CollapsableDirective], exports: [ModelRendererComponent,
8265
- ComponentRendererComponent,
8266
- CrudFieldComponent,
8267
- CrudFormComponent,
8268
- EmptyStateComponent,
8269
- ListComponent,
8270
- ListItemComponent,
8271
- SearchbarComponent,
8272
- PaginationComponent,
8273
- CrudFormComponent,
8274
- FieldsetComponent,
8275
- LayoutComponent,
8276
- FilterComponent, CollapsableDirective, ForAngularModule] }); })();
7084
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ForAngularComponentsModule, decorators: [{
7085
+ type: NgModule,
7086
+ args: [{
7087
+ imports: [Components, Directives],
7088
+ declarations: [],
7089
+ schemas: [CUSTOM_ELEMENTS_SCHEMA],
7090
+ exports: [Components, Directives, ForAngularModule],
7091
+ }]
7092
+ }] });
8277
7093
 
8278
7094
  // Component exports
8279
7095