@es.framework/ng.ui.core 2.0.58

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 (246) hide show
  1. package/README.md +3 -0
  2. package/attachments/README.md +3 -0
  3. package/base-crud/README.md +3 -0
  4. package/breadcrumb/README.md +3 -0
  5. package/checkbox/README.md +3 -0
  6. package/collapsible/README.md +3 -0
  7. package/color-picker/README.md +3 -0
  8. package/column-settings-popover/README.md +3 -0
  9. package/custom-switch/README.md +3 -0
  10. package/datepicker/README.md +3 -0
  11. package/deactivation-reason/README.md +3 -0
  12. package/excel-import/README.md +3 -0
  13. package/fesm2022/es.framework-ng.ui.core-attachments.mjs +217 -0
  14. package/fesm2022/es.framework-ng.ui.core-attachments.mjs.map +1 -0
  15. package/fesm2022/es.framework-ng.ui.core-base-crud.mjs +370 -0
  16. package/fesm2022/es.framework-ng.ui.core-base-crud.mjs.map +1 -0
  17. package/fesm2022/es.framework-ng.ui.core-breadcrumb.mjs +145 -0
  18. package/fesm2022/es.framework-ng.ui.core-breadcrumb.mjs.map +1 -0
  19. package/fesm2022/es.framework-ng.ui.core-checkbox.mjs +131 -0
  20. package/fesm2022/es.framework-ng.ui.core-checkbox.mjs.map +1 -0
  21. package/fesm2022/es.framework-ng.ui.core-collapsible.mjs +90 -0
  22. package/fesm2022/es.framework-ng.ui.core-collapsible.mjs.map +1 -0
  23. package/fesm2022/es.framework-ng.ui.core-color-picker.mjs +87 -0
  24. package/fesm2022/es.framework-ng.ui.core-color-picker.mjs.map +1 -0
  25. package/fesm2022/es.framework-ng.ui.core-column-settings-popover.mjs +183 -0
  26. package/fesm2022/es.framework-ng.ui.core-column-settings-popover.mjs.map +1 -0
  27. package/fesm2022/es.framework-ng.ui.core-custom-switch.mjs +119 -0
  28. package/fesm2022/es.framework-ng.ui.core-custom-switch.mjs.map +1 -0
  29. package/fesm2022/es.framework-ng.ui.core-datepicker.mjs +519 -0
  30. package/fesm2022/es.framework-ng.ui.core-datepicker.mjs.map +1 -0
  31. package/fesm2022/es.framework-ng.ui.core-deactivation-reason.mjs +144 -0
  32. package/fesm2022/es.framework-ng.ui.core-deactivation-reason.mjs.map +1 -0
  33. package/fesm2022/es.framework-ng.ui.core-excel-import.mjs +566 -0
  34. package/fesm2022/es.framework-ng.ui.core-excel-import.mjs.map +1 -0
  35. package/fesm2022/es.framework-ng.ui.core-filter-templates.mjs +386 -0
  36. package/fesm2022/es.framework-ng.ui.core-filter-templates.mjs.map +1 -0
  37. package/fesm2022/es.framework-ng.ui.core-form-button.mjs +62 -0
  38. package/fesm2022/es.framework-ng.ui.core-form-button.mjs.map +1 -0
  39. package/fesm2022/es.framework-ng.ui.core-form-field.mjs +155 -0
  40. package/fesm2022/es.framework-ng.ui.core-form-field.mjs.map +1 -0
  41. package/fesm2022/es.framework-ng.ui.core-form-template.mjs +37 -0
  42. package/fesm2022/es.framework-ng.ui.core-form-template.mjs.map +1 -0
  43. package/fesm2022/es.framework-ng.ui.core-formly-avatar-image.mjs +132 -0
  44. package/fesm2022/es.framework-ng.ui.core-formly-avatar-image.mjs.map +1 -0
  45. package/fesm2022/es.framework-ng.ui.core-formly-avatar-label.mjs +89 -0
  46. package/fesm2022/es.framework-ng.ui.core-formly-avatar-label.mjs.map +1 -0
  47. package/fesm2022/es.framework-ng.ui.core-formly-button-selector.mjs +195 -0
  48. package/fesm2022/es.framework-ng.ui.core-formly-button-selector.mjs.map +1 -0
  49. package/fesm2022/es.framework-ng.ui.core-formly-button.mjs +73 -0
  50. package/fesm2022/es.framework-ng.ui.core-formly-button.mjs.map +1 -0
  51. package/fesm2022/es.framework-ng.ui.core-formly-presets.mjs +201 -0
  52. package/fesm2022/es.framework-ng.ui.core-formly-presets.mjs.map +1 -0
  53. package/fesm2022/es.framework-ng.ui.core-formly-prime-icon-picker.mjs +542 -0
  54. package/fesm2022/es.framework-ng.ui.core-formly-prime-icon-picker.mjs.map +1 -0
  55. package/fesm2022/es.framework-ng.ui.core-formly-split-button.mjs +62 -0
  56. package/fesm2022/es.framework-ng.ui.core-formly-split-button.mjs.map +1 -0
  57. package/fesm2022/es.framework-ng.ui.core-formly-ui-all.mjs +422 -0
  58. package/fesm2022/es.framework-ng.ui.core-formly-ui-all.mjs.map +1 -0
  59. package/fesm2022/es.framework-ng.ui.core-formly-ui.mjs +48 -0
  60. package/fesm2022/es.framework-ng.ui.core-formly-ui.mjs.map +1 -0
  61. package/fesm2022/es.framework-ng.ui.core-formly-username-with-domain.mjs +85 -0
  62. package/fesm2022/es.framework-ng.ui.core-formly-username-with-domain.mjs.map +1 -0
  63. package/fesm2022/es.framework-ng.ui.core-generic-assets.mjs +22 -0
  64. package/fesm2022/es.framework-ng.ui.core-generic-assets.mjs.map +1 -0
  65. package/fesm2022/es.framework-ng.ui.core-generic-autocomplete.mjs +173 -0
  66. package/fesm2022/es.framework-ng.ui.core-generic-autocomplete.mjs.map +1 -0
  67. package/fesm2022/es.framework-ng.ui.core-generic-button.mjs +150 -0
  68. package/fesm2022/es.framework-ng.ui.core-generic-button.mjs.map +1 -0
  69. package/fesm2022/es.framework-ng.ui.core-generic-card.mjs +218 -0
  70. package/fesm2022/es.framework-ng.ui.core-generic-card.mjs.map +1 -0
  71. package/fesm2022/es.framework-ng.ui.core-generic-crud-table.mjs +929 -0
  72. package/fesm2022/es.framework-ng.ui.core-generic-crud-table.mjs.map +1 -0
  73. package/fesm2022/es.framework-ng.ui.core-generic-dialog.mjs +321 -0
  74. package/fesm2022/es.framework-ng.ui.core-generic-dialog.mjs.map +1 -0
  75. package/fesm2022/es.framework-ng.ui.core-generic-errormessage.mjs +35 -0
  76. package/fesm2022/es.framework-ng.ui.core-generic-errormessage.mjs.map +1 -0
  77. package/fesm2022/es.framework-ng.ui.core-generic-formly-fields.mjs +63 -0
  78. package/fesm2022/es.framework-ng.ui.core-generic-formly-fields.mjs.map +1 -0
  79. package/fesm2022/es.framework-ng.ui.core-generic-loadingspinner.mjs +34 -0
  80. package/fesm2022/es.framework-ng.ui.core-generic-loadingspinner.mjs.map +1 -0
  81. package/fesm2022/es.framework-ng.ui.core-generic-report-tabs.mjs +196 -0
  82. package/fesm2022/es.framework-ng.ui.core-generic-report-tabs.mjs.map +1 -0
  83. package/fesm2022/es.framework-ng.ui.core-generic-report.mjs +556 -0
  84. package/fesm2022/es.framework-ng.ui.core-generic-report.mjs.map +1 -0
  85. package/fesm2022/es.framework-ng.ui.core-generic-search-advanced.mjs +2995 -0
  86. package/fesm2022/es.framework-ng.ui.core-generic-search-advanced.mjs.map +1 -0
  87. package/fesm2022/es.framework-ng.ui.core-generic-search.mjs +103 -0
  88. package/fesm2022/es.framework-ng.ui.core-generic-search.mjs.map +1 -0
  89. package/fesm2022/es.framework-ng.ui.core-generic-selector.mjs +684 -0
  90. package/fesm2022/es.framework-ng.ui.core-generic-selector.mjs.map +1 -0
  91. package/fesm2022/es.framework-ng.ui.core-generic-table.mjs +388 -0
  92. package/fesm2022/es.framework-ng.ui.core-generic-table.mjs.map +1 -0
  93. package/fesm2022/es.framework-ng.ui.core-generic-view.mjs +465 -0
  94. package/fesm2022/es.framework-ng.ui.core-generic-view.mjs.map +1 -0
  95. package/fesm2022/es.framework-ng.ui.core-header-wrapper.mjs +31 -0
  96. package/fesm2022/es.framework-ng.ui.core-header-wrapper.mjs.map +1 -0
  97. package/fesm2022/es.framework-ng.ui.core-icon-picker.mjs +205 -0
  98. package/fesm2022/es.framework-ng.ui.core-icon-picker.mjs.map +1 -0
  99. package/fesm2022/es.framework-ng.ui.core-input-switch.mjs +102 -0
  100. package/fesm2022/es.framework-ng.ui.core-input-switch.mjs.map +1 -0
  101. package/fesm2022/es.framework-ng.ui.core-input-with-icon.mjs +67 -0
  102. package/fesm2022/es.framework-ng.ui.core-input-with-icon.mjs.map +1 -0
  103. package/fesm2022/es.framework-ng.ui.core-input.mjs +250 -0
  104. package/fesm2022/es.framework-ng.ui.core-input.mjs.map +1 -0
  105. package/fesm2022/es.framework-ng.ui.core-label-type.mjs +184 -0
  106. package/fesm2022/es.framework-ng.ui.core-label-type.mjs.map +1 -0
  107. package/fesm2022/es.framework-ng.ui.core-loading-skeletons.mjs +66 -0
  108. package/fesm2022/es.framework-ng.ui.core-loading-skeletons.mjs.map +1 -0
  109. package/fesm2022/es.framework-ng.ui.core-odata-query-builder.mjs +307 -0
  110. package/fesm2022/es.framework-ng.ui.core-odata-query-builder.mjs.map +1 -0
  111. package/fesm2022/es.framework-ng.ui.core-query-type.mjs +162 -0
  112. package/fesm2022/es.framework-ng.ui.core-query-type.mjs.map +1 -0
  113. package/fesm2022/es.framework-ng.ui.core-radio.mjs +120 -0
  114. package/fesm2022/es.framework-ng.ui.core-radio.mjs.map +1 -0
  115. package/fesm2022/es.framework-ng.ui.core-repeat.mjs +290 -0
  116. package/fesm2022/es.framework-ng.ui.core-repeat.mjs.map +1 -0
  117. package/fesm2022/es.framework-ng.ui.core-select.mjs +179 -0
  118. package/fesm2022/es.framework-ng.ui.core-select.mjs.map +1 -0
  119. package/fesm2022/es.framework-ng.ui.core-sidebar-cards.mjs +52 -0
  120. package/fesm2022/es.framework-ng.ui.core-sidebar-cards.mjs.map +1 -0
  121. package/fesm2022/es.framework-ng.ui.core-sidebar-toggles.mjs +53 -0
  122. package/fesm2022/es.framework-ng.ui.core-sidebar-toggles.mjs.map +1 -0
  123. package/fesm2022/es.framework-ng.ui.core-tabs.mjs +57 -0
  124. package/fesm2022/es.framework-ng.ui.core-tabs.mjs.map +1 -0
  125. package/fesm2022/es.framework-ng.ui.core-tag-type.mjs +209 -0
  126. package/fesm2022/es.framework-ng.ui.core-tag-type.mjs.map +1 -0
  127. package/fesm2022/es.framework-ng.ui.core-text-editor.mjs +58 -0
  128. package/fesm2022/es.framework-ng.ui.core-text-editor.mjs.map +1 -0
  129. package/fesm2022/es.framework-ng.ui.core-textarea.mjs +93 -0
  130. package/fesm2022/es.framework-ng.ui.core-textarea.mjs.map +1 -0
  131. package/fesm2022/es.framework-ng.ui.core-wrappers.mjs +245 -0
  132. package/fesm2022/es.framework-ng.ui.core-wrappers.mjs.map +1 -0
  133. package/fesm2022/es.framework-ng.ui.core.mjs +20 -0
  134. package/fesm2022/es.framework-ng.ui.core.mjs.map +1 -0
  135. package/filter-templates/README.md +3 -0
  136. package/form-button/README.md +3 -0
  137. package/form-field/README.md +3 -0
  138. package/form-template/README.md +3 -0
  139. package/formly-avatar-image/README.md +3 -0
  140. package/formly-avatar-label/README.md +3 -0
  141. package/formly-button/README.md +3 -0
  142. package/formly-button-selector/README.md +3 -0
  143. package/formly-presets/README.md +3 -0
  144. package/formly-prime-icon-picker/README.md +3 -0
  145. package/formly-split-button/README.md +3 -0
  146. package/formly-ui/README.md +3 -0
  147. package/formly-ui-all/README.md +3 -0
  148. package/formly-username-with-domain/README.md +3 -0
  149. package/generic-assets/README.md +3 -0
  150. package/generic-autocomplete/README.md +3 -0
  151. package/generic-button/README.md +3 -0
  152. package/generic-card/README.md +3 -0
  153. package/generic-crud-table/README.md +3 -0
  154. package/generic-dialog/README.md +3 -0
  155. package/generic-errormessage/README.md +3 -0
  156. package/generic-formly-fields/README.md +3 -0
  157. package/generic-loadingspinner/README.md +3 -0
  158. package/generic-report/README.md +3 -0
  159. package/generic-report-tabs/README.md +0 -0
  160. package/generic-search/README.md +3 -0
  161. package/generic-search-advanced/README.md +3 -0
  162. package/generic-selector/README.md +3 -0
  163. package/generic-table/README.md +3 -0
  164. package/generic-view/README.md +3 -0
  165. package/header-wrapper/README.md +3 -0
  166. package/icon-picker/README.md +3 -0
  167. package/input/README.md +3 -0
  168. package/input-switch/README.md +3 -0
  169. package/input-with-icon/README.md +3 -0
  170. package/label-type/README.md +3 -0
  171. package/loading-skeletons/README.md +3 -0
  172. package/odata-query-builder/README.md +3 -0
  173. package/package.json +264 -0
  174. package/query-type/README.md +3 -0
  175. package/radio/README.md +3 -0
  176. package/repeat/README.md +3 -0
  177. package/select/README.md +3 -0
  178. package/sidebar-cards/README.md +3 -0
  179. package/sidebar-toggles/README.md +3 -0
  180. package/styles.css +2 -0
  181. package/tabs/README.md +3 -0
  182. package/tag-type/README.md +3 -0
  183. package/text-editor/README.md +3 -0
  184. package/textarea/README.md +3 -0
  185. package/types/es.framework-ng.ui.core-attachments.d.ts +38 -0
  186. package/types/es.framework-ng.ui.core-base-crud.d.ts +74 -0
  187. package/types/es.framework-ng.ui.core-breadcrumb.d.ts +17 -0
  188. package/types/es.framework-ng.ui.core-checkbox.d.ts +33 -0
  189. package/types/es.framework-ng.ui.core-collapsible.d.ts +18 -0
  190. package/types/es.framework-ng.ui.core-color-picker.d.ts +16 -0
  191. package/types/es.framework-ng.ui.core-column-settings-popover.d.ts +46 -0
  192. package/types/es.framework-ng.ui.core-custom-switch.d.ts +19 -0
  193. package/types/es.framework-ng.ui.core-datepicker.d.ts +23 -0
  194. package/types/es.framework-ng.ui.core-deactivation-reason.d.ts +32 -0
  195. package/types/es.framework-ng.ui.core-excel-import.d.ts +69 -0
  196. package/types/es.framework-ng.ui.core-filter-templates.d.ts +57 -0
  197. package/types/es.framework-ng.ui.core-form-button.d.ts +17 -0
  198. package/types/es.framework-ng.ui.core-form-field.d.ts +30 -0
  199. package/types/es.framework-ng.ui.core-form-template.d.ts +16 -0
  200. package/types/es.framework-ng.ui.core-formly-avatar-image.d.ts +18 -0
  201. package/types/es.framework-ng.ui.core-formly-avatar-label.d.ts +36 -0
  202. package/types/es.framework-ng.ui.core-formly-button-selector.d.ts +35 -0
  203. package/types/es.framework-ng.ui.core-formly-button.d.ts +20 -0
  204. package/types/es.framework-ng.ui.core-formly-presets.d.ts +37 -0
  205. package/types/es.framework-ng.ui.core-formly-prime-icon-picker.d.ts +45 -0
  206. package/types/es.framework-ng.ui.core-formly-split-button.d.ts +23 -0
  207. package/types/es.framework-ng.ui.core-formly-ui-all.d.ts +40 -0
  208. package/types/es.framework-ng.ui.core-formly-ui.d.ts +13 -0
  209. package/types/es.framework-ng.ui.core-formly-username-with-domain.d.ts +19 -0
  210. package/types/es.framework-ng.ui.core-generic-assets.d.ts +10 -0
  211. package/types/es.framework-ng.ui.core-generic-autocomplete.d.ts +41 -0
  212. package/types/es.framework-ng.ui.core-generic-button.d.ts +39 -0
  213. package/types/es.framework-ng.ui.core-generic-card.d.ts +93 -0
  214. package/types/es.framework-ng.ui.core-generic-crud-table.d.ts +293 -0
  215. package/types/es.framework-ng.ui.core-generic-dialog.d.ts +93 -0
  216. package/types/es.framework-ng.ui.core-generic-errormessage.d.ts +17 -0
  217. package/types/es.framework-ng.ui.core-generic-formly-fields.d.ts +26 -0
  218. package/types/es.framework-ng.ui.core-generic-loadingspinner.d.ts +16 -0
  219. package/types/es.framework-ng.ui.core-generic-report-tabs.d.ts +21 -0
  220. package/types/es.framework-ng.ui.core-generic-report.d.ts +121 -0
  221. package/types/es.framework-ng.ui.core-generic-search-advanced.d.ts +305 -0
  222. package/types/es.framework-ng.ui.core-generic-search.d.ts +36 -0
  223. package/types/es.framework-ng.ui.core-generic-selector.d.ts +99 -0
  224. package/types/es.framework-ng.ui.core-generic-table.d.ts +84 -0
  225. package/types/es.framework-ng.ui.core-generic-view.d.ts +97 -0
  226. package/types/es.framework-ng.ui.core-header-wrapper.d.ts +15 -0
  227. package/types/es.framework-ng.ui.core-icon-picker.d.ts +30 -0
  228. package/types/es.framework-ng.ui.core-input-switch.d.ts +16 -0
  229. package/types/es.framework-ng.ui.core-input-with-icon.d.ts +17 -0
  230. package/types/es.framework-ng.ui.core-input.d.ts +47 -0
  231. package/types/es.framework-ng.ui.core-label-type.d.ts +38 -0
  232. package/types/es.framework-ng.ui.core-loading-skeletons.d.ts +17 -0
  233. package/types/es.framework-ng.ui.core-odata-query-builder.d.ts +87 -0
  234. package/types/es.framework-ng.ui.core-query-type.d.ts +37 -0
  235. package/types/es.framework-ng.ui.core-radio.d.ts +38 -0
  236. package/types/es.framework-ng.ui.core-repeat.d.ts +31 -0
  237. package/types/es.framework-ng.ui.core-select.d.ts +42 -0
  238. package/types/es.framework-ng.ui.core-sidebar-cards.d.ts +25 -0
  239. package/types/es.framework-ng.ui.core-sidebar-toggles.d.ts +25 -0
  240. package/types/es.framework-ng.ui.core-tabs.d.ts +17 -0
  241. package/types/es.framework-ng.ui.core-tag-type.d.ts +34 -0
  242. package/types/es.framework-ng.ui.core-text-editor.d.ts +16 -0
  243. package/types/es.framework-ng.ui.core-textarea.d.ts +36 -0
  244. package/types/es.framework-ng.ui.core-wrappers.d.ts +36 -0
  245. package/types/es.framework-ng.ui.core.d.ts +8 -0
  246. package/wrappers/README.md +3 -0
