commons-shared-web-ui 0.0.55 → 0.0.57

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 (223) 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/src/lib/modules/button/button.theme.scss +4 -4
  6. package/.claude/settings.local.json +0 -10
  7. package/documentation/alert.md +0 -123
  8. package/documentation/button-dropdown.md +0 -126
  9. package/documentation/button.md +0 -184
  10. package/documentation/cards-usage-guidelines.md +0 -131
  11. package/documentation/configurable-form.md +0 -605
  12. package/documentation/confirmation-modal.md +0 -250
  13. package/documentation/filter-sidebar.md +0 -178
  14. package/documentation/filter-table-selector.md +0 -228
  15. package/documentation/form-builder.md +0 -599
  16. package/documentation/form-components.md +0 -384
  17. package/documentation/form-field-configuration.md +0 -250
  18. package/documentation/nav.md +0 -427
  19. package/documentation/pagination.md +0 -181
  20. package/documentation/side-nav-documentation.md +0 -169
  21. package/documentation/smart-form.md +0 -2765
  22. package/documentation/smart-table.md +0 -1221
  23. package/documentation/snackbar.md +0 -118
  24. package/documentation/style-externalization.md +0 -88
  25. package/documentation/summary-card.md +0 -279
  26. package/documentation/table-column-configuration.md +0 -221
  27. package/documentation/time-picker.md +0 -274
  28. package/ng-package.json +0 -30
  29. package/src/lib/modules/alert/alert.models.ts +0 -6
  30. package/src/lib/modules/alert/alert.module.ts +0 -16
  31. package/src/lib/modules/alert/components/alert/alert.component.html +0 -27
  32. package/src/lib/modules/alert/components/alert/alert.component.scss +0 -92
  33. package/src/lib/modules/alert/components/alert/alert.component.ts +0 -81
  34. package/src/lib/modules/button/button.models.ts +0 -13
  35. package/src/lib/modules/button/button.module.ts +0 -16
  36. package/src/lib/modules/button/components/button/button.component.html +0 -22
  37. package/src/lib/modules/button/components/button/button.component.scss +0 -88
  38. package/src/lib/modules/button/components/button/button.component.ts +0 -67
  39. package/src/lib/modules/button-dropdown/button-dropdown.models.ts +0 -26
  40. package/src/lib/modules/button-dropdown/button-dropdown.module.ts +0 -22
  41. package/src/lib/modules/button-dropdown/components/button-dropdown/button-dropdown.component.html +0 -41
  42. package/src/lib/modules/button-dropdown/components/button-dropdown/button-dropdown.component.scss +0 -135
  43. package/src/lib/modules/button-dropdown/components/button-dropdown/button-dropdown.component.ts +0 -160
  44. package/src/lib/modules/configurable-form/component/configurable-form.component.html +0 -294
  45. package/src/lib/modules/configurable-form/component/configurable-form.component.scss +0 -503
  46. package/src/lib/modules/configurable-form/component/configurable-form.component.ts +0 -628
  47. package/src/lib/modules/configurable-form/configurable-form.examples.ts +0 -154
  48. package/src/lib/modules/configurable-form/configurable-form.model.ts +0 -131
  49. package/src/lib/modules/configurable-form/configurable-form.module.ts +0 -19
  50. package/src/lib/modules/confirmation-modal/components/confirmation-modal/confirmation-modal.component.html +0 -77
  51. package/src/lib/modules/confirmation-modal/components/confirmation-modal/confirmation-modal.component.scss +0 -395
  52. package/src/lib/modules/confirmation-modal/components/confirmation-modal/confirmation-modal.component.ts +0 -266
  53. package/src/lib/modules/confirmation-modal/confirmation-modal.models.ts +0 -71
  54. package/src/lib/modules/confirmation-modal/confirmation-modal.module.ts +0 -20
  55. package/src/lib/modules/filter/components/filter/filter.component.html +0 -131
  56. package/src/lib/modules/filter/components/filter/filter.component.scss +0 -245
  57. package/src/lib/modules/filter/components/filter/filter.component.ts +0 -216
  58. package/src/lib/modules/filter/filter.models.ts +0 -88
  59. package/src/lib/modules/filter/filter.module.ts +0 -24
  60. package/src/lib/modules/filter-sidebar/components/filter-sidebar/filter-sidebar.component.html +0 -112
  61. package/src/lib/modules/filter-sidebar/components/filter-sidebar/filter-sidebar.component.scss +0 -186
  62. package/src/lib/modules/filter-sidebar/components/filter-sidebar/filter-sidebar.component.ts +0 -163
  63. package/src/lib/modules/filter-sidebar/filter-sidebar.models.ts +0 -95
  64. package/src/lib/modules/filter-sidebar/filter-sidebar.module.ts +0 -24
  65. package/src/lib/modules/filter-table-selector/components/filter-table-selector/filter-table-selector.component.html +0 -73
  66. package/src/lib/modules/filter-table-selector/components/filter-table-selector/filter-table-selector.component.scss +0 -321
  67. package/src/lib/modules/filter-table-selector/components/filter-table-selector/filter-table-selector.component.ts +0 -361
  68. package/src/lib/modules/filter-table-selector/filter-table-selector.models.ts +0 -91
  69. package/src/lib/modules/filter-table-selector/filter-table-selector.module.ts +0 -22
  70. package/src/lib/modules/form-builder/components/field-configurator/configurator-config-panel/configurator-config-panel.component.html +0 -63
  71. package/src/lib/modules/form-builder/components/field-configurator/configurator-config-panel/configurator-config-panel.component.scss +0 -496
  72. package/src/lib/modules/form-builder/components/field-configurator/configurator-config-panel/configurator-config-panel.component.ts +0 -445
  73. package/src/lib/modules/form-builder/components/field-configurator/configurator-tree/configurator-tree.component.html +0 -75
  74. package/src/lib/modules/form-builder/components/field-configurator/configurator-tree/configurator-tree.component.scss +0 -210
  75. package/src/lib/modules/form-builder/components/field-configurator/configurator-tree/configurator-tree.component.ts +0 -55
  76. package/src/lib/modules/form-builder/components/field-configurator/field-configurator.component.html +0 -25
  77. package/src/lib/modules/form-builder/components/field-configurator/field-configurator.component.scss +0 -82
  78. package/src/lib/modules/form-builder/components/field-configurator/field-configurator.component.ts +0 -95
  79. package/src/lib/modules/form-builder/components/field-selection/field-selection.component.html +0 -20
  80. package/src/lib/modules/form-builder/components/field-selection/field-selection.component.scss +0 -37
  81. package/src/lib/modules/form-builder/components/field-selection/field-selection.component.ts +0 -94
  82. package/src/lib/modules/form-builder/components/field-selection/group-node/group-node.component.html +0 -46
  83. package/src/lib/modules/form-builder/components/field-selection/group-node/group-node.component.scss +0 -102
  84. package/src/lib/modules/form-builder/components/field-selection/group-node/group-node.component.ts +0 -50
  85. package/src/lib/modules/form-builder/components/field-selection/selection-field-node/selection-field-node.component.html +0 -35
  86. package/src/lib/modules/form-builder/components/field-selection/selection-field-node/selection-field-node.component.scss +0 -67
  87. package/src/lib/modules/form-builder/components/field-selection/selection-field-node/selection-field-node.component.ts +0 -34
  88. package/src/lib/modules/form-builder/components/field-selection/selection-section-node/selection-section-node.component.html +0 -68
  89. package/src/lib/modules/form-builder/components/field-selection/selection-section-node/selection-section-node.component.scss +0 -113
  90. package/src/lib/modules/form-builder/components/field-selection/selection-section-node/selection-section-node.component.ts +0 -74
  91. package/src/lib/modules/form-builder/configs/field-type-schema.map.ts +0 -533
  92. package/src/lib/modules/form-builder/form-builder.module.ts +0 -36
  93. package/src/lib/modules/form-builder/index.ts +0 -9
  94. package/src/lib/modules/form-builder/models/builder.models.ts +0 -7
  95. package/src/lib/modules/form-builder/models/field-configurator.models.ts +0 -38
  96. package/src/lib/modules/form-builder/models/field-selection.models.ts +0 -51
  97. package/src/lib/modules/form-builder/services/field-configurator.service.ts +0 -258
  98. package/src/lib/modules/form-builder/services/field-selection.service.ts +0 -299
  99. package/src/lib/modules/form-builder/services/form-schema-tree.service.ts +0 -670
  100. package/src/lib/modules/form-builder/tokens/builder.tokens.ts +0 -10
  101. package/src/lib/modules/form-builder/utils/constants.ts +0 -43
  102. package/src/lib/modules/form-components/components/checkbox/checkbox.component.html +0 -29
  103. package/src/lib/modules/form-components/components/checkbox/checkbox.component.scss +0 -111
  104. package/src/lib/modules/form-components/components/checkbox/checkbox.component.ts +0 -207
  105. package/src/lib/modules/form-components/components/checkbox/checkbox.models.ts +0 -35
  106. package/src/lib/modules/form-components/components/datepicker/datepicker.component.html +0 -42
  107. package/src/lib/modules/form-components/components/datepicker/datepicker.component.scss +0 -115
  108. package/src/lib/modules/form-components/components/datepicker/datepicker.component.ts +0 -267
  109. package/src/lib/modules/form-components/components/datepicker/datepicker.models.ts +0 -45
  110. package/src/lib/modules/form-components/components/dropdown/dropdown.component.html +0 -74
  111. package/src/lib/modules/form-components/components/dropdown/dropdown.component.scss +0 -252
  112. package/src/lib/modules/form-components/components/dropdown/dropdown.component.ts +0 -377
  113. package/src/lib/modules/form-components/components/dropdown/dropdown.models.ts +0 -53
  114. package/src/lib/modules/form-components/components/input/input.component.html +0 -51
  115. package/src/lib/modules/form-components/components/input/input.component.scss +0 -128
  116. package/src/lib/modules/form-components/components/input/input.component.ts +0 -250
  117. package/src/lib/modules/form-components/components/input/input.models.ts +0 -55
  118. package/src/lib/modules/form-components/components/radio/radio.component.html +0 -22
  119. package/src/lib/modules/form-components/components/radio/radio.component.scss +0 -107
  120. package/src/lib/modules/form-components/components/radio/radio.component.ts +0 -181
  121. package/src/lib/modules/form-components/components/radio/radio.models.ts +0 -39
  122. package/src/lib/modules/form-components/components/search/search.component.html +0 -15
  123. package/src/lib/modules/form-components/components/search/search.component.scss +0 -87
  124. package/src/lib/modules/form-components/components/search/search.component.ts +0 -213
  125. package/src/lib/modules/form-components/components/search/search.models.ts +0 -40
  126. package/src/lib/modules/form-components/components/toggle/toggle.component.html +0 -15
  127. package/src/lib/modules/form-components/components/toggle/toggle.component.scss +0 -81
  128. package/src/lib/modules/form-components/components/toggle/toggle.component.ts +0 -166
  129. package/src/lib/modules/form-components/components/toggle/toggle.models.ts +0 -27
  130. package/src/lib/modules/form-components/directives/click-outside.directive.ts +0 -22
  131. package/src/lib/modules/form-components/form-components.module.ts +0 -42
  132. package/src/lib/modules/form-field-configuration/components/_ffc-controls.scss +0 -89
  133. package/src/lib/modules/form-field-configuration/components/config-field-node/config-field-node.component.html +0 -68
  134. package/src/lib/modules/form-field-configuration/components/config-field-node/config-field-node.component.scss +0 -73
  135. package/src/lib/modules/form-field-configuration/components/config-field-node/config-field-node.component.ts +0 -34
  136. package/src/lib/modules/form-field-configuration/components/config-section-node/config-section-node.component.html +0 -78
  137. package/src/lib/modules/form-field-configuration/components/config-section-node/config-section-node.component.scss +0 -83
  138. package/src/lib/modules/form-field-configuration/components/config-section-node/config-section-node.component.ts +0 -94
  139. package/src/lib/modules/form-field-configuration/components/form-field-configuration/form-field-configuration.component.html +0 -38
  140. package/src/lib/modules/form-field-configuration/components/form-field-configuration/form-field-configuration.component.scss +0 -42
  141. package/src/lib/modules/form-field-configuration/components/form-field-configuration/form-field-configuration.component.ts +0 -92
  142. package/src/lib/modules/form-field-configuration/form-field-configuration.module.ts +0 -23
  143. package/src/lib/modules/form-field-configuration/index.ts +0 -7
  144. package/src/lib/modules/form-field-configuration/models/field-configuration.models.ts +0 -62
  145. package/src/lib/modules/form-field-configuration/services/config-schema-tree.service.ts +0 -159
  146. package/src/lib/modules/form-field-configuration/services/field-configuration.service.ts +0 -228
  147. package/src/lib/modules/material/material.module.ts +0 -94
  148. package/src/lib/modules/nav/components/nav/nav.component.html +0 -34
  149. package/src/lib/modules/nav/components/nav/nav.component.scss +0 -171
  150. package/src/lib/modules/nav/components/nav/nav.component.ts +0 -82
  151. package/src/lib/modules/nav/nav.models.ts +0 -31
  152. package/src/lib/modules/nav/nav.module.ts +0 -17
  153. package/src/lib/modules/pagination/components/pagination/pagination.component.html +0 -52
  154. package/src/lib/modules/pagination/components/pagination/pagination.component.scss +0 -155
  155. package/src/lib/modules/pagination/components/pagination/pagination.component.ts +0 -109
  156. package/src/lib/modules/pagination/pagination.module.ts +0 -17
  157. package/src/lib/modules/side-nav/components/side-nav/side-nav.component.html +0 -56
  158. package/src/lib/modules/side-nav/components/side-nav/side-nav.component.scss +0 -342
  159. package/src/lib/modules/side-nav/components/side-nav/side-nav.component.ts +0 -135
  160. package/src/lib/modules/side-nav/side-nav.models.ts +0 -38
  161. package/src/lib/modules/side-nav/side-nav.module.ts +0 -16
  162. package/src/lib/modules/smart-form/components/form-field/form-field.component.html +0 -1330
  163. package/src/lib/modules/smart-form/components/form-field/form-field.component.scss +0 -2112
  164. package/src/lib/modules/smart-form/components/form-field/form-field.component.ts +0 -3006
  165. package/src/lib/modules/smart-form/components/form-section/form-section.component.html +0 -65
  166. package/src/lib/modules/smart-form/components/form-section/form-section.component.scss +0 -209
  167. package/src/lib/modules/smart-form/components/form-section/form-section.component.ts +0 -131
  168. package/src/lib/modules/smart-form/components/smart-form/smart-form.component.html +0 -253
  169. package/src/lib/modules/smart-form/components/smart-form/smart-form.component.scss +0 -689
  170. package/src/lib/modules/smart-form/components/smart-form/smart-form.component.ts +0 -1131
  171. package/src/lib/modules/smart-form/index.ts +0 -10
  172. package/src/lib/modules/smart-form/models/form-schema.model.ts +0 -793
  173. package/src/lib/modules/smart-form/models/hierarchy-config.model.ts +0 -21
  174. package/src/lib/modules/smart-form/services/expression.service.ts +0 -75
  175. package/src/lib/modules/smart-form/services/smart-form-controller.service.ts +0 -67
  176. package/src/lib/modules/smart-form/smart-form.examples.ts +0 -1324
  177. package/src/lib/modules/smart-form/smart-form.module.ts +0 -38
  178. package/src/lib/modules/smart-form/utils/translation.utils.ts +0 -82
  179. package/src/lib/modules/smart-form/utils/trusted-url.pipe.ts +0 -25
  180. package/src/lib/modules/smart-form/utils/validation.utils.ts +0 -98
  181. package/src/lib/modules/smart-table/components/smart-table/smart-table.component.html +0 -283
  182. package/src/lib/modules/smart-table/components/smart-table/smart-table.component.scss +0 -685
  183. package/src/lib/modules/smart-table/components/smart-table/smart-table.component.ts +0 -1128
  184. package/src/lib/modules/smart-table/models/table-config.model.ts +0 -213
  185. package/src/lib/modules/smart-table/smart-table.module.ts +0 -30
  186. package/src/lib/modules/smart-table/utils/safe-html.pipe.ts +0 -28
  187. package/src/lib/modules/smart-table/utils/smart-table.utils.ts +0 -18
  188. package/src/lib/modules/snackbar/components/snackbar.component.html +0 -41
  189. package/src/lib/modules/snackbar/components/snackbar.component.scss +0 -99
  190. package/src/lib/modules/snackbar/components/snackbar.component.ts +0 -18
  191. package/src/lib/modules/snackbar/models/snackbar.models.ts +0 -10
  192. package/src/lib/modules/snackbar/services/snackbar.service.ts +0 -40
  193. package/src/lib/modules/snackbar/snackbar.module.ts +0 -11
  194. package/src/lib/modules/summary-card/components/summary-card/summary-card.component.html +0 -47
  195. package/src/lib/modules/summary-card/components/summary-card/summary-card.component.scss +0 -199
  196. package/src/lib/modules/summary-card/components/summary-card/summary-card.component.ts +0 -126
  197. package/src/lib/modules/summary-card/summary-card.module.ts +0 -18
  198. package/src/lib/modules/table-column-configuration/components/_tcc-controls.scss +0 -53
  199. package/src/lib/modules/table-column-configuration/components/config-column-node/config-column-node.component.html +0 -47
  200. package/src/lib/modules/table-column-configuration/components/config-column-node/config-column-node.component.scss +0 -50
  201. package/src/lib/modules/table-column-configuration/components/config-column-node/config-column-node.component.ts +0 -33
  202. package/src/lib/modules/table-column-configuration/components/table-column-configuration/table-column-configuration.component.html +0 -30
  203. package/src/lib/modules/table-column-configuration/components/table-column-configuration/table-column-configuration.component.scss +0 -36
  204. package/src/lib/modules/table-column-configuration/components/table-column-configuration/table-column-configuration.component.ts +0 -78
  205. package/src/lib/modules/table-column-configuration/index.ts +0 -5
  206. package/src/lib/modules/table-column-configuration/models/table-column-configuration.models.ts +0 -20
  207. package/src/lib/modules/table-column-configuration/services/table-column-configuration.service.ts +0 -77
  208. package/src/lib/modules/table-column-configuration/table-column-configuration.module.ts +0 -21
  209. package/src/lib/modules/time-picker/components/time-picker/time-picker.component.html +0 -37
  210. package/src/lib/modules/time-picker/components/time-picker/time-picker.component.scss +0 -102
  211. package/src/lib/modules/time-picker/components/time-picker/time-picker.component.ts +0 -178
  212. package/src/lib/modules/time-picker/components/time-wheel-panel/time-wheel-panel.component.html +0 -78
  213. package/src/lib/modules/time-picker/components/time-wheel-panel/time-wheel-panel.component.scss +0 -226
  214. package/src/lib/modules/time-picker/components/time-wheel-panel/time-wheel-panel.component.ts +0 -595
  215. package/src/lib/modules/time-picker/models/time-picker.models.ts +0 -49
  216. package/src/lib/modules/time-picker/time-picker.module.ts +0 -23
  217. package/src/lib/shared-ui.module.ts +0 -55
  218. package/src/lib/utils/constants.ts +0 -11
  219. package/src/lib/utils/storage.utils.ts +0 -37
  220. package/src/lib/utils/string.utils.ts +0 -23
  221. package/src/lib/utils/translation.utils.ts +0 -87
  222. package/src/public-api.ts +0 -127
  223. 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>