@testgorilla/tgo-ui 3.10.18 → 3.10.20

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 (25) hide show
  1. package/components/button/button.model.d.ts +1 -1
  2. package/components/donut-chart/donut-chart.component.d.ts +2 -2
  3. package/components/field/field.component.d.ts +8 -1
  4. package/components/inline-field/inline-field.component.d.ts +153 -0
  5. package/components/inline-field/inline-field.component.module.d.ts +13 -0
  6. package/components/inline-field/inline-field.model.d.ts +107 -0
  7. package/components/overflow-menu/overflow-menu.component.d.ts +9 -6
  8. package/components/overflow-menu/overflow-menu.model.d.ts +2 -1
  9. package/esm2022/components/button/button.component.mjs +6 -6
  10. package/esm2022/components/button/button.component.module.mjs +4 -4
  11. package/esm2022/components/button/button.model.mjs +1 -1
  12. package/esm2022/components/field/field.component.mjs +12 -3
  13. package/esm2022/components/filter-button/filter-button.component.mjs +1 -1
  14. package/esm2022/components/inline-field/inline-field.component.mjs +320 -0
  15. package/esm2022/components/inline-field/inline-field.component.module.mjs +43 -0
  16. package/esm2022/components/inline-field/inline-field.model.mjs +2 -0
  17. package/esm2022/components/multi-input/multi-input.component.mjs +1 -1
  18. package/esm2022/components/overflow-menu/overflow-menu.component.mjs +36 -22
  19. package/esm2022/components/overflow-menu/overflow-menu.model.mjs +1 -1
  20. package/esm2022/components/password-criteria/password.component.mjs +1 -1
  21. package/esm2022/public-api.mjs +6 -1
  22. package/fesm2022/testgorilla-tgo-ui.mjs +401 -30
  23. package/fesm2022/testgorilla-tgo-ui.mjs.map +1 -1
  24. package/package.json +4 -3
  25. package/public-api.d.ts +4 -0
@@ -1,6 +1,6 @@
1
1
  import { BadgeVariant, RebrandBadgeColor } from '../badge/badge.model';
2
2
  export type ButtonIconPosition = 'left' | 'right';
3
- export type ButtonColor = 'primary' | 'secondary' | 'ghost' | 'ghost-ai' | 'outlined' | 'destructive' | 'tertiary' | 'link' | 'tab' | 'text' | 'text-inline' | 'menuTrigger' | 'menuCell' | 'icon-button';
3
+ export type ButtonColor = 'primary' | 'secondary' | 'secondary-inverted' | 'ghost' | 'ghost-ai' | 'outlined' | 'destructive' | 'tertiary' | 'link' | 'tab' | 'text' | 'text-inline' | 'menuTrigger' | 'menuCell' | 'icon-button';
4
4
  export type ButtonSize = 'big' | 'medium' | 'small';
5
5
  export type LinkUrlTarget = '' | '_self' | '_blank' | '_parent' | '_top';
6
6
  export type IconButtonSize = '24' | '32' | '40';
@@ -21,13 +21,13 @@ export declare class DonutChartComponent {
21
21
  id: string;
22
22
  afterDatasetDraw: (chart: any) => void;
23
23
  };
24
- donutChartPlugins: ({
24
+ donutChartPlugins: (import("chart.js").Plugin<keyof import("chart.js").ChartTypeRegistry, import("chart.js/dist/types/basic").AnyObject> | {
25
25
  id: string;
26
26
  beforeDraw: (chart: any) => void;
27
27
  } | {
28
28
  id: string;
29
29
  afterDatasetDraw: (chart: any) => void;
30
- } | import("chart.js").Plugin<keyof import("chart.js").ChartTypeRegistry, import("chart.js/dist/types/basic").AnyObject>)[];
30
+ })[];
31
31
  donutChartOptions: ChartOptions<'doughnut'>;
32
32
  static ɵfac: i0.ɵɵFactoryDeclaration<DonutChartComponent, never>;
33
33
  static ɵcmp: i0.ɵɵComponentDeclaration<DonutChartComponent, "ui-donut-chart", never, { "donutChartData": { "alias": "donutChartData"; "required": false; "isSignal": true; }; "applicationTheme": { "alias": "applicationTheme"; "required": false; "isSignal": true; }; }, {}, never, never, false, never>;
@@ -154,6 +154,13 @@ export declare class FieldComponent implements OnInit, ControlValueAccessor, DoC
154
154
  * @memberof FieldComponent
155
155
  */
156
156
  allowOnlyDigits: boolean;
