@ngx-formly/core 6.3.12 → 7.0.0-alpha.1

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 (129) hide show
  1. package/README.md +1 -0
  2. package/esm2022/json-schema/formly-json-schema.service.mjs +628 -0
  3. package/esm2022/lib/components/formly.field.mjs +292 -0
  4. package/esm2022/lib/components/formly.form.mjs +164 -0
  5. package/{esm2020 → esm2022}/lib/components/formly.template.mjs +8 -8
  6. package/esm2022/lib/core.config.mjs +36 -0
  7. package/esm2022/lib/core.mjs +20 -0
  8. package/esm2022/lib/core.module.mjs +74 -0
  9. package/esm2022/lib/extensions/core/core.mjs +148 -0
  10. package/esm2022/lib/extensions/field-expression/field-expression.mjs +250 -0
  11. package/esm2022/lib/extensions/field-expression/utils.mjs +17 -0
  12. package/esm2022/lib/extensions/field-form/field-form.mjs +141 -0
  13. package/esm2022/lib/extensions/field-form/utils.mjs +100 -0
  14. package/esm2022/lib/extensions/field-validation/field-validation.mjs +135 -0
  15. package/esm2022/lib/extensions/index.mjs +2 -0
  16. package/esm2022/lib/models/fieldconfig.cache.mjs +2 -0
  17. package/esm2022/lib/models/fieldconfig.mjs +2 -0
  18. package/esm2022/lib/services/formly.builder.mjs +100 -0
  19. package/esm2022/lib/services/formly.config.mjs +229 -0
  20. package/esm2022/lib/templates/field-array.type.mjs +84 -0
  21. package/esm2022/lib/templates/field-template.type.mjs +34 -0
  22. package/esm2022/lib/templates/field.type.mjs +57 -0
  23. package/{esm2020 → esm2022}/lib/templates/field.wrapper.mjs +4 -4
  24. package/esm2022/lib/templates/formly.attributes.mjs +187 -0
  25. package/{esm2020 → esm2022}/lib/templates/formly.group.mjs +8 -8
  26. package/esm2022/lib/templates/formly.validation-message.mjs +69 -0
  27. package/esm2022/lib/utils.mjs +312 -0
  28. package/esm2022/preset/preset-substitution.extension.mjs +30 -0
  29. package/esm2022/preset/preset.config.mjs +11 -0
  30. package/esm2022/preset/preset.module.mjs +18 -0
  31. package/esm2022/select/select-options.pipe.mjs +100 -0
  32. package/{esm2020 → esm2022}/select/select.module.mjs +5 -5
  33. package/esm2022/testing/component-factory.mjs +86 -0
  34. package/{fesm2020 → fesm2022}/ngx-formly-core-json-schema.mjs +16 -16
  35. package/fesm2022/ngx-formly-core-json-schema.mjs.map +1 -0
  36. package/fesm2022/ngx-formly-core-preset.mjs +62 -0
  37. package/fesm2022/ngx-formly-core-preset.mjs.map +1 -0
  38. package/{fesm2020 → fesm2022}/ngx-formly-core-select.mjs +7 -7
  39. package/{fesm2020 → fesm2022}/ngx-formly-core-select.mjs.map +1 -1
  40. package/{fesm2020 → fesm2022}/ngx-formly-core-testing.mjs +5 -4
  41. package/fesm2022/ngx-formly-core-testing.mjs.map +1 -0
  42. package/{fesm2020 → fesm2022}/ngx-formly-core.mjs +1747 -1702
  43. package/fesm2022/ngx-formly-core.mjs.map +1 -0
  44. package/lib/components/formly.field.d.ts +5 -1
  45. package/lib/components/formly.form.d.ts +8 -4
  46. package/lib/components/formly.template.d.ts +1 -1
  47. package/lib/core.config.d.ts +10 -0
  48. package/lib/core.d.ts +4 -3
  49. package/lib/core.module.d.ts +2 -5
  50. package/lib/extensions/field-expression/utils.d.ts +1 -1
  51. package/lib/extensions/index.d.ts +1 -0
  52. package/lib/models/config.d.ts +1 -1
  53. package/lib/models/fieldconfig.cache.d.ts +3 -3
  54. package/lib/models/fieldconfig.d.ts +8 -7
  55. package/lib/services/formly.builder.d.ts +5 -5
  56. package/lib/services/formly.config.d.ts +3 -9
  57. package/lib/templates/field-array.type.d.ts +3 -3
  58. package/lib/templates/field-template.type.d.ts +1 -1
  59. package/lib/templates/field.type.d.ts +5 -5
  60. package/lib/templates/field.wrapper.d.ts +1 -1
  61. package/lib/templates/formly.attributes.d.ts +1 -1
  62. package/lib/templates/formly.group.d.ts +1 -1
  63. package/lib/templates/formly.validation-message.d.ts +1 -1
  64. package/lib/utils.d.ts +5 -5
  65. package/package.json +23 -37
  66. package/preset/preset.config.d.ts +2 -0
  67. package/select/select-options.pipe.d.ts +1 -1
  68. package/testing/component-factory.d.ts +2 -2
  69. package/esm2020/json-schema/formly-json-schema.service.mjs +0 -628
  70. package/esm2020/lib/components/formly.field.mjs +0 -284
  71. package/esm2020/lib/components/formly.form.mjs +0 -147
  72. package/esm2020/lib/core.mjs +0 -19
  73. package/esm2020/lib/core.module.mjs +0 -91
  74. package/esm2020/lib/extensions/core/core.mjs +0 -148
  75. package/esm2020/lib/extensions/field-expression/field-expression.mjs +0 -250
  76. package/esm2020/lib/extensions/field-expression/utils.mjs +0 -17
  77. package/esm2020/lib/extensions/field-form/field-form.mjs +0 -141
  78. package/esm2020/lib/extensions/field-form/utils.mjs +0 -100
  79. package/esm2020/lib/extensions/field-validation/field-validation.mjs +0 -135
  80. package/esm2020/lib/models/fieldconfig.cache.mjs +0 -2
  81. package/esm2020/lib/models/fieldconfig.mjs +0 -2
  82. package/esm2020/lib/services/formly.builder.mjs +0 -93
  83. package/esm2020/lib/services/formly.config.mjs +0 -229
  84. package/esm2020/lib/templates/field-array.type.mjs +0 -84
  85. package/esm2020/lib/templates/field-template.type.mjs +0 -34
  86. package/esm2020/lib/templates/field.type.mjs +0 -57
  87. package/esm2020/lib/templates/formly.attributes.mjs +0 -187
  88. package/esm2020/lib/templates/formly.validation-message.mjs +0 -69
  89. package/esm2020/lib/utils.mjs +0 -312
  90. package/esm2020/preset/preset-substitution.extension.mjs +0 -30
  91. package/esm2020/preset/preset.module.mjs +0 -32
  92. package/esm2020/select/select-options.pipe.mjs +0 -100
  93. package/esm2020/testing/component-factory.mjs +0 -85
  94. package/fesm2015/ngx-formly-core-json-schema.mjs +0 -615
  95. package/fesm2015/ngx-formly-core-json-schema.mjs.map +0 -1
  96. package/fesm2015/ngx-formly-core-preset.mjs +0 -69
  97. package/fesm2015/ngx-formly-core-preset.mjs.map +0 -1
  98. package/fesm2015/ngx-formly-core-select.mjs +0 -120
  99. package/fesm2015/ngx-formly-core-select.mjs.map +0 -1
  100. package/fesm2015/ngx-formly-core-testing.mjs +0 -87
  101. package/fesm2015/ngx-formly-core-testing.mjs.map +0 -1
  102. package/fesm2015/ngx-formly-core.mjs +0 -2417
  103. package/fesm2015/ngx-formly-core.mjs.map +0 -1
  104. package/fesm2020/ngx-formly-core-json-schema.mjs.map +0 -1
  105. package/fesm2020/ngx-formly-core-preset.mjs +0 -67
  106. package/fesm2020/ngx-formly-core-preset.mjs.map +0 -1
  107. package/fesm2020/ngx-formly-core-testing.mjs.map +0 -1
  108. package/fesm2020/ngx-formly-core.mjs.map +0 -1
  109. package/json-schema/package.json +0 -10
  110. package/preset/package.json +0 -10
  111. package/select/package.json +0 -10
  112. package/testing/package.json +0 -10
  113. /package/{esm2020 → esm2022}/json-schema/ngx-formly-core-json-schema.mjs +0 -0
  114. /package/{esm2020 → esm2022}/json-schema/public_api.mjs +0 -0
  115. /package/{esm2020 → esm2022}/lib/models/config.mjs +0 -0
  116. /package/{esm2020 → esm2022}/lib/models/index.mjs +0 -0
  117. /package/{esm2020 → esm2022}/ngx-formly-core.mjs +0 -0
  118. /package/{esm2020 → esm2022}/preset/ngx-formly-core-preset.mjs +0 -0
  119. /package/{esm2020 → esm2022}/preset/public_api.mjs +0 -0
  120. /package/{esm2020 → esm2022}/public_api.mjs +0 -0
  121. /package/{esm2020 → esm2022}/select/ngx-formly-core-select.mjs +0 -0
  122. /package/{esm2020 → esm2022}/select/public_api.mjs +0 -0
  123. /package/{esm2020 → esm2022}/testing/ngx-formly-core-testing.mjs +0 -0
  124. /package/{esm2020 → esm2022}/testing/public_api.mjs +0 -0
  125. /package/{ngx-formly-core.d.ts → index.d.ts} +0 -0
  126. /package/json-schema/{ngx-formly-core-json-schema.d.ts → index.d.ts} +0 -0
  127. /package/preset/{ngx-formly-core-preset.d.ts → index.d.ts} +0 -0
  128. /package/select/{ngx-formly-core-select.d.ts → index.d.ts} +0 -0
  129. /package/testing/{ngx-formly-core-testing.d.ts → index.d.ts} +0 -0
