@smartbit4all/ng-client 6.0.8 → 6.0.10

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 (73) hide show
  1. package/esm2022/lib/session/smart-backend-bootstrap.config.mjs +1 -1
  2. package/esm2022/lib/session/smart-backend-bootstrap.service.mjs +7 -4
  3. package/esm2022/lib/session/smart-error-catching.interceptor.mjs +3 -3
  4. package/esm2022/lib/session/smart-session.service.mjs +48 -23
  5. package/esm2022/lib/smart-generic-pages/search-page/search-page.component.mjs +3 -3
  6. package/esm2022/lib/smart-tree/smarttree.component.mjs +3 -3
  7. package/esm2022/lib/theme/theme.service.mjs +48 -0
  8. package/esm2022/lib/view-context/api/api/view.service.mjs +211 -1
  9. package/esm2022/lib/view-context/api/api-default/binaryContentData.mjs +2 -0
  10. package/esm2022/lib/view-context/api/model/deviceInfo.mjs +1 -1
  11. package/esm2022/lib/view-context/api/model/iconPosition.mjs +1 -1
  12. package/esm2022/lib/view-context/api/model/menuTriggerType.mjs +17 -0
  13. package/esm2022/lib/view-context/api/model/models.mjs +7 -1
  14. package/esm2022/lib/view-context/api/model/namedValidator.mjs +1 -1
  15. package/esm2022/lib/view-context/api/model/publishedViewData.mjs +13 -0
  16. package/esm2022/lib/view-context/api/model/shellProperty.mjs +13 -0
  17. package/esm2022/lib/view-context/api/model/smartLinkData.mjs +1 -1
  18. package/esm2022/lib/view-context/api/model/themeDefinition.mjs +2 -0
  19. package/esm2022/lib/view-context/api/model/themeDescriptor.mjs +2 -0
  20. package/esm2022/lib/view-context/api/model/themeShellDescriptor.mjs +2 -0
  21. package/esm2022/lib/view-context/api/model/uiAction.mjs +1 -1
  22. package/esm2022/lib/view-context/api/model/uiActionDefinition.mjs +1 -1
  23. package/esm2022/lib/view-context/api/model/uiActionDefinitionEntry.mjs +1 -1
  24. package/esm2022/lib/view-context/api/model/uiActionDescriptor.mjs +1 -1
  25. package/esm2022/lib/view-context/api/model/uiActionInputType.mjs +1 -1
  26. package/esm2022/lib/view-context/api/model/uiActionSchedule.mjs +1 -1
  27. package/esm2022/lib/view-context/api/model/uiActionUploadDescriptor.mjs +1 -1
  28. package/esm2022/lib/view-context/api/model/view.mjs +1 -1
  29. package/esm2022/lib/view-context/api/model/viewData.mjs +1 -1
  30. package/esm2022/lib/view-context/api/model/viewEventHandler.mjs +1 -1
  31. package/esm2022/lib/view-context/projects.mjs +3 -2
  32. package/esm2022/lib/view-context/smart-ui-action/components/menu/click/menu.component.mjs +205 -0
  33. package/esm2022/lib/view-context/smart-ui-action/components/menu/hover/hover-menu.component.mjs +205 -0
  34. package/esm2022/lib/view-context/smart-ui-action/components/theme-selector/theme-selector.component.mjs +35 -0
  35. package/esm2022/lib/view-context/smart-ui-action/file-editor-toolbar/file-editor-toolbar.component.mjs +6 -4
  36. package/esm2022/lib/view-context/smart-ui-action/ui-action-button/ui-action-button.component.mjs +18 -10
  37. package/esm2022/lib/view-context/smart-ui-action/ui-action-toolbar.component.mjs +10 -7
  38. package/esm2022/lib/view-context/smart-ui-action/ui-action.service.mjs +13 -3
  39. package/esm2022/lib/view-context/smart-view-context.module.mjs +13 -7
  40. package/esm2022/lib/view-context/smart-view-context.service.mjs +14 -5
  41. package/esm2022/projects.mjs +2 -1
  42. package/fesm2022/smartbit4all-ng-client.mjs +895 -313
  43. package/fesm2022/smartbit4all-ng-client.mjs.map +1 -1
  44. package/lib/session/smart-backend-bootstrap.config.d.ts +9 -1
  45. package/lib/session/smart-backend-bootstrap.service.d.ts +3 -1
  46. package/lib/session/smart-error-catching.interceptor.d.ts +2 -1
  47. package/lib/session/smart-session.service.d.ts +18 -1
  48. package/lib/theme/theme.service.d.ts +17 -0
  49. package/lib/view-context/api/api/view.service.d.ts +94 -0
  50. package/lib/view-context/api/api-default/binaryContentData.d.ts +2 -0
  51. package/lib/view-context/api/model/deviceInfo.d.ts +1 -0
  52. package/lib/view-context/api/model/menuTriggerType.d.ts +15 -0
  53. package/lib/view-context/api/model/models.d.ts +6 -0
  54. package/lib/view-context/api/model/publishedViewData.d.ts +14 -0
  55. package/lib/view-context/api/model/shellProperty.d.ts +15 -0
  56. package/lib/view-context/api/model/themeDefinition.d.ts +22 -0
  57. package/lib/view-context/api/model/themeDescriptor.d.ts +16 -0
  58. package/lib/view-context/api/model/themeShellDescriptor.d.ts +17 -0
  59. package/lib/view-context/api/model/uiActionDescriptor.d.ts +2 -0
  60. package/lib/view-context/projects.d.ts +2 -1
  61. package/lib/view-context/smart-ui-action/components/menu/{menu.component.d.ts → click/menu.component.d.ts} +8 -7
  62. package/lib/view-context/smart-ui-action/components/menu/hover/hover-menu.component.d.ts +43 -0
  63. package/lib/view-context/smart-ui-action/components/theme-selector/theme-selector.component.d.ts +16 -0
  64. package/lib/view-context/smart-ui-action/ui-action-button/ui-action-button.component.d.ts +1 -0
  65. package/lib/view-context/smart-ui-action/ui-action-toolbar.component.d.ts +2 -1
  66. package/lib/view-context/smart-ui-action/ui-action.service.d.ts +3 -1
  67. package/lib/view-context/smart-view-context.module.d.ts +56 -54
  68. package/lib/view-context/smart-view-context.service.d.ts +4 -2
  69. package/package.json +1 -1
  70. package/projects.d.ts +1 -0
  71. package/smartbit4all-ng-client-6.0.10.tgz +0 -0
  72. package/esm2022/lib/view-context/smart-ui-action/components/menu/menu.component.mjs +0 -199
  73. package/smartbit4all-ng-client-6.0.8.tgz +0 -0
