@bcweed/dynamic-form-lib 0.0.4 → 0.0.5

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 (66) hide show
  1. package/README.md +19 -15
  2. package/fesm2022/bcweed-dynamic-form-lib.mjs +948 -0
  3. package/fesm2022/bcweed-dynamic-form-lib.mjs.map +1 -0
  4. package/index.d.ts +257 -0
  5. package/package.json +37 -65
  6. package/.editorconfig +0 -17
  7. package/.postcssrc.json +0 -5
  8. package/.vscode/extensions.json +0 -4
  9. package/.vscode/launch.json +0 -20
  10. package/.vscode/tasks.json +0 -42
  11. package/AngularDynamicFormLibrary.esproj +0 -14
  12. package/CHANGELOG.md +0 -16
  13. package/angular.json +0 -169
  14. package/aspnetcore-https.js +0 -37
  15. package/karma.conf.js +0 -44
  16. package/obj/Debug/AngularDynamicFormLibrary.esproj.CoreCompileInputs.cache +0 -0
  17. package/obj/Debug/AngularDynamicFormLibrary.esproj.FileListAbsolute.txt +0 -1
  18. package/obj/Debug/package.g.props +0 -56
  19. package/postcss.config.js +0 -6
  20. package/projects/dynamic-form-lib/.postcssrc.json +0 -5
  21. package/projects/dynamic-form-lib/README.md +0 -63
  22. package/projects/dynamic-form-lib/ng-package.json +0 -10
  23. package/projects/dynamic-form-lib/package.json +0 -27
  24. package/projects/dynamic-form-lib/src/lib/README.md +0 -424
  25. package/projects/dynamic-form-lib/src/lib/SUMMARY.md +0 -159
  26. package/projects/dynamic-form-lib/src/lib/directives/dynamic-ref-directive.ts +0 -13
  27. package/projects/dynamic-form-lib/src/lib/dynamic-form-demo/dynamic-form-demo.component.html +0 -75
  28. package/projects/dynamic-form-lib/src/lib/dynamic-form-demo/dynamic-form-demo.component.scss +0 -127
  29. package/projects/dynamic-form-lib/src/lib/dynamic-form-demo/dynamic-form-demo.component.ts +0 -50
  30. package/projects/dynamic-form-lib/src/lib/dynamic-form-field/dynamic-form-field.component.html +0 -234
  31. package/projects/dynamic-form-lib/src/lib/dynamic-form-field/dynamic-form-field.component.scss +0 -315
  32. package/projects/dynamic-form-lib/src/lib/dynamic-form-field/dynamic-form-field.component.ts +0 -233
  33. package/projects/dynamic-form-lib/src/lib/dynamic-form.component.html +0 -137
  34. package/projects/dynamic-form-lib/src/lib/dynamic-form.component.scss +0 -141
  35. package/projects/dynamic-form-lib/src/lib/dynamic-form.component.ts +0 -366
  36. package/projects/dynamic-form-lib/src/lib/helpers/component-helper.ts +0 -54
  37. package/projects/dynamic-form-lib/src/lib/index.ts +0 -10
  38. package/projects/dynamic-form-lib/src/lib/models/dynamic-form-interfaces.ts +0 -117
  39. package/projects/dynamic-form-lib/src/lib/services/dynamic-form.service.spec.ts +0 -302
  40. package/projects/dynamic-form-lib/src/lib/services/dynamic-form.service.ts +0 -325
  41. package/projects/dynamic-form-lib/src/lib/style.scss +0 -3
  42. package/projects/dynamic-form-lib/src/lib/tailwind-output.css +0 -0
  43. package/projects/dynamic-form-lib/src/lib/validators/compare-validator.ts +0 -26
  44. package/projects/dynamic-form-lib/src/public-api.css +0 -1
  45. package/projects/dynamic-form-lib/src/public-api.ts +0 -10
  46. package/projects/dynamic-form-lib/tailwind.config.js +0 -10
  47. package/projects/dynamic-form-lib/tsconfig.lib.json +0 -15
  48. package/projects/dynamic-form-lib/tsconfig.lib.prod.json +0 -11
  49. package/projects/dynamic-form-lib/tsconfig.spec.json +0 -15
  50. package/public/favicon.ico +0 -0
  51. package/src/app/app-routing.module.ts +0 -10
  52. package/src/app/app.component.css +0 -0
  53. package/src/app/app.component.html +0 -18
  54. package/src/app/app.component.spec.ts +0 -35
  55. package/src/app/app.component.ts +0 -1038
  56. package/src/app/app.config.ts +0 -45
  57. package/src/app/app.module.ts +0 -46
  58. package/src/app/app.routes.ts +0 -8
  59. package/src/index.html +0 -13
  60. package/src/main.ts +0 -16
  61. package/src/styles.css +0 -2
  62. package/tailwind.config.js +0 -10
  63. package/tsconfig.app.json +0 -15
  64. package/tsconfig.json +0 -32
  65. package/tsconfig.spec.json +0 -15
  66. /package/{projects/dynamic-form-lib/src → src}/lib/style.css +0 -0
