@updevs/components 1.0.0-alpha.81 → 1.0.0-alpha.83

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 (48) hide show
  1. package/esm2022/form/components/dynamic-field/dynamic-field.component.mjs +19 -5
  2. package/esm2022/form/models/attachment-rule.model.mjs +1 -1
  3. package/esm2022/form/models/dynamic-field.model.mjs +1 -1
  4. package/esm2022/form-controls/abstractions/base-control.mjs +74 -21
  5. package/esm2022/form-controls/checkbox/checkbox.component.mjs +11 -2
  6. package/esm2022/form-controls/file-upload/file-upload.component.mjs +10 -2
  7. package/esm2022/form-controls/input/input.component.mjs +12 -2
  8. package/esm2022/form-controls/radio/radio.component.mjs +14 -3
  9. package/esm2022/form-controls/select/components/multiple/select-multiple.component.mjs +27 -7
  10. package/esm2022/form-controls/select/components/single/select.component.mjs +87 -7
  11. package/esm2022/form-controls/select/models/public-api.mjs +2 -1
  12. package/esm2022/form-controls/select/models/types.mjs +2 -0
  13. package/esm2022/form-controls/textarea/textarea.component.mjs +10 -3
  14. package/esm2022/paginator/paginator.component.mjs +1 -1
  15. package/esm2022/table/components/filter-row/filter-row.component.mjs +1 -1
  16. package/fesm2022/updevs-components-form-controls-abstractions.mjs +73 -20
  17. package/fesm2022/updevs-components-form-controls-abstractions.mjs.map +1 -1
  18. package/fesm2022/updevs-components-form-controls-checkbox.mjs +10 -1
  19. package/fesm2022/updevs-components-form-controls-checkbox.mjs.map +1 -1
  20. package/fesm2022/updevs-components-form-controls-file-upload.mjs +9 -1
  21. package/fesm2022/updevs-components-form-controls-file-upload.mjs.map +1 -1
  22. package/fesm2022/updevs-components-form-controls-input.mjs +11 -1
  23. package/fesm2022/updevs-components-form-controls-input.mjs.map +1 -1
  24. package/fesm2022/updevs-components-form-controls-radio.mjs +13 -2
  25. package/fesm2022/updevs-components-form-controls-radio.mjs.map +1 -1
  26. package/fesm2022/updevs-components-form-controls-select.mjs +112 -12
  27. package/fesm2022/updevs-components-form-controls-select.mjs.map +1 -1
  28. package/fesm2022/updevs-components-form-controls-textarea.mjs +9 -2
  29. package/fesm2022/updevs-components-form-controls-textarea.mjs.map +1 -1
  30. package/fesm2022/updevs-components-form.mjs +18 -4
  31. package/fesm2022/updevs-components-form.mjs.map +1 -1
  32. package/fesm2022/updevs-components-paginator.mjs +1 -1
  33. package/fesm2022/updevs-components-paginator.mjs.map +1 -1
  34. package/fesm2022/updevs-components-table.mjs +1 -1
  35. package/fesm2022/updevs-components-table.mjs.map +1 -1
  36. package/form/components/dynamic-field/dynamic-field.component.d.ts +2 -0
  37. package/form/models/dynamic-field.model.d.ts +8 -1
  38. package/form-controls/abstractions/base-control.d.ts +21 -3
  39. package/form-controls/checkbox/checkbox.component.d.ts +2 -0
  40. package/form-controls/file-upload/file-upload.component.d.ts +2 -0
  41. package/form-controls/input/input.component.d.ts +2 -0
  42. package/form-controls/radio/radio.component.d.ts +3 -0
  43. package/form-controls/select/components/multiple/select-multiple.component.d.ts +2 -0
  44. package/form-controls/select/components/single/select.component.d.ts +10 -1
  45. package/form-controls/select/models/public-api.d.ts +1 -0
  46. package/form-controls/select/models/types.d.ts +4 -0
  47. package/form-controls/textarea/textarea.component.d.ts +2 -0
  48. package/package.json +7 -7