@@ -1,5 +1,5 @@
1
1
  import { HttpErrorResponse } from '@angular/common/http';
2
- import { UiActionDescriptor } from '../view-context/api';
2
+ import { UiActionDescriptor, UiActionRequest } from '../view-context/api';
3
3
  import { SmartViewHandlerModel } from '../view-context/smart-view-context.model';
4
4
  import { SessionError } from './smart-session-handler.service';
5
5
  /**
@@ -62,4 +62,12 @@ export interface SmartBackendBootstrapConfig {
62
62
  * tear down the webview and return to the native login page.
63
63
  */
64
64
  onViewContextLost?: (err: SessionError) => Promise<void> | void;
65
+ /**
66
+ * Hook called when an action is rejected by the server by returning a 4xx status code.
67
+ *
68
+ * @param req the UiActionRequest attempted to be executed
69
+ * @param err the error the server responded with
70
+ * @returns
71
+ */
72
+ onActionError?: (req: UiActionRequest, err: any) => void;
65
73
  }
@@ -3,6 +3,7 @@ import { SmartSessionService } from './smart-session.service';
3
3
  import { SmartViewContextService } from '../view-context/smart-view-context.service';
4
4
  import { SessionError, SmartSessionHandlerService } from './smart-session-handler.service';
5
5
  import { SmartBackendBootstrapConfig, SmartBackendBootstrapCredentials } from './smart-backend-bootstrap.config';
6
+ import { UiActionService } from '../view-context/smart-ui-action/ui-action.service';
6
7
  import * as i0 from "@angular/core";