@@ -1,302 +0,0 @@
1
- import { TestBed } from '@angular/core/testing';
2
- import { FormControl } from '@angular/forms';
3
- import { DynamicFormService } from './dynamic-form.service';
4
- import { DynamicFormField, DynamicFormValidation } from '../../models/dynamic-forms';
5
-
6
- describe('DynamicFormService', () => {
7
- let service: DynamicFormService;
8
-
9
- beforeEach(() => {
10
- TestBed.configureTestingModule({
11
- providers: [DynamicFormService]
12
- });
13
- service = TestBed.inject(DynamicFormService);
14
- });
15
-
16
- it('should be created', () => {
17
- expect(service).toBeTruthy();
18
- });
19
-
20
- describe('getValidators', () => {
21
- it('should return empty array when no validations', () => {
22
- const field: DynamicFormField = {
23
- id: 'test',
24
- label: 'Test',
25
- type: 'text'
26
- };
27
- const validators = service.getValidators(field);
28
- expect(validators.length).toBe(0);
29
- });
30
-
31
- it('should create required validator', () => {
32
- const field: DynamicFormField = {
33
- id: 'test',
34
- label: 'Test',
35
- type: 'text',
36
- validations: [
37
- { type: 'required', message: 'Required' }
38
- ]
39
- };
40
- const validators = service.getValidators(field);
41
- expect(validators.length).toBe(1);
42
-
43
- const control = new FormControl('');
44
- const result = validators[0](control);
45
- expect(result).not.toBeNull();
46
- });
47
-
48
- it('should create minLength validator', () => {
49
- const field: DynamicFormField = {
50
- id: 'test',
51
- label: 'Test',
52
- type: 'text',
53
- validations: [
54
- { type: 'minLength', value: 5, message: 'Min 5 chars' }
55
- ]
56
- };
57
- const validators = service.getValidators(field);
58
- expect(validators.length).toBe(1);
59
-
60
- const control = new FormControl('abc');
61
- const result = validators[0](control);
62
- expect(result).not.toBeNull();
63
- expect(result?.['minlength']).toBeDefined();
64
- });
65
-
66
- it('should create email validator', () => {
67
- const field: DynamicFormField = {
68
- id: 'test',
69
- label: 'Test',
70
- type: 'email',
71
- validations: [
72
- { type: 'email', message: 'Invalid email' }
73
- ]
74
- };
75
- const validators = service.getValidators(field);
76
- expect(validators.length).toBe(1);
77
-
78
- const control = new FormControl('invalid-email');
79
- const result = validators[0](control);
80
- expect(result).not.toBeNull();
81
- });
82
-
83
- it('should create custom validator', () => {
84
- const customValidator = (value: any) => value === 'valid';
85
- const field: DynamicFormField = {
86
- id: 'test',
87
- label: 'Test',
88
- type: 'text',
89
- validations: [
90
- { type: 'custom', message: 'Custom error', validator: customValidator }
91
- ]
92
- };
93
- const validators = service.getValidators(field);
94
- expect(validators.length).toBe(1);
95
-
96
- let control = new FormControl('invalid');
97
- let result = validators[0](control);
98
- expect(result).not.toBeNull();
99
-
100
- control = new FormControl('valid');
101
- result = validators[0](control);
102
- expect(result).toBeNull();
103
- });
104
-
105
- it('should create multiple validators', () => {
106
- const field: DynamicFormField = {
107
- id: 'test',
108
- label: 'Test',
109
- type: 'text',
110
- validations: [
111
- { type: 'required', message: 'Required' },
112
- { type: 'minLength', value: 3, message: 'Min 3' },
113
- { type: 'maxLength', value: 10, message: 'Max 10' }
114
- ]
115
- };
116
- const validators = service.getValidators(field);
117
- expect(validators.length).toBe(3);
118
- });
119
- });
120
-
121
- describe('getErrorMessages', () => {
122
- it('should return empty array when no errors', () => {
123
- const field: DynamicFormField = {
124
- id: 'test',
125
- label: 'Test',
126
- type: 'text',
127
- validations: [
128
- { type: 'required', message: 'Required' }
129
- ]
130
- };
131
- const errors = service.getErrorMessages(field, null);
132
- expect(errors.length).toBe(0);
133
- });
134
-
135
- it('should return error message for required validation', () => {
136
- const field: DynamicFormField = {
137
- id: 'test',
138
- label: 'Test',
139
- type: 'text',
140
- validations: [
141
- { type: 'required', message: 'This field is required' }
142
- ]
143
- };
144
- const validationErrors = { required: true };
145
- const errors = service.getErrorMessages(field, validationErrors);
146
-
147
- expect(errors.length).toBe(1);
148
- expect(errors[0].fieldId).toBe('test');
149
- expect(errors[0].message).toBe('This field is required');
150
- });
151
-
152
- it('should return error message for email validation', () => {
153
- const field: DynamicFormField = {
154
- id: 'email',
155
- label: 'Email',
156
- type: 'email',
157
- validations: [
158
- { type: 'email', message: 'Invalid email address' }
159
- ]
160
- };
161
- const validationErrors = { email: true };
162
- const errors = service.getErrorMessages(field, validationErrors);
163
-
164
- expect(errors.length).toBe(1);
165
- expect(errors[0].message).toBe('Invalid email address');
166
- });
167
-
168
- it('should return multiple error messages', () => {
169
- const field: DynamicFormField = {
170
- id: 'test',
171
- label: 'Test',
172
- type: 'text',
173
- validations: [
174
- { type: 'required', message: 'Required' },
175
- { type: 'minLength', value: 5, message: 'Min 5 chars' }
176
- ]
177
- };
178
- const validationErrors = {
179
- required: true,
180
- minlength: { requiredLength: 5, actualLength: 2 }
181
- };
182
- const errors = service.getErrorMessages(field, validationErrors);
183
-
184
- expect(errors.length).toBe(2);
185
- });
186
- });
187
-
188
- describe('validateFormConfig', () => {
189
- it('should return true for valid config', () => {
190
- const config = {
191
- id: 'test-form',
192
- fields: [
193
- {
194
- id: 'name',
195
- label: 'Name',
196
- type: 'text'
197
- }
198
- ]
199
- };
200
- expect(service.validateFormConfig(config)).toBe(true);
201
- });
202
-
203
- it('should return false for missing id', () => {
204
- const config = {
205
- fields: [
206
- {
207
- id: 'name',
208
- label: 'Name',
209
- type: 'text'
210
- }
211
- ]
212
- };
213
- expect(service.validateFormConfig(config)).toBe(false);
214
- });
215
-
216
- it('should return false for missing fields', () => {
217
- const config = {
218
- id: 'test-form'
219
- };
220
- expect(service.validateFormConfig(config)).toBe(false);
221
- });
222
-
223
- it('should return false for empty fields array', () => {
224
- const config = {
225
- id: 'test-form',
226
- fields: []
227
- };
228
- expect(service.validateFormConfig(config)).toBe(false);
229
- });
230
-
231
- it('should return false for invalid field type', () => {
232
- const config = {
233
- id: 'test-form',
234
- fields: [
235
- {
236
- id: 'name',
237
- label: 'Name',
238
- type: 'invalid-type'
239
- }
240
- ]
241
- };
242
- expect(service.validateFormConfig(config)).toBe(false);
243
- });
244
-
245
- it('should return false for select without options', () => {
246
- const config = {
247
- id: 'test-form',
248
- fields: [
249
- {
250
- id: 'country',
251
- label: 'Country',
252
- type: 'select'
253
- }
254
- ]
255
- };
256
- expect(service.validateFormConfig(config)).toBe(false);
257
- });
258
-
259
- it('should return true for select with options', () => {
260
- const config = {
261
- id: 'test-form',
262
- fields: [
263
- {
264
- id: 'country',
265
- label: 'Country',
266
- type: 'select',
267
- options: [
268
- { label: 'USA', value: 'US' }
269
- ]
270
- }
271
- ]
272
- };
273
- expect(service.validateFormConfig(config)).toBe(true);
274
- });
275
- });
276
-
277
- describe('createSampleConfig', () => {
278
- it('should create a valid sample config', () => {
279
- const config = service.createSampleConfig();
280
-
281
- expect(config).toBeDefined();
282
- expect(config.id).toBe('sample-form');
283
- expect(config.fields).toBeDefined();
284
- expect(config.fields.length).toBeGreaterThan(0);
285
- expect(service.validateFormConfig(config)).toBe(true);
286
- });
287
-
288
- it('should include all field types', () => {
289
- const config = service.createSampleConfig();
290
- const types = config.fields.map((f: any) => f.type);
291
-
292
- expect(types).toContain('text');
293
- expect(types).toContain('email');
294
- expect(types).toContain('number');
295
- expect(types).toContain('select');
296
- expect(types).toContain('radio');
297
- expect(types).toContain('checkbox');
298
- expect(types).toContain('date');
299
- expect(types).toContain('textarea');
300
- });
301
- });
302
- });
@@ -1,325 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { ValidatorFn, Validators, AbstractControl, ValidationErrors } from '@angular/forms';
3
- import { DynamicFormField, DynamicFormValidation, DynamicFormError } from '../models/dynamic-form-interfaces';
4
- import { compareValidator } from '../validators/compare-validator';
5
- @Injectable({
6
- providedIn: 'root'
7
- })
8
- export class DynamicFormService {
9
- constructor() {}
10
-
11
- /**
12
- * Gets the validators for a specific field based on its validations
13
- */
14
- getValidators(fieldOrValidations: DynamicFormField | DynamicFormValidation[]): ValidatorFn[] {
15
- let validations: DynamicFormValidation[] = [];
16
- if (!Array.isArray(fieldOrValidations)) {
17
- if (!fieldOrValidations.validations || fieldOrValidations.validations.length === 0) {
18
- return [];
19
- }
20
- validations = fieldOrValidations.validations;
21
- }
22
- else {
23
- validations = fieldOrValidations;
24
- }
25
-
26
-
27
- const validators: ValidatorFn[] = [];
28
-
29
- validations.forEach(validation => {
30
- const validator = this.createValidator(validation);
31
- if (validator) {
32
- validators.push(validator);
33
- }
34
- });
35
-
36
- return validators;
37
- }
38
- /**
39
- * Creates a validator function based on validation type
40
- */
41
- private createValidator(validation: DynamicFormValidation): ValidatorFn | null {
42
- switch (validation.type) {
43
- case 'required':
44
- return Validators.required;
45
-
46
- case 'minLength':
47
- return validation.value ? Validators.minLength(validation.value) : null;
48
-
49
- case 'maxLength':
50
- return validation.value ? Validators.maxLength(validation.value) : null;
51
-
52
- case 'min':
53
- return validation.value !== undefined ? Validators.min(validation.value) : null;
54
-
55
- case 'max':
56
- return validation.value !== undefined ? Validators.max(validation.value) : null;
57
-
58
- case 'compare':
59
- return validation.compareToField !== undefined ? compareValidator(validation.compareToField) : null;
60
-
61
- case 'email':
62
- return Validators.email;
63
-
64
- case 'pattern':
65
- return validation.value ? Validators.pattern(validation.value) : null;
66
-
67
- case 'custom':
68
- return validation.validator ? this.customValidator(validation) : null;
69
-
70
- default:
71
- return null;
72
- }
73
- }
74
-
75
- /**
76
- * Creates a custom validator wrapper
77
- */
78
- private customValidator(validation: DynamicFormValidation): ValidatorFn {
79
- return (control: AbstractControl): ValidationErrors | null => {
80
- if (!validation.validator) {
81
- return null;
82
- }
83
-
84
- const isValid = validation.validator(control.value);
85
- return isValid ? null : { custom: { message: validation.message } };
86
- };
87
- }
88
-
89
- /**
90
- * Gets error messages for a field based on its validation errors
91
- */
92
- getErrorMessages(field: DynamicFormField, errors: ValidationErrors | null): DynamicFormError[] {
93
- if (!errors || !field.validations) {
94
- return [];
95
- }
96
-
97
- const errorMessages: DynamicFormError[] = [];
98
-
99
- field.validations.forEach(validation => {
100
- const errorKey = this.getErrorKey(validation.type);
101
- if (errors[errorKey]) {
102
- errorMessages.push({
103
- fieldId: field.id,
104
- message: validation.message
105
- });
106
- }
107
- });
108
-
109
- return errorMessages;
110
- }
111
-
112
- /**
113
- * Maps validation type to Angular error key
114
- */
115
- private getErrorKey(validationType: string): string {
116
- switch (validationType) {
117
- case 'required':
118
- return 'required';
119
- case 'minLength':
120
- return 'minlength';
121
- case 'maxLength':
122
- return 'maxlength';
123
- case 'min':
124
- return 'min';
125
- case 'max':
126
- return 'max';
127
- case 'email':
128
- return 'email';
129
- case 'pattern':
130
- return 'pattern';
131
- case 'custom':
132
- return 'custom';
133
- case 'compare':
134
- return 'compare';
135
- default:
136
- return validationType;
137
- }
138
- }
139
-
140
- /**
141
- * Validates a complete form configuration
142
- */
143
- validateFormConfig(config: any): boolean {
144
- if (!config || !config.id || !config.frames) {
145
- console.error('Invalid form config: missing required properties');
146
- return false;
147
- }
148
-
149
- if (!Array.isArray(config.frames) || config.frames.length === 0) {
150
- console.error('Invalid form config: frames must be a non-empty array');
151
- return false;
152
- }
153
-
154
- for (const frame of config.frames) {
155
- if (!Array.isArray(frame.sections) || frame.sections.length === 0) {
156
- console.error('Invalid form config: sections must be a non-empty array');
157
- return false;
158
- }
159
-
160
- }
161
- if (!Array.isArray(config.frames[0].sections) || config.frames[0].sections.length === 0 || !Array.isArray(config.frames[0].sections[0].fields) || config.frames[0].sections[0].fields.length === 0) {
162
- console.error('Invalid form config: fields must be a non-empty array');
163
- return false;
164
- }
165
- for (const frame of config.frames) {
166
- for (const section of frame.sections) {
167
- for (const field of section.fields) {
168
- if (!field.id || !field.label || !field.type) {
169
- console.error('Invalid field config: missing required properties', field);
170
- return false;
171
- }
172
-
173
- const validTypes = ['text', 'number', 'email', 'select', 'checkbox', 'radio', 'date', 'textarea'];
174
- if (!validTypes.includes(field.type)) {
175
- console.error(`Invalid field type: ${field.type}`, field);
176
- return false;
177
- }
178
-
179
- if ((field.type === 'select' || field.type === 'radio') && (!field.options || field.options.length === 0)) {
180
- console.error(`Field type ${field.type} requires options`, field);
181
- return false;
182
- }
183
- }
184
- }
185
- }
186
- return true;
187
- }
188
-
189
- /**
190
- * Creates a sample form configuration for testing
191
- */
192
- createSampleConfig(): any {
193
- return {
194
- id: 'sample-form',
195
- title: 'Sample Dynamic Form',
196
- description: 'This is a sample form configuration demonstrating all field types.',
197
- sections: [
198
- {
199
- id: 'sample-form',
200
- title: 'Sample Dynamic Form',
201
- description: 'This is a sample form configuration demonstrating all field types.',
202
- fields: [
203
- {
204
- id: 'firstName',
205
- label: 'First Name',
206
- type: 'text',
207
- placeholder: 'Enter your first name',
208
- required: true,
209
- order: 1,
210
- validations: [
211
- {
212
- type: 'required',
213
- message: 'First name is required'
214
- },
215
- {
216
- type: 'minLength',
217
- value: 2,
218
- message: 'First name must be at least 2 characters'
219
- }
220
- ]
221
- },
222
- {
223
- id: 'email',
224
- label: 'Email Address',
225
- type: 'email',
226
- placeholder: 'Enter your email',
227
- required: true,
228
- order: 2,
229
- validations: [
230
- {
231
- type: 'required',
232
- message: 'Email is required'
233
- },
234
- {
235
- type: 'email',
236
- message: 'Please enter a valid email address'
237
- }
238
- ]
239
- },
240
- {
241
- id: 'age',
242
- label: 'Age',
243
- type: 'number',
244
- placeholder: 'Enter your age',
245
- order: 3,
246
- validations: [
247
- {
248
- type: 'min',
249
- value: 18,
250
- message: 'You must be at least 18 years old'
251
- },
252
- {
253
- type: 'max',
254
- value: 120,
255
- message: 'Age must be less than 120'
256
- }
257
- ]
258
- },
259
- {
260
- id: 'country',
261
- label: 'Country',
262
- type: 'select',
263
- placeholder: 'Select your country',
264
- required: true,
265
- order: 4,
266
- options: [
267
- { label: 'United States', value: 'US' },
268
- { label: 'Canada', value: 'CA' },
269
- { label: 'United Kingdom', value: 'UK' },
270
- { label: 'Australia', value: 'AU' }
271
- ],
272
- validations: [
273
- {
274
- type: 'required',
275
- message: 'Country is required'
276
- }
277
- ]
278
- },
279
- {
280
- id: 'gender',
281
- label: 'Gender',
282
- type: 'radio',
283
- order: 5,
284
- options: [
285
- { label: 'Male', value: 'male' },
286
- { label: 'Female', value: 'female' },
287
- { label: 'Other', value: 'other' }
288
- ]
289
- },
290
- {
291
- id: 'newsletter',
292
- label: 'Subscribe to newsletter',
293
- type: 'checkbox',
294
- order: 6,
295
- value: false
296
- },
297
- {
298
- id: 'birthDate',
299
- label: 'Birth Date',
300
- type: 'date',
301
- placeholder: 'Select your birth date',
302
- order: 7
303
- },
304
- {
305
- id: 'comments',
306
- label: 'Comments',
307
- type: 'textarea',
308
- placeholder: 'Enter any additional comments',
309
- order: 8,
310
- validations: [
311
- {
312
- type: 'maxLength',
313
- value: 500,
314
- message: 'Comments must be less than 500 characters'
315
- }
316
- ]
317
- }
318
- ],
319
- }
320
- ],
321
- submitLabel: 'Submit Form',
322
- cancelLabel: 'Cancel'
323
- };
324
- }
325
- }
@@ -1,3 +0,0 @@
1
- @import 'tailwindcss';
2
- @import 'tailwindcss-utilities';
3
- @import "tailwindcss-primeui";
@@ -1,26 +0,0 @@
1
- import { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms';
2
-
3
- export function compareValidator(
4
- matchingControlName: string
5
- ): ValidatorFn {
6
- return (control: AbstractControl): ValidationErrors | null => {
7
- const group = control.parent;
8
-
9
- if (!group) {
10
- return null;
11
- }
12
-
13
- const matchingControl = group.get(matchingControlName);
14
-
15
- if (!matchingControl) {
16
- return null;
17
- }
18
-
19
- // Return error on the current control instead of modifying the other
20
- if (control.value !== matchingControl.value) {
21
- return { compare: true };
22
- }
23
-
24
- return null;
25
- };
26
- }
@@ -1 +0,0 @@
1
- @import './tailwind.generated.css';
@@ -1,10 +0,0 @@
1
- /*
2
- * Public API Surface of dynamic-form-lib
3
- */
4
-
5
- export * from './lib/dynamic-form.component';
6
- export * from './lib/dynamic-form-field/dynamic-form-field.component';
7
- export * from './lib/models/dynamic-form-interfaces';
8
- export * from './lib/services/dynamic-form.service';
9
- export * from './lib/directives/dynamic-ref-directive';
10
- export * from './lib/helpers/component-helper';
@@ -1,10 +0,0 @@
1
- import PrimeUI from 'tailwindcss-primeui';
2
-
3
- export default {
4
- // ...
5
- content: [
6
- "./src/**/*.{html,ts}",
7
-
8
- ],
9
- plugins: [PrimeUI]
10
- };
@@ -1,15 +0,0 @@
1
- /* To learn more about Typescript configuration file: https://www.typescriptlang.org/docs/handbook/tsconfig-json.html. */
2
- /* To learn more about Angular compiler options: https://angular.dev/reference/configs/angular-compiler-options. */
3
- {
4
- "extends": "../../tsconfig.json",
5
- "compilerOptions": {
6
- "outDir": "../../out-tsc/lib",
7
- "declaration": true,
8
- "declarationMap": true,
9
- "inlineSources": true,
10
- "types": []
11
- },
12
- "exclude": [
13
- "**/*.spec.ts"
14
- ]
15
- }