@elite.framework/ng.core 1.0.65 → 2.0.2

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 (148) hide show
  1. package/README.md +2 -22
  2. package/directives/README.md +3 -0
  3. package/fesm2022/{elite.framework-ng.core-src-lib-directives.mjs → elite.framework-ng.core-directives.mjs} +7 -7
  4. package/fesm2022/elite.framework-ng.core-directives.mjs.map +1 -0
  5. package/fesm2022/elite.framework-ng.core-models.mjs +47 -0
  6. package/fesm2022/elite.framework-ng.core-models.mjs.map +1 -0
  7. package/fesm2022/{elite.framework-ng.core-src-lib-pipes.mjs → elite.framework-ng.core-pipes.mjs} +7 -7
  8. package/fesm2022/elite.framework-ng.core-pipes.mjs.map +1 -0
  9. package/fesm2022/elite.framework-ng.core-providers.mjs +26 -0
  10. package/fesm2022/elite.framework-ng.core-providers.mjs.map +1 -0
  11. package/fesm2022/elite.framework-ng.core-services.mjs +509 -0
  12. package/fesm2022/elite.framework-ng.core-services.mjs.map +1 -0
  13. package/fesm2022/elite.framework-ng.core-tokens.mjs +20 -0
  14. package/fesm2022/elite.framework-ng.core-tokens.mjs.map +1 -0
  15. package/fesm2022/elite.framework-ng.core.mjs +7 -2239
  16. package/fesm2022/elite.framework-ng.core.mjs.map +1 -1
  17. package/index.d.ts +4 -648
  18. package/models/README.md +3 -0
  19. package/models/index.d.ts +135 -0
  20. package/package.json +26 -170
  21. package/pipes/README.md +3 -0
  22. package/providers/README.md +3 -0
  23. package/providers/index.d.ts +9 -0
  24. package/services/README.md +3 -0
  25. package/services/index.d.ts +250 -0
  26. package/tokens/README.md +3 -0
  27. package/tokens/index.d.ts +18 -0
  28. package/fesm2022/elite.framework-ng.core-src-lib-components-attachments.mjs +0 -204
  29. package/fesm2022/elite.framework-ng.core-src-lib-components-attachments.mjs.map +0 -1
  30. package/fesm2022/elite.framework-ng.core-src-lib-components-breadcrumb.mjs +0 -132
  31. package/fesm2022/elite.framework-ng.core-src-lib-components-breadcrumb.mjs.map +0 -1
  32. package/fesm2022/elite.framework-ng.core-src-lib-components-color-picker.mjs +0 -76
  33. package/fesm2022/elite.framework-ng.core-src-lib-components-color-picker.mjs.map +0 -1
  34. package/fesm2022/elite.framework-ng.core-src-lib-components-column-settings-popover.mjs +0 -172
  35. package/fesm2022/elite.framework-ng.core-src-lib-components-column-settings-popover.mjs.map +0 -1
  36. package/fesm2022/elite.framework-ng.core-src-lib-components-condition-editor.mjs +0 -794
  37. package/fesm2022/elite.framework-ng.core-src-lib-components-condition-editor.mjs.map +0 -1
  38. package/fesm2022/elite.framework-ng.core-src-lib-components-custom-switch.mjs +0 -110
  39. package/fesm2022/elite.framework-ng.core-src-lib-components-custom-switch.mjs.map +0 -1
  40. package/fesm2022/elite.framework-ng.core-src-lib-components-deactivation-reason.mjs +0 -130
  41. package/fesm2022/elite.framework-ng.core-src-lib-components-deactivation-reason.mjs.map +0 -1
  42. package/fesm2022/elite.framework-ng.core-src-lib-components-form-button.mjs +0 -50
  43. package/fesm2022/elite.framework-ng.core-src-lib-components-form-button.mjs.map +0 -1
  44. package/fesm2022/elite.framework-ng.core-src-lib-components-form-field.mjs +0 -154
  45. package/fesm2022/elite.framework-ng.core-src-lib-components-form-field.mjs.map +0 -1
  46. package/fesm2022/elite.framework-ng.core-src-lib-components-form-template.mjs +0 -24
  47. package/fesm2022/elite.framework-ng.core-src-lib-components-form-template.mjs.map +0 -1
  48. package/fesm2022/elite.framework-ng.core-src-lib-components-formly-avatar-image.mjs +0 -100
  49. package/fesm2022/elite.framework-ng.core-src-lib-components-formly-avatar-image.mjs.map +0 -1
  50. package/fesm2022/elite.framework-ng.core-src-lib-components-formly-avatar-label.mjs +0 -78
  51. package/fesm2022/elite.framework-ng.core-src-lib-components-formly-avatar-label.mjs.map +0 -1
  52. package/fesm2022/elite.framework-ng.core-src-lib-components-formly-button-selector.mjs +0 -167
  53. package/fesm2022/elite.framework-ng.core-src-lib-components-formly-button-selector.mjs.map +0 -1
  54. package/fesm2022/elite.framework-ng.core-src-lib-components-formly-button.mjs +0 -62
  55. package/fesm2022/elite.framework-ng.core-src-lib-components-formly-button.mjs.map +0 -1
  56. package/fesm2022/elite.framework-ng.core-src-lib-components-formly-split-button.mjs +0 -50
  57. package/fesm2022/elite.framework-ng.core-src-lib-components-formly-split-button.mjs.map +0 -1
  58. package/fesm2022/elite.framework-ng.core-src-lib-components-formly-username-with-domain.mjs +0 -76
  59. package/fesm2022/elite.framework-ng.core-src-lib-components-formly-username-with-domain.mjs.map +0 -1
  60. package/fesm2022/elite.framework-ng.core-src-lib-components-generic-autocomplete.mjs +0 -163
  61. package/fesm2022/elite.framework-ng.core-src-lib-components-generic-autocomplete.mjs.map +0 -1
  62. package/fesm2022/elite.framework-ng.core-src-lib-components-generic-button.mjs +0 -133
  63. package/fesm2022/elite.framework-ng.core-src-lib-components-generic-button.mjs.map +0 -1
  64. package/fesm2022/elite.framework-ng.core-src-lib-components-generic-card.mjs +0 -214
  65. package/fesm2022/elite.framework-ng.core-src-lib-components-generic-card.mjs.map +0 -1
  66. package/fesm2022/elite.framework-ng.core-src-lib-components-generic-crud-table.mjs +0 -385
  67. package/fesm2022/elite.framework-ng.core-src-lib-components-generic-crud-table.mjs.map +0 -1
  68. package/fesm2022/elite.framework-ng.core-src-lib-components-generic-errormessage.mjs +0 -23
  69. package/fesm2022/elite.framework-ng.core-src-lib-components-generic-errormessage.mjs.map +0 -1
  70. package/fesm2022/elite.framework-ng.core-src-lib-components-generic-formly-fields.mjs +0 -53
  71. package/fesm2022/elite.framework-ng.core-src-lib-components-generic-formly-fields.mjs.map +0 -1
  72. package/fesm2022/elite.framework-ng.core-src-lib-components-generic-loadingspinner.mjs +0 -23
  73. package/fesm2022/elite.framework-ng.core-src-lib-components-generic-loadingspinner.mjs.map +0 -1
  74. package/fesm2022/elite.framework-ng.core-src-lib-components-generic-search.mjs +0 -85
  75. package/fesm2022/elite.framework-ng.core-src-lib-components-generic-search.mjs.map +0 -1
  76. package/fesm2022/elite.framework-ng.core-src-lib-components-generic-selector.mjs +0 -430
  77. package/fesm2022/elite.framework-ng.core-src-lib-components-generic-selector.mjs.map +0 -1
  78. package/fesm2022/elite.framework-ng.core-src-lib-components-generic-table.mjs +0 -216
  79. package/fesm2022/elite.framework-ng.core-src-lib-components-generic-table.mjs.map +0 -1
  80. package/fesm2022/elite.framework-ng.core-src-lib-components-header-wrapper.mjs +0 -18
  81. package/fesm2022/elite.framework-ng.core-src-lib-components-header-wrapper.mjs.map +0 -1
  82. package/fesm2022/elite.framework-ng.core-src-lib-components-icon-picker.mjs +0 -195
  83. package/fesm2022/elite.framework-ng.core-src-lib-components-icon-picker.mjs.map +0 -1
  84. package/fesm2022/elite.framework-ng.core-src-lib-components-input-switch.mjs +0 -94
  85. package/fesm2022/elite.framework-ng.core-src-lib-components-input-switch.mjs.map +0 -1
  86. package/fesm2022/elite.framework-ng.core-src-lib-components-input-with-icon.mjs +0 -55
  87. package/fesm2022/elite.framework-ng.core-src-lib-components-input-with-icon.mjs.map +0 -1
  88. package/fesm2022/elite.framework-ng.core-src-lib-components-label-type.mjs +0 -112
  89. package/fesm2022/elite.framework-ng.core-src-lib-components-label-type.mjs.map +0 -1
  90. package/fesm2022/elite.framework-ng.core-src-lib-components-odata-query-builder.mjs +0 -297
  91. package/fesm2022/elite.framework-ng.core-src-lib-components-odata-query-builder.mjs.map +0 -1
  92. package/fesm2022/elite.framework-ng.core-src-lib-components-repeat.mjs +0 -135
  93. package/fesm2022/elite.framework-ng.core-src-lib-components-repeat.mjs.map +0 -1
  94. package/fesm2022/elite.framework-ng.core-src-lib-components-sidebar-cards.mjs +0 -40
  95. package/fesm2022/elite.framework-ng.core-src-lib-components-sidebar-cards.mjs.map +0 -1
  96. package/fesm2022/elite.framework-ng.core-src-lib-components-sidebar-toggles.mjs +0 -41
  97. package/fesm2022/elite.framework-ng.core-src-lib-components-sidebar-toggles.mjs.map +0 -1
  98. package/fesm2022/elite.framework-ng.core-src-lib-components-tabs.mjs +0 -45
  99. package/fesm2022/elite.framework-ng.core-src-lib-components-tabs.mjs.map +0 -1
  100. package/fesm2022/elite.framework-ng.core-src-lib-components-tag-type.mjs +0 -192
  101. package/fesm2022/elite.framework-ng.core-src-lib-components-tag-type.mjs.map +0 -1
  102. package/fesm2022/elite.framework-ng.core-src-lib-components-text-editor.mjs +0 -44
  103. package/fesm2022/elite.framework-ng.core-src-lib-components-text-editor.mjs.map +0 -1
  104. package/fesm2022/elite.framework-ng.core-src-lib-components-wrappers.mjs +0 -174
  105. package/fesm2022/elite.framework-ng.core-src-lib-components-wrappers.mjs.map +0 -1
  106. package/fesm2022/elite.framework-ng.core-src-lib-directives.mjs.map +0 -1
  107. package/fesm2022/elite.framework-ng.core-src-lib-pipes.mjs.map +0 -1
  108. package/src/lib/components/attachments/index.d.ts +0 -31
  109. package/src/lib/components/breadcrumb/index.d.ts +0 -10
  110. package/src/lib/components/color-picker/index.d.ts +0 -9
  111. package/src/lib/components/column-settings-popover/index.d.ts +0 -39
  112. package/src/lib/components/condition-editor/index.d.ts +0 -73
  113. package/src/lib/components/custom-switch/index.d.ts +0 -12
  114. package/src/lib/components/deactivation-reason/index.d.ts +0 -24
  115. package/src/lib/components/form-button/index.d.ts +0 -10
  116. package/src/lib/components/form-field/index.d.ts +0 -30
  117. package/src/lib/components/form-template/index.d.ts +0 -9
  118. package/src/lib/components/formly-avatar-image/index.d.ts +0 -11
  119. package/src/lib/components/formly-avatar-label/index.d.ts +0 -29
  120. package/src/lib/components/formly-button/index.d.ts +0 -13
  121. package/src/lib/components/formly-button-selector/index.d.ts +0 -28
  122. package/src/lib/components/formly-split-button/index.d.ts +0 -16
  123. package/src/lib/components/formly-username-with-domain/index.d.ts +0 -12
  124. package/src/lib/components/generic-autocomplete/index.d.ts +0 -34
  125. package/src/lib/components/generic-button/index.d.ts +0 -35
  126. package/src/lib/components/generic-card/index.d.ts +0 -90
  127. package/src/lib/components/generic-crud-table/index.d.ts +0 -120
  128. package/src/lib/components/generic-errormessage/index.d.ts +0 -10
  129. package/src/lib/components/generic-formly-fields/index.d.ts +0 -22
  130. package/src/lib/components/generic-loadingspinner/index.d.ts +0 -9
  131. package/src/lib/components/generic-search/index.d.ts +0 -29
  132. package/src/lib/components/generic-selector/index.d.ts +0 -66
  133. package/src/lib/components/generic-table/index.d.ts +0 -60
  134. package/src/lib/components/header-wrapper/index.d.ts +0 -8
  135. package/src/lib/components/icon-picker/index.d.ts +0 -23
  136. package/src/lib/components/input-switch/index.d.ts +0 -9
  137. package/src/lib/components/input-with-icon/index.d.ts +0 -10
  138. package/src/lib/components/label-type/index.d.ts +0 -19
  139. package/src/lib/components/odata-query-builder/index.d.ts +0 -81
  140. package/src/lib/components/repeat/index.d.ts +0 -17
  141. package/src/lib/components/sidebar-cards/index.d.ts +0 -18
  142. package/src/lib/components/sidebar-toggles/index.d.ts +0 -18
  143. package/src/lib/components/tabs/index.d.ts +0 -10
  144. package/src/lib/components/tag-type/index.d.ts +0 -27
  145. package/src/lib/components/text-editor/index.d.ts +0 -9
  146. package/src/lib/components/wrappers/index.d.ts +0 -24
  147. /package/{src/lib/directives → directives}/index.d.ts +0 -0
  148. /package/{src/lib/pipes → pipes}/index.d.ts +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"file":"elite.framework-ng.core-src-lib-components-condition-editor.mjs","sources":["../../../projects/core/src/lib/components/condition-editor/suggestions.ts","../../../projects/core/src/lib/components/condition-editor/condition-editor-type.ts","../../../projects/core/src/lib/components/condition-editor/elite.framework-ng.core-src-lib-components-condition-editor.ts"],"sourcesContent":["export interface Suggestion {\r\n id?: number;\r\n name?: string;\r\n label: string;\r\n value: string;\r\n detail?: string;\r\n documentation?: string;\r\n kind?: string;\r\n category?: string;\r\n}\r\nexport const suggestions: Suggestion[] = [\r\n {\r\n label: \"عدد دقائق التأخير\",\r\n value: \"AttendanceDelayMinutes\",\r\n kind: \"Field\",\r\n detail: \"عدد دقائق التأخير\",\r\n documentation: \"**AttendanceDelayMinutes**\\nعدد الدقائق التي تأخر بها الموظف عن بدء الورديّة.\"\r\n },\r\n {\r\n label: \"دقائق الانصراف المبكر\",\r\n value: \"EarlyLeaveMinutes\",\r\n kind: \"Field\",\r\n detail: \"دقائق الانصراف المبكر\",\r\n documentation: \"**EarlyLeaveMinutes**\\nعدد الدقائق التي سجل بها الموظف انسحابًا مبكرًا عن الورديّة.\"\r\n },\r\n {\r\n label: \"سعر الساعة\",\r\n value: \"HourlyRate\",\r\n kind: \"Field\",\r\n detail: \"سعر الساعة\",\r\n documentation: \"**HourlyRate**\\nتكلفة الساعة المستخرجة من الراتب الأساسي وساعات العمل المتوقعة.\"\r\n },\r\n {\r\n label: \"قيمة اليوم المتوقعة\",\r\n value: \"ScheduledDayValue\",\r\n kind: \"Field\",\r\n detail: \"قيمة اليوم المتوقعة\",\r\n documentation: \"**ScheduledDayValue**\\nقيمة اليوم المحسوبة بناءً على السعر بالساعة وساعات الورديّة المتوقعة.\"\r\n },\r\n {\r\n label: \"قيمة اليوم الفعلية\",\r\n value: \"ActualDayValue\",\r\n kind: \"Field\",\r\n detail: \"قيمة اليوم الفعلية\",\r\n documentation: \"**ActualDayValue**\\nقيمة اليوم المحسوبة بناءً على السعر بالساعة وساعات العمل الفعليّة.\"\r\n },\r\n {\r\n label: \"عدد أيام العمل\",\r\n value: \"WorkingDays\",\r\n kind: \"Field\",\r\n detail: \"عدد أيام العمل\",\r\n documentation: \"**WorkingDays**\\nعدد الأيام في دفتر الحضور.\"\r\n },\r\n {\r\n label: \"الراتب الأساسي\",\r\n value: \"BasicSalary\",\r\n kind: \"Field\",\r\n detail: \"بند الراتب الأساسي\",\r\n documentation: \"**BasicSalary**\\n بند الراتب الأساسي.\"\r\n },\r\n // Employee fields\r\n {\r\n label: \"رمز الموظف\",\r\n value: \"Employee.Code\",\r\n kind: \"Field\",\r\n detail: \"رمز الموظف\",\r\n documentation: \"**Employee.Code**\\nالرمز الفريد المعطى للموظف في النظام.\"\r\n },\r\n {\r\n label: \"الاسم الكامل\",\r\n value: \"Employee.FullName\",\r\n kind: \"Field\",\r\n detail: \"الاسم الكامل للموظف\",\r\n documentation: \"**Employee.FullName**\\nالاسم الأول واسم العائلة للموظف.\"\r\n },\r\n {\r\n label: \"نوع الموظف\",\r\n value: \"Employee.Type\",\r\n kind: \"Field\",\r\n detail: \"نوع الموظف\",\r\n documentation: \"**Employee.Type**\\nنوع الموظف (دوام كامل، مؤقت، الخ).\"\r\n },\r\n\r\n // Shift fields\r\n {\r\n label: \"اسم الورديّة\",\r\n value: \"Shift.Name\",\r\n kind: \"Field\",\r\n detail: \"اسم الورديّة\",\r\n documentation: \"**Shift.Name**\\nالاسم المعطى للورديّة (صباحية، مسائية).\"\r\n },\r\n {\r\n label: \"بداية الورديّة\",\r\n value: \"Shift.StartTime\",\r\n kind: \"Field\",\r\n detail: \"بداية الورديّة\",\r\n documentation: \"**Shift.StartTime**\\nوقت بدء الورديّة.\"\r\n },\r\n {\r\n label: \"نهاية الورديّة\",\r\n value: \"Shift.EndTime\",\r\n kind: \"Field\",\r\n detail: \"نهاية الورديّة\",\r\n documentation: \"**Shift.EndTime**\\nوقت نهاية الورديّة.\"\r\n },\r\n {\r\n label: \"رمز نوع الورديّة\",\r\n value: \"Shift.TypeKey\",\r\n kind: \"Field\",\r\n detail: \"رمز نوع الورديّة\",\r\n documentation: \"**Shift.TypeKey**\\nالمفتاح البرمجي لنوع الورديّة.\"\r\n },\r\n\r\n // AttendanceSheet fields\r\n {\r\n label: \"من تاريخ\",\r\n value: \"Sheet.DateFrom\",\r\n kind: \"Field\",\r\n detail: \"تاريخ بداية الدفتر\",\r\n documentation: \"**Sheet.DateFrom**\\nأول يوم في دفتر الحضور (اليوم الأول للشهر).\"\r\n },\r\n {\r\n label: \"إلى تاريخ\",\r\n value: \"Sheet.DateTo\",\r\n kind: \"Field\",\r\n detail: \"تاريخ نهاية الدفتر\",\r\n documentation: \"**Sheet.DateTo**\\nآخر يوم في دفتر الحضور (اليوم الأخير للشهر).\"\r\n },\r\n {\r\n label: \"عدد أيام الحضور\",\r\n value: \"Sheet.PresentDays\",\r\n kind: \"Field\",\r\n detail: \"عدد أيام الحضور\",\r\n documentation: \"**Sheet.PresentDays**\\nعدد الأيام التي سجل فيها الموظف دخول وخروج.\"\r\n },\r\n\r\n // AttendanceDay fields\r\n {\r\n label: \"تاريخ اليوم\",\r\n value: \"Day.Date\",\r\n kind: \"Field\",\r\n detail: \"تاريخ يوم الحضور\",\r\n documentation: \"**Day.Date**\\nالتاريخ الفعلي ليوم الحضور.\"\r\n },\r\n {\r\n label: \"تسجيل دخول\",\r\n value: \"Day.SignIn\",\r\n kind: \"Field\",\r\n detail: \"وقت تسجيل دخول الموظف\",\r\n documentation: \"**Day.SignIn**\\nالطابع الزمني لتسجيل دخول الموظف.\"\r\n },\r\n {\r\n label: \"تسجيل خروج\",\r\n value: \"Day.SignOut\",\r\n kind: \"Field\",\r\n detail: \"وقت تسجيل خروج الموظف\",\r\n documentation: \"**Day.SignOut**\\nالطابع الزمني لتسجيل خروج الموظف.\"\r\n },\r\n\r\n // LeavePolicy fields\r\n {\r\n label: \"اسم سياسة الإجازة\",\r\n value: \"LeavePolicy.Name\",\r\n kind: \"Field\",\r\n detail: \"اسم سياسة الإجازة\",\r\n documentation: \"**LeavePolicy.Name**\\nالاسم المعطى لسياسة الإجازة.\"\r\n },\r\n {\r\n label: \"رمز الحالة\",\r\n value: \"LeavePolicy.StatusKey\",\r\n kind: \"Field\",\r\n detail: \"رمز حالة السياسة\",\r\n documentation: \"**LeavePolicy.StatusKey**\\nالمفتاح البرمجي لحالة سياسة الإجازة.\"\r\n },\r\n {\r\n label: \"حالة السياسة\",\r\n value: \"LeavePolicy.Status\",\r\n kind: \"Field\",\r\n detail: \"حالة السياسة\",\r\n documentation: \"**LeavePolicy.Status**\\nالوصف الكامل لحالة سياسة الإجازة.\"\r\n },\r\n\r\n // Leave fields\r\n {\r\n label: \"بداية الإجازة\",\r\n value: \"Leave.DateStart\",\r\n kind: \"Field\",\r\n detail: \"بداية الإجازة\",\r\n documentation: \"**Leave.DateStart**\\nاليوم الأول للإجازة.\"\r\n },\r\n {\r\n label: \"نهاية الإجازة\",\r\n value: \"Leave.DateEnd\",\r\n kind: \"Field\",\r\n detail: \"نهاية الإجازة\",\r\n documentation: \"**Leave.DateEnd**\\nاليوم الأخير للإجازة.\"\r\n },\r\n\r\n // SalaryTemplate fields\r\n // {\r\n // label: \"بنود الأرباح\",\r\n // value: \"template.Earnings\",\r\n // kind: \"Field\",\r\n // detail: \"قائمة بنود الأرباح\",\r\n // documentation: \"**SalaryTemplate.Earnings**\\nقائمة العناصر التي تمثل مستحقات (أرباح) القالب.\"\r\n // },\r\n // {\r\n // label: \"بنود الاستقطاعات\",\r\n // value: \"template.Deductions\",\r\n // kind: \"Field\",\r\n // detail: \"قائمة بنود الاستقطاعات\",\r\n // documentation: \"**SalaryTemplate.Deductions**\\nقائمة العناصر التي تمثل استقطاعات القالب.\"\r\n // },\r\n\r\n // // SalaryTemplateItem fields\r\n // {\r\n // label: \"المبلغ الثابت للبند\",\r\n // value: \"item.Amount\",\r\n // kind: \"Field\",\r\n // detail: \"المبلغ الثابت للبند\",\r\n // documentation: \"**SalaryTemplateItem.Amount**\\nالقيمة الثابتة المخصصة لهذا البند.\"\r\n // },\r\n // {\r\n // label: \"صيغة البند\",\r\n // value: \"item.Formula\",\r\n // kind: \"Field\",\r\n // detail: \"الصيغة الحسابية للبند\",\r\n // documentation: \"**SalaryTemplateItem.Formula**\\nالصيغة البرمجية لتعريف قيمة البند عند SalaryValueType = Formula.\"\r\n // },\r\n\r\n { label: '(Leave) Total Leaves Taken', value: 'GetLeaveTaken(leaveId)', detail: 'إجمالي الإجازات المأخوذة' },\r\n { label: '(Leave) Total Leaves Taken Before', value: 'GetLeaveTakenBefore(leaveId)', detail: 'إجمالي الإجازات المأخوذة قبل' },\r\n { label: '(Leave) Total Leaves After', value: 'GetLeaveTakenAfter(leaveId)', detail: 'إجمالي الإجازات المأخوذة بعد' },\r\n { label: '(Leave) Leaves Credit Before', value: 'GetLeaveCreditBefore(leaveId)', detail: 'رصيد الإجازات قبل' },\r\n { label: '(Leave) Leaves Credit After', value: 'GetLeaveCreditAfter(leaveId)', detail: 'رصيد الإجازات بعد' },\r\n\r\n\r\n\r\n { label: 'عدد مرات تحقق القاعدة', value: 'GetFlagCount(ruleId)', detail: 'عدد مرات تحقق القاعدة خلال الفترة' },\r\n { label: 'إجمالي قيمة القاعدة', value: 'GetFlagValue(ruleId)', detail: 'القيمة الإجمالية للقاعدة' },\r\n { label: 'أكبر من', value: '>', detail: 'القيمة الأولى أكبر من الثانية' },\r\n { label: 'أكبر من أو يساوي', value: '>=', detail: 'القيمة الأولى أكبر من أو تساوي الثانية' },\r\n { label: 'أصغر من', value: '<', detail: 'القيمة الأولى أصغر من الثانية' },\r\n { label: 'أصغر من أو يساوي', value: '<=', detail: 'القيمة الأولى أصغر من أو تساوي الثانية' },\r\n { label: 'يساوي', value: '==', detail: 'القيمتان متساويتان' },\r\n { label: 'لا يساوي', value: '!=', detail: 'القيمتان غير متساويتان' },\r\n { label: 'و (AND)', value: '&&', detail: 'تتحقق إذا كان الشرطان صحيحين' },\r\n { label: 'أو (OR)', value: '||', detail: 'تتحقق إذا كان أحد الشرطين صحيحاً' },\r\n { label: 'صحيح', value: 'true', detail: 'القيمة صحيحة' },\r\n { label: 'خطأ', value: 'false', detail: 'القيمة خاطئة' }\r\n ];\r\n","import { Chip} from 'primeng/chip';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { ChangeDetectorRef, Component, ViewChild } from '@angular/core';\r\nimport { FieldType } from '@ngx-formly/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { AutoCompleteModule } from 'primeng/autocomplete';\r\nimport { ButtonModule } from 'primeng/button';\r\nimport { InputTextModule } from 'primeng/inputtext';\r\nimport { DialogModule } from 'primeng/dialog';\r\nimport { Popover, PopoverModule } from 'primeng/popover';\r\nimport { Suggestion, suggestions } from './suggestions';\r\nimport { finalize, firstValueFrom, Subscription } from 'rxjs';\r\nimport { BaseService } from '@elite.framework/ng.core';\r\n\r\n\r\n\r\n@Component({\r\n selector: 'condition-expression-builder',\r\n standalone: true,\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n AutoCompleteModule,\r\n Chip,\r\n ButtonModule,\r\n InputTextModule,\r\n DialogModule,\r\n PopoverModule,\r\n TranslateModule\r\n ],\r\n providers: [BaseService],\r\n template: `\r\n <div class=\"flex flex-col gap-3\">\r\n\r\n <!-- TABLE MODE -->\r\n @if (displayMode === 'table') {\r\n<div class=\"flex gap-2\">\r\n <div class=\"flex flex-wrap flex-1 gap-1\">\r\n <div class=\"border rounded-md p-2 bg-gray-50 flex flex-wrap gap-2 min-h-[40px] items-center\">\r\n\r\n\r\n @for (token of tokens; track $index) {\r\n <span class=\"px-2 py-1 rounded bg-blue-100 text-blue-800 flex items-center gap-1\">\r\n {{ token.label | translate }}\r\n </span>\r\n}\r\n</div>\r\n </div>\r\n <button type=\"button\" pButton icon=\"pi pi-pencil\" label=\"\"\r\n class=\"p-button-sm\"\r\n (click)=\"displayEditDialog = true\"></button>\r\n </div>\r\n\r\n <!-- Dialog with full editor inside -->\r\n <p-dialog [(visible)]=\"displayEditDialog\" [modal]=\"false\" [style]=\"{width: '700px'}\">\r\n\r\n <ng-template pTemplate=\"header\">\r\n {{ editDialogTitle | translate }}\r\n </ng-template>\r\n\r\n<div class=\"p-4 space-y-4\">\r\n <ng-container *ngTemplateOutlet=\"fullEditorTpl\"></ng-container>\r\n</div>\r\n\r\n </p-dialog>\r\n }\r\n @else{\r\n <ng-container *ngTemplateOutlet=\"fullEditorTpl\"></ng-container>\r\n }\r\n\r\n\r\n <!-- FULL MODE -->\r\n <ng-template #fullEditorTpl>\r\n <!-- Your existing full UI layout here -->\r\n <div class=\"flex flex-col gap-3\">\r\n\r\n <!-- Expression preview -->\r\n <div class=\"border rounded-md p-2 bg-gray-50 flex flex-wrap gap-2 min-h-[40px] items-center\">\r\n @for (token of tokens; track $index) {\r\n <span class=\"px-2 py-1 rounded bg-blue-100 text-blue-800 flex items-center gap-1\">\r\n {{ token.label | translate }}\r\n <button type=\"button\" pButton icon=\"pi pi-times\"\r\n class=\"p-button-rounded p-button-text p-button-sm\"\r\n (click)=\"removeToken($index)\">\r\n </button>\r\n </span>\r\n}\r\n </div>\r\n\r\n <!-- Autocomplete for suggestions -->\r\n <p-autoComplete\r\n [(ngModel)]=\"selectedSuggestion\"\r\n field=\"label\"\r\n [suggestions]=\"filteredSuggestions\"\r\n (completeMethod)=\"filterSuggestions($event)\"\r\n (onSelect)=\"onSuggestionSelected($event)\"\r\n placeholder=\"اكتب للبحث عن الحقول أو العمليات أو الدوال...\"\r\n [forceSelection]=\"false\"\r\n [dropdown]=\"true\"\r\n dropdownMode=\"current\"\r\n appendTo=\"body\"\r\n class=\"w-full\"\r\n >\r\n <ng-template let-suggestion pTemplate=\"item\">\r\n <div>\r\n <strong>{{ suggestion.label | translate}}</strong>\r\n <small class=\"block text-gray-500\">{{ suggestion.detail| translate }}</small>\r\n </div>\r\n </ng-template>\r\n </p-autoComplete>\r\n\r\n <!-- Add custom value -->\r\n <div class=\"flex gap-2\">\r\n <input pInputText type=\"text\" [(ngModel)]=\"customValue\" placeholder=\"أدخل قيمة ثابتة...\" class=\"flex-1\">\r\n <button pButton label=\"إضافة\" icon=\"pi pi-plus\" (click)=\"addCustomToken()\" class=\"p-button-sm\" type=\"button\"></button>\r\n </div>\r\n\r\n <!-- Parameter input dialog -->\r\n <p-dialog [(visible)]=\"displayDialog\" [modal]=\"false\" [closable]=\"false\" [style]=\"{width: '400px'}\">\r\n <ng-template pTemplate=\"header\">\r\n {{ (dialogMode === 'rule' ? 'اختر القاعدة' : 'اختر الإجازة') | translate }}\r\n </ng-template>\r\n\r\n <div class=\"p-4 space-y-4\">\r\n <p-autoComplete\r\n #autoComp\r\n [(ngModel)]=\"dialogSelectedRule\"\r\n field=\"name\"\r\n optionLabel=\"name\"\r\n [suggestions]=\"filteredRuleSuggestions\"\r\n (completeMethod)=\"search($event)\"\r\n (onSelect)=\"onSuggestionRule($event)\"\r\n placeholder=\"{{ dialogMode === 'rule' ? 'ابحث عن قاعدة' : 'ابحث عن إجازة' }}\"\r\n [forceSelection]=\"true\"\r\n [dropdown]=\"true\"\r\n dropdownMode=\"current\"\r\n appendTo=\"body\"\r\n class=\"w-full rounded-none\"\r\n >\r\n <ng-template let-suggestion pTemplate=\"item\">\r\n <div>\r\n <strong>{{ suggestion.name | translate}}</strong>\r\n <small class=\"block text-gray-500\">{{ suggestion.description | translate}}</small>\r\n </div>\r\n </ng-template>\r\n </p-autoComplete>\r\n </div>\r\n\r\n <p-footer class=\"flex justify-end gap-2\">\r\n <button type=\"button\" pButton label=\"إلغاء\" icon=\"pi pi-times\" class=\"p-button-text\" severity=\"danger\" (click)=\"cancelDialog()\"></button>\r\n <button type=\"button\" pButton label=\"موافق\" icon=\"pi pi-check\" (click)=\"confirmDialog()\" [disabled]=\"!dialogSelectedRule\"></button>\r\n </p-footer>\r\n </p-dialog>\r\n </div>\r\n </ng-template>\r\n </div>\r\n `\r\n})\r\nexport class ConditionExpressionBuilderType extends FieldType {\r\n // @ViewChild('paramOverlay') paramOverlay!: OverlayPanel;\r\n @ViewChild('autoComp') autoComp!: any;\r\n @ViewChild('op') op!: Popover;\r\n tokens: { label: string, value: string }[] = [];\r\n selectedSuggestion: any;\r\n customValue: string = '';\r\n filteredSuggestions: Suggestion[] = [];\r\n\r\n // Dialog state\r\n displayDialog = false;\r\n dialogSelectedRule: Suggestion | any = null;\r\n pendingSuggestion: Suggestion | any = null;\r\n filteredRuleSuggestions: Suggestion[] = [];\r\n\r\n suggestions = suggestions;\r\n loading: boolean = false;\r\napi: BaseService|any;\r\n dialogMode: string = '';\r\n\r\n displayMode: 'table' | 'full' = 'full';\r\n editDialogTitle = 'Edit Expression';\r\n\r\ndisplayEditDialog = false;\r\n/**\r\n *\r\n */\r\nprivate valueChangeSubscription!: Subscription;\r\nconstructor(private svc: BaseService,private cdr: ChangeDetectorRef) {\r\n super();\r\n\r\n}\r\n ngOnInit() {\r\n this.api = this.svc;\r\n const to = this.props;\r\n this.api.apiName = to['serviceName'];\r\n\r\n this.displayMode = to['displayMode'] ?? 'full';\r\n\r\n this.initTokens();\r\n\r\n this.valueChangeSubscription = this.formControl.valueChanges\r\n .subscribe(() => {\r\n this.initTokens();\r\n\r\n });\r\n}\r\n\r\n ngOnDestroy() {\r\n if (this.valueChangeSubscription) {\r\n this.valueChangeSubscription.unsubscribe();\r\n }\r\n }\r\n initTokens(){\r\n const existing = this.formControl.value || '';\r\n if (existing) {\r\n const tokens = existing.split(' ').filter((x: any) => x);\r\n Promise.all(\r\n tokens.map(async (v: string) => ({\r\n value: v,\r\n label: await this.getLabelForValue(v)\r\n }))\r\n ).then(resolvedTokens => {\r\n this.tokens = resolvedTokens;\r\n this.cdr.detectChanges(); // <-- Trigger UI update\r\n });\r\n } else {\r\n this.tokens = [];\r\n }\r\n }\r\nopenDialogForTableMode() {\r\n // You can reuse your dialog logic here\r\n this.displayDialog = true;\r\n this.dialogMode = 'rule'; // or 'leave', depending on your case\r\n}\r\n parseParameterizedToken(value: string): { base: string; param: string } | null {\r\n const match = value.match(/^(\\w+)\\(([^)]+)\\)$/);\r\n if (match) {\r\n return { base: match[1], param: match[2] };\r\n }\r\n return null;\r\n }\r\n\r\n// getLabelForValue(value: string): string {\r\n// const paramToken = this.parseParameterizedToken(value);\r\n\r\n// if (paramToken) {\r\n// // Find a matching suggestion by replacing any parameter placeholder\r\n// const baseSuggestion = this.suggestions.find(\r\n// s =>\r\n// s.value === `${paramToken.base}(ruleId)` ||\r\n// s.value === `${paramToken.base}(leaveId)` ||\r\n// s.value === paramToken.base\r\n// );\r\n\r\n// if (baseSuggestion) {\r\n// // Remove any placeholder text from the label\r\n// const baseLabel = baseSuggestion.label\r\n// .replace(/\\(ruleId\\)/g, '')\r\n// .replace(/\\(leaveId\\)/g, '')\r\n// .trim();\r\n\r\n// return `${baseLabel} (${paramToken.param})`;\r\n// }\r\n// }\r\n\r\n// // Exact match without parameters\r\n// const exact = this.suggestions.find(s => s.value === value);\r\n// if (exact) return exact.label;\r\n\r\n// return value;\r\n// }\r\n\r\n\r\nasync getLabelForValue(value: string): Promise<string> {\r\n const paramToken = this.parseParameterizedToken(value);\r\n\r\n if (paramToken) {\r\n let paramLabel = paramToken.param;\r\n\r\n // Find matching base suggestion early (optional)\r\n const baseSuggestion = this.suggestions.find(\r\n s =>\r\n s.value === `${paramToken.base}(ruleId)` ||\r\n s.value === `${paramToken.base}(leaveId)` ||\r\n s.value === paramToken.base\r\n );\r\n\r\n if (value.includes('(ruleId)') || paramToken.base.toLowerCase().includes('flag')) {\r\n this.api.apiName = this.props['ruleServiceName'];\r\n try {\r\n const res: any = await firstValueFrom(\r\n this.api.get( paramToken.param).pipe()\r\n );\r\n // Assuming API returns { items: [...] } or array directly\r\n // const matchedRule = (res.items ?? res ?? []).find((r: any) => r.id == Number(paramToken.param));\r\n const matchedRule = res;\r\n if (matchedRule) paramLabel = matchedRule.label || matchedRule.name || paramLabel;\r\n } catch {\r\n // ignore errors, fallback to param value\r\n }\r\n }\r\n\r\n if (value.includes('(leaveId)') || paramToken.base.toLowerCase().includes('leave')) {\r\n this.api.apiName = this.props['leaveServiceName'];\r\n try {\r\n const res: any = await firstValueFrom(\r\n this.api.getList(paramToken.param ).pipe()\r\n );\r\n const matchedLeave = res;\r\n if (matchedLeave) paramLabel = matchedLeave.label || matchedLeave.name || paramLabel;\r\n } catch {\r\n // ignore errors\r\n }\r\n }\r\n\r\n if (baseSuggestion) {\r\n const baseLabel = baseSuggestion.label\r\n .replace(/\\(ruleId\\)/g, '')\r\n .replace(/\\(leaveId\\)/g, '')\r\n .trim();\r\n return `${baseLabel} (${paramLabel})`;\r\n }\r\n }\r\n\r\n // fallback exact match in suggestions\r\n const exact = this.suggestions.find(s => s.value === value);\r\n if (exact) return exact.label;\r\n\r\n return value;\r\n}\r\n\r\n\r\n\r\n filterSuggestions(event: any) {\r\n const query = event.query.toLowerCase();\r\n this.filteredSuggestions = this.suggestions.filter(s => {\r\n const paramToken = this.parseParameterizedToken(s.value);\r\n const baseValue = paramToken ? paramToken.base : s.value;\r\n return (\r\n s.label.toLowerCase().includes(query) ||\r\n baseValue.toLowerCase().includes(query) ||\r\n s.value.toLowerCase().includes(query)\r\n );\r\n });\r\n }\r\n\r\n search(event: { query: string }) {\r\n this.api.apiName = this.dialogMode === 'rule'\r\n ? this.props['ruleServiceName'] // existing rules service\r\n : this.props['leaveServiceName']; // new leave service\r\n\r\n const q = event.query?.toString().toLowerCase() || '';\r\n const lf = this.props['labelField'] || 'name';\r\n const fixedFilters = this.props['fixedFilters'] || {};\r\n\r\n this.loading = true;\r\n this.filteredRuleSuggestions = [];\r\n\r\n const searchParams = {\r\n [lf]: q,\r\n ...fixedFilters,\r\n };\r\n\r\n this.api.getList(searchParams)\r\n .pipe(finalize(() => (this.loading = false)))\r\n .subscribe({\r\n next: (res: any) => {\r\n this.filteredRuleSuggestions = res.items ?? res ?? [];\r\n setTimeout(() => this.autoComp?.show(), 0);\r\n },\r\n error: () => {\r\n this.filteredRuleSuggestions = [];\r\n },\r\n });\r\n}\r\n\r\n\r\n onSuggestionRule(event: any) {\r\n const suggestion: Suggestion = event.value;\r\n if (!suggestion) return;\r\n this.dialogSelectedRule = suggestion;\r\n }\r\n async onSuggestionSelected(event: any) {\r\n const suggestion: Suggestion = event.value;\r\n if (!suggestion) return;\r\n\r\n if (suggestion.value.includes('(ruleId)') || suggestion.value.includes('(leaveId)')) {\r\n this.pendingSuggestion = suggestion;\r\n this.dialogSelectedRule = null;\r\n this.displayDialog = true;\r\n\r\n // Detect mode: rule or leave\r\n this.dialogMode = suggestion.value.includes('(ruleId)') ? 'rule' : 'leave';\r\n } else {\r\n this.tokens.push({\r\n value: suggestion.value,\r\n label: await this.getLabelForValue(suggestion.value)\r\n });\r\n this.updateExpression();\r\n }\r\n this.selectedSuggestion = '';\r\n}\r\n\r\n\r\n\r\n async confirmDialog() {\r\n if (!this.pendingSuggestion || !this.dialogSelectedRule) return;\r\n\r\n const paramValue = this.dialogSelectedRule.id\r\n || this.dialogSelectedRule.value\r\n || this.dialogSelectedRule.label;\r\n\r\n const placeholder = this.dialogMode === 'rule' ? '(ruleId)' : '(leaveId)';\r\n const newValue = this.pendingSuggestion.value.replace(placeholder, `(${paramValue})`);\r\n\r\n this.tokens.push({\r\n value: newValue,\r\n label: await this.getLabelForValue(newValue)\r\n });\r\n\r\n this.updateExpression();\r\n this.closeDialog();\r\n}\r\n\r\n\r\n cancelDialog() {\r\n this.closeDialog();\r\n }\r\n\r\n closeDialog() {\r\n this.displayDialog = false;\r\n this.dialogSelectedRule = null;\r\n this.pendingSuggestion = null;\r\n }\r\n\r\n async addCustomToken() {\r\n if (!this.customValue.trim()) return;\r\n const val = this.customValue.trim();\r\n this.tokens.push({\r\n value: val,\r\n label: await this.getLabelForValue(val)\r\n });\r\n this.updateExpression();\r\n this.customValue = '';\r\n }\r\n\r\n removeToken(index: number) {\r\n this.tokens.splice(index, 1);\r\n this.updateExpression();\r\n }\r\n\r\n updateExpression() {\r\n const expression = this.tokens.map(t => t.value).join(' ');\r\n this.formControl.setValue(expression);\r\n if (this.to['expressionChange']) {\r\n this.to['expressionChange'].emit(expression);\r\n }\r\n }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -1,110 +0,0 @@
1
- import * as i1 from '@angular/common';
2
- import { CommonModule } from '@angular/common';
3
- import * as i0 from '@angular/core';
4
- import { ChangeDetectionStrategy, Component } from '@angular/core';
5
- import * as i2 from '@angular/forms';
6
- import { ReactiveFormsModule, FormsModule } from '@angular/forms';
7
- import { FieldType } from '@ngx-formly/core';
8
- import * as i4 from '@ngx-translate/core';
9
- import { TranslateModule } from '@ngx-translate/core';
10
- import { ToggleSwitch } from 'primeng/toggleswitch';
11
- import * as i3 from 'primeng/tooltip';
12
- import { TooltipModule, Tooltip } from 'primeng/tooltip';
13
-
14
- class CustomSwitchFieldComponent extends FieldType {
15
- updateModel(value) {
16
- this.formControl.setValue(value);
17
- // التحويل الآمن للمفتاح
18
- const key = Array.isArray(this.key) ? this.key.join('.') : this.key;
19
- if (this.model && key) {
20
- this.model[key] = value ? 1 : 2;
21
- }
22
- }
23
- ngAfterViewInit() {
24
- const key = Array.isArray(this.key) ? this.key.join('.') : this.key;
25
- if (!key)
26
- return;
27
- if (this.model[key] === undefined) {
28
- this.model[key] = 1;
29
- this.formControl.setValue(true);
30
- }
31
- else if (this.model[key] === 1) {
32
- this.formControl.setValue(true);
33
- }
34
- else if (this.model[key] === 2) {
35
- this.formControl.setValue(false);
36
- }
37
- // ✅ تأكد أن الموديل دائماً رقم 1 أو 2
38
- this.model[key] = this.formControl.value ? 1 : 2;
39
- }
40
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.4", ngImport: i0, type: CustomSwitchFieldComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
41
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.1.4", type: CustomSwitchFieldComponent, isStandalone: true, selector: "formly-field-custom-switch", usesInheritance: true, ngImport: i0, template: `
42
- <div class="flex items-center justify-between rtl:flex-row-reverse w-full px-2 py-1"
43
- style=" border-radius: var(--p-inputtext-border-radius);">
44
-
45
-
46
- <label [for]="id" class="font-bold text-lg text-gray-800">
47
- {{ (to.label ?? '') | translate }}
48
-
49
- <span *ngIf="to.required" class="text-red-500">*</span>
50
- </label>
51
-
52
- <!-- التبديل نفسه -->
53
- <p-toggleSwitch
54
- [formControl]="formControl"
55
- [inputId]="id"
56
- [pTooltip]="field.props['tooltip']"
57
- [styleClass]="''"
58
- (onChange)="updateModel($event.checked)"
59
- ></p-toggleSwitch>
60
-
61
- </div>
62
-
63
- `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: FormsModule }, { kind: "component", type: ToggleSwitch, selector: "p-toggleswitch, p-toggleSwitch, p-toggle-switch", inputs: ["styleClass", "tabindex", "inputId", "readonly", "trueValue", "falseValue", "ariaLabel", "size", "ariaLabelledBy", "autofocus"], outputs: ["onChange"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "ngmodule", type: TooltipModule }, { kind: "directive", type: i3.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions", "appendTo"] }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
64
- }
65
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.4", ngImport: i0, type: CustomSwitchFieldComponent, decorators: [{
66
- type: Component,
67
- args: [{
68
- selector: 'formly-field-custom-switch',
69
- standalone: true,
70
- imports: [CommonModule,
71
- ReactiveFormsModule,
72
- FormsModule,
73
- ToggleSwitch,
74
- TranslateModule,
75
- TooltipModule,
76
- Tooltip
77
- ],
78
- template: `
79
- <div class="flex items-center justify-between rtl:flex-row-reverse w-full px-2 py-1"
80
- style=" border-radius: var(--p-inputtext-border-radius);">
81
-
82
-
83
- <label [for]="id" class="font-bold text-lg text-gray-800">
84
- {{ (to.label ?? '') | translate }}
85
-
86
- <span *ngIf="to.required" class="text-red-500">*</span>
87
- </label>
88
-
89
- <!-- التبديل نفسه -->
90
- <p-toggleSwitch
91
- [formControl]="formControl"
92
- [inputId]="id"
93
- [pTooltip]="field.props['tooltip']"
94
- [styleClass]="''"
95
- (onChange)="updateModel($event.checked)"
96
- ></p-toggleSwitch>
97
-
98
- </div>
99
-
100
- `,
101
- changeDetection: ChangeDetectionStrategy.OnPush,
102
- }]
103
- }] });
104
-
105
- /**
106
- * Generated bundle index. Do not edit.
107
- */
108
-
109
- export { CustomSwitchFieldComponent };
110
- //# sourceMappingURL=elite.framework-ng.core-src-lib-components-custom-switch.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"elite.framework-ng.core-src-lib-components-custom-switch.mjs","sources":["../../../projects/core/src/lib/components/custom-switch/custom-switch.ts","../../../projects/core/src/lib/components/custom-switch/elite.framework-ng.core-src-lib-components-custom-switch.ts"],"sourcesContent":["import { CommonModule } from '@angular/common';\r\nimport { AfterViewInit, ChangeDetectionStrategy, Component } from '@angular/core';\r\nimport { ReactiveFormsModule, FormsModule } from '@angular/forms';\r\nimport { FieldType, FieldTypeConfig, FormlyAttributes } from '@ngx-formly/core';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { ToggleSwitch } from 'primeng/toggleswitch';\r\nimport { TooltipModule, Tooltip } from 'primeng/tooltip';\r\n\r\n@Component({\r\n selector: 'formly-field-custom-switch',\r\n standalone: true,\r\n imports: [CommonModule,\r\n ReactiveFormsModule,\r\n FormsModule,\r\n ToggleSwitch,\r\n TranslateModule,\r\n TooltipModule,\r\n Tooltip\r\n],\r\n template: `\r\n <div class=\"flex items-center justify-between rtl:flex-row-reverse w-full px-2 py-1\"\r\n style=\" border-radius: var(--p-inputtext-border-radius);\">\r\n\r\n\r\n <label [for]=\"id\" class=\"font-bold text-lg text-gray-800\">\r\n {{ (to.label ?? '') | translate }}\r\n\r\n <span *ngIf=\"to.required\" class=\"text-red-500\">*</span>\r\n </label>\r\n\r\n <!-- التبديل نفسه -->\r\n <p-toggleSwitch\r\n [formControl]=\"formControl\"\r\n [inputId]=\"id\"\r\n [pTooltip]=\"field.props['tooltip']\"\r\n [styleClass]=\"''\"\r\n (onChange)=\"updateModel($event.checked)\"\r\n ></p-toggleSwitch>\r\n\r\n </div>\r\n\r\n `,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class CustomSwitchFieldComponent extends FieldType<FieldTypeConfig> implements AfterViewInit {\r\n\r\n updateModel(value: boolean) {\r\n this.formControl.setValue(value);\r\n\r\n // التحويل الآمن للمفتاح\r\n const key = Array.isArray(this.key) ? this.key.join('.') : this.key;\r\n\r\n if (this.model && key) {\r\n this.model[key] = value ? 1 : 2;\r\n }\r\n }\r\n\r\n ngAfterViewInit() {\r\n const key = Array.isArray(this.key) ? this.key.join('.') : this.key;\r\n\r\n if (!key) return;\r\n\r\n if (this.model[key] === undefined) {\r\n this.model[key] = 1;\r\n this.formControl.setValue(true);\r\n }\r\n else if (this.model[key] === 1) {\r\n this.formControl.setValue(true);\r\n }\r\n else if (this.model[key] === 2) {\r\n this.formControl.setValue(false);\r\n }\r\n\r\n // ✅ تأكد أن الموديل دائماً رقم 1 أو 2\r\n this.model[key] = this.formControl.value ? 1 : 2;\r\n}\r\n\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -1,130 +0,0 @@
1
- import { CommonModule } from '@angular/common';
2
- import * as i0 from '@angular/core';
3
- import { Component } from '@angular/core';
4
- import * as i2 from '@angular/forms';
5
- import { FormGroup, ReactiveFormsModule, FormsModule } from '@angular/forms';
6
- import { FormlyForm } from '@ngx-formly/core';
7
- import * as i4 from '@ngx-translate/core';
8
- import { TranslateModule } from '@ngx-translate/core';
9
- import * as i3 from 'primeng/button';
10
- import { ButtonModule } from 'primeng/button';
11
- import { Subject, takeUntil } from 'rxjs';
12
- import * as i1 from 'primeng/dynamicdialog';
13
-
14
- class DeactivationReasonFormComponent {
15
- ref;
16
- config;
17
- form = new FormGroup({});
18
- model = {};
19
- fields;
20
- loading = false;
21
- errorMessage = null;
22
- destroy$ = new Subject();
23
- idField;
24
- constructor(ref, config) {
25
- this.ref = ref;
26
- this.config = config;
27
- this.model = config.data?.model || {};
28
- this.idField = this.config.data.idField;
29
- this.fields = [
30
- {
31
- key: 'deactivationReason',
32
- type: 'textarea',
33
- props: {
34
- label: 'DeactivationReason',
35
- placeholder: 'DeactivationReason',
36
- rows: 5,
37
- required: true,
38
- },
39
- },
40
- ];
41
- }
42
- onSubmit() {
43
- if (this.form.invalid)
44
- return;
45
- // this.loading = true;
46
- // this.errorMessage = null;
47
- const service = this.config.data.service;
48
- const id = this.model[this.idField];
49
- this.model.isActive = false;
50
- const operation$ = service.update(id, this.model);
51
- operation$.pipe(takeUntil(this.destroy$)).subscribe({
52
- next: () => {
53
- this.ref.close(this.model); // نجاح العملية
54
- },
55
- error: (err) => {
56
- this.loading = false;
57
- this.errorMessage = err.error?.message ||
58
- err.message ||
59
- 'حدث خطأ أثناء الحفظ. يرجى المحاولة مرة أخرى.';
60
- }
61
- });
62
- }
63
- ngOnDestroy() {
64
- this.destroy$.next();
65
- this.destroy$.complete();
66
- }
67
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.4", ngImport: i0, type: DeactivationReasonFormComponent, deps: [{ token: i1.DynamicDialogRef }, { token: i1.DynamicDialogConfig }], target: i0.ɵɵFactoryTarget.Component });
68
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.1.4", type: DeactivationReasonFormComponent, isStandalone: true, selector: "app-deactivation-reason-form", ngImport: i0, template: `
69
- <form [formGroup]="form" (ngSubmit)="onSubmit()" class="p-4 space-y-4">
70
- <formly-form [form]="form" [fields]="fields" [model]="model"></formly-form>
71
-
72
-
73
- <div class="bottom-0 left-0 right-0 bg-gray-200 border-t border-gray-400 px-4 py-3 flex justify-end gap-2">
74
-
75
- <p-button
76
- [label]="( 'SAVE') | translate"
77
- size="small"
78
- [disabled]="form.invalid"
79
- [type]="'submit'">
80
- </p-button>
81
-
82
- <p-button
83
- [label]="'CANCEL' | translate "
84
- severity="danger"
85
- size="small"
86
- (onClick)="ref.close(false)">
87
- </p-button>
88
-
89
- </div>
90
- </form>
91
- `, isInline: true, dependencies: [{ kind: "component", type: FormlyForm, selector: "formly-form", inputs: ["form", "model", "fields", "options"], outputs: ["modelChange"] }, { kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: TranslateModule }, { kind: "ngmodule", type: ButtonModule }, { kind: "component", type: i3.Button, selector: "p-button", inputs: ["type", "iconPos", "icon", "badge", "label", "disabled", "loading", "loadingIcon", "raised", "rounded", "text", "plain", "severity", "outlined", "link", "tabindex", "size", "variant", "style", "styleClass", "badgeClass", "badgeSeverity", "ariaLabel", "buttonProps", "autofocus", "fluid"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }] });
92
- }
93
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.4", ngImport: i0, type: DeactivationReasonFormComponent, decorators: [{
94
- type: Component,
95
- args: [{
96
- selector: 'app-deactivation-reason-form',
97
- template: `
98
- <form [formGroup]="form" (ngSubmit)="onSubmit()" class="p-4 space-y-4">
99
- <formly-form [form]="form" [fields]="fields" [model]="model"></formly-form>
100
-
101
-
102
- <div class="bottom-0 left-0 right-0 bg-gray-200 border-t border-gray-400 px-4 py-3 flex justify-end gap-2">
103
-
104
- <p-button
105
- [label]="( 'SAVE') | translate"
106
- size="small"
107
- [disabled]="form.invalid"
108
- [type]="'submit'">
109
- </p-button>
110
-
111
- <p-button
112
- [label]="'CANCEL' | translate "
113
- severity="danger"
114
- size="small"
115
- (onClick)="ref.close(false)">
116
- </p-button>
117
-
118
- </div>
119
- </form>
120
- `,
121
- imports: [FormlyForm, CommonModule, ReactiveFormsModule, FormsModule, TranslateModule, ButtonModule]
122
- }]
123
- }], ctorParameters: () => [{ type: i1.DynamicDialogRef }, { type: i1.DynamicDialogConfig }] });
124
-
125
- /**
126
- * Generated bundle index. Do not edit.
127
- */
128
-
129
- export { DeactivationReasonFormComponent };
130
- //# sourceMappingURL=elite.framework-ng.core-src-lib-components-deactivation-reason.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"elite.framework-ng.core-src-lib-components-deactivation-reason.mjs","sources":["../../../projects/core/src/lib/components/deactivation-reason/deactivation-reason.ts","../../../projects/core/src/lib/components/deactivation-reason/elite.framework-ng.core-src-lib-components-deactivation-reason.ts"],"sourcesContent":["import { CommonModule } from '@angular/common';\nimport { Component, Inject, OnDestroy } from '@angular/core';\nimport { FormGroup, FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { FormlyFieldConfig, FormlyForm } from '@ngx-formly/core';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { ButtonModule } from 'primeng/button';\nimport { DynamicDialogConfig, DynamicDialogRef } from 'primeng/dynamicdialog';\nimport { Observable, Subject, takeUntil } from 'rxjs';\n\n@Component({\n selector: 'app-deactivation-reason-form',\n template: `\n <form [formGroup]=\"form\" (ngSubmit)=\"onSubmit()\" class=\"p-4 space-y-4\">\n <formly-form [form]=\"form\" [fields]=\"fields\" [model]=\"model\"></formly-form>\n\n\n <div class=\"bottom-0 left-0 right-0 bg-gray-200 border-t border-gray-400 px-4 py-3 flex justify-end gap-2\">\n\n <p-button\n [label]=\"( 'SAVE') | translate\"\n size=\"small\"\n [disabled]=\"form.invalid\"\n [type]=\"'submit'\">\n </p-button>\n\n <p-button\n [label]=\"'CANCEL' | translate \"\n severity=\"danger\"\n size=\"small\"\n (onClick)=\"ref.close(false)\">\n </p-button>\n\n </div>\n </form>\n `,\n imports:[FormlyForm,CommonModule,ReactiveFormsModule,FormsModule,TranslateModule,ButtonModule]\n})\nexport class DeactivationReasonFormComponent implements OnDestroy {\n form = new FormGroup({});\n model: any = {};\n fields: FormlyFieldConfig[];\n loading = false;\n errorMessage: string | null = null;\n private destroy$ = new Subject<void>();\n private idField: keyof any;\n constructor(\n public ref: DynamicDialogRef,\n public config: DynamicDialogConfig\n ) {\n this.model = config.data?.model || {};\n this.idField = this.config.data.idField;\n this.fields = [\n {\n key: 'deactivationReason',\n type: 'textarea',\n props: {\n label: 'DeactivationReason',\n placeholder: 'DeactivationReason',\n rows: 5,\n required: true,\n },\n },\n ];\n }\n\n\n onSubmit() {\n if (this.form.invalid) return;\n\n // this.loading = true;\n // this.errorMessage = null;\n\n const service = this.config.data.service;\n const id = (this.model as any)[this.idField] ;\n this.model.isActive = false;\n const operation$: Observable<any> = service.update(id, this.model);\n\n operation$.pipe(takeUntil(this.destroy$)).subscribe({\n next: () => {\n this.ref.close(this.model); // نجاح العملية\n },\n error: (err) => {\n this.loading = false;\n this.errorMessage = err.error?.message ||\n err.message ||\n 'حدث خطأ أثناء الحفظ. يرجى المحاولة مرة أخرى.';\n }\n });\n }\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -1,50 +0,0 @@
1
- import * as i0 from '@angular/core';
2
- import { Component } from '@angular/core';
3
- import { FieldType } from '@ngx-formly/core';
4
- import { NgClass } from '@angular/common';
5
-
6
- class FormlyFieldButton extends FieldType {
7
- onClick($event) {
8
- if (this.props['onClick']) {
9
- this.props['onClick']($event);
10
- }
11
- }
12
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.4", ngImport: i0, type: FormlyFieldButton, deps: null, target: i0.ɵɵFactoryTarget.Component });
13
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.1.4", type: FormlyFieldButton, isStandalone: true, selector: "formly-field-button", usesInheritance: true, ngImport: i0, template: `
14
- <div>
15
- <button
16
- [type]="props.type"
17
- [ngClass]="'btn btn-' + props['btnType']"
18
- (click)="onClick($event)"
19
- >
20
- {{ props['text'] }}
21
- </button>
22
- </div>
23
- `, isInline: true, dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
24
- }
25
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.4", ngImport: i0, type: FormlyFieldButton, decorators: [{
26
- type: Component,
27
- args: [{
28
- selector: 'formly-field-button',
29
- template: `
30
- <div>
31
- <button
32
- [type]="props.type"
33
- [ngClass]="'btn btn-' + props['btnType']"
34
- (click)="onClick($event)"
35
- >
36
- {{ props['text'] }}
37
- </button>
38
- </div>
39
- `,
40
- standalone: true,
41
- imports: [NgClass],
42
- }]
43
- }] });
44
-
45
- /**
46
- * Generated bundle index. Do not edit.
47
- */
48
-
49
- export { FormlyFieldButton };
50
- //# sourceMappingURL=elite.framework-ng.core-src-lib-components-form-button.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"elite.framework-ng.core-src-lib-components-form-button.mjs","sources":["../../../projects/core/src/lib/components/form-button/form-button.type.ts","../../../projects/core/src/lib/components/form-button/elite.framework-ng.core-src-lib-components-form-button.ts"],"sourcesContent":["import { Component } from '@angular/core';\r\nimport { FieldType } from '@ngx-formly/core';\r\nimport { NgClass } from '@angular/common';\r\n@Component({\r\n selector: 'formly-field-button',\r\n template: `\r\n <div>\r\n <button\r\n [type]=\"props.type\"\r\n [ngClass]=\"'btn btn-' + props['btnType']\"\r\n (click)=\"onClick($event)\"\r\n >\r\n {{ props['text'] }}\r\n </button>\r\n </div>\r\n `,\r\n standalone: true,\r\n imports: [NgClass],\r\n})\r\nexport class FormlyFieldButton extends FieldType {\r\n onClick($event: Event) {\r\n if (this.props['onClick']) {\r\n this.props['onClick']($event);\r\n }\r\n }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;AAmBM,MAAO,iBAAkB,SAAQ,SAAS,CAAA;AAC9C,IAAA,OAAO,CAAC,MAAa,EAAA;AACnB,QAAA,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE;YACzB,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC;;;uGAHtB,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,qBAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAdlB,CAAA;;;;;;;;;;AAUT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAES,OAAO,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FAEN,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAhB7B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,qBAAqB;AAC/B,oBAAA,QAAQ,EAAE,CAAA;;;;;;;;;;AAUT,EAAA,CAAA;AACD,oBAAA,UAAU,EAAE,IAAI;oBAChB,OAAO,EAAE,CAAC,OAAO,CAAC;AACnB,iBAAA;;;AClBD;;AAEG;;;;"}
@@ -1,154 +0,0 @@
1
- import * as i0 from '@angular/core';
2
- import { Component, NgModule } from '@angular/core';
3
- import * as i1 from '@ngx-formly/core';
4
- import { FieldWrapper, FormlyModule } from '@ngx-formly/core';
5
- import * as i2 from '@ngx-translate/core';
6
- import { TranslateModule, TranslatePipe } from '@ngx-translate/core';
7
- import { CommonModule } from '@angular/common';
8
- import { ReactiveFormsModule } from '@angular/forms';
9
-
10
- class FormlyWrapperFormField extends FieldWrapper {
11
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.4", ngImport: i0, type: FormlyWrapperFormField, deps: null, target: i0.ɵɵFactoryTarget.Component });
12
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.4", type: FormlyWrapperFormField, isStandalone: false, selector: "formly-wrapper-primeng-form-field", usesInheritance: true, ngImport: i0, template: `
13
- <div class="p-field">
14
- <!-- text-lg -->
15
- @if (props.label && props.hideLabel !== true) {
16
- <label [for]="id" class="font-bold">
17
- {{ props.label | translate }}
18
- @if (props.required && props.hideRequiredMarker !== true) {
19
- <span aria-hidden="true">*</span>
20
- }
21
- </label>
22
- }
23
-
24
- <div class="mb-2"></div>
25
- <ng-container #fieldComponent></ng-container>
26
-
27
- @if (showError) {
28
- <small class="text-red-600 text-sm mt-1 block font-medium">
29
- <formly-validation-message [field]="field"></formly-validation-message>
30
- </small>
31
- }
32
- </div>
33
- `, isInline: true, dependencies: [{ kind: "component", type: i1.LegacyFormlyValidationMessage, selector: "formly-validation-message" }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }] });
34
- }
35
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.4", ngImport: i0, type: FormlyWrapperFormField, decorators: [{
36
- type: Component,
37
- args: [{
38
- selector: 'formly-wrapper-primeng-form-field',
39
- standalone: false,
40
- template: `
41
- <div class="p-field">
42
- <!-- text-lg -->
43
- @if (props.label && props.hideLabel !== true) {
44
- <label [for]="id" class="font-bold">
45
- {{ props.label | translate }}
46
- @if (props.required && props.hideRequiredMarker !== true) {
47
- <span aria-hidden="true">*</span>
48
- }
49
- </label>
50
- }
51
-
52
- <div class="mb-2"></div>
53
- <ng-container #fieldComponent></ng-container>
54
-
55
- @if (showError) {
56
- <small class="text-red-600 text-sm mt-1 block font-medium">
57
- <formly-validation-message [field]="field"></formly-validation-message>
58
- </small>
59
- }
60
- </div>
61
- `,
62
- }]
63
- }] });
64
- class FormlyWrapperFormFieldNo extends FieldWrapper {
65
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.4", ngImport: i0, type: FormlyWrapperFormFieldNo, deps: null, target: i0.ɵɵFactoryTarget.Component });
66
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.4", type: FormlyWrapperFormFieldNo, isStandalone: false, selector: "formly-wrapper-primeng-form-field-no", usesInheritance: true, ngImport: i0, template: `
67
- <div class="p-field">
68
- <!-- text-lg -->
69
- @if (props.label && props.hideLabel !== true) {
70
- <label [for]="id" class="font-bold">
71
- @if (props.required && props.hideRequiredMarker !== true) {
72
- <span aria-hidden="true">*</span>
73
- }
74
- </label>
75
- }
76
-
77
- <ng-container #fieldComponent></ng-container>
78
-
79
- @if (showError) {
80
- <small class="text-red-600 text-sm mt-1 block font-medium">
81
- <formly-validation-message [field]="field"></formly-validation-message>
82
- </small>
83
- }
84
- </div>
85
- `, isInline: true, dependencies: [{ kind: "component", type: i1.LegacyFormlyValidationMessage, selector: "formly-validation-message" }] });
86
- }
87
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.4", ngImport: i0, type: FormlyWrapperFormFieldNo, decorators: [{
88
- type: Component,
89
- args: [{
90
- selector: 'formly-wrapper-primeng-form-field-no',
91
- standalone: false,
92
- template: `
93
- <div class="p-field">
94
- <!-- text-lg -->
95
- @if (props.label && props.hideLabel !== true) {
96
- <label [for]="id" class="font-bold">
97
- @if (props.required && props.hideRequiredMarker !== true) {
98
- <span aria-hidden="true">*</span>
99
- }
100
- </label>
101
- }
102
-
103
- <ng-container #fieldComponent></ng-container>
104
-
105
- @if (showError) {
106
- <small class="text-red-600 text-sm mt-1 block font-medium">
107
- <formly-validation-message [field]="field"></formly-validation-message>
108
- </small>
109
- }
110
- </div>
111
- `,
112
- }]
113
- }] });
114
-
115
- function withFormlyFormField() {
116
- return {
117
- wrappers: [
118
- {
119
- name: 'form-field',
120
- component: FormlyWrapperFormField,
121
- },
122
- {
123
- name: 'form-field-no',
124
- component: FormlyWrapperFormFieldNo,
125
- },
126
- ],
127
- };
128
- }
129
-
130
- class FormlyFormFieldModule {
131
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.4", ngImport: i0, type: FormlyFormFieldModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
132
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.1.4", ngImport: i0, type: FormlyFormFieldModule, declarations: [FormlyWrapperFormField,
133
- FormlyWrapperFormFieldNo], imports: [CommonModule, ReactiveFormsModule, i1.FormlyModule, TranslateModule, TranslatePipe], exports: [FormlyWrapperFormField] });
134
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.1.4", ngImport: i0, type: FormlyFormFieldModule, imports: [CommonModule, ReactiveFormsModule, FormlyModule.forChild(withFormlyFormField()), TranslateModule] });
135
- }
136
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.4", ngImport: i0, type: FormlyFormFieldModule, decorators: [{
137
- type: NgModule,
138
- args: [{
139
- declarations: [
140
- FormlyWrapperFormField,
141
- FormlyWrapperFormFieldNo,
142
- // FormlyFormFieldWrapperComponent,
143
- ],
144
- imports: [CommonModule, ReactiveFormsModule, FormlyModule.forChild(withFormlyFormField()), TranslateModule, TranslatePipe],
145
- exports: [FormlyWrapperFormField]
146
- }]
147
- }] });
148
-
149
- /**
150
- * Generated bundle index. Do not edit.
151
- */
152
-
153
- export { FormlyFormFieldModule, FormlyWrapperFormField, withFormlyFormField };
154
- //# sourceMappingURL=elite.framework-ng.core-src-lib-components-form-field.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"elite.framework-ng.core-src-lib-components-form-field.mjs","sources":["../../../projects/core/src/lib/components/form-field/src/form-field.wrapper.ts","../../../projects/core/src/lib/components/form-field/src/form-field.config.ts","../../../projects/core/src/lib/components/form-field/src/form-field.module.ts","../../../projects/core/src/lib/components/form-field/src/elite.framework-ng.core-src-lib-components-form-field.ts"],"sourcesContent":["import { Component } from '@angular/core';\nimport {\n FieldWrapper,\n FormlyFieldConfig,\n FormlyFieldProps as CoreFormlyFieldProps\n} from '@ngx-formly/core';\n\nexport interface FormlyFieldProps extends CoreFormlyFieldProps {\n hideRequiredMarker?: boolean;\n hideLabel?: boolean;\n}\n\n@Component({\n selector: 'formly-wrapper-primeng-form-field',\n standalone: false,\n template: `\n <div class=\"p-field\">\n <!-- text-lg -->\n @if (props.label && props.hideLabel !== true) {\n <label [for]=\"id\" class=\"font-bold\">\n {{ props.label | translate }}\n @if (props.required && props.hideRequiredMarker !== true) {\n <span aria-hidden=\"true\">*</span>\n }\n </label>\n }\n\n <div class=\"mb-2\"></div>\n <ng-container #fieldComponent></ng-container>\n\n @if (showError) {\n <small class=\"text-red-600 text-sm mt-1 block font-medium\">\n <formly-validation-message [field]=\"field\"></formly-validation-message>\n </small>\n }\n </div>\n `,\n})\nexport class FormlyWrapperFormField extends FieldWrapper<FormlyFieldConfig<FormlyFieldProps>> {}\n\n\n@Component({\n selector: 'formly-wrapper-primeng-form-field-no',\n standalone: false,\n template: `\n <div class=\"p-field\">\n <!-- text-lg -->\n @if (props.label && props.hideLabel !== true) {\n <label [for]=\"id\" class=\"font-bold\">\n @if (props.required && props.hideRequiredMarker !== true) {\n <span aria-hidden=\"true\">*</span>\n }\n </label>\n }\n\n <ng-container #fieldComponent></ng-container>\n\n @if (showError) {\n <small class=\"text-red-600 text-sm mt-1 block font-medium\">\n <formly-validation-message [field]=\"field\"></formly-validation-message>\n </small>\n }\n </div>\n `,\n})\nexport class FormlyWrapperFormFieldNo extends FieldWrapper<FormlyFieldConfig<FormlyFieldProps>> {}\n","import { ConfigOption } from '@ngx-formly/core';\nimport { FormlyWrapperFormField, FormlyWrapperFormFieldNo } from './form-field.wrapper';\n\nexport function withFormlyFormField(): ConfigOption {\n return {\n wrappers: [\n {\n name: 'form-field',\n component: FormlyWrapperFormField,\n },\n {\n name: 'form-field-no',\n component: FormlyWrapperFormFieldNo,\n },\n ],\n };\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormlyModule, LegacyFormlyValidationMessage, } from '@ngx-formly/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { FormlyWrapperFormField, FormlyWrapperFormFieldNo } from './form-field.wrapper';\nimport { withFormlyFormField } from './form-field.config';\nimport { TranslateModule, TranslatePipe } from '@ngx-translate/core';\n\n@NgModule({\n declarations: [\n\n FormlyWrapperFormField,\n FormlyWrapperFormFieldNo,\n // FormlyFormFieldWrapperComponent,\n ],\n imports: [CommonModule, ReactiveFormsModule, FormlyModule.forChild(withFormlyFormField()),TranslateModule,TranslatePipe],\n exports:[FormlyWrapperFormField]\n})\nexport class FormlyFormFieldModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":";;;;;;;;;AAsCM,MAAO,sBAAuB,SAAQ,YAAiD,CAAA;uGAAhF,sBAAsB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAtB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,sBAAsB,EAAA,YAAA,EAAA,KAAA,EAAA,QAAA,EAAA,mCAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAvBvB;;;;;;;;;;;;;;;;;;;;;AAqBT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,6BAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA;;2FAEU,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBA1BlC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,mCAAmC;AAC7C,oBAAA,UAAU,EAAE,KAAK;AACjB,oBAAA,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;;;AAqBT,EAAA,CAAA;AACF,iBAAA;;AA4BK,MAAO,wBAAyB,SAAQ,YAAiD,CAAA;uGAAlF,wBAAwB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAxB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,wBAAwB,EAAA,YAAA,EAAA,KAAA,EAAA,QAAA,EAAA,sCAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EArBzB;;;;;;;;;;;;;;;;;;;AAmBT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,6BAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,CAAA,EAAA,CAAA;;2FAEU,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAxBpC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,sCAAsC;AAChD,oBAAA,UAAU,EAAE,KAAK;AACjB,oBAAA,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;AAmBT,EAAA,CAAA;AACF,iBAAA;;;SC7De,mBAAmB,GAAA;IACjC,OAAO;AACL,QAAA,QAAQ,EAAE;AACR,YAAA;AACE,gBAAA,IAAI,EAAE,YAAY;AAClB,gBAAA,SAAS,EAAE,sBAAsB;AAClC,aAAA;AACD,YAAA;AACE,gBAAA,IAAI,EAAE,eAAe;AACrB,gBAAA,SAAS,EAAE,wBAAwB;AACpC,aAAA;AACF,SAAA;KACF;AACH;;MCEa,qBAAqB,CAAA;uGAArB,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;AAArB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qBAAqB,iBAP9B,sBAAsB;YACtB,wBAAwB,CAAA,EAAA,OAAA,EAAA,CAGhB,YAAY,EAAE,mBAAmB,mBAA+C,eAAe,EAAC,aAAa,CAAA,EAAA,OAAA,EAAA,CAC9G,sBAAsB,CAAA,EAAA,CAAA;AAEpB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qBAAqB,EAAA,OAAA,EAAA,CAHtB,YAAY,EAAE,mBAAmB,EAAE,YAAY,CAAC,QAAQ,CAAC,mBAAmB,EAAE,CAAC,EAAC,eAAe,CAAA,EAAA,CAAA;;2FAG9F,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAVjC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;wBAEZ,sBAAsB;wBACtB,wBAAwB;;AAEzB,qBAAA;AACD,oBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,mBAAmB,EAAE,YAAY,CAAC,QAAQ,CAAC,mBAAmB,EAAE,CAAC,EAAC,eAAe,EAAC,aAAa,CAAC;oBACxH,OAAO,EAAC,CAAC,sBAAsB;AAChC,iBAAA;;;ACjBD;;AAEG;;;;"}