7
8
  /**
8
9
  * Thrown by `whenReady()` when the viewcontext was rebuilt between the
@@ -18,13 +19,14 @@ export declare class ViewContextRebuiltError extends Error {
18
19
  export declare class SmartBackendBootstrapService implements SmartSessionHandlerService {
19
20
  private session;
20
21
  private viewContext;
22
+ private uiActionService;
21
23
  private config?;
22
24
  private runningInit?;
23
25
  private lastInitFailed;
24
26
  private mode?;
25
27
  private runningViewContextLost?;
26
28
  private runningSessionError?;
27
- constructor(session: SmartSessionService, viewContext: SmartViewContextService);
29
+ constructor(session: SmartSessionService, viewContext: SmartViewContextService, uiActionService: UiActionService);
28
30
  configure(config: SmartBackendBootstrapConfig): void;
29
31
  private handleSmartLink;
30
32
  start(): Promise<void>;
@@ -1,6 +1,7 @@
1
1
  import { HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from '@angular/common/http';
2
2
  import { Observable } from 'rxjs';
3
- import { SessionError, SmartSessionService } from './projects';
3
+ import { SessionError } from './smart-session-handler.service';
4
+ import { SmartSessionService } from './smart-session.service';
4
5
  import { SmartBackendBootstrapService } from './smart-backend-bootstrap.service';
5
6
  import * as i0 from "@angular/core";
6
7
  export declare class SmartErrorCatchingInterceptor implements HttpInterceptor {
@@ -58,8 +58,25 @@ export declare class SmartSessionService implements OnDestroy {
58
58
  getSession(): Promise<SessionInfoData>;
59
59
  refreshSession(): Promise<SessionInfoData>;
60
60
  private doRefreshSession;
61
+ /**
62
+ * Runs the standard session-restart handling for a refresh that finished
63
+ * without an error HTTP response (no refresh token, or an empty refresh
64
+ * result), then throws a failure shaped like the backend's rejected refresh.
65
+ *
66
+ * Only the paths that do NOT produce an error HTTP response come here: a
67
+ * refresh call that fails with a session error is already handled by the
68
+ * SmartErrorCatchingInterceptor, so routing it through here too would invoke
69
+ * handleSessionError a second time.
70
+ */
71
+ private failRefresh;
72
+ /**
73
+ * Builds a failure shaped exactly like the backend's rejected-refresh
74
+ * response (HTTP 400 + ApiError.code === 'session.refreshtoken.invalid'), so a
75
+ * failed/impossible refresh surfaces like any other invalid refresh token
76
+ * instead of producing a fresh session as a refresh side effect.
77
+ */
78
+ private createRefreshFailedError;
61
79
  private updateSessionInfo;
62
- private isInvalidRefreshTokenError;
63
80
  getAuthenticationProviders(): Promise<Array<AuthenticationProviderData>>;
64
81
  getIsAuthenticated(): Promise<boolean>;
65
82
  is2FANecessary(): Promise<boolean>;
@@ -0,0 +1,17 @@
1
+ import { Observable } from 'rxjs';
2
+ import { ViewService } from '../view-context/api/api/api';
3
+ import { ThemeDescriptor } from '../view-context/api';
4
+ import * as i0 from "@angular/core";
5
+ export declare class ThemeService {
6
+ private viewService;
7
+ private _currentTheme;
8
+ currentTheme: import("@angular/core").Signal<string>;
9
+ private themes;
10
+ constructor(viewService: ViewService);
11
+ setTheme(themeDescriptor: ThemeDescriptor): void;
12
+ getThemes(): Observable<ThemeDescriptor[]>;
13
+ getSelectedTheme(): Promise<ThemeDescriptor>;
14
+ getSystemTheme(): string;
15
+ static ɵfac: i0.ɵɵFactoryDeclaration<ThemeService, never>;
16
+ static ɵprov: i0.ɵɵInjectableDeclaration<ThemeService>;
17
+ }
@@ -3,6 +3,10 @@ import { Observable } from 'rxjs';
3
3
  import { ComponentModel } from '../model/componentModel';
4
4
  import { DataChange } from '../model/dataChange';
5
5
  import { MessageResult } from '../model/messageResult';
6
+ import { PublishedViewData } from '../model/publishedViewData';
7
+ import { ThemeDefinition } from '../model/themeDefinition';
8
+ import { ThemeDescriptor } from '../model/themeDescriptor';
9
+ import { ThemeShellDescriptor } from '../model/themeShellDescriptor';
6
10
  import { UiActionRequest } from '../model/uiActionRequest';
7
11
  import { ViewConstraint } from '../model/viewConstraint';
8
12
  import { ViewContextChange } from '../model/viewContextChange';
@@ -96,6 +100,24 @@ export declare class ViewService {
96
100
  httpHeaderAccept?: 'application/octet-stream';
97
101
  context?: HttpContext;
98
102
  }): Observable<HttpEvent<Blob>>;