@@ -0,0 +1,86 @@
1
+ import { TestBed } from '@angular/core/testing';
2
+ import { Component } from '@angular/core';
3
+ import { FormlyModule, FormlyFormBuilder } from '@ngx-formly/core';
4
+ import { ReactiveFormsModule } from '@angular/forms';
5
+ import { By } from '@angular/platform-browser';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "@ngx-formly/core";
8
+ function setInputs(fixture, inputs, detectChanges = true) {
9
+ Object.keys(inputs).forEach((input) => {
10
+ fixture.componentInstance[input] = inputs[input];
11
+ });
12
+ if (detectChanges !== false) {
13
+ fixture.detectChanges();
14
+ }
15
+ }
16
+ export function createComponent({ template, inputs, config, detectChanges, imports, declarations, providers, }) {
17
+ TestBed.configureTestingModule({
18
+ declarations: [TestComponent, ...(declarations || [])],
19
+ imports: [ReactiveFormsModule, FormlyModule.forRoot(config), ...(imports || [])],
20
+ providers: providers || [],
21
+ teardown: { destroyAfterEach: false },
22
+ }).overrideComponent(TestComponent, {
23
+ set: {
24
+ template,
25
+ inputs: Object.keys(inputs),
26
+ },
27
+ });
28
+ const fixture = TestBed.createComponent(TestComponent);
29
+ Object.keys(inputs).forEach((input) => {
30
+ fixture.componentInstance[input] = inputs[input];
31
+ });
32
+ setInputs(fixture, inputs, detectChanges);
33
+ const utils = {
34
+ fixture,
35
+ detectChanges: () => fixture.detectChanges(),
36
+ setInputs: (props) => setInputs(fixture, props),
37
+ query: (selector) => fixture.debugElement.query(By.css(selector)),
38
+ queryAll: (selector) => fixture.debugElement.queryAll(By.css(selector)),
39
+ };
40
+ Object.keys(inputs).forEach((input) => {
41
+ Object.defineProperty(utils, input, {
42
+ get: () => fixture.componentInstance[input],
43
+ });
44
+ });
45
+ return utils;
46
+ }
47
+ export function createFieldComponent(field, config = {}) {
48
+ const model = field?.model || {};
49
+ const options = field?.options || {};
50
+ delete field?.model;
51
+ delete field?.options;
52
+ const utils = createComponent({
53
+ template: '<formly-field [field]="field"></formly-field>',
54
+ inputs: { field },
55
+ ...config,
56
+ detectChanges: false,
57
+ });
58
+ const builder = utils.fixture.componentRef.instance.builder;
59
+ builder.build({ model, options, fieldGroup: [field] });
60
+ utils.detectChanges();
61
+ const setInputs = utils.setInputs;
62
+ utils.setInputs = (props) => {
63
+ if (props.field) {
64
+ builder.build(props.field);
65
+ }
66
+ setInputs(props);
67
+ };
68
+ return utils;
69
+ }
70
+ class TestComponent {
71
+ constructor(builder) {
72
+ this.builder = builder;
73
+ }
74
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TestComponent, deps: [{ token: i1.FormlyFormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
75
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: TestComponent, selector: "formly-test-component", providers: [FormlyFormBuilder], ngImport: i0, template: '', isInline: true }); }
76
+ }
77
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TestComponent, decorators: [{
78
+ type: Component,
79
+ args: [{
80
+ selector: 'formly-test-component',
81
+ template: '',
82
+ providers: [FormlyFormBuilder],
83
+ standalone: false,
84
+ }]
85
+ }], ctorParameters: () => [{ type: i1.FormlyFormBuilder }] });
86
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LWZhY3RvcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvY29yZS90ZXN0aW5nL3NyYy9jb21wb25lbnQtZmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFvQixNQUFNLHVCQUF1QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxTQUFTLEVBQTBCLE1BQU0sZUFBZSxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxZQUFZLEVBQUUsaUJBQWlCLEVBQW1DLE1BQU0sa0JBQWtCLENBQUM7QUFDcEcsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckQsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLDJCQUEyQixDQUFDOzs7QUFFL0MsU0FBUyxTQUFTLENBQUksT0FBNEIsRUFBRSxNQUFTLEVBQUUsYUFBYSxHQUFHLElBQUk7SUFDaEYsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQWlCLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7UUFDckQsT0FBTyxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNuRCxDQUFDLENBQUMsQ0FBQztJQUVILElBQUksYUFBYSxLQUFLLEtBQUssRUFBRSxDQUFDO1FBQzVCLE9BQU8sQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUMxQixDQUFDO0FBQ0gsQ0FBQztBQVlELE1BQU0sVUFBVSxlQUFlLENBQUksRUFDakMsUUFBUSxFQUNSLE1BQU0sRUFDTixNQUFNLEVBQ04sYUFBYSxFQUNiLE9BQU8sRUFDUCxZQUFZLEVBQ1osU0FBUyxHQUNZO0lBQ3JCLE9BQU8sQ0FBQyxzQkFBc0IsQ0FBQztRQUM3QixZQUFZLEVBQUUsQ0FBQyxhQUFhLEVBQUUsR0FBRyxDQUFDLFlBQVksSUFBSSxFQUFFLENBQUMsQ0FBQztRQUN0RCxPQUFPLEVBQUUs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S0FBSyxFQUFFLEVBQUU7UUFDMUIsSUFBSSxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDaEIsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDN0IsQ0FBQztRQUVELFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNuQixDQUFDLENBQUM7SUFFRixPQUFPLEtBQUssQ0FBQztBQUNmLENBQUM7QUFFRCxNQU1NLGFBQWE7SUFDakIsWUFBbUIsT0FBMkI7UUFBM0IsWUFBTyxHQUFQLE9BQU8sQ0FBb0I7SUFBRyxDQUFDOytHQUQ5QyxhQUFhO21HQUFiLGFBQWEsZ0RBSE4sQ0FBQyxpQkFBaUIsQ0FBQywwQkFEcEIsRUFBRTs7NEZBSVIsYUFBYTtrQkFObEIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsdUJBQXVCO29CQUNqQyxRQUFRLEVBQUUsRUFBRTtvQkFDWixTQUFTLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQztvQkFDOUIsVUFBVSxFQUFFLEtBQUs7aUJBQ2xCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVGVzdEJlZCwgQ29tcG9uZW50Rml4dHVyZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvdGVzdGluZyc7XG5pbXBvcnQgeyBDb21wb25lbnQsIERlYnVnRWxlbWVudCwgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1seU1vZHVsZSwgRm9ybWx5Rm9ybUJ1aWxkZXIsIEZvcm1seUZpZWxkQ29uZmlnLCBDb25maWdPcHRpb24gfSBmcm9tICdAbmd4LWZvcm1seS9jb3JlJztcbmltcG9ydCB7IFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBCeSB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuXG5mdW5jdGlvbiBzZXRJbnB1dHM8VD4oZml4dHVyZTogQ29tcG9uZW50Rml4dHVyZTxUPiwgaW5wdXRzOiBULCBkZXRlY3RDaGFuZ2VzID0gdHJ1ZSkge1xuICAoT2JqZWN0LmtleXMoaW5wdXRzKSBhcyAoa2V5b2YgVClbXSkuZm9yRWFjaCgoaW5wdXQpID0+IHtcbiAgICBmaXh0dXJlLmNvbXBvbmVudEluc3RhbmNlW2lucHV0XSA9IGlucHV0c1tpbnB1dF07XG4gIH0pO1xuXG4gIGlmIChkZXRlY3RDaGFuZ2VzICE9PSBmYWxzZSkge1xuICAgIGZpeHR1cmUuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG59XG5cbmludGVyZmFjZSBJQ29tcG9uZW50T3B0aW9uczxUPiBleHRlbmRzIE5nTW9kdWxlIHtcbiAgdGVtcGxhdGU/OiBzdHJpbmc7XG4gIGlucHV0cz86IFQ7XG4gIGNvbmZpZz86IENvbmZpZ09wdGlvbjtcbiAgZGV0ZWN0Q2hhbmdlcz86IGJvb2xlYW47XG59XG5pbnRlcmZhY2UgSUZvcm1seURlYnVnRWxlbWVudDxFPiBleHRlbmRzIERlYnVnRWxlbWVudCB7XG4gIHJlYWRvbmx5IG5hdGl2ZUVsZW1lbnQ6IEU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVDb21wb25lbnQ8VD4oe1xuICB0ZW1wbGF0ZSxcbiAgaW5wdXRzLFxuICBjb25maWcsXG4gIGRldGVjdENoYW5nZXMsXG4gIGltcG9ydHMsXG4gIGRlY2xhcmF0aW9ucyxcbiAgcHJvdmlkZXJzLFxufTogSUNvbXBvbmVudE9wdGlvbnM8VD4pIHtcbiAgVGVzdEJlZC5jb25maWd1cmVUZXN0aW5nTW9kdWxlKHtcbiAgICBkZWNsYXJhdGlvbnM6IFtUZXN0Q29tcG9uZW50LCAuLi4oZGVjbGFyYXRpb25zIHx8IFtdKV0sXG4gICAgaW1wb3J0czogW1JlYWN0aXZlRm9ybXNNb2R1bGUsIEZvcm1seU1vZHVsZS5mb3JSb290KGNvbmZpZyksIC4uLihpbXBvcnRzIHx8IFtdKV0sXG4gICAgcHJvdmlkZXJzOiBwcm92aWRlcnMgfHwgW10sXG4gICAgdGVhcmRvd246IHsgZGVzdHJveUFmdGVyRWFjaDogZmFsc2UgfSxcbiAgfSkub3ZlcnJpZGVDb21wb25lbnQoVGVzdENvbXBvbmVudCwge1xuICAgIHNldDoge1xuICAgICAgdGVtcGxhdGUsXG4gICAgICBpbnB1dHM6IE9iamVjdC5rZXlzKGlucHV0cyksXG4gICAgfSxcbiAgfSk7XG5cbiAgY29uc3QgZml4dHVyZSA9IFRlc3RCZWQuY3JlYXRlQ29tcG9uZW50KFRlc3RDb21wb25lbnQpIGFzIENvbXBvbmVudEZpeHR1cmU8VD47XG4gIChPYmplY3Qua2V5cyhpbnB1dHMpIGFzIChrZXlvZiBUKVtdKS5mb3JFYWNoKChpbnB1dCkgPT4ge1xuICAgIGZpeHR1cmUuY29tcG9uZW50SW5zdGFuY2VbaW5wdXRdID0gaW5wdXRzW2lucHV0XTtcbiAgfSk7XG5cbiAgc2V0SW5wdXRzKGZpeHR1cmUsIGlucHV0cywgZGV0ZWN0Q2hhbmdlcyk7XG5cbiAgdHlwZSBGaXh0dXJlVXRpbHMgPSBUICYge1xuICAgIGZpeHR1cmU6IENvbXBvbmVudEZpeHR1cmU8VD47XG4gICAgZGV0ZWN0Q2hhbmdlczogKHR5cGVvZiBmaXh0dXJlKVsnZGV0ZWN0Q2hhbmdlcyddO1xuICAgIHNldElucHV0czogKGlucHV0czogUGFydGlhbDxUPikgPT4gdm9pZDtcbiAgICBxdWVyeTogPEUgZXh0ZW5kcyBFbGVtZW50ID0gRWxlbWVudD4oc2VsZWN0b3I6IHN0cmluZykgPT4gSUZvcm1seURlYnVnRWxlbWVudDxFPjtcbiAgICBxdWVyeUFsbDogPEUgZXh0ZW5kcyBFbGVtZW50ID0gRWxlbWVudD4oc2VsZWN0b3I6IHN0cmluZykgPT4gSUZvcm1seURlYnVnRWxlbWVudDxFPltdO1xuICB9O1xuXG4gIGNvbnN0IHV0aWxzID0ge1xuICAgIGZpeHR1cmUsXG4gICAgZGV0ZWN0Q2hhbmdlczogKCkgPT4gZml4dHVyZS5kZXRlY3RDaGFuZ2VzKCksXG4gICAgc2V0SW5wdXRzOiAocHJvcHMpID0+IHNldElucHV0cyhmaXh0dXJlLCBwcm9wcyksXG4gICAgcXVlcnk6IChzZWxlY3Rvcjogc3RyaW5nKSA9PiBmaXh0dXJlLmRlYnVnRWxlbWVudC5xdWVyeShCeS5jc3Moc2VsZWN0b3IpKSxcbiAgICBxdWVyeUFsbDogKHNlbGVjdG9yOiBzdHJpbmcpID0+IGZpeHR1cmUuZGVidWdFbGVtZW50LnF1ZXJ5QWxsKEJ5LmNzcyhzZWxlY3RvcikpLFxuICB9IGFzIEZpeHR1cmVVdGlscztcblxuICAoT2JqZWN0LmtleXMoaW5wdXRzKSBhcyAoa2V5b2YgVClbXSkuZm9yRWFjaCgoaW5wdXQpID0+IHtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodXRpbHMsIGlucHV0LCB7XG4gICAgICBnZXQ6ICgpID0+IGZpeHR1cmUuY29tcG9uZW50SW5zdGFuY2VbaW5wdXRdLFxuICAgIH0pO1xuICB9KTtcblxuICByZXR1cm4gdXRpbHM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVGaWVsZENvbXBvbmVudChcbiAgZmllbGQ6IEZvcm1seUZpZWxkQ29uZmlnLFxuICBjb25maWc6IElDb21wb25lbnRPcHRpb25zPHsgZmllbGQ6IEZvcm1seUZpZWxkQ29uZmlnIH0+ID0ge30sXG4pIHtcbiAgY29uc3QgbW9kZWwgPSBmaWVsZD8ubW9kZWwgfHwge307XG4gIGNvbnN0IG9wdGlvbnMgPSBmaWVsZD8ub3B0aW9ucyB8fCB7fTtcbiAgZGVsZXRlIChmaWVsZCBhcyBhbnkpPy5tb2RlbDtcbiAgZGVsZXRlIChmaWVsZCBhcyBhbnkpPy5vcHRpb25zO1xuXG4gIGNvbnN0IHV0aWxzID0gY3JlYXRlQ29tcG9uZW50PHsgZmllbGQ6IEZvcm1seUZpZWxkQ29uZmlnIH0+KHtcbiAgICB0ZW1wbGF0ZTogJzxmb3JtbHktZmllbGQgW2ZpZWxkXT1cImZpZWxkXCI+PC9mb3JtbHktZmllbGQ+JyxcbiAgICBpbnB1dHM6IHsgZmllbGQgfSxcbiAgICAuLi5jb25maWcsXG4gICAgZGV0ZWN0Q2hhbmdlczogZmFsc2UsXG4gIH0pO1xuICBjb25zdCBidWlsZGVyID0gKHV0aWxzLmZpeHR1cmUuY29tcG9uZW50UmVmLmluc3RhbmNlIGFzIGFueSkuYnVpbGRlcjtcbiAgYnVpbGRlci5idWlsZCh7IG1vZGVsLCBvcHRpb25zLCBmaWVsZEdyb3VwOiBbZmllbGRdIH0pO1xuICB1dGlscy5kZXRlY3RDaGFuZ2VzKCk7XG5cbiAgY29uc3Qgc2V0SW5wdXRzID0gdXRpbHMuc2V0SW5wdXRzO1xuICB1dGlscy5zZXRJbnB1dHMgPSAocHJvcHMpID0+IHtcbiAgICBpZiAocHJvcHMuZmllbGQpIHtcbiAgICAgIGJ1aWxkZXIuYnVpbGQocHJvcHMuZmllbGQpO1xuICAgIH1cblxuICAgIHNldElucHV0cyhwcm9wcyk7XG4gIH07XG5cbiAgcmV0dXJuIHV0aWxzO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdmb3JtbHktdGVzdC1jb21wb25lbnQnLFxuICB0ZW1wbGF0ZTogJycsXG4gIHByb3ZpZGVyczogW0Zvcm1seUZvcm1CdWlsZGVyXSxcbiAgc3RhbmRhbG9uZTogZmFsc2UsXG59KVxuY2xhc3MgVGVzdENvbXBvbmVudCB7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBidWlsZGVyPzogRm9ybWx5Rm9ybUJ1aWxkZXIpIHt9XG59XG4iXX0=
@@ -1,7 +1,7 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { Injectable } from '@angular/core';
3
- import { FormArray, FormGroup } from '@angular/forms';
4
- import { ɵhasKey, ɵgetFieldValue, ɵclone, ɵreverseDeepMerge } from '@ngx-formly/core';
3
+ import { UntypedFormArray, UntypedFormGroup } from '@angular/forms';
4
+ import { ɵhasKey as _hasKey, ɵgetFieldValue as _getFieldValue, ɵclone as _clone, ɵreverseDeepMerge as _reverseDeepMerge } from '@ngx-formly/core';
5
5
  import { tap } from 'rxjs/operators';
