commons-shared-web-ui 0.0.55 → 0.0.56

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 (222) hide show
  1. package/fesm2022/commons-shared-web-ui.mjs +15897 -0
  2. package/fesm2022/commons-shared-web-ui.mjs.map +1 -0
  3. package/index.d.ts +4916 -0
  4. package/package.json +34 -53
  5. package/.claude/settings.local.json +0 -10
  6. package/documentation/alert.md +0 -123
  7. package/documentation/button-dropdown.md +0 -126
  8. package/documentation/button.md +0 -184
  9. package/documentation/cards-usage-guidelines.md +0 -131
  10. package/documentation/configurable-form.md +0 -605
  11. package/documentation/confirmation-modal.md +0 -250
  12. package/documentation/filter-sidebar.md +0 -178
  13. package/documentation/filter-table-selector.md +0 -228
  14. package/documentation/form-builder.md +0 -599
  15. package/documentation/form-components.md +0 -384
  16. package/documentation/form-field-configuration.md +0 -250
  17. package/documentation/nav.md +0 -427
  18. package/documentation/pagination.md +0 -181
  19. package/documentation/side-nav-documentation.md +0 -169
  20. package/documentation/smart-form.md +0 -2765
  21. package/documentation/smart-table.md +0 -1221
  22. package/documentation/snackbar.md +0 -118
  23. package/documentation/style-externalization.md +0 -88
  24. package/documentation/summary-card.md +0 -279
  25. package/documentation/table-column-configuration.md +0 -221
  26. package/documentation/time-picker.md +0 -274
  27. package/ng-package.json +0 -30
  28. package/src/lib/modules/alert/alert.models.ts +0 -6
  29. package/src/lib/modules/alert/alert.module.ts +0 -16
  30. package/src/lib/modules/alert/components/alert/alert.component.html +0 -27
  31. package/src/lib/modules/alert/components/alert/alert.component.scss +0 -92
  32. package/src/lib/modules/alert/components/alert/alert.component.ts +0 -81
  33. package/src/lib/modules/button/button.models.ts +0 -13
  34. package/src/lib/modules/button/button.module.ts +0 -16
  35. package/src/lib/modules/button/components/button/button.component.html +0 -22
  36. package/src/lib/modules/button/components/button/button.component.scss +0 -88
  37. package/src/lib/modules/button/components/button/button.component.ts +0 -67
  38. package/src/lib/modules/button-dropdown/button-dropdown.models.ts +0 -26
  39. package/src/lib/modules/button-dropdown/button-dropdown.module.ts +0 -22
  40. package/src/lib/modules/button-dropdown/components/button-dropdown/button-dropdown.component.html +0 -41
  41. package/src/lib/modules/button-dropdown/components/button-dropdown/button-dropdown.component.scss +0 -135
  42. package/src/lib/modules/button-dropdown/components/button-dropdown/button-dropdown.component.ts +0 -160
  43. package/src/lib/modules/configurable-form/component/configurable-form.component.html +0 -294
  44. package/src/lib/modules/configurable-form/component/configurable-form.component.scss +0 -503
  45. package/src/lib/modules/configurable-form/component/configurable-form.component.ts +0 -628
  46. package/src/lib/modules/configurable-form/configurable-form.examples.ts +0 -154
  47. package/src/lib/modules/configurable-form/configurable-form.model.ts +0 -131
  48. package/src/lib/modules/configurable-form/configurable-form.module.ts +0 -19
  49. package/src/lib/modules/confirmation-modal/components/confirmation-modal/confirmation-modal.component.html +0 -77
  50. package/src/lib/modules/confirmation-modal/components/confirmation-modal/confirmation-modal.component.scss +0 -395
  51. package/src/lib/modules/confirmation-modal/components/confirmation-modal/confirmation-modal.component.ts +0 -266
  52. package/src/lib/modules/confirmation-modal/confirmation-modal.models.ts +0 -71
  53. package/src/lib/modules/confirmation-modal/confirmation-modal.module.ts +0 -20
  54. package/src/lib/modules/filter/components/filter/filter.component.html +0 -131
  55. package/src/lib/modules/filter/components/filter/filter.component.scss +0 -245
  56. package/src/lib/modules/filter/components/filter/filter.component.ts +0 -216
  57. package/src/lib/modules/filter/filter.models.ts +0 -88
  58. package/src/lib/modules/filter/filter.module.ts +0 -24
  59. package/src/lib/modules/filter-sidebar/components/filter-sidebar/filter-sidebar.component.html +0 -112
  60. package/src/lib/modules/filter-sidebar/components/filter-sidebar/filter-sidebar.component.scss +0 -186
  61. package/src/lib/modules/filter-sidebar/components/filter-sidebar/filter-sidebar.component.ts +0 -163
  62. package/src/lib/modules/filter-sidebar/filter-sidebar.models.ts +0 -95
  63. package/src/lib/modules/filter-sidebar/filter-sidebar.module.ts +0 -24
  64. package/src/lib/modules/filter-table-selector/components/filter-table-selector/filter-table-selector.component.html +0 -73
  65. package/src/lib/modules/filter-table-selector/components/filter-table-selector/filter-table-selector.component.scss +0 -321
  66. package/src/lib/modules/filter-table-selector/components/filter-table-selector/filter-table-selector.component.ts +0 -361
  67. package/src/lib/modules/filter-table-selector/filter-table-selector.models.ts +0 -91
  68. package/src/lib/modules/filter-table-selector/filter-table-selector.module.ts +0 -22
  69. package/src/lib/modules/form-builder/components/field-configurator/configurator-config-panel/configurator-config-panel.component.html +0 -63
  70. package/src/lib/modules/form-builder/components/field-configurator/configurator-config-panel/configurator-config-panel.component.scss +0 -496
  71. package/src/lib/modules/form-builder/components/field-configurator/configurator-config-panel/configurator-config-panel.component.ts +0 -445
  72. package/src/lib/modules/form-builder/components/field-configurator/configurator-tree/configurator-tree.component.html +0 -75
  73. package/src/lib/modules/form-builder/components/field-configurator/configurator-tree/configurator-tree.component.scss +0 -210
  74. package/src/lib/modules/form-builder/components/field-configurator/configurator-tree/configurator-tree.component.ts +0 -55
  75. package/src/lib/modules/form-builder/components/field-configurator/field-configurator.component.html +0 -25
  76. package/src/lib/modules/form-builder/components/field-configurator/field-configurator.component.scss +0 -82
  77. package/src/lib/modules/form-builder/components/field-configurator/field-configurator.component.ts +0 -95
  78. package/src/lib/modules/form-builder/components/field-selection/field-selection.component.html +0 -20
  79. package/src/lib/modules/form-builder/components/field-selection/field-selection.component.scss +0 -37
  80. package/src/lib/modules/form-builder/components/field-selection/field-selection.component.ts +0 -94
  81. package/src/lib/modules/form-builder/components/field-selection/group-node/group-node.component.html +0 -46
  82. package/src/lib/modules/form-builder/components/field-selection/group-node/group-node.component.scss +0 -102
  83. package/src/lib/modules/form-builder/components/field-selection/group-node/group-node.component.ts +0 -50
  84. package/src/lib/modules/form-builder/components/field-selection/selection-field-node/selection-field-node.component.html +0 -35
  85. package/src/lib/modules/form-builder/components/field-selection/selection-field-node/selection-field-node.component.scss +0 -67
  86. package/src/lib/modules/form-builder/components/field-selection/selection-field-node/selection-field-node.component.ts +0 -34
  87. package/src/lib/modules/form-builder/components/field-selection/selection-section-node/selection-section-node.component.html +0 -68
  88. package/src/lib/modules/form-builder/components/field-selection/selection-section-node/selection-section-node.component.scss +0 -113
  89. package/src/lib/modules/form-builder/components/field-selection/selection-section-node/selection-section-node.component.ts +0 -74
  90. package/src/lib/modules/form-builder/configs/field-type-schema.map.ts +0 -533
  91. package/src/lib/modules/form-builder/form-builder.module.ts +0 -36
  92. package/src/lib/modules/form-builder/index.ts +0 -9
  93. package/src/lib/modules/form-builder/models/builder.models.ts +0 -7
  94. package/src/lib/modules/form-builder/models/field-configurator.models.ts +0 -38
  95. package/src/lib/modules/form-builder/models/field-selection.models.ts +0 -51
  96. package/src/lib/modules/form-builder/services/field-configurator.service.ts +0 -258
  97. package/src/lib/modules/form-builder/services/field-selection.service.ts +0 -299
  98. package/src/lib/modules/form-builder/services/form-schema-tree.service.ts +0 -670
  99. package/src/lib/modules/form-builder/tokens/builder.tokens.ts +0 -10
  100. package/src/lib/modules/form-builder/utils/constants.ts +0 -43
  101. package/src/lib/modules/form-components/components/checkbox/checkbox.component.html +0 -29
  102. package/src/lib/modules/form-components/components/checkbox/checkbox.component.scss +0 -111
  103. package/src/lib/modules/form-components/components/checkbox/checkbox.component.ts +0 -207
  104. package/src/lib/modules/form-components/components/checkbox/checkbox.models.ts +0 -35
  105. package/src/lib/modules/form-components/components/datepicker/datepicker.component.html +0 -42
  106. package/src/lib/modules/form-components/components/datepicker/datepicker.component.scss +0 -115
  107. package/src/lib/modules/form-components/components/datepicker/datepicker.component.ts +0 -267
  108. package/src/lib/modules/form-components/components/datepicker/datepicker.models.ts +0 -45
  109. package/src/lib/modules/form-components/components/dropdown/dropdown.component.html +0 -74
  110. package/src/lib/modules/form-components/components/dropdown/dropdown.component.scss +0 -252
  111. package/src/lib/modules/form-components/components/dropdown/dropdown.component.ts +0 -377
  112. package/src/lib/modules/form-components/components/dropdown/dropdown.models.ts +0 -53
  113. package/src/lib/modules/form-components/components/input/input.component.html +0 -51
  114. package/src/lib/modules/form-components/components/input/input.component.scss +0 -128
  115. package/src/lib/modules/form-components/components/input/input.component.ts +0 -250
  116. package/src/lib/modules/form-components/components/input/input.models.ts +0 -55
  117. package/src/lib/modules/form-components/components/radio/radio.component.html +0 -22
  118. package/src/lib/modules/form-components/components/radio/radio.component.scss +0 -107
  119. package/src/lib/modules/form-components/components/radio/radio.component.ts +0 -181
  120. package/src/lib/modules/form-components/components/radio/radio.models.ts +0 -39
  121. package/src/lib/modules/form-components/components/search/search.component.html +0 -15
  122. package/src/lib/modules/form-components/components/search/search.component.scss +0 -87
  123. package/src/lib/modules/form-components/components/search/search.component.ts +0 -213
  124. package/src/lib/modules/form-components/components/search/search.models.ts +0 -40
  125. package/src/lib/modules/form-components/components/toggle/toggle.component.html +0 -15
  126. package/src/lib/modules/form-components/components/toggle/toggle.component.scss +0 -81
  127. package/src/lib/modules/form-components/components/toggle/toggle.component.ts +0 -166
  128. package/src/lib/modules/form-components/components/toggle/toggle.models.ts +0 -27
  129. package/src/lib/modules/form-components/directives/click-outside.directive.ts +0 -22
  130. package/src/lib/modules/form-components/form-components.module.ts +0 -42
  131. package/src/lib/modules/form-field-configuration/components/_ffc-controls.scss +0 -89
  132. package/src/lib/modules/form-field-configuration/components/config-field-node/config-field-node.component.html +0 -68
  133. package/src/lib/modules/form-field-configuration/components/config-field-node/config-field-node.component.scss +0 -73
  134. package/src/lib/modules/form-field-configuration/components/config-field-node/config-field-node.component.ts +0 -34
  135. package/src/lib/modules/form-field-configuration/components/config-section-node/config-section-node.component.html +0 -78
  136. package/src/lib/modules/form-field-configuration/components/config-section-node/config-section-node.component.scss +0 -83
  137. package/src/lib/modules/form-field-configuration/components/config-section-node/config-section-node.component.ts +0 -94
  138. package/src/lib/modules/form-field-configuration/components/form-field-configuration/form-field-configuration.component.html +0 -38
  139. package/src/lib/modules/form-field-configuration/components/form-field-configuration/form-field-configuration.component.scss +0 -42
  140. package/src/lib/modules/form-field-configuration/components/form-field-configuration/form-field-configuration.component.ts +0 -92
  141. package/src/lib/modules/form-field-configuration/form-field-configuration.module.ts +0 -23
  142. package/src/lib/modules/form-field-configuration/index.ts +0 -7
  143. package/src/lib/modules/form-field-configuration/models/field-configuration.models.ts +0 -62
  144. package/src/lib/modules/form-field-configuration/services/config-schema-tree.service.ts +0 -159
  145. package/src/lib/modules/form-field-configuration/services/field-configuration.service.ts +0 -228
  146. package/src/lib/modules/material/material.module.ts +0 -94
  147. package/src/lib/modules/nav/components/nav/nav.component.html +0 -34
  148. package/src/lib/modules/nav/components/nav/nav.component.scss +0 -171
  149. package/src/lib/modules/nav/components/nav/nav.component.ts +0 -82
  150. package/src/lib/modules/nav/nav.models.ts +0 -31
  151. package/src/lib/modules/nav/nav.module.ts +0 -17
  152. package/src/lib/modules/pagination/components/pagination/pagination.component.html +0 -52
  153. package/src/lib/modules/pagination/components/pagination/pagination.component.scss +0 -155
  154. package/src/lib/modules/pagination/components/pagination/pagination.component.ts +0 -109
  155. package/src/lib/modules/pagination/pagination.module.ts +0 -17
  156. package/src/lib/modules/side-nav/components/side-nav/side-nav.component.html +0 -56
  157. package/src/lib/modules/side-nav/components/side-nav/side-nav.component.scss +0 -342
  158. package/src/lib/modules/side-nav/components/side-nav/side-nav.component.ts +0 -135
  159. package/src/lib/modules/side-nav/side-nav.models.ts +0 -38
  160. package/src/lib/modules/side-nav/side-nav.module.ts +0 -16
  161. package/src/lib/modules/smart-form/components/form-field/form-field.component.html +0 -1330
  162. package/src/lib/modules/smart-form/components/form-field/form-field.component.scss +0 -2112
  163. package/src/lib/modules/smart-form/components/form-field/form-field.component.ts +0 -3006
  164. package/src/lib/modules/smart-form/components/form-section/form-section.component.html +0 -65
  165. package/src/lib/modules/smart-form/components/form-section/form-section.component.scss +0 -209
  166. package/src/lib/modules/smart-form/components/form-section/form-section.component.ts +0 -131
  167. package/src/lib/modules/smart-form/components/smart-form/smart-form.component.html +0 -253
  168. package/src/lib/modules/smart-form/components/smart-form/smart-form.component.scss +0 -689
  169. package/src/lib/modules/smart-form/components/smart-form/smart-form.component.ts +0 -1131
  170. package/src/lib/modules/smart-form/index.ts +0 -10
  171. package/src/lib/modules/smart-form/models/form-schema.model.ts +0 -793
  172. package/src/lib/modules/smart-form/models/hierarchy-config.model.ts +0 -21
  173. package/src/lib/modules/smart-form/services/expression.service.ts +0 -75
  174. package/src/lib/modules/smart-form/services/smart-form-controller.service.ts +0 -67
  175. package/src/lib/modules/smart-form/smart-form.examples.ts +0 -1324
  176. package/src/lib/modules/smart-form/smart-form.module.ts +0 -38
  177. package/src/lib/modules/smart-form/utils/translation.utils.ts +0 -82
  178. package/src/lib/modules/smart-form/utils/trusted-url.pipe.ts +0 -25
  179. package/src/lib/modules/smart-form/utils/validation.utils.ts +0 -98
  180. package/src/lib/modules/smart-table/components/smart-table/smart-table.component.html +0 -283
  181. package/src/lib/modules/smart-table/components/smart-table/smart-table.component.scss +0 -685
  182. package/src/lib/modules/smart-table/components/smart-table/smart-table.component.ts +0 -1128
  183. package/src/lib/modules/smart-table/models/table-config.model.ts +0 -213
  184. package/src/lib/modules/smart-table/smart-table.module.ts +0 -30
  185. package/src/lib/modules/smart-table/utils/safe-html.pipe.ts +0 -28
  186. package/src/lib/modules/smart-table/utils/smart-table.utils.ts +0 -18
  187. package/src/lib/modules/snackbar/components/snackbar.component.html +0 -41
  188. package/src/lib/modules/snackbar/components/snackbar.component.scss +0 -99
  189. package/src/lib/modules/snackbar/components/snackbar.component.ts +0 -18
  190. package/src/lib/modules/snackbar/models/snackbar.models.ts +0 -10
  191. package/src/lib/modules/snackbar/services/snackbar.service.ts +0 -40
  192. package/src/lib/modules/snackbar/snackbar.module.ts +0 -11
  193. package/src/lib/modules/summary-card/components/summary-card/summary-card.component.html +0 -47
  194. package/src/lib/modules/summary-card/components/summary-card/summary-card.component.scss +0 -199
  195. package/src/lib/modules/summary-card/components/summary-card/summary-card.component.ts +0 -126
  196. package/src/lib/modules/summary-card/summary-card.module.ts +0 -18
  197. package/src/lib/modules/table-column-configuration/components/_tcc-controls.scss +0 -53
  198. package/src/lib/modules/table-column-configuration/components/config-column-node/config-column-node.component.html +0 -47
  199. package/src/lib/modules/table-column-configuration/components/config-column-node/config-column-node.component.scss +0 -50
  200. package/src/lib/modules/table-column-configuration/components/config-column-node/config-column-node.component.ts +0 -33
  201. package/src/lib/modules/table-column-configuration/components/table-column-configuration/table-column-configuration.component.html +0 -30
  202. package/src/lib/modules/table-column-configuration/components/table-column-configuration/table-column-configuration.component.scss +0 -36
  203. package/src/lib/modules/table-column-configuration/components/table-column-configuration/table-column-configuration.component.ts +0 -78
  204. package/src/lib/modules/table-column-configuration/index.ts +0 -5
  205. package/src/lib/modules/table-column-configuration/models/table-column-configuration.models.ts +0 -20
  206. package/src/lib/modules/table-column-configuration/services/table-column-configuration.service.ts +0 -77
  207. package/src/lib/modules/table-column-configuration/table-column-configuration.module.ts +0 -21
  208. package/src/lib/modules/time-picker/components/time-picker/time-picker.component.html +0 -37
  209. package/src/lib/modules/time-picker/components/time-picker/time-picker.component.scss +0 -102
  210. package/src/lib/modules/time-picker/components/time-picker/time-picker.component.ts +0 -178
  211. package/src/lib/modules/time-picker/components/time-wheel-panel/time-wheel-panel.component.html +0 -78
  212. package/src/lib/modules/time-picker/components/time-wheel-panel/time-wheel-panel.component.scss +0 -226
  213. package/src/lib/modules/time-picker/components/time-wheel-panel/time-wheel-panel.component.ts +0 -595
  214. package/src/lib/modules/time-picker/models/time-picker.models.ts +0 -49
  215. package/src/lib/modules/time-picker/time-picker.module.ts +0 -23
  216. package/src/lib/shared-ui.module.ts +0 -55
  217. package/src/lib/utils/constants.ts +0 -11
  218. package/src/lib/utils/storage.utils.ts +0 -37
  219. package/src/lib/utils/string.utils.ts +0 -23
  220. package/src/lib/utils/translation.utils.ts +0 -87
  221. package/src/public-api.ts +0 -127
  222. package/tsconfig.lib.json +0 -15