103
+ /**
104
+ * Get Android theme descriptor by name
105
+ * @param name
106
+ * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
107
+ * @param reportProgress flag to report request and response progress.
108
+ */
109
+ getAndroidTheme(name: string, observe?: 'body', reportProgress?: boolean, options?: {
110
+ httpHeaderAccept?: 'application/json';
111
+ context?: HttpContext;
112
+ }): Observable<ThemeShellDescriptor>;
113
+ getAndroidTheme(name: string, observe?: 'response', reportProgress?: boolean, options?: {
114
+ httpHeaderAccept?: 'application/json';
115
+ context?: HttpContext;
116
+ }): Observable<HttpResponse<ThemeShellDescriptor>>;
117
+ getAndroidTheme(name: string, observe?: 'events', reportProgress?: boolean, options?: {
118
+ httpHeaderAccept?: 'application/json';
119
+ context?: HttpContext;
120
+ }): Observable<HttpEvent<ThemeShellDescriptor>>;
99
121
  /**
100
122
  * Returns component\&#39;s model.
101
123
  * @param uuid Component\&#39;s unique identifier.
@@ -132,6 +154,78 @@ export declare class ViewService {
132
154
  httpHeaderAccept?: 'application/json';
133
155
  context?: HttpContext;
134
156
  }): Observable<HttpEvent<ViewContextChange>>;
157
+ /**
158
+ * Get iOS theme descriptor by name
159
+ * @param name
160
+ * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
161
+ * @param reportProgress flag to report request and response progress.
162
+ */
163
+ getIosTheme(name: string, observe?: 'body', reportProgress?: boolean, options?: {
164
+ httpHeaderAccept?: 'application/json';
165
+ context?: HttpContext;
166
+ }): Observable<ThemeShellDescriptor>;
167
+ getIosTheme(name: string, observe?: 'response', reportProgress?: boolean, options?: {
168
+ httpHeaderAccept?: 'application/json';
169
+ context?: HttpContext;
170
+ }): Observable<HttpResponse<ThemeShellDescriptor>>;
171
+ getIosTheme(name: string, observe?: 'events', reportProgress?: boolean, options?: {
172
+ httpHeaderAccept?: 'application/json';
173
+ context?: HttpContext;
174
+ }): Observable<HttpEvent<ThemeShellDescriptor>>;
175
+ /**
176
+ * Get Published View Data
177
+ * @param channel Smartlink\&#39;s channel.
178
+ * @param uuid Smartlink\&#39;s unique identifier. Not a UUID anymore.
179
+ * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
180
+ * @param reportProgress flag to report request and response progress.
181
+ */
182
+ getPublishedViewData(channel: string, uuid: string, observe?: 'body', reportProgress?: boolean, options?: {
183
+ httpHeaderAccept?: 'application/json';
184
+ context?: HttpContext;
185
+ }): Observable<PublishedViewData>;
186
+ getPublishedViewData(channel: string, uuid: string, observe?: 'response', reportProgress?: boolean, options?: {
187
+ httpHeaderAccept?: 'application/json';
188
+ context?: HttpContext;
189
+ }): Observable<HttpResponse<PublishedViewData>>;
190
+ getPublishedViewData(channel: string, uuid: string, observe?: 'events', reportProgress?: boolean, options?: {
191
+ httpHeaderAccept?: 'application/json';
192
+ context?: HttpContext;
193
+ }): Observable<HttpEvent<PublishedViewData>>;
194
+ /**
195
+ * Get theme descriptor by name
196
+ * @param name
197
+ * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
198
+ * @param reportProgress flag to report request and response progress.
199
+ */
200
+ getTheme(name: string, observe?: 'body', reportProgress?: boolean, options?: {
201
+ httpHeaderAccept?: 'application/json';
202
+ context?: HttpContext;
203
+ }): Observable<ThemeDefinition>;
204
+ getTheme(name: string, observe?: 'response', reportProgress?: boolean, options?: {
205
+ httpHeaderAccept?: 'application/json';
206
+ context?: HttpContext;
207
+ }): Observable<HttpResponse<ThemeDefinition>>;
208
+ getTheme(name: string, observe?: 'events', reportProgress?: boolean, options?: {
209
+ httpHeaderAccept?: 'application/json';
210
+ context?: HttpContext;
211
+ }): Observable<HttpEvent<ThemeDefinition>>;
212
+ /**
213
+ * Get all available themes
214
+ * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
215
+ * @param reportProgress flag to report request and response progress.
216
+ */
217
+ getThemes(observe?: 'body', reportProgress?: boolean, options?: {
218
+ httpHeaderAccept?: 'application/json';
219
+ context?: HttpContext;
220
+ }): Observable<Array<ThemeDescriptor>>;
221
+ getThemes(observe?: 'response', reportProgress?: boolean, options?: {
222
+ httpHeaderAccept?: 'application/json';
223
+ context?: HttpContext;
224
+ }): Observable<HttpResponse<Array<ThemeDescriptor>>>;
225
+ getThemes(observe?: 'events', reportProgress?: boolean, options?: {
226
+ httpHeaderAccept?: 'application/json';
227
+ context?: HttpContext;
228
+ }): Observable<HttpEvent<Array<ThemeDescriptor>>>;
135
229
  /**
136
230
  * Returns the view constraint object belongs to the given view
137
231
  * @param uuid View\&#39;s unique identifier.
@@ -0,0 +1,2 @@
1
+ export interface BinaryContentData {
2
+ }
@@ -33,6 +33,7 @@ export interface DeviceInfo {
33
33
  * The component library of the client (Material, PrimeNg).
34
34
  */
