commons-shared-web-ui 0.0.50 → 0.0.51

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