@@ -52,6 +52,8 @@ export declare class DynamicFieldComponent extends BaseComponent implements OnIn
52
52
  constructor();
53
53
  ngOnInit(): void;
54
54
  onBlur(): void;
55
+ onFocus(): void;
56
+ onInput(event: Event): void;
55
57
  setControlValue(value: any): void;
56
58
  getText(textModel?: TextModel): string;
57
59
  getOptionDescription(key: string, type: 'checkbox' | 'radio'): OptionalType<TextModel>;
@@ -1,4 +1,4 @@
1
- import { ValidatorFn } from '@angular/forms';
1
+ import { FormControlStatus, ValidatorFn } from '@angular/forms';
2
2
  import { Signal } from '@angular/core';
3
3
  import { TextModel } from '@updevs/sdk';
4
4
  import { RowColumnSize } from '@updevs/components';
@@ -46,4 +46,11 @@ export interface DynamicFieldModel {
46
46
  * A signal to control the visibility of the field.
47
47
  */
48
48
  isVisible?: Signal<boolean>;
49
+ onValueChanged?: (value: any) => void;
50
+ onBlur?: () => void;
51
+ onFocus?: () => void;
52
+ onTouched?: () => void;
53
+ onInput?: (value: any) => void;
54
+ onEnter?: () => void;
55
+ onValidationStatusChanged?: (status: FormControlStatus) => void;
49
56
  }
@@ -1,5 +1,6 @@
1
1
  /// <reference path="base-control.ngtypecheck.d.ts" />
2
2
  import { TemplateRef } from '@angular/core';
3
+ import { AbstractControl } from '@angular/forms';
3
4
  import { TextModel, TextService } from '@updevs/sdk';
4
5
  import { BaseComponent } from '@updevs/sdk/layout';
5
6
  import { RowColumnSize, ValidationStatusType } from '@updevs/components';
