@masterteam/components 0.0.2 → 0.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/masterteam-components-checkbox-field.mjs +1 -1
- package/fesm2022/masterteam-components-checkbox-field.mjs.map +1 -1
- package/fesm2022/masterteam-components-date-field.mjs +1 -1
- package/fesm2022/masterteam-components-date-field.mjs.map +1 -1
- package/fesm2022/masterteam-components-field-validation.mjs +137 -0
- package/fesm2022/masterteam-components-field-validation.mjs.map +1 -0
- package/fesm2022/masterteam-components-icon-field.mjs +6 -170
- package/fesm2022/masterteam-components-icon-field.mjs.map +1 -1
- package/fesm2022/masterteam-components-multi-select-field.mjs +1 -1
- package/fesm2022/masterteam-components-multi-select-field.mjs.map +1 -1
- package/fesm2022/masterteam-components-number-field.mjs +4 -3
- package/fesm2022/masterteam-components-number-field.mjs.map +1 -1
- package/fesm2022/masterteam-components-select-field.mjs +1 -1
- package/fesm2022/masterteam-components-select-field.mjs.map +1 -1
- package/fesm2022/masterteam-components-slider-field.mjs +1 -1
- package/fesm2022/masterteam-components-slider-field.mjs.map +1 -1
- package/fesm2022/masterteam-components-text-field.mjs +25 -9
- package/fesm2022/masterteam-components-text-field.mjs.map +1 -1
- package/fesm2022/masterteam-components-textarea-field.mjs +2 -2
- package/fesm2022/masterteam-components-textarea-field.mjs.map +1 -1
- package/fesm2022/masterteam-components.mjs +321 -22
- package/fesm2022/masterteam-components.mjs.map +1 -1
- package/field-validation/index.d.ts +13 -0
- package/index.d.ts +244 -1
- package/number-field/index.d.ts +2 -2
- package/package.json +19 -13
- package/text-field/index.d.ts +2 -2
- package/assets/mticons/fonts/mticons.svg +0 -483
- package/assets/mticons/fonts/mticons.ttf +0 -0
- package/assets/mticons/fonts/mticons.woff +0 -0
- package/assets/mticons/fonts/mticons.woff2 +0 -0
- package/assets/mticons/mticons.css +0 -35
- package/assets/mticons/style.css +0 -1446
|
@@ -5,7 +5,7 @@ import { TextareaModule } from 'primeng/textarea';
|
|
|
5
5
|
import * as i1 from '@angular/forms';
|
|
6
6
|
import { Validators, NgControl, FormsModule } from '@angular/forms';
|
|
7
7
|
|
|
8
|
-
//TODO text stuck when reset
|
|
8
|
+
// TODO: text stuck when reset
|
|
9
9
|
class TextareaField {
|
|
10
10
|
textarea;
|
|
11
11
|
field = input(true);
|
|
@@ -59,7 +59,7 @@ class TextareaField {
|
|
|
59
59
|
this.disabled.set(disabled);
|
|
60
60
|
}
|
|
61
61
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: TextareaField, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
62
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: TextareaField, isStandalone: true, selector: "mt-textarea-field", inputs: { field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, noErrorStyle: { classPropertyName: "noErrorStyle", publicName: "noErrorStyle", isSignal: true, isRequired: false, transformFunction: null }, pInputs: { classPropertyName: "pInputs", publicName: "pInputs", isSignal: true, isRequired: false, transformFunction: null }, rows: { classPropertyName: "rows", publicName: "rows", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "this.styleClass" }, classAttribute: "grid gap-1" }, viewQueries: [{ propertyName: "textarea", first: true, predicate: ["textarea"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "@if (label()) {\n <label\n [class.required]=\"ngControl?.control?.hasValidator(requiredValidator)\"\n [for]=\"ngControl?.name || label()\"\n >{{ label() }}</label\n >\n}\n<textarea\n #textarea\n pTextarea\n [ngModel]=\"value()\"\n (ngModelChange)=\"onValueChange($event)\"\n (blur)=\"onTouched()\"\n [disabled]=\"disabled() || readonly()\"\n [id]=\"ngControl?.name || label()\"\n [class.ng-invalid]=\"!noErrorStyle() && ngControl?.control?.invalid\"\n placeholder=\"{{ placeholder() ?? label() ?? '' }}\"\n class=\"w-full\"\n [rows]=\"rows()\"\n style=\"resize: none\"\n></textarea>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: TextareaModule }, { kind: "directive", type: i2.Textarea, selector: "[pTextarea], [pInputTextarea]", inputs: ["autoResize", "variant", "fluid", "
|
|
62
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: TextareaField, isStandalone: true, selector: "mt-textarea-field", inputs: { field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, noErrorStyle: { classPropertyName: "noErrorStyle", publicName: "noErrorStyle", isSignal: true, isRequired: false, transformFunction: null }, pInputs: { classPropertyName: "pInputs", publicName: "pInputs", isSignal: true, isRequired: false, transformFunction: null }, rows: { classPropertyName: "rows", publicName: "rows", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "this.styleClass" }, classAttribute: "grid gap-1" }, viewQueries: [{ propertyName: "textarea", first: true, predicate: ["textarea"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "@if (label()) {\n <label\n [class.required]=\"ngControl?.control?.hasValidator(requiredValidator)\"\n [for]=\"ngControl?.name || label()\"\n >{{ label() }}</label\n >\n}\n<textarea\n #textarea\n pTextarea\n [ngModel]=\"value()\"\n (ngModelChange)=\"onValueChange($event)\"\n (blur)=\"onTouched()\"\n [disabled]=\"disabled() || readonly()\"\n [id]=\"ngControl?.name || label()\"\n [class.ng-invalid]=\"!noErrorStyle() && ngControl?.control?.invalid\"\n placeholder=\"{{ placeholder() ?? label() ?? '' }}\"\n class=\"w-full\"\n [rows]=\"rows()\"\n style=\"resize: none\"\n></textarea>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: TextareaModule }, { kind: "directive", type: i2.Textarea, selector: "[pTextarea], [pInputTextarea]", inputs: ["autoResize", "pSize", "variant", "fluid", "invalid"], outputs: ["onResize"] }] });
|
|
63
63
|
}
|
|
64
64
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: TextareaField, decorators: [{
|
|
65
65
|
type: Component,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"masterteam-components-textarea-field.mjs","sources":["../../../../packages/masterteam/components/textarea-field/textarea-field.ts","../../../../packages/masterteam/components/textarea-field/textarea-field.html","../../../../packages/masterteam/components/textarea-field/masterteam-components-textarea-field.ts"],"sourcesContent":["import {\n Component,\n HostBinding,\n SimpleChanges,\n ViewChild,\n signal,\n input,\n OnInit,\n OnChanges,\n inject,\n} from '@angular/core';\nimport { TextareaModule } from 'primeng/textarea';\nimport {\n ControlValueAccessor,\n FormsModule,\n NgControl,\n Validators,\n} from '@angular/forms';\n\n//TODO text stuck when reset\n@Component({\n selector: 'mt-textarea-field',\n standalone: true,\n imports: [FormsModule, TextareaModule],\n templateUrl: './textarea-field.html',\n styleUrls: ['./textarea-field.scss'],\n host: {\n class: 'grid gap-1',\n },\n})\nexport class TextareaField implements ControlValueAccessor, OnInit, OnChanges {\n @ViewChild('textarea', { static: true })\n textarea: HTMLTextAreaElement;\n\n readonly field = input<boolean>(true);\n readonly label = input<string>();\n readonly placeholder = input<string>();\n readonly class = input<string>('');\n readonly readonly = input<boolean>(false);\n readonly noErrorStyle = input<boolean>(false);\n readonly pInputs = input<Partial<HTMLTextAreaElement>>();\n readonly rows = input<string>('4');\n\n @HostBinding('class') styleClass: string;\n\n requiredValidator = Validators.required;\n value = signal<string | null>(null);\n disabled = signal<boolean>(false);\n\n onTouched: () => void = () => {};\n onModelChange: (value: string | null) => void = () => {};\n\n public ngControl = inject(NgControl, { self: true });\n\n constructor() {\n if (this.ngControl) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n applyInputsToTextarea() {\n Object.assign(this.textarea, this.pInputs());\n }\n\n ngOnInit() {\n this.styleClass = this.class();\n if (this.pInputs()) {\n this.applyInputsToTextarea();\n }\n }\n\n onValueChange(value: string | null) {\n this.onModelChange(value);\n this.value.set(value);\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes['pInputs']) {\n this.applyInputsToTextarea();\n }\n }\n\n writeValue(value: string) {\n this.value.set(value);\n }\n\n registerOnChange(fn: any) {\n this.onModelChange = fn;\n }\n\n registerOnTouched(fn: any) {\n this.onTouched = fn;\n }\n\n setDisabledState(disabled: boolean) {\n this.disabled.set(disabled);\n }\n}\n","@if (label()) {\n <label\n [class.required]=\"ngControl?.control?.hasValidator(requiredValidator)\"\n [for]=\"ngControl?.name || label()\"\n >{{ label() }}</label\n >\n}\n<textarea\n #textarea\n pTextarea\n [ngModel]=\"value()\"\n (ngModelChange)=\"onValueChange($event)\"\n (blur)=\"onTouched()\"\n [disabled]=\"disabled() || readonly()\"\n [id]=\"ngControl?.name || label()\"\n [class.ng-invalid]=\"!noErrorStyle() && ngControl?.control?.invalid\"\n placeholder=\"{{ placeholder() ?? label() ?? '' }}\"\n class=\"w-full\"\n [rows]=\"rows()\"\n style=\"resize: none\"\n></textarea>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;;AAmBA;MAWa,aAAa,CAAA;AAExB,IAAA,QAAQ;AAEC,IAAA,KAAK,GAAG,KAAK,CAAU,IAAI,CAAC;IAC5B,KAAK,GAAG,KAAK,EAAU;IACvB,WAAW,GAAG,KAAK,EAAU;AAC7B,IAAA,KAAK,GAAG,KAAK,CAAS,EAAE,CAAC;AACzB,IAAA,QAAQ,GAAG,KAAK,CAAU,KAAK,CAAC;AAChC,IAAA,YAAY,GAAG,KAAK,CAAU,KAAK,CAAC;IACpC,OAAO,GAAG,KAAK,EAAgC;AAC/C,IAAA,IAAI,GAAG,KAAK,CAAS,GAAG,CAAC;AAEZ,IAAA,UAAU;AAEhC,IAAA,iBAAiB,GAAG,UAAU,CAAC,QAAQ;AACvC,IAAA,KAAK,GAAG,MAAM,CAAgB,IAAI,CAAC;AACnC,IAAA,QAAQ,GAAG,MAAM,CAAU,KAAK,CAAC;AAEjC,IAAA,SAAS,GAAe,MAAK,
|
|
1
|
+
{"version":3,"file":"masterteam-components-textarea-field.mjs","sources":["../../../../packages/masterteam/components/textarea-field/textarea-field.ts","../../../../packages/masterteam/components/textarea-field/textarea-field.html","../../../../packages/masterteam/components/textarea-field/masterteam-components-textarea-field.ts"],"sourcesContent":["import {\n Component,\n HostBinding,\n SimpleChanges,\n ViewChild,\n signal,\n input,\n OnInit,\n OnChanges,\n inject,\n} from '@angular/core';\nimport { TextareaModule } from 'primeng/textarea';\nimport {\n ControlValueAccessor,\n FormsModule,\n NgControl,\n Validators,\n} from '@angular/forms';\n\n// TODO: text stuck when reset\n@Component({\n selector: 'mt-textarea-field',\n standalone: true,\n imports: [FormsModule, TextareaModule],\n templateUrl: './textarea-field.html',\n styleUrls: ['./textarea-field.scss'],\n host: {\n class: 'grid gap-1',\n },\n})\nexport class TextareaField implements ControlValueAccessor, OnInit, OnChanges {\n @ViewChild('textarea', { static: true })\n textarea: HTMLTextAreaElement;\n\n readonly field = input<boolean>(true);\n readonly label = input<string>();\n readonly placeholder = input<string>();\n readonly class = input<string>('');\n readonly readonly = input<boolean>(false);\n readonly noErrorStyle = input<boolean>(false);\n readonly pInputs = input<Partial<HTMLTextAreaElement>>();\n readonly rows = input<string>('4');\n\n @HostBinding('class') styleClass: string;\n\n requiredValidator = Validators.required;\n value = signal<string | null>(null);\n disabled = signal<boolean>(false);\n\n onTouched: () => void = () => {};\n onModelChange: (value: string | null) => void = () => {};\n\n public ngControl = inject(NgControl, { self: true });\n\n constructor() {\n if (this.ngControl) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n applyInputsToTextarea() {\n Object.assign(this.textarea, this.pInputs());\n }\n\n ngOnInit() {\n this.styleClass = this.class();\n if (this.pInputs()) {\n this.applyInputsToTextarea();\n }\n }\n\n onValueChange(value: string | null) {\n this.onModelChange(value);\n this.value.set(value);\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes['pInputs']) {\n this.applyInputsToTextarea();\n }\n }\n\n writeValue(value: string) {\n this.value.set(value);\n }\n\n registerOnChange(fn: any) {\n this.onModelChange = fn;\n }\n\n registerOnTouched(fn: any) {\n this.onTouched = fn;\n }\n\n setDisabledState(disabled: boolean) {\n this.disabled.set(disabled);\n }\n}\n","@if (label()) {\n <label\n [class.required]=\"ngControl?.control?.hasValidator(requiredValidator)\"\n [for]=\"ngControl?.name || label()\"\n >{{ label() }}</label\n >\n}\n<textarea\n #textarea\n pTextarea\n [ngModel]=\"value()\"\n (ngModelChange)=\"onValueChange($event)\"\n (blur)=\"onTouched()\"\n [disabled]=\"disabled() || readonly()\"\n [id]=\"ngControl?.name || label()\"\n [class.ng-invalid]=\"!noErrorStyle() && ngControl?.control?.invalid\"\n placeholder=\"{{ placeholder() ?? label() ?? '' }}\"\n class=\"w-full\"\n [rows]=\"rows()\"\n style=\"resize: none\"\n></textarea>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { providePrimeNG } from 'primeng/config';
|
|
2
|
-
import Aura from '@
|
|
3
|
-
import { definePreset } from '@
|
|
2
|
+
import Aura from '@primeuix/themes/aura';
|
|
3
|
+
import { definePreset } from '@primeuix/themes';
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
6
|
* Converts a hex color string to an HSL tuple.
|
|
@@ -150,25 +150,25 @@ const MTPreset = definePreset(Aura, {
|
|
|
150
150
|
primary: generateTailwindPalette('#334dff'),
|
|
151
151
|
},
|
|
152
152
|
components: {
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
153
|
+
// steps: {
|
|
154
|
+
// item: {
|
|
155
|
+
// link: {
|
|
156
|
+
// gap: 'calc(50% + 0.25rem)',
|
|
157
|
+
// },
|
|
158
|
+
// number: {
|
|
159
|
+
// font: {
|
|
160
|
+
// size: '0.9rem',
|
|
161
|
+
// },
|
|
162
|
+
// active: {
|
|
163
|
+
// color: 'white',
|
|
164
|
+
// background: '{primary.500}',
|
|
165
|
+
// border: {
|
|
166
|
+
// color: '{primary.500}',
|
|
167
|
+
// },
|
|
168
|
+
// },
|
|
169
|
+
// },
|
|
170
|
+
// },
|
|
171
|
+
// },
|
|
172
172
|
},
|
|
173
173
|
});
|
|
174
174
|
function provideMTComponents() {
|
|
@@ -188,6 +188,305 @@ function provideMTComponents() {
|
|
|
188
188
|
});
|
|
189
189
|
}
|
|
190
190
|
|
|
191
|
+
class ValidatorConfig {
|
|
192
|
+
type;
|
|
193
|
+
value;
|
|
194
|
+
message;
|
|
195
|
+
customValidator;
|
|
196
|
+
constructor(config) {
|
|
197
|
+
this.type = config.type;
|
|
198
|
+
this.value = config.value;
|
|
199
|
+
this.message = config.message;
|
|
200
|
+
this.customValidator = config.customValidator;
|
|
201
|
+
}
|
|
202
|
+
// Factory methods for common validators
|
|
203
|
+
static required(message = 'This field is required') {
|
|
204
|
+
return new ValidatorConfig({ type: 'required', message });
|
|
205
|
+
}
|
|
206
|
+
static email(message = 'Please enter a valid email') {
|
|
207
|
+
return new ValidatorConfig({ type: 'email', message });
|
|
208
|
+
}
|
|
209
|
+
static minLength(length, message) {
|
|
210
|
+
return new ValidatorConfig({
|
|
211
|
+
type: 'minLength',
|
|
212
|
+
value: length,
|
|
213
|
+
message: message || `Minimum length is ${length} characters`,
|
|
214
|
+
});
|
|
215
|
+
}
|
|
216
|
+
static maxLength(length, message) {
|
|
217
|
+
return new ValidatorConfig({
|
|
218
|
+
type: 'maxLength',
|
|
219
|
+
value: length,
|
|
220
|
+
message: message || `Maximum length is ${length} characters`,
|
|
221
|
+
});
|
|
222
|
+
}
|
|
223
|
+
static min(value, message) {
|
|
224
|
+
return new ValidatorConfig({
|
|
225
|
+
type: 'min',
|
|
226
|
+
value,
|
|
227
|
+
message: message || `Minimum value is ${value}`,
|
|
228
|
+
});
|
|
229
|
+
}
|
|
230
|
+
static max(value, message) {
|
|
231
|
+
return new ValidatorConfig({
|
|
232
|
+
type: 'max',
|
|
233
|
+
value,
|
|
234
|
+
message: message || `Maximum value is ${value}`,
|
|
235
|
+
});
|
|
236
|
+
}
|
|
237
|
+
static pattern(pattern, message = 'Invalid format') {
|
|
238
|
+
return new ValidatorConfig({ type: 'pattern', value: pattern, message });
|
|
239
|
+
}
|
|
240
|
+
static custom(validator, message = 'Invalid value') {
|
|
241
|
+
return new ValidatorConfig({
|
|
242
|
+
type: 'custom',
|
|
243
|
+
customValidator: validator,
|
|
244
|
+
message,
|
|
245
|
+
});
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
class BaseFieldConfig {
|
|
249
|
+
key;
|
|
250
|
+
label;
|
|
251
|
+
type;
|
|
252
|
+
required;
|
|
253
|
+
disabled;
|
|
254
|
+
readonly;
|
|
255
|
+
hidden;
|
|
256
|
+
placeholder;
|
|
257
|
+
hint;
|
|
258
|
+
cssClass;
|
|
259
|
+
validators;
|
|
260
|
+
order;
|
|
261
|
+
defaultValue;
|
|
262
|
+
customTemplate;
|
|
263
|
+
constructor(config) {
|
|
264
|
+
this.key = config.key || 'Key';
|
|
265
|
+
this.label = config.label || '';
|
|
266
|
+
this.type = config.type;
|
|
267
|
+
this.required = config.required || false;
|
|
268
|
+
this.disabled = config.disabled || false;
|
|
269
|
+
this.readonly = config.readonly || false;
|
|
270
|
+
this.hidden = config.hidden || false;
|
|
271
|
+
this.placeholder = config.placeholder || '';
|
|
272
|
+
this.hint = config.hint || '';
|
|
273
|
+
this.cssClass = config.cssClass || '';
|
|
274
|
+
this.validators = config.validators || [];
|
|
275
|
+
this.order = config.order || 0;
|
|
276
|
+
this.defaultValue = config.defaultValue;
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
// Specific configurations for different field types
|
|
280
|
+
class TextFieldConfig extends BaseFieldConfig {
|
|
281
|
+
inputType;
|
|
282
|
+
constructor(config) {
|
|
283
|
+
super({ ...config, type: 'text' });
|
|
284
|
+
this.inputType = config.inputType || 'text';
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
class TextareaFieldConfig extends BaseFieldConfig {
|
|
288
|
+
rows;
|
|
289
|
+
autoResize;
|
|
290
|
+
constructor(config) {
|
|
291
|
+
super({ ...config, type: 'textarea' });
|
|
292
|
+
this.rows = config.rows || 3;
|
|
293
|
+
this.autoResize = config.autoResize || false;
|
|
294
|
+
}
|
|
295
|
+
}
|
|
296
|
+
class SelectFieldConfig extends BaseFieldConfig {
|
|
297
|
+
options;
|
|
298
|
+
optionLabel;
|
|
299
|
+
optionValue;
|
|
300
|
+
multiple;
|
|
301
|
+
filter;
|
|
302
|
+
filterBy;
|
|
303
|
+
filterPlaceholder;
|
|
304
|
+
showClear;
|
|
305
|
+
emptyMessage;
|
|
306
|
+
constructor(config) {
|
|
307
|
+
super({ ...config, type: 'select' });
|
|
308
|
+
this.options = config.options;
|
|
309
|
+
this.optionLabel = config.optionLabel || 'label';
|
|
310
|
+
this.optionValue = config.optionValue || 'value';
|
|
311
|
+
this.multiple = config.multiple || false;
|
|
312
|
+
this.filter = config.filter || false;
|
|
313
|
+
this.filterBy = config.filterBy || '';
|
|
314
|
+
this.filterPlaceholder = config.filterPlaceholder || 'Search...';
|
|
315
|
+
this.showClear = config.showClear || false;
|
|
316
|
+
this.emptyMessage = config.emptyMessage || 'No options available';
|
|
317
|
+
}
|
|
318
|
+
}
|
|
319
|
+
class DateFieldConfig extends BaseFieldConfig {
|
|
320
|
+
dateFormat;
|
|
321
|
+
showTime;
|
|
322
|
+
showSeconds;
|
|
323
|
+
hourFormat;
|
|
324
|
+
minDate;
|
|
325
|
+
maxDate;
|
|
326
|
+
disabledDates;
|
|
327
|
+
disabledDays;
|
|
328
|
+
yearRange;
|
|
329
|
+
showIcon;
|
|
330
|
+
icon;
|
|
331
|
+
showButtonBar;
|
|
332
|
+
showClear;
|
|
333
|
+
inline;
|
|
334
|
+
constructor(config) {
|
|
335
|
+
super({ ...config, type: 'date' });
|
|
336
|
+
this.dateFormat = config.dateFormat || 'yyyy-mm-dd';
|
|
337
|
+
this.showTime = config.showTime || false;
|
|
338
|
+
this.showSeconds = config.showSeconds || false;
|
|
339
|
+
this.hourFormat = config.hourFormat || '24';
|
|
340
|
+
this.minDate = config.minDate;
|
|
341
|
+
this.maxDate = config.maxDate;
|
|
342
|
+
this.disabledDates = config.disabledDates || [];
|
|
343
|
+
this.disabledDays = config.disabledDays || [];
|
|
344
|
+
this.yearRange = config.yearRange || '1900:2030';
|
|
345
|
+
this.showIcon = config.showIcon || true;
|
|
346
|
+
this.icon = config.icon || 'pi pi-calendar';
|
|
347
|
+
this.showButtonBar = config.showButtonBar || false;
|
|
348
|
+
this.showClear = config.showClear || true;
|
|
349
|
+
this.inline = config.inline || false;
|
|
350
|
+
}
|
|
351
|
+
}
|
|
352
|
+
class NumberFieldConfig extends BaseFieldConfig {
|
|
353
|
+
min;
|
|
354
|
+
max;
|
|
355
|
+
step;
|
|
356
|
+
prefix;
|
|
357
|
+
suffix;
|
|
358
|
+
currency;
|
|
359
|
+
locale;
|
|
360
|
+
minFractionDigits;
|
|
361
|
+
maxFractionDigits;
|
|
362
|
+
useGrouping;
|
|
363
|
+
showButtons;
|
|
364
|
+
buttonLayout;
|
|
365
|
+
incrementButtonClass;
|
|
366
|
+
decrementButtonClass;
|
|
367
|
+
incrementButtonIcon;
|
|
368
|
+
decrementButtonIcon;
|
|
369
|
+
constructor(config) {
|
|
370
|
+
super({ ...config, type: 'number' });
|
|
371
|
+
this.min = config.min;
|
|
372
|
+
this.max = config.max;
|
|
373
|
+
this.step = config.step || 1;
|
|
374
|
+
this.prefix = config.prefix;
|
|
375
|
+
this.suffix = config.suffix;
|
|
376
|
+
this.currency = config.currency;
|
|
377
|
+
this.locale = config.locale;
|
|
378
|
+
this.minFractionDigits = config.minFractionDigits;
|
|
379
|
+
this.maxFractionDigits = config.maxFractionDigits;
|
|
380
|
+
this.useGrouping = config.useGrouping || false;
|
|
381
|
+
this.showButtons = config.showButtons || false;
|
|
382
|
+
this.buttonLayout = config.buttonLayout || 'stacked';
|
|
383
|
+
this.incrementButtonClass = config.incrementButtonClass;
|
|
384
|
+
this.decrementButtonClass = config.decrementButtonClass;
|
|
385
|
+
this.incrementButtonIcon = config.incrementButtonIcon;
|
|
386
|
+
this.decrementButtonIcon = config.decrementButtonIcon;
|
|
387
|
+
}
|
|
388
|
+
}
|
|
389
|
+
class SliderFieldConfig extends BaseFieldConfig {
|
|
390
|
+
min;
|
|
391
|
+
max;
|
|
392
|
+
step;
|
|
393
|
+
orientation;
|
|
394
|
+
range;
|
|
395
|
+
animate;
|
|
396
|
+
constructor(config) {
|
|
397
|
+
super({ ...config, type: 'slider' });
|
|
398
|
+
this.min = config.min || 0;
|
|
399
|
+
this.max = config.max || 100;
|
|
400
|
+
this.step = config.step || 1;
|
|
401
|
+
this.orientation = config.orientation || 'horizontal';
|
|
402
|
+
this.range = config.range || false;
|
|
403
|
+
this.animate = config.animate || false;
|
|
404
|
+
}
|
|
405
|
+
}
|
|
406
|
+
class MultiSelectFieldConfig extends BaseFieldConfig {
|
|
407
|
+
options;
|
|
408
|
+
optionLabel;
|
|
409
|
+
optionValue;
|
|
410
|
+
filter;
|
|
411
|
+
filterBy;
|
|
412
|
+
filterPlaceholder;
|
|
413
|
+
showClear;
|
|
414
|
+
emptyMessage;
|
|
415
|
+
display;
|
|
416
|
+
maxSelectedLabels;
|
|
417
|
+
selectedItemsLabel;
|
|
418
|
+
showToggleAll;
|
|
419
|
+
resetFilterOnHide;
|
|
420
|
+
constructor(config) {
|
|
421
|
+
super({ ...config, type: 'multi-select' });
|
|
422
|
+
this.options = config.options;
|
|
423
|
+
this.optionLabel = config.optionLabel || 'label';
|
|
424
|
+
this.optionValue = config.optionValue || 'value';
|
|
425
|
+
this.filter = config.filter || false;
|
|
426
|
+
this.filterBy = config.filterBy || '';
|
|
427
|
+
this.filterPlaceholder = config.filterPlaceholder || 'Search...';
|
|
428
|
+
this.showClear = config.showClear || false;
|
|
429
|
+
this.emptyMessage = config.emptyMessage || 'No options available';
|
|
430
|
+
this.display = config.display || 'comma';
|
|
431
|
+
this.maxSelectedLabels = config.maxSelectedLabels || 3;
|
|
432
|
+
this.selectedItemsLabel = config.selectedItemsLabel || '{0} items selected';
|
|
433
|
+
this.showToggleAll = config.showToggleAll || true;
|
|
434
|
+
this.resetFilterOnHide = config.resetFilterOnHide || false;
|
|
435
|
+
}
|
|
436
|
+
}
|
|
437
|
+
class CheckboxFieldConfig extends BaseFieldConfig {
|
|
438
|
+
binary;
|
|
439
|
+
trueValue;
|
|
440
|
+
falseValue;
|
|
441
|
+
checkboxIcon;
|
|
442
|
+
constructor(config) {
|
|
443
|
+
super({ ...config, type: 'checkbox' });
|
|
444
|
+
this.binary = config.binary !== false; // Default to true
|
|
445
|
+
this.trueValue = config.trueValue !== undefined ? config.trueValue : true;
|
|
446
|
+
this.falseValue =
|
|
447
|
+
config.falseValue !== undefined ? config.falseValue : false;
|
|
448
|
+
this.checkboxIcon = config.checkboxIcon;
|
|
449
|
+
}
|
|
450
|
+
}
|
|
451
|
+
function createCustomValidator(customValidator, message) {
|
|
452
|
+
return (control) => {
|
|
453
|
+
const result = customValidator(control.value);
|
|
454
|
+
if (result instanceof Promise) {
|
|
455
|
+
// Handle async validation
|
|
456
|
+
result.then((isValid) => {
|
|
457
|
+
if (!isValid) {
|
|
458
|
+
control.setErrors({
|
|
459
|
+
custom: { message: message || 'Invalid value' },
|
|
460
|
+
});
|
|
461
|
+
}
|
|
462
|
+
});
|
|
463
|
+
return null; // For async, return null initially
|
|
464
|
+
}
|
|
465
|
+
else {
|
|
466
|
+
// Handle sync validation
|
|
467
|
+
return result
|
|
468
|
+
? null
|
|
469
|
+
: { custom: { message: message || 'Invalid value' } };
|
|
470
|
+
}
|
|
471
|
+
};
|
|
472
|
+
}
|
|
473
|
+
function wrapValidatorWithMessage(validator, errorKey, message) {
|
|
474
|
+
return (control) => {
|
|
475
|
+
const result = validator(control);
|
|
476
|
+
if (result) {
|
|
477
|
+
// Replace the default error with custom message
|
|
478
|
+
return { [errorKey]: { ...result[Object.keys(result)[0]], message } };
|
|
479
|
+
}
|
|
480
|
+
return null;
|
|
481
|
+
};
|
|
482
|
+
}
|
|
483
|
+
// DynamicFieldConfig = input.required<any>({
|
|
484
|
+
// transform: (value: any) => this.transformToDateFieldConfig(value)
|
|
485
|
+
// });
|
|
486
|
+
// transformToDateFieldConfig(value: any){
|
|
487
|
+
// return new TextFieldConfig()
|
|
488
|
+
// }
|
|
489
|
+
|
|
191
490
|
/*
|
|
192
491
|
* Public API Surface of components
|
|
193
492
|
*/
|
|
@@ -196,5 +495,5 @@ function provideMTComponents() {
|
|
|
196
495
|
* Generated bundle index. Do not edit.
|
|
197
496
|
*/
|
|
198
497
|
|
|
199
|
-
export { generateTailwindPalette, provideMTComponents };
|
|
498
|
+
export { BaseFieldConfig, CheckboxFieldConfig, DateFieldConfig, MultiSelectFieldConfig, NumberFieldConfig, SelectFieldConfig, SliderFieldConfig, TextFieldConfig, TextareaFieldConfig, ValidatorConfig, createCustomValidator, generateTailwindPalette, provideMTComponents, wrapValidatorWithMessage };
|
|
200
499
|
//# sourceMappingURL=masterteam-components.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"masterteam-components.mjs","sources":["../../../../packages/masterteam/components/src/lib/utils/theme.ts","../../../../packages/masterteam/components/src/lib/config/providemt.ts","../../../../packages/masterteam/components/src/public-api.ts","../../../../packages/masterteam/components/src/masterteam-components.ts"],"sourcesContent":["type HSLTuple = [number, number, number]; // [hue, saturation, lightness]\ntype TailwindColorPalette = {\n [key: string]: string; // e.g., '50': '#f0f9ff', '500': '#0284c7'\n};\n\n/**\n * Converts a hex color string to an HSL tuple.\n * @param hex - The hex color string (e.g., \"#RRGGBB\" or \"#RGB\").\n * @returns An HSL tuple [hue, saturation, lightness] where hue is in degrees (0-360),\n * and saturation/lightness are percentages (0-100).\n */\nfunction hexToHsl(hex: string): HSLTuple {\n let r: number = 0,\n g: number = 0,\n b: number = 0;\n\n // Handle shorthand hex codes\n if (hex.length === 4) {\n r = parseInt(hex[1] + hex[1], 16);\n g = parseInt(hex[2] + hex[2], 16);\n b = parseInt(hex[3] + hex[3], 16);\n } else if (hex.length === 7) {\n r = parseInt(hex.substring(1, 3), 16);\n g = parseInt(hex.substring(3, 5), 16);\n b = parseInt(hex.substring(5, 7), 16);\n } else {\n throw new Error('Invalid hex color format. Expected #RGB or #RRGGBB.');\n }\n\n r /= 255;\n g /= 255;\n b /= 255;\n\n const max: number = Math.max(r, g, b);\n const min: number = Math.min(r, g, b);\n let h: number = 0,\n s: number;\n const l: number = (max + min) / 2;\n\n if (max === min) {\n h = s = 0; // achromatic\n } else {\n const d: number = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n }\n h /= 6;\n }\n\n return [h * 360, s * 100, l * 100]; // HSL in degrees, percentage, percentage\n}\n\n/**\n * Converts HSL values to a hex color string.\n * @param h - Hue (0-360).\n * @param s - Saturation (0-100).\n * @param l - Lightness (0-100).\n * @returns The hex color string (e.g., \"#RRGGBB\").\n */\nfunction hslToHex(h: number, s: number, l: number): string {\n l /= 100;\n const a: number = (s * Math.min(l, 1 - l)) / 100;\n const f = (n: number): string => {\n const k: number = (n + h / 30) % 12;\n const color: number = l - a * Math.max(Math.min(k - 3, 9 - k, 1), -1);\n return Math.round(255 * color)\n .toString(16)\n .padStart(2, '0');\n };\n return `#${f(0)}${f(8)}${f(4)}`;\n}\n\n/**\n * Generates a Tailwind-like color palette (50-950) from a primary color (assumed to be 500).\n *\n * @param primaryColor500 - The hex string of the primary color (e.g., \"#0284c7\").\n * @returns An object representing the color palette, where keys are color numbers (e.g., \"50\", \"100\")\n * and values are hex color strings.\n */\nexport function generateTailwindPalette(\n primaryColor500: string,\n): TailwindColorPalette {\n const [h, s, _l]: HSLTuple = hexToHsl(primaryColor500);\n\n const palette: TailwindColorPalette = {\n '500': primaryColor500,\n };\n\n // Define steps for lighter shades (50 - 400)\n const lightnessStepsLighter: { [key: string]: number } = {\n '50': 95,\n '100': 90,\n '200': 80,\n '300': 70,\n '400': 60,\n };\n\n const saturationReductionsLighter: { [key: string]: number } = {\n '50': 40, // More desaturated\n '100': 30,\n '200': 20,\n '300': 10,\n '400': 5, // Slightly desaturated\n };\n\n for (const shade in lightnessStepsLighter) {\n if (Object.prototype.hasOwnProperty.call(lightnessStepsLighter, shade)) {\n const newL: number = lightnessStepsLighter[shade];\n // Ensure saturation doesn't go below 0\n const newS: number = Math.max(0, s - saturationReductionsLighter[shade]);\n palette[shade] = hslToHex(h, newS, newL);\n }\n }\n\n // Define steps for darker shades (600 - 950)\n const lightnessStepsDarker: { [key: string]: number } = {\n '600': 45,\n '700': 35,\n '800': 25,\n '900': 15,\n '950': 8, // More aggressive darkening for 950\n };\n\n const saturationIncreasesDarker: { [key: string]: number } = {\n '600': 5,\n '700': 10,\n '800': 15,\n '900': 20,\n '950': 25, // Can increase saturation for darker shades\n };\n\n for (const shade in lightnessStepsDarker) {\n if (Object.prototype.hasOwnProperty.call(lightnessStepsDarker, shade)) {\n const newL: number = lightnessStepsDarker[shade];\n // Ensure saturation doesn't exceed 100\n const newS: number = Math.min(100, s + saturationIncreasesDarker[shade]);\n palette[shade] = hslToHex(h, newS, newL);\n }\n }\n\n // Sort the keys numerically to ensure consistent order\n const sortedPalette: TailwindColorPalette = {};\n Object.keys(palette)\n .sort((a, b) => parseInt(a) - parseInt(b))\n .forEach((key: string) => {\n sortedPalette[key] = palette[key];\n });\n\n return sortedPalette;\n}\n","import { providePrimeNG } from 'primeng/config';\nimport { generateTailwindPalette } from '../utils/theme';\nimport Aura from '@primeng/themes/aura';\nimport { definePreset } from '@primeng/themes';\n\nconst MTPreset = definePreset(Aura, {\n options: {\n cssLayer: {\n name: 'primeng',\n order: 'theme, base, primeng',\n },\n },\n semantic: {\n primary: generateTailwindPalette('#334dff'),\n },\n components: {\n steps: {\n item: {\n link: {\n gap: 'calc(50% + 0.25rem)',\n },\n number: {\n font: {\n size: '0.9rem',\n },\n active: {\n color: 'white',\n background: '{primary.500}',\n border: {\n color: '{primary.500}',\n },\n },\n },\n },\n },\n },\n});\n\nexport function provideMTComponents() {\n return providePrimeNG({\n zIndex: {\n modal: 1900,\n overlay: 1500,\n menu: 1500,\n tooltip: 1600,\n },\n theme: {\n preset: MTPreset,\n options: {\n darkModeSelector: '.my-app-dark',\n },\n },\n });\n}\n","/*\n * Public API Surface of components\n */\n\nexport * from './lib/config/providemt';\nexport * from './lib/utils/theme';\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":"masterteam-components.mjs","sources":["../../../../packages/masterteam/components/src/lib/utils/theme.ts","../../../../packages/masterteam/components/src/lib/config/providemt.ts","../../../../packages/masterteam/components/src/lib/config/dynamic-form.model.ts","../../../../packages/masterteam/components/src/public-api.ts","../../../../packages/masterteam/components/src/masterteam-components.ts"],"sourcesContent":["type HSLTuple = [number, number, number]; // [hue, saturation, lightness]\ntype TailwindColorPalette = {\n [key: string]: string; // e.g., '50': '#f0f9ff', '500': '#0284c7'\n};\n\n/**\n * Converts a hex color string to an HSL tuple.\n * @param hex - The hex color string (e.g., \"#RRGGBB\" or \"#RGB\").\n * @returns An HSL tuple [hue, saturation, lightness] where hue is in degrees (0-360),\n * and saturation/lightness are percentages (0-100).\n */\nfunction hexToHsl(hex: string): HSLTuple {\n let r: number = 0,\n g: number = 0,\n b: number = 0;\n\n // Handle shorthand hex codes\n if (hex.length === 4) {\n r = parseInt(hex[1] + hex[1], 16);\n g = parseInt(hex[2] + hex[2], 16);\n b = parseInt(hex[3] + hex[3], 16);\n } else if (hex.length === 7) {\n r = parseInt(hex.substring(1, 3), 16);\n g = parseInt(hex.substring(3, 5), 16);\n b = parseInt(hex.substring(5, 7), 16);\n } else {\n throw new Error('Invalid hex color format. Expected #RGB or #RRGGBB.');\n }\n\n r /= 255;\n g /= 255;\n b /= 255;\n\n const max: number = Math.max(r, g, b);\n const min: number = Math.min(r, g, b);\n let h: number = 0,\n s: number;\n const l: number = (max + min) / 2;\n\n if (max === min) {\n h = s = 0; // achromatic\n } else {\n const d: number = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n }\n h /= 6;\n }\n\n return [h * 360, s * 100, l * 100]; // HSL in degrees, percentage, percentage\n}\n\n/**\n * Converts HSL values to a hex color string.\n * @param h - Hue (0-360).\n * @param s - Saturation (0-100).\n * @param l - Lightness (0-100).\n * @returns The hex color string (e.g., \"#RRGGBB\").\n */\nfunction hslToHex(h: number, s: number, l: number): string {\n l /= 100;\n const a: number = (s * Math.min(l, 1 - l)) / 100;\n const f = (n: number): string => {\n const k: number = (n + h / 30) % 12;\n const color: number = l - a * Math.max(Math.min(k - 3, 9 - k, 1), -1);\n return Math.round(255 * color)\n .toString(16)\n .padStart(2, '0');\n };\n return `#${f(0)}${f(8)}${f(4)}`;\n}\n\n/**\n * Generates a Tailwind-like color palette (50-950) from a primary color (assumed to be 500).\n *\n * @param primaryColor500 - The hex string of the primary color (e.g., \"#0284c7\").\n * @returns An object representing the color palette, where keys are color numbers (e.g., \"50\", \"100\")\n * and values are hex color strings.\n */\nexport function generateTailwindPalette(\n primaryColor500: string,\n): TailwindColorPalette {\n const [h, s, _l]: HSLTuple = hexToHsl(primaryColor500);\n\n const palette: TailwindColorPalette = {\n '500': primaryColor500,\n };\n\n // Define steps for lighter shades (50 - 400)\n const lightnessStepsLighter: { [key: string]: number } = {\n '50': 95,\n '100': 90,\n '200': 80,\n '300': 70,\n '400': 60,\n };\n\n const saturationReductionsLighter: { [key: string]: number } = {\n '50': 40, // More desaturated\n '100': 30,\n '200': 20,\n '300': 10,\n '400': 5, // Slightly desaturated\n };\n\n for (const shade in lightnessStepsLighter) {\n if (Object.prototype.hasOwnProperty.call(lightnessStepsLighter, shade)) {\n const newL: number = lightnessStepsLighter[shade];\n // Ensure saturation doesn't go below 0\n const newS: number = Math.max(0, s - saturationReductionsLighter[shade]);\n palette[shade] = hslToHex(h, newS, newL);\n }\n }\n\n // Define steps for darker shades (600 - 950)\n const lightnessStepsDarker: { [key: string]: number } = {\n '600': 45,\n '700': 35,\n '800': 25,\n '900': 15,\n '950': 8, // More aggressive darkening for 950\n };\n\n const saturationIncreasesDarker: { [key: string]: number } = {\n '600': 5,\n '700': 10,\n '800': 15,\n '900': 20,\n '950': 25, // Can increase saturation for darker shades\n };\n\n for (const shade in lightnessStepsDarker) {\n if (Object.prototype.hasOwnProperty.call(lightnessStepsDarker, shade)) {\n const newL: number = lightnessStepsDarker[shade];\n // Ensure saturation doesn't exceed 100\n const newS: number = Math.min(100, s + saturationIncreasesDarker[shade]);\n palette[shade] = hslToHex(h, newS, newL);\n }\n }\n\n // Sort the keys numerically to ensure consistent order\n const sortedPalette: TailwindColorPalette = {};\n Object.keys(palette)\n .sort((a, b) => parseInt(a) - parseInt(b))\n .forEach((key: string) => {\n sortedPalette[key] = palette[key];\n });\n\n return sortedPalette;\n}\n","import { providePrimeNG } from 'primeng/config';\nimport { generateTailwindPalette } from '../utils/theme';\nimport Aura from '@primeuix/themes/aura';\nimport { definePreset } from '@primeuix/themes';\n\nconst MTPreset = definePreset(Aura, {\n options: {\n cssLayer: {\n name: 'primeng',\n order: 'theme, base, primeng',\n },\n },\n semantic: {\n primary: generateTailwindPalette('#334dff'),\n },\n components: {\n // steps: {\n // item: {\n // link: {\n // gap: 'calc(50% + 0.25rem)',\n // },\n // number: {\n // font: {\n // size: '0.9rem',\n // },\n // active: {\n // color: 'white',\n // background: '{primary.500}',\n // border: {\n // color: '{primary.500}',\n // },\n // },\n // },\n // },\n // },\n },\n});\n\nexport function provideMTComponents() {\n return providePrimeNG({\n zIndex: {\n modal: 1900,\n overlay: 1500,\n menu: 1500,\n tooltip: 1600,\n },\n theme: {\n preset: MTPreset,\n options: {\n darkModeSelector: '.my-app-dark',\n },\n },\n });\n}\n","import { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms';\n\nexport type FieldType =\n | 'text'\n | 'textarea'\n | 'select'\n | 'date'\n | 'number'\n | 'slider'\n | 'multi-select'\n | 'checkbox'\n | string;\n\nexport type ValidatorType =\n | 'required'\n | 'email'\n | 'minLength'\n | 'maxLength'\n | 'min'\n | 'max'\n | 'pattern'\n | 'custom';\n\nexport class ValidatorConfig {\n type: ValidatorType;\n value?: any;\n message?: string;\n customValidator?: (value: any) => boolean | Promise<boolean>;\n\n constructor(config: {\n type: ValidatorType;\n value?: any;\n message?: string;\n customValidator?: (value: any) => boolean | Promise<boolean>;\n }) {\n this.type = config.type;\n this.value = config.value;\n this.message = config.message;\n this.customValidator = config.customValidator;\n }\n\n // Factory methods for common validators\n static required(message = 'This field is required'): ValidatorConfig {\n return new ValidatorConfig({ type: 'required', message });\n }\n\n static email(message = 'Please enter a valid email'): ValidatorConfig {\n return new ValidatorConfig({ type: 'email', message });\n }\n\n static minLength(length: number, message?: string): ValidatorConfig {\n return new ValidatorConfig({\n type: 'minLength',\n value: length,\n message: message || `Minimum length is ${length} characters`,\n });\n }\n\n static maxLength(length: number, message?: string): ValidatorConfig {\n return new ValidatorConfig({\n type: 'maxLength',\n value: length,\n message: message || `Maximum length is ${length} characters`,\n });\n }\n\n static min(value: number, message?: string): ValidatorConfig {\n return new ValidatorConfig({\n type: 'min',\n value,\n message: message || `Minimum value is ${value}`,\n });\n }\n\n static max(value: number, message?: string): ValidatorConfig {\n return new ValidatorConfig({\n type: 'max',\n value,\n message: message || `Maximum value is ${value}`,\n });\n }\n\n static pattern(pattern: string, message = 'Invalid format'): ValidatorConfig {\n return new ValidatorConfig({ type: 'pattern', value: pattern, message });\n }\n\n static custom(\n validator: (value: any) => boolean | Promise<boolean>,\n message = 'Invalid value',\n ): ValidatorConfig {\n return new ValidatorConfig({\n type: 'custom',\n customValidator: validator,\n message,\n });\n }\n}\n\nexport type BaseFieldConstructorConfig = ConstructorParameters<\n typeof BaseFieldConfig\n>[0];\n\nexport abstract class BaseFieldConfig {\n key: string;\n label: string;\n type: FieldType;\n required: boolean;\n disabled: boolean;\n readonly: boolean;\n hidden: boolean;\n placeholder: string;\n hint: string;\n cssClass: string;\n validators: ValidatorConfig[];\n order: number;\n\n defaultValue?: any;\n\n customTemplate: string;\n\n constructor(config: {\n key?: string;\n label?: string;\n type: FieldType;\n required?: boolean;\n disabled?: boolean;\n readonly?: boolean;\n hidden?: boolean;\n placeholder?: string;\n hint?: string;\n cssClass?: string;\n validators?: ValidatorConfig[];\n order?: number;\n defaultValue?: any;\n }) {\n this.key = config.key || 'Key';\n this.label = config.label || '';\n this.type = config.type;\n this.required = config.required || false;\n this.disabled = config.disabled || false;\n this.readonly = config.readonly || false;\n this.hidden = config.hidden || false;\n this.placeholder = config.placeholder || '';\n this.hint = config.hint || '';\n this.cssClass = config.cssClass || '';\n this.validators = config.validators || [];\n this.order = config.order || 0;\n this.defaultValue = config.defaultValue;\n }\n}\n\n// Specific configurations for different field types\nexport class TextFieldConfig extends BaseFieldConfig {\n inputType: 'text' | 'email';\n\n constructor(\n config: Omit<BaseFieldConstructorConfig, 'type'> & {\n inputType?: 'text' | 'email';\n },\n ) {\n super({ ...config, type: 'text' });\n this.inputType = config.inputType || 'text';\n }\n}\n\nexport class TextareaFieldConfig extends BaseFieldConfig {\n rows: number;\n autoResize: boolean;\n\n constructor(\n config: Omit<BaseFieldConstructorConfig, 'type'> & {\n rows?: number;\n autoResize?: boolean;\n },\n ) {\n super({ ...config, type: 'textarea' });\n this.rows = config.rows || 3;\n this.autoResize = config.autoResize || false;\n }\n}\n\nexport class SelectFieldConfig extends BaseFieldConfig {\n options: any[];\n optionLabel: string;\n optionValue: string;\n multiple: boolean;\n filter: boolean;\n filterBy: string;\n filterPlaceholder: string;\n showClear: boolean;\n emptyMessage: string;\n\n constructor(\n config: Omit<BaseFieldConstructorConfig, 'type'> & {\n options: any[];\n optionLabel?: string;\n optionValue?: string;\n multiple?: boolean;\n filter?: boolean;\n filterBy?: string;\n filterPlaceholder?: string;\n showClear?: boolean;\n emptyMessage?: string;\n },\n ) {\n super({ ...config, type: 'select' });\n this.options = config.options;\n this.optionLabel = config.optionLabel || 'label';\n this.optionValue = config.optionValue || 'value';\n this.multiple = config.multiple || false;\n this.filter = config.filter || false;\n this.filterBy = config.filterBy || '';\n this.filterPlaceholder = config.filterPlaceholder || 'Search...';\n this.showClear = config.showClear || false;\n this.emptyMessage = config.emptyMessage || 'No options available';\n }\n}\n\nexport class DateFieldConfig extends BaseFieldConfig {\n dateFormat: string;\n showTime: boolean;\n showSeconds: boolean;\n hourFormat: '12' | '24';\n minDate?: Date;\n maxDate?: Date;\n disabledDates: Date[];\n disabledDays: number[];\n yearRange: string;\n showIcon: boolean;\n icon: string;\n showButtonBar: boolean;\n showClear: boolean;\n inline: boolean;\n\n constructor(\n config: Omit<BaseFieldConstructorConfig, 'type'> & {\n dateFormat?: string;\n showTime?: boolean;\n showSeconds?: boolean;\n hourFormat?: '12' | '24';\n minDate?: Date;\n maxDate?: Date;\n disabledDates?: Date[];\n disabledDays?: number[];\n yearRange?: string;\n showIcon?: boolean;\n icon?: string;\n showButtonBar?: boolean;\n showClear?: boolean;\n inline?: boolean;\n },\n ) {\n super({ ...config, type: 'date' });\n this.dateFormat = config.dateFormat || 'yyyy-mm-dd';\n this.showTime = config.showTime || false;\n this.showSeconds = config.showSeconds || false;\n this.hourFormat = config.hourFormat || '24';\n this.minDate = config.minDate;\n this.maxDate = config.maxDate;\n this.disabledDates = config.disabledDates || [];\n this.disabledDays = config.disabledDays || [];\n this.yearRange = config.yearRange || '1900:2030';\n this.showIcon = config.showIcon || true;\n this.icon = config.icon || 'pi pi-calendar';\n this.showButtonBar = config.showButtonBar || false;\n this.showClear = config.showClear || true;\n this.inline = config.inline || false;\n }\n}\n\nexport class NumberFieldConfig extends BaseFieldConfig {\n min?: number;\n max?: number;\n step?: number;\n prefix?: string;\n suffix?: string;\n currency?: string;\n locale?: string;\n minFractionDigits?: number;\n maxFractionDigits?: number;\n useGrouping?: boolean;\n showButtons?: boolean;\n buttonLayout?: 'stacked' | 'horizontal';\n incrementButtonClass?: string;\n decrementButtonClass?: string;\n incrementButtonIcon?: string;\n decrementButtonIcon?: string;\n\n constructor(\n config: Omit<BaseFieldConstructorConfig, 'type'> & {\n min?: number;\n max?: number;\n step?: number;\n prefix?: string;\n suffix?: string;\n currency?: string;\n locale?: string;\n minFractionDigits?: number;\n maxFractionDigits?: number;\n useGrouping?: boolean;\n showButtons?: boolean;\n buttonLayout?: 'stacked' | 'horizontal';\n incrementButtonClass?: string;\n decrementButtonClass?: string;\n incrementButtonIcon?: string;\n decrementButtonIcon?: string;\n },\n ) {\n super({ ...config, type: 'number' });\n this.min = config.min;\n this.max = config.max;\n this.step = config.step || 1;\n this.prefix = config.prefix;\n this.suffix = config.suffix;\n this.currency = config.currency;\n this.locale = config.locale;\n this.minFractionDigits = config.minFractionDigits;\n this.maxFractionDigits = config.maxFractionDigits;\n this.useGrouping = config.useGrouping || false;\n this.showButtons = config.showButtons || false;\n this.buttonLayout = config.buttonLayout || 'stacked';\n this.incrementButtonClass = config.incrementButtonClass;\n this.decrementButtonClass = config.decrementButtonClass;\n this.incrementButtonIcon = config.incrementButtonIcon;\n this.decrementButtonIcon = config.decrementButtonIcon;\n }\n}\n\nexport class SliderFieldConfig extends BaseFieldConfig {\n min?: number;\n max?: number;\n step?: number;\n orientation?: 'horizontal' | 'vertical';\n range?: boolean;\n animate?: boolean;\n\n constructor(\n config: Omit<BaseFieldConstructorConfig, 'type'> & {\n min?: number;\n max?: number;\n step?: number;\n orientation?: 'horizontal' | 'vertical';\n range?: boolean;\n animate?: boolean;\n },\n ) {\n super({ ...config, type: 'slider' });\n this.min = config.min || 0;\n this.max = config.max || 100;\n this.step = config.step || 1;\n this.orientation = config.orientation || 'horizontal';\n this.range = config.range || false;\n this.animate = config.animate || false;\n }\n}\n\nexport class MultiSelectFieldConfig extends BaseFieldConfig {\n options: any[];\n optionLabel: string;\n optionValue: string;\n filter: boolean;\n filterBy: string;\n filterPlaceholder: string;\n showClear: boolean;\n emptyMessage: string;\n display?: 'comma' | 'chip';\n maxSelectedLabels?: number;\n selectedItemsLabel?: string;\n showToggleAll?: boolean;\n resetFilterOnHide?: boolean;\n\n constructor(\n config: Omit<BaseFieldConstructorConfig, 'type'> & {\n options: any[];\n optionLabel?: string;\n optionValue?: string;\n filter?: boolean;\n filterBy?: string;\n filterPlaceholder?: string;\n showClear?: boolean;\n emptyMessage?: string;\n display?: 'comma' | 'chip';\n maxSelectedLabels?: number;\n selectedItemsLabel?: string;\n showToggleAll?: boolean;\n resetFilterOnHide?: boolean;\n },\n ) {\n super({ ...config, type: 'multi-select' });\n this.options = config.options;\n this.optionLabel = config.optionLabel || 'label';\n this.optionValue = config.optionValue || 'value';\n this.filter = config.filter || false;\n this.filterBy = config.filterBy || '';\n this.filterPlaceholder = config.filterPlaceholder || 'Search...';\n this.showClear = config.showClear || false;\n this.emptyMessage = config.emptyMessage || 'No options available';\n this.display = config.display || 'comma';\n this.maxSelectedLabels = config.maxSelectedLabels || 3;\n this.selectedItemsLabel = config.selectedItemsLabel || '{0} items selected';\n this.showToggleAll = config.showToggleAll || true;\n this.resetFilterOnHide = config.resetFilterOnHide || false;\n }\n}\n\nexport class CheckboxFieldConfig extends BaseFieldConfig {\n binary?: boolean;\n trueValue?: any;\n falseValue?: any;\n checkboxIcon?: string;\n\n constructor(\n config: Omit<BaseFieldConstructorConfig, 'type'> & {\n binary?: boolean;\n trueValue?: any;\n falseValue?: any;\n checkboxIcon?: string;\n },\n ) {\n super({ ...config, type: 'checkbox' });\n this.binary = config.binary !== false; // Default to true\n this.trueValue = config.trueValue !== undefined ? config.trueValue : true;\n this.falseValue =\n config.falseValue !== undefined ? config.falseValue : false;\n this.checkboxIcon = config.checkboxIcon;\n }\n}\n\n// Union type for all field configurations\nexport type DynamicFieldConfig = {\n [K in keyof (TextFieldConfig &\n TextareaFieldConfig &\n SelectFieldConfig &\n DateFieldConfig &\n NumberFieldConfig &\n SliderFieldConfig &\n MultiSelectFieldConfig &\n CheckboxFieldConfig &\n BaseFieldConfig)]?: (TextFieldConfig &\n TextareaFieldConfig &\n SelectFieldConfig &\n DateFieldConfig &\n NumberFieldConfig &\n SliderFieldConfig &\n MultiSelectFieldConfig &\n CheckboxFieldConfig &\n BaseFieldConfig)[K];\n};\n\n// Layout configuration\nexport interface LayoutConfig {\n containerClass?: string;\n sectionClass?: string;\n fieldClass?: string;\n}\n\n// Simplified form configuration interface\nexport interface DynamicFormConfig {\n sections: SectionConfig[];\n layout?: LayoutConfig;\n}\nexport interface SectionConfig {\n key?: string;\n label?: string;\n type: 'none' | 'header';\n cssClass?: string;\n bodyClass?: string;\n headerClass?: string;\n\n order?: number;\n fields: DynamicFieldConfig[];\n}\n\nexport function createCustomValidator(\n customValidator: (value: any) => boolean | Promise<boolean>,\n message?: string,\n): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n const result = customValidator(control.value);\n\n if (result instanceof Promise) {\n // Handle async validation\n result.then((isValid) => {\n if (!isValid) {\n control.setErrors({\n custom: { message: message || 'Invalid value' },\n });\n }\n });\n return null; // For async, return null initially\n } else {\n // Handle sync validation\n return result\n ? null\n : { custom: { message: message || 'Invalid value' } };\n }\n };\n}\n\nexport function wrapValidatorWithMessage(\n validator: ValidatorFn,\n errorKey: string,\n message: string,\n): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n const result = validator(control);\n if (result) {\n // Replace the default error with custom message\n return { [errorKey]: { ...result[Object.keys(result)[0]], message } };\n }\n return null;\n };\n}\n// DynamicFieldConfig = input.required<any>({\n// transform: (value: any) => this.transformToDateFieldConfig(value)\n// });\n// transformToDateFieldConfig(value: any){\n// return new TextFieldConfig()\n// }\n","/*\n * Public API Surface of components\n */\n\nexport * from './lib/config/providemt';\nexport * from './lib/utils/theme';\nexport * from './lib/config/dynamic-form.model';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import * as _angular_core from '@angular/core';
|
|
2
|
+
import { AbstractControl } from '@angular/forms';
|
|
3
|
+
|
|
4
|
+
declare class FieldValidation {
|
|
5
|
+
readonly control: _angular_core.InputSignal<AbstractControl<any, any> | null>;
|
|
6
|
+
readonly touched: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
7
|
+
readonly customErrorClass: _angular_core.InputSignal<string>;
|
|
8
|
+
getErrorMessage(): string;
|
|
9
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<FieldValidation, never>;
|
|
10
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<FieldValidation, "mt-field-validation", never, { "control": { "alias": "control"; "required": false; "isSignal": true; }; "touched": { "alias": "touched"; "required": false; "isSignal": true; }; "customErrorClass": { "alias": "customErrorClass"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export { FieldValidation };
|