35
35
  componentLibrary?: string;
36
+ themeName?: string;
36
37
  /**
37
38
  * Any additional parameters that the client may share with the server.
38
39
  */
@@ -0,0 +1,15 @@
1
+ /**
2
+ * View API
3
+ * View API
4
+ *
5
+ * The version of the OpenAPI document: 1.0.0
6
+ * Contact: info@it4all.hu
7
+ *
8
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
9
+ * https://openapi-generator.tech
10
+ * Do not edit the class manually.
11
+ */
12
+ export declare enum MenuTriggerType {
13
+ CLICK = "CLICK",
14
+ HOVER = "HOVER"
15
+ }
@@ -13,6 +13,7 @@ export * from './downloadedFile';
13
13
  export * from './iconPosition';
14
14
  export * from './imageResource';
15
15
  export * from './link';
16
+ export * from './menuTriggerType';
16
17
  export * from './messageData';
17
18
  export * from './messageOption';
18
19
  export * from './messageOptionType';
@@ -23,13 +24,18 @@ export * from './multiComboBoxElement';
23
24
  export * from './multiComboBoxModel';
24
25
  export * from './namedValidator';
25
26
  export * from './openPendingData';
27
+ export * from './publishedViewData';
26
28
  export * from './serverRequestExecutionStat';
27
29
  export * from './serverRequestTrack';
28
30
  export * from './serverRequestType';
31
+ export * from './shellProperty';
29
32
  export * from './smartLinkData';
30
33
  export * from './smartLinkMigrationStatus';
31
34
  export * from './statisticRecord';
32
35
  export * from './style';
36
+ export * from './themeDefinition';
37
+ export * from './themeDescriptor';
38
+ export * from './themeShellDescriptor';
33
39
  export * from './uiAction';
34
40
  export * from './uiActionButtonDescriptor';
35
41
  export * from './uiActionButtonType';