@@ -1,154 +0,0 @@
1
- import { FormConfig } from './configurable-form.model';
2
-
3
- /**
4
- * Example: Basic Form Configuration
5
- * This is a generic example for testing and demonstration purposes.
6
- */
7
- export const EXAMPLE_FORM_CONFIG: FormConfig = {
8
- sections: [
9
- {
10
- sectionTitle: 'User Information',
11
- fields: [
12
- {
13
- name: 'fullName',
14
- label: 'Full Name',
15
- type: 'text',
16
- placeholder: 'Enter full name',
17
- required: true,
18
- class: 'col-12'
19
- },
20
- {
21
- name: 'email',
22
- label: 'Email Address',
23
- type: 'email',
24
- placeholder: 'Enter email address',
25
- required: true,
26
- class: 'col-6'
27
- },
28
- {
29
- name: 'phone',
30
- label: 'Phone Number',
31
- type: 'tel',
32
- placeholder: '+91 9999999999',
33
- class: 'col-6'
34
- },
35
- {
36
- name: 'role',
37
- label: 'Role',
38
- type: 'dropdown',
39
- placeholder: 'Select Role',
40
- options: [
41
- { label: 'Admin', value: 'admin' },
42
- { label: 'User', value: 'user' },
43
- { label: 'Guest', value: 'guest' }
44
- ],
45
- class: 'col-12'
46
- }
47
- ]
48
- },
49
- {
50
- sectionTitle: 'Preferences',
51
- fields: [
52
- {
53
- name: 'notifications',
54
- label: 'Receive Notifications',
55
- type: 'radio',
56
- options: [
57
- { label: 'Yes', value: 'yes' },
58
- { label: 'No', value: 'no' }
59
- ],
60
- value: 'yes',
61
- class: 'col-12'
62
- }
63
- ]
64
- },
65
- {
66
- sectionTitle: 'Documents',
67
- fields: [
68
- {
69
- name: 'profilePicture',
70
- label: 'Profile Picture',
71
- type: 'file',
72
- accept: '.jpg,.png',
73
- multiple: false,
74
- helpText: 'Upload a single profile picture (Max 5MB)',
75
- class: 'col-12'
76
- },
77
- {
78
- name: 'certificates',
79
- label: 'Certificates',
80
- type: 'file',
81
- accept: '.pdf,.doc,.docx',
82
- multiple: true,
83
- helpText: 'Upload multiple certificates (Max 5MB each)',
84
- class: 'col-12'
85
- }
86
- ]
87
- }
88
- ],
89
- entityType: 'User'
90
- };
91
-
92
- /**
93
- * Example: Target Group Configuration
94
- * Demonstrates composite fields for Age Group and Gender Split
95
- */
96
- export const TARGET_GROUP_CONFIG: FormConfig = {
97
- sections: [
98
- {
99
- sectionTitle: 'Target Group Settings',
100
- fields: [
101
- {
102
- name: 'targetAgeGroup',
103
- label: 'Target Age Group',
104
- type: 'composite',
105
- separator: '-',
106
- subFields: [
107
- {
108
- label: "Min Age",
109
- name: 'minAge',
110
- type: 'number',
111
- placeholder: 'Min Age',
112
- validationRules: { min: 0 }
113
- },
114
- {
115
- label: "Max Age",
116
- name: 'maxAge',
117
- type: 'number',
118
- placeholder: 'Max Age',
119
- validationRules: { min: 0 }
120
- }
121
- ],
122
- compositeValidationRule: 'minMax',
123
- class: 'col-12'
124
- },
125
- {
126
- name: 'genderSplit',
127
- label: 'Target Gender Split',
128
- type: 'composite',
129
- subFields: [
130
- {
131
- label: "Male",
132
- name: 'malePercentage',
133
- type: 'number',
134
- placeholder: 'Male',
135
- suffixText: '%',
136
- validationRules: { min: 0, max: 100 }
137
- },
138
- {
139
- label: "Female",
140
- name: 'femalePercentage',
141
- type: 'number',
142
- placeholder: 'Female',
143
- suffixText: '%',
144
- validationRules: { min: 0, max: 100 }
145
- }
146
- ],
147
- compositeValidationRule: 'percentageTotal',
148
- class: 'col-12'
149
- }
150
- ]
151
- }
152
- ],
153
-
154
- };
@@ -1,131 +0,0 @@
1
- export type FieldType = 'text' | 'number' | 'email' | 'tel' | 'password' | 'select' | 'radio' | 'textarea' | 'date' | 'composite' | 'file' | 'dropdown' | 'url';
2
- export type KeyType = 'KEY_TYPE.UI_INPUT' | 'KEY_TYPE.NESTED_REF_JSON' | 'KEY_TYPE.REF_JSON';
3
- export type UIType = 'UI_TYPE.TEXT' | 'UI_TYPE.DROP_DOWN' | 'UI_TYPE.RADIO' | 'UI_TYPE.DATE' | 'UI_TYPE.FILE' | 'UI_TYPE.TEXTAREA';
4
- export type UISubType = 'UI_SUBTYPE.SHORT_TEXT' | 'UI_SUBTYPE.LONG_TEXT' | 'UI_SUBTYPE.NUMBER' | 'UI_SUBTYPE.EMAIL' | 'UI_SUBTYPE.PHONE' | 'UI_SUBTYPE.URL';
5
- export type OptionDTO = 'OPTION_DTO.REF_DATA' | 'OPTION_DTO.STATIC';
6
-
7
- export interface FormOption {
8
- label: string;
9
- value: any;
10
- code?: string;
11
- name?: string;
12
- }
13
-
14
- export interface OptionConfig {
15
- optionDTO: OptionDTO;
16
- class?: string;
17
- url?: string;
18
- labelKey?: string;
19
- requestKey?: string;
20
- valueKey?: string;
21
- staticOptions?: FormOption[];
22
- }
23
-
24
- export interface UIConfig {
25
- type: UIType;
26
- subType?: UISubType;
27
- dependent?: string[]; // Array of field names that depend on this field
28
- optionConfigs?: OptionConfig;
29
- minCharacters?: number;
30
- maxCharacters?: number;
31
- }
32
-
33
- export interface ValidationRules {
34
- isMandatory?: boolean;
35
- isRequired?: boolean; // Alias for isMandatory
36
- minLength?: number;
37
- maxLength?: number;
38
- pattern?: string;
39
- min?: number;
40
- max?: number;
41
- }
42
-
43
- export interface UploadedFile {
44
- name: string;
45
- size: number;
46
- type: string;
47
- url?: string;
48
- file?: File;
49
- }
50
-
51
- export interface FormField {
52
- // Core properties
53
- type?: FieldType;
54
- name: string;
55
- label?: string; // i18n key
56
- jsonKey?: string; // Alternative to 'name' for JSON config
57
- sequence?: number; // For ordering fields
58
-
59
- // JSON Config properties
60
- keyType?: KeyType;
61
- uiConfig?: UIConfig;
62
- validationRules?: ValidationRules;
63
-
64
- // Legacy properties (for backward compatibility)
65
- placeholder?: string;
66
- hint?: string;
67
- helpText?: string;
68
- options?: FormOption[];
69
- required?: boolean;
70
- mandatory?: boolean;
71
- disabled?: boolean;
72
- visible?: boolean; // Controls field visibility
73
- class?: string; // Grid class e.g. 'col-3', 'col-6 col-md-4'
74
- value?: any;
75
- icon?: string; // Internal icon
76
- suffixIcon?: string;
77
- prefixIcon?: string;
78
- suffixText?: string;
79
- readonly?: boolean;
80
- subFields?: FormField[]; // For composite fields
81
- separator?: string; // For composite fields like 'Age Range'
82
- dependsOn?: string; // Name of the field this field depends on
83
- dependent?: string[]; // Fields that depend on this field
84
- accept?: string; // For file fields
85
- multiple?: boolean; // For file fields
86
- uploadedFiles?: UploadedFile[]; // Track uploaded files
87
-
88
- // Dynamic options
89
- optionConfigs?: OptionConfig;
90
- loadedOptions?: FormOption[]; // Dynamically loaded options
91
-
92
- // Composite Validators
93
- compositeValidationRule?: 'minTotal' | 'percentageTotal' | 'minMax';
94
- }
95
-
96
- export interface FormSection {
97
- sectionTitle?: string;
98
- fields: FormField[];
99
- isRepeater?: boolean; // If true, this section is a FormArray
100
- addLabel?: string; // Label for 'Add' button if repeater
101
- removeLabel?: string; // Label for 'Remove' button if repeater
102
- repeaterItemLabel?: string; // Label template for repeater items (e.g., "Contact")
103
- formArrayName?: string; // Name for the FormArray control
104
- noCardLayout?: boolean; // If true, removes the section-card container styling
105
- collapsible?: boolean; // If true, section can be collapsed
106
- collapsed?: boolean; // Initial collapsed state
107
- minItems?: number; // Minimum number of items in repeater (default: 1)
108
- maxItems?: number; // Maximum number of items in repeater
109
- class?: string; // CSS class for section container
110
- }
111
-
112
- export interface FormConfig {
113
- sections: FormSection[];
114
- entityType?: string;
115
- }
116
-
117
- // JSON Config format (from API)
118
- export interface JsonFieldConfig {
119
- jsonKey: string;
120
- sequence: number;
121
- label: string;
122
- keyType: KeyType;
123
- validationRules?: ValidationRules;
124
- uiConfig: UIConfig;
125
- }
126
-
127
- export interface JsonFormConfig {
128
- entityType: string;
129
- label: string;
130
- jsonConfig: JsonFieldConfig[];
131
- }
@@ -1,19 +0,0 @@
1
- import { NgModule } from '@angular/core';
2
- import { CommonModule } from '@angular/common';
3
- import { ReactiveFormsModule } from '@angular/forms';
4
- import { ConfigurableFormComponent } from './component/configurable-form.component';
5
- import { MaterialModule } from '../material/material.module';
6
-
7
- @NgModule({
8
- declarations: [],
9
- imports: [
10
- CommonModule,
11
- ReactiveFormsModule,
12
- MaterialModule,
13
- ConfigurableFormComponent
14
- ],
15
- exports: [
16
- ConfigurableFormComponent
17
- ]
18
- })
19
- export class ConfigurableFormModule { }
@@ -1,77 +0,0 @@
1
- <div *ngIf="isOpen" class="cc-modal-backdrop"
2
- [ngClass]="{'cc-modal-backdrop--side-panel': mergedConfig.type === 'side-panel'}"
3
- (click)="onBackdropClick($event)" role="dialog" [attr.aria-modal]="true"
4
- [attr.aria-labelledby]="'modal-title-' + mergedConfig.title" [attr.aria-label]="mergedConfig.ariaLabel"
5
- [attr.aria-describedby]="mergedConfig.ariaDescribedBy">
6
-
7
- <div class="cc-modal-container {{ mergedConfig.customClass }}"
8
- [ngClass]="{'side-panel': mergedConfig.type === 'side-panel'}"
9
- [ngStyle]="getModalStyles()" (click)="$event.stopPropagation()">
10
-
11
- <!-- Header -->
12
- <div [ngClass]="getHeaderClass()" [style.background-color]="mergedConfig.headerBackgroundColor"
13
- [style.border-bottom]="mergedConfig.headerBorderBottom">
14
- <div class="modal-header__content">
15
- <!-- Icon (Optional) -->
16
- <span *ngIf="mergedConfig.icon" class="modal-header__icon">
17
- <ng-container [ngSwitch]="resolveIconType(mergedConfig.icon)">
18
- <mat-icon *ngSwitchCase="'material'" [style.color]="getIconColor(mergedConfig.icon)">
19
- {{ getIconValue(mergedConfig.icon) }}
20
- </mat-icon>
21
- <img *ngSwitchCase="'custom'" [src]="getIconValue(mergedConfig.icon)"
22
- [attr.alt]="mergedConfig.labels?.iconAltText || mergedConfig.title + ' icon'"
23
- class="modal-header__custom-icon">
24
- <img *ngSwitchCase="'img'" [src]="getIconValue(mergedConfig.icon)"
25
- [attr.alt]="mergedConfig.labels?.iconAltText || mergedConfig.title + ' icon'"
26
- class="modal-header__custom-icon">
27
- </ng-container>
28
- </span>
29
-
30
- <!-- Title -->
31
- <h2 class="modal-header__title" [id]="'modal-title-' + mergedConfig.title"
32
- [style.color]="mergedConfig.headerTextColor">
33
- {{ mergedConfig.title }}
34
- </h2>
35
- </div>
36
-
37
- <!-- Code Snippet Button -->
38
- <button *ngIf="mergedConfig.showCodeSnippetButton" type="button" class="modal-header__code-btn"
39
- (click)="onShowCodeSnippet()" [attr.aria-label]="mergedConfig.labels?.codeSnippetAriaLabel"
40
- [attr.title]="mergedConfig.labels?.codeSnippetTitle">
41
- <mat-icon>code</mat-icon>
42
- </button>
43
-
44
- <!-- Close Button -->
45
- <button *ngIf="mergedConfig.showCloseButton" type="button" class="modal-header__close" (click)="onClose()"
46
- [attr.aria-label]="mergedConfig.labels?.closeAriaLabel">
47
- <mat-icon>close</mat-icon>
48
- </button>
49
- </div>
50
-
51
- <!-- Body (Content Projection) -->
52
- <div class="cc-modal-body" [ngClass]="{'cc-modal-body--form-mode': mergedConfig.formMode}" [style.padding]="mergedConfig.padding" [style.color]="mergedConfig.bodyTextColor">
53
- <ng-content></ng-content>
54
- </div>
55
-
56
- <!-- Footer -->
57
- <div class="cc-modal-footer" [style.background-color]="mergedConfig.footerBackgroundColor"
58
- [style.border-top]="mergedConfig.footerBorderTop">
59
-
60
- <ng-container *ngIf="!mergedConfig.customFooter">
61
- <button *ngIf="mergedConfig.cancelButton?.show" type="button" class="cc-btn cc-btn-secondary"
62
- (click)="onCancel()">
63
- {{ mergedConfig.cancelButton?.label }}
64
- </button>
65
-
66
- <button type="button" [ngClass]="getConfirmButtonClass()"
67
- [disabled]="confirmDisabled || mergedConfig.confirmButton.disabled || confirmLoading || mergedConfig.confirmButton.loading"
68
- (click)="onConfirm()">
69
- <span *ngIf="confirmLoading || mergedConfig.confirmButton.loading" class="cc-btn-spinner"></span>
70
- {{ mergedConfig.confirmButton.label }}
71
- </button>
72
- </ng-container>
73
-
74
- <ng-content select="[cc-modal-footer]"></ng-content>
75
- </div>
76
- </div>
77
- </div>