@rosoftlab/formly 1.0.0-alpha-0
Sign up to get free protection for your applications and to get access to all the features.
- package/README.md +27 -0
- package/esm2022/lib/base-model-formly.mjs +93 -0
- package/esm2022/lib/formly-base-service.mjs +7 -0
- package/esm2022/lib/formly-layout.mjs +9 -0
- package/esm2022/lib/interfaces/formly-model-config.mjs +2 -0
- package/esm2022/public-api.mjs +8 -0
- package/esm2022/rosoftlab-formly.mjs +5 -0
- package/fesm2022/rosoftlab-formly.mjs +119 -0
- package/fesm2022/rosoftlab-formly.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/lib/base-model-formly.d.ts +9 -0
- package/lib/formly-base-service.d.ts +7 -0
- package/lib/formly-layout.d.ts +2 -0
- package/lib/interfaces/formly-model-config.d.ts +11 -0
- package/package.json +27 -0
- package/public-api.d.ts +4 -0
package/README.md
ADDED
@@ -0,0 +1,27 @@
|
|
1
|
+
# RslWorkspace
|
2
|
+
|
3
|
+
This project was generated with [Angular CLI](https://github.com/angular/angular-cli) version 12.1.3.
|
4
|
+
|
5
|
+
## Development server
|
6
|
+
|
7
|
+
Run `ng serve` for a dev server. Navigate to `http://localhost:4200/`. The app will automatically reload if you change any of the source files.
|
8
|
+
|
9
|
+
## Code scaffolding
|
10
|
+
|
11
|
+
Run `ng generate component component-name` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module`.
|
12
|
+
|
13
|
+
## Build
|
14
|
+
|
15
|
+
Run `ng build` to build the project. The build artifacts will be stored in the `dist/` directory.
|
16
|
+
|
17
|
+
## Running unit tests
|
18
|
+
|
19
|
+
Run `ng test` to execute the unit tests via [Karma](https://karma-runner.github.io).
|
20
|
+
|
21
|
+
## Running end-to-end tests
|
22
|
+
|
23
|
+
Run `ng e2e` to execute the end-to-end tests via a platform of your choice. To use this command, you need to first add a package that implements end-to-end testing capabilities.
|
24
|
+
|
25
|
+
## Further help
|
26
|
+
|
27
|
+
To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI Overview and Command Reference](https://angular.io/cli) page.
|
@@ -0,0 +1,93 @@
|
|
1
|
+
// import { BaseModel, BaseService } from "@rosoftlab/core";
|
2
|
+
import { BaseModel } from "@rosoftlab/core";
|
3
|
+
export class BaseModelFormly extends BaseModel {
|
4
|
+
getFormlyFields(baseService) {
|
5
|
+
return this.getFormlyFieldsForObject(baseService, this);
|
6
|
+
}
|
7
|
+
getFormlyFieldsForObject(baseService, instance) {
|
8
|
+
const formlyLayout = Reflect.getMetadata('FormlyLayout', instance);
|
9
|
+
const formlyFields = [];
|
10
|
+
const that = instance;
|
11
|
+
if (formlyLayout) {
|
12
|
+
formlyLayout.forEach(property => {
|
13
|
+
if (property.key !== 'id') {
|
14
|
+
const value = that[property.key] !== undefined ? that[property.key] : property.defaultValue;
|
15
|
+
const propType = Reflect.getMetadata('design:type', instance, property.key);
|
16
|
+
const required = property.required !== undefined ? property.required : false;
|
17
|
+
if (typeof propType === 'function' &&
|
18
|
+
propType.prototype &&
|
19
|
+
propType.prototype.constructor === propType &&
|
20
|
+
propType.prototype.constructor.toString().startsWith('class ')) {
|
21
|
+
const fields = this.getFormlyFieldsForObject(baseService, new propType());
|
22
|
+
if (fields)
|
23
|
+
formlyFields.push({
|
24
|
+
key: property.key,
|
25
|
+
props: {
|
26
|
+
translate: true,
|
27
|
+
label: property.label
|
28
|
+
},
|
29
|
+
wrappers: ['panel'],
|
30
|
+
fieldGroup: fields
|
31
|
+
});
|
32
|
+
}
|
33
|
+
else {
|
34
|
+
switch (property.type) {
|
35
|
+
case "select": {
|
36
|
+
formlyFields.push({
|
37
|
+
key: property.key,
|
38
|
+
type: property.type,
|
39
|
+
defaultValue: value,
|
40
|
+
props: {
|
41
|
+
translate: true,
|
42
|
+
label: property.label,
|
43
|
+
required,
|
44
|
+
labelPosition: 'floating',
|
45
|
+
description: property.description,
|
46
|
+
placeholder: property.placeholder,
|
47
|
+
options: baseService.getSelectValues(property.key),
|
48
|
+
valueProp: property.valueProp || 'value',
|
49
|
+
labelProp: property.labelProp || 'label',
|
50
|
+
},
|
51
|
+
});
|
52
|
+
break;
|
53
|
+
}
|
54
|
+
case "toggle": {
|
55
|
+
formlyFields.push({
|
56
|
+
key: property.key,
|
57
|
+
type: property.type,
|
58
|
+
defaultValue: value,
|
59
|
+
props: {
|
60
|
+
translate: true,
|
61
|
+
label: property.label,
|
62
|
+
required,
|
63
|
+
description: property.description,
|
64
|
+
placeholder: property.placeholder,
|
65
|
+
},
|
66
|
+
});
|
67
|
+
break;
|
68
|
+
}
|
69
|
+
default: {
|
70
|
+
formlyFields.push({
|
71
|
+
key: property.key,
|
72
|
+
type: property.type,
|
73
|
+
defaultValue: value,
|
74
|
+
props: {
|
75
|
+
translate: true,
|
76
|
+
label: property.label,
|
77
|
+
required,
|
78
|
+
labelPosition: 'floating',
|
79
|
+
description: property.description,
|
80
|
+
placeholder: property.placeholder
|
81
|
+
},
|
82
|
+
});
|
83
|
+
break;
|
84
|
+
}
|
85
|
+
}
|
86
|
+
}
|
87
|
+
}
|
88
|
+
});
|
89
|
+
}
|
90
|
+
return formlyFields;
|
91
|
+
}
|
92
|
+
}
|
93
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1tb2RlbC1mb3JtbHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9yb3NvZnRsYWIvZm9ybWx5L3NyYy9saWIvYmFzZS1tb2RlbC1mb3JtbHkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsNERBQTREO0FBQzVELE9BQU8sRUFBRSxTQUFTLEVBQWUsTUFBTSxpQkFBaUIsQ0FBQztBQUl6RCxNQUFNLE9BQU8sZUFBZ0IsU0FBUSxTQUFTO0lBRTVDLGVBQWUsQ0FBQyxXQUF5QztRQUN2RCxPQUFPLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUNPLHdCQUF3QixDQUFDLFdBQXlDLEVBQUUsUUFBYTtRQUN2RixNQUFNLFlBQVksR0FBd0IsT0FBTyxDQUFDLFdBQVcsQ0FBQyxjQUFjLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDeEYsTUFBTSxZQUFZLEdBQXdCLEVBQUUsQ0FBQztRQUM3QyxNQUFNLElBQUksR0FBRyxRQUFRLENBQUM7UUFDdEIsSUFBSSxZQUFZLEVBQUU7WUFDaEIsWUFBWSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRTtnQkFDOUIsSUFBSSxRQUFRLENBQUMsR0FBRyxLQUFLLElBQUksRUFBRTtvQkFDekIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUM7b0JBQzVGLE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQUMsYUFBYSxFQUFFLFFBQVEsRUFBRSxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUE7b0JBQzNFLE1BQU0sUUFBUSxHQUFHLFFBQVEsQ0FBQyxRQUFRLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUE7b0JBQzVFLElBQUksT0FBTyxRQUFRLEtBQUssVUFBVTt3QkFDaEMsUUFBUSxDQUFDLFNBQVM7d0JBQ2xCLFFBQVEsQ0FBQyxTQUFTLENBQUMsV0FBVyxLQUFLLFFBQVE7d0JBQzNDLFFBQVEsQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsRUFBRTt3QkFDaEUsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLHdCQUF3QixDQUFDLFdBQVcsRUFBRSxJQUFJLFFBQVEsRUFBRSxDQUFDLENBQUE7d0JBQ3pFLElBQUksTUFBTTs0QkFDUixZQUFZLENBQUMsSUFBSSxDQUNmO2dDQUNFLEdBQUcsRUFBRSxRQUFRLENBQUMsR0FBRztnQ0FDakIsS0FBSyxFQUFFO29DQUNMLFNBQVMsRUFBRSxJQUFJO29DQUNmLEtBQUssRUFBRSxRQUFRLENBQUMsS0FBSztpQ0FDdEI7Z0NBQ0QsUUFBUSxFQUFFLENBQUMsT0FBTyxDQUFDO2dDQUNuQixVQUFVLEVBQUUsTUFBTTs2QkFDbkIsQ0FDRixDQUFBO3FCQUNKO3lCQUFNO3dCQUNMLFFBQVEsUUFBUSxDQUFDLElBQUksRUFBRTs0QkFDckIsS0FBSyxRQUFRLENBQUMsQ0FBQztnQ0FDYixZQUFZLENBQUMsSUFBSSxDQUNmO29DQUNFLEdBQUcsRUFBRSxRQUFRLENBQUMsR0FBRztvQ0FDakIsSUFBSSxFQUFFLFFBQVEsQ0FBQyxJQUFJO29DQUNuQixZQUFZLEVBQUUsS0FBSztvQ0FDbkIsS0FBSyxFQUFFO3dDQUNMLFNBQVMsRUFBRSxJQUFJO3dDQUNmLEtBQUssRUFBRSxRQUFRLENBQUMsS0FBSzt3Q0FDckIsUUFBUTt3Q0FDUixhQUFhLEVBQUUsVUFBVTt3Q0FDekIsV0FBVyxFQUFFLFFBQVEsQ0FBQyxXQUFXO3dDQUNqQyxXQUFXLEVBQUUsUUFBUSxDQUFDLFdBQVc7d0NBQ2pDLE9BQU8sRUFBRSxXQUFXLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUM7d0NBQ2xELFNBQVMsRUFBRSxRQUFRLENBQUMsU0FBUyxJQUFJLE9BQU87d0NBQ3hDLFNBQVMsRUFBRSxRQUFRLENBQUMsU0FBUyxJQUFJLE9BQU87cUNBQ3pDO2lDQUNGLENBQUMsQ0FBQTtnQ0FDSixNQUFNOzZCQUNQOzRCQUNELEtBQUssUUFBUSxDQUFDLENBQUM7Z0NBQ2IsWUFBWSxDQUFDLElBQUksQ0FDZjtvQ0FDRSxHQUFHLEVBQUUsUUFBUSxDQUFDLEdBQUc7b0NBQ2pCLElBQUksRUFBRSxRQUFRLENBQUMsSUFBSTtvQ0FDbkIsWUFBWSxFQUFFLEtBQUs7b0NBQ25CLEtBQUssRUFBRTt3Q0FDTCxTQUFTLEVBQUUsSUFBSTt3Q0FDZixLQUFLLEVBQUUsUUFBUSxDQUFDLEtBQUs7d0NBQ3JCLFFBQVE7d0NBQ1IsV0FBVyxFQUFFLFFBQVEsQ0FBQyxXQUFXO3dDQUNqQyxXQUFXLEVBQUUsUUFBUSxDQUFDLFdBQVc7cUNBQ2xDO2lDQUNGLENBQUMsQ0FBQTtnQ0FDSixNQUFNOzZCQUNQOzRCQUNELE9BQU8sQ0FBQyxDQUFDO2dDQUNQLFlBQVksQ0FBQyxJQUFJLENBQ2Y7b0NBQ0UsR0FBRyxFQUFFLFFBQVEsQ0FBQyxHQUFHO29DQUNqQixJQUFJLEVBQUUsUUFBUSxDQUFDLElBQUk7b0NBQ25CLFlBQVksRUFBRSxLQUFLO29DQUNuQixLQUFLLEVBQUU7d0NBQ0wsU0FBUyxFQUFFLElBQUk7d0NBQ2YsS0FBSyxFQUFFLFFBQVEsQ0FBQyxLQUFLO3dDQUNyQixRQUFRO3dDQUNSLGFBQWEsRUFBRSxVQUFVO3dDQUN6QixXQUFXLEVBQUUsUUFBUSxDQUFDLFdBQVc7d0NBQ2pDLFdBQVcsRUFBRSxRQUFRLENBQUMsV0FBVztxQ0FDbEM7aUNBQ0YsQ0FBQyxDQUFBO2dDQUNKLE1BQU07NkJBQ1A7eUJBQ0Y7cUJBQ0Y7aUJBQ0Y7WUFDSCxDQUFDLENBQUMsQ0FBQztTQUNKO1FBQ0QsT0FBTyxZQUFZLENBQUM7SUFDdEIsQ0FBQztDQUVGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRm9ybWx5RmllbGRDb25maWcgfSBmcm9tIFwiQG5neC1mb3JtbHkvY29yZVwiO1xuLy8gaW1wb3J0IHsgQmFzZU1vZGVsLCBCYXNlU2VydmljZSB9IGZyb20gXCJAcm9zb2Z0bGFiL2NvcmVcIjtcbmltcG9ydCB7IEJhc2VNb2RlbCwgQmFzZVNlcnZpY2UgfSBmcm9tIFwiQHJvc29mdGxhYi9jb3JlXCI7XG5pbXBvcnQgeyBGb3JtbHlNb2RlbENvbmZpZyB9IGZyb20gXCIuL2ludGVyZmFjZXMvZm9ybWx5LW1vZGVsLWNvbmZpZ1wiO1xuXG5cbmV4cG9ydCBjbGFzcyBCYXNlTW9kZWxGb3JtbHkgZXh0ZW5kcyBCYXNlTW9kZWwge1xuICBwdWJsaWMgc2hvd0Vycm9yU3RhdGU6IGZhbHNlXG4gIGdldEZvcm1seUZpZWxkcyhiYXNlU2VydmljZTogQmFzZVNlcnZpY2U8QmFzZU1vZGVsRm9ybWx5PikgeyAgICBcbiAgICByZXR1cm4gdGhpcy5nZXRGb3JtbHlGaWVsZHNGb3JPYmplY3QoYmFzZVNlcnZpY2UsIHRoaXMpO1xuICB9XG4gIHByaXZhdGUgZ2V0Rm9ybWx5RmllbGRzRm9yT2JqZWN0KGJhc2VTZXJ2aWNlOiBCYXNlU2VydmljZTxCYXNlTW9kZWxGb3JtbHk+LCBpbnN0YW5jZTogYW55KSB7XG4gICAgY29uc3QgZm9ybWx5TGF5b3V0OiBGb3JtbHlNb2RlbENvbmZpZ1tdID0gUmVmbGVjdC5nZXRNZXRhZGF0YSgnRm9ybWx5TGF5b3V0JywgaW5zdGFuY2UpO1xuICAgIGNvbnN0IGZvcm1seUZpZWxkczogRm9ybWx5RmllbGRDb25maWdbXSA9IFtdO1xuICAgIGNvbnN0IHRoYXQgPSBpbnN0YW5jZTtcbiAgICBpZiAoZm9ybWx5TGF5b3V0KSB7XG4gICAgICBmb3JtbHlMYXlvdXQuZm9yRWFjaChwcm9wZXJ0eSA9PiB7XG4gICAgICAgIGlmIChwcm9wZXJ0eS5rZXkgIT09ICdpZCcpIHtcbiAgICAgICAgICBjb25zdCB2YWx1ZSA9IHRoYXRbcHJvcGVydHkua2V5XSAhPT0gdW5kZWZpbmVkID8gdGhhdFtwcm9wZXJ0eS5rZXldIDogcHJvcGVydHkuZGVmYXVsdFZhbHVlO1xuICAgICAgICAgIGNvbnN0IHByb3BUeXBlID0gUmVmbGVjdC5nZXRNZXRhZGF0YSgnZGVzaWduOnR5cGUnLCBpbnN0YW5jZSwgcHJvcGVydHkua2V5KVxuICAgICAgICAgIGNvbnN0IHJlcXVpcmVkID0gcHJvcGVydHkucmVxdWlyZWQgIT09IHVuZGVmaW5lZCA/IHByb3BlcnR5LnJlcXVpcmVkIDogZmFsc2VcbiAgICAgICAgICBpZiAodHlwZW9mIHByb3BUeXBlID09PSAnZnVuY3Rpb24nICYmXG4gICAgICAgICAgICBwcm9wVHlwZS5wcm90b3R5cGUgJiZcbiAgICAgICAgICAgIHByb3BUeXBlLnByb3RvdHlwZS5jb25zdHJ1Y3RvciA9PT0gcHJvcFR5cGUgJiZcbiAgICAgICAgICAgIHByb3BUeXBlLnByb3RvdHlwZS5jb25zdHJ1Y3Rvci50b1N0cmluZygpLnN0YXJ0c1dpdGgoJ2NsYXNzICcpKSB7XG4gICAgICAgICAgICBjb25zdCBmaWVsZHMgPSB0aGlzLmdldEZvcm1seUZpZWxkc0Zvck9iamVjdChiYXNlU2VydmljZSwgbmV3IHByb3BUeXBlKCkpXG4gICAgICAgICAgICBpZiAoZmllbGRzKVxuICAgICAgICAgICAgICBmb3JtbHlGaWVsZHMucHVzaChcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICBrZXk6IHByb3BlcnR5LmtleSxcbiAgICAgICAgICAgICAgICAgIHByb3BzOiB7XG4gICAgICAgICAgICAgICAgICAgIHRyYW5zbGF0ZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgbGFiZWw6IHByb3BlcnR5LmxhYmVsXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgd3JhcHBlcnM6IFsncGFuZWwnXSxcbiAgICAgICAgICAgICAgICAgIGZpZWxkR3JvdXA6IGZpZWxkc1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgKVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBzd2l0Y2ggKHByb3BlcnR5LnR5cGUpIHtcbiAgICAgICAgICAgICAgY2FzZSBcInNlbGVjdFwiOiB7XG4gICAgICAgICAgICAgICAgZm9ybWx5RmllbGRzLnB1c2goXG4gICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGtleTogcHJvcGVydHkua2V5LFxuICAgICAgICAgICAgICAgICAgICB0eXBlOiBwcm9wZXJ0eS50eXBlLFxuICAgICAgICAgICAgICAgICAgICBkZWZhdWx0VmFsdWU6IHZhbHVlLFxuICAgICAgICAgICAgICAgICAgICBwcm9wczoge1xuICAgICAgICAgICAgICAgICAgICAgIHRyYW5zbGF0ZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogcHJvcGVydHkubGFiZWwsXG4gICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQsXG4gICAgICAgICAgICAgICAgICAgICAgbGFiZWxQb3NpdGlvbjogJ2Zsb2F0aW5nJyxcbiAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogcHJvcGVydHkuZGVzY3JpcHRpb24sXG4gICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI6IHByb3BlcnR5LnBsYWNlaG9sZGVyLFxuICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnM6IGJhc2VTZXJ2aWNlLmdldFNlbGVjdFZhbHVlcyhwcm9wZXJ0eS5rZXkpLFxuICAgICAgICAgICAgICAgICAgICAgIHZhbHVlUHJvcDogcHJvcGVydHkudmFsdWVQcm9wIHx8ICd2YWx1ZScsXG4gICAgICAgICAgICAgICAgICAgICAgbGFiZWxQcm9wOiBwcm9wZXJ0eS5sYWJlbFByb3AgfHwgJ2xhYmVsJyxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgY2FzZSBcInRvZ2dsZVwiOiB7XG4gICAgICAgICAgICAgICAgZm9ybWx5RmllbGRzLnB1c2goXG4gICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGtleTogcHJvcGVydHkua2V5LFxuICAgICAgICAgICAgICAgICAgICB0eXBlOiBwcm9wZXJ0eS50eXBlLFxuICAgICAgICAgICAgICAgICAgICBkZWZhdWx0VmFsdWU6IHZhbHVlLFxuICAgICAgICAgICAgICAgICAgICBwcm9wczoge1xuICAgICAgICAgICAgICAgICAgICAgIHRyYW5zbGF0ZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogcHJvcGVydHkubGFiZWwsXG4gICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQsXG4gICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IHByb3BlcnR5LmRlc2NyaXB0aW9uLFxuICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyOiBwcm9wZXJ0eS5wbGFjZWhvbGRlcixcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIGZvcm1seUZpZWxkcy5wdXNoKFxuICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBrZXk6IHByb3BlcnR5LmtleSxcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogcHJvcGVydHkudHlwZSxcbiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdFZhbHVlOiB2YWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgcHJvcHM6IHtcbiAgICAgICAgICAgICAgICAgICAgICB0cmFuc2xhdGU6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IHByb3BlcnR5LmxhYmVsLFxuICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkLFxuICAgICAgICAgICAgICAgICAgICAgIGxhYmVsUG9zaXRpb246ICdmbG9hdGluZycsXG4gICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IHByb3BlcnR5LmRlc2NyaXB0aW9uLFxuICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyOiBwcm9wZXJ0eS5wbGFjZWhvbGRlclxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiBmb3JtbHlGaWVsZHM7XG4gIH1cblxufSJdfQ==
|
@@ -0,0 +1,7 @@
|
|
1
|
+
import { BaseService } from "@rosoftlab/core";
|
2
|
+
export class BaseServiceFormly extends BaseService {
|
3
|
+
getFormlyFields(model) {
|
4
|
+
return model.getFormlyFields(this);
|
5
|
+
}
|
6
|
+
}
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWx5LWJhc2Utc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Jvc29mdGxhYi9mb3JtbHkvc3JjL2xpYi9mb3JtbHktYmFzZS1zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUc5QyxNQUFNLE9BQU8saUJBQTZDLFNBQVEsV0FBYztJQUVyRSxlQUFlLENBQUMsS0FBUTtRQUMzQixPQUFPLEtBQUssQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdkMsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmFzZVNlcnZpY2UgfSBmcm9tIFwiQHJvc29mdGxhYi9jb3JlXCI7XG5pbXBvcnQgeyBCYXNlTW9kZWxGb3JtbHkgfSBmcm9tIFwiLi9iYXNlLW1vZGVsLWZvcm1seVwiO1xuXG5leHBvcnQgY2xhc3MgQmFzZVNlcnZpY2VGb3JtbHk8VCBleHRlbmRzIEJhc2VNb2RlbEZvcm1seT4gZXh0ZW5kcyBCYXNlU2VydmljZTxUPiB7XG5cbiAgICBwdWJsaWMgZ2V0Rm9ybWx5RmllbGRzKG1vZGVsOiBUKSB7XG4gICAgICAgIHJldHVybiBtb2RlbC5nZXRGb3JtbHlGaWVsZHModGhpcyk7XG4gICAgfVxufVxuIl19
|
@@ -0,0 +1,9 @@
|
|
1
|
+
export function FormlyLayout(config) {
|
2
|
+
return (target, propertyName) => {
|
3
|
+
const annotations = Reflect.getMetadata('FormlyLayout', target) || [];
|
4
|
+
config.key = propertyName;
|
5
|
+
annotations.push(config);
|
6
|
+
Reflect.defineMetadata('FormlyLayout', annotations, target);
|
7
|
+
};
|
8
|
+
}
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWx5LWxheW91dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Jvc29mdGxhYi9mb3JtbHkvc3JjL2xpYi9mb3JtbHktbGF5b3V0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sVUFBVSxZQUFZLENBQUMsTUFBeUI7SUFDbEQsT0FBTyxDQUFDLE1BQVcsRUFBRSxZQUFvQixFQUFFLEVBQUU7UUFDekMsTUFBTSxXQUFXLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBQyxjQUFjLEVBQUUsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3RFLE1BQU0sQ0FBQyxHQUFHLEdBQUMsWUFBWSxDQUFDO1FBQ3hCLFdBQVcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFekIsT0FBTyxDQUFDLGNBQWMsQ0FBQyxjQUFjLEVBQUUsV0FBVyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ2hFLENBQUMsQ0FBQztBQUNOLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB9IGZyb20gJ3JlZmxlY3QtbWV0YWRhdGEnO1xyXG5pbXBvcnQgeyBGb3JtbHlNb2RlbENvbmZpZyB9IGZyb20gXCIuL2ludGVyZmFjZXMvZm9ybWx5LW1vZGVsLWNvbmZpZ1wiO1xyXG5leHBvcnQgZnVuY3Rpb24gRm9ybWx5TGF5b3V0KGNvbmZpZzogRm9ybWx5TW9kZWxDb25maWcpIHtcclxuICAgIHJldHVybiAodGFyZ2V0OiBhbnksIHByb3BlcnR5TmFtZTogc3RyaW5nKSA9PiB7XHJcbiAgICAgICAgY29uc3QgYW5ub3RhdGlvbnMgPSBSZWZsZWN0LmdldE1ldGFkYXRhKCdGb3JtbHlMYXlvdXQnLCB0YXJnZXQpIHx8IFtdO1xyXG4gICAgICAgIGNvbmZpZy5rZXk9cHJvcGVydHlOYW1lO1xyXG4gICAgICAgIGFubm90YXRpb25zLnB1c2goY29uZmlnKTtcclxuXHJcbiAgICAgICAgUmVmbGVjdC5kZWZpbmVNZXRhZGF0YSgnRm9ybWx5TGF5b3V0JywgYW5ub3RhdGlvbnMsIHRhcmdldCk7XHJcbiAgICB9O1xyXG59XHJcbiJdfQ==
|
@@ -0,0 +1,2 @@
|
|
1
|
+
export {};
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWx5LW1vZGVsLWNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Jvc29mdGxhYi9mb3JtbHkvc3JjL2xpYi9pbnRlcmZhY2VzL2Zvcm1seS1tb2RlbC1jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgRm9ybWx5TW9kZWxDb25maWcge1xuICAgIGtleT86IHN0cmluZztcbiAgICB0eXBlOiAnaW5wdXQnIHwgJ3RleHRhcmVhJyB8ICdjaGVja2JveCcgfCAncmFkaW8nIHwgJ3NlbGVjdCcgfCAnZGF0ZXRpbWUnIHwgJ3JhbmdlJyB8ICd0b2dnbGUnIHwgJ3N1Ym9iamVjdCcgfCBhbnk7XG4gICAgbGFiZWw6IHN0cmluZztcbiAgICByZXF1aXJlZD86IGJvb2xlYW47XG4gICAgcGxhY2Vob2xkZXI/OiBzdHJpbmc7XG4gICAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gICAgZGVmYXVsdFZhbHVlPzogYW55O1xuXG4gICAgdmFsdWVQcm9wPzogc3RyaW5nO1xuICAgIGxhYmVsUHJvcD86IHN0cmluZztcblxufVxuIl19
|
@@ -0,0 +1,8 @@
|
|
1
|
+
/*
|
2
|
+
* Public API Surface of formly
|
3
|
+
*/
|
4
|
+
export * from './lib/base-model-formly';
|
5
|
+
export * from './lib/formly-base-service';
|
6
|
+
export * from './lib/formly-layout';
|
7
|
+
export * from './lib/interfaces/formly-model-config';
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3Jvc29mdGxhYi9mb3JtbHkvc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLHNDQUFzQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBmb3JtbHlcbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9iYXNlLW1vZGVsLWZvcm1seSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9mb3JtbHktYmFzZS1zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2Zvcm1seS1sYXlvdXQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvaW50ZXJmYWNlcy9mb3JtbHktbW9kZWwtY29uZmlnJztcblxuIl19
|
@@ -0,0 +1,5 @@
|
|
1
|
+
/**
|
2
|
+
* Generated bundle index. Do not edit.
|
3
|
+
*/
|
4
|
+
export * from './public-api';
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9zb2Z0bGFiLWZvcm1seS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3Jvc29mdGxhYi9mb3JtbHkvc3JjL3Jvc29mdGxhYi1mb3JtbHkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcbiJdfQ==
|
@@ -0,0 +1,119 @@
|
|
1
|
+
import { BaseModel, BaseService } from '@rosoftlab/core';
|
2
|
+
|
3
|
+
// import { BaseModel, BaseService } from "@rosoftlab/core";
|
4
|
+
class BaseModelFormly extends BaseModel {
|
5
|
+
getFormlyFields(baseService) {
|
6
|
+
return this.getFormlyFieldsForObject(baseService, this);
|
7
|
+
}
|
8
|
+
getFormlyFieldsForObject(baseService, instance) {
|
9
|
+
const formlyLayout = Reflect.getMetadata('FormlyLayout', instance);
|
10
|
+
const formlyFields = [];
|
11
|
+
const that = instance;
|
12
|
+
if (formlyLayout) {
|
13
|
+
formlyLayout.forEach(property => {
|
14
|
+
if (property.key !== 'id') {
|
15
|
+
const value = that[property.key] !== undefined ? that[property.key] : property.defaultValue;
|
16
|
+
const propType = Reflect.getMetadata('design:type', instance, property.key);
|
17
|
+
const required = property.required !== undefined ? property.required : false;
|
18
|
+
if (typeof propType === 'function' &&
|
19
|
+
propType.prototype &&
|
20
|
+
propType.prototype.constructor === propType &&
|
21
|
+
propType.prototype.constructor.toString().startsWith('class ')) {
|
22
|
+
const fields = this.getFormlyFieldsForObject(baseService, new propType());
|
23
|
+
if (fields)
|
24
|
+
formlyFields.push({
|
25
|
+
key: property.key,
|
26
|
+
props: {
|
27
|
+
translate: true,
|
28
|
+
label: property.label
|
29
|
+
},
|
30
|
+
wrappers: ['panel'],
|
31
|
+
fieldGroup: fields
|
32
|
+
});
|
33
|
+
}
|
34
|
+
else {
|
35
|
+
switch (property.type) {
|
36
|
+
case "select": {
|
37
|
+
formlyFields.push({
|
38
|
+
key: property.key,
|
39
|
+
type: property.type,
|
40
|
+
defaultValue: value,
|
41
|
+
props: {
|
42
|
+
translate: true,
|
43
|
+
label: property.label,
|
44
|
+
required,
|
45
|
+
labelPosition: 'floating',
|
46
|
+
description: property.description,
|
47
|
+
placeholder: property.placeholder,
|
48
|
+
options: baseService.getSelectValues(property.key),
|
49
|
+
valueProp: property.valueProp || 'value',
|
50
|
+
labelProp: property.labelProp || 'label',
|
51
|
+
},
|
52
|
+
});
|
53
|
+
break;
|
54
|
+
}
|
55
|
+
case "toggle": {
|
56
|
+
formlyFields.push({
|
57
|
+
key: property.key,
|
58
|
+
type: property.type,
|
59
|
+
defaultValue: value,
|
60
|
+
props: {
|
61
|
+
translate: true,
|
62
|
+
label: property.label,
|
63
|
+
required,
|
64
|
+
description: property.description,
|
65
|
+
placeholder: property.placeholder,
|
66
|
+
},
|
67
|
+
});
|
68
|
+
break;
|
69
|
+
}
|
70
|
+
default: {
|
71
|
+
formlyFields.push({
|
72
|
+
key: property.key,
|
73
|
+
type: property.type,
|
74
|
+
defaultValue: value,
|
75
|
+
props: {
|
76
|
+
translate: true,
|
77
|
+
label: property.label,
|
78
|
+
required,
|
79
|
+
labelPosition: 'floating',
|
80
|
+
description: property.description,
|
81
|
+
placeholder: property.placeholder
|
82
|
+
},
|
83
|
+
});
|
84
|
+
break;
|
85
|
+
}
|
86
|
+
}
|
87
|
+
}
|
88
|
+
}
|
89
|
+
});
|
90
|
+
}
|
91
|
+
return formlyFields;
|
92
|
+
}
|
93
|
+
}
|
94
|
+
|
95
|
+
class BaseServiceFormly extends BaseService {
|
96
|
+
getFormlyFields(model) {
|
97
|
+
return model.getFormlyFields(this);
|
98
|
+
}
|
99
|
+
}
|
100
|
+
|
101
|
+
function FormlyLayout(config) {
|
102
|
+
return (target, propertyName) => {
|
103
|
+
const annotations = Reflect.getMetadata('FormlyLayout', target) || [];
|
104
|
+
config.key = propertyName;
|
105
|
+
annotations.push(config);
|
106
|
+
Reflect.defineMetadata('FormlyLayout', annotations, target);
|
107
|
+
};
|
108
|
+
}
|
109
|
+
|
110
|
+
/*
|
111
|
+
* Public API Surface of formly
|
112
|
+
*/
|
113
|
+
|
114
|
+
/**
|
115
|
+
* Generated bundle index. Do not edit.
|
116
|
+
*/
|
117
|
+
|
118
|
+
export { BaseModelFormly, BaseServiceFormly, FormlyLayout };
|
119
|
+
//# sourceMappingURL=rosoftlab-formly.mjs.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"rosoftlab-formly.mjs","sources":["../../../../projects/rosoftlab/formly/src/lib/base-model-formly.ts","../../../../projects/rosoftlab/formly/src/lib/formly-base-service.ts","../../../../projects/rosoftlab/formly/src/lib/formly-layout.ts","../../../../projects/rosoftlab/formly/src/public-api.ts","../../../../projects/rosoftlab/formly/src/rosoftlab-formly.ts"],"sourcesContent":["import { FormlyFieldConfig } from \"@ngx-formly/core\";\n// import { BaseModel, BaseService } from \"@rosoftlab/core\";\nimport { BaseModel, BaseService } from \"@rosoftlab/core\";\nimport { FormlyModelConfig } from \"./interfaces/formly-model-config\";\n\n\nexport class BaseModelFormly extends BaseModel {\n public showErrorState: false\n getFormlyFields(baseService: BaseService<BaseModelFormly>) { \n return this.getFormlyFieldsForObject(baseService, this);\n }\n private getFormlyFieldsForObject(baseService: BaseService<BaseModelFormly>, instance: any) {\n const formlyLayout: FormlyModelConfig[] = Reflect.getMetadata('FormlyLayout', instance);\n const formlyFields: FormlyFieldConfig[] = [];\n const that = instance;\n if (formlyLayout) {\n formlyLayout.forEach(property => {\n if (property.key !== 'id') {\n const value = that[property.key] !== undefined ? that[property.key] : property.defaultValue;\n const propType = Reflect.getMetadata('design:type', instance, property.key)\n const required = property.required !== undefined ? property.required : false\n if (typeof propType === 'function' &&\n propType.prototype &&\n propType.prototype.constructor === propType &&\n propType.prototype.constructor.toString().startsWith('class ')) {\n const fields = this.getFormlyFieldsForObject(baseService, new propType())\n if (fields)\n formlyFields.push(\n {\n key: property.key,\n props: {\n translate: true,\n label: property.label\n },\n wrappers: ['panel'],\n fieldGroup: fields\n }\n )\n } else {\n switch (property.type) {\n case \"select\": {\n formlyFields.push(\n {\n key: property.key,\n type: property.type,\n defaultValue: value,\n props: {\n translate: true,\n label: property.label,\n required,\n labelPosition: 'floating',\n description: property.description,\n placeholder: property.placeholder,\n options: baseService.getSelectValues(property.key),\n valueProp: property.valueProp || 'value',\n labelProp: property.labelProp || 'label',\n },\n })\n break;\n }\n case \"toggle\": {\n formlyFields.push(\n {\n key: property.key,\n type: property.type,\n defaultValue: value,\n props: {\n translate: true,\n label: property.label,\n required,\n description: property.description,\n placeholder: property.placeholder,\n },\n })\n break;\n }\n default: {\n formlyFields.push(\n {\n key: property.key,\n type: property.type,\n defaultValue: value,\n props: {\n translate: true,\n label: property.label,\n required,\n labelPosition: 'floating',\n description: property.description,\n placeholder: property.placeholder\n },\n })\n break;\n }\n }\n }\n }\n });\n }\n return formlyFields;\n }\n\n}","import { BaseService } from \"@rosoftlab/core\";\nimport { BaseModelFormly } from \"./base-model-formly\";\n\nexport class BaseServiceFormly<T extends BaseModelFormly> extends BaseService<T> {\n\n public getFormlyFields(model: T) {\n return model.getFormlyFields(this);\n }\n}\n","import { } from 'reflect-metadata';\r\nimport { FormlyModelConfig } from \"./interfaces/formly-model-config\";\r\nexport function FormlyLayout(config: FormlyModelConfig) {\r\n return (target: any, propertyName: string) => {\r\n const annotations = Reflect.getMetadata('FormlyLayout', target) || [];\r\n config.key=propertyName;\r\n annotations.push(config);\r\n\r\n Reflect.defineMetadata('FormlyLayout', annotations, target);\r\n };\r\n}\r\n","/*\n * Public API Surface of formly\n */\n\nexport * from './lib/base-model-formly';\nexport * from './lib/formly-base-service';\nexport * from './lib/formly-layout';\nexport * from './lib/interfaces/formly-model-config';\n\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
package/index.d.ts
ADDED
@@ -0,0 +1,9 @@
|
|
1
|
+
import { FormlyFieldConfig } from "@ngx-formly/core";
|
2
|
+
import { BaseModel, BaseService } from "@rosoftlab/core";
|
3
|
+
export declare class BaseModelFormly extends BaseModel {
|
4
|
+
showErrorState: false;
|
5
|
+
getFormlyFields(baseService: BaseService<BaseModelFormly>): FormlyFieldConfig<import("@ngx-formly/core").FormlyFieldProps & {
|
6
|
+
[additionalProperties: string]: any;
|
7
|
+
}>[];
|
8
|
+
private getFormlyFieldsForObject;
|
9
|
+
}
|
@@ -0,0 +1,7 @@
|
|
1
|
+
import { BaseService } from "@rosoftlab/core";
|
2
|
+
import { BaseModelFormly } from "./base-model-formly";
|
3
|
+
export declare class BaseServiceFormly<T extends BaseModelFormly> extends BaseService<T> {
|
4
|
+
getFormlyFields(model: T): import("@ngx-formly/core").FormlyFieldConfig<import("@ngx-formly/core").FormlyFieldProps & {
|
5
|
+
[additionalProperties: string]: any;
|
6
|
+
}>[];
|
7
|
+
}
|
@@ -0,0 +1,11 @@
|
|
1
|
+
export interface FormlyModelConfig {
|
2
|
+
key?: string;
|
3
|
+
type: 'input' | 'textarea' | 'checkbox' | 'radio' | 'select' | 'datetime' | 'range' | 'toggle' | 'subobject' | any;
|
4
|
+
label: string;
|
5
|
+
required?: boolean;
|
6
|
+
placeholder?: string;
|
7
|
+
description?: string;
|
8
|
+
defaultValue?: any;
|
9
|
+
valueProp?: string;
|
10
|
+
labelProp?: string;
|
11
|
+
}
|
package/package.json
ADDED
@@ -0,0 +1,27 @@
|
|
1
|
+
{
|
2
|
+
"name": "@rosoftlab/formly",
|
3
|
+
"version": "1.0.0-alpha-0",
|
4
|
+
"peerDependencies": {
|
5
|
+
"@angular/common": "^16.0.0",
|
6
|
+
"@angular/core": "^16.0.0",
|
7
|
+
"@ngx-formly/core": "^6.1.6",
|
8
|
+
"@rosoftlab/core": "1.0.0-alpha-0"
|
9
|
+
},
|
10
|
+
"dependencies": {
|
11
|
+
"tslib": "^2.3.0"
|
12
|
+
},
|
13
|
+
"sideEffects": false,
|
14
|
+
"module": "fesm2022/rosoftlab-formly.mjs",
|
15
|
+
"typings": "index.d.ts",
|
16
|
+
"exports": {
|
17
|
+
"./package.json": {
|
18
|
+
"default": "./package.json"
|
19
|
+
},
|
20
|
+
".": {
|
21
|
+
"types": "./index.d.ts",
|
22
|
+
"esm2022": "./esm2022/rosoftlab-formly.mjs",
|
23
|
+
"esm": "./esm2022/rosoftlab-formly.mjs",
|
24
|
+
"default": "./fesm2022/rosoftlab-formly.mjs"
|
25
|
+
}
|
26
|
+
}
|
27
|
+
}
|
package/public-api.d.ts
ADDED