@@ -0,0 +1,14 @@
1
+ /**
2
+ * View API
3
+ * View API
4
+ *
5
+ * The version of the OpenAPI document: 1.0.0
6
+ * Contact: info@it4all.hu
7
+ *
8
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
9
+ * https://openapi-generator.tech
10
+ * Do not edit the class manually.
11
+ */
12
+ export interface PublishedViewData {
13
+ isPublic?: boolean;
14
+ }
@@ -0,0 +1,15 @@
1
+ /**
2
+ * View API
3
+ * View API
4
+ *
5
+ * The version of the OpenAPI document: 1.0.0
6
+ * Contact: info@it4all.hu
7
+ *
8
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
9
+ * https://openapi-generator.tech
10
+ * Do not edit the class manually.
11
+ */
12
+ export interface ShellProperty {
13
+ propertyName?: string;
14
+ propertyValue?: string;
15
+ }
@@ -0,0 +1,22 @@
1
+ /**
2
+ * View API
3
+ * View API
4
+ *
5
+ * The version of the OpenAPI document: 1.0.0
6
+ * Contact: info@it4all.hu
7
+ *
8
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
9
+ * https://openapi-generator.tech
10
+ * Do not edit the class manually.
11
+ */
12
+ import { BinaryContentData } from '../api-default/binaryContentData';
13
+ import { ShellProperty } from './shellProperty';
14
+ export interface ThemeDefinition {
15
+ uri?: string;
16
+ name?: string;
17
+ appTitle?: string;
18
+ css?: BinaryContentData;
19
+ favicon?: BinaryContentData;
20
+ iosProperties?: Array<ShellProperty>;
21
+ androidProperties?: Array<ShellProperty>;
22
+ }
@@ -0,0 +1,16 @@
1
+ /**
2
+ * View API
3
+ * View API
4
+ *
5
+ * The version of the OpenAPI document: 1.0.0
6
+ * Contact: info@it4all.hu
7
+ *
8
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
9
+ * https://openapi-generator.tech
10
+ * Do not edit the class manually.
11
+ */
12
+ import { UiActionDescriptor } from './uiActionDescriptor';
13
+ export interface ThemeDescriptor {
14
+ name?: string;
15
+ descriptor?: UiActionDescriptor;
16
+ }
@@ -0,0 +1,17 @@
1
+ /**
2
+ * View API
3
+ * View API
4
+ *
5
+ * The version of the OpenAPI document: 1.0.0
6
+ * Contact: info@it4all.hu
7
+ *
8
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
9
+ * https://openapi-generator.tech
10
+ * Do not edit the class manually.
11
+ */
12
+ import { ShellProperty } from './shellProperty';
13
+ export interface ThemeShellDescriptor {
14
+ name?: string;
15
+ shellType?: string;
16
+ properties?: Array<ShellProperty>;
17
+ }
@@ -11,6 +11,7 @@
11
11
  */
12
12
  import { UiActionTooltip } from './uiActionTooltip';
13
13
  import { ImageResource } from './imageResource';
14
+ import { MenuTriggerType } from './menuTriggerType';
14
15
  import { IconPosition } from './iconPosition';
15
16
  import { BadgeDescriptor } from './badgeDescriptor';
16
17
  import { Style } from './style';
@@ -39,4 +40,5 @@ export interface UiActionDescriptor {
39
40
  upload?: UiActionUploadDescriptor;
40
41
  tooltip?: UiActionTooltip;
41
42
  style?: Style;
43
+ menuTriggerType?: MenuTriggerType;
42
44
  }
@@ -15,7 +15,8 @@ export * from './smart-ui-action/dialogs/ui-action-input-dialog/ui-action-input-
15
15
  export * from './smart-ui-action/dialogs/ui-action-dialog-button/ui-action-dialog-button.component';
16
16
  export * from './utility/componentLibrary';
17
17
  export * from './smart-ui-action/ui-action-button/ui-action-button.component';
18
- export * from './smart-ui-action/components/menu/menu.component';
18
+ export * from './smart-ui-action/components/menu/click/menu.component';
19
+ export * from './smart-ui-action/components/menu/hover/hover-menu.component';
19
20
  export * from './smart-ui-action/components/upload-widget/upload-widget.component';
20
21
  export * from './smart-ui-action/components/upload-widget/photo-capture-widget/photo-capture-widget.component';
21
22
  export * from './smart-ui-action/components/upload-widget/voice-record-widget/voice-record-widget.component';
@@ -1,16 +1,16 @@
1
1
  import { EventEmitter, QueryList, SimpleChanges, TemplateRef, ViewContainerRef, AfterViewChecked } from '@angular/core';
2
- import { UiAction } from '../../../api';
3
- import { UiMenuService } from './menu.service';
4
- import { ComponentLibrary } from '../../../utility/componentLibrary';
5
2
  import { Overlay, OverlayPositionBuilder, OverlayRef } from '@angular/cdk/overlay';
3
+ import { UiAction } from '../../../../api';
4
+ import { UiMenuService } from '../menu.service';
5
+ import { ComponentLibrary } from '../../../../utility/componentLibrary';
6
6
  import * as i0 from "@angular/core";
