@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.
Files changed (33) hide show
  1. package/fesm2022/masterteam-components-checkbox-field.mjs +1 -1
  2. package/fesm2022/masterteam-components-checkbox-field.mjs.map +1 -1
  3. package/fesm2022/masterteam-components-date-field.mjs +1 -1
  4. package/fesm2022/masterteam-components-date-field.mjs.map +1 -1
  5. package/fesm2022/masterteam-components-field-validation.mjs +137 -0
  6. package/fesm2022/masterteam-components-field-validation.mjs.map +1 -0
  7. package/fesm2022/masterteam-components-icon-field.mjs +6 -170
  8. package/fesm2022/masterteam-components-icon-field.mjs.map +1 -1
  9. package/fesm2022/masterteam-components-multi-select-field.mjs +1 -1
  10. package/fesm2022/masterteam-components-multi-select-field.mjs.map +1 -1
  11. package/fesm2022/masterteam-components-number-field.mjs +4 -3
  12. package/fesm2022/masterteam-components-number-field.mjs.map +1 -1
  13. package/fesm2022/masterteam-components-select-field.mjs +1 -1
  14. package/fesm2022/masterteam-components-select-field.mjs.map +1 -1
  15. package/fesm2022/masterteam-components-slider-field.mjs +1 -1
  16. package/fesm2022/masterteam-components-slider-field.mjs.map +1 -1
  17. package/fesm2022/masterteam-components-text-field.mjs +25 -9
  18. package/fesm2022/masterteam-components-text-field.mjs.map +1 -1
  19. package/fesm2022/masterteam-components-textarea-field.mjs +2 -2
  20. package/fesm2022/masterteam-components-textarea-field.mjs.map +1 -1
  21. package/fesm2022/masterteam-components.mjs +321 -22
  22. package/fesm2022/masterteam-components.mjs.map +1 -1
  23. package/field-validation/index.d.ts +13 -0
  24. package/index.d.ts +244 -1
  25. package/number-field/index.d.ts +2 -2
  26. package/package.json +19 -13
  27. package/text-field/index.d.ts +2 -2
  28. package/assets/mticons/fonts/mticons.svg +0 -483
  29. package/assets/mticons/fonts/mticons.ttf +0 -0
  30. package/assets/mticons/fonts/mticons.woff +0 -0
  31. package/assets/mticons/fonts/mticons.woff2 +0 -0
  32. package/assets/mticons/mticons.css +0 -35
  33. package/assets/mticons/style.css +0 -1446
package/index.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  import * as _angular_core from '@angular/core';
2
+ import { ValidatorFn } from '@angular/forms';
2
3
 
3
4
  declare function provideMTComponents(): _angular_core.EnvironmentProviders;
4
5
 