@@ -13,17 +14,34 @@ export declare abstract class BaseControl extends BaseComponent {
13
14
  readonly labelColSize: import("@angular/core").InputSignal<RowColumnSize | undefined>;
14
15
  readonly showValidStatus: import("@angular/core").InputSignal<boolean>;
15
16
  readonly isRequired: import("@angular/core").InputSignal<boolean>;
16
- readonly isDisabled: import("@angular/core").InputSignal<boolean>;
17
+ readonly isDisabled: import("@angular/core").ModelSignal<boolean>;
17
18
  readonly hint: import("@angular/core").InputSignal<TextModel | undefined>;
18
19
  readonly hintTemplate: import("@angular/core").InputSignal<TemplateRef<any> | undefined>;
19
20
  readonly hintAsTooltip: import("@angular/core").InputSignal<boolean>;
20
21
  readonly validationStatus: import("@angular/core").InputSignal<ValidationStatusType | undefined>;
22
+ readonly formControl: import("@angular/core").InputSignal<AbstractControl<any, any> | undefined>;
23
+ protected readonly _textService: TextService;
24
+ private readonly destroyRef;
21
25
  get placeholderText(): string;
22
26
  get labelText(): string;
23
27
  get descriptionText(): string;
24
28
  get validationStatusTexts(): string[];
25
29
  get hintText(): string;
26
- protected readonly _textService: TextService;
30
+ constructor();
31
+ /**
32
+ * Updates the value in the form control.
33
+ * @param value The value to set in the form control.
34
+ * @param emitEvent Whether to emit the valueChanges event.
35
+ */
36
+ protected _updateFormControl(value: any, emitEvent?: boolean): void;
37
+ /**
38
+ * Updates the component's value.
39
+ */
40
+ protected abstract _updateValue(value: any): void;
41
+ /**
42
+ * Gets the current component value.
43
+ */
44
+ protected abstract _getValue(): any;
27
45
  static ɵfac: i0.ɵɵFactoryDeclaration<BaseControl, never>;
28
- static ɵdir: i0.ɵɵDirectiveDeclaration<BaseControl, never, never, { "name": { "alias": "name"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "description": { "alias": "description"; "required": false; "isSignal": true; }; "validationStatusDescriptions": { "alias": "validationStatusDescriptions"; "required": false; "isSignal": true; }; "labelColSize": { "alias": "labelColSize"; "required": false; "isSignal": true; }; "showValidStatus": { "alias": "showValidStatus"; "required": false; "isSignal": true; }; "isRequired": { "alias": "isRequired"; "required": false; "isSignal": true; }; "isDisabled": { "alias": "isDisabled"; "required": false; "isSignal": true; }; "hint": { "alias": "hint"; "required": false; "isSignal": true; }; "hintTemplate": { "alias": "hintTemplate"; "required": false; "isSignal": true; }; "hintAsTooltip": { "alias": "hintAsTooltip"; "required": false; "isSignal": true; }; "validationStatus": { "alias": "validationStatus"; "required": false; "isSignal": true; }; }, {}, never, never, false, never>;
46
+ static ɵdir: i0.ɵɵDirectiveDeclaration<BaseControl, never, never, { "name": { "alias": "name"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "description": { "alias": "description"; "required": false; "isSignal": true; }; "validationStatusDescriptions": { "alias": "validationStatusDescriptions"; "required": false; "isSignal": true; }; "labelColSize": { "alias": "labelColSize"; "required": false; "isSignal": true; }; "showValidStatus": { "alias": "showValidStatus"; "required": false; "isSignal": true; }; "isRequired": { "alias": "isRequired"; "required": false; "isSignal": true; }; "isDisabled": { "alias": "isDisabled"; "required": false; "isSignal": true; }; "hint": { "alias": "hint"; "required": false; "isSignal": true; }; "hintTemplate": { "alias": "hintTemplate"; "required": false; "isSignal": true; }; "hintAsTooltip": { "alias": "hintAsTooltip"; "required": false; "isSignal": true; }; "validationStatus": { "alias": "validationStatus"; "required": false; "isSignal": true; }; "formControl": { "alias": "formControl"; "required": false; "isSignal": true; }; }, { "isDisabled": "isDisabledChange"; }, never, never, false, never>;
29
47
  }
@@ -14,6 +14,8 @@ export declare class CheckboxComponent extends BaseControl {
14
14
  classes: import("@angular/core").Signal<string[]>;
15
15
  constructor();
16
16
  onSelectChange(event: Event): void;
17
+ protected _getValue(): any;
18
+ protected _updateValue(value: any): void;
17
19
  static ɵfac: i0.ɵɵFactoryDeclaration<CheckboxComponent, never>;
18
20
  static ɵcmp: i0.ɵɵComponentDeclaration<CheckboxComponent, "upd-checkbox", never, { "wrapperClasses": { "alias": "wrapperClasses"; "required": false; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "customClasses": { "alias": "customClasses"; "required": false; "isSignal": true; }; "isChecked": { "alias": "isChecked"; "required": false; "isSignal": true; }; "isInline": { "alias": "isInline"; "required": false; "isSignal": true; }; "isSwitch": { "alias": "isSwitch"; "required": false; "isSignal": true; }; "isIndeterminate": { "alias": "isIndeterminate"; "required": false; "isSignal": true; }; }, { "changed": "changed"; "isChecked": "isCheckedChange"; "isIndeterminate": "isIndeterminateChange"; }, never, never, false, never>;
19
21
  }
@@ -40,6 +40,8 @@ export declare class FileUploadComponent extends BaseControl {
40
40
  onDragEnter(event: DragEvent): void;
41
41
  onDragLeave(event: DragEvent): void;
42
42
  onDrop(event: DragEvent): void;
43
+ protected _getValue(): any;
44
+ protected _updateValue(value: any): void;
43
45
  private getFileErrors;
44
46
  static ɵfac: i0.ɵɵFactoryDeclaration<FileUploadComponent, never>;
45
47
  static ɵcmp: i0.ɵɵComponentDeclaration<FileUploadComponent, "upd-file-upload", never, { "fileName": { "alias": "fileName"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "allowFilesDrop": { "alias": "allowFilesDrop"; "required": false; "isSignal": true; }; "isMultiple": { "alias": "isMultiple"; "required": false; "isSignal": true; }; "allowedExtensions": { "alias": "allowedExtensions"; "required": false; "isSignal": true; }; "minFileSize": { "alias": "minFileSize"; "required": false; "isSignal": true; }; "maxFileSize": { "alias": "maxFileSize"; "required": false; "isSignal": true; }; "layout": { "alias": "layout"; "required": false; "isSignal": true; }; }, { "fileChanged": "fileChanged"; }, never, never, false, never>;
@@ -61,6 +61,8 @@ export declare class InputComponent extends BaseControl implements OnInit, OnCha
61
61
  ngOnChanges(changes: SimpleChanges): void;
62
62
  onInputChange(evt: Event): void;
63
63
  focus(): void;
64
+ protected _getValue(): any;
65
+ protected _updateValue(value: any): void;
64
66
  private updateClasses;
65
67
  static ɵfac: i0.ɵɵFactoryDeclaration<InputComponent, never>;
66
68
  static ɵcmp: i0.ɵɵComponentDeclaration<InputComponent, "upd-input", never, { "type": { "alias": "type"; "required": false; }; "mask": { "alias": "mask"; "required": false; }; "maskConfig": { "alias": "maskConfig"; "required": false; }; "value": { "alias": "value"; "required": false; }; "size": { "alias": "size"; "required": false; }; "customClasses": { "alias": "customClasses"; "required": false; }; "wrapperClasses": { "alias": "wrapperClasses"; "required": false; }; "maxLength": { "alias": "maxLength"; "required": false; }; "isPlainText": { "alias": "isPlainText"; "required": false; }; "isReadOnly": { "alias": "isReadOnly"; "required": false; }; "isLoading": { "alias": "isLoading"; "required": false; }; "isRound": { "alias": "isRound"; "required": false; }; "isFlush": { "alias": "isFlush"; "required": false; }; "isInputGroupFlat": { "alias": "isInputGroupFlat"; "required": false; }; "isPrependButton": { "alias": "isPrependButton"; "required": false; }; "isAppendButton": { "alias": "isAppendButton"; "required": false; }; "isFloating": { "alias": "isFloating"; "required": false; }; "loaderPosition": { "alias": "loaderPosition"; "required": false; }; "prependIconModel": { "alias": "prependIconModel"; "required": false; }; "appendIconModel": { "alias": "appendIconModel"; "required": false; }; "isValidationStatusLight": { "alias": "isValidationStatusLight"; "required": false; }; "layout": { "alias": "layout"; "required": false; }; }, { "valueChange": "valueChange"; "blurred": "blurred"; "keyDown": "keyDown"; "keyDownEsc": "keyDownEsc"; "keyUpEnter": "keyUpEnter"; }, ["appendTemplate", "prependTemplate"], never, false, never>;
@@ -11,6 +11,9 @@ export declare class RadioComponent extends BaseControl implements OnInit, OnCha
11
11
  classes: string[];
12
12
  ngOnInit(): void;
13
13
  ngOnChanges(): void;
14
+ onRadioChange(event: Event): void;
15
+ protected _getValue(): any;
16
+ protected _updateValue(value: any): void;
14
17
  private updateClasses;
15
18
  static ɵfac: i0.ɵɵFactoryDeclaration<RadioComponent, never>;
16
19
  static ɵcmp: i0.ɵɵComponentDeclaration<RadioComponent, "upd-radio", never, { "wrapperClasses": { "alias": "wrapperClasses"; "required": false; }; "value": { "alias": "value"; "required": false; }; "customClasses": { "alias": "customClasses"; "required": false; }; "isChecked": { "alias": "isChecked"; "required": false; }; "isInline": { "alias": "isInline"; "required": false; }; }, { "selected": "selected"; }, never, never, false, never>;
@@ -23,6 +23,8 @@ export declare class SelectMultipleComponent extends BaseSelectComponent {
23
23
  clearSelection(): void;
24
24
  onSelectItem(item: ListItem): void;
25
25
  onRemoveItem(item: SelectItem): void;
26
+ protected _getValue(): any;
27
+ protected _updateValue(value: any): void;
26
28
  private updateActiveItemsOnList;
27
29
  static ɵfac: i0.ɵɵFactoryDeclaration<SelectMultipleComponent, never>;
28
30
  static ɵcmp: i0.ɵɵComponentDeclaration<SelectMultipleComponent, "upd-select-multiple", never, { "selectedValues": { "alias": "selectedValues"; "required": false; "isSignal": true; }; }, { "selectedItems": "selectedItems"; "selectedIds": "selectedIds"; }, never, never, false, never>;
@@ -2,6 +2,7 @@ import { OptionalType } from '@updevs/sdk/types';
2
2
  import { ListItem } from '@updevs/components/list';
3
3
  import { BaseSelectComponent } from '../../models/abstractions/base-select.component';
4
4
  import { SelectItem } from '../../models/select-item';
5
+ import { GetItemByIdType, ParentLoaderType } from '../../models/types';
5
6
  import * as i0 from "@angular/core";
6
7
  export declare class SelectComponent extends BaseSelectComponent {
7
8
  /**
@@ -12,6 +13,9 @@ export declare class SelectComponent extends BaseSelectComponent {
12
13
  readonly shouldTruncateSelectedText: import("@angular/core").InputSignal<OptionalType<boolean>>;
13
14
  readonly isCompact: import("@angular/core").InputSignal<boolean>;
14
15
  readonly value: import("@angular/core").InputSignal<any>;
16
+ readonly parentSelectedId: import("@angular/core").InputSignal<any>;
17
+ readonly parentDependentLoader: import("@angular/core").InputSignal<ParentLoaderType | undefined>;
18
+ readonly getItemById: import("@angular/core").InputSignal<GetItemByIdType | undefined>;
15
19
  readonly shouldShowHintWithoutLabel: import("@angular/core").Signal<boolean>;
16
20
  /**
17
21
  * Triggered when an item is selected.
@@ -23,6 +27,11 @@ export declare class SelectComponent extends BaseSelectComponent {
23
27
  onSelectItem(item: ListItem): void;
24
28
  onSystemSelect(event: any): void;
25
29
  clearSelection(): void;
30
+ protected _getValue(): any;
31
+ protected _updateValue(value: any): void;
32
+ private loadDependentData;
33
+ private clearData;
34
+ private fetchMissingItem;
26
35
  static ɵfac: i0.ɵɵFactoryDeclaration<SelectComponent, never>;
27
- static ɵcmp: i0.ɵɵComponentDeclaration<SelectComponent, "upd-select", never, { "useSystemStyle": { "alias": "useSystemStyle"; "required": false; "isSignal": true; }; "shouldShowClearButton": { "alias": "shouldShowClearButton"; "required": false; "isSignal": true; }; "shouldTruncateSelectedText": { "alias": "shouldTruncateSelectedText"; "required": false; "isSignal": true; }; "isCompact": { "alias": "isCompact"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; }, { "selectedItem": "selectedItem"; }, never, never, false, never>;
36
+ static ɵcmp: i0.ɵɵComponentDeclaration<SelectComponent, "upd-select", never, { "useSystemStyle": { "alias": "useSystemStyle"; "required": false; "isSignal": true; }; "shouldShowClearButton": { "alias": "shouldShowClearButton"; "required": false; "isSignal": true; }; "shouldTruncateSelectedText": { "alias": "shouldTruncateSelectedText"; "required": false; "isSignal": true; }; "isCompact": { "alias": "isCompact"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "parentSelectedId": { "alias": "parentSelectedId"; "required": false; "isSignal": true; }; "parentDependentLoader": { "alias": "parentDependentLoader"; "required": false; "isSignal": true; }; "getItemById": { "alias": "getItemById"; "required": false; "isSignal": true; }; }, { "selectedItem": "selectedItem"; }, never, never, false, never>;
28
37
  }
@@ -1,2 +1,3 @@
1
1
  export * from './defaults';
2
2
  export * from './select-item';
3
+ export * from './types';
@@ -0,0 +1,4 @@
1
+ import { Observable } from 'rxjs';
2
+ import { SelectItem } from './select-item';
3
+ export type ParentLoaderType = (parentId: any) => Observable<SelectItem[]>;
4
+ export type GetItemByIdType = (id: any) => Observable<SelectItem>;
@@ -13,6 +13,8 @@ export declare class TextareaComponent extends BaseControl implements OnInit, On
13
13
  ngOnInit(): void;
14
14
  ngOnChanges(): void;
15
15
  updateValue(event?: any): void;
16
+ protected _getValue(): any;
17
+ protected _updateValue(value: any): void;
16
18
  private updateClasses;
17
19
  static ɵfac: i0.ɵɵFactoryDeclaration<TextareaComponent, never>;
18
20
  static ɵcmp: i0.ɵɵComponentDeclaration<TextareaComponent, "upd-textarea", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "customClasses": { "alias": "customClasses"; "required": false; "isSignal": true; }; "wrapperClasses": { "alias": "wrapperClasses"; "required": false; "isSignal": true; }; "maxLength": { "alias": "maxLength"; "required": false; "isSignal": true; }; "rows": { "alias": "rows"; "required": false; "isSignal": true; }; "displayCharactersCount": { "alias": "displayCharactersCount"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; }, never, never, false, never>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@updevs/components",
3
- "version": "1.0.0-alpha.81",
3
+ "version": "1.0.0-alpha.83",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^18.0.1 || ^19.0.0",
6
6
  "@angular/core": "^18.0.1 || ^19.0.0",
@@ -34,6 +34,12 @@
34
34
  "esm": "./esm2022/badge/updevs-components-badge.mjs",
35
35
  "default": "./fesm2022/updevs-components-badge.mjs"
36
36
  },
37
+ "./card": {
38
+ "types": "./card/index.d.ts",
39
+ "esm2022": "./esm2022/card/updevs-components-card.mjs",
40
+ "esm": "./esm2022/card/updevs-components-card.mjs",
41
+ "default": "./fesm2022/updevs-components-card.mjs"
42
+ },
37
43
  "./button": {
38
44
  "types": "./button/index.d.ts",
39
45
  "esm2022": "./esm2022/button/updevs-components-button.mjs",
@@ -52,12 +58,6 @@
52
58
  "esm": "./esm2022/drag-and-drop/updevs-components-drag-and-drop.mjs",
53
59
  "default": "./fesm2022/updevs-components-drag-and-drop.mjs"
54
60
  },
55
- "./card": {
56
- "types": "./card/index.d.ts",
57
- "esm2022": "./esm2022/card/updevs-components-card.mjs",
58
- "esm": "./esm2022/card/updevs-components-card.mjs",
59
- "default": "./fesm2022/updevs-components-card.mjs"
60
- },
61
61
  "./dropdown": {
62
62
  "types": "./dropdown/index.d.ts",
63
63
  "esm2022": "./esm2022/dropdown/updevs-components-dropdown.mjs",