157
+ /**
158
+ * allow autocomplete off in input
159
+ *
160
+ * @type {Boolean}
161
+ * @memberof FieldComponent
162
+ */
163
+ isAutocompleteOff: boolean;
157
164
  /**
158
165
  * allow negative numbers
159
166
  *
@@ -364,5 +371,5 @@ export declare class FieldComponent implements OnInit, ControlValueAccessor, DoC
364
371
  focus(): void;
365
372
  refocusPasswordButton(btn: any): void;
366
373
  static ɵfac: i0.ɵɵFactoryDeclaration<FieldComponent, [{ optional: true; }, null, null, null, { optional: true; self: true; }, null, null, null]>;
367
- static ɵcmp: i0.ɵɵComponentDeclaration<FieldComponent, "ui-field", never, { "fullWidth": { "alias": "fullWidth"; "required": false; }; "fullHeight": { "alias": "fullHeight"; "required": false; }; "label": { "alias": "label"; "required": false; }; "labelHtml": { "alias": "labelHtml"; "required": false; "isSignal": true; }; "labelIcon": { "alias": "labelIcon"; "required": false; }; "fieldName": { "alias": "fieldName"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "id": { "alias": "id"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; }; "badgeVariant": { "alias": "badgeVariant"; "required": false; }; "errors": { "alias": "errors"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "required": { "alias": "required"; "required": false; }; "readOnly": { "alias": "readOnly"; "required": false; }; "hintMessage": { "alias": "hintMessage"; "required": false; }; "type": { "alias": "type"; "required": false; }; "updateOnBlur": { "alias": "updateOnBlur"; "required": false; }; "allowOnlyDigits": { "alias": "allowOnlyDigits"; "required": false; }; "allowNegative": { "alias": "allowNegative"; "required": false; }; "showBottomContent": { "alias": "showBottomContent"; "required": false; }; "applicationTheme": { "alias": "applicationTheme"; "required": false; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; }; "loading": { "alias": "loading"; "required": false; }; "isValid": { "alias": "isValid"; "required": false; }; "maxCharacters": { "alias": "maxCharacters"; "required": false; }; "trimOnBlur": { "alias": "trimOnBlur"; "required": false; }; "trimOnSubmit": { "alias": "trimOnSubmit"; "required": false; }; "maxRows": { "alias": "maxRows"; "required": false; }; "hasTextAreaCounter": { "alias": "hasTextAreaCounter"; "required": false; }; "hideBuiltInErrors": { "alias": "hideBuiltInErrors"; "required": false; }; "hideLabelInErrors": { "alias": "hideLabelInErrors"; "required": false; }; "max": { "alias": "max"; "required": false; }; "min": { "alias": "min"; "required": false; }; "textareaHeight": { "alias": "textareaHeight"; "required": false; }; "borderless": { "alias": "borderless"; "required": false; }; "isAIVariant": { "alias": "isAIVariant"; "required": false; }; "ariaLabelledby": { "alias": "ariaLabelledby"; "required": false; "isSignal": true; }; "ariaDescribedby": { "alias": "ariaDescribedby"; "required": false; "isSignal": true; }; "hasError": { "alias": "hasError"; "required": false; }; }, { "validateEvent": "validateEvent"; "fieldBlur": "fieldBlur"; }, never, never, false, never>;
374
+ static ɵcmp: i0.ɵɵComponentDeclaration<FieldComponent, "ui-field", never, { "fullWidth": { "alias": "fullWidth"; "required": false; }; "fullHeight": { "alias": "fullHeight"; "required": false; }; "label": { "alias": "label"; "required": false; }; "labelHtml": { "alias": "labelHtml"; "required": false; "isSignal": true; }; "labelIcon": { "alias": "labelIcon"; "required": false; }; "fieldName": { "alias": "fieldName"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "id": { "alias": "id"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; }; "badgeVariant": { "alias": "badgeVariant"; "required": false; }; "errors": { "alias": "errors"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "required": { "alias": "required"; "required": false; }; "readOnly": { "alias": "readOnly"; "required": false; }; "hintMessage": { "alias": "hintMessage"; "required": false; }; "type": { "alias": "type"; "required": false; }; "updateOnBlur": { "alias": "updateOnBlur"; "required": false; }; "allowOnlyDigits": { "alias": "allowOnlyDigits"; "required": false; }; "isAutocompleteOff": { "alias": "isAutocompleteOff"; "required": false; }; "allowNegative": { "alias": "allowNegative"; "required": false; }; "showBottomContent": { "alias": "showBottomContent"; "required": false; }; "applicationTheme": { "alias": "applicationTheme"; "required": false; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; }; "loading": { "alias": "loading"; "required": false; }; "isValid": { "alias": "isValid"; "required": false; }; "maxCharacters": { "alias": "maxCharacters"; "required": false; }; "trimOnBlur": { "alias": "trimOnBlur"; "required": false; }; "trimOnSubmit": { "alias": "trimOnSubmit"; "required": false; }; "maxRows": { "alias": "maxRows"; "required": false; }; "hasTextAreaCounter": { "alias": "hasTextAreaCounter"; "required": false; }; "hideBuiltInErrors": { "alias": "hideBuiltInErrors"; "required": false; }; "hideLabelInErrors": { "alias": "hideLabelInErrors"; "required": false; }; "max": { "alias": "max"; "required": false; }; "min": { "alias": "min"; "required": false; }; "textareaHeight": { "alias": "textareaHeight"; "required": false; }; "borderless": { "alias": "borderless"; "required": false; }; "isAIVariant": { "alias": "isAIVariant"; "required": false; }; "ariaLabelledby": { "alias": "ariaLabelledby"; "required": false; "isSignal": true; }; "ariaDescribedby": { "alias": "ariaDescribedby"; "required": false; "isSignal": true; }; "hasError": { "alias": "hasError"; "required": false; }; }, { "validateEvent": "validateEvent"; "fieldBlur": "fieldBlur"; }, never, never, false, never>;
368
375
  }
@@ -0,0 +1,153 @@
1
+ import { ChangeDetectorRef, DestroyRef, ElementRef, OnInit } from '@angular/core';
2
+ import { ControlValueAccessor, NgControl } from '@angular/forms';
3
+ import { ApplicationTheme } from '../../models/application-theme.model';
4
+ import { InlineFieldState, InlineFieldButtonConfig, InlineFieldValidation, InlineFieldChangeEvent } from './inline-field.model';
5
+ import { FieldComponent } from '../field/field.component';
6
+ import { FieldType } from '../field/field.model';
7
+ import * as i0 from "@angular/core";
8
+ /**
9
+ * A global counter used to generate unique inline field IDs.
10
+ */
11
+ export declare let inlineFieldID: number;
12
+ export declare class InlineFieldComponent implements OnInit, ControlValueAccessor {
13
+ private cdr;
14
+ private destroyRef;
15
+ private elementRef;
16
+ ngControl: NgControl;
17
+ class: string;
18
+ /**
19
+ * Component ID for accessibility
20
+ */
21
+ id: import("@angular/core").InputSignal<string>;
22
+ /**
23
+ * Field label
24
+ */
25
+ label: import("@angular/core").InputSignal<string>;
26
+ /**
27
+ * Field placeholder
28
+ */
29
+ placeholder: import("@angular/core").InputSignal<string>;
30
+ /**
31
+ * Current value
32
+ */
33
+ value: import("@angular/core").InputSignal<string>;
34
+ /**
35
+ * Whether the field is required
36
+ */
37
+ required: import("@angular/core").InputSignal<boolean>;
38
+ /**
39
+ * Whether the field is disabled
40
+ */
41
+ disabled: import("@angular/core").InputSignal<boolean>;
42
+ /**
43
+ * Application theme
44
+ */
45
+ applicationTheme: import("@angular/core").InputSignal<ApplicationTheme>;
46
+ /**
47
+ * Field type
48
+ */
49
+ fieldType: import("@angular/core").InputSignal<FieldType>;
50
+ /**
51
+ * Field type
52
+ */
53
+ maxRows: import("@angular/core").InputSignal<number>;
54
+ /**
55
+ * Error messages
56
+ */
57
+ errors: import("@angular/core").InputSignal<string[]>;
58
+ /**
59
+ * Whether to show errors
60
+ */
61
+ showErrors: import("@angular/core").InputSignal<boolean>;
62
+ /**
63
+ * Button configuration
64
+ */
65
+ buttonConfig: import("@angular/core").InputSignal<InlineFieldButtonConfig>;
66
+ /**
67
+ * Validation configuration
68
+ */
69
+ validation: import("@angular/core").InputSignal<InlineFieldValidation>;
70
+ /**
71
+ * ARIA label
72
+ */
73
+ ariaLabel: import("@angular/core").InputSignal<string>;
74
+ /**
75
+ * Full width
76
+ */
77
+ fullWidth: import("@angular/core").InputSignal<boolean>;
78
+ /**
79
+ * Emitted when save button is clicked
80
+ */
81
+ save: import("@angular/core").OutputEmitterRef<InlineFieldChangeEvent>;
82
+ /**
83
+ * Emitted when cancel button is clicked
84
+ */
85
+ cancel: import("@angular/core").OutputEmitterRef<void>;
86
+ /**
87
+ * Emitted when value changes
88
+ */
89
+ valueChange: import("@angular/core").OutputEmitterRef<string>;
90
+ /**
91
+ * Emitted when editing mode changes
92
+ */
93
+ editingModeChange: import("@angular/core").OutputEmitterRef<boolean>;
94
+ /**
95
+ * Emitted on focus
96
+ */
97
+ focusEvent: import("@angular/core").OutputEmitterRef<void>;
98
+ /**
99
+ * Emitted on blur
100
+ */
101
+ blurEvent: import("@angular/core").OutputEmitterRef<void>;
102
+ fieldComponent: FieldComponent;
103
+ private _isEditing;
104
+ private _originalValue;
105
+ private _currentValue;
106
+ private _state;
107
+ isEditing: import("@angular/core").Signal<boolean>;
108
+ currentValue: import("@angular/core").Signal<string>;
109
+ state: import("@angular/core").Signal<InlineFieldState>;
110
+ saveButtonConfig: import("@angular/core").Signal<{
111
+ label: string;
112
+ iconName: "Add" | "Archive" | "Arrow_down" | "Arrow_left" | "Arrow_right" | "Arrow_up" | "Assessment" | "Attempts" | "Book" | "Calendar" | "Candidates" | "Chat-notifications" | "Chat" | "Check" | "Clone" | "Close" | "Code" | "Company" | "Copy" | "Custom-questions" | "Delete" | "Devices" | "Document" | "Dot" | "Download" | "Edit" | "Email-message" | "Empty-placeholder" | "Error" | "Essay" | "Eye-hide" | "Eye-view" | "Feedback-1" | "Feedback-2" | "Feedback-3" | "Feedback-4" | "Feedback-5" | "File-attach" | "File-upload" | "Filter" | "Folder" | "Format-add-file" | "Format-add-table" | "Format-align-L" | "Format-align-R" | "Format-align-center" | "Format-align-justify" | "Format-bold" | "Format-code-active" | "Format-code-block" | "Format-edit-table" | "Format-format" | "Format-function" | "Format-italics" | "Format-list-bulleted" | "Format-list-numbered" | "Format-picker" | "Format-quote" | "Format-subscript" | "Format-superscript" | "Format-text-direction-L" | "Format-text-direction-R" | "Format-text-size" | "Format-underline" | "Format-variable" | "Full-screen" | "Gender-female" | "Gender-male" | "Help-2" | "Help" | "Image" | "Info" | "Integration" | "Language" | "Layout" | "Learn" | "Level" | "Light-bulb" | "Link" | "Loading-spinner" | "Localisation" | "Location" | "Lock" | "Log-out" | "Menu-burger" | "Menu-close" | "Menu-ellipsis" | "Menu-open" | "Microphone" | "Microsoft" | "Minus" | "Mouse-cursor" | "Mouse-grab-cursor" | "Mouse" | "Multi-choice" | "Notifications" | "Password" | "Path" | "Pin-marker" | "Plan-billing" | "Plus" | "Premium" | "Promotion" | "Question-count" | "Refer" | "Reset" | "Review" | "Round-check-filled" | "Round-check" | "Search" | "Secure-checkout" | "Send" | "Settings" | "Social-facebook" | "Social-instagram" | "Social-linkedin" | "Sorting-down-1" | "Sorting-down" | "Speedometer" | "Star-filled" | "Star-half" | "Star-outline" | "Support" | "Sync" | "Team" | "Test" | "Thunder" | "Timer" | "Trophy" | "Type" | "Unarchive" | "Unlock" | "Upgrade" | "Upload" | "User-access" | "User-add" | "User-invite" | "User-profile" | "User-reject" | "User-switch" | "Video-pause" | "Video-play" | "Video-record" | "Video" | "Volume" | "Warning" | "Zoom-in" | "Zoom-out" | "Fire" | "Gift" | "Grab" | "Share" | "Sparkles" | "Video-stop" | "Minimize" | "Employee" | "Money-bag" | "Suitcase" | "Google" | "Fast-forward" | "Fast-rewind" | "Skip-next" | "Skip-previous" | "TestGorilla" | "Switch-tab" | "Device-rotate-in-line" | "Archive-filled" | "Archive-in-line" | "Add-in-line" | "Add-filled" | "Arrow-chevron-down-filled" | "Arrow-chevron-down-in-line" | "Arrow-chevron-left-filled" | "Arrow-chevron-left-in-line" | "Arrow-chevron-right-filled" | "Arrow-chevron-right-in-line" | "Arrow-chevron-up-filled" | "Arrow-chevron-up-in-line" | "Arrow-down-filled" | "Arrow-down-in-line" | "Arrow-up-filled" | "Arrow-up-in-line" | "Assessment-filled" | "Assessment-in-line" | "Attach-filled" | "Attach-in-line" | "Attempts-filled" | "Attempts-in-line" | "Book-filled" | "Book-in-line" | "Calendar-filled" | "Calendar-in-line" | "Candidates-filled" | "Candidates-in-line" | "Chat-filled" | "Chat-in-line" | "Check-filled" | "Check-in-line" | "Check-round-filled" | "Check-round-in-line" | "Circle-filled" | "Circle-in-line" | "Clone-filled" | "Clone-in-line" | "Close-filled" | "Close-in-line" | "Code-filled" | "Code-in-line" | "Company-filled" | "Company-in-line" | "Copy-filled" | "Copy-in-line" | "Credit-filled" | "Credit-in-line" | "Credit-card-filled" | "Credit-card-in-line" | "Delete-filled" | "Delete-in-line" | "Devices-filled" | "Devices-in-line" | "Document-filled" | "Document-in-line" | "Dot-filled" | "Dot-in-line" | "Download-filled" | "Download-in-line" | "Edit-filled" | "Edit-in-line" | "Edit-text-filled" | "Edit-text-in-line" | "Employee-filled" | "Employee-in-line" | "Error-filled" | "Error-in-line" | "Essay-filled" | "Essay-in-line" | "Experience-filled" | "Experience-in-line" | "Facebook-filled" | "Facebook-in-line" | "Fast-forward-filled" | "Fast-forward-in-line" | "Fast-rewind-filled" | "Fast-rewind-in-line" | "Filter-filled" | "Filter-in-line" | "Fire-filled" | "Fire-in-line" | "Folder-filled" | "Folder-in-line" | "Full-screen-filled" | "Full-screen-in-line" | "Gender-male-filled" | "Gender-male-in-line" | "Gender-female-filled" | "Gender-female-in-line" | "Gift-filled" | "Gift-in-line" | "Google-filled" | "Google-in-line" | "Grab-filled" | "Grab-in-line" | "Help-filled" | "Help-in-line" | "Hide-filled" | "Hide-in-line" | "Image-filled" | "Image-in-line" | "Info-filled" | "Info-in-line" | "Instagram-filled" | "Instagram-in-line" | "Integration-filled" | "Integration-in-line" | "Invite-filled" | "Invite-in-line" | "Language-filled" | "Language-in-line" | "Layout-filled" | "Layout-in-line" | "Learn-filled" | "Learn-in-line" | "Level-filled" | "Level-in-line" | "Light-bulb-filled" | "Light-bulb-in-line" | "Link-filled" | "Link-in-line" | "Linkedin-filled" | "Linkedin-in-line" | "Localization-filled" | "Localization-in-line" | "Location-filled" | "Location-in-line" | "Lock-filled" | "Lock-in-line" | "Logout-filled" | "Logout-in-line" | "Medal-filled" | "Medal-in-line" | "Menu-burger-filled" | "Menu-burger-in-line" | "Menu-close-filled" | "Menu-close-in-line" | "Menu-ellipsis-filled" | "Menu-ellipsis-in-line" | "Menu-open-filled" | "Menu-open-in-line" | "Mic-filled" | "Mic-in-line" | "Microsoft-filled" | "Microsoft-in-line" | "Minimize-filled" | "Minimize-in-line" | "Minus-filled" | "Minus-in-line" | "Mouse-filled" | "Mouse-in-line" | "Multi-choice-filled" | "Multi-choice-in-line" | "Notification-bell-filled" | "Notification-bell-in-line" | "Open-lock-filled" | "Open-lock-in-line" | "Open-in-new-filled" | "Open-in-new-in-line" | "Password-filled" | "Password-in-line" | "Path-filled" | "Path-in-line" | "Pause-filled" | "Pause-in-line" | "Pin-marker-filled" | "Pin-marker-in-line" | "Plan-billing-filled" | "Plan-billing-in-line" | "Play-filled" | "Play-in-line" | "Plus-filled" | "Plus-in-line" | "Premium-filled" | "Premium-in-line" | "Premium-circle-in-line" | "Question-count-filled" | "Question-count-in-line" | "Question-filled" | "Question-in-line" | "Record-filled" | "Record-in-line" | "Reject-filled" | "Refer-in-line" | "Refer-filled" | "Reject-in-line" | "Reset-filled" | "Reset-in-line" | "Review-emoji-1-filled" | "Review-emoji-1-in-line" | "Review-emoji-2-filled" | "Review-emoji-2-in-line" | "Review-emoji-3-filled" | "Review-emoji-3-in-line" | "Review-emoji-4-filled" | "Review-emoji-4-in-line" | "Review-emoji-5-filled" | "Review-emoji-5-in-line" | "Review-filled" | "Review-half-star-filled" | "Review-half-star-in-line" | "Review-in-line" | "Review-star-filled" | "Review-star-in-line" | "Search-filled" | "Search-in-line" | "Secure-filled" | "Secure-in-line" | "Send-filled" | "Send-in-line" | "Settings-filled" | "Settings-in-line" | "Share-filled" | "Share-in-line" | "Skip-next-filled" | "Skip-next-in-line" | "Skip-previous-filled" | "Skip-previous-in-line" | "Sparkle-filled" | "Sparkle-in-line" | "Speedometer-filled" | "Speedometer-in-line" | "Star-in-line" | "Stop-filled" | "Stop-in-line" | "Switch-filled" | "Switch-in-line" | "Sync-filled" | "Sync-in-line" | "Tag-filled" | "Tag-in-line" | "Team-filled" | "Team-in-line" | "Test-filled" | "Test-in-line" | "Thumb-down-in-line" | "Thumb-down-filled" | "Thumb-up-in-line" | "Thumb-up-filled" | "Timer-filled" | "Timer-in-line" | "Trophy-filled" | "Trophy-in-line" | "Type-filled" | "Type-in-line" | "Unarchive-filled" | "Unarchive-in-line" | "Unlock-filled" | "Unlock-in-line" | "Upgrade-filled" | "Upgrade-in-line" | "Upload-filled" | "Upload-in-line" | "User-access-filled" | "User-access-in-line" | "User-add-filled" | "User-add-in-line" | "User-profile-filled" | "User-profile-in-line" | "Video-filled" | "Video-in-line" | "View-filled" | "View-in-line" | "Volume-filled" | "Volume-in-line" | "Warning-filled" | "Warning-in-line" | "Validated-filled" | "Validated-in-line" | "Verified-badge-filled" | "Verified-badge-in-line" | "Zoom-in-filled" | "Zoom-in-in-line" | "Zoom-out-filled" | "Zoom-out-in-line" | "Analytics-filled" | "Analytics-in-line" | "Failed-to-load-filled" | "Failed-to-load-in-line" | "History-filled" | "History-in-line" | "TestGorilla-filled" | "TestGorilla-in-line" | "TestGorilla-Pink-filled" | "TestGorilla-Pink-in-line" | "Pencil-to-gorilla-in-line" | "Pencil-to-gorilla-filled" | "Switch-tab-in-line" | "Switch-tab-filled";
113
+ variant: "secondary-inverted";
114
+ size: "small";
115
+ disabled: boolean;
116
+ }>;
117
+ cancelButtonConfig: import("@angular/core").Signal<{
118
+ label: string;
119
+ iconName: "Add" | "Archive" | "Arrow_down" | "Arrow_left" | "Arrow_right" | "Arrow_up" | "Assessment" | "Attempts" | "Book" | "Calendar" | "Candidates" | "Chat-notifications" | "Chat" | "Check" | "Clone" | "Close" | "Code" | "Company" | "Copy" | "Custom-questions" | "Delete" | "Devices" | "Document" | "Dot" | "Download" | "Edit" | "Email-message" | "Empty-placeholder" | "Error" | "Essay" | "Eye-hide" | "Eye-view" | "Feedback-1" | "Feedback-2" | "Feedback-3" | "Feedback-4" | "Feedback-5" | "File-attach" | "File-upload" | "Filter" | "Folder" | "Format-add-file" | "Format-add-table" | "Format-align-L" | "Format-align-R" | "Format-align-center" | "Format-align-justify" | "Format-bold" | "Format-code-active" | "Format-code-block" | "Format-edit-table" | "Format-format" | "Format-function" | "Format-italics" | "Format-list-bulleted" | "Format-list-numbered" | "Format-picker" | "Format-quote" | "Format-subscript" | "Format-superscript" | "Format-text-direction-L" | "Format-text-direction-R" | "Format-text-size" | "Format-underline" | "Format-variable" | "Full-screen" | "Gender-female" | "Gender-male" | "Help-2" | "Help" | "Image" | "Info" | "Integration" | "Language" | "Layout" | "Learn" | "Level" | "Light-bulb" | "Link" | "Loading-spinner" | "Localisation" | "Location" | "Lock" | "Log-out" | "Menu-burger" | "Menu-close" | "Menu-ellipsis" | "Menu-open" | "Microphone" | "Microsoft" | "Minus" | "Mouse-cursor" | "Mouse-grab-cursor" | "Mouse" | "Multi-choice" | "Notifications" | "Password" | "Path" | "Pin-marker" | "Plan-billing" | "Plus" | "Premium" | "Promotion" | "Question-count" | "Refer" | "Reset" | "Review" | "Round-check-filled" | "Round-check" | "Search" | "Secure-checkout" | "Send" | "Settings" | "Social-facebook" | "Social-instagram" | "Social-linkedin" | "Sorting-down-1" | "Sorting-down" | "Speedometer" | "Star-filled" | "Star-half" | "Star-outline" | "Support" | "Sync" | "Team" | "Test" | "Thunder" | "Timer" | "Trophy" | "Type" | "Unarchive" | "Unlock" | "Upgrade" | "Upload" | "User-access" | "User-add" | "User-invite" | "User-profile" | "User-reject" | "User-switch" | "Video-pause" | "Video-play" | "Video-record" | "Video" | "Volume" | "Warning" | "Zoom-in" | "Zoom-out" | "Fire" | "Gift" | "Grab" | "Share" | "Sparkles" | "Video-stop" | "Minimize" | "Employee" | "Money-bag" | "Suitcase" | "Google" | "Fast-forward" | "Fast-rewind" | "Skip-next" | "Skip-previous" | "TestGorilla" | "Switch-tab" | "Device-rotate-in-line" | "Archive-filled" | "Archive-in-line" | "Add-in-line" | "Add-filled" | "Arrow-chevron-down-filled" | "Arrow-chevron-down-in-line" | "Arrow-chevron-left-filled" | "Arrow-chevron-left-in-line" | "Arrow-chevron-right-filled" | "Arrow-chevron-right-in-line" | "Arrow-chevron-up-filled" | "Arrow-chevron-up-in-line" | "Arrow-down-filled" | "Arrow-down-in-line" | "Arrow-up-filled" | "Arrow-up-in-line" | "Assessment-filled" | "Assessment-in-line" | "Attach-filled" | "Attach-in-line" | "Attempts-filled" | "Attempts-in-line" | "Book-filled" | "Book-in-line" | "Calendar-filled" | "Calendar-in-line" | "Candidates-filled" | "Candidates-in-line" | "Chat-filled" | "Chat-in-line" | "Check-filled" | "Check-in-line" | "Check-round-filled" | "Check-round-in-line" | "Circle-filled" | "Circle-in-line" | "Clone-filled" | "Clone-in-line" | "Close-filled" | "Close-in-line" | "Code-filled" | "Code-in-line" | "Company-filled" | "Company-in-line" | "Copy-filled" | "Copy-in-line" | "Credit-filled" | "Credit-in-line" | "Credit-card-filled" | "Credit-card-in-line" | "Delete-filled" | "Delete-in-line" | "Devices-filled" | "Devices-in-line" | "Document-filled" | "Document-in-line" | "Dot-filled" | "Dot-in-line" | "Download-filled" | "Download-in-line" | "Edit-filled" | "Edit-in-line" | "Edit-text-filled" | "Edit-text-in-line" | "Employee-filled" | "Employee-in-line" | "Error-filled" | "Error-in-line" | "Essay-filled" | "Essay-in-line" | "Experience-filled" | "Experience-in-line" | "Facebook-filled" | "Facebook-in-line" | "Fast-forward-filled" | "Fast-forward-in-line" | "Fast-rewind-filled" | "Fast-rewind-in-line" | "Filter-filled" | "Filter-in-line" | "Fire-filled" | "Fire-in-line" | "Folder-filled" | "Folder-in-line" | "Full-screen-filled" | "Full-screen-in-line" | "Gender-male-filled" | "Gender-male-in-line" | "Gender-female-filled" | "Gender-female-in-line" | "Gift-filled" | "Gift-in-line" | "Google-filled" | "Google-in-line" | "Grab-filled" | "Grab-in-line" | "Help-filled" | "Help-in-line" | "Hide-filled" | "Hide-in-line" | "Image-filled" | "Image-in-line" | "Info-filled" | "Info-in-line" | "Instagram-filled" | "Instagram-in-line" | "Integration-filled" | "Integration-in-line" | "Invite-filled" | "Invite-in-line" | "Language-filled" | "Language-in-line" | "Layout-filled" | "Layout-in-line" | "Learn-filled" | "Learn-in-line" | "Level-filled" | "Level-in-line" | "Light-bulb-filled" | "Light-bulb-in-line" | "Link-filled" | "Link-in-line" | "Linkedin-filled" | "Linkedin-in-line" | "Localization-filled" | "Localization-in-line" | "Location-filled" | "Location-in-line" | "Lock-filled" | "Lock-in-line" | "Logout-filled" | "Logout-in-line" | "Medal-filled" | "Medal-in-line" | "Menu-burger-filled" | "Menu-burger-in-line" | "Menu-close-filled" | "Menu-close-in-line" | "Menu-ellipsis-filled" | "Menu-ellipsis-in-line" | "Menu-open-filled" | "Menu-open-in-line" | "Mic-filled" | "Mic-in-line" | "Microsoft-filled" | "Microsoft-in-line" | "Minimize-filled" | "Minimize-in-line" | "Minus-filled" | "Minus-in-line" | "Mouse-filled" | "Mouse-in-line" | "Multi-choice-filled" | "Multi-choice-in-line" | "Notification-bell-filled" | "Notification-bell-in-line" | "Open-lock-filled" | "Open-lock-in-line" | "Open-in-new-filled" | "Open-in-new-in-line" | "Password-filled" | "Password-in-line" | "Path-filled" | "Path-in-line" | "Pause-filled" | "Pause-in-line" | "Pin-marker-filled" | "Pin-marker-in-line" | "Plan-billing-filled" | "Plan-billing-in-line" | "Play-filled" | "Play-in-line" | "Plus-filled" | "Plus-in-line" | "Premium-filled" | "Premium-in-line" | "Premium-circle-in-line" | "Question-count-filled" | "Question-count-in-line" | "Question-filled" | "Question-in-line" | "Record-filled" | "Record-in-line" | "Reject-filled" | "Refer-in-line" | "Refer-filled" | "Reject-in-line" | "Reset-filled" | "Reset-in-line" | "Review-emoji-1-filled" | "Review-emoji-1-in-line" | "Review-emoji-2-filled" | "Review-emoji-2-in-line" | "Review-emoji-3-filled" | "Review-emoji-3-in-line" | "Review-emoji-4-filled" | "Review-emoji-4-in-line" | "Review-emoji-5-filled" | "Review-emoji-5-in-line" | "Review-filled" | "Review-half-star-filled" | "Review-half-star-in-line" | "Review-in-line" | "Review-star-filled" | "Review-star-in-line" | "Search-filled" | "Search-in-line" | "Secure-filled" | "Secure-in-line" | "Send-filled" | "Send-in-line" | "Settings-filled" | "Settings-in-line" | "Share-filled" | "Share-in-line" | "Skip-next-filled" | "Skip-next-in-line" | "Skip-previous-filled" | "Skip-previous-in-line" | "Sparkle-filled" | "Sparkle-in-line" | "Speedometer-filled" | "Speedometer-in-line" | "Star-in-line" | "Stop-filled" | "Stop-in-line" | "Switch-filled" | "Switch-in-line" | "Sync-filled" | "Sync-in-line" | "Tag-filled" | "Tag-in-line" | "Team-filled" | "Team-in-line" | "Test-filled" | "Test-in-line" | "Thumb-down-in-line" | "Thumb-down-filled" | "Thumb-up-in-line" | "Thumb-up-filled" | "Timer-filled" | "Timer-in-line" | "Trophy-filled" | "Trophy-in-line" | "Type-filled" | "Type-in-line" | "Unarchive-filled" | "Unarchive-in-line" | "Unlock-filled" | "Unlock-in-line" | "Upgrade-filled" | "Upgrade-in-line" | "Upload-filled" | "Upload-in-line" | "User-access-filled" | "User-access-in-line" | "User-add-filled" | "User-add-in-line" | "User-profile-filled" | "User-profile-in-line" | "Video-filled" | "Video-in-line" | "View-filled" | "View-in-line" | "Volume-filled" | "Volume-in-line" | "Warning-filled" | "Warning-in-line" | "Validated-filled" | "Validated-in-line" | "Verified-badge-filled" | "Verified-badge-in-line" | "Zoom-in-filled" | "Zoom-in-in-line" | "Zoom-out-filled" | "Zoom-out-in-line" | "Analytics-filled" | "Analytics-in-line" | "Failed-to-load-filled" | "Failed-to-load-in-line" | "History-filled" | "History-in-line" | "TestGorilla-filled" | "TestGorilla-in-line" | "TestGorilla-Pink-filled" | "TestGorilla-Pink-in-line" | "Pencil-to-gorilla-in-line" | "Pencil-to-gorilla-filled" | "Switch-tab-in-line" | "Switch-tab-filled";
120
+ variant: "secondary-inverted";
121
+ size: "small";
122
+ disabled: boolean;
123
+ }>;
124
+ private onChange;
125
+ private onTouched;
126
+ constructor(cdr: ChangeDetectorRef, destroyRef: DestroyRef, elementRef: ElementRef, ngControl: NgControl);
127
+ ngOnInit(): void;
128
+ writeValue(value: string): void;
129
+ registerOnChange(fn: (value: string) => void): void;
130
+ registerOnTouched(fn: () => void): void;
131
+ setDisabledState(_isDisabled: boolean): void;
132
+ onComponentFocusOut(event: FocusEvent): void;
133
+ onEscapePressed(event: KeyboardEvent): void;
134
+ onEnterPressed(event: KeyboardEvent): void;
135
+ onTabPressed(): void;
136
+ onInputFocus(): void;
137
+ onInputBlur(): void;
138
+ onInputChange(event: Event): void;
139
+ focus(): void;
140
+ enterEditMode(): void;
141
+ saveEdit(): void;
142
+ cancelEdit(): void;
143
+ private exitEditMode;
144
+ private updateState;
145
+ private hasValidationError;
146
+ private hasRequiredError;
147
+ private hasMinLengthError;
148
+ private hasMaxLengthError;
149
+ private hasPatternError;
150
+ private hasCustomValidationError;
151
+ static ɵfac: i0.ɵɵFactoryDeclaration<InlineFieldComponent, [null, null, null, { optional: true; self: true; }]>;
152
+ static ɵcmp: i0.ɵɵComponentDeclaration<InlineFieldComponent, "ui-inline-field", never, { "id": { "alias": "id"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "applicationTheme": { "alias": "applicationTheme"; "required": false; "isSignal": true; }; "fieldType": { "alias": "fieldType"; "required": false; "isSignal": true; }; "maxRows": { "alias": "maxRows"; "required": false; "isSignal": true; }; "errors": { "alias": "errors"; "required": false; "isSignal": true; }; "showErrors": { "alias": "showErrors"; "required": false; "isSignal": true; }; "buttonConfig": { "alias": "buttonConfig"; "required": false; "isSignal": true; }; "validation": { "alias": "validation"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "fullWidth": { "alias": "fullWidth"; "required": false; "isSignal": true; }; }, { "save": "save"; "cancel": "cancel"; "valueChange": "valueChange"; "editingModeChange": "editingModeChange"; "focusEvent": "focusEvent"; "blurEvent": "blurEvent"; }, never, never, false, never>;
153
+ }
@@ -0,0 +1,13 @@
1
+ import * as i0 from "@angular/core";
2
+ import * as i1 from "./inline-field.component";
3
+ import * as i2 from "@angular/common";
4
+ import * as i3 from "@angular/forms";
5
+ import * as i4 from "@angular/material/input";
6
+ import * as i5 from "../button/button.component.module";
7
+ import * as i6 from "../field/field.component.module";
8
+ import * as i7 from "../icon/icon.component.module";
9
+ export declare class InlineFieldComponentModule {
10
+ static ɵfac: i0.ɵɵFactoryDeclaration<InlineFieldComponentModule, never>;
11
+ static ɵmod: i0.ɵɵNgModuleDeclaration<InlineFieldComponentModule, [typeof i1.InlineFieldComponent], [typeof i2.CommonModule, typeof i3.FormsModule, typeof i3.ReactiveFormsModule, typeof i4.MatInputModule, typeof i5.ButtonComponentModule, typeof i6.FieldComponentModule, typeof i7.IconComponentModule], [typeof i1.InlineFieldComponent]>;
12
+ static ɵinj: i0.ɵɵInjectorDeclaration<InlineFieldComponentModule>;
13
+ }
@@ -0,0 +1,107 @@
1
+ import { EventEmitter } from '@angular/core';
2
+ import { IconName } from '../icon/icon.model';
3
+ /**
4
+ * State of the inline field component
5
+ */
6
+ export type InlineFieldState = 'default' | 'focused' | 'editing' | 'error' | 'disabled' | 'loading';
7
+ /**
8
+ * Events emitted by the inline field component
9
+ */
10
+ export interface InlineFieldEvents {
11
+ /**
12
+ * Emitted when user clicks save button
13
+ */
14
+ onSave: EventEmitter<string>;
15
+ /**
16
+ * Emitted when user clicks cancel button
17
+ */
18
+ onCancel: EventEmitter<void>;
19
+ /**
20
+ * Emitted when the field value changes
21
+ */
22
+ onValueChange: EventEmitter<string>;
23
+ /**
24
+ * Emitted when editing mode is toggled
25
+ */
26
+ onEditingModeChange: EventEmitter<boolean>;
27
+ /**
28
+ * Emitted on focus events
29
+ */
30
+ onFocus: EventEmitter<void>;
31
+ /**
32
+ * Emitted on blur events
33
+ */
34
+ onBlur: EventEmitter<void>;
35
+ }
36
+ /**
37
+ * Configuration for save/cancel buttons
38
+ */
39
+ export interface InlineFieldButtonConfig {
40
+ /**
41
+ * Label for save button
42
+ * @default "Save"
43
+ */
44
+ saveLabel?: string;
45
+ /**
46
+ * Label for cancel button
47
+ * @default "Cancel"
48
+ */
49
+ cancelLabel?: string;
50
+ /**
51
+ * Icon for save button
52
+ * @default "Check-filled"
53
+ */
54
+ saveIcon?: IconName;
55
+ /**
56
+ * Icon for cancel button
57
+ * @default "Close-filled"
58
+ */
59
+ cancelIcon?: IconName;
60
+ /**
61
+ * Show buttons on hover only
62
+ * @default false
63
+ */
64
+ showOnHoverOnly?: boolean;
65
+ }
66
+ /**
67
+ * Validation configuration
68
+ */
69
+ export interface InlineFieldValidation {
70
+ /**
71
+ * Whether the field is required
72
+ */
73
+ required?: boolean;
74
+ /**
75
+ * Minimum length
76
+ */
77
+ minLength?: number;
78
+ /**
79
+ * Maximum length
80
+ */
81
+ maxLength?: number;
82
+ /**
83
+ * Custom validation pattern
84
+ */
85
+ pattern?: RegExp;
86
+ /**
87
+ * Custom validation function
88
+ */
89
+ customValidator?: (value: string) => boolean;
90
+ }
91
+ /**
92
+ * Interface for inline field change event
93
+ */
94
+ export interface InlineFieldChangeEvent {
95
+ /**
96
+ * The new value
97
+ */
98
+ value: string;
99
+ /**
100
+ * Whether the change was saved or cancelled
101
+ */
102
+ saved: boolean;
103
+ /**
104
+ * Previous value before the change
105
+ */
106
+ previousValue: string;
107
+ }
@@ -1,12 +1,12 @@
1
- import { EventEmitter, NgZone, OnInit, QueryList, TemplateRef } from '@angular/core';
1
+ import { EventEmitter, NgZone, OnInit, QueryList, SimpleChanges, TemplateRef, OnChanges, AfterViewInit } from '@angular/core';
2
2
  import { IconName } from '../icon/icon.model';
3
3
  import { MenuConfig, OverflowMenuButtonModify, OverflowMenuButtonsType } from './overflow-menu.model';
4
- import { ApplicationTheme } from "../../models/application-theme.model";
5
- import { MatMenu, MatMenuTrigger } from "@angular/material/menu";
6
- import { FocusMonitor } from "@angular/cdk/a11y";
7
4
  import { ButtonColor, ButtonSize } from '../button/button.model';
5
+ import { ApplicationTheme } from '../../models/application-theme.model';
6
+ import { MatMenu, MatMenuTrigger } from '@angular/material/menu';
7
+ import { FocusMonitor } from '@angular/cdk/a11y';
8
8
  import * as i0 from "@angular/core";
9
- export declare class OverflowMenuComponent implements OnInit {
9
+ export declare class OverflowMenuComponent implements OnInit, OnChanges, AfterViewInit {
10
10
  private readonly defaultAppTheme;
11
11
  private focusMonitor;
12
12
  private ngZone;
@@ -81,6 +81,7 @@ export declare class OverflowMenuComponent implements OnInit {
81
81
  */
82
82
  buttonSize: ButtonSize;
83
83
  menuConfig: MenuConfig;
84
+ isDynamicMenu: boolean;
84
85
  selectItem: EventEmitter<string>;
85
86
  menuOpened: EventEmitter<void>;
86
87
  menuClosed: EventEmitter<void>;
@@ -95,6 +96,7 @@ export declare class OverflowMenuComponent implements OnInit {
95
96
  get menuItemHasHovered(): boolean;
96
97
  constructor(defaultAppTheme: ApplicationTheme, focusMonitor: FocusMonitor, ngZone: NgZone);
97
98
  ngOnInit(): void;
99
+ ngOnChanges(changes: SimpleChanges): void;
98
100
  ngAfterViewInit(): void;
99
101
  onSelectItem(event: Event, value: string): void;
100
102
  onMenuOpened(): void;
@@ -106,7 +108,8 @@ export declare class OverflowMenuComponent implements OnInit {
106
108
  onButtonHover(button: OverflowMenuButtonModify, state: boolean): void;
107
109
  getMenu(index: any): MatMenu | null;
108
110
  private reindex;
111
+ private resetSubmenus;
109
112
  private createSubmenus;
110
113
  static ɵfac: i0.ɵɵFactoryDeclaration<OverflowMenuComponent, [{ optional: true; }, null, null]>;
111
- static ɵcmp: i0.ɵɵComponentDeclaration<OverflowMenuComponent, "ui-overflow-menu", never, { "buttons": { "alias": "buttons"; "required": false; }; "iconTrigger": { "alias": "iconTrigger"; "required": false; }; "menuLabel": { "alias": "menuLabel"; "required": false; }; "applicationTheme": { "alias": "applicationTheme"; "required": false; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; }; "ariaRequired": { "alias": "ariaRequired"; "required": false; }; "describedby": { "alias": "describedby"; "required": false; }; "contentTemplateRef": { "alias": "contentTemplateRef"; "required": false; }; "buttonVariant": { "alias": "buttonVariant"; "required": false; }; "buttonSize": { "alias": "buttonSize"; "required": false; }; "menuConfig": { "alias": "menuConfig"; "required": false; }; }, { "selectItem": "selectItem"; "menuOpened": "menuOpened"; "menuClosed": "menuClosed"; }, never, ["[menu-content]"], false, never>;
114
+ static ɵcmp: i0.ɵɵComponentDeclaration<OverflowMenuComponent, "ui-overflow-menu", never, { "buttons": { "alias": "buttons"; "required": false; }; "iconTrigger": { "alias": "iconTrigger"; "required": false; }; "menuLabel": { "alias": "menuLabel"; "required": false; }; "applicationTheme": { "alias": "applicationTheme"; "required": false; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; }; "ariaRequired": { "alias": "ariaRequired"; "required": false; }; "describedby": { "alias": "describedby"; "required": false; }; "contentTemplateRef": { "alias": "contentTemplateRef"; "required": false; }; "buttonVariant": { "alias": "buttonVariant"; "required": false; }; "buttonSize": { "alias": "buttonSize"; "required": false; }; "menuConfig": { "alias": "menuConfig"; "required": false; }; "isDynamicMenu": { "alias": "isDynamicMenu"; "required": false; }; }, { "selectItem": "selectItem"; "menuOpened": "menuOpened"; "menuClosed": "menuClosed"; }, never, ["[menu-content]"], false, never>;
112
115
  }
@@ -1,6 +1,6 @@
1
1
  import { IconName } from '../icon/icon.model';
2
2
  import { TemplateRef } from '@angular/core';
3
- import { MenuPositionX, MenuPositionY } from "@angular/material/menu";
3
+ import { MenuPositionX, MenuPositionY } from '@angular/material/menu';
4
4
  export type OverflowMenuButtonsType = {
5
5
  icon: IconName;
6
6
  label: string;
@@ -12,6 +12,7 @@ export type OverflowMenuButtonsType = {
12
12
  action?: number | string;
13
13
  describedby?: string;
14
14
  ariaLabel?: string;
15
+ tooltipText?: string;
15
16
  };
16
17
  type ButtonOptions = {
17
18
  isTextEllipsed?: boolean;