@es.framework/ng.ui.core 2.0.66 → 2.0.67

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 (174) hide show
  1. package/README.md +3 -3
  2. package/attachments/README.md +3 -3
  3. package/base-crud/README.md +3 -3
  4. package/breadcrumb/README.md +3 -3
  5. package/checkbox/README.md +3 -3
  6. package/collapsible/README.md +3 -3
  7. package/color-picker/README.md +3 -3
  8. package/column-settings-popover/README.md +3 -3
  9. package/custom-switch/README.md +3 -3
  10. package/datepicker/README.md +3 -3
  11. package/deactivation-reason/README.md +3 -3
  12. package/excel-import/README.md +3 -3
  13. package/fesm2022/es.framework-ng.ui.core-attachments.mjs +2 -2
  14. package/fesm2022/es.framework-ng.ui.core-attachments.mjs.map +1 -1
  15. package/fesm2022/es.framework-ng.ui.core-base-crud.mjs.map +1 -1
  16. package/fesm2022/es.framework-ng.ui.core-breadcrumb.mjs +110 -109
  17. package/fesm2022/es.framework-ng.ui.core-breadcrumb.mjs.map +1 -1
  18. package/fesm2022/es.framework-ng.ui.core-checkbox.mjs +54 -54
  19. package/fesm2022/es.framework-ng.ui.core-checkbox.mjs.map +1 -1
  20. package/fesm2022/es.framework-ng.ui.core-collapsible.mjs.map +1 -1
  21. package/fesm2022/es.framework-ng.ui.core-color-picker.mjs +44 -44
  22. package/fesm2022/es.framework-ng.ui.core-color-picker.mjs.map +1 -1
  23. package/fesm2022/es.framework-ng.ui.core-column-settings-popover.mjs +2 -2
  24. package/fesm2022/es.framework-ng.ui.core-column-settings-popover.mjs.map +1 -1
  25. package/fesm2022/es.framework-ng.ui.core-custom-switch.mjs.map +1 -1
  26. package/fesm2022/es.framework-ng.ui.core-datepicker.mjs +178 -178
  27. package/fesm2022/es.framework-ng.ui.core-datepicker.mjs.map +1 -1
  28. package/fesm2022/es.framework-ng.ui.core-deactivation-reason.mjs +46 -46
  29. package/fesm2022/es.framework-ng.ui.core-deactivation-reason.mjs.map +1 -1
  30. package/fesm2022/es.framework-ng.ui.core-excel-import.mjs.map +1 -1
  31. package/fesm2022/es.framework-ng.ui.core-filter-templates.mjs +624 -624
  32. package/fesm2022/es.framework-ng.ui.core-filter-templates.mjs.map +1 -1
  33. package/fesm2022/es.framework-ng.ui.core-form-button.mjs.map +1 -1
  34. package/fesm2022/es.framework-ng.ui.core-form-field.mjs +80 -80
  35. package/fesm2022/es.framework-ng.ui.core-form-field.mjs.map +1 -1
  36. package/fesm2022/es.framework-ng.ui.core-form-template.mjs.map +1 -1
  37. package/fesm2022/es.framework-ng.ui.core-formly-avatar-image.mjs.map +1 -1
  38. package/fesm2022/es.framework-ng.ui.core-formly-avatar-label.mjs +44 -44
  39. package/fesm2022/es.framework-ng.ui.core-formly-avatar-label.mjs.map +1 -1
  40. package/fesm2022/es.framework-ng.ui.core-formly-button-selector.mjs +92 -92
  41. package/fesm2022/es.framework-ng.ui.core-formly-button-selector.mjs.map +1 -1
  42. package/fesm2022/es.framework-ng.ui.core-formly-button.mjs +24 -24
  43. package/fesm2022/es.framework-ng.ui.core-formly-button.mjs.map +1 -1
  44. package/fesm2022/es.framework-ng.ui.core-formly-presets.mjs.map +1 -1
  45. package/fesm2022/es.framework-ng.ui.core-formly-prime-icon-picker.mjs +366 -366
  46. package/fesm2022/es.framework-ng.ui.core-formly-prime-icon-picker.mjs.map +1 -1
  47. package/fesm2022/es.framework-ng.ui.core-formly-split-button.mjs +16 -16
  48. package/fesm2022/es.framework-ng.ui.core-formly-split-button.mjs.map +1 -1
  49. package/fesm2022/es.framework-ng.ui.core-formly-ui-all.mjs.map +1 -1
  50. package/fesm2022/es.framework-ng.ui.core-formly-ui.mjs.map +1 -1
  51. package/fesm2022/es.framework-ng.ui.core-formly-username-with-domain.mjs +16 -16
  52. package/fesm2022/es.framework-ng.ui.core-formly-username-with-domain.mjs.map +1 -1
  53. package/fesm2022/es.framework-ng.ui.core-generic-assets.mjs.map +1 -1
  54. package/fesm2022/es.framework-ng.ui.core-generic-autocomplete.mjs +38 -38
  55. package/fesm2022/es.framework-ng.ui.core-generic-autocomplete.mjs.map +1 -1
  56. package/fesm2022/es.framework-ng.ui.core-generic-button.mjs +2 -2
  57. package/fesm2022/es.framework-ng.ui.core-generic-button.mjs.map +1 -1
  58. package/fesm2022/es.framework-ng.ui.core-generic-card.mjs +2 -2
  59. package/fesm2022/es.framework-ng.ui.core-generic-card.mjs.map +1 -1
  60. package/fesm2022/es.framework-ng.ui.core-generic-crud-table.mjs +12 -5
  61. package/fesm2022/es.framework-ng.ui.core-generic-crud-table.mjs.map +1 -1
  62. package/fesm2022/es.framework-ng.ui.core-generic-dialog.mjs +2 -2
  63. package/fesm2022/es.framework-ng.ui.core-generic-dialog.mjs.map +1 -1
  64. package/fesm2022/es.framework-ng.ui.core-generic-errormessage.mjs +2 -2
  65. package/fesm2022/es.framework-ng.ui.core-generic-errormessage.mjs.map +1 -1
  66. package/fesm2022/es.framework-ng.ui.core-generic-formly-fields.mjs +2 -2
  67. package/fesm2022/es.framework-ng.ui.core-generic-formly-fields.mjs.map +1 -1
  68. package/fesm2022/es.framework-ng.ui.core-generic-listbox.mjs +64 -64
  69. package/fesm2022/es.framework-ng.ui.core-generic-listbox.mjs.map +1 -1
  70. package/fesm2022/es.framework-ng.ui.core-generic-loadingspinner.mjs +2 -2
  71. package/fesm2022/es.framework-ng.ui.core-generic-loadingspinner.mjs.map +1 -1
  72. package/fesm2022/es.framework-ng.ui.core-generic-report-tabs.mjs +68 -68
  73. package/fesm2022/es.framework-ng.ui.core-generic-report-tabs.mjs.map +1 -1
  74. package/fesm2022/es.framework-ng.ui.core-generic-report.mjs +4 -2
  75. package/fesm2022/es.framework-ng.ui.core-generic-report.mjs.map +1 -1
  76. package/fesm2022/es.framework-ng.ui.core-generic-search-advanced.mjs +518 -495
  77. package/fesm2022/es.framework-ng.ui.core-generic-search-advanced.mjs.map +1 -1
  78. package/fesm2022/es.framework-ng.ui.core-generic-search.mjs +2 -2
  79. package/fesm2022/es.framework-ng.ui.core-generic-search.mjs.map +1 -1
  80. package/fesm2022/es.framework-ng.ui.core-generic-selector.mjs.map +1 -1
  81. package/fesm2022/es.framework-ng.ui.core-generic-table.mjs +4 -4
  82. package/fesm2022/es.framework-ng.ui.core-generic-table.mjs.map +1 -1
  83. package/fesm2022/es.framework-ng.ui.core-generic-view.mjs +2 -2
  84. package/fesm2022/es.framework-ng.ui.core-generic-view.mjs.map +1 -1
  85. package/fesm2022/es.framework-ng.ui.core-header-wrapper.mjs +2 -2
  86. package/fesm2022/es.framework-ng.ui.core-header-wrapper.mjs.map +1 -1
  87. package/fesm2022/es.framework-ng.ui.core-icon-picker.mjs +106 -106
  88. package/fesm2022/es.framework-ng.ui.core-icon-picker.mjs.map +1 -1
  89. package/fesm2022/es.framework-ng.ui.core-input-switch.mjs +58 -58
  90. package/fesm2022/es.framework-ng.ui.core-input-switch.mjs.map +1 -1
  91. package/fesm2022/es.framework-ng.ui.core-input-with-icon.mjs +26 -26
  92. package/fesm2022/es.framework-ng.ui.core-input-with-icon.mjs.map +1 -1
  93. package/fesm2022/es.framework-ng.ui.core-input.mjs +64 -64
  94. package/fesm2022/es.framework-ng.ui.core-input.mjs.map +1 -1
  95. package/fesm2022/es.framework-ng.ui.core-label-type.mjs +16 -16
  96. package/fesm2022/es.framework-ng.ui.core-label-type.mjs.map +1 -1
  97. package/fesm2022/es.framework-ng.ui.core-loading-skeletons.mjs +22 -22
  98. package/fesm2022/es.framework-ng.ui.core-loading-skeletons.mjs.map +1 -1
  99. package/fesm2022/es.framework-ng.ui.core-odata-query-builder.mjs +2 -2
  100. package/fesm2022/es.framework-ng.ui.core-odata-query-builder.mjs.map +1 -1
  101. package/fesm2022/es.framework-ng.ui.core-query-type.mjs +14 -14
  102. package/fesm2022/es.framework-ng.ui.core-query-type.mjs.map +1 -1
  103. package/fesm2022/es.framework-ng.ui.core-radio.mjs +30 -30
  104. package/fesm2022/es.framework-ng.ui.core-radio.mjs.map +1 -1
  105. package/fesm2022/es.framework-ng.ui.core-repeat.mjs +354 -354
  106. package/fesm2022/es.framework-ng.ui.core-repeat.mjs.map +1 -1
  107. package/fesm2022/es.framework-ng.ui.core-select.mjs +84 -84
  108. package/fesm2022/es.framework-ng.ui.core-select.mjs.map +1 -1
  109. package/fesm2022/es.framework-ng.ui.core-sidebar-cards.mjs +2 -2
  110. package/fesm2022/es.framework-ng.ui.core-sidebar-cards.mjs.map +1 -1
  111. package/fesm2022/es.framework-ng.ui.core-sidebar-toggles.mjs +2 -2
  112. package/fesm2022/es.framework-ng.ui.core-sidebar-toggles.mjs.map +1 -1
  113. package/fesm2022/es.framework-ng.ui.core-tabs.mjs +14 -14
  114. package/fesm2022/es.framework-ng.ui.core-tabs.mjs.map +1 -1
  115. package/fesm2022/es.framework-ng.ui.core-tag-type.mjs +80 -80
  116. package/fesm2022/es.framework-ng.ui.core-tag-type.mjs.map +1 -1
  117. package/fesm2022/es.framework-ng.ui.core-text-editor.mjs.map +1 -1
  118. package/fesm2022/es.framework-ng.ui.core-textarea.mjs.map +1 -1
  119. package/fesm2022/es.framework-ng.ui.core-wrappers.mjs +118 -118
  120. package/fesm2022/es.framework-ng.ui.core-wrappers.mjs.map +1 -1
  121. package/fesm2022/es.framework-ng.ui.core.mjs +2 -2
  122. package/fesm2022/es.framework-ng.ui.core.mjs.map +1 -1
  123. package/filter-templates/README.md +3 -3
  124. package/form-button/README.md +3 -3
  125. package/form-field/README.md +3 -3
  126. package/form-template/README.md +3 -3
  127. package/formly-avatar-image/README.md +3 -3
  128. package/formly-avatar-label/README.md +3 -3
  129. package/formly-button/README.md +3 -3
  130. package/formly-button-selector/README.md +3 -3
  131. package/formly-presets/README.md +3 -3
  132. package/formly-prime-icon-picker/README.md +3 -3
  133. package/formly-split-button/README.md +3 -3
  134. package/formly-ui/README.md +3 -3
  135. package/formly-ui-all/README.md +3 -3
  136. package/formly-username-with-domain/README.md +3 -3
  137. package/generic-assets/README.md +3 -3
  138. package/generic-autocomplete/README.md +3 -3
  139. package/generic-button/README.md +3 -3
  140. package/generic-card/README.md +3 -3
  141. package/generic-crud-table/README.md +3 -3
  142. package/generic-dialog/README.md +3 -3
  143. package/generic-errormessage/README.md +3 -3
  144. package/generic-formly-fields/README.md +3 -3
  145. package/generic-loadingspinner/README.md +3 -3
  146. package/generic-report/README.md +3 -3
  147. package/generic-search/README.md +3 -3
  148. package/generic-search-advanced/README.md +3 -3
  149. package/generic-selector/README.md +3 -3
  150. package/generic-table/README.md +3 -3
  151. package/generic-view/README.md +3 -3
  152. package/header-wrapper/README.md +3 -3
  153. package/icon-picker/README.md +3 -3
  154. package/input/README.md +3 -3
  155. package/input-switch/README.md +3 -3
  156. package/input-with-icon/README.md +3 -3
  157. package/label-type/README.md +3 -3
  158. package/loading-skeletons/README.md +3 -3
  159. package/odata-query-builder/README.md +3 -3
  160. package/package.json +1 -1
  161. package/query-type/README.md +3 -3
  162. package/radio/README.md +3 -3
  163. package/repeat/README.md +3 -3
  164. package/select/README.md +3 -3
  165. package/sidebar-cards/README.md +3 -3
  166. package/sidebar-toggles/README.md +3 -3
  167. package/styles.css +0 -0
  168. package/tabs/README.md +3 -3
  169. package/tag-type/README.md +3 -3
  170. package/text-editor/README.md +3 -3
  171. package/textarea/README.md +3 -3
  172. package/types/es.framework-ng.ui.core-generic-crud-table.d.ts +1 -0
  173. package/types/es.framework-ng.ui.core-generic-search-advanced.d.ts +5 -2
  174. package/wrappers/README.md +3 -3
