@3kles/kles-material-dynamicforms 18.0.4 → 18.1.0
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.
- package/esm2022/lib/directive/dynamic-field.directive.mjs +29 -14
- package/esm2022/lib/enums/type.enum.mjs +2 -1
- package/esm2022/lib/fields/file.component.mjs +41 -0
- package/esm2022/lib/fields/list-field.component.mjs +18 -11
- package/esm2022/lib/fields/text.component.mjs +17 -14
- package/esm2022/lib/forms/file-control.component.mjs +72 -0
- package/esm2022/lib/interfaces/field.config.interface.mjs +1 -1
- package/esm2022/lib/kles-material-dynamicforms.module.mjs +9 -1
- package/esm2022/lib/utils/destroyable.guard.mjs +5 -0
- package/esm2022/public-api.mjs +5 -1
- package/fesm2022/3kles-kles-material-dynamicforms.mjs +174 -37
- package/fesm2022/3kles-kles-material-dynamicforms.mjs.map +1 -1
- package/lib/enums/type.enum.d.ts +1 -0
- package/lib/fields/file.component.d.ts +6 -0
- package/lib/fields/list-field.component.d.ts +2 -0
- package/lib/fields/text.component.d.ts +1 -1
- package/lib/forms/file-control.component.d.ts +20 -0
- package/lib/interfaces/field.config.interface.d.ts +2 -1
- package/lib/kles-material-dynamicforms.module.d.ts +56 -53
- package/lib/utils/destroyable.guard.d.ts +4 -0
- package/package.json +2 -2
- package/public-api.d.ts +4 -0
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export function isDestroyable(value) {
|
|
2
|
+
return value !== null && typeof value === 'object' &&
|
|
3
|
+
typeof value.destroy === 'function';
|
|
4
|
+
}
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVzdHJveWFibGUuZ3VhcmQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rbGVzLW1hdGVyaWFsLWR5bmFtaWNmb3Jtcy9zcmMvbGliL3V0aWxzL2Rlc3Ryb3lhYmxlLmd1YXJkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLE1BQU0sVUFBVSxhQUFhLENBQUMsS0FBYztJQUN4QyxPQUFPLEtBQUssS0FBSyxJQUFJLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUTtRQUM5QyxPQUFRLEtBQXFCLENBQUMsT0FBTyxLQUFLLFVBQVUsQ0FBQztBQUM3RCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBEZXN0cm95YWJsZSB7XG4gICAgZGVzdHJveSgpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNEZXN0cm95YWJsZSh2YWx1ZTogdW5rbm93bik6IHZhbHVlIGlzIERlc3Ryb3lhYmxlIHtcbiAgICByZXR1cm4gdmFsdWUgIT09IG51bGwgJiYgdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJlxuICAgICAgICB0eXBlb2YgKHZhbHVlIGFzIERlc3Ryb3lhYmxlKS5kZXN0cm95ID09PSAnZnVuY3Rpb24nO1xufSJdfQ==
|
package/esm2022/public-api.mjs
CHANGED
|
@@ -12,6 +12,7 @@ export * from './lib/forms/button-control-base';
|
|
|
12
12
|
export * from './lib/forms/button-control.component';
|
|
13
13
|
export * from './lib/forms/buttonchecker-control.component';
|
|
14
14
|
export * from './lib/forms/buttonfile-control.component';
|
|
15
|
+
export * from './lib/forms/file-control.component';
|
|
15
16
|
export * from './lib/forms/fab-control.component';
|
|
16
17
|
export * from './lib/forms/mini-fab-control.component';
|
|
17
18
|
export * from './lib/forms/icon-button-control.component';
|
|
@@ -28,6 +29,7 @@ export * from './lib/fields/date.component';
|
|
|
28
29
|
export * from './lib/fields/field.abstract';
|
|
29
30
|
export * from './lib/fields/input.component';
|
|
30
31
|
export * from './lib/fields/input.clearable.component';
|
|
32
|
+
export * from './lib/fields/file.component';
|
|
31
33
|
export * from './lib/fields/label.component';
|
|
32
34
|
export * from './lib/fields/list-field.component';
|
|
33
35
|
export * from './lib/fields/radio.component';
|
|
@@ -85,4 +87,6 @@ export * from './lib/controls/range.control';
|
|
|
85
87
|
export * from './lib/controls/control.abstract';
|
|
86
88
|
/**SELECTION */
|
|
87
89
|
export * from './lib/selection/selection-model';
|
|
88
|
-
|
|
90
|
+
/**UTILS */
|
|
91
|
+
export * from './lib/utils/destroyable.guard';
|
|
92
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2tsZXMtbWF0ZXJpYWwtZHluYW1pY2Zvcm1zL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyx5Q0FBeUMsQ0FBQztBQUV4RCxlQUFlO0FBQ2YsY0FBYyx5Q0FBeUMsQ0FBQztBQUN4RCxjQUFjLDZDQUE2QyxDQUFDO0FBQzVELGNBQWMsNkNBQTZDLENBQUM7QUFDNUQsY0FBYywwQ0FBMEMsQ0FBQztBQUV6RCxTQUFTO0FBQ1QsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLHNDQUFzQyxDQUFDO0FBQ3JELGNBQWMsNkNBQTZDLENBQUM7QUFDNUQsY0FBYywwQ0FBMEMsQ0FBQztBQUN6RCxjQUFjLG9DQUFvQyxDQUFDO0FBQ25ELGNBQWMsbUNBQW1DLENBQUM7QUFDbEQsY0FBYyx3Q0FBd0MsQ0FBQztBQUN2RCxjQUFjLDJDQUEyQyxDQUFDO0FBQzFELGNBQWMsb0NBQW9DLENBQUM7QUFFbkQsWUFBWTtBQUNaLGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxjQUFjLDJDQUEyQyxDQUFDO0FBQzFELGNBQWMsd0NBQXdDLENBQUM7QUFDdkQsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLCtDQUErQyxDQUFDO0FBQzlELGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyx3Q0FBd0MsQ0FBQztBQUN2RCxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsc0NBQXNDLENBQUM7QUFDckQsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYyx1Q0FBdUMsQ0FBQztBQUN0RCxjQUFjLDRDQUE0QyxDQUFDO0FBQzNELGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMsMkNBQTJDLENBQUM7QUFDMUQsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMsd0NBQXdDLENBQUM7QUFDdkQsY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxjQUFjLDhDQUE4QyxDQUFDO0FBQzdELGNBQWMsNkJBQTZCLENBQUM7QUFFNUMsV0FBVztBQUNYLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyxtQ0FBbUMsQ0FBQztBQUVsRCxnQkFBZ0I7QUFDaEIsY0FBYyxzQ0FBc0MsQ0FBQztBQUNyRCxjQUFjLGtDQUFrQyxDQUFDO0FBQ2pELGNBQWMseUNBQXlDLENBQUM7QUFDeEQsY0FBYyxzQ0FBc0MsQ0FBQztBQUNyRCxjQUFjLHNDQUFzQyxDQUFDO0FBQ3JELGNBQWMsMENBQTBDLENBQUM7QUFFekQsYUFBYTtBQUNiLGNBQWMsa0NBQWtDLENBQUM7QUFFakQsZ0JBQWdCO0FBQ2hCLGNBQWMseUNBQXlDLENBQUM7QUFFeEQsVUFBVTtBQUNWLGNBQWMsOEJBQThCLENBQUM7QUFFN0MsV0FBVztBQUNYLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYywyQkFBMkIsQ0FBQztBQUUxQyxnQkFBZ0I7QUFDaEIsY0FBYyxzQ0FBc0MsQ0FBQztBQUVyRCxlQUFlO0FBQ2YsY0FBYywrQkFBK0IsQ0FBQztBQUU5QyxjQUFjO0FBQ2QsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLGtDQUFrQyxDQUFDO0FBQ2pELGNBQWMsZ0NBQWdDLENBQUM7QUFDL0MsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMsaUNBQWlDLENBQUM7QUFFaEQsZUFBZTtBQUNmLGNBQWMsaUNBQWlDLENBQUM7QUFFaEQsV0FBVztBQUNYLGNBQWMsK0JBQStCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIGtsZXMtbWF0ZXJpYWwtZHluYW1pY2Zvcm1zXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9saWIva2xlcy1tYXRlcmlhbC1keW5hbWljZm9ybXMubW9kdWxlJztcblxuLyoqRElSRUNUSVZFICovXG5leHBvcnQgKiBmcm9tICcuL2xpYi9kaXJlY3RpdmUvZHluYW1pYy1maWVsZC5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZGlyZWN0aXZlL2R5bmFtaWMtY29tcG9uZW50LmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9kaXJlY3RpdmUvbWF0LWVycm9yLW1lc3NhZ2UuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2RpcmVjdGl2ZS9tYXQtZXJyb3ItZm9ybS5kaXJlY3RpdmUnO1xuXG4vKkZPUk1TKi9cbmV4cG9ydCAqIGZyb20gJy4vbGliL2Zvcm1zL2J1dHRvbi1jb250cm9sLWJhc2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZm9ybXMvYnV0dG9uLWNvbnRyb2wuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2Zvcm1zL2J1dHRvbmNoZWNrZXItY29udHJvbC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZm9ybXMvYnV0dG9uZmlsZS1jb250cm9sLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9mb3Jtcy9maWxlLWNvbnRyb2wuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2Zvcm1zL2ZhYi1jb250cm9sLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9mb3Jtcy9taW5pLWZhYi1jb250cm9sLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9mb3Jtcy9pY29uLWJ1dHRvbi1jb250cm9sLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9mb3Jtcy9pbmRldGVybWluYXRlLWNoZWNrYm94JztcblxuLyoqRklFTERTICovXG5leHBvcnQgKiBmcm9tICcuL2xpYi9maWVsZHMvYmFkZ2UuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ZpZWxkcy9idXR0b24tZm9ybS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZmllbGRzL2J1dHRvbmNoZWNrZXItZm9ybS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZmllbGRzL2J1dHRvbmZpbGUtZm9ybS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZmllbGRzL2NoZWNrYm94LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9maWVsZHMvY2hlY2tib3gtaW5kZXRlcm1pbmF0ZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZmllbGRzL2NvbG9yLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9maWVsZHMvZGF0ZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZmllbGRzL2ZpZWxkLmFic3RyYWN0JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ZpZWxkcy9pbnB1dC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZmllbGRzL2lucHV0LmNsZWFyYWJsZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZmllbGRzL2ZpbGUuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ZpZWxkcy9sYWJlbC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZmllbGRzL2xpc3QtZmllbGQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ZpZWxkcy9yYWRpby5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZmllbGRzL3NlbGVjdC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZmllbGRzL3RleHRhcmVhLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9maWVsZHMvdGV4dC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZmllbGRzL2NoaXAuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ZpZWxkcy9ncm91cC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZmllbGRzL2ljb24uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ZpZWxkcy9zZWxlY3Quc2VhcmNoLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9maWVsZHMvbGluZS1icmVhay5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZmllbGRzL2xpbmsuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ZpZWxkcy9zbGlkZS10b2dnbGUuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ZpZWxkcy9zZWxlY3Rpb24tbGlzdC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZmllbGRzL2J1dHRvbi10b29nbGUtZ3JvdXAuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ZpZWxkcy9hcnJheS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZmllbGRzL3JhbmdlLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9maWVsZHMvY2xlYXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ZpZWxkcy9zZWxlY3QubGF6eS1zZWFyY2guY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ZpZWxkcy9kYXRlLXRpbWUuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ZpZWxkcy9idXR0b24tZmFiLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9maWVsZHMvYnV0dG9uLW1pbmktZmFiLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9maWVsZHMvYnV0dG9uLWljb24uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ZpZWxkcy9zZWxlY3Rpb24tbGlzdC5zZWFyY2guY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ZpZWxkcy9jb3B5LmNvbXBvbmVudCc7XG5cbi8qKkVOVU1TICovXG5leHBvcnQgKiBmcm9tICcuL2xpYi9lbnVtcy90eXBlLmVudW0nO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZW51bXMvYnV0dG9uLWF0dHJpYnV0ZS5lbnVtJztcblxuLyoqSU5URVJGQUNFUyAqL1xuZXhwb3J0ICogZnJvbSAnLi9saWIvaW50ZXJmYWNlcy9jb21wb25lbnQuaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ludGVyZmFjZXMvZmllbGQuaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ludGVyZmFjZXMvZmllbGQuY29uZmlnLmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9pbnRlcmZhY2VzL3ZhbGlkYXRvci5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvaW50ZXJmYWNlcy9kaXJlY3RpdmUuaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ludGVyZmFjZXMvY2xlYXItY29udHJvbC5pbnRlcmZhY2UnO1xuXG4vKipNQVRDSEVSICovXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tYXRjaGVyL2Zvcm0tZXJyb3IubWF0Y2hlcic7XG5cbi8qKlZBTElEQVRPUlMgKi9cbmV4cG9ydCAqIGZyb20gJy4vbGliL3ZhbGlkYXRvcnMvYXV0b2NvbXBsZXRlLnZhbGlkYXRvcic7XG5cbi8qKkZPUk0gKi9cbmV4cG9ydCAqIGZyb20gJy4vbGliL2R5bmFtaWMtZm9ybS5jb21wb25lbnQnO1xuXG4vKipQSVBFUyAqL1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcGlwZS9hcnJheS5waXBlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3BpcGUvdHJhbnNmb3JtLnBpcGUnO1xuXG4vKipERUNPUkFUT1JTICovXG5leHBvcnQgKiBmcm9tICcuL2xpYi9kZWNvcmF0b3JzL2NvbXBvbmVudC5kZWNvcmF0b3InO1xuXG4vKipGQUNUT1JJRVMgKi9cbmV4cG9ydCAqIGZyb20gJy4vbGliL2ZhY3Rvcmllcy9maWVsZC5mYWN0b3J5JztcblxuLyoqQ09OVFJPTFMgKi9cbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbnRyb2xzL2FycmF5LmNvbnRyb2wnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29udHJvbHMvY29udHJvbC5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29udHJvbHMvZGVmYXVsdC5jb250cm9sJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbnRyb2xzL2dyb3VwLmNvbnRyb2wnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29udHJvbHMvcmFuZ2UuY29udHJvbCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb250cm9scy9jb250cm9sLmFic3RyYWN0JztcblxuLyoqU0VMRUNUSU9OICovXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZWxlY3Rpb24vc2VsZWN0aW9uLW1vZGVsJztcblxuLyoqVVRJTFMgKi9cbmV4cG9ydCAqIGZyb20gJy4vbGliL3V0aWxzL2Rlc3Ryb3lhYmxlLmd1YXJkJztcbiJdfQ==
|
|
@@ -65,6 +65,7 @@ import { MatButtonToggleModule } from '@angular/material/button-toggle';
|
|
|
65
65
|
import { PortalModule } from '@angular/cdk/portal';
|
|
66
66
|
import { __decorate } from 'tslib';
|
|
67
67
|
import { v4 } from 'uuid';
|
|
68
|
+
import { cloneDeep } from 'lodash';
|
|
68
69
|
import * as i5$2 from '@angular/cdk/text-field';
|
|
69
70
|
import * as i10 from 'ngx-mat-select-search';
|
|
70
71
|
import { NgxMatSelectSearchModule } from 'ngx-mat-select-search';
|
|
@@ -153,6 +154,7 @@ var EnumType;
|
|
|
153
154
|
EnumType["input"] = "input";
|
|
154
155
|
EnumType["select"] = "select";
|
|
155
156
|
EnumType["text"] = "text";
|
|
157
|
+
EnumType["file"] = "file";
|
|
156
158
|
EnumType["button"] = "button";
|
|
157
159
|
EnumType["checkbox"] = "checkbox";
|
|
158
160
|
EnumType["number"] = "number";
|
|
@@ -199,6 +201,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
199
201
|
}]
|
|
200
202
|
}] });
|
|
201
203
|
|
|
204
|
+
function isDestroyable(value) {
|
|
205
|
+
return value !== null && typeof value === 'object' &&
|
|
206
|
+
typeof value.destroy === 'function';
|
|
207
|
+
}
|
|
208
|
+
|
|
202
209
|
class KlesDynamicFieldDirective {
|
|
203
210
|
constructor(container, injector) {
|
|
204
211
|
this.container = container;
|
|
@@ -229,29 +236,37 @@ class KlesDynamicFieldDirective {
|
|
|
229
236
|
this.componentRef.destroy();
|
|
230
237
|
}
|
|
231
238
|
const options = {
|
|
232
|
-
providers:
|
|
233
|
-
...(this.field.
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
239
|
+
providers: [
|
|
240
|
+
...(this.field.providers || []),
|
|
241
|
+
...(this.field.dateOptions ? [
|
|
242
|
+
...(this.field.dateOptions.adapter ? [{
|
|
243
|
+
provide: DateAdapter,
|
|
244
|
+
useClass: this.field.dateOptions.adapter.class,
|
|
245
|
+
deps: this.field.dateOptions.adapter.deps || [],
|
|
246
|
+
}] : []),
|
|
247
|
+
{ provide: MAT_DATE_LOCALE, useValue: this.field.dateOptions.language },
|
|
248
|
+
{ provide: MAT_DATE_FORMATS, useValue: this.field.dateOptions.dateFormat },
|
|
249
|
+
] : [])
|
|
250
|
+
],
|
|
241
251
|
parent: this.injector
|
|
242
252
|
};
|
|
243
253
|
const injector = Injector.create(options);
|
|
244
254
|
if (this.field.clearable) {
|
|
245
|
-
const composant = this.createSubComponent(this.field.clearableComponent || KlesFormClearComponent);
|
|
255
|
+
const composant = this.createSubComponent(this.field.clearableComponent || KlesFormClearComponent, options);
|
|
246
256
|
this.subComponents.push(composant);
|
|
247
257
|
}
|
|
248
258
|
if (this.field.subComponents) {
|
|
249
|
-
this.subComponents.push(...this.field.subComponents.map((subComponent) => this.createSubComponent(subComponent)));
|
|
259
|
+
this.subComponents.push(...this.field.subComponents.map((subComponent) => this.createSubComponent(subComponent, options)));
|
|
250
260
|
}
|
|
251
261
|
this.componentRef = this.createComponentRef(injector);
|
|
252
262
|
this.componentRef.instance.field = this.field;
|
|
253
263
|
this.componentRef.instance.group = this.group;
|
|
254
264
|
this.componentRef.instance.siblingFields = this.siblingFields;
|
|
265
|
+
this.componentRef.onDestroy(() => {
|
|
266
|
+
if (isDestroyable(injector)) {
|
|
267
|
+
injector.destroy();
|
|
268
|
+
}
|
|
269
|
+
});
|
|
255
270
|
}
|
|
256
271
|
createComponentRef(injector) {
|
|
257
272
|
const componentRef = this.container.createComponent(componentMapper.find(element => element.type === this.field.type)?.component || this.field.component, { injector, projectableNodes: [this.subComponents.map(sub => sub.location.nativeElement)] });
|
|
@@ -265,11 +280,17 @@ class KlesDynamicFieldDirective {
|
|
|
265
280
|
}
|
|
266
281
|
return componentRef;
|
|
267
282
|
}
|
|
268
|
-
createSubComponent(componentType) {
|
|
269
|
-
const
|
|
283
|
+
createSubComponent(componentType, options) {
|
|
284
|
+
const injector = Injector.create(options);
|
|
285
|
+
const component = this.container.createComponent(componentType, { injector });
|
|
270
286
|
component.instance.field = this.field;
|
|
271
287
|
component.instance.group = this.group;
|
|
272
288
|
component.instance.siblingFields = this.siblingFields;
|
|
289
|
+
component.onDestroy(() => {
|
|
290
|
+
if (isDestroyable(injector)) {
|
|
291
|
+
injector.destroy();
|
|
292
|
+
}
|
|
293
|
+
});
|
|
273
294
|
return component;
|
|
274
295
|
}
|
|
275
296
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: KlesDynamicFieldDirective, deps: [{ token: i0.ViewContainerRef }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
@@ -1772,9 +1793,13 @@ let KlesFormListFieldComponent = class KlesFormListFieldComponent extends KlesFi
|
|
|
1772
1793
|
super(viewRef);
|
|
1773
1794
|
this.fb = fb;
|
|
1774
1795
|
this.viewRef = viewRef;
|
|
1796
|
+
this.collections = [];
|
|
1775
1797
|
}
|
|
1776
1798
|
ngOnInit() {
|
|
1777
1799
|
this.formArray = this.group.controls[this.field.name];
|
|
1800
|
+
this.collections = this.formArray?.controls?.map(() => {
|
|
1801
|
+
return this.field.collections ? cloneDeep(this.field.collections) : [];
|
|
1802
|
+
});
|
|
1778
1803
|
super.ngOnInit();
|
|
1779
1804
|
}
|
|
1780
1805
|
createFormGroup() {
|
|
@@ -1786,9 +1811,11 @@ let KlesFormListFieldComponent = class KlesFormListFieldComponent extends KlesFi
|
|
|
1786
1811
|
return group;
|
|
1787
1812
|
}
|
|
1788
1813
|
deleteField(index) {
|
|
1814
|
+
this.collections.splice(index, 1);
|
|
1789
1815
|
this.formArray.removeAt(index);
|
|
1790
1816
|
}
|
|
1791
1817
|
addField() {
|
|
1818
|
+
this.collections.push(this.field.collections ? cloneDeep(this.field.collections) : []);
|
|
1792
1819
|
this.formArray.push(this.createFormGroup());
|
|
1793
1820
|
}
|
|
1794
1821
|
bindValidations(validations) {
|
|
@@ -1825,14 +1852,14 @@ let KlesFormListFieldComponent = class KlesFormListFieldComponent extends KlesFi
|
|
|
1825
1852
|
</div>
|
|
1826
1853
|
|
|
1827
1854
|
<div class="dynamic-form" [formGroupName]="field.name">
|
|
1828
|
-
@for (subGroup of formArray.controls; track subGroup.value._id) {
|
|
1855
|
+
@for (subGroup of formArray.controls; track subGroup.value._id; let idx = $index;) {
|
|
1829
1856
|
<div class="subfields">
|
|
1830
|
-
@for (subfield of
|
|
1831
|
-
<ng-container klesDynamicField [field]="subfield" [group]="subGroup">
|
|
1857
|
+
@for (subfield of collections[idx]; track subfield.name) {
|
|
1858
|
+
<ng-container klesDynamicField [field]="subfield" [group]="subGroup" [siblingFields]="collections[idx]">
|
|
1832
1859
|
</ng-container>
|
|
1833
1860
|
}
|
|
1834
|
-
@if(
|
|
1835
|
-
<button mat-icon-button (click)="deleteField(
|
|
1861
|
+
@if(collections[idx]){
|
|
1862
|
+
<button mat-icon-button (click)="deleteField(idx)" color="primary">
|
|
1836
1863
|
<mat-icon>delete_outlined</mat-icon>
|
|
1837
1864
|
</button>
|
|
1838
1865
|
}
|
|
@@ -1871,14 +1898,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
1871
1898
|
</div>
|
|
1872
1899
|
|
|
1873
1900
|
<div class="dynamic-form" [formGroupName]="field.name">
|
|
1874
|
-
@for (subGroup of formArray.controls; track subGroup.value._id) {
|
|
1901
|
+
@for (subGroup of formArray.controls; track subGroup.value._id; let idx = $index;) {
|
|
1875
1902
|
<div class="subfields">
|
|
1876
|
-
@for (subfield of
|
|
1877
|
-
<ng-container klesDynamicField [field]="subfield" [group]="subGroup">
|
|
1903
|
+
@for (subfield of collections[idx]; track subfield.name) {
|
|
1904
|
+
<ng-container klesDynamicField [field]="subfield" [group]="subGroup" [siblingFields]="collections[idx]">
|
|
1878
1905
|
</ng-container>
|
|
1879
1906
|
}
|
|
1880
|
-
@if(
|
|
1881
|
-
<button mat-icon-button (click)="deleteField(
|
|
1907
|
+
@if(collections[idx]){
|
|
1908
|
+
<button mat-icon-button (click)="deleteField(idx)" color="primary">
|
|
1882
1909
|
<mat-icon>delete_outlined</mat-icon>
|
|
1883
1910
|
</button>
|
|
1884
1911
|
}
|
|
@@ -2605,25 +2632,28 @@ let KlesFormTextComponent = class KlesFormTextComponent extends KlesFieldAbstrac
|
|
|
2605
2632
|
super.ngOnDestroy();
|
|
2606
2633
|
}
|
|
2607
2634
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: KlesFormTextComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
2608
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
2609
|
-
|
|
2610
|
-
|
|
2611
|
-
|
|
2612
|
-
|
|
2635
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: KlesFormTextComponent, selector: "kles-form-text", usesInheritance: true, ngImport: i0, template: `
|
|
2636
|
+
<span matTooltip="{{field.tooltip}}" [attr.id]="field.id" [ngClass]="field.ngClass" [ngStyle]="field.ngStyle">
|
|
2637
|
+
{{((field.property && group.controls[field.name].value) ? group.controls[field.name].value[field.property] : group.controls[field.name].value) | klesTransform:field.pipeTransform}}
|
|
2638
|
+
</span>
|
|
2639
|
+
@if (field.subComponents || isPending()) {
|
|
2640
|
+
<ng-content></ng-content>
|
|
2641
|
+
}
|
|
2642
|
+
`, isInline: true, styles: [":host{display:flex;align-items:center;flex-direction:row;justify-content:inherit}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i6.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "pipe", type: KlesTransformPipe, name: "klesTransform" }] }); }
|
|
2613
2643
|
};
|
|
2614
2644
|
KlesFormTextComponent = __decorate([
|
|
2615
2645
|
FieldMapper({ type: EnumType.text })
|
|
2616
2646
|
], KlesFormTextComponent);
|
|
2617
2647
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: KlesFormTextComponent, decorators: [{
|
|
2618
2648
|
type: Component,
|
|
2619
|
-
args: [{
|
|
2620
|
-
|
|
2621
|
-
|
|
2622
|
-
|
|
2623
|
-
|
|
2624
|
-
|
|
2625
|
-
|
|
2626
|
-
|
|
2649
|
+
args: [{ selector: 'kles-form-text', template: `
|
|
2650
|
+
<span matTooltip="{{field.tooltip}}" [attr.id]="field.id" [ngClass]="field.ngClass" [ngStyle]="field.ngStyle">
|
|
2651
|
+
{{((field.property && group.controls[field.name].value) ? group.controls[field.name].value[field.property] : group.controls[field.name].value) | klesTransform:field.pipeTransform}}
|
|
2652
|
+
</span>
|
|
2653
|
+
@if (field.subComponents || isPending()) {
|
|
2654
|
+
<ng-content></ng-content>
|
|
2655
|
+
}
|
|
2656
|
+
`, styles: [":host{display:flex;align-items:center;flex-direction:row;justify-content:inherit}\n"] }]
|
|
2627
2657
|
}] });
|
|
2628
2658
|
|
|
2629
2659
|
class KlesFormChipComponent extends KlesFieldAbstract {
|
|
@@ -4977,12 +5007,115 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
4977
5007
|
args: ["tooltip"]
|
|
4978
5008
|
}] } });
|
|
4979
5009
|
|
|
5010
|
+
class KlesFileControlComponent {
|
|
5011
|
+
constructor() {
|
|
5012
|
+
this.disabled = false;
|
|
5013
|
+
this.accept = '*.*';
|
|
5014
|
+
this.multiple = false;
|
|
5015
|
+
this.onChange = () => { };
|
|
5016
|
+
this.onTouched = () => { };
|
|
5017
|
+
}
|
|
5018
|
+
writeValue(obj) {
|
|
5019
|
+
}
|
|
5020
|
+
async onFileSelected(input) {
|
|
5021
|
+
if (input.files.length > 0) {
|
|
5022
|
+
const file = input.files;
|
|
5023
|
+
let files = [];
|
|
5024
|
+
for (let i = 0; i < file.length; i++) {
|
|
5025
|
+
const currentFile = file.item(i);
|
|
5026
|
+
files[i] = { name: currentFile.name, content: await currentFile.arrayBuffer() };
|
|
5027
|
+
}
|
|
5028
|
+
this.value = files;
|
|
5029
|
+
this.onChange(this.value);
|
|
5030
|
+
}
|
|
5031
|
+
else {
|
|
5032
|
+
this.value = null;
|
|
5033
|
+
this.onChange(this.value);
|
|
5034
|
+
}
|
|
5035
|
+
}
|
|
5036
|
+
registerOnChange(fn) {
|
|
5037
|
+
this.onChange = fn;
|
|
5038
|
+
}
|
|
5039
|
+
registerOnTouched(fn) {
|
|
5040
|
+
this.onTouched = fn;
|
|
5041
|
+
}
|
|
5042
|
+
setDisabledState(isDisabled) {
|
|
5043
|
+
this.disabled = isDisabled;
|
|
5044
|
+
}
|
|
5045
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: KlesFileControlComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
5046
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: KlesFileControlComponent, selector: "kles-file-control", inputs: { disabled: "disabled", accept: "accept", multiple: "multiple" }, providers: [
|
|
5047
|
+
{
|
|
5048
|
+
provide: NG_VALUE_ACCESSOR,
|
|
5049
|
+
useExisting: forwardRef(() => KlesFileControlComponent),
|
|
5050
|
+
multi: true
|
|
5051
|
+
}
|
|
5052
|
+
], ngImport: i0, template: `
|
|
5053
|
+
<input [accept]="accept" [multiple]="multiple" (change)="onFileSelected($event.target)" type="file">
|
|
5054
|
+
`, isInline: true }); }
|
|
5055
|
+
}
|
|
5056
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: KlesFileControlComponent, decorators: [{
|
|
5057
|
+
type: Component,
|
|
5058
|
+
args: [{
|
|
5059
|
+
selector: 'kles-file-control',
|
|
5060
|
+
template: `
|
|
5061
|
+
<input [accept]="accept" [multiple]="multiple" (change)="onFileSelected($event.target)" type="file">
|
|
5062
|
+
`,
|
|
5063
|
+
providers: [
|
|
5064
|
+
{
|
|
5065
|
+
provide: NG_VALUE_ACCESSOR,
|
|
5066
|
+
useExisting: forwardRef(() => KlesFileControlComponent),
|
|
5067
|
+
multi: true
|
|
5068
|
+
}
|
|
5069
|
+
]
|
|
5070
|
+
}]
|
|
5071
|
+
}], propDecorators: { disabled: [{
|
|
5072
|
+
type: Input
|
|
5073
|
+
}], accept: [{
|
|
5074
|
+
type: Input
|
|
5075
|
+
}], multiple: [{
|
|
5076
|
+
type: Input
|
|
5077
|
+
}] } });
|
|
5078
|
+
|
|
5079
|
+
let KlesFormFileComponent = class KlesFormFileComponent extends KlesFieldAbstract {
|
|
5080
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: KlesFormFileComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
5081
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: KlesFormFileComponent, selector: "kles-form-file", usesInheritance: true, ngImport: i0, template: `
|
|
5082
|
+
<div [formGroup]="group">
|
|
5083
|
+
<kles-file-control
|
|
5084
|
+
[attr.id]="field.id"
|
|
5085
|
+
[formControlName]="field.name"
|
|
5086
|
+
[accept]="field.accept"
|
|
5087
|
+
[disabled]="field.disabled"
|
|
5088
|
+
[multiple]="field.multiple"
|
|
5089
|
+
></kles-file-control>
|
|
5090
|
+
</div>
|
|
5091
|
+
`, isInline: true, styles: ["mat-form-field{width:100%}\n"], dependencies: [{ kind: "directive", type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: KlesFileControlComponent, selector: "kles-file-control", inputs: ["disabled", "accept", "multiple"] }] }); }
|
|
5092
|
+
};
|
|
5093
|
+
KlesFormFileComponent = __decorate([
|
|
5094
|
+
FieldMapper({ type: EnumType.file })
|
|
5095
|
+
], KlesFormFileComponent);
|
|
5096
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: KlesFormFileComponent, decorators: [{
|
|
5097
|
+
type: Component,
|
|
5098
|
+
args: [{ selector: 'kles-form-file', template: `
|
|
5099
|
+
<div [formGroup]="group">
|
|
5100
|
+
<kles-file-control
|
|
5101
|
+
[attr.id]="field.id"
|
|
5102
|
+
[formControlName]="field.name"
|
|
5103
|
+
[accept]="field.accept"
|
|
5104
|
+
[disabled]="field.disabled"
|
|
5105
|
+
[multiple]="field.multiple"
|
|
5106
|
+
></kles-file-control>
|
|
5107
|
+
</div>
|
|
5108
|
+
`, styles: ["mat-form-field{width:100%}\n"] }]
|
|
5109
|
+
}] });
|
|
5110
|
+
|
|
4980
5111
|
const components = [
|
|
4981
5112
|
KlesDynamicFormComponent,
|
|
4982
5113
|
KlesFormLabelComponent,
|
|
4983
5114
|
KlesFormInputComponent,
|
|
4984
5115
|
KlesFormInputClearableComponent,
|
|
4985
5116
|
KlesFormBadgeComponent,
|
|
5117
|
+
KlesFormFileComponent,
|
|
5118
|
+
KlesFileControlComponent,
|
|
4986
5119
|
KlesButtonComponent,
|
|
4987
5120
|
KlesFormButtonComponent,
|
|
4988
5121
|
KlesButtonCheckerComponent,
|
|
@@ -5036,6 +5169,8 @@ class KlesMaterialDynamicformsModule {
|
|
|
5036
5169
|
KlesFormInputComponent,
|
|
5037
5170
|
KlesFormInputClearableComponent,
|
|
5038
5171
|
KlesFormBadgeComponent,
|
|
5172
|
+
KlesFormFileComponent,
|
|
5173
|
+
KlesFileControlComponent,
|
|
5039
5174
|
KlesButtonComponent,
|
|
5040
5175
|
KlesFormButtonComponent,
|
|
5041
5176
|
KlesButtonCheckerComponent,
|
|
@@ -5085,6 +5220,8 @@ class KlesMaterialDynamicformsModule {
|
|
|
5085
5220
|
KlesFormInputComponent,
|
|
5086
5221
|
KlesFormInputClearableComponent,
|
|
5087
5222
|
KlesFormBadgeComponent,
|
|
5223
|
+
KlesFormFileComponent,
|
|
5224
|
+
KlesFileControlComponent,
|
|
5088
5225
|
KlesButtonComponent,
|
|
5089
5226
|
KlesFormButtonComponent,
|
|
5090
5227
|
KlesButtonCheckerComponent,
|
|
@@ -5201,5 +5338,5 @@ function autocompleteStringValidator(validOptions, optional) {
|
|
|
5201
5338
|
* Generated bundle index. Do not edit.
|
|
5202
5339
|
*/
|
|
5203
5340
|
|
|
5204
|
-
export { ArrayFormatPipe, EnumButtonAttribute, EnumType, FieldMapper, KlesAbstractFormControl, KlesButtonBase, KlesButtonCheckerComponent, KlesButtonComponent, KlesButtonFileComponent, KlesComponentDirective, KlesDynamicFieldDirective, KlesDynamicFormComponent, KlesFabComponent, KlesFieldAbstract, KlesFormArray, KlesFormArrayComponent, KlesFormBadgeComponent, KlesFormButtonCheckerComponent, KlesFormButtonComponent, KlesFormButtonFileComponent, KlesFormButtonToogleGroupComponent, KlesFormCheckboxComponent, KlesFormCheckboxIndeterminateComponent, KlesFormChipComponent, KlesFormClearComponent, KlesFormColorComponent, KlesFormControl, KlesFormCopyComponent, KlesFormDateComponent, KlesFormDateTimeComponent, KlesFormErrorStateMatcher, KlesFormFabComponent, KlesFormGroup, KlesFormGroupComponent, KlesFormIconButtonComponent, KlesFormIconComponent, KlesFormInputClearableComponent, KlesFormInputComponent, KlesFormLabelComponent, KlesFormLineBreakComponent, KlesFormLinkComponent, KlesFormListFieldComponent, KlesFormMiniFabComponent, KlesFormRadioComponent, KlesFormRange, KlesFormRangeComponent, KlesFormSelectComponent, KlesFormSelectLazySearchComponent, KlesFormSelectSearchComponent, KlesFormSelectionListComponent, KlesFormSelectionListSearchComponent, KlesFormSlideToggleComponent, KlesFormTextComponent, KlesFormTextareaComponent, KlesIconButtonComponent, KlesIndeterminateCheckboxComponent, KlesMaterialDynamicformsModule, KlesMiniFabComponent, KlesSelectionModel, KlesTransformPipe, MatErrorFormDirective, MatErrorMessageDirective, autocompleteObjectValidator, autocompleteStringValidator, componentMapper, klesFieldControlFactory };
|
|
5341
|
+
export { ArrayFormatPipe, EnumButtonAttribute, EnumType, FieldMapper, KlesAbstractFormControl, KlesButtonBase, KlesButtonCheckerComponent, KlesButtonComponent, KlesButtonFileComponent, KlesComponentDirective, KlesDynamicFieldDirective, KlesDynamicFormComponent, KlesFabComponent, KlesFieldAbstract, KlesFileControlComponent, KlesFormArray, KlesFormArrayComponent, KlesFormBadgeComponent, KlesFormButtonCheckerComponent, KlesFormButtonComponent, KlesFormButtonFileComponent, KlesFormButtonToogleGroupComponent, KlesFormCheckboxComponent, KlesFormCheckboxIndeterminateComponent, KlesFormChipComponent, KlesFormClearComponent, KlesFormColorComponent, KlesFormControl, KlesFormCopyComponent, KlesFormDateComponent, KlesFormDateTimeComponent, KlesFormErrorStateMatcher, KlesFormFabComponent, KlesFormFileComponent, KlesFormGroup, KlesFormGroupComponent, KlesFormIconButtonComponent, KlesFormIconComponent, KlesFormInputClearableComponent, KlesFormInputComponent, KlesFormLabelComponent, KlesFormLineBreakComponent, KlesFormLinkComponent, KlesFormListFieldComponent, KlesFormMiniFabComponent, KlesFormRadioComponent, KlesFormRange, KlesFormRangeComponent, KlesFormSelectComponent, KlesFormSelectLazySearchComponent, KlesFormSelectSearchComponent, KlesFormSelectionListComponent, KlesFormSelectionListSearchComponent, KlesFormSlideToggleComponent, KlesFormTextComponent, KlesFormTextareaComponent, KlesIconButtonComponent, KlesIndeterminateCheckboxComponent, KlesMaterialDynamicformsModule, KlesMiniFabComponent, KlesSelectionModel, KlesTransformPipe, MatErrorFormDirective, MatErrorMessageDirective, autocompleteObjectValidator, autocompleteStringValidator, componentMapper, isDestroyable, klesFieldControlFactory };
|
|
5205
5342
|
//# sourceMappingURL=3kles-kles-material-dynamicforms.mjs.map
|