@@ -14,4 +15,246 @@ type TailwindColorPalette = {
14
15
  */
15
16
  declare function generateTailwindPalette(primaryColor500: string): TailwindColorPalette;
16
17
 
17
- export { generateTailwindPalette, provideMTComponents };
18
+ type FieldType = 'text' | 'textarea' | 'select' | 'date' | 'number' | 'slider' | 'multi-select' | 'checkbox' | string;
19
+ type ValidatorType = 'required' | 'email' | 'minLength' | 'maxLength' | 'min' | 'max' | 'pattern' | 'custom';
20
+ declare class ValidatorConfig {
21
+ type: ValidatorType;
22
+ value?: any;
23
+ message?: string;
24
+ customValidator?: (value: any) => boolean | Promise<boolean>;
25
+ constructor(config: {
26
+ type: ValidatorType;
27
+ value?: any;
28
+ message?: string;
29
+ customValidator?: (value: any) => boolean | Promise<boolean>;
30
+ });
31
+ static required(message?: string): ValidatorConfig;
32
+ static email(message?: string): ValidatorConfig;
33
+ static minLength(length: number, message?: string): ValidatorConfig;
34
+ static maxLength(length: number, message?: string): ValidatorConfig;
35
+ static min(value: number, message?: string): ValidatorConfig;
36
+ static max(value: number, message?: string): ValidatorConfig;
37
+ static pattern(pattern: string, message?: string): ValidatorConfig;
38
+ static custom(validator: (value: any) => boolean | Promise<boolean>, message?: string): ValidatorConfig;
39
+ }
40
+ type BaseFieldConstructorConfig = ConstructorParameters<typeof BaseFieldConfig>[0];
41
+ declare abstract class BaseFieldConfig {
42
+ key: string;
43
+ label: string;
44
+ type: FieldType;
45
+ required: boolean;
46
+ disabled: boolean;
47
+ readonly: boolean;
48
+ hidden: boolean;
49
+ placeholder: string;
50
+ hint: string;
51
+ cssClass: string;
52
+ validators: ValidatorConfig[];
53
+ order: number;
54
+ defaultValue?: any;
55
+ customTemplate: string;
56
+ constructor(config: {
57
+ key?: string;
58
+ label?: string;
59
+ type: FieldType;
60
+ required?: boolean;
61
+ disabled?: boolean;
62
+ readonly?: boolean;
63
+ hidden?: boolean;
64
+ placeholder?: string;
65
+ hint?: string;
66
+ cssClass?: string;
67
+ validators?: ValidatorConfig[];
68
+ order?: number;
69
+ defaultValue?: any;
70
+ });
71
+ }
72
+ declare class TextFieldConfig extends BaseFieldConfig {
73
+ inputType: 'text' | 'email';
74
+ constructor(config: Omit<BaseFieldConstructorConfig, 'type'> & {
75
+ inputType?: 'text' | 'email';
76
+ });
77
+ }
78
+ declare class TextareaFieldConfig extends BaseFieldConfig {
79
+ rows: number;
80
+ autoResize: boolean;
81
+ constructor(config: Omit<BaseFieldConstructorConfig, 'type'> & {
82
+ rows?: number;
83
+ autoResize?: boolean;
84
+ });
85
+ }
86
+ declare class SelectFieldConfig extends BaseFieldConfig {
87
+ options: any[];
88
+ optionLabel: string;
89
+ optionValue: string;
90
+ multiple: boolean;
91
+ filter: boolean;
92
+ filterBy: string;
93
+ filterPlaceholder: string;
94
+ showClear: boolean;
95
+ emptyMessage: string;
96
+ constructor(config: Omit<BaseFieldConstructorConfig, 'type'> & {
97
+ options: any[];
98
+ optionLabel?: string;
99
+ optionValue?: string;
100
+ multiple?: boolean;
101
+ filter?: boolean;
102
+ filterBy?: string;
103
+ filterPlaceholder?: string;
104
+ showClear?: boolean;
105
+ emptyMessage?: string;
106
+ });
107
+ }
108
+ declare class DateFieldConfig extends BaseFieldConfig {
109
+ dateFormat: string;
110
+ showTime: boolean;
111
+ showSeconds: boolean;
112
+ hourFormat: '12' | '24';
113
+ minDate?: Date;
114
+ maxDate?: Date;
115
+ disabledDates: Date[];
116
+ disabledDays: number[];
117
+ yearRange: string;
118
+ showIcon: boolean;
119
+ icon: string;
120
+ showButtonBar: boolean;
121
+ showClear: boolean;
122
+ inline: boolean;
123
+ constructor(config: Omit<BaseFieldConstructorConfig, 'type'> & {
124
+ dateFormat?: string;
125
+ showTime?: boolean;
126
+ showSeconds?: boolean;
127
+ hourFormat?: '12' | '24';
128
+ minDate?: Date;
129
+ maxDate?: Date;
130
+ disabledDates?: Date[];
131
+ disabledDays?: number[];
132
+ yearRange?: string;
133
+ showIcon?: boolean;
134
+ icon?: string;
135
+ showButtonBar?: boolean;
136
+ showClear?: boolean;
137
+ inline?: boolean;
138
+ });
139
+ }
140
+ declare class NumberFieldConfig extends BaseFieldConfig {
141
+ min?: number;
142
+ max?: number;
143
+ step?: number;
144
+ prefix?: string;
145
+ suffix?: string;
146
+ currency?: string;
147
+ locale?: string;
148
+ minFractionDigits?: number;
149
+ maxFractionDigits?: number;
150
+ useGrouping?: boolean;
151
+ showButtons?: boolean;
152
+ buttonLayout?: 'stacked' | 'horizontal';
153
+ incrementButtonClass?: string;
154
+ decrementButtonClass?: string;
155
+ incrementButtonIcon?: string;
156
+ decrementButtonIcon?: string;
157
+ constructor(config: Omit<BaseFieldConstructorConfig, 'type'> & {
158
+ min?: number;
159
+ max?: number;
160
+ step?: number;
161
+ prefix?: string;
162
+ suffix?: string;
163
+ currency?: string;
164
+ locale?: string;
165
+ minFractionDigits?: number;
166
+ maxFractionDigits?: number;
167
+ useGrouping?: boolean;
168
+ showButtons?: boolean;
169
+ buttonLayout?: 'stacked' | 'horizontal';
170
+ incrementButtonClass?: string;
171
+ decrementButtonClass?: string;
172
+ incrementButtonIcon?: string;
173
+ decrementButtonIcon?: string;
174
+ });
175
+ }
176
+ declare class SliderFieldConfig extends BaseFieldConfig {
177
+ min?: number;
178
+ max?: number;
179
+ step?: number;
180
+ orientation?: 'horizontal' | 'vertical';
181
+ range?: boolean;
182
+ animate?: boolean;
183
+ constructor(config: Omit<BaseFieldConstructorConfig, 'type'> & {
184
+ min?: number;
185
+ max?: number;
186
+ step?: number;
187
+ orientation?: 'horizontal' | 'vertical';
188
+ range?: boolean;
189
+ animate?: boolean;
190
+ });
191
+ }
192
+ declare class MultiSelectFieldConfig extends BaseFieldConfig {
193
+ options: any[];
194
+ optionLabel: string;
195
+ optionValue: string;
196
+ filter: boolean;
197
+ filterBy: string;
198
+ filterPlaceholder: string;
199
+ showClear: boolean;
200
+ emptyMessage: string;
201
+ display?: 'comma' | 'chip';
202
+ maxSelectedLabels?: number;
203
+ selectedItemsLabel?: string;
204
+ showToggleAll?: boolean;
205
+ resetFilterOnHide?: boolean;
206
+ constructor(config: Omit<BaseFieldConstructorConfig, 'type'> & {
207
+ options: any[];
208
+ optionLabel?: string;
209
+ optionValue?: string;
210
+ filter?: boolean;
211
+ filterBy?: string;
212
+ filterPlaceholder?: string;
213
+ showClear?: boolean;
214
+ emptyMessage?: string;
215
+ display?: 'comma' | 'chip';
216
+ maxSelectedLabels?: number;
217
+ selectedItemsLabel?: string;
218
+ showToggleAll?: boolean;
219
+ resetFilterOnHide?: boolean;
220
+ });
221
+ }
222
+ declare class CheckboxFieldConfig extends BaseFieldConfig {
223
+ binary?: boolean;
224
+ trueValue?: any;
225
+ falseValue?: any;
226
+ checkboxIcon?: string;
227
+ constructor(config: Omit<BaseFieldConstructorConfig, 'type'> & {
228
+ binary?: boolean;
229
+ trueValue?: any;
230
+ falseValue?: any;
231
+ checkboxIcon?: string;
232
+ });
233
+ }
234
+ type DynamicFieldConfig = {
235
+ [K in keyof (TextFieldConfig & TextareaFieldConfig & SelectFieldConfig & DateFieldConfig & NumberFieldConfig & SliderFieldConfig & MultiSelectFieldConfig & CheckboxFieldConfig & BaseFieldConfig)]?: (TextFieldConfig & TextareaFieldConfig & SelectFieldConfig & DateFieldConfig & NumberFieldConfig & SliderFieldConfig & MultiSelectFieldConfig & CheckboxFieldConfig & BaseFieldConfig)[K];
236
+ };
237
+ interface LayoutConfig {
238
+ containerClass?: string;
239
+ sectionClass?: string;
240
+ fieldClass?: string;
241
+ }
242
+ interface DynamicFormConfig {
243
+ sections: SectionConfig[];
244
+ layout?: LayoutConfig;
245
+ }
246
+ interface SectionConfig {
247
+ key?: string;
248
+ label?: string;
249
+ type: 'none' | 'header';
250
+ cssClass?: string;
251
+ bodyClass?: string;
252
+ headerClass?: string;
253
+ order?: number;
254
+ fields: DynamicFieldConfig[];
255
+ }
256
+ declare function createCustomValidator(customValidator: (value: any) => boolean | Promise<boolean>, message?: string): ValidatorFn;
257
+ declare function wrapValidatorWithMessage(validator: ValidatorFn, errorKey: string, message: string): ValidatorFn;
258
+
259
+ export { BaseFieldConfig, CheckboxFieldConfig, DateFieldConfig, MultiSelectFieldConfig, NumberFieldConfig, SelectFieldConfig, SliderFieldConfig, TextFieldConfig, TextareaFieldConfig, ValidatorConfig, createCustomValidator, generateTailwindPalette, provideMTComponents, wrapValidatorWithMessage };
260
+ export type { BaseFieldConstructorConfig, DynamicFieldConfig, DynamicFormConfig, FieldType, LayoutConfig, SectionConfig, ValidatorType };
@@ -13,8 +13,8 @@ declare class NumberField implements ControlValueAccessor, OnInit, OnChanges {
13
13
  readonly pInputs: _angular_core.InputSignal<Partial<InputNumber> | undefined>;
14
14
  readonly format: _angular_core.InputSignal<boolean>;
15
15
  readonly maxFractionDigits: _angular_core.InputSignal<number>;
16
- readonly min: _angular_core.InputSignal<number | undefined>;
17
- readonly max: _angular_core.InputSignal<number | undefined>;
16
+ readonly min: _angular_core.InputSignal<number>;
17
+ readonly max: _angular_core.InputSignal<number>;
18
18
  styleClass: string;
19
19
  ngControl: NgControl;
20
20
  requiredValidator: typeof Validators.required;
package/package.json CHANGED
@@ -1,22 +1,24 @@
1
1
  {
2
2
  "name": "@masterteam/components",
3
- "version": "0.0.2",
3
+ "version": "0.0.4",
4
4
  "publishConfig": {
5
5
  "directory": ".",
6
6
  "linkDirectory": false,
7
7
  "access": "public"
8
8
  },
9
9
  "peerDependencies": {
10
- "@angular/common": "^20.0.0",
11
- "@angular/core": "^20.0.0",
10
+ "@angular/common": "^20.1.0",
11
+ "@angular/core": "^20.1.0",
12
+ "@primeuix/themes": "^1.2.1",
12
13
  "@tailwindcss/postcss": "^4.1.11",
14
+ "postcss": "^8.5.6",
15
+ "primeng": "20.0.0-rc.3",
13
16
  "tailwindcss": "^4.1.11",
14
- "tailwindcss-primeui": "^0.6.1",
15
- "primeng": "^19.1.3",
16
- "@primeng/themes": "^19.1.3"
17
+ "tailwindcss-primeui": "^0.6.1"
17
18
  },
18
19
  "dependencies": {
19
- "tslib": "^2.3.0"
20
+ "tslib": "^2.3.0",
21
+ "@masterteam/icons": "x"
20
22
  },
21
23
  "repository": {
22
24
  "type": "git",
@@ -37,17 +39,21 @@
37
39
  "types": "./checkbox-field/index.d.ts",
38
40
  "default": "./fesm2022/masterteam-components-checkbox-field.mjs"
39
41
  },
40
- "./multi-select-field": {
41
- "types": "./multi-select-field/index.d.ts",
42
- "default": "./fesm2022/masterteam-components-multi-select-field.mjs"
42
+ "./field-validation": {
43
+ "types": "./field-validation/index.d.ts",
44
+ "default": "./fesm2022/masterteam-components-field-validation.mjs"
45
+ },
46
+ "./date-field": {
47
+ "types": "./date-field/index.d.ts",
48
+ "default": "./fesm2022/masterteam-components-date-field.mjs"
43
49
  },
44
50
  "./icon-field": {
45
51
  "types": "./icon-field/index.d.ts",
46
52
  "default": "./fesm2022/masterteam-components-icon-field.mjs"
47
53
  },
48
- "./date-field": {
49
- "types": "./date-field/index.d.ts",
50
- "default": "./fesm2022/masterteam-components-date-field.mjs"
54
+ "./multi-select-field": {
55
+ "types": "./multi-select-field/index.d.ts",
56
+ "default": "./fesm2022/masterteam-components-multi-select-field.mjs"
51
57
  },
52
58
  "./number-field": {
53
59
  "types": "./number-field/index.d.ts",
@@ -20,10 +20,10 @@ declare class TextField implements ControlValueAccessor, OnInit, OnChanges {
20
20
  alphaNum: RegExp;
21
21
  onTouched: () => void;
22
22
  onModelChange: (value: any) => void;
23
- ngControl: NgControl;
23
+ ngControl: NgControl | null;
24
24
  constructor();
25
- applyInputsToInputText(): void;
26
25
  ngOnInit(): void;
26
+ applyInputsToInputText(): void;
27
27
  onValueChange(value: any): void;
28
28
  ngOnChanges(changes: SimpleChanges): void;
29
29
  writeValue(value: string): void;