@@ -0,0 +1,131 @@
1
+ import * as i0 from '@angular/core';
2
+ import { ChangeDetectionStrategy, Component, NgModule } from '@angular/core';
3
+ import * as i1$1 from '@ngx-formly/core';
4
+ import { FieldType, FormlyAttributes, FormlyModule } from '@ngx-formly/core';
5
+ import { FormlyFormFieldModule } from '@es.framework/ng.ui.core/form-field';
6
+ import * as i1 from '@angular/forms';
7
+ import { ReactiveFormsModule } from '@angular/forms';
8
+ import { TranslatePipe } from '@es.framework/ng.core/pipes';
9
+ import { DatePickerModule } from 'primeng/datepicker';
10
+ import * as i2 from 'primeng/checkbox';
11
+ import { CheckboxModule } from 'primeng/checkbox';
12
+ import { CommonModule } from '@angular/common';
13
+
14
+ class FormlyFieldCheckbox extends FieldType {
15
+ defaultOptions = { props: { hideLabel: true } };
16
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: FormlyFieldCheckbox, deps: null, target: i0.ɵɵFactoryTarget.Component });
17
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.1.3", type: FormlyFieldCheckbox, isStandalone: true, selector: "formly-field-primeng-checkbox", usesInheritance: true, ngImport: i0, template: `
18
+ <!-- <div class="p-field-checkbox flex items-center gap-1">
19
+
20
+ <p-checkbox
21
+ [binary]="true"
22
+ [formControl]="formControl"
23
+ [formlyAttributes]="field"
24
+ [inputId]="id"
25
+
26
+ />
27
+ <label [for]="id" class="ml-2">{{ (props['label'] ?? '') | translate}}</label>
28
+ </div> -->
29
+
30
+ <div class="flex gap-2 items-center ltr:justify-end rtl:justify-start rtl:flex-row-reverse w-full px-2 py-1" style=" border-radius: var(--p-inputtext-border-radius);">
31
+ <!-- text-lg -->
32
+
33
+ <p-checkbox
34
+ [binary]="true"
35
+ [formControl]="formControl"
36
+ [formlyAttributes]="field"
37
+ [inputId]="id"
38
+
39
+ />
40
+ <label [for]="id" class="font-bold text-gray-800 ltr:mr-2 rtl:ml-2 whitespace-nowrap">
41
+ {{ (to.label ?? '') | translate }}
42
+ </label>
43
+ </div>
44
+ `, isInline: true, dependencies: [{ 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: "ngmodule", type: FormlyFormFieldModule }, { kind: "directive", type: FormlyAttributes, selector: "[formlyAttributes]", inputs: ["formlyAttributes", "id"] }, { kind: "ngmodule", type: CheckboxModule }, { kind: "component", type: i2.Checkbox, selector: "p-checkbox, p-checkBox, p-check-box", inputs: ["hostName", "value", "binary", "ariaLabelledBy", "ariaLabel", "tabindex", "inputId", "inputStyle", "styleClass", "inputClass", "indeterminate", "formControl", "checkboxIcon", "readonly", "autofocus", "trueValue", "falseValue", "variant", "size"], outputs: ["onChange", "onFocus", "onBlur"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
45
+ }
46
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: FormlyFieldCheckbox, decorators: [{
47
+ type: Component,
48
+ args: [{
49
+ selector: 'formly-field-primeng-checkbox',
50
+ template: `
51
+ <!-- <div class="p-field-checkbox flex items-center gap-1">
52
+
53
+ <p-checkbox
54
+ [binary]="true"
55
+ [formControl]="formControl"
56
+ [formlyAttributes]="field"
57
+ [inputId]="id"
58
+
59
+ />
60
+ <label [for]="id" class="ml-2">{{ (props['label'] ?? '') | translate}}</label>
61
+ </div> -->
62
+
63
+ <div class="flex gap-2 items-center ltr:justify-end rtl:justify-start rtl:flex-row-reverse w-full px-2 py-1" style=" border-radius: var(--p-inputtext-border-radius);">
64
+ <!-- text-lg -->
65
+
66
+ <p-checkbox
67
+ [binary]="true"
68
+ [formControl]="formControl"
69
+ [formlyAttributes]="field"
70
+ [inputId]="id"
71
+
72
+ />
73
+ <label [for]="id" class="font-bold text-gray-800 ltr:mr-2 rtl:ml-2 whitespace-nowrap">
74
+ {{ (to.label ?? '') | translate }}
75
+ </label>
76
+ </div>
77
+ `,
78
+ changeDetection: ChangeDetectionStrategy.OnPush,
79
+ standalone: true,
80
+ imports: [ReactiveFormsModule, DatePickerModule, FormlyFormFieldModule, FormlyAttributes, TranslatePipe, CheckboxModule]
81
+ }]
82
+ }] });
83
+
84
+ function withFormlyFieldCheckbox() {
85
+ return {
86
+ types: [
87
+ {
88
+ name: 'checkbox',
89
+ component: FormlyFieldCheckbox,
90
+ wrappers: ['form-field'],
91
+ },
92
+ {
93
+ name: 'boolean',
94
+ extends: 'checkbox',
95
+ },
96
+ ],
97
+ };
98
+ }
99
+
100
+ class FormlyCheckboxModule {
101
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: FormlyCheckboxModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
102
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.1.3", ngImport: i0, type: FormlyCheckboxModule, imports: [CommonModule,
103
+ ReactiveFormsModule,
104
+ CheckboxModule,
105
+ FormlyFormFieldModule, i1$1.FormlyModule] });
106
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: FormlyCheckboxModule, imports: [CommonModule,
107
+ ReactiveFormsModule,
108
+ CheckboxModule,
109
+ FormlyFormFieldModule,
110
+ FormlyModule.forChild(withFormlyFieldCheckbox())] });
111
+ }
112
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: FormlyCheckboxModule, decorators: [{
113
+ type: NgModule,
114
+ args: [{
115
+ // declarations: [FormlyFieldCheckbox],
116
+ imports: [
117
+ CommonModule,
118
+ ReactiveFormsModule,
119
+ CheckboxModule,
120
+ FormlyFormFieldModule,
121
+ FormlyModule.forChild(withFormlyFieldCheckbox()),
122
+ ],
123
+ }]
124
+ }] });
125
+
126
+ /**
127
+ * Generated bundle index. Do not edit.
128
+ */
129
+
130
+ export { FormlyCheckboxModule, FormlyFieldCheckbox, withFormlyFieldCheckbox };
131
+ //# sourceMappingURL=es.framework-ng.ui.core-checkbox.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"es.framework-ng.ui.core-checkbox.mjs","sources":["../../../../libs/ng.ui.core/checkbox/src/lib/checkbox.type.ts","../../../../libs/ng.ui.core/checkbox/src/lib/checkbox.config.ts","../../../../libs/ng.ui.core/checkbox/src/lib/checkbox.module.ts","../../../../libs/ng.ui.core/checkbox/src/es.framework-ng.ui.core-checkbox.ts"],"sourcesContent":["import { Component, ChangeDetectionStrategy, Type } from '@angular/core';\nimport { FieldType, FieldTypeConfig, FormlyAttributes, FormlyFieldConfig } from '@ngx-formly/core';\n// import { FormlyFieldProps as CheckboxProps, FormlyFormFieldModule } from '@es.framework/ng.core/form-field';\nimport { FormlyFieldProps as CheckboxProps,FormlyFormFieldModule } from '@es.framework/ng.ui.core/form-field';\n\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { TranslatePipe } from '@es.framework/ng.core/pipes';\nimport { DatePickerModule } from 'primeng/datepicker';\nimport { CheckboxModule } from 'primeng/checkbox';\n\nexport interface FormlyCheckboxFieldConfig extends FormlyFieldConfig<CheckboxProps> {\n type: 'checkbox' | Type<FormlyFieldCheckbox>;\n}\n\n@Component({\n selector: 'formly-field-primeng-checkbox',\n template: `\n <!-- <div class=\"p-field-checkbox flex items-center gap-1\">\n\n <p-checkbox\n [binary]=\"true\"\n [formControl]=\"formControl\"\n [formlyAttributes]=\"field\"\n [inputId]=\"id\"\n\n />\n <label [for]=\"id\" class=\"ml-2\">{{ (props['label'] ?? '') | translate}}</label>\n </div> -->\n\n <div class=\"flex gap-2 items-center ltr:justify-end rtl:justify-start rtl:flex-row-reverse w-full px-2 py-1\" style=\" border-radius: var(--p-inputtext-border-radius);\">\n<!-- text-lg -->\n\n <p-checkbox\n [binary]=\"true\"\n [formControl]=\"formControl\"\n [formlyAttributes]=\"field\"\n [inputId]=\"id\"\n\n />\n <label [for]=\"id\" class=\"font-bold text-gray-800 ltr:mr-2 rtl:ml-2 whitespace-nowrap\">\n {{ (to.label ?? '') | translate }}\n </label>\n</div>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone:true,\n imports: [ReactiveFormsModule, DatePickerModule, FormlyFormFieldModule, FormlyAttributes, TranslatePipe, CheckboxModule]\n})\nexport class FormlyFieldCheckbox extends FieldType<FieldTypeConfig<CheckboxProps>> {\n override defaultOptions = { props: { hideLabel: true } };\n}\n","import { ConfigOption } from '@ngx-formly/core';\nimport { FormlyFieldCheckbox } from './checkbox.type';\n\nexport function withFormlyFieldCheckbox(): ConfigOption {\n return {\n types: [\n {\n name: 'checkbox',\n component: FormlyFieldCheckbox,\n wrappers: ['form-field'],\n },\n {\n name: 'boolean',\n extends: 'checkbox',\n },\n ],\n };\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormlyModule } from '@ngx-formly/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { CheckboxModule } from 'primeng/checkbox';\n\nimport { FormlyFieldCheckbox } from './checkbox.type';\nimport { withFormlyFieldCheckbox } from './checkbox.config';\nimport { FormlyFormFieldModule } from '@es.framework/ng.ui.core/form-field';\n\n@NgModule({\n // declarations: [FormlyFieldCheckbox],\n imports: [\n CommonModule,\n ReactiveFormsModule,\n CheckboxModule,\n FormlyFormFieldModule,\n FormlyModule.forChild(withFormlyFieldCheckbox()),\n ],\n})\nexport class FormlyCheckboxModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1"],"mappings":"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"}
@@ -0,0 +1,90 @@
1
+ import * as i0 from '@angular/core';
2
+ import { NgModule, Component } from '@angular/core';
3
+ import * as i1 from '@angular/common';
4
+ import { CommonModule } from '@angular/common';
5
+ import { FieldWrapper, FormlyModule } from '@ngx-formly/core';
6
+
7
+ class CollapsibleModule {
8
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: CollapsibleModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
9
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.1.3", ngImport: i0, type: CollapsibleModule, imports: [CommonModule] });
10
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: CollapsibleModule, imports: [CommonModule] });
11
+ }
12
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: CollapsibleModule, decorators: [{
13
+ type: NgModule,
14
+ args: [{
15
+ imports: [CommonModule],
16
+ }]
17
+ }] });
18
+
19
+ class CollapsibleWrapper extends FieldWrapper {
20
+ isCollapsed = true;
21
+ toggleCollapse() {
22
+ this.isCollapsed = !this.isCollapsed;
23
+ }
24
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: CollapsibleWrapper, deps: null, target: i0.ɵɵFactoryTarget.Component });
25
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.3", type: CollapsibleWrapper, isStandalone: true, selector: "formly-wrapper-collapsible", usesInheritance: true, ngImport: i0, template: `
26
+ <div class="w-full flex flex-col rounded-lg shadow-md overflow-hidden border border-gray-300 bg-white">
27
+ <!-- Header -->
28
+ <div
29
+ class="flex items-center p-4 bg-gray-50 border-b border-gray-200 cursor-pointer transition duration-200 hover:bg-gray-100"
30
+ (click)="toggleCollapse()"
31
+ >
32
+ <div class="flex items-center gap-2">
33
+ @if (props['icon']) {
34
+ <i class="{{ props['icon'] }} text-blue-500 text-lg"></i>
35
+ }
36
+ <span class="text-lg font-semibold text-gray-700">{{ props.label }}</span>
37
+ </div>
38
+ <i
39
+ class="pi mr-auto text-gray-600 text-xl transition-transform duration-300"
40
+ [ngClass]="{ 'pi-angle-up': !isCollapsed, 'pi-angle-down': isCollapsed }"
41
+ ></i>
42
+ </div>
43
+
44
+ <!-- Body -->
45
+ <div [ngClass]="{ hidden: isCollapsed, 'p-6': !isCollapsed }">
46
+ <ng-container #fieldComponent></ng-container>
47
+ </div>
48
+ </div>
49
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: FormlyModule }] });
50
+ }
51
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: CollapsibleWrapper, decorators: [{
52
+ type: Component,
53
+ args: [{
54
+ selector: 'formly-wrapper-collapsible',
55
+ standalone: true,
56
+ imports: [CommonModule, FormlyModule],
57
+ template: `
58
+ <div class="w-full flex flex-col rounded-lg shadow-md overflow-hidden border border-gray-300 bg-white">
59
+ <!-- Header -->
60
+ <div
61
+ class="flex items-center p-4 bg-gray-50 border-b border-gray-200 cursor-pointer transition duration-200 hover:bg-gray-100"
62
+ (click)="toggleCollapse()"
63
+ >
64
+ <div class="flex items-center gap-2">
65
+ @if (props['icon']) {
66
+ <i class="{{ props['icon'] }} text-blue-500 text-lg"></i>
67
+ }
68
+ <span class="text-lg font-semibold text-gray-700">{{ props.label }}</span>
69
+ </div>
70
+ <i
71
+ class="pi mr-auto text-gray-600 text-xl transition-transform duration-300"
72
+ [ngClass]="{ 'pi-angle-up': !isCollapsed, 'pi-angle-down': isCollapsed }"
73
+ ></i>
74
+ </div>
75
+
76
+ <!-- Body -->
77
+ <div [ngClass]="{ hidden: isCollapsed, 'p-6': !isCollapsed }">
78
+ <ng-container #fieldComponent></ng-container>
79
+ </div>
80
+ </div>
81
+ `,
82
+ }]
83
+ }] });
84
+
85
+ /**
86
+ * Generated bundle index. Do not edit.
87
+ */
88
+
89
+ export { CollapsibleModule, CollapsibleWrapper };
90
+ //# sourceMappingURL=es.framework-ng.ui.core-collapsible.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"es.framework-ng.ui.core-collapsible.mjs","sources":["../../../../libs/ng.ui.core/collapsible/src/lib/collapsible-module.ts","../../../../libs/ng.ui.core/collapsible/src/lib/collapsible-wrapper.ts","../../../../libs/ng.ui.core/collapsible/src/es.framework-ng.ui.core-collapsible.ts"],"sourcesContent":["import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@NgModule({\n imports: [CommonModule],\n})\nexport class CollapsibleModule {}\n","import { Component } from '@angular/core';\r\nimport { FieldWrapper, FormlyModule } from '@ngx-formly/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'formly-wrapper-collapsible',\r\n standalone: true,\r\n imports: [CommonModule, FormlyModule],\r\n template: `\n <div class=\"w-full flex flex-col rounded-lg shadow-md overflow-hidden border border-gray-300 bg-white\">\n <!-- Header -->\n <div\n class=\"flex items-center p-4 bg-gray-50 border-b border-gray-200 cursor-pointer transition duration-200 hover:bg-gray-100\"\n (click)=\"toggleCollapse()\"\n >\n <div class=\"flex items-center gap-2\">\n @if (props['icon']) {\n <i class=\"{{ props['icon'] }} text-blue-500 text-lg\"></i>\n }\n <span class=\"text-lg font-semibold text-gray-700\">{{ props.label }}</span>\n </div>\n <i\n class=\"pi mr-auto text-gray-600 text-xl transition-transform duration-300\"\n [ngClass]=\"{ 'pi-angle-up': !isCollapsed, 'pi-angle-down': isCollapsed }\"\n ></i>\n </div>\n \n <!-- Body -->\n <div [ngClass]=\"{ hidden: isCollapsed, 'p-6': !isCollapsed }\">\n <ng-container #fieldComponent></ng-container>\n </div>\n </div>\n `,\r\n})\r\nexport class CollapsibleWrapper extends FieldWrapper {\r\n isCollapsed = true;\r\n\r\n toggleCollapse() {\r\n this.isCollapsed = !this.isCollapsed;\r\n }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;MAMa,iBAAiB,CAAA;uGAAjB,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;AAAjB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,YAFlB,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,iBAAiB,YAFlB,YAAY,CAAA,EAAA,CAAA;;2FAEX,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAH7B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,YAAY,CAAC;AACxB,iBAAA;;;AC6BK,MAAO,kBAAmB,SAAQ,YAAY,CAAA;IAClD,WAAW,GAAG,IAAI;IAElB,cAAc,GAAA;AACZ,QAAA,IAAI,CAAC,WAAW,GAAG,CAAC,IAAI,CAAC,WAAW;IACtC;uGALW,kBAAkB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAlB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,kBAAkB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,4BAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EA1BnB;;;;;;;;;;;;;;;;;;;;;;;;KAwBP,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAzBO,YAAY,4HAAE,YAAY,EAAA,CAAA,EAAA,CAAA;;2FA2BzB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBA9B9B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,4BAA4B;AACtC,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,YAAY,CAAC;AACrC,oBAAA,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;;;;;;AAwBP,IAAA,CAAA;AACJ,iBAAA;;;ACjCD;;AAEG;;;;"}
@@ -0,0 +1,87 @@
1
+ import * as i0 from '@angular/core';
2
+ import { NgModule, ChangeDetectionStrategy, Component } from '@angular/core';
3
+ import { CommonModule } from '@angular/common';
4
+ import { FieldType } from '@ngx-formly/core';
5
+ import * as i2 from '@angular/forms';
6
+ import { FormsModule } from '@angular/forms';
7
+ import * as i1 from 'primeng/colorpicker';
8
+ import { ColorPickerModule as ColorPickerModule$1 } from 'primeng/colorpicker';
9
+ import { TranslatePipe } from '@es.framework/ng.core/pipes';
10
+
11
+ class ColorPickerModule {
12
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: ColorPickerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
13
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.1.3", ngImport: i0, type: ColorPickerModule, imports: [CommonModule] });
14
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: ColorPickerModule, imports: [CommonModule] });
15
+ }
16
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: ColorPickerModule, decorators: [{
17
+ type: NgModule,
18
+ args: [{
19
+ imports: [CommonModule],
20
+ }]
21
+ }] });
22
+
23
+ class ColorPickerComponent extends FieldType {
24
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: ColorPickerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
25
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.1.3", type: ColorPickerComponent, isStandalone: true, selector: "formly-field-color-picker", usesInheritance: true, ngImport: i0, template: `
26
+
27
+
28
+ <div class="flex items-center justify-between rtl:flex-row-reverse w-full px-2 py-1" style=" border-radius: var(--p-inputtext-border-radius);">
29
+ <p-colorPicker
30
+ [style.direction]="'ltr'"
31
+ [(ngModel)]="formControl.value"
32
+ (ngModelChange)="formControl.setValue($event)"
33
+ [style]="to['style']"
34
+ [disabled]="to.disabled ?? false"
35
+ [inline]="to['inline'] ?? false"
36
+ [format]="to['format'] ?? 'hex'"
37
+ [tabindex]="'' + (to.tabindex ?? 0)"
38
+ [id]="id"
39
+ [name]="to['name'] || key"
40
+
41
+
42
+ ></p-colorPicker>
43
+ <!-- appendTo="body" -->
44
+ <label [for]="id" class="text-sm text-gray-800 mr-2 whitespace-nowrap">
45
+ {{ (to.label ?? '') | translate}}
46
+ </label>
47
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: ColorPickerModule$1 }, { kind: "component", type: i1.ColorPicker, selector: "p-colorPicker, p-colorpicker, p-color-picker", inputs: ["styleClass", "inline", "format", "tabindex", "inputId", "autoZIndex", "showTransitionOptions", "hideTransitionOptions", "autofocus", "defaultColor", "appendTo"], outputs: ["onChange", "onShow", "onHide"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
48
+ }
49
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: ColorPickerComponent, decorators: [{
50
+ type: Component,
51
+ args: [{
52
+ standalone: true,
53
+ selector: 'formly-field-color-picker',
54
+ imports: [ColorPickerModule$1, FormsModule, TranslatePipe],
55
+ template: `
56
+
57
+
58
+ <div class="flex items-center justify-between rtl:flex-row-reverse w-full px-2 py-1" style=" border-radius: var(--p-inputtext-border-radius);">
59
+ <p-colorPicker
60
+ [style.direction]="'ltr'"
61
+ [(ngModel)]="formControl.value"
62
+ (ngModelChange)="formControl.setValue($event)"
63
+ [style]="to['style']"
64
+ [disabled]="to.disabled ?? false"
65
+ [inline]="to['inline'] ?? false"
66
+ [format]="to['format'] ?? 'hex'"
67
+ [tabindex]="'' + (to.tabindex ?? 0)"
68
+ [id]="id"
69
+ [name]="to['name'] || key"
70
+
71
+
72
+ ></p-colorPicker>
73
+ <!-- appendTo="body" -->
74
+ <label [for]="id" class="text-sm text-gray-800 mr-2 whitespace-nowrap">
75
+ {{ (to.label ?? '') | translate}}
76
+ </label>
77
+ `,
78
+ changeDetection: ChangeDetectionStrategy.OnPush,
79
+ }]
80
+ }] });
81
+
82
+ /**
83
+ * Generated bundle index. Do not edit.
84
+ */
85
+
86
+ export { ColorPickerComponent, ColorPickerModule };
87
+ //# sourceMappingURL=es.framework-ng.ui.core-color-picker.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"es.framework-ng.ui.core-color-picker.mjs","sources":["../../../../libs/ng.ui.core/color-picker/src/lib/color-picker-module.ts","../../../../libs/ng.ui.core/color-picker/src/lib/color-picker.type.ts","../../../../libs/ng.ui.core/color-picker/src/es.framework-ng.ui.core-color-picker.ts"],"sourcesContent":["import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@NgModule({\n imports: [CommonModule],\n})\nexport class ColorPickerModule {}\n","import { Component, ChangeDetectionStrategy, inject } from '@angular/core';\nimport { FieldType, FieldTypeConfig } from '@ngx-formly/core';\nimport { FormsModule, NgModel } from '@angular/forms';\n\nimport { ColorPickerModule } from 'primeng/colorpicker';\nimport { TranslatePipe } from '@es.framework/ng.core/pipes';\n\n@Component({\n standalone: true,\n selector: 'formly-field-color-picker',\n imports: [ColorPickerModule, FormsModule, TranslatePipe],\n template: `\n\n\n <div class=\"flex items-center justify-between rtl:flex-row-reverse w-full px-2 py-1\" style=\" border-radius: var(--p-inputtext-border-radius);\">\n <p-colorPicker\n [style.direction]=\"'ltr'\"\n [(ngModel)]=\"formControl.value\"\n (ngModelChange)=\"formControl.setValue($event)\"\n [style]=\"to['style']\"\n [disabled]=\"to.disabled ?? false\"\n [inline]=\"to['inline'] ?? false\"\n [format]=\"to['format'] ?? 'hex'\"\n [tabindex]=\"'' + (to.tabindex ?? 0)\"\n [id]=\"id\"\n [name]=\"to['name'] || key\"\n\n\n ></p-colorPicker>\n <!-- appendTo=\"body\" -->\n <label [for]=\"id\" class=\"text-sm text-gray-800 mr-2 whitespace-nowrap\">\n {{ (to.label ?? '') | translate}}\n </label>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ColorPickerComponent extends FieldType<FieldTypeConfig> {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["ColorPickerModule"],"mappings":"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"}
@@ -0,0 +1,183 @@
1
+ import * as i0 from '@angular/core';
2
+ import { NgModule, EventEmitter, Output, Input, ViewChild, Component } from '@angular/core';
3
+ import { CommonModule } from '@angular/common';
4
+ import * as i2 from '@angular/forms';
5
+ import { FormsModule } from '@angular/forms';
6
+ import * as i3 from 'primeng/popover';
7
+ import { PopoverModule } from 'primeng/popover';
8
+ import { DividerModule } from 'primeng/divider';
9
+ import { ButtonModule } from 'primeng/button';
10
+ import { TooltipModule } from 'primeng/tooltip';
11
+ import { TranslatePipe } from '@es.framework/ng.core/pipes';
12
+ import * as i5 from 'primeng/orderlist';
13
+ import { OrderListModule } from 'primeng/orderlist';
14
+ import * as i6 from 'primeng/checkbox';
15
+ import { CheckboxModule, Checkbox } from 'primeng/checkbox';
16
+ import * as i1 from '@es.framework/ng.core/services';
17
+ import * as i4 from 'primeng/api';
18
+
19
+ class ColumnSettingsPopoverModule {
20
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: ColumnSettingsPopoverModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
21
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.1.3", ngImport: i0, type: ColumnSettingsPopoverModule, imports: [CommonModule] });
22
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: ColumnSettingsPopoverModule, imports: [CommonModule] });
23
+ }
24
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: ColumnSettingsPopoverModule, decorators: [{
25
+ type: NgModule,
26
+ args: [{
27
+ imports: [CommonModule],
28
+ }]
29
+ }] });
30
+
31
+ // src/app/shared/column-settings-popover/column-settings-popover.component.ts
32
+ class ColumnSettingsPopoverComponent {
33
+ translate;
34
+ op;
35
+ fixedColumns = [];
36
+ toggleableColumns = [];
37
+ // تم إزالة @Input() tableId لأنه لن يستخدم هنا للحفظ
38
+ tableId = 'defaultTable';
39
+ _displayOrderListColumns = [];
40
+ _selectedToggleableColumns = [];
41
+ get selectedToggleableColumns() {
42
+ return this._selectedToggleableColumns;
43
+ }
44
+ set selectedToggleableColumns(val) {
45
+ if (!this.areColumnsEqual(this._selectedToggleableColumns, val)) {
46
+ this._selectedToggleableColumns = val;
47
+ this.syncDisplayColumnsWithSelectedInput();
48
+ }
49
+ }
50
+ selectedToggleableColumnsChange = new EventEmitter();
51
+ // تم إزالة @Output() columnRemoved و @Output() popoverHidden لأن selectedToggleableColumnsChange يغني عنهما
52
+ constructor(translate) {
53
+ this.translate = translate;
54
+ }
55
+ ngOnInit() {
56
+ console.log('ColumnSettingsPopoverComponent: ngOnInit called.');
57
+ // في ngOnInit، نقوم فقط بتهيئة الأعمدة للعرض بناءً على المدخلات
58
+ this.initializeDisplayColumns();
59
+ this.syncDisplayColumnsWithSelectedInput();
60
+ }
61
+ ngOnChanges(changes) {
62
+ // عند تغير toggleableColumns، نعيد تهيئة القائمة للعرض
63
+ if (changes['toggleableColumns']) {
64
+ console.log('ColumnSettingsPopoverComponent: toggleableColumns input changed.');
65
+ this.initializeDisplayColumns();
66
+ }
67
+ // عند تغير selectedToggleableColumns من المكون الأب، نقوم بمزامنة حالتها
68
+ if (changes['selectedToggleableColumns']) {
69
+ console.log('ColumnSettingsPopoverComponent: selectedToggleableColumns input changed (from parent).');
70
+ this.syncDisplayColumnsWithSelectedInput();
71
+ }
72
+ }
73
+ // ⭐ Getter/Setter لمربع الاختيار "تحديد الكل" ⭐
74
+ get allColumnsSelected() {
75
+ if (!this._displayOrderListColumns || this._displayOrderListColumns.length === 0) {
76
+ return false;
77
+ }
78
+ return this._displayOrderListColumns.every(col => col.isSelected);
79
+ }
80
+ set allColumnsSelected(value) {
81
+ this._displayOrderListColumns.forEach(col => col.isSelected = value);
82
+ this.emitCurrentSelection();
83
+ }
84
+ // ⭐ دالة لتهيئة _displayOrderListColumns من toggleableColumns ⭐
85
+ initializeDisplayColumns() {
86
+ this._displayOrderListColumns = this.toggleableColumns.map(col => ({
87
+ ...col,
88
+ isSelected: false // نترك isSelected كـ false مؤقتاً
89
+ }));
90
+ }
91
+ // دالة لمزامنة حالة العرض مع الأعمدة المحددة من المكون الأب
92
+ syncDisplayColumnsWithSelectedInput() {
93
+ if (!this._displayOrderListColumns || this._displayOrderListColumns.length === 0) {
94
+ return;
95
+ }
96
+ const selectedFieldsSet = new Set(this._selectedToggleableColumns.map(col => col.field));
97
+ // تحديث خاصية isSelected بناءً على selectedFieldsSet
98
+ this._displayOrderListColumns.forEach(col => {
99
+ col.isSelected = selectedFieldsSet.has(col.field);
100
+ });
101
+ // إعادة ترتيب القائمة لتكون الأعمدة المحددة في الأعلى
102
+ const orderedSelected = this._displayOrderListColumns
103
+ .filter(col => selectedFieldsSet.has(col.field))
104
+ .sort((a, b) => {
105
+ return Array.from(selectedFieldsSet).indexOf(a.field) - Array.from(selectedFieldsSet).indexOf(b.field);
106
+ });
107
+ const orderedUnselected = this._displayOrderListColumns.filter(col => !selectedFieldsSet.has(col.field));
108
+ this._displayOrderListColumns = [...orderedSelected, ...orderedUnselected];
109
+ console.log('ColumnSettingsPopoverComponent: _displayOrderListColumns synced with selectedToggleableColumns input:', this._displayOrderListColumns);
110
+ }
111
+ toggle(event) {
112
+ this.op.toggle(event);
113
+ }
114
+ hide() {
115
+ this.op.hide();
116
+ }
117
+ // عند تغيير حالة أي مربع اختيار
118
+ onColumnVisibilityChange(column) {
119
+ this.emitCurrentSelection();
120
+ }
121
+ // عند إعادة ترتيب القائمة
122
+ onOrderListReorder(event) {
123
+ this.emitCurrentSelection();
124
+ }
125
+ // دالة لإرسال التغييرات إلى المكون الأب
126
+ emitCurrentSelection() {
127
+ const currentSelected = this._displayOrderListColumns
128
+ .filter(col => col.isSelected)
129
+ .map(col => {
130
+ const { isSelected, ...rest } = col;
131
+ return rest;
132
+ });
133
+ this.selectedToggleableColumnsChange.emit(currentSelected);
134
+ }
135
+ areColumnsEqual(cols1, cols2) {
136
+ if (cols1.length !== cols2.length) {
137
+ return false;
138
+ }
139
+ // التحقق من أن العناصر هي نفسها وبنفس الترتيب
140
+ for (let i = 0; i < cols1.length; i++) {
141
+ if (cols1[i].field !== cols2[i].field) {
142
+ return false;
143
+ }
144
+ }
145
+ return true;
146
+ }
147
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: ColumnSettingsPopoverComponent, deps: [{ token: i1.LocalizationService }], target: i0.ɵɵFactoryTarget.Component });
148
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.1.3", type: ColumnSettingsPopoverComponent, isStandalone: true, selector: "lib-column-settings-popover", inputs: { fixedColumns: "fixedColumns", toggleableColumns: "toggleableColumns", tableId: "tableId", selectedToggleableColumns: "selectedToggleableColumns" }, outputs: { selectedToggleableColumnsChange: "selectedToggleableColumnsChange" }, viewQueries: [{ propertyName: "op", first: true, predicate: ["op"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<p-popover #op appendTo=\"body\" styleClass=\"w-80\">\n\n\n\n\n <!-- \u2B50 \u0645\u0631\u0628\u0639 \u0627\u062E\u062A\u064A\u0627\u0631 \"\u062A\u062D\u062F\u064A\u062F \u0627\u0644\u0643\u0644\" \u2B50 -->\n <div class=\"flex items-center mb-3\">\n <p-checkbox\n [(ngModel)]=\"allColumnsSelected\"\n [binary]=\"true\"\n inputId=\"selectAllColumns\"\n ></p-checkbox>\n <label for=\"selectAllColumns\" class=\"ml-2 cursor-pointer font-medium text-color-secondary\">\n {{ 'COMMON.SELECT_ALL' | translate }}\n </label>\n </div>\n\n <p-orderList\n [value]=\"_displayOrderListColumns\"\n header=\"{{ 'COMMON.REORDER_AND_SELECT_COLUMNS' | translate }}\"\n [listStyle]=\"{'height':'250px'}\"\n [responsive]=\"true\"\n [dragdrop]=\"true\"\n (onReorder)=\"onOrderListReorder($event)\"\n styleClass=\"w-full\"\n >\n <ng-template let-col pTemplate=\"item\">\n <div class=\"p-2 border rounded-md flex items-center justify-between w-full\">\n <!-- \u0645\u0631\u0628\u0639 \u0627\u062E\u062A\u064A\u0627\u0631 \u0644\u0644\u062A\u062D\u0643\u0645 \u0641\u064A \u0627\u0644\u0631\u0624\u064A\u0629 -->\n <p-checkbox\n [(ngModel)]=\"col.isSelected\"\n (ngModelChange)=\"onColumnVisibilityChange(col)\"\n [binary]=\"true\"\n class=\"mr-4\"\n ></p-checkbox>\n <span class=\"flex-grow\">{{ col.header | translate }}</span>\n <i class=\"pi pi-bars text-surface-400 cursor-grab\"></i> <!-- \u0623\u064A\u0642\u0648\u0646\u0629 \u0627\u0644\u0633\u062D\u0628 -->\n </div>\n </ng-template>\n </p-orderList>\n\n\n</p-popover>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: PopoverModule }, { kind: "component", type: i3.Popover, selector: "p-popover", inputs: ["ariaLabel", "ariaLabelledBy", "dismissable", "style", "styleClass", "appendTo", "autoZIndex", "ariaCloseLabel", "baseZIndex", "focusOnShow", "showTransitionOptions", "hideTransitionOptions"], outputs: ["onShow", "onHide"] }, { kind: "directive", type: i4.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "ngmodule", type: DividerModule }, { kind: "ngmodule", type: ButtonModule }, { kind: "ngmodule", type: TooltipModule }, { kind: "ngmodule", type: OrderListModule }, { kind: "component", type: i5.OrderList, selector: "p-orderList, p-orderlist, p-order-list", inputs: ["header", "styleClass", "tabindex", "ariaLabel", "ariaLabelledBy", "listStyle", "responsive", "filterBy", "filterPlaceholder", "filterLocale", "metaKeySelection", "dragdrop", "controlsPosition", "ariaFilterLabel", "filterMatchMode", "breakpoint", "stripedRows", "disabled", "trackBy", "scrollHeight", "autoOptionFocus", "dataKey", "selection", "value", "buttonProps", "moveUpButtonProps", "moveTopButtonProps", "moveDownButtonProps", "moveBottomButtonProps"], outputs: ["selectionChange", "onReorder", "onSelectionChange", "onFilterEvent", "onFocus", "onBlur"] }, { kind: "ngmodule", type: CheckboxModule }, { kind: "component", type: i6.Checkbox, selector: "p-checkbox, p-checkBox, p-check-box", inputs: ["hostName", "value", "binary", "ariaLabelledBy", "ariaLabel", "tabindex", "inputId", "inputStyle", "styleClass", "inputClass", "indeterminate", "formControl", "checkboxIcon", "readonly", "autofocus", "trueValue", "falseValue", "variant", "size"], outputs: ["onChange", "onFocus", "onBlur"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] });
149
+ }
150
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: ColumnSettingsPopoverComponent, decorators: [{
151
+ type: Component,
152
+ args: [{ selector: 'lib-column-settings-popover', standalone: true, imports: [
153
+ FormsModule,
154
+ PopoverModule,
155
+ DividerModule,
156
+ ButtonModule,
157
+ TooltipModule,
158
+ TranslatePipe,
159
+ OrderListModule,
160
+ CheckboxModule,
161
+ Checkbox
162
+ ], template: "<p-popover #op appendTo=\"body\" styleClass=\"w-80\">\n\n\n\n\n <!-- \u2B50 \u0645\u0631\u0628\u0639 \u0627\u062E\u062A\u064A\u0627\u0631 \"\u062A\u062D\u062F\u064A\u062F \u0627\u0644\u0643\u0644\" \u2B50 -->\n <div class=\"flex items-center mb-3\">\n <p-checkbox\n [(ngModel)]=\"allColumnsSelected\"\n [binary]=\"true\"\n inputId=\"selectAllColumns\"\n ></p-checkbox>\n <label for=\"selectAllColumns\" class=\"ml-2 cursor-pointer font-medium text-color-secondary\">\n {{ 'COMMON.SELECT_ALL' | translate }}\n </label>\n </div>\n\n <p-orderList\n [value]=\"_displayOrderListColumns\"\n header=\"{{ 'COMMON.REORDER_AND_SELECT_COLUMNS' | translate }}\"\n [listStyle]=\"{'height':'250px'}\"\n [responsive]=\"true\"\n [dragdrop]=\"true\"\n (onReorder)=\"onOrderListReorder($event)\"\n styleClass=\"w-full\"\n >\n <ng-template let-col pTemplate=\"item\">\n <div class=\"p-2 border rounded-md flex items-center justify-between w-full\">\n <!-- \u0645\u0631\u0628\u0639 \u0627\u062E\u062A\u064A\u0627\u0631 \u0644\u0644\u062A\u062D\u0643\u0645 \u0641\u064A \u0627\u0644\u0631\u0624\u064A\u0629 -->\n <p-checkbox\n [(ngModel)]=\"col.isSelected\"\n (ngModelChange)=\"onColumnVisibilityChange(col)\"\n [binary]=\"true\"\n class=\"mr-4\"\n ></p-checkbox>\n <span class=\"flex-grow\">{{ col.header | translate }}</span>\n <i class=\"pi pi-bars text-surface-400 cursor-grab\"></i> <!-- \u0623\u064A\u0642\u0648\u0646\u0629 \u0627\u0644\u0633\u062D\u0628 -->\n </div>\n </ng-template>\n </p-orderList>\n\n\n</p-popover>\n" }]
163
+ }], ctorParameters: () => [{ type: i1.LocalizationService }], propDecorators: { op: [{
164
+ type: ViewChild,
165
+ args: ['op']
166
+ }], fixedColumns: [{
167
+ type: Input
168
+ }], toggleableColumns: [{
169
+ type: Input
170
+ }], tableId: [{
171
+ type: Input
172
+ }], selectedToggleableColumns: [{
173
+ type: Input
174
+ }], selectedToggleableColumnsChange: [{
175
+ type: Output
176
+ }] } });
177
+
178
+ /**
179
+ * Generated bundle index. Do not edit.
180
+ */
181
+
182
+ export { ColumnSettingsPopoverComponent, ColumnSettingsPopoverModule };
183
+ //# sourceMappingURL=es.framework-ng.ui.core-column-settings-popover.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"es.framework-ng.ui.core-column-settings-popover.mjs","sources":["../../../../libs/ng.ui.core/column-settings-popover/src/lib/column-settings-popover-module.ts","../../../../libs/ng.ui.core/column-settings-popover/src/lib/column-settings-popover.ts","../../../../libs/ng.ui.core/column-settings-popover/src/lib/column-settings-popover.html","../../../../libs/ng.ui.core/column-settings-popover/src/es.framework-ng.ui.core-column-settings-popover.ts"],"sourcesContent":["import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@NgModule({\n imports: [CommonModule],\n})\nexport class ColumnSettingsPopoverModule {}\n","// src/app/shared/column-settings-popover/column-settings-popover.component.ts\nimport { Component, Input, Output, EventEmitter, ViewChild, OnInit, OnChanges, SimpleChanges, inject } from '@angular/core';\n\nimport { FormsModule } from '@angular/forms';\nimport { PopoverModule } from 'primeng/popover';\nimport { DividerModule } from 'primeng/divider';\nimport { ButtonModule } from 'primeng/button';\nimport { TooltipModule } from 'primeng/tooltip';\nimport { TranslatePipe } from '@es.framework/ng.core/pipes';\nimport { ColumnDef } from '@es.framework/ng.core/models';\nimport { OrderListModule } from 'primeng/orderlist';\nimport { CheckboxModule, Checkbox } from 'primeng/checkbox';\nimport { LocalizationService } from '@es.framework/ng.core/services';\n\ntype PopoverColumnDef<T> = ColumnDef<T> & { isSelected?: boolean };\n\n@Component({\n selector: 'lib-column-settings-popover',\n standalone: true,\n imports: [\n FormsModule,\n PopoverModule,\n DividerModule,\n ButtonModule,\n TooltipModule,\n TranslatePipe,\n OrderListModule,\n CheckboxModule,\n Checkbox\n],\n templateUrl: './column-settings-popover.html',\n styleUrls: ['./column-settings-popover.css']\n})\nexport class ColumnSettingsPopoverComponent<T extends { [key: string]: any }> implements OnInit, OnChanges {\n @ViewChild('op') op: any;\n\n @Input() fixedColumns: ColumnDef<T>[] = [];\n @Input() toggleableColumns: ColumnDef<T>[] = [];\n\n // تم إزالة @Input() tableId لأنه لن يستخدم هنا للحفظ\n @Input() tableId = 'defaultTable';\n\n\n _displayOrderListColumns: PopoverColumnDef<T>[] = [];\n private _selectedToggleableColumns: ColumnDef<T>[] = [];\n\n @Input()\n get selectedToggleableColumns(): ColumnDef<T>[] {\n return this._selectedToggleableColumns;\n }\n set selectedToggleableColumns(val: ColumnDef<T>[]) {\n if (!this.areColumnsEqual(this._selectedToggleableColumns, val)) {\n this._selectedToggleableColumns = val;\n this.syncDisplayColumnsWithSelectedInput();\n }\n }\n\n @Output() selectedToggleableColumnsChange = new EventEmitter<ColumnDef<T>[]>();\n\n // تم إزالة @Output() columnRemoved و @Output() popoverHidden لأن selectedToggleableColumnsChange يغني عنهما\n\n constructor(private translate: LocalizationService) {}\n\n ngOnInit(): void {\n console.log('ColumnSettingsPopoverComponent: ngOnInit called.');\n // في ngOnInit، نقوم فقط بتهيئة الأعمدة للعرض بناءً على المدخلات\n this.initializeDisplayColumns();\n this.syncDisplayColumnsWithSelectedInput();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n // عند تغير toggleableColumns، نعيد تهيئة القائمة للعرض\n if (changes['toggleableColumns']) {\n console.log('ColumnSettingsPopoverComponent: toggleableColumns input changed.');\n this.initializeDisplayColumns();\n }\n // عند تغير selectedToggleableColumns من المكون الأب، نقوم بمزامنة حالتها\n if (changes['selectedToggleableColumns']) {\n console.log('ColumnSettingsPopoverComponent: selectedToggleableColumns input changed (from parent).');\n this.syncDisplayColumnsWithSelectedInput();\n }\n }\n // ⭐ Getter/Setter لمربع الاختيار \"تحديد الكل\" ⭐\n get allColumnsSelected(): boolean {\n if (!this._displayOrderListColumns || this._displayOrderListColumns.length === 0) {\n return false;\n }\n return this._displayOrderListColumns.every(col => col.isSelected);\n }\n\n set allColumnsSelected(value: boolean) {\n this._displayOrderListColumns.forEach(col => col.isSelected = value);\n this.emitCurrentSelection();\n }\n\n // ⭐ دالة لتهيئة _displayOrderListColumns من toggleableColumns ⭐\n private initializeDisplayColumns(): void {\n this._displayOrderListColumns = this.toggleableColumns.map(col => ({\n ...col,\n isSelected: false // نترك isSelected كـ false مؤقتاً\n }));\n }\n\n // دالة لمزامنة حالة العرض مع الأعمدة المحددة من المكون الأب\n private syncDisplayColumnsWithSelectedInput(): void {\n if (!this._displayOrderListColumns || this._displayOrderListColumns.length === 0) {\n return;\n }\n\n const selectedFieldsSet = new Set(this._selectedToggleableColumns.map(col => col.field));\n\n // تحديث خاصية isSelected بناءً على selectedFieldsSet\n this._displayOrderListColumns.forEach(col => {\n col.isSelected = selectedFieldsSet.has(col.field);\n });\n\n // إعادة ترتيب القائمة لتكون الأعمدة المحددة في الأعلى\n const orderedSelected = this._displayOrderListColumns\n .filter(col => selectedFieldsSet.has(col.field))\n .sort((a, b) => {\n return Array.from(selectedFieldsSet).indexOf(a.field) - Array.from(selectedFieldsSet).indexOf(b.field);\n });\n\n const orderedUnselected = this._displayOrderListColumns.filter(col => !selectedFieldsSet.has(col.field));\n\n this._displayOrderListColumns = [...orderedSelected, ...orderedUnselected];\n console.log('ColumnSettingsPopoverComponent: _displayOrderListColumns synced with selectedToggleableColumns input:', this._displayOrderListColumns);\n }\n\n toggle(event: Event): void {\n this.op.toggle(event);\n }\n\n hide(): void {\n this.op.hide();\n }\n\n // عند تغيير حالة أي مربع اختيار\n onColumnVisibilityChange(column: PopoverColumnDef<T>): void {\n this.emitCurrentSelection();\n }\n\n // عند إعادة ترتيب القائمة\n onOrderListReorder(event: any): void {\n this.emitCurrentSelection();\n }\n\n // دالة لإرسال التغييرات إلى المكون الأب\n private emitCurrentSelection(): void {\n const currentSelected = this._displayOrderListColumns\n .filter(col => col.isSelected)\n .map(col => {\n const { isSelected, ...rest } = col;\n return rest as ColumnDef<T>;\n });\n\n this.selectedToggleableColumnsChange.emit(currentSelected);\n }\n\n private areColumnsEqual(cols1: ColumnDef<T>[], cols2: ColumnDef<T>[]): boolean {\n if (cols1.length !== cols2.length) {\n return false;\n }\n // التحقق من أن العناصر هي نفسها وبنفس الترتيب\n for (let i = 0; i < cols1.length; i++) {\n if (cols1[i].field !== cols2[i].field) {\n return false;\n }\n }\n return true;\n }\n}\n","<p-popover #op appendTo=\"body\" styleClass=\"w-80\">\n\n\n\n\n <!-- ⭐ مربع اختيار \"تحديد الكل\" ⭐ -->\n <div class=\"flex items-center mb-3\">\n <p-checkbox\n [(ngModel)]=\"allColumnsSelected\"\n [binary]=\"true\"\n inputId=\"selectAllColumns\"\n ></p-checkbox>\n <label for=\"selectAllColumns\" class=\"ml-2 cursor-pointer font-medium text-color-secondary\">\n {{ 'COMMON.SELECT_ALL' | translate }}\n </label>\n </div>\n\n <p-orderList\n [value]=\"_displayOrderListColumns\"\n header=\"{{ 'COMMON.REORDER_AND_SELECT_COLUMNS' | translate }}\"\n [listStyle]=\"{'height':'250px'}\"\n [responsive]=\"true\"\n [dragdrop]=\"true\"\n (onReorder)=\"onOrderListReorder($event)\"\n styleClass=\"w-full\"\n >\n <ng-template let-col pTemplate=\"item\">\n <div class=\"p-2 border rounded-md flex items-center justify-between w-full\">\n <!-- مربع اختيار للتحكم في الرؤية -->\n <p-checkbox\n [(ngModel)]=\"col.isSelected\"\n (ngModelChange)=\"onColumnVisibilityChange(col)\"\n [binary]=\"true\"\n class=\"mr-4\"\n ></p-checkbox>\n <span class=\"flex-grow\">{{ col.header | translate }}</span>\n <i class=\"pi pi-bars text-surface-400 cursor-grab\"></i> <!-- أيقونة السحب -->\n </div>\n </ng-template>\n </p-orderList>\n\n\n</p-popover>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}