@@ -1 +1 @@
1
- {"version":3,"file":"es.framework-ng.ui.core-repeat.mjs","sources":["../../../../libs/ng.ui.core/repeat/src/lib/repeat-module.ts","../../../../libs/ng.ui.core/repeat/src/lib/repeat-section.type.ts","../../../../libs/ng.ui.core/repeat/src/lib/repeat-table-view.type.ts","../../../../libs/ng.ui.core/repeat/src/es.framework-ng.ui.core-repeat.ts"],"sourcesContent":["import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\n@NgModule({\r\n imports: [CommonModule],\r\n})\r\nexport class RepeatModule {}\r\n","import { TranslatePipe } from '@es.framework/ng.core/pipes';\r\nimport { ChangeDetectorRef, Component, OnInit, signal, computed } from '@angular/core';\r\nimport { FieldArrayType, FormlyField, FormlyFieldConfig } from '@ngx-formly/core';\r\nimport { DragDropModule, moveItemInArray, CdkDragDrop } from '@angular/cdk/drag-drop';\r\nimport { FormsModule } from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'formly-repeat-section',\r\n standalone: true,\r\n imports: [FormlyField, TranslatePipe, DragDropModule, FormsModule],\r\n template: `\r\n <div class=\"dx-grid-container shadow-md border border-[#c1c1c1] bg-white text-[#333] rounded-sm overflow-hidden\">\r\n \r\n <div class=\"bg-gradient-to-b from-[#fdfdfd] to-[#ececec] border-b border-[#c1c1c1] px-3 py-1.5 flex items-center justify-between gap-4\">\r\n <span class=\"text-[11px] font-bold uppercase tracking-tight text-[#555]\">{{ field.props?.label || '' }}</span>\r\n \r\n @if (field.props?.['enableSearch']) {\r\n <div class=\"relative flex items-center\">\r\n <i class=\"pi pi-search absolute left-2 text-[10px] text-gray-400\"></i>\r\n <input \r\n [(ngModel)]=\"searchQuery\" \r\n (input)=\"onSearch()\"\r\n [placeholder]=\"'Search' | translate\" \r\n class=\"pl-7 pr-2 py-1 text-[11px] border border-[#ccc] rounded-sm focus:border-[#0078d7] outline-none w-48 transition-all\"\r\n />\r\n </div>\r\n }\r\n </div>\r\n\r\n <div class=\"overflow-x-auto min-h-[100px]\">\r\n <table class=\"w-full border-collapse table-auto\">\r\n <thead>\r\n <tr class=\"bg-[#f2f2f2] border-b border-[#d1d1d1]\">\r\n <th class=\"sticky right-0 z-10 w-12 border-r border-[#d1d1d1] bg-[#f2f2f2]\"></th>\r\n \r\n <th class=\"sticky right-12 z-10 w-12 border-r border-[#d1d1d1] bg-[#f2f2f2]\"></th>\r\n @for (col of getFirstRowColumns(); track col) {\r\n <!-- @if (!col.hide) { -->\r\n \r\n <th [class.hidden]=\"col.className?.includes('hidden') || col.hide\" style=\"text-align: initial;\" class=\"px-3 py-2 text-[12px] font-semibold text-[#444] border-r border-[#d1d1d1] bg-gradient-to-b from-[#fdfdfd] to-[#f2f2f2] whitespace-nowrap\" >\r\n {{ (col.props?.label ?? '') | translate }}\r\n </th>\r\n \r\n }\r\n </tr>\r\n </thead>\r\n \r\n <tbody cdkDropList (cdkDropListDropped)=\"onDrop($event)\" [cdkDropListData]=\"field.fieldGroup\">\r\n @for (row of displayedRows(); track row; let rowIndex = $index) {\r\n <tr cdkDrag \r\n [id]=\"'row-' + rowIndex\"\r\n [class.bg-yellow-50]=\"isMatched(row)\"\r\n class=\"dx-row border-b border-[#e0e0e0] hover:bg-[#eff4ff] transition-colors bg-white\">\r\n \r\n <div *cdkDragPlaceholder class=\"bg-blue-50 border-2 border-dashed border-blue-200 h-10\"></div>\r\n\r\n <td class=\"sticky right-0 z-10 text-center border-r border-[#e0e0e0] bg-[#f6f6f6] py-0 px-2 cursor-move\" cdkDragHandle>\r\n <div class=\"flex items-center gap-1\">\r\n <i class=\"pi pi-bars text-[10px] text-gray-300\"></i>\r\n <span class=\"text-[10px] text-gray-400 font-mono\">{{ (currentPage * pageSize) + rowIndex + 1 }}</span>\r\n </div>\r\n </td>\r\n\r\n <td class=\"sticky right-12 z-10 px-2 py-0 text-center bg-[#fcfcfc] w-12 border-r border-[#e0e0e0]\">\r\n @if (canDelete(rowIndex) && !(field.props?.['delete']?.hidden ?? false)) {\r\n <button type=\"button\" (click)=\"remove(rowIndex)\" class=\"p-2 text-gray-400 hover:text-red-600 transition-colors\">\r\n <i class=\"pi pi-trash text-[13px]\"></i>\r\n </button>\r\n }\r\n </td>\r\n \r\n @for (col of row.fieldGroup; track col) {\r\n <!-- @if (!col.hide) { -->\r\n \r\n <td [class.hidden]=\"col.className?.includes('hidden') || col.hide\" class=\"p-0 border-r border-[#e0e0e0] align-middle min-w-[150px]\">\r\n <div class=\"dx-field-cell\">\r\n <formly-field [field]=\"col\"></formly-field>\r\n </div>\r\n </td>\r\n \r\n }\r\n\r\n \r\n </tr>\r\n }\r\n </tbody>\r\n\r\n \r\n@if (field.props?.['showFooterTotals']) {\r\n <tfoot>\r\n <tr class=\"bg-[#f9f9f9] border-t-2 border-[#d1d1d1] font-bold text-[12px]\">\r\n <td class=\"border-r border-[#e0e0e0] bg-[#eee]\"></td>\r\n <td class=\"border-r border-[#e0e0e0] bg-[#eee]\"></td>\r\n \r\n @for (col of getFirstRowColumns(); track col) {\r\n <!-- @if (!col.hide) { -->\r\n <td [class.hidden]=\"col.className?.includes('hidden') || col.hide\" class=\"px-3 py-1 border-r border-[#e0e0e0] text-[#333]\">\r\n @if (getFooterConfig(col.key); as cfg) {\r\n <div class=\"flex flex-col leading-tight\">\r\n <span class=\"text-[8px] text-gray-400 uppercase tracking-tighter\">\r\n {{ cfg.label | translate }}\r\n </span>\r\n <span class=\"text-[#005a9e]\">\r\n {{ calculateTotal(col.key, cfg.type) }}\r\n </span>\r\n </div>\r\n }\r\n </td>\r\n \r\n }\r\n <td class=\"bg-[#eee]\"></td>\r\n </tr>\r\n </tfoot>\r\n}\r\n </table>\r\n </div>\r\n\r\n <div class=\"p-2 border-t border-[#c1c1c1] bg-[#f3f3f3] flex items-center justify-between\">\r\n <div class=\"flex items-center gap-2\">\r\n @if (!(field.props?.['add']?.hidden ?? false)) {\r\n <button type=\"button\" (click)=\"add()\" class=\"flex items-center gap-2 px-4 py-1.5 rounded-sm border border-primary-500 bg-primary-600 text-white text-[11px] font-medium hover:bg-primary-700 shadow-sm transition-all\">\r\n <i class=\"pi pi-plus text-[10px]\"></i>\r\n <span>{{ 'Add' | translate }}</span>\r\n </button>\r\n }\r\n </div>\r\n\r\n <div class=\"flex items-center gap-1 text-[11px] text-gray-600\">\r\n <button (click)=\"nextPage()\" [disabled]=\"currentPage >= totalPages() - 1\" class=\"px-2 py-1 border border-gray-300 bg-white disabled:opacity-50\"><i class=\"pi pi-chevron-right text-[9px]\"></i></button>\r\n <span class=\"px-2\"> {{ currentPage + 1 }} - {{ totalPages() }}</span>\r\n <button (click)=\"prevPage()\" [disabled]=\"currentPage === 0\" class=\"px-2 py-1 border border-gray-300 bg-white disabled:opacity-50\"><i class=\"pi pi-chevron-left text-[9px]\"></i></button>\r\n \r\n </div>\r\n </div>\r\n </div>\r\n `,\r\n styles: [`\r\n :host ::ng-deep {\r\n .dx-field-cell .form-control, .dx-field-cell input, .dx-field-cell select {\r\n @apply w-full bg-transparent border-none px-3 py-2 text-[13px] outline-none;\r\n border-radius: 0; box-shadow: none !important;\r\n }\r\n .dx-field-cell:focus-within { @apply bg-white ring-1 ring-inset ring-[#0078d7]; box-shadow: inset 0 0 0 1px #0078d7; }\r\n .dx-row:nth-child(even) { background-color: #fafafa; }\r\n .cdk-drag-preview { @apply shadow-2xl border border-blue-200 bg-white opacity-90; display: table; width: 100%; }\r\n }\r\n .right-12{\r\n right: 38px\r\n }\r\n `]\r\n})\r\nexport class RepeatTypeComponent extends FieldArrayType implements OnInit {\r\n searchQuery = '';\r\n currentPage = 0;\r\n pageSize = 10;\r\n\r\n constructor(private cdr: ChangeDetectorRef) { super(); }\r\n\r\n ngOnInit() {\r\n this.field.formControl.valueChanges.subscribe(() => {\r\n this.field.fieldGroup = [...this.field.fieldGroup ?? []];\r\n this.cdr.detectChanges();\r\n });\r\n }\r\n\r\n getFirstRowColumns() {\r\n return this.field.fieldGroup?.[0]?.fieldGroup ?? [];\r\n }\r\n\r\n // Row visibility / Delete Protection logic\r\n canDelete(index: number): boolean {\r\n const isFirst = index === 0 && this.currentPage === 0;\r\n const isSecond = index === 1 && this.currentPage === 0;\r\n \r\n if (isFirst && !this.field.props?.['canDeleteFirstRow']) return false;\r\n if (isSecond && !this.field.props?.['canDeleteSecondRow']) return false;\r\n \r\n return true;\r\n }\r\n\r\n // Pagination Logic\r\n totalPages() {\r\n return Math.ceil((this.field.fieldGroup?.length || 0) / this.pageSize) || 1;\r\n }\r\n\r\n displayedRows() {\r\n const start = this.currentPage * this.pageSize;\r\n return (this.field.fieldGroup || []).slice(start, start + this.pageSize);\r\n }\r\n\r\n nextPage() { if (this.currentPage < this.totalPages() - 1) this.currentPage++; }\r\n prevPage() { if (this.currentPage > 0) this.currentPage--; }\r\n\r\n // Totals Logic\r\n // inside RepeatTypeComponent class\r\n\r\ngetFooterConfig(columnKey: any) {\r\n // Access footer configuration defined in the field props\r\n const footerConfigs = this.field.props?.['footerConfig'];\r\n if (!footerConfigs) return null;\r\n \r\n // Find config for this specific key (e.g., { key: 'amount', label: 'Sum', type: 'sum' })\r\n return footerConfigs.find((c: any) => c.key === columnKey);\r\n}\r\n\r\ncalculateTotal(key: any, type: 'sum' | 'avg' | 'count' = 'sum'): string {\r\n const values = (this.formControl.value || [])\r\n .map((v: any) => parseFloat(v[key]))\r\n .filter((v: number) => !isNaN(v));\r\n \r\n\r\n if (values.length === 0) return '0.00';\r\n\r\n let result = 0;\r\n switch (type) {\r\n case 'avg':\r\n result = values.reduce((a:any, b:any) => a + b, 0) / values.length;\r\n break;\r\n case 'count':\r\n return values.length.toString();\r\n case 'sum':\r\n default:\r\n result = values.reduce((a:any, b:any) => a + b, 0);\r\n break;\r\n }\r\n\r\n // Format as enterprise currency/number\r\n return result.toLocaleString(undefined, { minimumFractionDigits: 2, maximumFractionDigits: 2 });\r\n}\r\n\r\n // Search Logic\r\n onSearch() {\r\n if (!this.searchQuery) return;\r\n const index = (this.field.fieldGroup || []).findIndex(row => \r\n JSON.stringify(row.model).toLowerCase().includes(this.searchQuery.toLowerCase())\r\n );\r\n \r\n if (index !== -1) {\r\n this.currentPage = Math.floor(index / this.pageSize);\r\n // Optional: Scroll to matched row after a small timeout\r\n setTimeout(() => {\r\n document.getElementById(`row-${index % this.pageSize}`)?.scrollIntoView({ behavior: 'smooth', block: 'center' });\r\n }, 100);\r\n }\r\n }\r\n\r\n isMatched(row: FormlyFieldConfig): boolean {\r\n if (!this.searchQuery) return false;\r\n return JSON.stringify(row.model).toLowerCase().includes(this.searchQuery.toLowerCase());\r\n }\r\n\r\n onDrop(event: CdkDragDrop<any[]> | any) {\r\n moveItemInArray(this.field.fieldGroup as any[], event.previousIndex, event.currentIndex);\r\n const formArray = this.formControl as any;\r\n const temp = formArray.at(event.previousIndex);\r\n formArray.removeAt(event.previousIndex);\r\n formArray.insert(event.currentIndex, temp);\r\n this.field.fieldGroup = [...this.field.fieldGroup ?? []];\r\n this.cdr.detectChanges();\r\n }\r\n}","\r\nimport { Component } from '@angular/core';\r\nimport { FieldArrayType } from '@ngx-formly/core';\r\nimport { TranslatePipe } from '@es.framework/ng.core/pipes';\r\n\r\n@Component({\r\n selector: 'formly-repeat-table-view',\r\n template: `\r\n <div class=\"mb-0\">\r\n \r\n <!-- <label class=\"block text-lg font-semibold mb-3\">\r\n {{ field.props?.label }}\r\n </label> -->\r\n \r\n <div class=\"overflow-x-auto rounded-xl border\">\r\n <table class=\"min-w-full bg-white border-collapse\">\r\n \r\n <thead class=\"bg-gray-100\">\r\n <tr>\r\n <!-- text-left -->\r\n @for (col of columns; track col) {\r\n <th\r\n class=\"px-4 py-3 text-right font-medium border-b\"\r\n >\r\n {{ col.label | translate }}\r\n </th>\r\n }\r\n </tr>\r\n </thead>\r\n \r\n <tbody>\r\n @for (row of rows; track row; let i = $index) {\r\n <tr\r\n class=\"border-b hover:bg-gray-50\">\r\n @for (col of columns; track col) {\r\n <td\r\n class=\"px-4 py-2\">\r\n {{ row[col.key] }}\r\n </td>\r\n }\r\n </tr>\r\n }\r\n \r\n @if (!rows || rows.length === 0) {\r\n <tr>\r\n <td [attr.colspan]=\"columns.length\"\r\n class=\"text-center py-6 text-gray-400\">\r\n No data\r\n </td>\r\n </tr>\r\n }\r\n \r\n </tbody>\r\n \r\n </table>\r\n </div>\r\n \r\n </div>\r\n \r\n `,\r\n imports: [TranslatePipe],\r\n})\r\nexport class RepeatTableViewType extends FieldArrayType {\r\n\r\n get columns() {\r\n const group = (this.field?.fieldArray as any)?.fieldGroup || [];\r\n return group.map((f :any)=> ({\r\n key: f.key as string,\r\n label: f.props?.label || f.key\r\n }));\r\n }\r\n\r\n get rows() {\r\n return this.model || [];\r\n }\r\n\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"es.framework-ng.ui.core-repeat.mjs","sources":["../../../../libs/ng.ui.core/repeat/src/lib/repeat-module.ts","../../../../libs/ng.ui.core/repeat/src/lib/repeat-section.type.ts","../../../../libs/ng.ui.core/repeat/src/lib/repeat-table-view.type.ts","../../../../libs/ng.ui.core/repeat/src/es.framework-ng.ui.core-repeat.ts"],"sourcesContent":["import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@NgModule({\n imports: [CommonModule],\n})\nexport class RepeatModule {}\n","import { TranslatePipe } from '@es.framework/ng.core/pipes';\nimport { ChangeDetectorRef, Component, OnInit, signal, computed } from '@angular/core';\nimport { FieldArrayType, FormlyField, FormlyFieldConfig } from '@ngx-formly/core';\nimport { DragDropModule, moveItemInArray, CdkDragDrop } from '@angular/cdk/drag-drop';\nimport { FormsModule } from '@angular/forms';\n\n@Component({\n selector: 'formly-repeat-section',\n standalone: true,\n imports: [FormlyField, TranslatePipe, DragDropModule, FormsModule],\n template: `\n <div class=\"dx-grid-container shadow-md border border-[#c1c1c1] bg-white text-[#333] rounded-sm overflow-hidden\">\n \n <div class=\"bg-gradient-to-b from-[#fdfdfd] to-[#ececec] border-b border-[#c1c1c1] px-3 py-1.5 flex items-center justify-between gap-4\">\n <span class=\"text-[11px] font-bold uppercase tracking-tight text-[#555]\">{{ field.props?.label || '' }}</span>\n \n @if (field.props?.['enableSearch']) {\n <div class=\"relative flex items-center\">\n <i class=\"pi pi-search absolute left-2 text-[10px] text-gray-400\"></i>\n <input \n [(ngModel)]=\"searchQuery\" \n (input)=\"onSearch()\"\n [placeholder]=\"'Search' | translate\" \n class=\"pl-7 pr-2 py-1 text-[11px] border border-[#ccc] rounded-sm focus:border-[#0078d7] outline-none w-48 transition-all\"\n />\n </div>\n }\n </div>\n\n <div class=\"overflow-x-auto min-h-[100px]\">\n <table class=\"w-full border-collapse table-auto\">\n <thead>\n <tr class=\"bg-[#f2f2f2] border-b border-[#d1d1d1]\">\n <th class=\"sticky right-0 z-10 w-12 border-r border-[#d1d1d1] bg-[#f2f2f2]\"></th>\n \n <th class=\"sticky right-12 z-10 w-12 border-r border-[#d1d1d1] bg-[#f2f2f2]\"></th>\n @for (col of getFirstRowColumns(); track col) {\n <!-- @if (!col.hide) { -->\n \n <th [class.hidden]=\"col.className?.includes('hidden') || col.hide\" style=\"text-align: initial;\" class=\"px-3 py-2 text-[12px] font-semibold text-[#444] border-r border-[#d1d1d1] bg-gradient-to-b from-[#fdfdfd] to-[#f2f2f2] whitespace-nowrap\" >\n {{ (col.props?.label ?? '') | translate }}\n </th>\n \n }\n </tr>\n </thead>\n \n <tbody cdkDropList (cdkDropListDropped)=\"onDrop($event)\" [cdkDropListData]=\"field.fieldGroup\">\n @for (row of displayedRows(); track row; let rowIndex = $index) {\n <tr cdkDrag \n [id]=\"'row-' + rowIndex\"\n [class.bg-yellow-50]=\"isMatched(row)\"\n class=\"dx-row border-b border-[#e0e0e0] hover:bg-[#eff4ff] transition-colors bg-white\">\n \n <div *cdkDragPlaceholder class=\"bg-blue-50 border-2 border-dashed border-blue-200 h-10\"></div>\n\n <td class=\"sticky right-0 z-10 text-center border-r border-[#e0e0e0] bg-[#f6f6f6] py-0 px-2 cursor-move\" cdkDragHandle>\n <div class=\"flex items-center gap-1\">\n <i class=\"pi pi-bars text-[10px] text-gray-300\"></i>\n <span class=\"text-[10px] text-gray-400 font-mono\">{{ (currentPage * pageSize) + rowIndex + 1 }}</span>\n </div>\n </td>\n\n <td class=\"sticky right-12 z-10 px-2 py-0 text-center bg-[#fcfcfc] w-12 border-r border-[#e0e0e0]\">\n @if (canDelete(rowIndex) && !(field.props?.['delete']?.hidden ?? false)) {\n <button type=\"button\" (click)=\"remove(rowIndex)\" class=\"p-2 text-gray-400 hover:text-red-600 transition-colors\">\n <i class=\"pi pi-trash text-[13px]\"></i>\n </button>\n }\n </td>\n \n @for (col of row.fieldGroup; track col) {\n <!-- @if (!col.hide) { -->\n \n <td [class.hidden]=\"col.className?.includes('hidden') || col.hide\" class=\"p-0 border-r border-[#e0e0e0] align-middle min-w-[150px]\">\n <div class=\"dx-field-cell\">\n <formly-field [field]=\"col\"></formly-field>\n </div>\n </td>\n \n }\n\n \n </tr>\n }\n </tbody>\n\n \n@if (field.props?.['showFooterTotals']) {\n <tfoot>\n <tr class=\"bg-[#f9f9f9] border-t-2 border-[#d1d1d1] font-bold text-[12px]\">\n <td class=\"border-r border-[#e0e0e0] bg-[#eee]\"></td>\n <td class=\"border-r border-[#e0e0e0] bg-[#eee]\"></td>\n \n @for (col of getFirstRowColumns(); track col) {\n <!-- @if (!col.hide) { -->\n <td [class.hidden]=\"col.className?.includes('hidden') || col.hide\" class=\"px-3 py-1 border-r border-[#e0e0e0] text-[#333]\">\n @if (getFooterConfig(col.key); as cfg) {\n <div class=\"flex flex-col leading-tight\">\n <span class=\"text-[8px] text-gray-400 uppercase tracking-tighter\">\n {{ cfg.label | translate }}\n </span>\n <span class=\"text-[#005a9e]\">\n {{ calculateTotal(col.key, cfg.type) }}\n </span>\n </div>\n }\n </td>\n \n }\n <td class=\"bg-[#eee]\"></td>\n </tr>\n </tfoot>\n}\n </table>\n </div>\n\n <div class=\"p-2 border-t border-[#c1c1c1] bg-[#f3f3f3] flex items-center justify-between\">\n <div class=\"flex items-center gap-2\">\n @if (!(field.props?.['add']?.hidden ?? false)) {\n <button type=\"button\" (click)=\"add()\" class=\"flex items-center gap-2 px-4 py-1.5 rounded-sm border border-primary-500 bg-primary-600 text-white text-[11px] font-medium hover:bg-primary-700 shadow-sm transition-all\">\n <i class=\"pi pi-plus text-[10px]\"></i>\n <span>{{ 'Add' | translate }}</span>\n </button>\n }\n </div>\n\n <div class=\"flex items-center gap-1 text-[11px] text-gray-600\">\n <button (click)=\"nextPage()\" [disabled]=\"currentPage >= totalPages() - 1\" class=\"px-2 py-1 border border-gray-300 bg-white disabled:opacity-50\"><i class=\"pi pi-chevron-right text-[9px]\"></i></button>\n <span class=\"px-2\"> {{ currentPage + 1 }} - {{ totalPages() }}</span>\n <button (click)=\"prevPage()\" [disabled]=\"currentPage === 0\" class=\"px-2 py-1 border border-gray-300 bg-white disabled:opacity-50\"><i class=\"pi pi-chevron-left text-[9px]\"></i></button>\n \n </div>\n </div>\n </div>\n `,\n styles: [`\n :host ::ng-deep {\n .dx-field-cell .form-control, .dx-field-cell input, .dx-field-cell select {\n @apply w-full bg-transparent border-none px-3 py-2 text-[13px] outline-none;\n border-radius: 0; box-shadow: none !important;\n }\n .dx-field-cell:focus-within { @apply bg-white ring-1 ring-inset ring-[#0078d7]; box-shadow: inset 0 0 0 1px #0078d7; }\n .dx-row:nth-child(even) { background-color: #fafafa; }\n .cdk-drag-preview { @apply shadow-2xl border border-blue-200 bg-white opacity-90; display: table; width: 100%; }\n }\n .right-12{\n right: 38px\n }\n `]\n})\nexport class RepeatTypeComponent extends FieldArrayType implements OnInit {\n searchQuery = '';\n currentPage = 0;\n pageSize = 10;\n\n constructor(private cdr: ChangeDetectorRef) { super(); }\n\n ngOnInit() {\n this.field.formControl.valueChanges.subscribe(() => {\n this.field.fieldGroup = [...this.field.fieldGroup ?? []];\n this.cdr.detectChanges();\n });\n }\n\n getFirstRowColumns() {\n return this.field.fieldGroup?.[0]?.fieldGroup ?? [];\n }\n\n // Row visibility / Delete Protection logic\n canDelete(index: number): boolean {\n const isFirst = index === 0 && this.currentPage === 0;\n const isSecond = index === 1 && this.currentPage === 0;\n \n if (isFirst && !this.field.props?.['canDeleteFirstRow']) return false;\n if (isSecond && !this.field.props?.['canDeleteSecondRow']) return false;\n \n return true;\n }\n\n // Pagination Logic\n totalPages() {\n return Math.ceil((this.field.fieldGroup?.length || 0) / this.pageSize) || 1;\n }\n\n displayedRows() {\n const start = this.currentPage * this.pageSize;\n return (this.field.fieldGroup || []).slice(start, start + this.pageSize);\n }\n\n nextPage() { if (this.currentPage < this.totalPages() - 1) this.currentPage++; }\n prevPage() { if (this.currentPage > 0) this.currentPage--; }\n\n // Totals Logic\n // inside RepeatTypeComponent class\n\ngetFooterConfig(columnKey: any) {\n // Access footer configuration defined in the field props\n const footerConfigs = this.field.props?.['footerConfig'];\n if (!footerConfigs) return null;\n \n // Find config for this specific key (e.g., { key: 'amount', label: 'Sum', type: 'sum' })\n return footerConfigs.find((c: any) => c.key === columnKey);\n}\n\ncalculateTotal(key: any, type: 'sum' | 'avg' | 'count' = 'sum'): string {\n const values = (this.formControl.value || [])\n .map((v: any) => parseFloat(v[key]))\n .filter((v: number) => !isNaN(v));\n \n\n if (values.length === 0) return '0.00';\n\n let result = 0;\n switch (type) {\n case 'avg':\n result = values.reduce((a:any, b:any) => a + b, 0) / values.length;\n break;\n case 'count':\n return values.length.toString();\n case 'sum':\n default:\n result = values.reduce((a:any, b:any) => a + b, 0);\n break;\n }\n\n // Format as enterprise currency/number\n return result.toLocaleString(undefined, { minimumFractionDigits: 2, maximumFractionDigits: 2 });\n}\n\n // Search Logic\n onSearch() {\n if (!this.searchQuery) return;\n const index = (this.field.fieldGroup || []).findIndex(row => \n JSON.stringify(row.model).toLowerCase().includes(this.searchQuery.toLowerCase())\n );\n \n if (index !== -1) {\n this.currentPage = Math.floor(index / this.pageSize);\n // Optional: Scroll to matched row after a small timeout\n setTimeout(() => {\n document.getElementById(`row-${index % this.pageSize}`)?.scrollIntoView({ behavior: 'smooth', block: 'center' });\n }, 100);\n }\n }\n\n isMatched(row: FormlyFieldConfig): boolean {\n if (!this.searchQuery) return false;\n return JSON.stringify(row.model).toLowerCase().includes(this.searchQuery.toLowerCase());\n }\n\n onDrop(event: CdkDragDrop<any[]> | any) {\n moveItemInArray(this.field.fieldGroup as any[], event.previousIndex, event.currentIndex);\n const formArray = this.formControl as any;\n const temp = formArray.at(event.previousIndex);\n formArray.removeAt(event.previousIndex);\n formArray.insert(event.currentIndex, temp);\n this.field.fieldGroup = [...this.field.fieldGroup ?? []];\n this.cdr.detectChanges();\n }\n}","\nimport { Component } from '@angular/core';\nimport { FieldArrayType } from '@ngx-formly/core';\nimport { TranslatePipe } from '@es.framework/ng.core/pipes';\n\n@Component({\n selector: 'formly-repeat-table-view',\n template: `\n <div class=\"mb-0\">\n \n <!-- <label class=\"block text-lg font-semibold mb-3\">\n {{ field.props?.label }}\n </label> -->\n \n <div class=\"overflow-x-auto rounded-xl border\">\n <table class=\"min-w-full bg-white border-collapse\">\n \n <thead class=\"bg-gray-100\">\n <tr>\n <!-- text-left -->\n @for (col of columns; track col) {\n <th\n class=\"px-4 py-3 text-right font-medium border-b\"\n >\n {{ col.label | translate }}\n </th>\n }\n </tr>\n </thead>\n \n <tbody>\n @for (row of rows; track row; let i = $index) {\n <tr\n class=\"border-b hover:bg-gray-50\">\n @for (col of columns; track col) {\n <td\n class=\"px-4 py-2\">\n {{ row[col.key] }}\n </td>\n }\n </tr>\n }\n \n @if (!rows || rows.length === 0) {\n <tr>\n <td [attr.colspan]=\"columns.length\"\n class=\"text-center py-6 text-gray-400\">\n No data\n </td>\n </tr>\n }\n \n </tbody>\n \n </table>\n </div>\n \n </div>\n \n `,\n imports: [TranslatePipe],\n})\nexport class RepeatTableViewType extends FieldArrayType {\n\n get columns() {\n const group = (this.field?.fieldArray as any)?.fieldGroup || [];\n return group.map((f :any)=> ({\n key: f.key as string,\n label: f.props?.label || f.key\n }));\n }\n\n get rows() {\n return this.model || [];\n }\n\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -29,96 +29,96 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImpor
29
29
 
30
30
  class FormlyFieldSelect extends FieldType {
31
31
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: FormlyFieldSelect, deps: null, target: i0.ɵɵFactoryTarget.Component });
32
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.3", type: FormlyFieldSelect, isStandalone: true, selector: "formly-field-primeng-select", usesInheritance: true, ngImport: i0, template: `
33
- <p-select
34
- [options]="(props.options | formlySelectOptions: field | async) ?? []"
35
- [formControl]="formControl"
36
- [formlyAttributes]="field"
37
- [showClear]="!props.required"
38
- [appendTo]="props.appendTo"
39
- [filter]="props.filter"
40
- [filterBy]="props.filterBy ?? 'label'"
41
- [optionLabel]="'label'"
42
- [optionValue]="'value'"
43
- (onChange)="props.change && props.change(field, $event)"
44
- [placeholder]="(props['placeholder'] ?? '')| translate"
45
- [styleClass]="'w-full rounded-none block'"
46
- >
47
- <!-- Template for each option in the dropdown -->
48
- <ng-template let-option pTemplate="item">
49
- <div class="flex items-center gap-2">
50
- <!-- Example: add an icon if option has one -->
51
- @if (option.icon) {
52
-
53
- <i [class]="option.icon"></i>
54
- }
55
- <span>{{ option.label | translate }}</span>
56
- <!-- Example: show description -->
57
- @if (option.description) {
58
-
59
- <small class="text-gray-500"> - {{ option.description | translate}}</small>
60
- }
61
- </div>
62
- </ng-template>
63
-
64
- <!-- Template for selected value -->
65
- <ng-template let-selected pTemplate="selectedItem">
66
- <div class="flex items-center gap-2">
67
- @if (selected?.icon) {
68
- <i [class]="selected.icon"></i>
69
- }
70
- <span>{{ selected?.label | translate}}</span>
71
- </div>
72
- </ng-template>
73
- </p-select>
32
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.3", type: FormlyFieldSelect, isStandalone: true, selector: "formly-field-primeng-select", usesInheritance: true, ngImport: i0, template: `
33
+ <p-select
34
+ [options]="(props.options | formlySelectOptions: field | async) ?? []"
35
+ [formControl]="formControl"
36
+ [formlyAttributes]="field"
37
+ [showClear]="!props.required"
38
+ [appendTo]="props.appendTo"
39
+ [filter]="props.filter"
40
+ [filterBy]="props.filterBy ?? 'label'"
41
+ [optionLabel]="'label'"
42
+ [optionValue]="'value'"
43
+ (onChange)="props.change && props.change(field, $event)"
44
+ [placeholder]="(props['placeholder'] ?? '')| translate"
45
+ [styleClass]="'w-full rounded-none block'"
46
+ >
47
+ <!-- Template for each option in the dropdown -->
48
+ <ng-template let-option pTemplate="item">
49
+ <div class="flex items-center gap-2">
50
+ <!-- Example: add an icon if option has one -->
51
+ @if (option.icon) {
52
+
53
+ <i [class]="option.icon"></i>
54
+ }
55
+ <span>{{ option.label | translate }}</span>
56
+ <!-- Example: show description -->
57
+ @if (option.description) {
58
+
59
+ <small class="text-gray-500"> - {{ option.description | translate}}</small>
60
+ }
61
+ </div>
62
+ </ng-template>
63
+
64
+ <!-- Template for selected value -->
65
+ <ng-template let-selected pTemplate="selectedItem">
66
+ <div class="flex items-center gap-2">
67
+ @if (selected?.icon) {
68
+ <i [class]="selected.icon"></i>
69
+ }
70
+ <span>{{ selected?.label | translate}}</span>
71
+ </div>
72
+ </ng-template>
73
+ </p-select>
74
74
  `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: DatePickerModule }, { kind: "directive", type: i2.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "ngmodule", type: FormlyFormFieldModule }, { kind: "directive", type: FormlyAttributes, selector: "[formlyAttributes]", inputs: ["formlyAttributes", "id"] }, { kind: "ngmodule", type: SelectModule$1 }, { kind: "component", type: i3.Select, selector: "p-select", inputs: ["id", "scrollHeight", "filter", "panelStyle", "styleClass", "panelStyleClass", "readonly", "editable", "tabindex", "placeholder", "loadingIcon", "filterPlaceholder", "filterLocale", "inputId", "dataKey", "filterBy", "filterFields", "autofocus", "resetFilterOnHide", "checkmark", "dropdownIcon", "loading", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "group", "showClear", "emptyFilterMessage", "emptyMessage", "lazy", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "overlayOptions", "ariaFilterLabel", "ariaLabel", "ariaLabelledBy", "filterMatchMode", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "focusOnHover", "selectOnFocus", "autoOptionFocus", "autofocusFilter", "filterValue", "options", "appendTo"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onShow", "onHide", "onClear", "onLazyLoad"] }, { kind: "ngmodule", type: FormlySelectModule$1 }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.LegacyFormlySelectOptionsPipe, name: "formlySelectOptions" }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
75
75
  }
76
76
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: FormlyFieldSelect, decorators: [{
77
77
  type: Component,
78
78
  args: [{
79
79
  selector: 'formly-field-primeng-select',
80
- template: `
81
- <p-select
82
- [options]="(props.options | formlySelectOptions: field | async) ?? []"
83
- [formControl]="formControl"
84
- [formlyAttributes]="field"
85
- [showClear]="!props.required"
86
- [appendTo]="props.appendTo"
87
- [filter]="props.filter"
88
- [filterBy]="props.filterBy ?? 'label'"
89
- [optionLabel]="'label'"
90
- [optionValue]="'value'"
91
- (onChange)="props.change && props.change(field, $event)"
92
- [placeholder]="(props['placeholder'] ?? '')| translate"
93
- [styleClass]="'w-full rounded-none block'"
94
- >
95
- <!-- Template for each option in the dropdown -->
96
- <ng-template let-option pTemplate="item">
97
- <div class="flex items-center gap-2">
98
- <!-- Example: add an icon if option has one -->
99
- @if (option.icon) {
100
-
101
- <i [class]="option.icon"></i>
102
- }
103
- <span>{{ option.label | translate }}</span>
104
- <!-- Example: show description -->
105
- @if (option.description) {
106
-
107
- <small class="text-gray-500"> - {{ option.description | translate}}</small>
108
- }
109
- </div>
110
- </ng-template>
111
-
112
- <!-- Template for selected value -->
113
- <ng-template let-selected pTemplate="selectedItem">
114
- <div class="flex items-center gap-2">
115
- @if (selected?.icon) {
116
- <i [class]="selected.icon"></i>
117
- }
118
- <span>{{ selected?.label | translate}}</span>
119
- </div>
120
- </ng-template>
121
- </p-select>
80
+ template: `
81
+ <p-select
82
+ [options]="(props.options | formlySelectOptions: field | async) ?? []"
83
+ [formControl]="formControl"
84
+ [formlyAttributes]="field"
85
+ [showClear]="!props.required"
86
+ [appendTo]="props.appendTo"
87
+ [filter]="props.filter"
88
+ [filterBy]="props.filterBy ?? 'label'"
89
+ [optionLabel]="'label'"
90
+ [optionValue]="'value'"
91
+ (onChange)="props.change && props.change(field, $event)"
92
+ [placeholder]="(props['placeholder'] ?? '')| translate"
93
+ [styleClass]="'w-full rounded-none block'"
94
+ >
95
+ <!-- Template for each option in the dropdown -->
96
+ <ng-template let-option pTemplate="item">
97
+ <div class="flex items-center gap-2">
98
+ <!-- Example: add an icon if option has one -->
99
+ @if (option.icon) {
100
+
101
+ <i [class]="option.icon"></i>
102
+ }
103
+ <span>{{ option.label | translate }}</span>
104
+ <!-- Example: show description -->
105
+ @if (option.description) {
106
+
107
+ <small class="text-gray-500"> - {{ option.description | translate}}</small>
108
+ }
109
+ </div>
110
+ </ng-template>
111
+
112
+ <!-- Template for selected value -->
113
+ <ng-template let-selected pTemplate="selectedItem">
114
+ <div class="flex items-center gap-2">
115
+ @if (selected?.icon) {
116
+ <i [class]="selected.icon"></i>
117
+ }
118
+ <span>{{ selected?.label | translate}}</span>
119
+ </div>
120
+ </ng-template>
121
+ </p-select>
122
122
  `,
123
123
  changeDetection: ChangeDetectionStrategy.OnPush,
124
124
  standalone: true,
@@ -1 +1 @@
1
- {"version":3,"file":"es.framework-ng.ui.core-select.mjs","sources":["../../../../libs/ng.ui.core/select/src/lib/select-module.ts","../../../../libs/ng.ui.core/select/src/lib/select.type.ts","../../../../libs/ng.ui.core/select/src/lib/select.config.ts","../../../../libs/ng.ui.core/select/src/lib/select.module.ts","../../../../libs/ng.ui.core/select/src/es.framework-ng.ui.core-select.ts"],"sourcesContent":["import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\n@NgModule({\r\n imports: [CommonModule],\r\n})\r\nexport class SelectModule {}\r\n","import { Component, ChangeDetectionStrategy, Type } from '@angular/core';\r\nimport { FieldType, FieldTypeConfig, FormlyAttributes, FormlyFieldConfig } from '@ngx-formly/core';\r\nimport { FormlyFieldSelectProps } from '@ngx-formly/core/select';\r\nimport { Select, SelectModule } from 'primeng/select';\r\nimport { FormlyFieldProps, FormlyFormFieldModule } from '@es.framework/ng.ui.core/form-field';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { DatePickerModule } from 'primeng/datepicker';\r\nimport { FormlySelectModule as FormlyCoreSelectModule } from '@ngx-formly/core/select';\r\nimport { TranslatePipe } from '@es.framework/ng.core/pipes';\r\n\r\ninterface SelectProps extends FormlyFieldProps, FormlyFieldSelectProps {\r\n appendTo?: Select['appendTo'];\r\n filter?: boolean;\r\n filterBy?: string;\r\n}\r\n\r\nexport interface FormlySelectFieldConfig extends FormlyFieldConfig<SelectProps> {\r\n type: 'select' | Type<FormlyFieldSelect>;\r\n}\r\n\r\n@Component({\r\n selector: 'formly-field-primeng-select',\r\n template: `\r\n <p-select\r\n [options]=\"(props.options | formlySelectOptions: field | async) ?? []\"\r\n [formControl]=\"formControl\"\r\n [formlyAttributes]=\"field\"\r\n [showClear]=\"!props.required\"\r\n [appendTo]=\"props.appendTo\"\r\n [filter]=\"props.filter\"\r\n [filterBy]=\"props.filterBy ?? 'label'\"\r\n [optionLabel]=\"'label'\"\r\n [optionValue]=\"'value'\"\r\n (onChange)=\"props.change && props.change(field, $event)\"\r\n [placeholder]=\"(props['placeholder'] ?? '')| translate\"\r\n [styleClass]=\"'w-full rounded-none block'\"\r\n >\r\n <!-- Template for each option in the dropdown -->\r\n <ng-template let-option pTemplate=\"item\">\r\n <div class=\"flex items-center gap-2\">\r\n <!-- Example: add an icon if option has one -->\r\n @if (option.icon) {\r\n\r\n <i [class]=\"option.icon\"></i>\r\n }\r\n <span>{{ option.label | translate }}</span>\r\n <!-- Example: show description -->\r\n @if (option.description) {\r\n\r\n <small class=\"text-gray-500\"> - {{ option.description | translate}}</small>\r\n }\r\n </div>\r\n </ng-template>\r\n\r\n <!-- Template for selected value -->\r\n <ng-template let-selected pTemplate=\"selectedItem\">\r\n <div class=\"flex items-center gap-2\">\r\n @if (selected?.icon) {\r\n <i [class]=\"selected.icon\"></i>\r\n }\r\n <span>{{ selected?.label | translate}}</span>\r\n </div>\r\n </ng-template>\r\n </p-select>\r\n `,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n standalone:true,\r\n imports:[CommonModule,\r\n ReactiveFormsModule,\r\n DatePickerModule,\r\n FormlyFormFieldModule,FormlyAttributes,SelectModule,FormlyCoreSelectModule,TranslatePipe]\r\n\r\n})\r\nexport class FormlyFieldSelect extends FieldType<FieldTypeConfig<SelectProps>> {}\r\n","import { ConfigOption } from '@ngx-formly/core';\r\nimport { FormlyFieldSelect } from './select.type';\r\n\r\nexport function withFormlyFieldSelect(): ConfigOption {\r\n return {\r\n types: [\r\n {\r\n name: 'select',\r\n component: FormlyFieldSelect,\r\n wrappers: ['form-field'],\r\n },\r\n { name: 'enum', extends: 'select' },\r\n ],\r\n };\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { FormlyModule } from '@ngx-formly/core';\r\nimport { SelectModule } from 'primeng/select';\r\nimport { FormlySelectModule as FormlyCoreSelectModule } from '@ngx-formly/core/select';\r\n\r\nimport { FormlyFieldSelect } from './select.type';\r\nimport { withFormlyFieldSelect } from './select.config';\r\nimport { FormlyFormFieldModule } from '@es.framework/ng.ui.core/form-field';\r\n\r\n@NgModule({\r\n // declarations: [FormlyFieldSelect],\r\n imports: [\r\n CommonModule,\r\n ReactiveFormsModule,\r\n SelectModule,\r\n FormlyFormFieldModule,\r\n FormlyCoreSelectModule,\r\n FormlyModule.forChild(withFormlyFieldSelect()),\r\n ],\r\n})\r\nexport class FormlySelectModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["SelectModule","FormlyCoreSelectModule","i1"],"mappings":"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"}
1
+ {"version":3,"file":"es.framework-ng.ui.core-select.mjs","sources":["../../../../libs/ng.ui.core/select/src/lib/select-module.ts","../../../../libs/ng.ui.core/select/src/lib/select.type.ts","../../../../libs/ng.ui.core/select/src/lib/select.config.ts","../../../../libs/ng.ui.core/select/src/lib/select.module.ts","../../../../libs/ng.ui.core/select/src/es.framework-ng.ui.core-select.ts"],"sourcesContent":["import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@NgModule({\n imports: [CommonModule],\n})\nexport class SelectModule {}\n","import { Component, ChangeDetectionStrategy, Type } from '@angular/core';\nimport { FieldType, FieldTypeConfig, FormlyAttributes, FormlyFieldConfig } from '@ngx-formly/core';\nimport { FormlyFieldSelectProps } from '@ngx-formly/core/select';\nimport { Select, SelectModule } from 'primeng/select';\nimport { FormlyFieldProps, FormlyFormFieldModule } from '@es.framework/ng.ui.core/form-field';\nimport { CommonModule } from '@angular/common';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { DatePickerModule } from 'primeng/datepicker';\nimport { FormlySelectModule as FormlyCoreSelectModule } from '@ngx-formly/core/select';\nimport { TranslatePipe } from '@es.framework/ng.core/pipes';\n\ninterface SelectProps extends FormlyFieldProps, FormlyFieldSelectProps {\n appendTo?: Select['appendTo'];\n filter?: boolean;\n filterBy?: string;\n}\n\nexport interface FormlySelectFieldConfig extends FormlyFieldConfig<SelectProps> {\n type: 'select' | Type<FormlyFieldSelect>;\n}\n\n@Component({\n selector: 'formly-field-primeng-select',\n template: `\n <p-select\n [options]=\"(props.options | formlySelectOptions: field | async) ?? []\"\n [formControl]=\"formControl\"\n [formlyAttributes]=\"field\"\n [showClear]=\"!props.required\"\n [appendTo]=\"props.appendTo\"\n [filter]=\"props.filter\"\n [filterBy]=\"props.filterBy ?? 'label'\"\n [optionLabel]=\"'label'\"\n [optionValue]=\"'value'\"\n (onChange)=\"props.change && props.change(field, $event)\"\n [placeholder]=\"(props['placeholder'] ?? '')| translate\"\n [styleClass]=\"'w-full rounded-none block'\"\n >\n <!-- Template for each option in the dropdown -->\n <ng-template let-option pTemplate=\"item\">\n <div class=\"flex items-center gap-2\">\n <!-- Example: add an icon if option has one -->\n @if (option.icon) {\n\n <i [class]=\"option.icon\"></i>\n }\n <span>{{ option.label | translate }}</span>\n <!-- Example: show description -->\n @if (option.description) {\n\n <small class=\"text-gray-500\"> - {{ option.description | translate}}</small>\n }\n </div>\n </ng-template>\n\n <!-- Template for selected value -->\n <ng-template let-selected pTemplate=\"selectedItem\">\n <div class=\"flex items-center gap-2\">\n @if (selected?.icon) {\n <i [class]=\"selected.icon\"></i>\n }\n <span>{{ selected?.label | translate}}</span>\n </div>\n </ng-template>\n </p-select>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone:true,\n imports:[CommonModule,\n ReactiveFormsModule,\n DatePickerModule,\n FormlyFormFieldModule,FormlyAttributes,SelectModule,FormlyCoreSelectModule,TranslatePipe]\n\n})\nexport class FormlyFieldSelect extends FieldType<FieldTypeConfig<SelectProps>> {}\n","import { ConfigOption } from '@ngx-formly/core';\nimport { FormlyFieldSelect } from './select.type';\n\nexport function withFormlyFieldSelect(): ConfigOption {\n return {\n types: [\n {\n name: 'select',\n component: FormlyFieldSelect,\n wrappers: ['form-field'],\n },\n { name: 'enum', extends: 'select' },\n ],\n };\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { FormlyModule } from '@ngx-formly/core';\nimport { SelectModule } from 'primeng/select';\nimport { FormlySelectModule as FormlyCoreSelectModule } from '@ngx-formly/core/select';\n\nimport { FormlyFieldSelect } from './select.type';\nimport { withFormlyFieldSelect } from './select.config';\nimport { FormlyFormFieldModule } from '@es.framework/ng.ui.core/form-field';\n\n@NgModule({\n // declarations: [FormlyFieldSelect],\n imports: [\n CommonModule,\n ReactiveFormsModule,\n SelectModule,\n FormlyFormFieldModule,\n FormlyCoreSelectModule,\n FormlyModule.forChild(withFormlyFieldSelect()),\n ],\n})\nexport class FormlySelectModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["SelectModule","FormlyCoreSelectModule","i1"],"mappings":"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"}
@@ -29,11 +29,11 @@ class SidebarCards {
29
29
  this.openChange.emit(this.open);
30
30
  }
31
31
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: SidebarCards, deps: [], target: i0.ɵɵFactoryTarget.Component });
32
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.3", type: SidebarCards, isStandalone: true, selector: "lib-sidebar-card", inputs: { header: "header", icon: "icon", open: "open" }, outputs: { openChange: "openChange" }, ngImport: i0, template: "<!-- sidebar-card.component.html -->\r\n<div class=\"bg-white border border-gray-200 rounded-2xl shadow-sm overflow-hidden\">\r\n <!-- \u0631\u0623\u0633 \u0627\u0644\u0643\u0631\u062A -->\r\n <div\r\n class=\"flex items-center justify-between p-4 bg-white cursor-pointer select-none rounded-t-2xl\"\r\n (click)=\"toggle()\"\r\n >\r\n <div class=\"flex items-center space-x-2\">\r\n <i [class]=\"icon + ' text-blue-600 text-lg'\"></i>\r\n <span class=\"font-semibold text-gray-800\">{{ header }}</span>\r\n </div>\r\n <i\r\n class=\"fas text-gray-400 transition-transform duration-200\"\r\n [ngClass]=\"open ? 'fa-chevron-up' : 'fa-chevron-down'\"\r\n ></i>\r\n </div>\r\n\r\n <!-- \u0645\u062D\u062A\u0648\u0649 \u0627\u0644\u0643\u0631\u062A -->\r\n @if (open) {\r\n <div\r\n class=\"p-4 bg-white border-t border-gray-200 rounded-b-2xl space-y-3 text-sm text-gray-700\"\r\n >\r\n <ng-content></ng-content>\r\n </div>\r\n }\r\n</div>\r\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
32
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.3", type: SidebarCards, isStandalone: true, selector: "lib-sidebar-card", inputs: { header: "header", icon: "icon", open: "open" }, outputs: { openChange: "openChange" }, ngImport: i0, template: "<!-- sidebar-card.component.html -->\n<div class=\"bg-white border border-gray-200 rounded-2xl shadow-sm overflow-hidden\">\n <!-- \u0631\u0623\u0633 \u0627\u0644\u0643\u0631\u062A -->\n <div\n class=\"flex items-center justify-between p-4 bg-white cursor-pointer select-none rounded-t-2xl\"\n (click)=\"toggle()\"\n >\n <div class=\"flex items-center space-x-2\">\n <i [class]=\"icon + ' text-blue-600 text-lg'\"></i>\n <span class=\"font-semibold text-gray-800\">{{ header }}</span>\n </div>\n <i\n class=\"fas text-gray-400 transition-transform duration-200\"\n [ngClass]=\"open ? 'fa-chevron-up' : 'fa-chevron-down'\"\n ></i>\n </div>\n\n <!-- \u0645\u062D\u062A\u0648\u0649 \u0627\u0644\u0643\u0631\u062A -->\n @if (open) {\n <div\n class=\"p-4 bg-white border-t border-gray-200 rounded-b-2xl space-y-3 text-sm text-gray-700\"\n >\n <ng-content></ng-content>\n </div>\n }\n</div>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
33
33
  }
34
34
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: SidebarCards, decorators: [{
35
35
  type: Component,
36
- args: [{ selector: 'lib-sidebar-card', standalone: true, imports: [CommonModule, NgClass], template: "<!-- sidebar-card.component.html -->\r\n<div class=\"bg-white border border-gray-200 rounded-2xl shadow-sm overflow-hidden\">\r\n <!-- \u0631\u0623\u0633 \u0627\u0644\u0643\u0631\u062A -->\r\n <div\r\n class=\"flex items-center justify-between p-4 bg-white cursor-pointer select-none rounded-t-2xl\"\r\n (click)=\"toggle()\"\r\n >\r\n <div class=\"flex items-center space-x-2\">\r\n <i [class]=\"icon + ' text-blue-600 text-lg'\"></i>\r\n <span class=\"font-semibold text-gray-800\">{{ header }}</span>\r\n </div>\r\n <i\r\n class=\"fas text-gray-400 transition-transform duration-200\"\r\n [ngClass]=\"open ? 'fa-chevron-up' : 'fa-chevron-down'\"\r\n ></i>\r\n </div>\r\n\r\n <!-- \u0645\u062D\u062A\u0648\u0649 \u0627\u0644\u0643\u0631\u062A -->\r\n @if (open) {\r\n <div\r\n class=\"p-4 bg-white border-t border-gray-200 rounded-b-2xl space-y-3 text-sm text-gray-700\"\r\n >\r\n <ng-content></ng-content>\r\n </div>\r\n }\r\n</div>\r\n" }]
36
+ args: [{ selector: 'lib-sidebar-card', standalone: true, imports: [CommonModule, NgClass], template: "<!-- sidebar-card.component.html -->\n<div class=\"bg-white border border-gray-200 rounded-2xl shadow-sm overflow-hidden\">\n <!-- \u0631\u0623\u0633 \u0627\u0644\u0643\u0631\u062A -->\n <div\n class=\"flex items-center justify-between p-4 bg-white cursor-pointer select-none rounded-t-2xl\"\n (click)=\"toggle()\"\n >\n <div class=\"flex items-center space-x-2\">\n <i [class]=\"icon + ' text-blue-600 text-lg'\"></i>\n <span class=\"font-semibold text-gray-800\">{{ header }}</span>\n </div>\n <i\n class=\"fas text-gray-400 transition-transform duration-200\"\n [ngClass]=\"open ? 'fa-chevron-up' : 'fa-chevron-down'\"\n ></i>\n </div>\n\n <!-- \u0645\u062D\u062A\u0648\u0649 \u0627\u0644\u0643\u0631\u062A -->\n @if (open) {\n <div\n class=\"p-4 bg-white border-t border-gray-200 rounded-b-2xl space-y-3 text-sm text-gray-700\"\n >\n <ng-content></ng-content>\n </div>\n }\n</div>\n" }]
37
37
  }], propDecorators: { header: [{
38
38
  type: Input
39
39
  }], icon: [{
@@ -1 +1 @@
1
- {"version":3,"file":"es.framework-ng.ui.core-sidebar-cards.mjs","sources":["../../../../libs/ng.ui.core/sidebar-cards/src/lib/sidebar-cards-module.ts","../../../../libs/ng.ui.core/sidebar-cards/src/lib/sidebar-cards.ts","../../../../libs/ng.ui.core/sidebar-cards/src/lib/sidebar-cards.html","../../../../libs/ng.ui.core/sidebar-cards/src/es.framework-ng.ui.core-sidebar-cards.ts"],"sourcesContent":["import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\n@NgModule({\r\n imports: [CommonModule],\r\n})\r\nexport class SidebarCardsModule {}\r\n","import { Component, Input, Output, EventEmitter } from '@angular/core';\r\nimport { CommonModule, NgClass } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'lib-sidebar-card',\r\n standalone: true,\r\n imports: [CommonModule, NgClass],\r\n templateUrl: './sidebar-cards.html',\r\n})\r\nexport class SidebarCards {\r\n /** عنوان الهيدر **/\r\n @Input() header = '';\r\n /** فئة أيقونة Font-Awesome **/\r\n @Input() icon = '';\r\n /** هل المحتوى مفتوح **/\r\n @Input() open = false;\r\n /** يرسل تغيير الحالة للأبّ **/\r\n @Output() openChange = new EventEmitter<boolean>();\r\n\r\n toggle() {\r\n this.open = !this.open;\r\n this.openChange.emit(this.open);\r\n }\r\n}\r\n","<!-- sidebar-card.component.html -->\r\n<div class=\"bg-white border border-gray-200 rounded-2xl shadow-sm overflow-hidden\">\r\n <!-- رأس الكرت -->\r\n <div\r\n class=\"flex items-center justify-between p-4 bg-white cursor-pointer select-none rounded-t-2xl\"\r\n (click)=\"toggle()\"\r\n >\r\n <div class=\"flex items-center space-x-2\">\r\n <i [class]=\"icon + ' text-blue-600 text-lg'\"></i>\r\n <span class=\"font-semibold text-gray-800\">{{ header }}</span>\r\n </div>\r\n <i\r\n class=\"fas text-gray-400 transition-transform duration-200\"\r\n [ngClass]=\"open ? 'fa-chevron-up' : 'fa-chevron-down'\"\r\n ></i>\r\n </div>\r\n\r\n <!-- محتوى الكرت -->\r\n @if (open) {\r\n <div\r\n class=\"p-4 bg-white border-t border-gray-200 rounded-b-2xl space-y-3 text-sm text-gray-700\"\r\n >\r\n <ng-content></ng-content>\r\n </div>\r\n }\r\n</div>\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;MAMa,kBAAkB,CAAA;uGAAlB,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;AAAlB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,YAFnB,YAAY,CAAA,EAAA,CAAA;AAEX,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,YAFnB,YAAY,CAAA,EAAA,CAAA;;2FAEX,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAH9B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,YAAY,CAAC;AACxB,iBAAA;;;MCIY,YAAY,CAAA;;IAEd,MAAM,GAAG,EAAE;;IAEX,IAAI,GAAG,EAAE;;IAET,IAAI,GAAG,KAAK;;AAEX,IAAA,UAAU,GAAG,IAAI,YAAY,EAAW;IAElD,MAAM,GAAA;AACJ,QAAA,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI;QACtB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;IACjC;uGAbW,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAZ,YAAY,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECTzB,g/BA0BA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDpBY,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FAGX,YAAY,EAAA,UAAA,EAAA,CAAA;kBANxB,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,kBAAkB,cAChB,IAAI,EAAA,OAAA,EACP,CAAC,YAAY,EAAE,OAAO,CAAC,EAAA,QAAA,EAAA,g/BAAA,EAAA;;sBAK/B;;sBAEA;;sBAEA;;sBAEA;;;AEjBH;;AAEG;;;;"}
1
+ {"version":3,"file":"es.framework-ng.ui.core-sidebar-cards.mjs","sources":["../../../../libs/ng.ui.core/sidebar-cards/src/lib/sidebar-cards-module.ts","../../../../libs/ng.ui.core/sidebar-cards/src/lib/sidebar-cards.ts","../../../../libs/ng.ui.core/sidebar-cards/src/lib/sidebar-cards.html","../../../../libs/ng.ui.core/sidebar-cards/src/es.framework-ng.ui.core-sidebar-cards.ts"],"sourcesContent":["import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@NgModule({\n imports: [CommonModule],\n})\nexport class SidebarCardsModule {}\n","import { Component, Input, Output, EventEmitter } from '@angular/core';\nimport { CommonModule, NgClass } from '@angular/common';\n\n@Component({\n selector: 'lib-sidebar-card',\n standalone: true,\n imports: [CommonModule, NgClass],\n templateUrl: './sidebar-cards.html',\n})\nexport class SidebarCards {\n /** عنوان الهيدر **/\n @Input() header = '';\n /** فئة أيقونة Font-Awesome **/\n @Input() icon = '';\n /** هل المحتوى مفتوح **/\n @Input() open = false;\n /** يرسل تغيير الحالة للأبّ **/\n @Output() openChange = new EventEmitter<boolean>();\n\n toggle() {\n this.open = !this.open;\n this.openChange.emit(this.open);\n }\n}\n","<!-- sidebar-card.component.html -->\n<div class=\"bg-white border border-gray-200 rounded-2xl shadow-sm overflow-hidden\">\n <!-- رأس الكرت -->\n <div\n class=\"flex items-center justify-between p-4 bg-white cursor-pointer select-none rounded-t-2xl\"\n (click)=\"toggle()\"\n >\n <div class=\"flex items-center space-x-2\">\n <i [class]=\"icon + ' text-blue-600 text-lg'\"></i>\n <span class=\"font-semibold text-gray-800\">{{ header }}</span>\n </div>\n <i\n class=\"fas text-gray-400 transition-transform duration-200\"\n [ngClass]=\"open ? 'fa-chevron-up' : 'fa-chevron-down'\"\n ></i>\n </div>\n\n <!-- محتوى الكرت -->\n @if (open) {\n <div\n class=\"p-4 bg-white border-t border-gray-200 rounded-b-2xl space-y-3 text-sm text-gray-700\"\n >\n <ng-content></ng-content>\n </div>\n }\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;MAMa,kBAAkB,CAAA;uGAAlB,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;AAAlB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,YAFnB,YAAY,CAAA,EAAA,CAAA;AAEX,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,YAFnB,YAAY,CAAA,EAAA,CAAA;;2FAEX,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAH9B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,YAAY,CAAC;AACxB,iBAAA;;;MCIY,YAAY,CAAA;;IAEd,MAAM,GAAG,EAAE;;IAEX,IAAI,GAAG,EAAE;;IAET,IAAI,GAAG,KAAK;;AAEX,IAAA,UAAU,GAAG,IAAI,YAAY,EAAW;IAElD,MAAM,GAAA;AACJ,QAAA,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI;QACtB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;IACjC;uGAbW,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAZ,YAAY,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECTzB,47BA0BA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDpBY,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FAGX,YAAY,EAAA,UAAA,EAAA,CAAA;kBANxB,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,kBAAkB,cAChB,IAAI,EAAA,OAAA,EACP,CAAC,YAAY,EAAE,OAAO,CAAC,EAAA,QAAA,EAAA,47BAAA,EAAA;;sBAK/B;;sBAEA;;sBAEA;;sBAEA;;;AEjBH;;AAEG;;;;"}
@@ -26,11 +26,11 @@ class SidebarToggles {
26
26
  toggleContact = new EventEmitter();
27
27
  toggleTimeline = new EventEmitter();
28
28
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: SidebarToggles, deps: [], target: i0.ɵɵFactoryTarget.Component });
29
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.1.3", type: SidebarToggles, isStandalone: true, selector: "lib-sidebar-toggles", inputs: { allOpen: "allOpen", contactOpen: "contactOpen", timelineOpen: "timelineOpen" }, outputs: { toggleAll: "toggleAll", toggleContact: "toggleContact", toggleTimeline: "toggleTimeline" }, ngImport: i0, template: "<div class=\"fixed right-0 top-0 h-full w-16 bg-gray-100 border-l border-gray-200\r\n flex flex-col items-center py-4 space-y-4 z-50\">\r\n <!-- collapse/expand all -->\r\n <button\r\n (click)=\"toggleAll.emit()\"\r\n class=\"bg-blue-600 text-white p-3 rounded-xl shadow-lg transition transform hover:-translate-y-0.5 focus:outline-none focus:ring-2 focus:ring-blue-300\"\r\n >\r\n <i\r\n class=\"fas fa-arrow-right text-xl transition-transform\"\r\n [ngClass]=\"{ 'rotate-180': allOpen }\"\r\n ></i>\r\n </button>\r\n\r\n <!-- contact -->\r\n <button\r\n (click)=\"toggleContact.emit()\"\r\n class=\"p-3 rounded-xl shadow-lg transition transform hover:-translate-y-0.5 focus:outline-none focus:ring-2\"\r\n [ngClass]=\"{\r\n 'bg-blue-600 text-white': contactOpen,\r\n 'bg-white text-gray-700 hover:bg-gray-100': !contactOpen\r\n }\"\r\n >\r\n <i class=\"fas fa-info-circle text-xl\"></i>\r\n </button>\r\n\r\n <!-- timeline -->\r\n <button\r\n (click)=\"toggleTimeline.emit()\"\r\n class=\"p-3 rounded-xl shadow-lg transition transform hover:-translate-y-0.5 focus:outline-none focus:ring-2\"\r\n [ngClass]=\"{\r\n 'bg-blue-600 text-white': timelineOpen,\r\n 'bg-white text-gray-700 hover:bg-gray-100': !timelineOpen\r\n }\"\r\n >\r\n <i class=\"fas fa-paperclip text-xl\"></i>\r\n </button>\r\n</div>\r\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
29
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.1.3", type: SidebarToggles, isStandalone: true, selector: "lib-sidebar-toggles", inputs: { allOpen: "allOpen", contactOpen: "contactOpen", timelineOpen: "timelineOpen" }, outputs: { toggleAll: "toggleAll", toggleContact: "toggleContact", toggleTimeline: "toggleTimeline" }, ngImport: i0, template: "<div class=\"fixed right-0 top-0 h-full w-16 bg-gray-100 border-l border-gray-200\n flex flex-col items-center py-4 space-y-4 z-50\">\n <!-- collapse/expand all -->\n <button\n (click)=\"toggleAll.emit()\"\n class=\"bg-blue-600 text-white p-3 rounded-xl shadow-lg transition transform hover:-translate-y-0.5 focus:outline-none focus:ring-2 focus:ring-blue-300\"\n >\n <i\n class=\"fas fa-arrow-right text-xl transition-transform\"\n [ngClass]=\"{ 'rotate-180': allOpen }\"\n ></i>\n </button>\n\n <!-- contact -->\n <button\n (click)=\"toggleContact.emit()\"\n class=\"p-3 rounded-xl shadow-lg transition transform hover:-translate-y-0.5 focus:outline-none focus:ring-2\"\n [ngClass]=\"{\n 'bg-blue-600 text-white': contactOpen,\n 'bg-white text-gray-700 hover:bg-gray-100': !contactOpen\n }\"\n >\n <i class=\"fas fa-info-circle text-xl\"></i>\n </button>\n\n <!-- timeline -->\n <button\n (click)=\"toggleTimeline.emit()\"\n class=\"p-3 rounded-xl shadow-lg transition transform hover:-translate-y-0.5 focus:outline-none focus:ring-2\"\n [ngClass]=\"{\n 'bg-blue-600 text-white': timelineOpen,\n 'bg-white text-gray-700 hover:bg-gray-100': !timelineOpen\n }\"\n >\n <i class=\"fas fa-paperclip text-xl\"></i>\n </button>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
30
30
  }
31
31
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: SidebarToggles, decorators: [{
32
32
  type: Component,
33
- args: [{ selector: 'lib-sidebar-toggles', standalone: true, imports: [CommonModule, NgClass], template: "<div class=\"fixed right-0 top-0 h-full w-16 bg-gray-100 border-l border-gray-200\r\n flex flex-col items-center py-4 space-y-4 z-50\">\r\n <!-- collapse/expand all -->\r\n <button\r\n (click)=\"toggleAll.emit()\"\r\n class=\"bg-blue-600 text-white p-3 rounded-xl shadow-lg transition transform hover:-translate-y-0.5 focus:outline-none focus:ring-2 focus:ring-blue-300\"\r\n >\r\n <i\r\n class=\"fas fa-arrow-right text-xl transition-transform\"\r\n [ngClass]=\"{ 'rotate-180': allOpen }\"\r\n ></i>\r\n </button>\r\n\r\n <!-- contact -->\r\n <button\r\n (click)=\"toggleContact.emit()\"\r\n class=\"p-3 rounded-xl shadow-lg transition transform hover:-translate-y-0.5 focus:outline-none focus:ring-2\"\r\n [ngClass]=\"{\r\n 'bg-blue-600 text-white': contactOpen,\r\n 'bg-white text-gray-700 hover:bg-gray-100': !contactOpen\r\n }\"\r\n >\r\n <i class=\"fas fa-info-circle text-xl\"></i>\r\n </button>\r\n\r\n <!-- timeline -->\r\n <button\r\n (click)=\"toggleTimeline.emit()\"\r\n class=\"p-3 rounded-xl shadow-lg transition transform hover:-translate-y-0.5 focus:outline-none focus:ring-2\"\r\n [ngClass]=\"{\r\n 'bg-blue-600 text-white': timelineOpen,\r\n 'bg-white text-gray-700 hover:bg-gray-100': !timelineOpen\r\n }\"\r\n >\r\n <i class=\"fas fa-paperclip text-xl\"></i>\r\n </button>\r\n</div>\r\n" }]
33
+ args: [{ selector: 'lib-sidebar-toggles', standalone: true, imports: [CommonModule, NgClass], template: "<div class=\"fixed right-0 top-0 h-full w-16 bg-gray-100 border-l border-gray-200\n flex flex-col items-center py-4 space-y-4 z-50\">\n <!-- collapse/expand all -->\n <button\n (click)=\"toggleAll.emit()\"\n class=\"bg-blue-600 text-white p-3 rounded-xl shadow-lg transition transform hover:-translate-y-0.5 focus:outline-none focus:ring-2 focus:ring-blue-300\"\n >\n <i\n class=\"fas fa-arrow-right text-xl transition-transform\"\n [ngClass]=\"{ 'rotate-180': allOpen }\"\n ></i>\n </button>\n\n <!-- contact -->\n <button\n (click)=\"toggleContact.emit()\"\n class=\"p-3 rounded-xl shadow-lg transition transform hover:-translate-y-0.5 focus:outline-none focus:ring-2\"\n [ngClass]=\"{\n 'bg-blue-600 text-white': contactOpen,\n 'bg-white text-gray-700 hover:bg-gray-100': !contactOpen\n }\"\n >\n <i class=\"fas fa-info-circle text-xl\"></i>\n </button>\n\n <!-- timeline -->\n <button\n (click)=\"toggleTimeline.emit()\"\n class=\"p-3 rounded-xl shadow-lg transition transform hover:-translate-y-0.5 focus:outline-none focus:ring-2\"\n [ngClass]=\"{\n 'bg-blue-600 text-white': timelineOpen,\n 'bg-white text-gray-700 hover:bg-gray-100': !timelineOpen\n }\"\n >\n <i class=\"fas fa-paperclip text-xl\"></i>\n </button>\n</div>\n" }]
34
34
  }], propDecorators: { allOpen: [{
35
35
  type: Input
36
36
  }], contactOpen: [{
@@ -1 +1 @@
1
- {"version":3,"file":"es.framework-ng.ui.core-sidebar-toggles.mjs","sources":["../../../../libs/ng.ui.core/sidebar-toggles/src/lib/sidebar-toggles-module.ts","../../../../libs/ng.ui.core/sidebar-toggles/src/lib/sidebar-toggles.ts","../../../../libs/ng.ui.core/sidebar-toggles/src/lib/sidebar-toggles.html","../../../../libs/ng.ui.core/sidebar-toggles/src/es.framework-ng.ui.core-sidebar-toggles.ts"],"sourcesContent":["import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\n@NgModule({\r\n imports: [CommonModule],\r\n})\r\nexport class SidebarTogglesModule {}\r\n","import { Component, Input, Output, EventEmitter } from '@angular/core';\r\nimport { CommonModule, NgClass } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'lib-sidebar-toggles',\r\n standalone: true,\r\n imports: [CommonModule, NgClass],\r\n templateUrl: './sidebar-toggles.html',\r\n styleUrls: ['./sidebar-toggles.css'],\r\n})\r\nexport class SidebarToggles {\r\n /** هل كلها مفتوحة الآن؟ */\r\n @Input() allOpen = false;\r\n /** حالة بطاقة تفاصيل العميل */\r\n @Input() contactOpen = false;\r\n /** حالة بطاقة الـ Timeline */\r\n @Input() timelineOpen = false;\r\n\r\n @Output() toggleAll = new EventEmitter<void>();\r\n @Output() toggleContact = new EventEmitter<void>();\r\n @Output() toggleTimeline = new EventEmitter<void>();\r\n}\r\n","<div class=\"fixed right-0 top-0 h-full w-16 bg-gray-100 border-l border-gray-200\r\n flex flex-col items-center py-4 space-y-4 z-50\">\r\n <!-- collapse/expand all -->\r\n <button\r\n (click)=\"toggleAll.emit()\"\r\n class=\"bg-blue-600 text-white p-3 rounded-xl shadow-lg transition transform hover:-translate-y-0.5 focus:outline-none focus:ring-2 focus:ring-blue-300\"\r\n >\r\n <i\r\n class=\"fas fa-arrow-right text-xl transition-transform\"\r\n [ngClass]=\"{ 'rotate-180': allOpen }\"\r\n ></i>\r\n </button>\r\n\r\n <!-- contact -->\r\n <button\r\n (click)=\"toggleContact.emit()\"\r\n class=\"p-3 rounded-xl shadow-lg transition transform hover:-translate-y-0.5 focus:outline-none focus:ring-2\"\r\n [ngClass]=\"{\r\n 'bg-blue-600 text-white': contactOpen,\r\n 'bg-white text-gray-700 hover:bg-gray-100': !contactOpen\r\n }\"\r\n >\r\n <i class=\"fas fa-info-circle text-xl\"></i>\r\n </button>\r\n\r\n <!-- timeline -->\r\n <button\r\n (click)=\"toggleTimeline.emit()\"\r\n class=\"p-3 rounded-xl shadow-lg transition transform hover:-translate-y-0.5 focus:outline-none focus:ring-2\"\r\n [ngClass]=\"{\r\n 'bg-blue-600 text-white': timelineOpen,\r\n 'bg-white text-gray-700 hover:bg-gray-100': !timelineOpen\r\n }\"\r\n >\r\n <i class=\"fas fa-paperclip text-xl\"></i>\r\n </button>\r\n</div>\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;MAMa,oBAAoB,CAAA;uGAApB,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;AAApB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oBAAoB,YAFrB,YAAY,CAAA,EAAA,CAAA;AAEX,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oBAAoB,YAFrB,YAAY,CAAA,EAAA,CAAA;;2FAEX,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAHhC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,YAAY,CAAC;AACxB,iBAAA;;;MCKY,cAAc,CAAA;;IAEhB,OAAO,GAAG,KAAK;;IAEf,WAAW,GAAG,KAAK;;IAEnB,YAAY,GAAG,KAAK;AAEnB,IAAA,SAAS,GAAQ,IAAI,YAAY,EAAQ;AACzC,IAAA,aAAa,GAAI,IAAI,YAAY,EAAQ;AACzC,IAAA,cAAc,GAAG,IAAI,YAAY,EAAQ;uGAVxC,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAd,cAAc,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,WAAA,EAAA,aAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,OAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,aAAA,EAAA,eAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECV3B,23CAqCA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,ED/BY,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FAIX,cAAc,EAAA,UAAA,EAAA,CAAA;kBAP1B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,qBAAqB,cACnB,IAAI,EAAA,OAAA,EACP,CAAC,YAAY,EAAE,OAAO,CAAC,EAAA,QAAA,EAAA,23CAAA,EAAA;;sBAM/B;;sBAEA;;sBAEA;;sBAEA;;sBACA;;sBACA;;;AEpBH;;AAEG;;;;"}
1
+ {"version":3,"file":"es.framework-ng.ui.core-sidebar-toggles.mjs","sources":["../../../../libs/ng.ui.core/sidebar-toggles/src/lib/sidebar-toggles-module.ts","../../../../libs/ng.ui.core/sidebar-toggles/src/lib/sidebar-toggles.ts","../../../../libs/ng.ui.core/sidebar-toggles/src/lib/sidebar-toggles.html","../../../../libs/ng.ui.core/sidebar-toggles/src/es.framework-ng.ui.core-sidebar-toggles.ts"],"sourcesContent":["import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@NgModule({\n imports: [CommonModule],\n})\nexport class SidebarTogglesModule {}\n","import { Component, Input, Output, EventEmitter } from '@angular/core';\nimport { CommonModule, NgClass } from '@angular/common';\n\n@Component({\n selector: 'lib-sidebar-toggles',\n standalone: true,\n imports: [CommonModule, NgClass],\n templateUrl: './sidebar-toggles.html',\n styleUrls: ['./sidebar-toggles.css'],\n})\nexport class SidebarToggles {\n /** هل كلها مفتوحة الآن؟ */\n @Input() allOpen = false;\n /** حالة بطاقة تفاصيل العميل */\n @Input() contactOpen = false;\n /** حالة بطاقة الـ Timeline */\n @Input() timelineOpen = false;\n\n @Output() toggleAll = new EventEmitter<void>();\n @Output() toggleContact = new EventEmitter<void>();\n @Output() toggleTimeline = new EventEmitter<void>();\n}\n","<div class=\"fixed right-0 top-0 h-full w-16 bg-gray-100 border-l border-gray-200\n flex flex-col items-center py-4 space-y-4 z-50\">\n <!-- collapse/expand all -->\n <button\n (click)=\"toggleAll.emit()\"\n class=\"bg-blue-600 text-white p-3 rounded-xl shadow-lg transition transform hover:-translate-y-0.5 focus:outline-none focus:ring-2 focus:ring-blue-300\"\n >\n <i\n class=\"fas fa-arrow-right text-xl transition-transform\"\n [ngClass]=\"{ 'rotate-180': allOpen }\"\n ></i>\n </button>\n\n <!-- contact -->\n <button\n (click)=\"toggleContact.emit()\"\n class=\"p-3 rounded-xl shadow-lg transition transform hover:-translate-y-0.5 focus:outline-none focus:ring-2\"\n [ngClass]=\"{\n 'bg-blue-600 text-white': contactOpen,\n 'bg-white text-gray-700 hover:bg-gray-100': !contactOpen\n }\"\n >\n <i class=\"fas fa-info-circle text-xl\"></i>\n </button>\n\n <!-- timeline -->\n <button\n (click)=\"toggleTimeline.emit()\"\n class=\"p-3 rounded-xl shadow-lg transition transform hover:-translate-y-0.5 focus:outline-none focus:ring-2\"\n [ngClass]=\"{\n 'bg-blue-600 text-white': timelineOpen,\n 'bg-white text-gray-700 hover:bg-gray-100': !timelineOpen\n }\"\n >\n <i class=\"fas fa-paperclip text-xl\"></i>\n </button>\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;MAMa,oBAAoB,CAAA;uGAApB,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;AAApB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oBAAoB,YAFrB,YAAY,CAAA,EAAA,CAAA;AAEX,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oBAAoB,YAFrB,YAAY,CAAA,EAAA,CAAA;;2FAEX,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAHhC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,YAAY,CAAC;AACxB,iBAAA;;;MCKY,cAAc,CAAA;;IAEhB,OAAO,GAAG,KAAK;;IAEf,WAAW,GAAG,KAAK;;IAEnB,YAAY,GAAG,KAAK;AAEnB,IAAA,SAAS,GAAQ,IAAI,YAAY,EAAQ;AACzC,IAAA,aAAa,GAAI,IAAI,YAAY,EAAQ;AACzC,IAAA,cAAc,GAAG,IAAI,YAAY,EAAQ;uGAVxC,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAd,cAAc,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,WAAA,EAAA,aAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,OAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,aAAA,EAAA,eAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECV3B,izCAqCA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,ED/BY,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FAIX,cAAc,EAAA,UAAA,EAAA,CAAA;kBAP1B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,qBAAqB,cACnB,IAAI,EAAA,OAAA,EACP,CAAC,YAAY,EAAE,OAAO,CAAC,EAAA,QAAA,EAAA,izCAAA,EAAA;;sBAM/B;;sBAEA;;sBAEA;;sBAEA;;sBACA;;sBACA;;;AEpBH;;AAEG;;;;"}
@@ -24,13 +24,13 @@ class TabsTypeComponent extends FieldType {
24
24
  return field.fieldGroup ? field.fieldGroup.every((f) => this.isValid(f)) : true;
25
25
  }
26
26
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: TabsTypeComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
27
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.1.3", type: TabsTypeComponent, isStandalone: true, selector: "formly-tabs-type", usesInheritance: true, ngImport: i0, template: `
28
- <!-- <p-tabView>
29
- <p-tabPanel *ngFor="let tabField of field.fieldGroup; let i = index" [disabled]="i !== 0 &&
30
- !isValid(field.fieldGroup![i - 1])" [header]="tabField.props?.label || 'Tab '+(i+1)">
31
- <formly-form [fields]="tabField.fieldGroup!" [form]="form" [options]="options" [model]="model"></formly-form>
32
- </p-tabPanel>
33
- </p-tabView> -->
27
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.1.3", type: TabsTypeComponent, isStandalone: true, selector: "formly-tabs-type", usesInheritance: true, ngImport: i0, template: `
28
+ <!-- <p-tabView>
29
+ <p-tabPanel *ngFor="let tabField of field.fieldGroup; let i = index" [disabled]="i !== 0 &&
30
+ !isValid(field.fieldGroup![i - 1])" [header]="tabField.props?.label || 'Tab '+(i+1)">
31
+ <formly-form [fields]="tabField.fieldGroup!" [form]="form" [options]="options" [model]="model"></formly-form>
32
+ </p-tabPanel>
33
+ </p-tabView> -->
34
34
  `, isInline: true, dependencies: [{ kind: "ngmodule", type: TabsModule$1 }] });
35
35
  }
36
36
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: TabsTypeComponent, decorators: [{
@@ -38,13 +38,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImpor
38
38
  args: [{
39
39
  selector: 'formly-tabs-type',
40
40
  imports: [FormlyForm, TabsModule$1],
41
- template: `
42
- <!-- <p-tabView>
43
- <p-tabPanel *ngFor="let tabField of field.fieldGroup; let i = index" [disabled]="i !== 0 &&
44
- !isValid(field.fieldGroup![i - 1])" [header]="tabField.props?.label || 'Tab '+(i+1)">
45
- <formly-form [fields]="tabField.fieldGroup!" [form]="form" [options]="options" [model]="model"></formly-form>
46
- </p-tabPanel>
47
- </p-tabView> -->
41
+ template: `
42
+ <!-- <p-tabView>
43
+ <p-tabPanel *ngFor="let tabField of field.fieldGroup; let i = index" [disabled]="i !== 0 &&
44
+ !isValid(field.fieldGroup![i - 1])" [header]="tabField.props?.label || 'Tab '+(i+1)">
45
+ <formly-form [fields]="tabField.fieldGroup!" [form]="form" [options]="options" [model]="model"></formly-form>
46
+ </p-tabPanel>
47
+ </p-tabView> -->
48
48
  `
49
49
  }]
50
50
  }] });
@@ -1 +1 @@
1
- {"version":3,"file":"es.framework-ng.ui.core-tabs.mjs","sources":["../../../../libs/ng.ui.core/tabs/src/lib/tabs-module.ts","../../../../libs/ng.ui.core/tabs/src/lib/tabs.type.ts","../../../../libs/ng.ui.core/tabs/src/es.framework-ng.ui.core-tabs.ts"],"sourcesContent":["import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\n@NgModule({\r\n imports: [CommonModule],\r\n})\r\nexport class TabsModule {}\r\n","\r\n\r\nimport { Component } from '@angular/core';\r\nimport { FieldType, FormlyFieldConfig, FormlyForm } from '@ngx-formly/core';\r\nimport { TabsModule } from 'primeng/tabs';\r\n\r\n@Component({\r\n selector: 'formly-tabs-type',\r\n imports: [FormlyForm, TabsModule],\r\n template: `\r\n <!-- <p-tabView>\r\n <p-tabPanel *ngFor=\"let tabField of field.fieldGroup; let i = index\" [disabled]=\"i !== 0 &&\r\n !isValid(field.fieldGroup![i - 1])\" [header]=\"tabField.props?.label || 'Tab '+(i+1)\">\r\n <formly-form [fields]=\"tabField.fieldGroup!\" [form]=\"form\" [options]=\"options\" [model]=\"model\"></formly-form>\r\n </p-tabPanel>\r\n </p-tabView> -->\r\n `\r\n})\r\nexport class TabsTypeComponent extends FieldType {\r\n\r\n isValid(field: FormlyFieldConfig): boolean {\r\n if (field.key) {\r\n return field.formControl?.valid ?? true;\r\n }\r\n\r\n return field.fieldGroup ? field.fieldGroup.every((f) => this.isValid(f)) : true;\r\n }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["TabsModule"],"mappings":";;;;;;MAMa,UAAU,CAAA;uGAAV,UAAU,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;AAAV,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAU,YAFX,YAAY,CAAA,EAAA,CAAA;AAEX,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAU,YAFX,YAAY,CAAA,EAAA,CAAA;;2FAEX,UAAU,EAAA,UAAA,EAAA,CAAA;kBAHtB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,YAAY,CAAC;AACxB,iBAAA;;;ACaK,MAAO,iBAAkB,SAAQ,SAAS,CAAA;AAE7C,IAAA,OAAO,CAAC,KAAwB,EAAA;AAC/B,QAAA,IAAI,KAAK,CAAC,GAAG,EAAE;AACb,YAAA,OAAO,KAAK,CAAC,WAAW,EAAE,KAAK,IAAI,IAAI;QACzC;AAEA,QAAA,OAAO,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI;IACjF;uGARW,iBAAiB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAjB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,iBAAiB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EATlB,CAAA;;;;;;;AAOT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EARsBA,YAAU,EAAA,CAAA,EAAA,CAAA;;2FAUtB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAZ7B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,kBAAkB;AAC3B,oBAAA,OAAO,EAAE,CAAC,UAAU,EAAEA,YAAU,CAAC;AAClC,oBAAA,QAAQ,EAAE,CAAA;;;;;;;AAOT,EAAA;AACF,iBAAA;;;ACjBD;;AAEG;;;;"}
1
+ {"version":3,"file":"es.framework-ng.ui.core-tabs.mjs","sources":["../../../../libs/ng.ui.core/tabs/src/lib/tabs-module.ts","../../../../libs/ng.ui.core/tabs/src/lib/tabs.type.ts","../../../../libs/ng.ui.core/tabs/src/es.framework-ng.ui.core-tabs.ts"],"sourcesContent":["import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@NgModule({\n imports: [CommonModule],\n})\nexport class TabsModule {}\n","\n\nimport { Component } from '@angular/core';\nimport { FieldType, FormlyFieldConfig, FormlyForm } from '@ngx-formly/core';\nimport { TabsModule } from 'primeng/tabs';\n\n@Component({\n selector: 'formly-tabs-type',\n imports: [FormlyForm, TabsModule],\n template: `\n <!-- <p-tabView>\n <p-tabPanel *ngFor=\"let tabField of field.fieldGroup; let i = index\" [disabled]=\"i !== 0 &&\n !isValid(field.fieldGroup![i - 1])\" [header]=\"tabField.props?.label || 'Tab '+(i+1)\">\n <formly-form [fields]=\"tabField.fieldGroup!\" [form]=\"form\" [options]=\"options\" [model]=\"model\"></formly-form>\n </p-tabPanel>\n </p-tabView> -->\n `\n})\nexport class TabsTypeComponent extends FieldType {\n\n isValid(field: FormlyFieldConfig): boolean {\n if (field.key) {\n return field.formControl?.valid ?? true;\n }\n\n return field.fieldGroup ? field.fieldGroup.every((f) => this.isValid(f)) : true;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["TabsModule"],"mappings":";;;;;;MAMa,UAAU,CAAA;uGAAV,UAAU,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;AAAV,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAU,YAFX,YAAY,CAAA,EAAA,CAAA;AAEX,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAU,YAFX,YAAY,CAAA,EAAA,CAAA;;2FAEX,UAAU,EAAA,UAAA,EAAA,CAAA;kBAHtB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,YAAY,CAAC;AACxB,iBAAA;;;ACaK,MAAO,iBAAkB,SAAQ,SAAS,CAAA;AAE7C,IAAA,OAAO,CAAC,KAAwB,EAAA;AAC/B,QAAA,IAAI,KAAK,CAAC,GAAG,EAAE;AACb,YAAA,OAAO,KAAK,CAAC,WAAW,EAAE,KAAK,IAAI,IAAI;QACzC;AAEA,QAAA,OAAO,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI;IACjF;uGARW,iBAAiB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAjB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,iBAAiB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EATlB;;;;;;;AAOT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EARsBA,YAAU,EAAA,CAAA,EAAA,CAAA;;2FAUtB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAZ7B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,kBAAkB;AAC3B,oBAAA,OAAO,EAAE,CAAC,UAAU,EAAEA,YAAU,CAAC;AAClC,oBAAA,QAAQ,EAAE;;;;;;;AAOT,EAAA;AACF,iBAAA;;;ACjBD;;AAEG;;;;"}