6
6
 
7
7
  // https://stackoverflow.com/a/27865285
@@ -43,11 +43,11 @@ function toNumber(value) {
43
43
  }
44
44
  function totalMatchedFields(field) {
45
45
  if (!field.fieldGroup) {
46
- return ɵhasKey(field) && ɵgetFieldValue(field) !== undefined ? 1 : 0;
46
+ return _hasKey(field) && _getFieldValue(field) !== undefined ? 1 : 0;
47
47
  }
48
48
  const total = field.fieldGroup.reduce((s, f) => totalMatchedFields(f) + s, 0);
49
- if (total === 0 && ɵhasKey(field)) {
50
- const value = ɵgetFieldValue(field);
49
+ if (total === 0 && _hasKey(field)) {
50
+ const value = _getFieldValue(field);
51
51
  if (value === null ||
52
52
  (value !== undefined && ((field.fieldArray && Array.isArray(value)) || (!field.fieldArray && isObject(value))))) {
53
53
  return 1;
@@ -57,7 +57,7 @@ function totalMatchedFields(field) {
57
57
  }
58
58
  class FormlyJsonschema {
59
59
  toFieldConfig(schema, options) {
60
- schema = ɵclone(schema);
60
+ schema = _clone(schema);
61
61
  return this._toFieldConfig(schema, { schema, ...(options || {}) });
62
62
  }
63
63
  _toFieldConfig(schema, { key, isOptional, ...options }) {
@@ -326,7 +326,7 @@ class FormlyJsonschema {
326
326
  const isMultiSchema = items.oneOf || items.anyOf;
327
327
  // When items is a single schema, the additionalItems keyword is meaningless, and it should not be used.
328
328
  const f = this._toFieldConfig(items, isMultiSchema ? { ...options, key: `${length}`, isOptional: false } : { ...options, isOptional: false });
329
- if (isMultiSchema && !ɵhasKey(f)) {
329
+ if (isMultiSchema && !_hasKey(f)) {
330
330
  f.key = null;
331
331
  }
332
332
  return f;
@@ -423,7 +423,7 @@ class FormlyJsonschema {
423
423
  base[prop] = base[prop] > schema[prop] ? base[prop] : schema[prop];
424
424
  }
425
425
  });
426
- return ɵreverseDeepMerge(base, schema);
426
+ return _reverseDeepMerge(base, schema);
427
427
  }, baseSchema);
428
428
  }
429
429
  resolveMultiSchema(mode, schemas, options) {
@@ -582,13 +582,13 @@ class FormlyJsonschema {
582
582
  }
583
583
  let field = schema._field;
584
584
  let model = root.model ? root.model : root.fieldArray ? [] : {};
585
- if (root.model && ɵhasKey(root)) {
586
- model = { [Array.isArray(root.key) ? root.key.join('.') : root.key]: ɵgetFieldValue(root) };
585
+ if (root.model && _hasKey(root)) {
586
+ model = { [Array.isArray(root.key) ? root.key.join('.') : root.key]: _getFieldValue(root) };
587
587
  }
588
- model = ɵclone(model);
588
+ model = _clone(model);
589
589
  if (!field) {
590
590
  field = schema._field = root.options.build({
591
- form: Array.isArray(model) ? new FormArray([]) : new FormGroup({}),
591
+ form: Array.isArray(model) ? new UntypedFormArray([]) : new UntypedFormGroup({}),
592
592
  fieldGroup: [
593
593
  this._toFieldConfig(schema, {
594
594
  ...options,
@@ -608,7 +608,7 @@ class FormlyJsonschema {
608
608
  return field.form.valid;
609
609
  }
610
610
  mergeFields(f1, f2) {
611
- for (let prop in f2) {
611
+ for (const prop in f2) {
612
612
  const f1Prop = prop === 'templateOptions' ? 'props' : prop;
613
613
  if (isObject(f1[f1Prop]) && isObject(f2[prop])) {
614
614
  f1[f1Prop] = this.mergeFields(f1[f1Prop], f2[prop]);
@@ -619,10 +619,10 @@ class FormlyJsonschema {
619
619
  }
620
620
  return f1;
621
621
  }
622
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormlyJsonschema, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
623
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormlyJsonschema, providedIn: 'root' }); }
622
624
  }
623
- FormlyJsonschema.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FormlyJsonschema, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
624
- FormlyJsonschema.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FormlyJsonschema, providedIn: 'root' });
625
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FormlyJsonschema, decorators: [{
625
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormlyJsonschema, decorators: [{
626
626
  type: Injectable,
627
627
  args: [{ providedIn: 'root' }]
628
628
  }] });
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ngx-formly-core-json-schema.mjs","sources":["../../../../src/core/json-schema/src/formly-json-schema.service.ts","../../../../src/core/json-schema/src/ngx-formly-core-json-schema.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { FormlyFieldConfig } from '@ngx-formly/core';\nimport { JSONSchema7, JSONSchema7Definition } from 'json-schema';\nimport { AbstractControl, UntypedFormArray, UntypedFormGroup } from '@angular/forms';\nimport {\n ɵreverseDeepMerge as reverseDeepMerge,\n ɵgetFieldValue as getFieldValue,\n ɵclone as clone,\n ɵhasKey as hasKey,\n} from '@ngx-formly/core';\nimport { tap } from 'rxjs/operators';\n\nexport interface FormlyJsonschemaOptions {\n /**\n * allows to intercept the mapping, taking the already mapped\n * formly field and the original JSONSchema source from which it\n * was mapped.\n */\n map?: (mappedField: FormlyFieldConfig, mapSource: JSONSchema7) => FormlyFieldConfig;\n}\n\ninterface FormlyJSONSchema7 extends JSONSchema7 {\n widget?: { formlyConfig: FormlyFieldConfig };\n}\n\n// https://stackoverflow.com/a/27865285\nfunction decimalPlaces(a: number) {\n if (!isFinite(a)) {\n return 0;\n }\n\n let e = 1,\n p = 0;\n while (Math.round(a * e) / e !== a) {\n e *= 10;\n p++;\n }\n\n return p;\n}\n\nfunction isEmpty(v: any) {\n return v === '' || v == null;\n}\n\nfunction isObject(v: any) {\n return v != null && typeof v === 'object' && !Array.isArray(v);\n}\n\nfunction isInteger(value: any) {\n return Number.isInteger ? Number.isInteger(value) : typeof value === 'number' && Math.floor(value) === value;\n}\n\nfunction isConst(schema: JSONSchema7Definition) {\n return typeof schema === 'object' && (schema.hasOwnProperty('const') || (schema.enum && schema.enum.length === 1));\n}\n\nfunction toNumber(value: string | number | null) {\n if (value === '' || value === undefined) {\n return undefined;\n }\n\n if (value === null) {\n return null;\n }\n\n if (typeof value === 'number') {\n return value;\n }\n\n const val = parseFloat(value);\n return !isNaN(val) ? val : value;\n}\n\nfunction totalMatchedFields(field: FormlyFieldConfig): number {\n if (!field.fieldGroup) {\n return hasKey(field) && getFieldValue(field) !== undefined ? 1 : 0;\n }\n\n const total = field.fieldGroup.reduce((s, f) => totalMatchedFields(f) + s, 0);\n if (total === 0 && hasKey(field)) {\n const value = getFieldValue(field);\n if (\n value === null ||\n (value !== undefined && ((field.fieldArray && Array.isArray(value)) || (!field.fieldArray && isObject(value))))\n ) {\n return 1;\n }\n }\n\n return total;\n}\n\ninterface IOptions extends FormlyJsonschemaOptions {\n schema: FormlyJSONSchema7;\n resetOnHide?: boolean;\n shareFormControl?: boolean;\n ignoreDefault?: boolean;\n strict?: boolean;\n readOnly?: boolean;\n key?: FormlyFieldConfig['key'];\n isOptional?: boolean;\n}\n\n@Injectable({ providedIn: 'root' })\nexport class FormlyJsonschema {\n toFieldConfig(schema: JSONSchema7, options?: FormlyJsonschemaOptions): FormlyFieldConfig {\n schema = clone(schema);\n return this._toFieldConfig(schema, { schema, ...(options || {}) });\n }\n\n private _toFieldConfig(schema: FormlyJSONSchema7, { key, isOptional, ...options }: IOptions): FormlyFieldConfig {\n schema = this.resolveSchema(schema, options);\n const types = this.guessSchemaType(schema);\n\n let field: FormlyFieldConfig & { shareFormControl?: boolean } = {\n type: types[0],\n defaultValue: schema.default,\n props: {\n label: schema.title,\n readonly: schema.readOnly,\n description: schema.description,\n },\n };\n\n if (key != null) {\n field.key = key;\n }\n\n if (!options.ignoreDefault && (schema.readOnly || options.readOnly)) {\n field.props.disabled = true;\n options = { ...options, readOnly: true };\n }\n\n if (options.resetOnHide) {\n field.resetOnHide = true;\n }\n\n if (options.shareFormControl === false) {\n field.shareFormControl = false;\n }\n\n if (field.defaultValue === undefined && types.length === 1 && isOptional === false) {\n switch (types[0]) {\n case 'null': {\n field.defaultValue = null;\n break;\n }\n case 'string': {\n field.defaultValue = '';\n break;\n }\n case 'object': {\n field.defaultValue = {};\n break;\n }\n case 'array': {\n field.defaultValue = schema.minItems > 0 ? Array.from(new Array(schema.minItems)) : [];\n break;\n }\n }\n }\n\n if (options.ignoreDefault) {\n delete field.defaultValue;\n }\n\n this.addValidator(field, 'type', {\n schemaType: types,\n expression: ({ value }: AbstractControl) => {\n if (value === undefined) {\n return true;\n }\n\n if (value === null && types.indexOf('null') !== -1) {\n return true;\n }\n\n switch (types[0]) {\n case 'null': {\n return typeof value === null;\n }\n case 'string': {\n return typeof value === 'string';\n }\n case 'integer': {\n return isInteger(value);\n }\n case 'number': {\n return typeof value === 'number';\n }\n case 'object': {\n return isObject(value);\n }\n case 'array': {\n return Array.isArray(value);\n }\n }\n\n return true;\n },\n });\n\n switch (field.type) {\n case 'number':\n case 'integer': {\n field.parsers = [\n (v: string | number, f: FormlyFieldConfig) => {\n v = toNumber(v);\n\n if (v === null && f) {\n const input =\n typeof document !== 'undefined' && f.id\n ? document.querySelector<HTMLInputElement>(`#${f.id}`)\n : undefined;\n if (input && !input.validity.badInput) {\n v = undefined;\n }\n\n if (v !== f.formControl.value) {\n f.formControl.setValue(v, { emitModelToViewChange: false });\n }\n }\n\n return v;\n },\n ] as ((value: any, f?: FormlyFieldConfig) => any)[];\n\n if (schema.hasOwnProperty('minimum')) {\n field.props.min = schema.minimum;\n }\n\n if (schema.hasOwnProperty('maximum')) {\n field.props.max = schema.maximum;\n }\n\n if (schema.hasOwnProperty('exclusiveMinimum')) {\n field.props.exclusiveMinimum = schema.exclusiveMinimum;\n this.addValidator(\n field,\n 'exclusiveMinimum',\n ({ value }: AbstractControl) => isEmpty(value) || value > schema.exclusiveMinimum,\n );\n }\n\n if (schema.hasOwnProperty('exclusiveMaximum')) {\n field.props.exclusiveMaximum = schema.exclusiveMaximum;\n this.addValidator(\n field,\n 'exclusiveMaximum',\n ({ value }: AbstractControl) => isEmpty(value) || value < schema.exclusiveMaximum,\n );\n }\n\n if (schema.hasOwnProperty('multipleOf')) {\n field.props.step = schema.multipleOf;\n this.addValidator(field, 'multipleOf', ({ value }: AbstractControl) => {\n if (isEmpty(value) || typeof value !== 'number' || value === 0 || schema.multipleOf <= 0) {\n return true;\n }\n\n // https://github.com/ajv-validator/ajv/issues/652#issue-283610859\n const multiplier = Math.pow(10, decimalPlaces(schema.multipleOf));\n return Math.round(value * multiplier) % Math.round(schema.multipleOf * multiplier) === 0;\n });\n }\n break;\n }\n case 'string': {\n field.parsers = [\n (v, f: FormlyFieldConfig) => {\n if (types.indexOf('null') !== -1) {\n v = isEmpty(v) ? null : v;\n } else if (f && !f.props.required) {\n v = v === '' ? undefined : v;\n }\n\n return v;\n },\n ] as ((value: any, f?: FormlyFieldConfig) => any)[];\n\n ['minLength', 'maxLength', 'pattern'].forEach((prop) => {\n if (schema.hasOwnProperty(prop)) {\n field.props[prop] = (schema as any)[prop];\n }\n });\n break;\n }\n case 'object': {\n if (!field.fieldGroup) {\n field.fieldGroup = [];\n }\n\n const { propDeps, schemaDeps } = this.resolveDependencies(schema);\n Object.keys(schema.properties || {}).forEach((property) => {\n const isRequired = Array.isArray(schema.required) && schema.required.indexOf(property) !== -1;\n const f = this._toFieldConfig(<JSONSchema7>schema.properties[property], {\n ...options,\n key: property,\n isOptional: isOptional || !isRequired,\n });\n\n field.fieldGroup.push(f);\n if (isRequired || propDeps[property]) {\n f.expressions = {\n ...(f.expressions || {}),\n 'props.required': (f) => {\n let parent = f.parent;\n const model = f.fieldGroup && f.key != null ? parent.model : f.model;\n while (parent.key == null && parent.parent) {\n parent = parent.parent;\n }\n\n const required = parent && parent.props ? parent.props.required : false;\n if (!model && !required) {\n return false;\n }\n\n if (Array.isArray(schema.required) && schema.required.indexOf(property) !== -1) {\n return true;\n }\n\n return propDeps[property] && f.model && propDeps[property].some((k) => !isEmpty(f.model[k]));\n },\n };\n }\n\n if (schemaDeps[property]) {\n const getConstValue = (s: JSONSchema7) => {\n return s.hasOwnProperty('const') ? s.const : s.enum[0];\n };\n\n const oneOfSchema = schemaDeps[property].oneOf as JSONSchema7[];\n if (\n oneOfSchema &&\n oneOfSchema.every((o) => o.properties && o.properties[property] && isConst(o.properties[property]))\n ) {\n oneOfSchema.forEach((oneOfSchemaItem) => {\n const { [property]: constSchema, ...properties } = oneOfSchemaItem.properties;\n field.fieldGroup.push({\n ...this._toFieldConfig(\n { ...oneOfSchemaItem, properties },\n { ...options, shareFormControl: false, resetOnHide: true },\n ),\n expressions: {\n hide: (f) => !f.model || getConstValue(constSchema as JSONSchema7) !== f.model[property],\n },\n });\n });\n } else {\n field.fieldGroup.push({\n ...this._toFieldConfig(schemaDeps[property], options),\n expressions: {\n hide: (f) => !f.model || isEmpty(f.model[property]),\n },\n });\n }\n }\n });\n\n if (schema.oneOf) {\n field.fieldGroup.push(\n this.resolveMultiSchema('oneOf', <JSONSchema7[]>schema.oneOf, { ...options, shareFormControl: false }),\n );\n }\n\n if (schema.anyOf) {\n field.fieldGroup.push(this.resolveMultiSchema('anyOf', <JSONSchema7[]>schema.anyOf, options));\n }\n break;\n }\n case 'array': {\n if (schema.hasOwnProperty('minItems')) {\n field.props.minItems = schema.minItems;\n this.addValidator(field, 'minItems', ({ value }: AbstractControl) => {\n return isEmpty(value) || value.length >= schema.minItems;\n });\n if (!isOptional && schema.minItems > 0 && field.defaultValue === undefined) {\n field.defaultValue = Array.from(new Array(schema.minItems));\n }\n }\n if (schema.hasOwnProperty('maxItems')) {\n field.props.maxItems = schema.maxItems;\n this.addValidator(field, 'maxItems', ({ value }: AbstractControl) => {\n return isEmpty(value) || value.length <= schema.maxItems;\n });\n }\n if (schema.hasOwnProperty('uniqueItems')) {\n field.props.uniqueItems = schema.uniqueItems;\n this.addValidator(field, 'uniqueItems', ({ value }: AbstractControl) => {\n if (isEmpty(value) || !schema.uniqueItems) {\n return true;\n }\n\n const uniqueItems = Array.from(\n new Set(\n value.map((v: any) =>\n JSON.stringify(v, (k, o) => {\n if (isObject(o)) {\n return Object.keys(o)\n .sort()\n .reduce((obj: any, key) => {\n obj[key] = o[key];\n return obj;\n }, {});\n }\n\n return o;\n }),\n ),\n ),\n );\n\n return uniqueItems.length === value.length;\n });\n }\n\n // resolve items schema needed for isEnum check\n if (schema.items && !Array.isArray(schema.items)) {\n schema.items = this.resolveSchema(<JSONSchema7>schema.items, options);\n }\n\n // TODO: remove isEnum check once adding an option to skip extension\n if (!this.isEnum(schema)) {\n field.fieldArray = (root: FormlyFieldConfig) => {\n const length = root.fieldGroup ? root.fieldGroup.length : 0;\n const items = schema.items as JSONSchema7 | JSONSchema7[];\n if (!Array.isArray(items)) {\n if (!items) {\n return {};\n }\n\n const isMultiSchema = items.oneOf || items.anyOf;\n\n // When items is a single schema, the additionalItems keyword is meaningless, and it should not be used.\n const f = this._toFieldConfig(\n items,\n isMultiSchema ? { ...options, key: `${length}`, isOptional: false } : { ...options, isOptional: false },\n );\n\n if (isMultiSchema && !hasKey(f)) {\n f.key = null;\n }\n\n return f;\n }\n\n const itemSchema = items[length] ? items[length] : schema.additionalItems;\n const f = itemSchema ? this._toFieldConfig(<JSONSchema7>itemSchema, options) : {};\n if (f.props) {\n f.props.required = true;\n }\n if (items[length]) {\n f.props.removable = false;\n }\n\n return f;\n };\n }\n break;\n }\n }\n\n if (schema.hasOwnProperty('const')) {\n field.props.const = schema.const;\n this.addValidator(field, 'const', ({ value }: AbstractControl) => value === schema.const);\n if (!field.type) {\n field.defaultValue = schema.const;\n }\n }\n\n if (this.isEnum(schema)) {\n const enumOptions = this.toEnumOptions(schema);\n const multiple = field.type === 'array';\n\n field.type = 'enum';\n field.props.multiple = multiple;\n field.props.options = enumOptions;\n\n const enumValues = enumOptions.map((o) => o.value);\n this.addValidator(field, 'enum', ({ value }: AbstractControl) => {\n if (value === undefined) {\n return true;\n }\n\n if (multiple) {\n return Array.isArray(value) ? value.every((o) => enumValues.includes(o)) : false;\n }\n\n return enumValues.includes(value);\n });\n }\n\n if (schema.oneOf && !field.type) {\n delete field.key;\n field.fieldGroup = [\n this.resolveMultiSchema('oneOf', <JSONSchema7[]>schema.oneOf, { ...options, key, shareFormControl: false }),\n ];\n }\n\n if (schema.anyOf && !field.type) {\n delete field.key;\n field.fieldGroup = [\n this.resolveMultiSchema('oneOf', <JSONSchema7[]>schema.anyOf, { ...options, key, shareFormControl: false }),\n ];\n }\n\n // map in possible formlyConfig options from the widget property\n if (schema.widget?.formlyConfig) {\n field = this.mergeFields(field, schema.widget.formlyConfig);\n }\n\n field.templateOptions = field.props;\n // if there is a map function passed in, use it to allow the user to\n // further customize how fields are being mapped\n return options.map ? options.map(field, schema) : field;\n }\n\n private resolveSchema(schema: JSONSchema7, options: IOptions): JSONSchema7 {\n if (schema && schema.$ref) {\n schema = this.resolveDefinition(schema, options);\n }\n\n if (schema && schema.allOf) {\n schema = this.resolveAllOf(schema, options);\n }\n\n return schema;\n }\n\n private resolveAllOf({ allOf, ...baseSchema }: FormlyJSONSchema7, options: IOptions) {\n if (!allOf.length) {\n throw Error(`allOf array can not be empty ${allOf}.`);\n }\n\n return (allOf as FormlyJSONSchema7[]).reduce((base: FormlyJSONSchema7, schema: FormlyJSONSchema7) => {\n schema = this.resolveSchema(schema, options);\n if (base.required && schema.required) {\n base.required = [...base.required, ...schema.required];\n }\n\n if (schema.uniqueItems) {\n base.uniqueItems = schema.uniqueItems;\n }\n\n // resolve to min value\n (\n ['maxLength', 'maximum', 'exclusiveMaximum', 'maxItems', 'maxProperties'] as (keyof FormlyJSONSchema7)[]\n ).forEach((prop) => {\n if (!isEmpty(base[prop]) && !isEmpty(schema[prop])) {\n (base as any)[prop] = base[prop] < schema[prop] ? base[prop] : schema[prop];\n }\n });\n\n // resolve to max value\n (\n ['minLength', 'minimum', 'exclusiveMinimum', 'minItems', 'minProperties'] as (keyof FormlyJSONSchema7)[]\n ).forEach((prop) => {\n if (!isEmpty(base[prop]) && !isEmpty(schema[prop])) {\n (base as any)[prop] = base[prop] > schema[prop] ? base[prop] : schema[prop];\n }\n });\n\n return reverseDeepMerge(base, schema);\n }, baseSchema);\n }\n\n private resolveMultiSchema(mode: 'oneOf' | 'anyOf', schemas: JSONSchema7[], options: IOptions): FormlyFieldConfig {\n return {\n type: 'multischema',\n fieldGroup: [\n {\n type: 'enum',\n defaultValue: -1,\n props: {\n multiple: mode === 'anyOf',\n options: schemas.map((s, i) => ({ label: s.title, value: i, disabled: s.readOnly })),\n },\n hooks: {\n onInit: (f) => f.formControl.valueChanges.pipe(tap(() => f.options.detectChanges(f.parent))),\n },\n },\n {\n fieldGroup: schemas.map((s, i) => ({\n ...this._toFieldConfig(s, { ...options, resetOnHide: true }),\n expressions: {\n hide: (f, forceUpdate?: boolean) => {\n const control = f.parent.parent.fieldGroup[0].formControl;\n if (control.value === -1 || forceUpdate) {\n let value = f.parent.fieldGroup\n .map(\n (f, i) =>\n [f, i, this.isFieldValid(f, i, schemas, options)] as [FormlyFieldConfig, number, boolean],\n )\n .sort(([f1, , f1Valid], [f2, , f2Valid]) => {\n if (f1Valid !== f2Valid) {\n return f2Valid ? 1 : -1;\n }\n\n const matchedFields1 = totalMatchedFields(f1);\n const matchedFields2 = totalMatchedFields(f2);\n if (matchedFields1 === matchedFields2) {\n if (f1.props.disabled === f2.props.disabled) {\n return 0;\n }\n\n return matchedFields2 > matchedFields1 ? 1 : -1;\n }\n\n return matchedFields2 > matchedFields1 ? 1 : -1;\n })\n .map(([, i]) => i);\n\n if (mode === 'anyOf') {\n const definedValue = value.filter((i) => totalMatchedFields(f.parent.fieldGroup[i]));\n value = definedValue.length > 0 ? definedValue : [value[0] || 0];\n }\n\n value = value.length > 0 ? value : [0];\n control.setValue(mode === 'anyOf' ? value : value[0]);\n }\n\n return Array.isArray(control.value) ? control.value.indexOf(i) === -1 : control.value !== i;\n },\n },\n })),\n },\n ],\n };\n }\n\n private resolveDefinition(schema: FormlyJSONSchema7, options: IOptions): FormlyJSONSchema7 {\n const [uri, pointer] = schema.$ref.split('#/');\n if (uri) {\n throw Error(`Remote schemas for ${schema.$ref} not supported yet.`);\n }\n\n const definition = !pointer\n ? null\n : pointer\n .split('/')\n .reduce((def, path) => (def?.hasOwnProperty(path) ? (def as any)[path] : null), options.schema);\n\n if (!definition) {\n throw Error(`Cannot find a definition for ${schema.$ref}.`);\n }\n\n if (definition.$ref) {\n return this.resolveDefinition(definition, options);\n }\n\n return {\n ...definition,\n ...['title', 'description', 'default', 'widget'].reduce((annotation, p) => {\n if (schema.hasOwnProperty(p)) {\n annotation[p] = (schema as any)[p];\n }\n\n return annotation;\n }, {} as any),\n };\n }\n\n private resolveDependencies(schema: JSONSchema7) {\n const propDeps: { [id: string]: string[] } = {};\n const schemaDeps: { [id: string]: JSONSchema7 } = {};\n\n Object.keys(schema.dependencies || {}).forEach((prop) => {\n const dependency = schema.dependencies[prop] as JSONSchema7;\n if (Array.isArray(dependency)) {\n // Property dependencies\n dependency.forEach((dep) => {\n if (!propDeps[dep]) {\n propDeps[dep] = [prop];\n } else {\n propDeps[dep].push(prop);\n }\n });\n } else {\n // schema dependencies\n schemaDeps[prop] = dependency;\n }\n });\n\n return { propDeps, schemaDeps };\n }\n\n private guessSchemaType(schema: JSONSchema7) {\n const type = schema?.type;\n if (!type && schema?.properties) {\n return ['object'];\n }\n\n if (Array.isArray(type)) {\n if (type.length === 1) {\n return type;\n }\n\n if (type.length === 2 && type.indexOf('null') !== -1) {\n return type.sort((t1) => (t1 == 'null' ? 1 : -1));\n }\n\n return type;\n }\n\n return type ? [type] : [];\n }\n\n private addValidator(field: FormlyFieldConfig, name: string, validator: FormlyFieldConfig['validators']) {\n field.validators = field.validators || {};\n field.validators[name] = validator;\n }\n\n private isEnum(schema: JSONSchema7): boolean {\n return (\n !!schema.enum ||\n (schema.anyOf && (schema.anyOf as JSONSchema7[]).every(isConst)) ||\n (schema.oneOf && (schema.oneOf as JSONSchema7[]).every(isConst)) ||\n (schema.uniqueItems && schema.items && !Array.isArray(schema.items) && this.isEnum(<JSONSchema7>schema.items))\n );\n }\n\n private toEnumOptions(schema: JSONSchema7): { value: any; label: any }[] {\n if (schema.enum) {\n return schema.enum.map((value) => ({ value, label: value }));\n }\n\n const toEnum = (s: JSONSchema7) => {\n const value = s.hasOwnProperty('const') ? s.const : s.enum[0];\n const option: any = { value, label: s.title || value };\n if (s.readOnly) {\n option.disabled = true;\n }\n\n return option;\n };\n\n if (schema.anyOf) {\n return (schema.anyOf as JSONSchema7[]).map(toEnum);\n }\n\n if (schema.oneOf) {\n return (schema.oneOf as JSONSchema7[]).map(toEnum);\n }\n\n return this.toEnumOptions(<JSONSchema7>schema.items);\n }\n\n private isFieldValid(\n root: FormlyFieldConfig & { _schemasFields?: { [key: number]: FormlyFieldConfig } },\n i: number,\n schemas: JSONSchema7[],\n options: IOptions,\n ): boolean {\n const schema = schemas[i] as JSONSchema7 & { _field?: FormlyFieldConfig };\n if (!schema._field) {\n Object.defineProperty(schema, '_field', { enumerable: false, writable: true, configurable: true });\n }\n\n let field = schema._field;\n let model = root.model ? root.model : root.fieldArray ? [] : {};\n if (root.model && hasKey(root)) {\n model = { [Array.isArray(root.key) ? root.key.join('.') : root.key]: getFieldValue(root) };\n }\n\n model = clone(model);\n if (!field) {\n field = schema._field = root.options.build({\n form: Array.isArray(model) ? new UntypedFormArray([]) : new UntypedFormGroup({}),\n fieldGroup: [\n this._toFieldConfig(schema, {\n ...options,\n resetOnHide: true,\n ignoreDefault: true,\n map: null,\n }),\n ],\n model,\n options: {},\n });\n } else {\n (field as any).model = model;\n root.options.build(field);\n }\n\n return field.form.valid;\n }\n\n private mergeFields(f1: any, f2: any) {\n for (const prop in f2) {\n const f1Prop = prop === 'templateOptions' ? 'props' : prop;\n if (isObject(f1[f1Prop]) && isObject(f2[prop])) {\n f1[f1Prop] = this.mergeFields(f1[f1Prop], f2[prop]);\n } else if (f2[prop] != null) {\n f1[f1Prop] = f2[prop];\n }\n }\n\n return f1;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["hasKey","getFieldValue","clone","reverseDeepMerge"],"mappings":"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"}
@@ -0,0 +1,62 @@
1
+ import * as i0 from '@angular/core';
2
+ import { NgModule } from '@angular/core';
3
+ import * as i1 from '@ngx-formly/core';
4
+ import { ɵreverseDeepMerge as _reverseDeepMerge, FormlyConfig, FORMLY_CONFIG, FormlyModule } from '@ngx-formly/core';
5
+
6
+ class PresetSubstitutionExtension {
7
+ constructor(formlyConfig) {
8
+ this.formlyConfig = formlyConfig;
9
+ }
10
+ prePopulate(field) {
11
+ if (!(typeof field.type === 'string') || field.type[0] !== '#') {
12
+ return;
13
+ }
14
+ const configId = new RegExp(/^#(.+)$/).exec(field.type)?.[1];
15
+ const preset = this.formlyConfig.presets[configId];
16
+ const { type: _, ...fieldConfigWithoutType } = field;
17
+ if (preset) {
18
+ const merged = _reverseDeepMerge(fieldConfigWithoutType, 'getConfiguration' in preset ? preset.getConfiguration() : preset);
19
+ Object.assign(field, merged);
20
+ }
21
+ }
22
+ }
23
+ function registerLibraryConfigReplacementExtension(formlyConfig) {
24
+ return {
25
+ extensions: [
26
+ {
27
+ name: 'libraryConfigReplacement',
28
+ extension: new PresetSubstitutionExtension(formlyConfig),
29
+ priority: -300,
30
+ },
31
+ ],
32
+ };
33
+ }
34
+
35
+ function provideFormlyPreset() {
36
+ return {
37
+ provide: FORMLY_CONFIG,
38
+ useFactory: registerLibraryConfigReplacementExtension,
39
+ deps: [FormlyConfig],
40
+ multi: true,
41
+ };
42
+ }
43
+
44
+ class FormlyPresetModule {
45
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormlyPresetModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
46
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: FormlyPresetModule, imports: [i1.FormlyModule] }); }
47
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormlyPresetModule, providers: [provideFormlyPreset()], imports: [FormlyModule.forChild({})] }); }
48
+ }
49
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormlyPresetModule, decorators: [{
50
+ type: NgModule,
51
+ args: [{
52
+ imports: [FormlyModule.forChild({})],
53
+ providers: [provideFormlyPreset()],
54
+ }]
55
+ }] });
56
+
57
+ /**
58
+ * Generated bundle index. Do not edit.
59
+ */
60
+
61
+ export { FormlyPresetModule };
62
+ //# sourceMappingURL=ngx-formly-core-preset.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ngx-formly-core-preset.mjs","sources":["../../../../src/core/preset/src/preset-substitution.extension.ts","../../../../src/core/preset/src/preset.config.ts","../../../../src/core/preset/src/preset.module.ts","../../../../src/core/preset/src/ngx-formly-core-preset.ts"],"sourcesContent":["import { FormlyConfig, FormlyExtension, FormlyFieldConfig, ɵreverseDeepMerge } from '@ngx-formly/core';\nexport class PresetSubstitutionExtension implements FormlyExtension {\n constructor(private formlyConfig: FormlyConfig) {}\n\n prePopulate(field: FormlyFieldConfig): void {\n if (!(typeof field.type === 'string') || field.type[0] !== '#') {\n return;\n }\n const configId = new RegExp(/^#(.+)$/).exec(field.type)?.[1];\n const preset = this.formlyConfig.presets[configId];\n\n const { type: _, ...fieldConfigWithoutType } = field;\n if (preset) {\n const merged = ɵreverseDeepMerge(\n fieldConfigWithoutType,\n 'getConfiguration' in preset ? preset.getConfiguration() : preset,\n );\n Object.assign(field, merged);\n }\n }\n}\n\nexport function registerLibraryConfigReplacementExtension(formlyConfig: FormlyConfig) {\n return {\n extensions: [\n {\n name: 'libraryConfigReplacement',\n extension: new PresetSubstitutionExtension(formlyConfig),\n priority: -300,\n },\n ],\n };\n}\n","import { Provider } from '@angular/core';\nimport { FormlyConfig, FORMLY_CONFIG } from '@ngx-formly/core';\nimport { registerLibraryConfigReplacementExtension } from './preset-substitution.extension';\n\nexport function provideFormlyPreset(): Provider {\n return {\n provide: FORMLY_CONFIG,\n useFactory: registerLibraryConfigReplacementExtension,\n deps: [FormlyConfig],\n multi: true,\n };\n}\n","import { NgModule } from '@angular/core';\nimport { FormlyModule } from '@ngx-formly/core';\nimport { provideFormlyPreset } from './preset.config';\n\n@NgModule({\n imports: [FormlyModule.forChild({})],\n providers: [provideFormlyPreset()],\n})\nexport class FormlyPresetModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["ɵreverseDeepMerge"],"mappings":";;;;;MACa,2BAA2B,CAAA;AACtC,IAAA,WAAA,CAAoB,YAA0B,EAAA;QAA1B,IAAY,CAAA,YAAA,GAAZ,YAAY;;AAEhC,IAAA,WAAW,CAAC,KAAwB,EAAA;AAClC,QAAA,IAAI,EAAE,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;YAC9D;;AAEF,QAAA,MAAM,QAAQ,GAAG,IAAI,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC5D,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC;QAElD,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,sBAAsB,EAAE,GAAG,KAAK;QACpD,IAAI,MAAM,EAAE;YACV,MAAM,MAAM,GAAGA,iBAAiB,CAC9B,sBAAsB,EACtB,kBAAkB,IAAI,MAAM,GAAG,MAAM,CAAC,gBAAgB,EAAE,GAAG,MAAM,CAClE;AACD,YAAA,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC;;;AAGjC;AAEK,SAAU,yCAAyC,CAAC,YAA0B,EAAA;IAClF,OAAO;AACL,QAAA,UAAU,EAAE;AACV,YAAA;AACE,gBAAA,IAAI,EAAE,0BAA0B;AAChC,gBAAA,SAAS,EAAE,IAAI,2BAA2B,CAAC,YAAY,CAAC;gBACxD,QAAQ,EAAE,CAAC,GAAG;AACf,aAAA;AACF,SAAA;KACF;AACH;;SC5BgB,mBAAmB,GAAA;IACjC,OAAO;AACL,QAAA,OAAO,EAAE,aAAa;AACtB,QAAA,UAAU,EAAE,yCAAyC;QACrD,IAAI,EAAE,CAAC,YAAY,CAAC;AACpB,QAAA,KAAK,EAAE,IAAI;KACZ;AACH;;MCHa,kBAAkB,CAAA;+GAAlB,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;gHAAlB,kBAAkB,EAAA,OAAA,EAAA,CAAA,EAAA,CAAA,YAAA,CAAA,EAAA,CAAA,CAAA;gHAAlB,kBAAkB,EAAA,SAAA,EAFlB,CAAC,mBAAmB,EAAE,CAAC,EADxB,OAAA,EAAA,CAAA,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA,EAAA,CAAA,CAAA;;4FAGxB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAJ9B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACpC,oBAAA,SAAS,EAAE,CAAC,mBAAmB,EAAE,CAAC;AACnC,iBAAA;;;ACPD;;AAEG;;;;"}
@@ -91,20 +91,20 @@ class FormlySelectOptionsPipe {
91
91
  this._options = new BehaviorSubject(options);
92
92
  return this._options.asObservable();
93
93
  }
94
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormlySelectOptionsPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
95
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: FormlySelectOptionsPipe, name: "formlySelectOptions" }); }
94
96
  }
