commons-shared-web-ui 0.0.50 → 0.0.52

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 (187) hide show
  1. package/fesm2022/commons-shared-web-ui.mjs +14557 -0
  2. package/fesm2022/commons-shared-web-ui.mjs.map +1 -0
  3. package/index.d.ts +4534 -0
  4. package/package.json +34 -53
  5. package/src/lib/styles/utilities.scss +1 -0
  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 -597
  16. package/documentation/form-components.md +0 -384
  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 -2405
  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/ng-package.json +0 -28
  26. package/src/lib/modules/alert/alert.models.ts +0 -6
  27. package/src/lib/modules/alert/alert.module.ts +0 -16
  28. package/src/lib/modules/alert/components/alert/alert.component.html +0 -27
  29. package/src/lib/modules/alert/components/alert/alert.component.scss +0 -92
  30. package/src/lib/modules/alert/components/alert/alert.component.ts +0 -81
  31. package/src/lib/modules/button/button.models.ts +0 -13
  32. package/src/lib/modules/button/button.module.ts +0 -16
  33. package/src/lib/modules/button/components/button/button.component.html +0 -22
  34. package/src/lib/modules/button/components/button/button.component.scss +0 -88
  35. package/src/lib/modules/button/components/button/button.component.ts +0 -67
  36. package/src/lib/modules/button-dropdown/button-dropdown.models.ts +0 -26
  37. package/src/lib/modules/button-dropdown/button-dropdown.module.ts +0 -22
  38. package/src/lib/modules/button-dropdown/button-dropdown.theme.scss +0 -87
  39. package/src/lib/modules/button-dropdown/components/button-dropdown/button-dropdown.component.html +0 -41
  40. package/src/lib/modules/button-dropdown/components/button-dropdown/button-dropdown.component.scss +0 -135
  41. package/src/lib/modules/button-dropdown/components/button-dropdown/button-dropdown.component.ts +0 -160
  42. package/src/lib/modules/configurable-form/component/configurable-form.component.html +0 -294
  43. package/src/lib/modules/configurable-form/component/configurable-form.component.scss +0 -503
  44. package/src/lib/modules/configurable-form/component/configurable-form.component.ts +0 -628
  45. package/src/lib/modules/configurable-form/configurable-form.examples.ts +0 -154
  46. package/src/lib/modules/configurable-form/configurable-form.model.ts +0 -131
  47. package/src/lib/modules/configurable-form/configurable-form.module.ts +0 -19
  48. package/src/lib/modules/confirmation-modal/components/confirmation-modal/confirmation-modal.component.html +0 -77
  49. package/src/lib/modules/confirmation-modal/components/confirmation-modal/confirmation-modal.component.scss +0 -395
  50. package/src/lib/modules/confirmation-modal/components/confirmation-modal/confirmation-modal.component.ts +0 -266
  51. package/src/lib/modules/confirmation-modal/confirmation-modal.models.ts +0 -71
  52. package/src/lib/modules/confirmation-modal/confirmation-modal.module.ts +0 -20
  53. package/src/lib/modules/filter/components/filter/filter.component.html +0 -131
  54. package/src/lib/modules/filter/components/filter/filter.component.scss +0 -245
  55. package/src/lib/modules/filter/components/filter/filter.component.ts +0 -216
  56. package/src/lib/modules/filter/filter.models.ts +0 -88
  57. package/src/lib/modules/filter/filter.module.ts +0 -24
  58. package/src/lib/modules/filter-sidebar/components/filter-sidebar/filter-sidebar.component.html +0 -112
  59. package/src/lib/modules/filter-sidebar/components/filter-sidebar/filter-sidebar.component.scss +0 -186
  60. package/src/lib/modules/filter-sidebar/components/filter-sidebar/filter-sidebar.component.ts +0 -163
  61. package/src/lib/modules/filter-sidebar/filter-sidebar.models.ts +0 -95
  62. package/src/lib/modules/filter-sidebar/filter-sidebar.module.ts +0 -24
  63. package/src/lib/modules/filter-table-selector/components/filter-table-selector/filter-table-selector.component.html +0 -73
  64. package/src/lib/modules/filter-table-selector/components/filter-table-selector/filter-table-selector.component.scss +0 -321
  65. package/src/lib/modules/filter-table-selector/components/filter-table-selector/filter-table-selector.component.ts +0 -361
  66. package/src/lib/modules/filter-table-selector/filter-table-selector.models.ts +0 -91
  67. package/src/lib/modules/filter-table-selector/filter-table-selector.module.ts +0 -22
  68. package/src/lib/modules/form-builder/components/field-configurator/configurator-config-panel/configurator-config-panel.component.html +0 -63
  69. package/src/lib/modules/form-builder/components/field-configurator/configurator-config-panel/configurator-config-panel.component.scss +0 -496
  70. package/src/lib/modules/form-builder/components/field-configurator/configurator-config-panel/configurator-config-panel.component.ts +0 -445
  71. package/src/lib/modules/form-builder/components/field-configurator/configurator-tree/configurator-tree.component.html +0 -75
  72. package/src/lib/modules/form-builder/components/field-configurator/configurator-tree/configurator-tree.component.scss +0 -210
  73. package/src/lib/modules/form-builder/components/field-configurator/configurator-tree/configurator-tree.component.ts +0 -55
  74. package/src/lib/modules/form-builder/components/field-configurator/field-configurator.component.html +0 -25
  75. package/src/lib/modules/form-builder/components/field-configurator/field-configurator.component.scss +0 -82
  76. package/src/lib/modules/form-builder/components/field-configurator/field-configurator.component.ts +0 -95
  77. package/src/lib/modules/form-builder/components/field-selection/field-selection.component.html +0 -20
  78. package/src/lib/modules/form-builder/components/field-selection/field-selection.component.scss +0 -37
  79. package/src/lib/modules/form-builder/components/field-selection/field-selection.component.ts +0 -94
  80. package/src/lib/modules/form-builder/components/field-selection/group-node/group-node.component.html +0 -46
  81. package/src/lib/modules/form-builder/components/field-selection/group-node/group-node.component.scss +0 -102
  82. package/src/lib/modules/form-builder/components/field-selection/group-node/group-node.component.ts +0 -50
  83. package/src/lib/modules/form-builder/components/field-selection/selection-field-node/selection-field-node.component.html +0 -35
  84. package/src/lib/modules/form-builder/components/field-selection/selection-field-node/selection-field-node.component.scss +0 -67
  85. package/src/lib/modules/form-builder/components/field-selection/selection-field-node/selection-field-node.component.ts +0 -34
  86. package/src/lib/modules/form-builder/components/field-selection/selection-section-node/selection-section-node.component.html +0 -68
  87. package/src/lib/modules/form-builder/components/field-selection/selection-section-node/selection-section-node.component.scss +0 -113
  88. package/src/lib/modules/form-builder/components/field-selection/selection-section-node/selection-section-node.component.ts +0 -74
  89. package/src/lib/modules/form-builder/configs/field-type-schema.map.ts +0 -533
  90. package/src/lib/modules/form-builder/form-builder.module.ts +0 -36
  91. package/src/lib/modules/form-builder/index.ts +0 -9
  92. package/src/lib/modules/form-builder/models/builder.models.ts +0 -7
  93. package/src/lib/modules/form-builder/models/field-configurator.models.ts +0 -38
  94. package/src/lib/modules/form-builder/models/field-selection.models.ts +0 -51
  95. package/src/lib/modules/form-builder/services/field-configurator.service.ts +0 -258
  96. package/src/lib/modules/form-builder/services/field-selection.service.ts +0 -299
  97. package/src/lib/modules/form-builder/services/form-schema-tree.service.ts +0 -670
  98. package/src/lib/modules/form-builder/tokens/builder.tokens.ts +0 -10
  99. package/src/lib/modules/form-builder/utils/constants.ts +0 -43
  100. package/src/lib/modules/form-components/components/checkbox/checkbox.component.html +0 -29
  101. package/src/lib/modules/form-components/components/checkbox/checkbox.component.scss +0 -111
  102. package/src/lib/modules/form-components/components/checkbox/checkbox.component.ts +0 -207
  103. package/src/lib/modules/form-components/components/checkbox/checkbox.models.ts +0 -35
  104. package/src/lib/modules/form-components/components/datepicker/datepicker.component.html +0 -42
  105. package/src/lib/modules/form-components/components/datepicker/datepicker.component.scss +0 -115
  106. package/src/lib/modules/form-components/components/datepicker/datepicker.component.ts +0 -267
  107. package/src/lib/modules/form-components/components/datepicker/datepicker.models.ts +0 -45
  108. package/src/lib/modules/form-components/components/dropdown/dropdown.component.html +0 -74
  109. package/src/lib/modules/form-components/components/dropdown/dropdown.component.scss +0 -252
  110. package/src/lib/modules/form-components/components/dropdown/dropdown.component.ts +0 -377
  111. package/src/lib/modules/form-components/components/dropdown/dropdown.models.ts +0 -53
  112. package/src/lib/modules/form-components/components/input/input.component.html +0 -51
  113. package/src/lib/modules/form-components/components/input/input.component.scss +0 -128
  114. package/src/lib/modules/form-components/components/input/input.component.ts +0 -250
  115. package/src/lib/modules/form-components/components/input/input.models.ts +0 -55
  116. package/src/lib/modules/form-components/components/radio/radio.component.html +0 -22
  117. package/src/lib/modules/form-components/components/radio/radio.component.scss +0 -107
  118. package/src/lib/modules/form-components/components/radio/radio.component.ts +0 -181
  119. package/src/lib/modules/form-components/components/radio/radio.models.ts +0 -39
  120. package/src/lib/modules/form-components/components/search/search.component.html +0 -15
  121. package/src/lib/modules/form-components/components/search/search.component.scss +0 -87
  122. package/src/lib/modules/form-components/components/search/search.component.ts +0 -213
  123. package/src/lib/modules/form-components/components/search/search.models.ts +0 -40
  124. package/src/lib/modules/form-components/components/toggle/toggle.component.html +0 -15
  125. package/src/lib/modules/form-components/components/toggle/toggle.component.scss +0 -81
  126. package/src/lib/modules/form-components/components/toggle/toggle.component.ts +0 -166
  127. package/src/lib/modules/form-components/components/toggle/toggle.models.ts +0 -27
  128. package/src/lib/modules/form-components/directives/click-outside.directive.ts +0 -22
  129. package/src/lib/modules/form-components/form-components.module.ts +0 -41
  130. package/src/lib/modules/material/material.module.ts +0 -94
  131. package/src/lib/modules/nav/components/nav/nav.component.html +0 -34
  132. package/src/lib/modules/nav/components/nav/nav.component.scss +0 -171
  133. package/src/lib/modules/nav/components/nav/nav.component.ts +0 -82
  134. package/src/lib/modules/nav/nav.models.ts +0 -31
  135. package/src/lib/modules/nav/nav.module.ts +0 -17
  136. package/src/lib/modules/pagination/components/pagination/pagination.component.html +0 -52
  137. package/src/lib/modules/pagination/components/pagination/pagination.component.scss +0 -155
  138. package/src/lib/modules/pagination/components/pagination/pagination.component.ts +0 -109
  139. package/src/lib/modules/pagination/pagination.module.ts +0 -17
  140. package/src/lib/modules/side-nav/components/side-nav/side-nav.component.html +0 -56
  141. package/src/lib/modules/side-nav/components/side-nav/side-nav.component.scss +0 -342
  142. package/src/lib/modules/side-nav/components/side-nav/side-nav.component.ts +0 -135
  143. package/src/lib/modules/side-nav/side-nav.models.ts +0 -38
  144. package/src/lib/modules/side-nav/side-nav.module.ts +0 -16
  145. package/src/lib/modules/smart-form/components/form-field/form-field.component.html +0 -1196
  146. package/src/lib/modules/smart-form/components/form-field/form-field.component.scss +0 -2014
  147. package/src/lib/modules/smart-form/components/form-field/form-field.component.ts +0 -2525
  148. package/src/lib/modules/smart-form/components/form-section/form-section.component.html +0 -65
  149. package/src/lib/modules/smart-form/components/form-section/form-section.component.scss +0 -209
  150. package/src/lib/modules/smart-form/components/form-section/form-section.component.ts +0 -131
  151. package/src/lib/modules/smart-form/components/smart-form/smart-form.component.html +0 -253
  152. package/src/lib/modules/smart-form/components/smart-form/smart-form.component.scss +0 -689
  153. package/src/lib/modules/smart-form/components/smart-form/smart-form.component.ts +0 -1124
  154. package/src/lib/modules/smart-form/index.ts +0 -10
  155. package/src/lib/modules/smart-form/models/form-schema.model.ts +0 -733
  156. package/src/lib/modules/smart-form/models/hierarchy-config.model.ts +0 -21
  157. package/src/lib/modules/smart-form/services/expression.service.ts +0 -75
  158. package/src/lib/modules/smart-form/services/smart-form-controller.service.ts +0 -65
  159. package/src/lib/modules/smart-form/smart-form.examples.ts +0 -1324
  160. package/src/lib/modules/smart-form/smart-form.module.ts +0 -36
  161. package/src/lib/modules/smart-form/utils/translation.utils.ts +0 -82
  162. package/src/lib/modules/smart-form/utils/trusted-url.pipe.ts +0 -25
  163. package/src/lib/modules/smart-form/utils/validation.utils.ts +0 -98
  164. package/src/lib/modules/smart-table/components/smart-table/smart-table.component.html +0 -283
  165. package/src/lib/modules/smart-table/components/smart-table/smart-table.component.scss +0 -685
  166. package/src/lib/modules/smart-table/components/smart-table/smart-table.component.ts +0 -1128
  167. package/src/lib/modules/smart-table/models/table-config.model.ts +0 -207
  168. package/src/lib/modules/smart-table/smart-table.module.ts +0 -30
  169. package/src/lib/modules/smart-table/utils/safe-html.pipe.ts +0 -28
  170. package/src/lib/modules/smart-table/utils/smart-table.utils.ts +0 -18
  171. package/src/lib/modules/snackbar/components/snackbar.component.html +0 -41
  172. package/src/lib/modules/snackbar/components/snackbar.component.scss +0 -99
  173. package/src/lib/modules/snackbar/components/snackbar.component.ts +0 -18
  174. package/src/lib/modules/snackbar/models/snackbar.models.ts +0 -10
  175. package/src/lib/modules/snackbar/services/snackbar.service.ts +0 -40
  176. package/src/lib/modules/snackbar/snackbar.module.ts +0 -11
  177. package/src/lib/modules/summary-card/components/summary-card/summary-card.component.html +0 -47
  178. package/src/lib/modules/summary-card/components/summary-card/summary-card.component.scss +0 -199
  179. package/src/lib/modules/summary-card/components/summary-card/summary-card.component.ts +0 -126
  180. package/src/lib/modules/summary-card/summary-card.module.ts +0 -18
  181. package/src/lib/shared-ui.module.ts +0 -44
  182. package/src/lib/utils/constants.ts +0 -11
  183. package/src/lib/utils/storage.utils.ts +0 -37
  184. package/src/lib/utils/string.utils.ts +0 -23
  185. package/src/lib/utils/translation.utils.ts +0 -87
  186. package/src/public-api.ts +0 -104
  187. 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>