7
- export declare class MenuComponent implements AfterViewChecked {
7
+ export declare class ClickMenuComponent implements AfterViewChecked {
8
8
  private menuService;
9
9
  private overlay;
10
10
  private viewContainerRef;
11
11
  private overlayPositionBuilder;
12
12
  compLib?: ComponentLibrary | undefined;
13
- submenuComponents: QueryList<MenuComponent>;
13
+ submenuComponents: QueryList<ClickMenuComponent>;
14
14
  menuTemplate: TemplateRef<any>;
15
15
  overlayRef: OverlayRef | null;
16
16
  triggerAction: UiAction;
@@ -37,6 +37,7 @@ export declare class MenuComponent implements AfterViewChecked {
37
37
  openMenu(event: MouseEvent): void;
38
38
  toggleMenu(event: MouseEvent): void;
39
39
  onSubmenuOpened(openedAction: UiAction): void;
40
- static ɵfac: i0.ɵɵFactoryDeclaration<MenuComponent, [null, null, null, null, { optional: true; }]>;
41
- static ɵcmp: i0.ɵɵComponentDeclaration<MenuComponent, "ui-tiered-menu", never, { "triggerAction": { "alias": "triggerAction"; "required": false; }; "isSubmenu": { "alias": "isSubmenu"; "required": false; }; }, { "actionClick": "actionClick"; "submenuOpened": "submenuOpened"; }, never, never, false, never>;
40
+ closeSiblingSubmenus(exceptAction: UiAction): void;
41
+ static ɵfac: i0.ɵɵFactoryDeclaration<ClickMenuComponent, [null, null, null, null, { optional: true; }]>;
42
+ static ɵcmp: i0.ɵɵComponentDeclaration<ClickMenuComponent, "ui-tiered-menu", never, { "triggerAction": { "alias": "triggerAction"; "required": false; }; "isSubmenu": { "alias": "isSubmenu"; "required": false; }; }, { "actionClick": "actionClick"; "submenuOpened": "submenuOpened"; }, never, never, false, never>;
42
43
  }
@@ -0,0 +1,43 @@
1
+ import { AfterViewChecked, EventEmitter, OnDestroy, OnInit, QueryList, SimpleChanges, TemplateRef, ViewContainerRef } from '@angular/core';
2
+ import { Overlay, OverlayPositionBuilder, OverlayRef } from '@angular/cdk/overlay';
3
+ import { UiAction } from '../../../../api';
4
+ import { UiMenuService } from '../menu.service';
5
+ import { ComponentLibrary } from '../../../../utility/componentLibrary';
6
+ import * as i0 from "@angular/core";
7
+ export declare class HoverMenuComponent implements OnInit, AfterViewChecked, OnDestroy {
8
+ private menuService;
9
+ private overlay;
10
+ private viewContainerRef;
11
+ private overlayPositionBuilder;
12
+ compLib?: ComponentLibrary | undefined;
13
+ submenuComponents: QueryList<HoverMenuComponent>;
14
+ menuTemplate: TemplateRef<any>;
15
+ overlayRef: OverlayRef | null;
16
+ triggerAction: UiAction;
17
+ isSubmenu: boolean;
18
+ actionClick: EventEmitter<UiAction>;
19
+ submenuOpened: EventEmitter<UiAction>;
20
+ private destroy$;
21
+ icon: string;
22
+ submenuOpenMap: Map<UiAction, boolean>;
23
+ subActions: UiAction[];
24
+ private hasCheckedChildren;
25
+ constructor(menuService: UiMenuService, overlay: Overlay, viewContainerRef: ViewContainerRef, overlayPositionBuilder: OverlayPositionBuilder, compLib?: ComponentLibrary | undefined);
26
+ ngOnInit(): void;
27
+ ngAfterViewChecked(): void;
28
+ ngOnChanges(changes: SimpleChanges): void;
29
+ private hasSubActionsChanged;
30
+ ngOnDestroy(): void;
31
+ onActionClick(action: UiAction): void;
32
+ onMenuClick(event: Event): void;
33
+ onDocumentClick(event: Event): void;
34
+ get isOpen(): boolean;
35
+ closeMenu(): void;
36
+ refreshOverlay(): void;
37
+ openMenu(event: MouseEvent): void;
38
+ toggleMenu(event: MouseEvent): void;
39
+ onSubmenuOpened(openedAction: UiAction): void;
40
+ closeSiblingSubmenus(exceptAction: UiAction): void;
41
+ static ɵfac: i0.ɵɵFactoryDeclaration<HoverMenuComponent, [null, null, null, null, { optional: true; }]>;
42
+ static ɵcmp: i0.ɵɵComponentDeclaration<HoverMenuComponent, "ui-hover-menu", never, { "triggerAction": { "alias": "triggerAction"; "required": false; }; "isSubmenu": { "alias": "isSubmenu"; "required": false; }; }, { "actionClick": "actionClick"; "submenuOpened": "submenuOpened"; }, never, never, false, never>;
43
+ }
@@ -0,0 +1,16 @@
1
+ import { ThemeDescriptor, UiAction } from '../../../api';
2
+ import { UiActionModel } from '../../ui-action.model';
3
+ import { ThemeService } from '../../../../theme/theme.service';
4
+ import * as i0 from "@angular/core";
5
+ export declare class ThemeSelectorComponent {
6
+ private themeService;
7
+ model: import("@angular/core").InputSignal<UiActionModel>;
8
+ action: import("@angular/core").Signal<UiAction | undefined>;
9
+ themeDescriptor?: ThemeDescriptor;
10
+ themes: ThemeDescriptor[];
11
+ constructor(themeService: ThemeService);
12
+ ngOnInit(): void;
13
+ onActionClicked(event: any, themeDescriptor: ThemeDescriptor): Promise<void>;
14
+ static ɵfac: i0.ɵɵFactoryDeclaration<ThemeSelectorComponent, never>;
15
+ static ɵcmp: i0.ɵɵComponentDeclaration<ThemeSelectorComponent, "theme-selector", never, { "model": { "alias": "model"; "required": true; "isSignal": true; }; }, {}, never, never, false, never>;
16
+ }
@@ -31,6 +31,7 @@ export declare class UiActionButtonComponent implements OnInit, OnDestroy {
31
31
  constructor(changeDetector: ChangeDetectorRef, compLib?: ComponentLibrary);
32
32
  ngOnInit(): void;
33
33
  ngOnChanges(changes: SimpleChanges): void;
34
+ private buildMainActionModel;
34
35
  ngOnDestroy(): void;
35
36
  onActionClicked(event: MouseEvent, model: UiActionModel): Promise<void>;
36
37
  onActionDoubleClicked(event: any): void;
@@ -1,6 +1,6 @@
1
1
  import { ChangeDetectorRef, ElementRef, Injector, OnChanges, OnDestroy, OnInit, SimpleChanges } from '@angular/core';
2
2
  import { TooltipPosition } from '@angular/material/tooltip';
3
- import { IconPosition, UiActionDescriptor, UiActionTooltipTooltipPositionEnum } from '../api';
3
+ import { IconPosition, MenuTriggerType, UiActionDescriptor, UiActionTooltipTooltipPositionEnum } from '../api';
4
4
  import { UiActionDescriptorService } from './ui-action.descriptor.service';
5
5
  import { UiActionModel } from './ui-action.model';
6
6
  import { UiActionService } from './ui-action.service';
@@ -15,6 +15,7 @@ export declare class UiActionToolbarComponent implements OnInit, OnChanges, OnDe
15
15
  containerRef: ElementRef;
16
16
  private _destroy$;
17
17
  componentLibrary: typeof ComponentLibrary;
18
+ triggerType: typeof MenuTriggerType;
18
19
  pressedButtonActive: boolean;
19
20
  uiActionModels?: UiActionModel[];
20
21
  uiActionDescriptorService?: UiActionDescriptorService;
@@ -1,6 +1,6 @@
1
1
  import { OnDestroy } from '@angular/core';
2
2
  import { MatSnackBar } from '@angular/material/snack-bar';
3
- import { UiAction } from '../api';
3
+ import { UiAction, UiActionRequest } from '../api';
4
4
  import type { UiActionConfirmDialogService } from './dialogs/ui-action-confirm-dialog/ui-action-confirm-dialog.service';
5
5
  import type { UiActionInputDialogService } from './dialogs/ui-action-input-dialog/ui-action-input-dialog.service';
6
6
  import { UiActionModel } from './ui-action.model';
@@ -25,8 +25,10 @@ export declare class UiActionService implements OnDestroy {
25
25
  private _snackBar;
26
26
  private viewContext;
27
27
  private _destroy$;
28
+ private onActionError;
28
29
  constructor(confirmDialogService: UiActionConfirmDialogService, textFieldDialogService: UiActionInputDialogService, fileUploadDialogService: UiActionFileUploadDialogService, _snackBar: MatSnackBar, viewContext: SmartViewContextService);
29
30
  ngOnDestroy(): void;
31
+ setActionErrorHandler(f: (uiActionRequest: UiActionRequest, err: any) => void): void;
30
32
  execute(uiAction: UiAction, uiActionModel: UiActionModel, options?: ExecuteUiActionOptions): Promise<void>;
31
33
  private handleInputType;
32
34
  private handleInputTypeTextField;