95
- FormlySelectOptionsPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FormlySelectOptionsPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
96
- FormlySelectOptionsPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FormlySelectOptionsPipe, name: "formlySelectOptions" });
97
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FormlySelectOptionsPipe, decorators: [{
97
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormlySelectOptionsPipe, decorators: [{
98
98
  type: Pipe,
99
99
  args: [{ name: 'formlySelectOptions' }]
100
100
  }] });
101
101
 
102
102
  class FormlySelectModule {
103
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormlySelectModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
104
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: FormlySelectModule, declarations: [FormlySelectOptionsPipe], exports: [FormlySelectOptionsPipe] }); }
105
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormlySelectModule }); }
103
106
  }
104
- FormlySelectModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FormlySelectModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
105
- FormlySelectModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FormlySelectModule, declarations: [FormlySelectOptionsPipe], exports: [FormlySelectOptionsPipe] });
106
- FormlySelectModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FormlySelectModule });
107
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FormlySelectModule, decorators: [{
107
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormlySelectModule, decorators: [{
108
108
  type: NgModule,
109
109
  args: [{
110
110
  declarations: [FormlySelectOptionsPipe],
@@ -1 +1 @@
1
- {"version":3,"file":"ngx-formly-core-select.mjs","sources":["../../../../src/core/select/src/select-options.pipe.ts","../../../../src/core/select/src/select.module.ts","../../../../src/core/select/src/ngx-formly-core-select.ts"],"sourcesContent":["import { OnDestroy, Pipe, PipeTransform } from '@angular/core';\nimport { BehaviorSubject, Observable, Subscription } from 'rxjs';\nimport { filter, map, tap } from 'rxjs/operators';\nimport { FormlyFieldConfig, FormlyFieldProps } from '@ngx-formly/core';\n\nexport interface FormlySelectOption {\n label: string;\n disabled?: boolean;\n value?: any;\n group?: FormlySelectOption[];\n}\n\nexport interface FormlyFieldSelectProps extends FormlyFieldProps {\n groupProp?: string | ((option: any) => string);\n labelProp?: string | ((option: any) => string);\n valueProp?: string | ((option: any) => any);\n disabledProp?: string | ((option: any) => boolean);\n}\n\ntype ITransformOption = {\n labelProp: (option: any) => string;\n valueProp: (option: any) => any;\n disabledProp: (option: any) => boolean;\n groupProp: (option: any) => string;\n};\n\n@Pipe({ name: 'formlySelectOptions' })\nexport class FormlySelectOptionsPipe implements PipeTransform, OnDestroy {\n private _subscription: Subscription;\n private _options: BehaviorSubject<any[]>;\n\n transform(options: any, field?: FormlyFieldConfig): Observable<FormlySelectOption[]> {\n if (!(options instanceof Observable)) {\n options = this.observableOf(options, field);\n } else {\n this.dispose();\n }\n\n return (options as Observable<any>).pipe(map((value) => this.transformOptions(value, field)));\n }\n\n ngOnDestroy(): void {\n this.dispose();\n }\n\n private transformOptions(options: any[], field?: FormlyFieldConfig): FormlySelectOption[] {\n const to = this.transformSelectProps(field);\n\n const opts: FormlySelectOption[] = [];\n const groups: { [id: string]: number } = {};\n\n options?.forEach((option) => {\n const o = this.transformOption(option, to);\n if (o.group) {\n const id = groups[o.label];\n if (id === undefined) {\n groups[o.label] = opts.push(o) - 1;\n } else {\n o.group.forEach((o) => opts[id].group.push(o));\n }\n } else {\n opts.push(o);\n }\n });\n\n return opts;\n }\n\n private transformOption(option: any, props: ITransformOption): FormlySelectOption {\n const group = props.groupProp(option);\n if (Array.isArray(group)) {\n return {\n label: props.labelProp(option),\n group: group.map((opt) => this.transformOption(opt, props)),\n };\n }\n\n option = {\n label: props.labelProp(option),\n value: props.valueProp(option),\n disabled: !!props.disabledProp(option),\n };\n\n if (group) {\n return { label: group, group: [option] };\n }\n\n return option;\n }\n\n private transformSelectProps(field?: FormlyFieldConfig): ITransformOption {\n const props = field?.props || field?.templateOptions || {};\n const selectPropFn = (prop: any) => (typeof prop === 'function' ? prop : (o: any) => o[prop]);\n\n return {\n groupProp: selectPropFn(props.groupProp || 'group'),\n labelProp: selectPropFn(props.labelProp || 'label'),\n valueProp: selectPropFn(props.valueProp || 'value'),\n disabledProp: selectPropFn(props.disabledProp || 'disabled'),\n };\n }\n\n private dispose() {\n if (this._options) {\n this._options.complete();\n this._options = null;\n }\n\n if (this._subscription) {\n this._subscription.unsubscribe();\n this._subscription = null;\n }\n }\n\n private observableOf(options: any, f?: FormlyFieldConfig) {\n this.dispose();\n if (f && f.options && f.options.fieldChanges) {\n this._subscription = f.options.fieldChanges\n .pipe(\n filter(({ property, type, field }) => {\n return (\n type === 'expressionChanges' &&\n (property.indexOf('templateOptions.options') === 0 || property.indexOf('props.options') === 0) &&\n field === f &&\n Array.isArray(field.props.options) &&\n !!this._options\n );\n }),\n tap(() => this._options.next(f.props.options as any)),\n )\n .subscribe();\n }\n\n this._options = new BehaviorSubject(options);\n return this._options.asObservable();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { FormlySelectOptionsPipe } from './select-options.pipe';\n\n@NgModule({\n declarations: [FormlySelectOptionsPipe],\n exports: [FormlySelectOptionsPipe],\n})\nexport class FormlySelectModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ngx-formly-core-select.mjs","sources":["../../../../src/core/select/src/select-options.pipe.ts","../../../../src/core/select/src/select.module.ts","../../../../src/core/select/src/ngx-formly-core-select.ts"],"sourcesContent":["import { OnDestroy, Pipe, PipeTransform } from '@angular/core';\nimport { BehaviorSubject, Observable, Subscription } from 'rxjs';\nimport { filter, map, tap } from 'rxjs/operators';\nimport { FormlyFieldConfig, FormlyFieldProps } from '@ngx-formly/core';\n\nexport interface FormlySelectOption {\n label: string;\n disabled?: boolean;\n value?: any;\n group?: FormlySelectOption[];\n}\n\nexport interface FormlyFieldSelectProps extends FormlyFieldProps {\n groupProp?: string | ((option: any) => string);\n labelProp?: string | ((option: any) => string);\n valueProp?: string | ((option: any) => any);\n disabledProp?: string | ((option: any) => boolean);\n}\n\ntype ITransformOption = {\n labelProp: (option: any) => string;\n valueProp: (option: any) => any;\n disabledProp: (option: any) => boolean;\n groupProp: (option: any) => string;\n};\n\n@Pipe({ name: 'formlySelectOptions' })\nexport class FormlySelectOptionsPipe implements PipeTransform, OnDestroy {\n private _subscription: Subscription;\n private _options: BehaviorSubject<any[]>;\n\n transform(options: any, field?: FormlyFieldConfig): Observable<FormlySelectOption[]> {\n if (!(options instanceof Observable)) {\n options = this.observableOf(options, field);\n } else {\n this.dispose();\n }\n\n return (options as Observable<any>).pipe(map((value) => this.transformOptions(value, field)));\n }\n\n ngOnDestroy(): void {\n this.dispose();\n }\n\n private transformOptions(options: any[], field?: FormlyFieldConfig): FormlySelectOption[] {\n const to = this.transformSelectProps(field);\n\n const opts: FormlySelectOption[] = [];\n const groups: { [id: string]: number } = {};\n\n options?.forEach((option) => {\n const o = this.transformOption(option, to);\n if (o.group) {\n const id = groups[o.label];\n if (id === undefined) {\n groups[o.label] = opts.push(o) - 1;\n } else {\n o.group.forEach((o) => opts[id].group.push(o));\n }\n } else {\n opts.push(o);\n }\n });\n\n return opts;\n }\n\n private transformOption(option: any, props: ITransformOption): FormlySelectOption {\n const group = props.groupProp(option);\n if (Array.isArray(group)) {\n return {\n label: props.labelProp(option),\n group: group.map((opt) => this.transformOption(opt, props)),\n };\n }\n\n option = {\n label: props.labelProp(option),\n value: props.valueProp(option),\n disabled: !!props.disabledProp(option),\n };\n\n if (group) {\n return { label: group, group: [option] };\n }\n\n return option;\n }\n\n private transformSelectProps(field?: FormlyFieldConfig): ITransformOption {\n const props = field?.props || field?.templateOptions || {};\n const selectPropFn = (prop: any) => (typeof prop === 'function' ? prop : (o: any) => o[prop]);\n\n return {\n groupProp: selectPropFn(props.groupProp || 'group'),\n labelProp: selectPropFn(props.labelProp || 'label'),\n valueProp: selectPropFn(props.valueProp || 'value'),\n disabledProp: selectPropFn(props.disabledProp || 'disabled'),\n };\n }\n\n private dispose() {\n if (this._options) {\n this._options.complete();\n this._options = null;\n }\n\n if (this._subscription) {\n this._subscription.unsubscribe();\n this._subscription = null;\n }\n }\n\n private observableOf(options: any, f?: FormlyFieldConfig) {\n this.dispose();\n if (f && f.options && f.options.fieldChanges) {\n this._subscription = f.options.fieldChanges\n .pipe(\n filter(({ property, type, field }) => {\n return (\n type === 'expressionChanges' &&\n (property.indexOf('templateOptions.options') === 0 || property.indexOf('props.options') === 0) &&\n field === f &&\n Array.isArray(field.props.options) &&\n !!this._options\n );\n }),\n tap(() => this._options.next(f.props.options as any)),\n )\n .subscribe();\n }\n\n this._options = new BehaviorSubject(options);\n return this._options.asObservable();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { FormlySelectOptionsPipe } from './select-options.pipe';\n\n@NgModule({\n declarations: [FormlySelectOptionsPipe],\n exports: [FormlySelectOptionsPipe],\n})\nexport class FormlySelectModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
@@ -72,17 +72,18 @@ class TestComponent {
72
72
  constructor(builder) {
73
73
  this.builder = builder;
74
74
  }
75
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TestComponent, deps: [{ token: i1.FormlyFormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
76
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: TestComponent, selector: "formly-test-component", providers: [FormlyFormBuilder], ngImport: i0, template: '', isInline: true }); }
75
77
  }
76
- TestComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TestComponent, deps: [{ token: i1.FormlyFormBuilder }], target: i0.ɵɵFactoryTarget.Component });
77
- TestComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: TestComponent, selector: "formly-test-component", providers: [FormlyFormBuilder], ngImport: i0, template: '', isInline: true });
78
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TestComponent, decorators: [{
78
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TestComponent, decorators: [{
79
79
  type: Component,
80
80
  args: [{
81
81
  selector: 'formly-test-component',
82
82
  template: '',
83
83
  providers: [FormlyFormBuilder],
84
+ standalone: false,
84
85
  }]
85
- }], ctorParameters: function () { return [{ type: i1.FormlyFormBuilder }]; } });
86
+ }], ctorParameters: () => [{ type: i1.FormlyFormBuilder }] });
86
87
 
87
88
  /**
88
89
  * Generated bundle index. Do not edit.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ngx-formly-core-testing.mjs","sources":["../../../../src/core/testing/src/component-factory.ts","../../../../src/core/testing/src/ngx-formly-core-testing.ts"],"sourcesContent":["import { TestBed, ComponentFixture } from '@angular/core/testing';\nimport { Component, DebugElement, NgModule } from '@angular/core';\nimport { FormlyModule, FormlyFormBuilder, FormlyFieldConfig, ConfigOption } from '@ngx-formly/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { By } from '@angular/platform-browser';\n\nfunction setInputs<T>(fixture: ComponentFixture<T>, inputs: T, detectChanges = true) {\n (Object.keys(inputs) as (keyof T)[]).forEach((input) => {\n fixture.componentInstance[input] = inputs[input];\n });\n\n if (detectChanges !== false) {\n fixture.detectChanges();\n }\n}\n\ninterface IComponentOptions<T> extends NgModule {\n template?: string;\n inputs?: T;\n config?: ConfigOption;\n detectChanges?: boolean;\n}\ninterface IFormlyDebugElement<E> extends DebugElement {\n readonly nativeElement: E;\n}\n\nexport function createComponent<T>({\n template,\n inputs,\n config,\n detectChanges,\n imports,\n declarations,\n providers,\n}: IComponentOptions<T>) {\n TestBed.configureTestingModule({\n declarations: [TestComponent, ...(declarations || [])],\n imports: [ReactiveFormsModule, FormlyModule.forRoot(config), ...(imports || [])],\n providers: providers || [],\n teardown: { destroyAfterEach: false },\n }).overrideComponent(TestComponent, {\n set: {\n template,\n inputs: Object.keys(inputs),\n },\n });\n\n const fixture = TestBed.createComponent(TestComponent) as ComponentFixture<T>;\n (Object.keys(inputs) as (keyof T)[]).forEach((input) => {\n fixture.componentInstance[input] = inputs[input];\n });\n\n setInputs(fixture, inputs, detectChanges);\n\n type FixtureUtils = T & {\n fixture: ComponentFixture<T>;\n detectChanges: (typeof fixture)['detectChanges'];\n setInputs: (inputs: Partial<T>) => void;\n query: <E extends Element = Element>(selector: string) => IFormlyDebugElement<E>;\n queryAll: <E extends Element = Element>(selector: string) => IFormlyDebugElement<E>[];\n };\n\n const utils = {\n fixture,\n detectChanges: () => fixture.detectChanges(),\n setInputs: (props) => setInputs(fixture, props),\n query: (selector: string) => fixture.debugElement.query(By.css(selector)),\n queryAll: (selector: string) => fixture.debugElement.queryAll(By.css(selector)),\n } as FixtureUtils;\n\n (Object.keys(inputs) as (keyof T)[]).forEach((input) => {\n Object.defineProperty(utils, input, {\n get: () => fixture.componentInstance[input],\n });\n });\n\n return utils;\n}\n\nexport function createFieldComponent(\n field: FormlyFieldConfig,\n config: IComponentOptions<{ field: FormlyFieldConfig }> = {},\n) {\n const model = field?.model || {};\n const options = field?.options || {};\n delete (field as any)?.model;\n delete (field as any)?.options;\n\n const utils = createComponent<{ field: FormlyFieldConfig }>({\n template: '<formly-field [field]=\"field\"></formly-field>',\n inputs: { field },\n ...config,\n detectChanges: false,\n });\n const builder = (utils.fixture.componentRef.instance as any).builder;\n builder.build({ model, options, fieldGroup: [field] });\n utils.detectChanges();\n\n const setInputs = utils.setInputs;\n utils.setInputs = (props) => {\n if (props.field) {\n builder.build(props.field);\n }\n\n setInputs(props);\n };\n\n return utils;\n}\n\n@Component({\n selector: 'formly-test-component',\n template: '',\n providers: [FormlyFormBuilder],\n standalone: false,\n})\nclass TestComponent {\n constructor(public builder?: FormlyFormBuilder) {}\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}