@smartbit4all/ng-client 1.0.0

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 (202) hide show
  1. package/README.md +386 -0
  2. package/esm2020/lib/session/api/api/api.mjs +4 -0
  3. package/esm2020/lib/session/api/api/session.service.mjs +306 -0
  4. package/esm2020/lib/session/api/configuration.mjs +91 -0
  5. package/esm2020/lib/session/api/encoder.mjs +19 -0
  6. package/esm2020/lib/session/api/index.mjs +3 -0
  7. package/esm2020/lib/session/api/model/accountInfo.mjs +13 -0
  8. package/esm2020/lib/session/api/model/apiError.mjs +13 -0
  9. package/esm2020/lib/session/api/model/authenticationProviderData.mjs +13 -0
  10. package/esm2020/lib/session/api/model/getAuthenticationProvidersResponse.mjs +2 -0
  11. package/esm2020/lib/session/api/model/models.mjs +9 -0
  12. package/esm2020/lib/session/api/model/refreshSessionRequest.mjs +13 -0
  13. package/esm2020/lib/session/api/model/session.mjs +2 -0
  14. package/esm2020/lib/session/api/model/sessionInfoData.mjs +2 -0
  15. package/esm2020/lib/session/api/model/userActivityLog.mjs +13 -0
  16. package/esm2020/lib/session/api/param.mjs +2 -0
  17. package/esm2020/lib/session/api/variables.mjs +9 -0
  18. package/esm2020/lib/session/cookie-service/smart-cookie.service.mjs +225 -0
  19. package/esm2020/lib/session/dev-tool/smart-dev-tool-dialog/smart-dev-tool-dialog.component.mjs +90 -0
  20. package/esm2020/lib/session/dev-tool/smart-dev-tool-dialog/smart-dev-tool-dialog.service.mjs +43 -0
  21. package/esm2020/lib/session/dev-tool/smart-dev-tool-floating-button/smart-dev-tool-floating-button.component.mjs +40 -0
  22. package/esm2020/lib/session/dev-tool/smart-dev-tool.interceptor.mjs +52 -0
  23. package/esm2020/lib/session/dev-tool/smart-dev-tool.service.mjs +161 -0
  24. package/esm2020/lib/session/projects.mjs +12 -0
  25. package/esm2020/lib/session/smart-error-catching.interceptor.mjs +71 -0
  26. package/esm2020/lib/session/smart-header-maintainer.interceptor.mjs +36 -0
  27. package/esm2020/lib/session/smart-session-handler.service.mjs +6 -0
  28. package/esm2020/lib/session/smart-session.module.mjs +74 -0
  29. package/esm2020/lib/session/smart-session.service.mjs +204 -0
  30. package/esm2020/lib/session/smart-timer/smart-session-timer.component.mjs +35 -0
  31. package/esm2020/lib/session/smart-timer/smart-session-timer.service.mjs +51 -0
  32. package/esm2020/lib/smart-ng-client.module.mjs +20 -0
  33. package/esm2020/lib/smart-ng-client.service.mjs +19 -0
  34. package/esm2020/lib/view-context/api/api/api.mjs +4 -0
  35. package/esm2020/lib/view-context/api/api/view.service.mjs +401 -0
  36. package/esm2020/lib/view-context/api/api.module.mjs +40 -0
  37. package/esm2020/lib/view-context/api/configuration.mjs +91 -0
  38. package/esm2020/lib/view-context/api/encoder.mjs +19 -0
  39. package/esm2020/lib/view-context/api/index.mjs +7 -0
  40. package/esm2020/lib/view-context/api/model/closeResult.mjs +17 -0
  41. package/esm2020/lib/view-context/api/model/componentConstraint.mjs +2 -0
  42. package/esm2020/lib/view-context/api/model/messageData.mjs +2 -0
  43. package/esm2020/lib/view-context/api/model/messageOption.mjs +2 -0
  44. package/esm2020/lib/view-context/api/model/messageOptionType.mjs +17 -0
  45. package/esm2020/lib/view-context/api/model/messageResult.mjs +2 -0
  46. package/esm2020/lib/view-context/api/model/messageType.mjs +18 -0
  47. package/esm2020/lib/view-context/api/model/models.mjs +29 -0
  48. package/esm2020/lib/view-context/api/model/openPendingData.mjs +2 -0
  49. package/esm2020/lib/view-context/api/model/smartLinkData.mjs +2 -0
  50. package/esm2020/lib/view-context/api/model/uiAction.mjs +2 -0
  51. package/esm2020/lib/view-context/api/model/uiActionButtonDescriptor.mjs +13 -0
  52. package/esm2020/lib/view-context/api/model/uiActionButtonIconPos.mjs +16 -0
  53. package/esm2020/lib/view-context/api/model/uiActionButtonType.mjs +21 -0
  54. package/esm2020/lib/view-context/api/model/uiActionDescriptor.mjs +2 -0
  55. package/esm2020/lib/view-context/api/model/uiActionDialogDescriptor.mjs +2 -0
  56. package/esm2020/lib/view-context/api/model/uiActionFeedbackType.mjs +16 -0
  57. package/esm2020/lib/view-context/api/model/uiActionInputType.mjs +18 -0
  58. package/esm2020/lib/view-context/api/model/uiActionRequest.mjs +13 -0
  59. package/esm2020/lib/view-context/api/model/view.mjs +2 -0
  60. package/esm2020/lib/view-context/api/model/viewApiError.mjs +13 -0
  61. package/esm2020/lib/view-context/api/model/viewConstraint.mjs +2 -0
  62. package/esm2020/lib/view-context/api/model/viewContext.mjs +2 -0
  63. package/esm2020/lib/view-context/api/model/viewContextData.mjs +2 -0
  64. package/esm2020/lib/view-context/api/model/viewContextUpdate.mjs +2 -0
  65. package/esm2020/lib/view-context/api/model/viewData.mjs +2 -0
  66. package/esm2020/lib/view-context/api/model/viewState.mjs +21 -0
  67. package/esm2020/lib/view-context/api/model/viewStateUpdate.mjs +2 -0
  68. package/esm2020/lib/view-context/api/model/viewType.mjs +17 -0
  69. package/esm2020/lib/view-context/api/param.mjs +2 -0
  70. package/esm2020/lib/view-context/api/variables.mjs +9 -0
  71. package/esm2020/lib/view-context/message-dialog/message-dialog.component.mjs +63 -0
  72. package/esm2020/lib/view-context/projects.mjs +17 -0
  73. package/esm2020/lib/view-context/smart-ui-action/components/success-snack-bar/success-snack-bar.component.mjs +30 -0
  74. package/esm2020/lib/view-context/smart-ui-action/dialogs/ui-action-confirm-dialog/ui-action-confirm-dialog.component.mjs +53 -0
  75. package/esm2020/lib/view-context/smart-ui-action/dialogs/ui-action-confirm-dialog/ui-action-confirm-dialog.service.mjs +47 -0
  76. package/esm2020/lib/view-context/smart-ui-action/dialogs/ui-action-input-dialog/ui-action-input-dialog.component.mjs +112 -0
  77. package/esm2020/lib/view-context/smart-ui-action/dialogs/ui-action-input-dialog/ui-action-input-dialog.service.mjs +51 -0
  78. package/esm2020/lib/view-context/smart-ui-action/ui-action-toolbar.component.mjs +81 -0
  79. package/esm2020/lib/view-context/smart-ui-action/ui-action.descriptor.service.mjs +113 -0
  80. package/esm2020/lib/view-context/smart-ui-action/ui-action.model.mjs +7 -0
  81. package/esm2020/lib/view-context/smart-ui-action/ui-action.service.mjs +149 -0
  82. package/esm2020/lib/view-context/smart-view-context-error-dialog/smart-view-context-error-dialog.component.mjs +24 -0
  83. package/esm2020/lib/view-context/smart-view-context-error-dialog/smart-view-context-error-dialog.service.mjs +44 -0
  84. package/esm2020/lib/view-context/smart-view-context.interceptor.mjs +28 -0
  85. package/esm2020/lib/view-context/smart-view-context.model.mjs +2 -0
  86. package/esm2020/lib/view-context/smart-view-context.module.mjs +84 -0
  87. package/esm2020/lib/view-context/smart-view-context.service.mjs +310 -0
  88. package/esm2020/lib/view-context/smart-view-redirect/smart-view-redirect.mjs +33 -0
  89. package/esm2020/lib/view-context/value-api/api.module.mjs +40 -0
  90. package/esm2020/lib/view-context/value-api/configuration.mjs +91 -0
  91. package/esm2020/lib/view-context/value-api/index.mjs +6 -0
  92. package/esm2020/lib/view-context/value-api/model/models.mjs +2 -0
  93. package/esm2020/lib/view-context/value-api/model/valueSetData.mjs +13 -0
  94. package/esm2020/lib/view-context/value-api/param.mjs +2 -0
  95. package/esm2020/lib/view-context/value-api/variables.mjs +9 -0
  96. package/esm2020/projects.mjs +8 -0
  97. package/esm2020/smartbit4all-ng-client.mjs +5 -0
  98. package/fesm2015/smartbit4all-ng-client.mjs +3418 -0
  99. package/fesm2015/smartbit4all-ng-client.mjs.map +1 -0
  100. package/fesm2020/smartbit4all-ng-client.mjs +3423 -0
  101. package/fesm2020/smartbit4all-ng-client.mjs.map +1 -0
  102. package/lib/session/api/api/api.d.ts +3 -0
  103. package/lib/session/api/api/session.service.d.ts +107 -0
  104. package/lib/session/api/configuration.d.ts +104 -0
  105. package/lib/session/api/encoder.d.ts +11 -0
  106. package/lib/session/api/index.d.ts +2 -0
  107. package/lib/session/api/model/accountInfo.d.ts +22 -0
  108. package/lib/session/api/model/apiError.d.ts +15 -0
  109. package/lib/session/api/model/authenticationProviderData.d.ts +17 -0
  110. package/lib/session/api/model/getAuthenticationProvidersResponse.d.ts +15 -0
  111. package/lib/session/api/model/models.d.ts +8 -0
  112. package/lib/session/api/model/refreshSessionRequest.d.ts +14 -0
  113. package/lib/session/api/model/session.d.ts +32 -0
  114. package/lib/session/api/model/sessionInfoData.d.ts +22 -0
  115. package/lib/session/api/model/userActivityLog.d.ts +33 -0
  116. package/lib/session/api/param.d.ts +37 -0
  117. package/lib/session/api/variables.d.ts +8 -0
  118. package/lib/session/cookie-service/smart-cookie.service.d.ts +129 -0
  119. package/lib/session/dev-tool/smart-dev-tool-dialog/smart-dev-tool-dialog.component.d.ts +28 -0
  120. package/lib/session/dev-tool/smart-dev-tool-dialog/smart-dev-tool-dialog.service.d.ts +18 -0
  121. package/lib/session/dev-tool/smart-dev-tool-floating-button/smart-dev-tool-floating-button.component.d.ts +15 -0
  122. package/lib/session/dev-tool/smart-dev-tool.interceptor.d.ts +18 -0
  123. package/lib/session/dev-tool/smart-dev-tool.service.d.ts +55 -0
  124. package/lib/session/projects.d.ts +8 -0
  125. package/lib/session/smart-error-catching.interceptor.d.ts +13 -0
  126. package/lib/session/smart-header-maintainer.interceptor.d.ts +11 -0
  127. package/lib/session/smart-session-handler.service.d.ts +11 -0
  128. package/lib/session/smart-session.module.d.ts +15 -0
  129. package/lib/session/smart-session.service.d.ts +50 -0
  130. package/lib/session/smart-timer/smart-session-timer.component.d.ts +14 -0
  131. package/lib/session/smart-timer/smart-session-timer.service.d.ts +21 -0
  132. package/lib/smart-ng-client.module.d.ts +8 -0
  133. package/lib/smart-ng-client.service.d.ts +10 -0
  134. package/lib/view-context/api/api/api.d.ts +3 -0
  135. package/lib/view-context/api/api/view.service.d.ts +147 -0
  136. package/lib/view-context/api/api.module.d.ts +11 -0
  137. package/lib/view-context/api/configuration.d.ts +104 -0
  138. package/lib/view-context/api/encoder.d.ts +11 -0
  139. package/lib/view-context/api/index.d.ts +6 -0
  140. package/lib/view-context/api/model/closeResult.d.ts +17 -0
  141. package/lib/view-context/api/model/componentConstraint.d.ts +25 -0
  142. package/lib/view-context/api/model/messageData.d.ts +27 -0
  143. package/lib/view-context/api/model/messageOption.d.ts +18 -0
  144. package/lib/view-context/api/model/messageOptionType.d.ts +17 -0
  145. package/lib/view-context/api/model/messageResult.d.ts +16 -0
  146. package/lib/view-context/api/model/messageType.d.ts +18 -0
  147. package/lib/view-context/api/model/models.d.ts +28 -0
  148. package/lib/view-context/api/model/openPendingData.d.ts +22 -0
  149. package/lib/view-context/api/model/smartLinkData.d.ts +21 -0
  150. package/lib/view-context/api/model/uiAction.d.ts +26 -0
  151. package/lib/view-context/api/model/uiActionButtonDescriptor.d.ts +18 -0
  152. package/lib/view-context/api/model/uiActionButtonIconPos.d.ts +19 -0
  153. package/lib/view-context/api/model/uiActionButtonType.d.ts +24 -0
  154. package/lib/view-context/api/model/uiActionDescriptor.d.ts +32 -0
  155. package/lib/view-context/api/model/uiActionDialogDescriptor.d.ts +22 -0
  156. package/lib/view-context/api/model/uiActionFeedbackType.d.ts +19 -0
  157. package/lib/view-context/api/model/uiActionInputType.d.ts +18 -0
  158. package/lib/view-context/api/model/uiActionRequest.d.ts +27 -0
  159. package/lib/view-context/api/model/view.d.ts +36 -0
  160. package/lib/view-context/api/model/viewApiError.d.ts +18 -0
  161. package/lib/view-context/api/model/viewConstraint.d.ts +18 -0
  162. package/lib/view-context/api/model/viewContext.d.ts +22 -0
  163. package/lib/view-context/api/model/viewContextData.d.ts +19 -0
  164. package/lib/view-context/api/model/viewContextUpdate.d.ts +22 -0
  165. package/lib/view-context/api/model/viewData.d.ts +25 -0
  166. package/lib/view-context/api/model/viewState.d.ts +21 -0
  167. package/lib/view-context/api/model/viewStateUpdate.d.ts +22 -0
  168. package/lib/view-context/api/model/viewType.d.ts +17 -0
  169. package/lib/view-context/api/param.d.ts +37 -0
  170. package/lib/view-context/api/variables.d.ts +8 -0
  171. package/lib/view-context/message-dialog/message-dialog.component.d.ts +17 -0
  172. package/lib/view-context/projects.d.ts +13 -0
  173. package/lib/view-context/smart-ui-action/components/success-snack-bar/success-snack-bar.component.d.ts +13 -0
  174. package/lib/view-context/smart-ui-action/dialogs/ui-action-confirm-dialog/ui-action-confirm-dialog.component.d.ts +25 -0
  175. package/lib/view-context/smart-ui-action/dialogs/ui-action-confirm-dialog/ui-action-confirm-dialog.service.d.ts +18 -0
  176. package/lib/view-context/smart-ui-action/dialogs/ui-action-input-dialog/ui-action-input-dialog.component.d.ts +28 -0
  177. package/lib/view-context/smart-ui-action/dialogs/ui-action-input-dialog/ui-action-input-dialog.service.d.ts +25 -0
  178. package/lib/view-context/smart-ui-action/ui-action-toolbar.component.d.ts +24 -0
  179. package/lib/view-context/smart-ui-action/ui-action.descriptor.service.d.ts +21 -0
  180. package/lib/view-context/smart-ui-action/ui-action.model.d.ts +30 -0
  181. package/lib/view-context/smart-ui-action/ui-action.service.d.ts +21 -0
  182. package/lib/view-context/smart-view-context-error-dialog/smart-view-context-error-dialog.component.d.ts +13 -0
  183. package/lib/view-context/smart-view-context-error-dialog/smart-view-context-error-dialog.service.d.ts +17 -0
  184. package/lib/view-context/smart-view-context.interceptor.d.ts +13 -0
  185. package/lib/view-context/smart-view-context.model.d.ts +30 -0
  186. package/lib/view-context/smart-view-context.module.d.ts +20 -0
  187. package/lib/view-context/smart-view-context.service.d.ts +60 -0
  188. package/lib/view-context/smart-view-redirect/smart-view-redirect.d.ts +14 -0
  189. package/lib/view-context/value-api/api.module.d.ts +11 -0
  190. package/lib/view-context/value-api/configuration.d.ts +104 -0
  191. package/lib/view-context/value-api/index.d.ts +5 -0
  192. package/lib/view-context/value-api/model/models.d.ts +1 -0
  193. package/lib/view-context/value-api/model/valueSetData.d.ts +39 -0
  194. package/lib/view-context/value-api/param.d.ts +37 -0
  195. package/lib/view-context/value-api/variables.d.ts +8 -0
  196. package/package.json +38 -0
  197. package/projects.d.ts +4 -0
  198. package/smartbit4all-ng-client-1.0.0.tgz +0 -0
  199. package/smartbit4all-ng-client.d.ts +5 -0
  200. package/src/lib/session/api/README.md +226 -0
  201. package/src/lib/view-context/api/README.md +226 -0
  202. package/src/lib/view-context/value-api/README.md +226 -0
@@ -0,0 +1,63 @@
1
+ import { Component } from "@angular/core";
2
+ import { MessageOptionType } from "../api";
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "../smart-view-context.service";
5
+ import * as i2 from "@angular/material/button";
6
+ import * as i3 from "@angular/material/icon";
7
+ import * as i4 from "@angular/common";
8
+ export class MessageDialogComponent {
9
+ constructor(viewContext) {
10
+ this.viewContext = viewContext;
11
+ }
12
+ ngOnInit() {
13
+ this.getMessageData();
14
+ }
15
+ ngOnDestroy() {
16
+ if (!this.messageData.options || !this.messageData.options.length) {
17
+ this.viewContext.message(this.messageData, {
18
+ selectedOption: {
19
+ code: MessageOptionType.Cancel,
20
+ label: "",
21
+ },
22
+ });
23
+ }
24
+ }
25
+ async getMessageData() {
26
+ let messageDialogName = this.viewContext.messageDialogname;
27
+ let viewData = await this.viewContext.getViewContextDataByPageName(messageDialogName);
28
+ this.messageData = viewData.message;
29
+ }
30
+ getColor(option) {
31
+ switch (option.type) {
32
+ case MessageOptionType.Cancel:
33
+ return "accent";
34
+ case MessageOptionType.Confirm:
35
+ return "primary";
36
+ case MessageOptionType.Reject:
37
+ return "warn";
38
+ default:
39
+ return "accent";
40
+ }
41
+ }
42
+ getType(option) {
43
+ switch (option.type) {
44
+ case MessageOptionType.Confirm:
45
+ case MessageOptionType.Reject:
46
+ return "mat-raised-button";
47
+ default:
48
+ return "mat-button";
49
+ }
50
+ }
51
+ onClick(selectedOption) {
52
+ this.viewContext.message(this.messageData, {
53
+ selectedOption,
54
+ });
55
+ }
56
+ }
57
+ MessageDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: MessageDialogComponent, deps: [{ token: i1.SmartViewContextService }], target: i0.ɵɵFactoryTarget.Component });
58
+ MessageDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: MessageDialogComponent, selector: "app-message-dialog", ngImport: i0, template: "<div class=\"taskDialogContainer\" *ngIf=\"messageData\">\n\t<h2>\n\t\t{{ messageData.header }}\n\t</h2>\n\t<p>{{ messageData.text }}</p>\n\t<div class=\"buttonsContainer\">\n\t\t<button\n\t\t\t*ngFor=\"let option of messageData.options\"\n\t\t\tmat-button\n\t\t\tclass=\"taskDialogButton\"\n\t\t\t[ngClass]=\"getType(option)\"\n\t\t\tcolor=\"{{ getColor(option) }}\"\n\t\t\t(click)=\"onClick(option)\"\n\t\t>\n\t\t\t<mat-icon *ngIf=\"option.icon\">\n\t\t\t\t{{ option.icon }}\n\t\t\t</mat-icon>\n\t\t\t{{ option.label }}\n\t\t</button>\n\t</div>\n</div>\n", styles: [".taskDialogContainer{width:400px;display:flex;flex-direction:column;gap:.5rem}.spacer{flex:1}.buttonsContainer{display:flex;flex-direction:row;gap:.5rem;justify-content:flex-end}.taskDialogButton{min-width:100px}h2,p{margin:0!important}\n"], components: [{ type: i2.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
59
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: MessageDialogComponent, decorators: [{
60
+ type: Component,
61
+ args: [{ selector: "app-message-dialog", template: "<div class=\"taskDialogContainer\" *ngIf=\"messageData\">\n\t<h2>\n\t\t{{ messageData.header }}\n\t</h2>\n\t<p>{{ messageData.text }}</p>\n\t<div class=\"buttonsContainer\">\n\t\t<button\n\t\t\t*ngFor=\"let option of messageData.options\"\n\t\t\tmat-button\n\t\t\tclass=\"taskDialogButton\"\n\t\t\t[ngClass]=\"getType(option)\"\n\t\t\tcolor=\"{{ getColor(option) }}\"\n\t\t\t(click)=\"onClick(option)\"\n\t\t>\n\t\t\t<mat-icon *ngIf=\"option.icon\">\n\t\t\t\t{{ option.icon }}\n\t\t\t</mat-icon>\n\t\t\t{{ option.label }}\n\t\t</button>\n\t</div>\n</div>\n", styles: [".taskDialogContainer{width:400px;display:flex;flex-direction:column;gap:.5rem}.spacer{flex:1}.buttonsContainer{display:flex;flex-direction:row;gap:.5rem;justify-content:flex-end}.taskDialogButton{min-width:100px}h2,p{margin:0!important}\n"] }]
62
+ }], ctorParameters: function () { return [{ type: i1.SmartViewContextService }]; } });
63
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZS1kaWFsb2cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc21hcnQtbmctY2xpZW50L3NyYy9saWIvdmlldy1jb250ZXh0L21lc3NhZ2UtZGlhbG9nL21lc3NhZ2UtZGlhbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NtYXJ0LW5nLWNsaWVudC9zcmMvbGliL3ZpZXctY29udGV4dC9tZXNzYWdlLWRpYWxvZy9tZXNzYWdlLWRpYWxvZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLEVBQThCLGlCQUFpQixFQUFFLE1BQU0sUUFBUSxDQUFDOzs7Ozs7QUFRdkUsTUFBTSxPQUFPLHNCQUFzQjtJQUcvQixZQUFvQixXQUFvQztRQUFwQyxnQkFBVyxHQUFYLFdBQVcsQ0FBeUI7SUFBRyxDQUFDO0lBQzVELFFBQVE7UUFDSixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVELFdBQVc7UUFDUCxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUU7WUFDL0QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRTtnQkFDdkMsY0FBYyxFQUFFO29CQUNaLElBQUksRUFBRSxpQkFBaUIsQ0FBQyxNQUFNO29CQUM5QixLQUFLLEVBQUUsRUFBRTtpQkFDWjthQUNKLENBQUMsQ0FBQztTQUNOO0lBQ0wsQ0FBQztJQUVELEtBQUssQ0FBQyxjQUFjO1FBQ2hCLElBQUksaUJBQWlCLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxpQkFBaUIsQ0FBQztRQUMzRCxJQUFJLFFBQVEsR0FBRyxNQUFNLElBQUksQ0FBQyxXQUFXLENBQUMsNEJBQTRCLENBQUMsaUJBQWtCLENBQUMsQ0FBQztRQUN2RixJQUFJLENBQUMsV0FBVyxHQUFHLFFBQVEsQ0FBQyxPQUFRLENBQUM7SUFDekMsQ0FBQztJQUVELFFBQVEsQ0FBQyxNQUFxQjtRQUMxQixRQUFRLE1BQU0sQ0FBQyxJQUFJLEVBQUU7WUFDakIsS0FBSyxpQkFBaUIsQ0FBQyxNQUFNO2dCQUN6QixPQUFPLFFBQVEsQ0FBQztZQUNwQixLQUFLLGlCQUFpQixDQUFDLE9BQU87Z0JBQzFCLE9BQU8sU0FBUyxDQUFDO1lBQ3JCLEtBQUssaUJBQWlCLENBQUMsTUFBTTtnQkFDekIsT0FBTyxNQUFNLENBQUM7WUFDbEI7Z0JBQ0ksT0FBTyxRQUFRLENBQUM7U0FDdkI7SUFDTCxDQUFDO0lBRUQsT0FBTyxDQUFDLE1BQXFCO1FBQ3pCLFFBQVEsTUFBTSxDQUFDLElBQUksRUFBRTtZQUNqQixLQUFLLGlCQUFpQixDQUFDLE9BQU8sQ0FBQztZQUMvQixLQUFLLGlCQUFpQixDQUFDLE1BQU07Z0JBQ3pCLE9BQU8sbUJBQW1CLENBQUM7WUFDL0I7Z0JBQ0ksT0FBTyxZQUFZLENBQUM7U0FDM0I7SUFDTCxDQUFDO0lBRUQsT0FBTyxDQUFDLGNBQTZCO1FBQ2pDLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDdkMsY0FBYztTQUNqQixDQUFDLENBQUM7SUFDUCxDQUFDOztvSEFwRFEsc0JBQXNCO3dHQUF0QixzQkFBc0IsMERDVG5DLDhpQkFxQkE7NEZEWmEsc0JBQXNCO2tCQUxsQyxTQUFTOytCQUNJLG9CQUFvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgTWVzc2FnZURhdGEsIE1lc3NhZ2VPcHRpb24sIE1lc3NhZ2VPcHRpb25UeXBlIH0gZnJvbSBcIi4uL2FwaVwiO1xuaW1wb3J0IHsgU21hcnRWaWV3Q29udGV4dFNlcnZpY2UgfSBmcm9tIFwiLi4vc21hcnQtdmlldy1jb250ZXh0LnNlcnZpY2VcIjtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6IFwiYXBwLW1lc3NhZ2UtZGlhbG9nXCIsXG4gICAgdGVtcGxhdGVVcmw6IFwiLi9tZXNzYWdlLWRpYWxvZy5jb21wb25lbnQuaHRtbFwiLFxuICAgIHN0eWxlVXJsczogW1wiLi9tZXNzYWdlLWRpYWxvZy5jb21wb25lbnQuY3NzXCJdLFxufSlcbmV4cG9ydCBjbGFzcyBNZXNzYWdlRGlhbG9nQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAgIG1lc3NhZ2VEYXRhITogTWVzc2FnZURhdGE7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHZpZXdDb250ZXh0OiBTbWFydFZpZXdDb250ZXh0U2VydmljZSkge31cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5nZXRNZXNzYWdlRGF0YSgpO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMubWVzc2FnZURhdGEub3B0aW9ucyB8fCAhdGhpcy5tZXNzYWdlRGF0YS5vcHRpb25zLmxlbmd0aCkge1xuICAgICAgICAgICAgdGhpcy52aWV3Q29udGV4dC5tZXNzYWdlKHRoaXMubWVzc2FnZURhdGEsIHtcbiAgICAgICAgICAgICAgICBzZWxlY3RlZE9wdGlvbjoge1xuICAgICAgICAgICAgICAgICAgICBjb2RlOiBNZXNzYWdlT3B0aW9uVHlwZS5DYW5jZWwsXG4gICAgICAgICAgICAgICAgICAgIGxhYmVsOiBcIlwiLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGFzeW5jIGdldE1lc3NhZ2VEYXRhKCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBsZXQgbWVzc2FnZURpYWxvZ05hbWUgPSB0aGlzLnZpZXdDb250ZXh0Lm1lc3NhZ2VEaWFsb2duYW1lO1xuICAgICAgICBsZXQgdmlld0RhdGEgPSBhd2FpdCB0aGlzLnZpZXdDb250ZXh0LmdldFZpZXdDb250ZXh0RGF0YUJ5UGFnZU5hbWUobWVzc2FnZURpYWxvZ05hbWUhKTtcbiAgICAgICAgdGhpcy5tZXNzYWdlRGF0YSA9IHZpZXdEYXRhLm1lc3NhZ2UhO1xuICAgIH1cblxuICAgIGdldENvbG9yKG9wdGlvbjogTWVzc2FnZU9wdGlvbik6IHN0cmluZyB7XG4gICAgICAgIHN3aXRjaCAob3B0aW9uLnR5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgTWVzc2FnZU9wdGlvblR5cGUuQ2FuY2VsOlxuICAgICAgICAgICAgICAgIHJldHVybiBcImFjY2VudFwiO1xuICAgICAgICAgICAgY2FzZSBNZXNzYWdlT3B0aW9uVHlwZS5Db25maXJtOlxuICAgICAgICAgICAgICAgIHJldHVybiBcInByaW1hcnlcIjtcbiAgICAgICAgICAgIGNhc2UgTWVzc2FnZU9wdGlvblR5cGUuUmVqZWN0OlxuICAgICAgICAgICAgICAgIHJldHVybiBcIndhcm5cIjtcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuIFwiYWNjZW50XCI7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXRUeXBlKG9wdGlvbjogTWVzc2FnZU9wdGlvbik6IHN0cmluZyB7XG4gICAgICAgIHN3aXRjaCAob3B0aW9uLnR5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgTWVzc2FnZU9wdGlvblR5cGUuQ29uZmlybTpcbiAgICAgICAgICAgIGNhc2UgTWVzc2FnZU9wdGlvblR5cGUuUmVqZWN0OlxuICAgICAgICAgICAgICAgIHJldHVybiBcIm1hdC1yYWlzZWQtYnV0dG9uXCI7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHJldHVybiBcIm1hdC1idXR0b25cIjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uQ2xpY2soc2VsZWN0ZWRPcHRpb246IE1lc3NhZ2VPcHRpb24pOiB2b2lkIHtcbiAgICAgICAgdGhpcy52aWV3Q29udGV4dC5tZXNzYWdlKHRoaXMubWVzc2FnZURhdGEsIHtcbiAgICAgICAgICAgIHNlbGVjdGVkT3B0aW9uLFxuICAgICAgICB9KTtcbiAgICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwidGFza0RpYWxvZ0NvbnRhaW5lclwiICpuZ0lmPVwibWVzc2FnZURhdGFcIj5cblx0PGgyPlxuXHRcdHt7IG1lc3NhZ2VEYXRhLmhlYWRlciB9fVxuXHQ8L2gyPlxuXHQ8cD57eyBtZXNzYWdlRGF0YS50ZXh0IH19PC9wPlxuXHQ8ZGl2IGNsYXNzPVwiYnV0dG9uc0NvbnRhaW5lclwiPlxuXHRcdDxidXR0b25cblx0XHRcdCpuZ0Zvcj1cImxldCBvcHRpb24gb2YgbWVzc2FnZURhdGEub3B0aW9uc1wiXG5cdFx0XHRtYXQtYnV0dG9uXG5cdFx0XHRjbGFzcz1cInRhc2tEaWFsb2dCdXR0b25cIlxuXHRcdFx0W25nQ2xhc3NdPVwiZ2V0VHlwZShvcHRpb24pXCJcblx0XHRcdGNvbG9yPVwie3sgZ2V0Q29sb3Iob3B0aW9uKSB9fVwiXG5cdFx0XHQoY2xpY2spPVwib25DbGljayhvcHRpb24pXCJcblx0XHQ+XG5cdFx0XHQ8bWF0LWljb24gKm5nSWY9XCJvcHRpb24uaWNvblwiPlxuXHRcdFx0XHR7eyBvcHRpb24uaWNvbiB9fVxuXHRcdFx0PC9tYXQtaWNvbj5cblx0XHRcdHt7IG9wdGlvbi5sYWJlbCB9fVxuXHRcdDwvYnV0dG9uPlxuXHQ8L2Rpdj5cbjwvZGl2PlxuIl19
@@ -0,0 +1,17 @@
1
+ /*
2
+ * Public API Surface of smart-view-context
3
+ */
4
+ export * from "./smart-view-context.service";
5
+ export * from "./smart-view-context.model";
6
+ export * from "./smart-view-context.module";
7
+ export * from "./smart-view-redirect/smart-view-redirect";
8
+ export * from "./api/index";
9
+ export * from "./smart-ui-action/ui-action-toolbar.component";
10
+ export * from "./smart-ui-action/ui-action.service";
11
+ export * from "./smart-ui-action/ui-action.model";
12
+ export * from "./smart-ui-action/ui-action.descriptor.service";
13
+ export * from "./smart-ui-action/dialogs/ui-action-confirm-dialog/ui-action-confirm-dialog.service";
14
+ export * from "./smart-ui-action/dialogs/ui-action-confirm-dialog/ui-action-confirm-dialog.component";
15
+ export * from "./smart-ui-action/dialogs/ui-action-input-dialog/ui-action-input-dialog.service";
16
+ export * from "./smart-ui-action/dialogs/ui-action-input-dialog/ui-action-input-dialog.component";
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvamVjdHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zbWFydC1uZy1jbGllbnQvc3JjL2xpYi92aWV3LWNvbnRleHQvcHJvamVjdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLDJDQUEyQyxDQUFDO0FBQzFELGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsK0NBQStDLENBQUM7QUFDOUQsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMsZ0RBQWdELENBQUM7QUFDL0QsY0FBYyxxRkFBcUYsQ0FBQztBQUNwRyxjQUFjLHVGQUF1RixDQUFDO0FBQ3RHLGNBQWMsaUZBQWlGLENBQUM7QUFDaEcsY0FBYyxtRkFBbUYsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2Ygc21hcnQtdmlldy1jb250ZXh0XG4gKi9cblxuZXhwb3J0ICogZnJvbSBcIi4vc21hcnQtdmlldy1jb250ZXh0LnNlcnZpY2VcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NtYXJ0LXZpZXctY29udGV4dC5tb2RlbFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc21hcnQtdmlldy1jb250ZXh0Lm1vZHVsZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc21hcnQtdmlldy1yZWRpcmVjdC9zbWFydC12aWV3LXJlZGlyZWN0XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9hcGkvaW5kZXhcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NtYXJ0LXVpLWFjdGlvbi91aS1hY3Rpb24tdG9vbGJhci5jb21wb25lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NtYXJ0LXVpLWFjdGlvbi91aS1hY3Rpb24uc2VydmljZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc21hcnQtdWktYWN0aW9uL3VpLWFjdGlvbi5tb2RlbFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc21hcnQtdWktYWN0aW9uL3VpLWFjdGlvbi5kZXNjcmlwdG9yLnNlcnZpY2VcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NtYXJ0LXVpLWFjdGlvbi9kaWFsb2dzL3VpLWFjdGlvbi1jb25maXJtLWRpYWxvZy91aS1hY3Rpb24tY29uZmlybS1kaWFsb2cuc2VydmljZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc21hcnQtdWktYWN0aW9uL2RpYWxvZ3MvdWktYWN0aW9uLWNvbmZpcm0tZGlhbG9nL3VpLWFjdGlvbi1jb25maXJtLWRpYWxvZy5jb21wb25lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NtYXJ0LXVpLWFjdGlvbi9kaWFsb2dzL3VpLWFjdGlvbi1pbnB1dC1kaWFsb2cvdWktYWN0aW9uLWlucHV0LWRpYWxvZy5zZXJ2aWNlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zbWFydC11aS1hY3Rpb24vZGlhbG9ncy91aS1hY3Rpb24taW5wdXQtZGlhbG9nL3VpLWFjdGlvbi1pbnB1dC1kaWFsb2cuY29tcG9uZW50XCI7XG4iXX0=
@@ -0,0 +1,30 @@
1
+ import { Component, Inject } from "@angular/core";
2
+ import { MAT_SNACK_BAR_DATA } from "@angular/material/snack-bar";
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "../../../smart-view-context.service";
5
+ import * as i2 from "../../ui-action.descriptor.service";
6
+ export class SuccessSnackBarComponent {
7
+ constructor(data, viewContext, manager) {
8
+ this.data = data;
9
+ this.viewContext = viewContext;
10
+ this.manager = manager;
11
+ this.manager.getActionDescriptor(data).then((descriptor) => {
12
+ if (descriptor.feedbackText) {
13
+ this.text = descriptor.feedbackText;
14
+ }
15
+ else {
16
+ this.text = this.viewContext.commonFeedbackText ?? "A mentés sikeres volt!";
17
+ }
18
+ });
19
+ }
20
+ }
21
+ SuccessSnackBarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SuccessSnackBarComponent, deps: [{ token: MAT_SNACK_BAR_DATA }, { token: i1.SmartViewContextService }, { token: i2.UiActionDescriptorService }], target: i0.ɵɵFactoryTarget.Component });
22
+ SuccessSnackBarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: SuccessSnackBarComponent, selector: "app-success-snack-bar", ngImport: i0, template: "<span class=\"successSnakBarContainer\" matSnackBarLabel> {{ text }} </span>\n", styles: ["::ng-deep .mat-snack-bar-container{text-align:center;border-radius:2rem}.successSnakBarContainer{color:#fff}\n"] });
23
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SuccessSnackBarComponent, decorators: [{
24
+ type: Component,
25
+ args: [{ selector: "app-success-snack-bar", template: "<span class=\"successSnakBarContainer\" matSnackBarLabel> {{ text }} </span>\n", styles: ["::ng-deep .mat-snack-bar-container{text-align:center;border-radius:2rem}.successSnakBarContainer{color:#fff}\n"] }]
26
+ }], ctorParameters: function () { return [{ type: undefined, decorators: [{
27
+ type: Inject,
28
+ args: [MAT_SNACK_BAR_DATA]
29
+ }] }, { type: i1.SmartViewContextService }, { type: i2.UiActionDescriptorService }]; } });
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VjY2Vzcy1zbmFjay1iYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc21hcnQtbmctY2xpZW50L3NyYy9saWIvdmlldy1jb250ZXh0L3NtYXJ0LXVpLWFjdGlvbi9jb21wb25lbnRzL3N1Y2Nlc3Mtc25hY2stYmFyL3N1Y2Nlc3Mtc25hY2stYmFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NtYXJ0LW5nLWNsaWVudC9zcmMvbGliL3ZpZXctY29udGV4dC9zbWFydC11aS1hY3Rpb24vY29tcG9uZW50cy9zdWNjZXNzLXNuYWNrLWJhci9zdWNjZXNzLXNuYWNrLWJhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7OztBQVdqRSxNQUFNLE9BQU8sd0JBQXdCO0lBR2pDLFlBQ3VDLElBQWMsRUFDekMsV0FBb0MsRUFDcEMsT0FBa0M7UUFGUCxTQUFJLEdBQUosSUFBSSxDQUFVO1FBQ3pDLGdCQUFXLEdBQVgsV0FBVyxDQUF5QjtRQUNwQyxZQUFPLEdBQVAsT0FBTyxDQUEyQjtRQUUxQyxJQUFJLENBQUMsT0FBTyxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLFVBQVUsRUFBRSxFQUFFO1lBQ3ZELElBQUksVUFBVSxDQUFDLFlBQVksRUFBRTtnQkFDekIsSUFBSSxDQUFDLElBQUksR0FBRyxVQUFVLENBQUMsWUFBWSxDQUFDO2FBQ3ZDO2lCQUFNO2dCQUNILElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxrQkFBa0IsSUFBSSx3QkFBd0IsQ0FBQzthQUMvRTtRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzs7c0hBZlEsd0JBQXdCLGtCQUlyQixrQkFBa0I7MEdBSnJCLHdCQUF3Qiw2RENackMsZ0ZBQ0E7NEZEV2Esd0JBQXdCO2tCQUxwQyxTQUFTOytCQUNJLHVCQUF1Qjs7MEJBUTVCLE1BQU07MkJBQUMsa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3QgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgTUFUX1NOQUNLX0JBUl9EQVRBIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL3NuYWNrLWJhclwiO1xuaW1wb3J0IHsgVWlBY3Rpb24gfSBmcm9tIFwiLi4vLi4vLi4vYXBpXCI7XG5cbmltcG9ydCB7IFNtYXJ0Vmlld0NvbnRleHRTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uLy4uL3NtYXJ0LXZpZXctY29udGV4dC5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBVaUFjdGlvbkRlc2NyaXB0b3JTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL3VpLWFjdGlvbi5kZXNjcmlwdG9yLnNlcnZpY2VcIjtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6IFwiYXBwLXN1Y2Nlc3Mtc25hY2stYmFyXCIsXG4gICAgdGVtcGxhdGVVcmw6IFwiLi9zdWNjZXNzLXNuYWNrLWJhci5jb21wb25lbnQuaHRtbFwiLFxuICAgIHN0eWxlVXJsczogW1wiLi9zdWNjZXNzLXNuYWNrLWJhci5jb21wb25lbnQuY3NzXCJdLFxufSlcbmV4cG9ydCBjbGFzcyBTdWNjZXNzU25hY2tCYXJDb21wb25lbnQge1xuICAgIHRleHQ/OiBzdHJpbmc7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQEluamVjdChNQVRfU05BQ0tfQkFSX0RBVEEpIHB1YmxpYyBkYXRhOiBVaUFjdGlvbixcbiAgICAgICAgcHJpdmF0ZSB2aWV3Q29udGV4dDogU21hcnRWaWV3Q29udGV4dFNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgbWFuYWdlcjogVWlBY3Rpb25EZXNjcmlwdG9yU2VydmljZVxuICAgICkge1xuICAgICAgICB0aGlzLm1hbmFnZXIuZ2V0QWN0aW9uRGVzY3JpcHRvcihkYXRhKS50aGVuKChkZXNjcmlwdG9yKSA9PiB7XG4gICAgICAgICAgICBpZiAoZGVzY3JpcHRvci5mZWVkYmFja1RleHQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnRleHQgPSBkZXNjcmlwdG9yLmZlZWRiYWNrVGV4dDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy50ZXh0ID0gdGhpcy52aWV3Q29udGV4dC5jb21tb25GZWVkYmFja1RleHQgPz8gXCJBIG1lbnTDqXMgc2lrZXJlcyB2b2x0IVwiO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG59XG4iLCI8c3BhbiBjbGFzcz1cInN1Y2Nlc3NTbmFrQmFyQ29udGFpbmVyXCIgbWF0U25hY2tCYXJMYWJlbD4ge3sgdGV4dCB9fSA8L3NwYW4+XG4iXX0=
@@ -0,0 +1,53 @@
1
+ import { Component } from "@angular/core";
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "./ui-action-confirm-dialog.service";
4
+ import * as i2 from "../../ui-action.descriptor.service";
5
+ import * as i3 from "@angular/material/button";
6
+ import * as i4 from "@smartbit4all/icon";
7
+ export class UiActionConfirmDialogComponent {
8
+ constructor(service, manager) {
9
+ this.service = service;
10
+ this.manager = manager;
11
+ this.code = this.service.action.code;
12
+ this.setUp();
13
+ }
14
+ async setUp() {
15
+ this.descriptor = await this.manager.getActionDescriptor(this.service.action);
16
+ this.dialogType = this.descriptor.confirmDialog ? "confirmDialog" : "dialog";
17
+ }
18
+ ngOnDestroy() {
19
+ this.service._destroy$.next();
20
+ this.cancel();
21
+ }
22
+ getTitle() {
23
+ return this.descriptor[this.dialogType].title;
24
+ }
25
+ getText() {
26
+ return this.descriptor[this.dialogType].text ?? "";
27
+ }
28
+ getActionButtonLabel() {
29
+ return this.descriptor[this.dialogType].actionButton.caption;
30
+ }
31
+ getActionButtonColor() {
32
+ return this.descriptor[this.dialogType].actionButton.color;
33
+ }
34
+ getCancelButtonLabel() {
35
+ return this.descriptor[this.dialogType].cancelButton.caption;
36
+ }
37
+ getCancelButtonColor() {
38
+ return this.descriptor[this.dialogType].cancelButton.color;
39
+ }
40
+ doAction() {
41
+ this.service.doAction();
42
+ }
43
+ cancel() {
44
+ this.service.cancel();
45
+ }
46
+ }
47
+ UiActionConfirmDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: UiActionConfirmDialogComponent, deps: [{ token: i1.UiActionConfirmDialogService }, { token: i2.UiActionDescriptorService }], target: i0.ɵɵFactoryTarget.Component });
48
+ UiActionConfirmDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: UiActionConfirmDialogComponent, selector: "app-ui-action-confirm-dialog", ngImport: i0, template: "<div class=\"folderNameDialogContainer\">\n\t<div class=\"headerContainer\">\n\t\t<h3 class=\"color-accent-700\">\n\t\t\t{{ getTitle() }}\n\t\t</h3>\n\t\t<button mat-icon-button title=\"close\" (click)=\"cancel()\">\n\t\t\t<smart-icon [color]=\"'primary'\" [icon]=\"'X'\"></smart-icon>\n\t\t</button>\n\t</div>\n\t<p>\n\t\t{{ getText() }}\n\t</p>\n\t<div class=\"folderNameDialogButtonsContainer\">\n\t\t<button mat-button color=\"accent\" [color]=\"getCancelButtonColor()\" (click)=\"cancel()\">\n\t\t\t{{ getCancelButtonLabel() }}\n\t\t</button>\n\t\t<button mat-raised-button [color]=\"getActionButtonColor()\" (click)=\"doAction()\">\n\t\t\t{{ getActionButtonLabel() }}\n\t\t</button>\n\t</div>\n</div>\n", styles: [".folderNameDialogContainer{width:25rem;display:flex;flex-direction:column;gap:1rem}.headerContainer{display:flex;flex-direction:row;justify-content:space-between}.headerContainer h3{margin:0}.folderNameDialogButtonsContainer{display:flex;flex-direction:row;justify-content:flex-end;gap:.5rem}\n"], components: [{ type: i3.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i4.SmartIconComponent, selector: "smart-icon", inputs: ["icon", "color"] }] });
49
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: UiActionConfirmDialogComponent, decorators: [{
50
+ type: Component,
51
+ args: [{ selector: "app-ui-action-confirm-dialog", template: "<div class=\"folderNameDialogContainer\">\n\t<div class=\"headerContainer\">\n\t\t<h3 class=\"color-accent-700\">\n\t\t\t{{ getTitle() }}\n\t\t</h3>\n\t\t<button mat-icon-button title=\"close\" (click)=\"cancel()\">\n\t\t\t<smart-icon [color]=\"'primary'\" [icon]=\"'X'\"></smart-icon>\n\t\t</button>\n\t</div>\n\t<p>\n\t\t{{ getText() }}\n\t</p>\n\t<div class=\"folderNameDialogButtonsContainer\">\n\t\t<button mat-button color=\"accent\" [color]=\"getCancelButtonColor()\" (click)=\"cancel()\">\n\t\t\t{{ getCancelButtonLabel() }}\n\t\t</button>\n\t\t<button mat-raised-button [color]=\"getActionButtonColor()\" (click)=\"doAction()\">\n\t\t\t{{ getActionButtonLabel() }}\n\t\t</button>\n\t</div>\n</div>\n", styles: [".folderNameDialogContainer{width:25rem;display:flex;flex-direction:column;gap:1rem}.headerContainer{display:flex;flex-direction:row;justify-content:space-between}.headerContainer h3{margin:0}.folderNameDialogButtonsContainer{display:flex;flex-direction:row;justify-content:flex-end;gap:.5rem}\n"] }]
52
+ }], ctorParameters: function () { return [{ type: i1.UiActionConfirmDialogService }, { type: i2.UiActionDescriptorService }]; } });
53
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktYWN0aW9uLWNvbmZpcm0tZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NtYXJ0LW5nLWNsaWVudC9zcmMvbGliL3ZpZXctY29udGV4dC9zbWFydC11aS1hY3Rpb24vZGlhbG9ncy91aS1hY3Rpb24tY29uZmlybS1kaWFsb2cvdWktYWN0aW9uLWNvbmZpcm0tZGlhbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NtYXJ0LW5nLWNsaWVudC9zcmMvbGliL3ZpZXctY29udGV4dC9zbWFydC11aS1hY3Rpb24vZGlhbG9ncy91aS1hY3Rpb24tY29uZmlybS1kaWFsb2cvdWktYWN0aW9uLWNvbmZpcm0tZGlhbG9nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWEsTUFBTSxlQUFlLENBQUM7Ozs7OztBQVVyRCxNQUFNLE9BQU8sOEJBQThCO0lBTXZDLFlBQ1ksT0FBcUMsRUFDckMsT0FBa0M7UUFEbEMsWUFBTyxHQUFQLE9BQU8sQ0FBOEI7UUFDckMsWUFBTyxHQUFQLE9BQU8sQ0FBMkI7UUFFMUMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFLLENBQUM7UUFDdEMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ2pCLENBQUM7SUFFRCxLQUFLLENBQUMsS0FBSztRQUNQLElBQUksQ0FBQyxVQUFVLEdBQUcsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFOUUsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUM7SUFDakYsQ0FBQztJQUVELFdBQVc7UUFDUCxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUM5QixJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDbEIsQ0FBQztJQUVELFFBQVE7UUFDSixPQUFPLElBQUksQ0FBQyxVQUFXLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBRSxDQUFDLEtBQUssQ0FBQztJQUNwRCxDQUFDO0lBQ0QsT0FBTztRQUNILE9BQU8sSUFBSSxDQUFDLFVBQVcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFFLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQztJQUN6RCxDQUFDO0lBQ0Qsb0JBQW9CO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLFVBQVcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFFLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQztJQUNuRSxDQUFDO0lBQ0Qsb0JBQW9CO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLFVBQVcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFFLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQztJQUNqRSxDQUFDO0lBQ0Qsb0JBQW9CO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLFVBQVcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFFLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQztJQUNuRSxDQUFDO0lBQ0Qsb0JBQW9CO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLFVBQVcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFFLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQztJQUNqRSxDQUFDO0lBRUQsUUFBUTtRQUNKLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVELE1BQU07UUFDRixJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQzFCLENBQUM7OzRIQWxEUSw4QkFBOEI7Z0hBQTlCLDhCQUE4QixvRUNWM0Msc3NCQXFCQTs0RkRYYSw4QkFBOEI7a0JBTDFDLFNBQVM7K0JBQ0ksOEJBQThCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkRlc3Ryb3kgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgVWlBY3Rpb25EZXNjcmlwdG9yIH0gZnJvbSBcIi4uLy4uLy4uL2FwaVwiO1xuaW1wb3J0IHsgVWlBY3Rpb25EZXNjcmlwdG9yU2VydmljZSB9IGZyb20gXCIuLi8uLi91aS1hY3Rpb24uZGVzY3JpcHRvci5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBVaUFjdGlvbkNvbmZpcm1EaWFsb2dTZXJ2aWNlIH0gZnJvbSBcIi4vdWktYWN0aW9uLWNvbmZpcm0tZGlhbG9nLnNlcnZpY2VcIjtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6IFwiYXBwLXVpLWFjdGlvbi1jb25maXJtLWRpYWxvZ1wiLFxuICAgIHRlbXBsYXRlVXJsOiBcIi4vdWktYWN0aW9uLWNvbmZpcm0tZGlhbG9nLmNvbXBvbmVudC5odG1sXCIsXG4gICAgc3R5bGVVcmxzOiBbXCIuL3VpLWFjdGlvbi1jb25maXJtLWRpYWxvZy5jb21wb25lbnQuY3NzXCJdLFxufSlcbmV4cG9ydCBjbGFzcyBVaUFjdGlvbkNvbmZpcm1EaWFsb2dDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICAgIGNvZGUhOiBzdHJpbmc7XG4gICAgZGlhbG9nVHlwZSE6IFwiZGlhbG9nXCIgfCBcImNvbmZpcm1EaWFsb2dcIiB8IFwiaW5wdXREaWFsb2dcIjtcblxuICAgIGRlc2NyaXB0b3I/OiBVaUFjdGlvbkRlc2NyaXB0b3I7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBzZXJ2aWNlOiBVaUFjdGlvbkNvbmZpcm1EaWFsb2dTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIG1hbmFnZXI6IFVpQWN0aW9uRGVzY3JpcHRvclNlcnZpY2VcbiAgICApIHtcbiAgICAgICAgdGhpcy5jb2RlID0gdGhpcy5zZXJ2aWNlLmFjdGlvbi5jb2RlITtcbiAgICAgICAgdGhpcy5zZXRVcCgpO1xuICAgIH1cblxuICAgIGFzeW5jIHNldFVwKCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICB0aGlzLmRlc2NyaXB0b3IgPSBhd2FpdCB0aGlzLm1hbmFnZXIuZ2V0QWN0aW9uRGVzY3JpcHRvcih0aGlzLnNlcnZpY2UuYWN0aW9uKTtcblxuICAgICAgICB0aGlzLmRpYWxvZ1R5cGUgPSB0aGlzLmRlc2NyaXB0b3IuY29uZmlybURpYWxvZyA/IFwiY29uZmlybURpYWxvZ1wiIDogXCJkaWFsb2dcIjtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZXJ2aWNlLl9kZXN0cm95JC5uZXh0KCk7XG4gICAgICAgIHRoaXMuY2FuY2VsKCk7XG4gICAgfVxuXG4gICAgZ2V0VGl0bGUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGVzY3JpcHRvciFbdGhpcy5kaWFsb2dUeXBlXSEudGl0bGU7XG4gICAgfVxuICAgIGdldFRleHQoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGVzY3JpcHRvciFbdGhpcy5kaWFsb2dUeXBlXSEudGV4dCA/PyBcIlwiO1xuICAgIH1cbiAgICBnZXRBY3Rpb25CdXR0b25MYWJlbCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5kZXNjcmlwdG9yIVt0aGlzLmRpYWxvZ1R5cGVdIS5hY3Rpb25CdXR0b24uY2FwdGlvbjtcbiAgICB9XG4gICAgZ2V0QWN0aW9uQnV0dG9uQ29sb3IoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGVzY3JpcHRvciFbdGhpcy5kaWFsb2dUeXBlXSEuYWN0aW9uQnV0dG9uLmNvbG9yO1xuICAgIH1cbiAgICBnZXRDYW5jZWxCdXR0b25MYWJlbCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5kZXNjcmlwdG9yIVt0aGlzLmRpYWxvZ1R5cGVdIS5jYW5jZWxCdXR0b24uY2FwdGlvbjtcbiAgICB9XG4gICAgZ2V0Q2FuY2VsQnV0dG9uQ29sb3IoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGVzY3JpcHRvciFbdGhpcy5kaWFsb2dUeXBlXSEuY2FuY2VsQnV0dG9uLmNvbG9yO1xuICAgIH1cblxuICAgIGRvQWN0aW9uKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNlcnZpY2UuZG9BY3Rpb24oKTtcbiAgICB9XG5cbiAgICBjYW5jZWwoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2VydmljZS5jYW5jZWwoKTtcbiAgICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZm9sZGVyTmFtZURpYWxvZ0NvbnRhaW5lclwiPlxuXHQ8ZGl2IGNsYXNzPVwiaGVhZGVyQ29udGFpbmVyXCI+XG5cdFx0PGgzIGNsYXNzPVwiY29sb3ItYWNjZW50LTcwMFwiPlxuXHRcdFx0e3sgZ2V0VGl0bGUoKSB9fVxuXHRcdDwvaDM+XG5cdFx0PGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gdGl0bGU9XCJjbG9zZVwiIChjbGljayk9XCJjYW5jZWwoKVwiPlxuXHRcdFx0PHNtYXJ0LWljb24gW2NvbG9yXT1cIidwcmltYXJ5J1wiIFtpY29uXT1cIidYJ1wiPjwvc21hcnQtaWNvbj5cblx0XHQ8L2J1dHRvbj5cblx0PC9kaXY+XG5cdDxwPlxuXHRcdHt7IGdldFRleHQoKSB9fVxuXHQ8L3A+XG5cdDxkaXYgY2xhc3M9XCJmb2xkZXJOYW1lRGlhbG9nQnV0dG9uc0NvbnRhaW5lclwiPlxuXHRcdDxidXR0b24gbWF0LWJ1dHRvbiBjb2xvcj1cImFjY2VudFwiIFtjb2xvcl09XCJnZXRDYW5jZWxCdXR0b25Db2xvcigpXCIgKGNsaWNrKT1cImNhbmNlbCgpXCI+XG5cdFx0XHR7eyBnZXRDYW5jZWxCdXR0b25MYWJlbCgpIH19XG5cdFx0PC9idXR0b24+XG5cdFx0PGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiBbY29sb3JdPVwiZ2V0QWN0aW9uQnV0dG9uQ29sb3IoKVwiIChjbGljayk9XCJkb0FjdGlvbigpXCI+XG5cdFx0XHR7eyBnZXRBY3Rpb25CdXR0b25MYWJlbCgpIH19XG5cdFx0PC9idXR0b24+XG5cdDwvZGl2PlxuPC9kaXY+XG4iXX0=
@@ -0,0 +1,47 @@
1
+ import { Injectable } from "@angular/core";
2
+ import { SmartdialogService } from "@smartbit4all/dialog";
3
+ import { Subject } from "rxjs";
4
+ import { UiActionConfirmDialogComponent } from "./ui-action-confirm-dialog.component";
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@angular/material/dialog";
7
+ import * as i2 from "@angular/router";
8
+ export class UiActionConfirmDialogService extends SmartdialogService {
9
+ constructor(dialog, router) {
10
+ super(dialog, router);
11
+ this._destroy$ = new Subject();
12
+ this.onAction = new Subject();
13
+ this.shouldDoAction = false;
14
+ }
15
+ openDialog() {
16
+ this.shouldDoAction = false;
17
+ this.onAction = new Subject();
18
+ const dialogData = {
19
+ content: {
20
+ title: "",
21
+ },
22
+ size: {},
23
+ customComponent: UiActionConfirmDialogComponent,
24
+ };
25
+ this.createDialog(dialogData, UiActionConfirmDialogComponent);
26
+ }
27
+ doAction() {
28
+ this.shouldDoAction = true;
29
+ this.onAction.complete();
30
+ this.closeDialog();
31
+ this.onAction = new Subject();
32
+ }
33
+ cancel() {
34
+ this.onAction.complete();
35
+ this.closeDialog();
36
+ this.onAction = new Subject();
37
+ }
38
+ }
39
+ UiActionConfirmDialogService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: UiActionConfirmDialogService, deps: [{ token: i1.MatDialog }, { token: i2.Router }], target: i0.ɵɵFactoryTarget.Injectable });
40
+ UiActionConfirmDialogService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: UiActionConfirmDialogService, providedIn: "root" });
41
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: UiActionConfirmDialogService, decorators: [{
42
+ type: Injectable,
43
+ args: [{
44
+ providedIn: "root",
45
+ }]
46
+ }], ctorParameters: function () { return [{ type: i1.MatDialog }, { type: i2.Router }]; } });
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktYWN0aW9uLWNvbmZpcm0tZGlhbG9nLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zbWFydC1uZy1jbGllbnQvc3JjL2xpYi92aWV3LWNvbnRleHQvc21hcnQtdWktYWN0aW9uL2RpYWxvZ3MvdWktYWN0aW9uLWNvbmZpcm0tZGlhbG9nL3VpLWFjdGlvbi1jb25maXJtLWRpYWxvZy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHM0MsT0FBTyxFQUFtQixrQkFBa0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRTNFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFL0IsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sc0NBQXNDLENBQUM7Ozs7QUFLdEYsTUFBTSxPQUFPLDRCQUE2QixTQUFRLGtCQUFrQjtJQVFoRSxZQUFZLE1BQWlCLEVBQUUsTUFBYztRQUN6QyxLQUFLLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBUjFCLGNBQVMsR0FBa0IsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUl6QyxhQUFRLEdBQWtCLElBQUksT0FBTyxFQUFFLENBQUM7UUFDeEMsbUJBQWMsR0FBWSxLQUFLLENBQUM7SUFJaEMsQ0FBQztJQUVRLFVBQVU7UUFDZixJQUFJLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQztRQUM1QixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7UUFDOUIsTUFBTSxVQUFVLEdBQW9CO1lBQ2hDLE9BQU8sRUFBRTtnQkFDTCxLQUFLLEVBQUUsRUFBRTthQUNaO1lBQ0QsSUFBSSxFQUFFLEVBQUU7WUFDUixlQUFlLEVBQUUsOEJBQThCO1NBQ2xELENBQUM7UUFDRixJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVUsRUFBRSw4QkFBOEIsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFFRCxRQUFRO1FBQ0osSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUM7UUFDM0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUN6QixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDbkIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO0lBQ2xDLENBQUM7SUFDRCxNQUFNO1FBQ0YsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUN6QixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDbkIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO0lBQ2xDLENBQUM7OzBIQW5DUSw0QkFBNEI7OEhBQTVCLDRCQUE0QixjQUZ6QixNQUFNOzRGQUVULDRCQUE0QjtrQkFIeEMsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IE1hdERpYWxvZyB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2dcIjtcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcbmltcG9ydCB7IFNtYXJ0RGlhbG9nRGF0YSwgU21hcnRkaWFsb2dTZXJ2aWNlIH0gZnJvbSBcIkBzbWFydGJpdDRhbGwvZGlhbG9nXCI7XG5cbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHsgVWlBY3Rpb24gfSBmcm9tIFwiLi4vLi4vLi4vYXBpXCI7XG5pbXBvcnQgeyBVaUFjdGlvbkNvbmZpcm1EaWFsb2dDb21wb25lbnQgfSBmcm9tIFwiLi91aS1hY3Rpb24tY29uZmlybS1kaWFsb2cuY29tcG9uZW50XCI7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiBcInJvb3RcIixcbn0pXG5leHBvcnQgY2xhc3MgVWlBY3Rpb25Db25maXJtRGlhbG9nU2VydmljZSBleHRlbmRzIFNtYXJ0ZGlhbG9nU2VydmljZSB7XG4gICAgX2Rlc3Ryb3kkOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3QoKTtcblxuICAgIGFjdGlvbiE6IFVpQWN0aW9uO1xuXG4gICAgb25BY3Rpb246IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdCgpO1xuICAgIHNob3VsZERvQWN0aW9uOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBjb25zdHJ1Y3RvcihkaWFsb2c6IE1hdERpYWxvZywgcm91dGVyOiBSb3V0ZXIpIHtcbiAgICAgICAgc3VwZXIoZGlhbG9nLCByb3V0ZXIpO1xuICAgIH1cblxuICAgIG92ZXJyaWRlIG9wZW5EaWFsb2coKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2hvdWxkRG9BY3Rpb24gPSBmYWxzZTtcbiAgICAgICAgdGhpcy5vbkFjdGlvbiA9IG5ldyBTdWJqZWN0KCk7XG4gICAgICAgIGNvbnN0IGRpYWxvZ0RhdGE6IFNtYXJ0RGlhbG9nRGF0YSA9IHtcbiAgICAgICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICAgICAgICB0aXRsZTogXCJcIixcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzaXplOiB7fSxcbiAgICAgICAgICAgIGN1c3RvbUNvbXBvbmVudDogVWlBY3Rpb25Db25maXJtRGlhbG9nQ29tcG9uZW50LFxuICAgICAgICB9O1xuICAgICAgICB0aGlzLmNyZWF0ZURpYWxvZyhkaWFsb2dEYXRhLCBVaUFjdGlvbkNvbmZpcm1EaWFsb2dDb21wb25lbnQpO1xuICAgIH1cblxuICAgIGRvQWN0aW9uKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNob3VsZERvQWN0aW9uID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5vbkFjdGlvbi5jb21wbGV0ZSgpO1xuICAgICAgICB0aGlzLmNsb3NlRGlhbG9nKCk7XG4gICAgICAgIHRoaXMub25BY3Rpb24gPSBuZXcgU3ViamVjdCgpO1xuICAgIH1cbiAgICBjYW5jZWwoKTogdm9pZCB7XG4gICAgICAgIHRoaXMub25BY3Rpb24uY29tcGxldGUoKTtcbiAgICAgICAgdGhpcy5jbG9zZURpYWxvZygpO1xuICAgICAgICB0aGlzLm9uQWN0aW9uID0gbmV3IFN1YmplY3QoKTtcbiAgICB9XG59XG4iXX0=
@@ -0,0 +1,112 @@
1
+ import { Component, ViewChild } from "@angular/core";
2
+ import { Validators } from "@angular/forms";
3
+ import { SmartFormWidgetDirection, SmartFormWidgetType, SmartValidatorName, } from "@smartbit4all/form";
4
+ import { UiActionInputType } from "../../../api";
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "./ui-action-input-dialog.service";
7
+ import * as i2 from "../../ui-action.descriptor.service";
8
+ import * as i3 from "@angular/material/button";
9
+ import * as i4 from "@smartbit4all/icon";
10
+ import * as i5 from "@smartbit4all/form";
11
+ export class UiActionInputDialogComponent {
12
+ constructor(service, manager) {
13
+ this.service = service;
14
+ this.manager = manager;
15
+ this.code = this.service.action.code;
16
+ this.setUp();
17
+ }
18
+ ngOnDestroy() {
19
+ this.service._destroy$.next();
20
+ this.cancel();
21
+ }
22
+ async setUp() {
23
+ this.descriptor = await this.manager.getActionDescriptor(this.service.action);
24
+ if (this.descriptor[this.service.inputTypeName]) {
25
+ this.dialogType = this.service.inputTypeName;
26
+ }
27
+ else {
28
+ this.dialogType = this.descriptor.inputDialog ? "inputDialog" : "dialog";
29
+ }
30
+ this.constructForm();
31
+ }
32
+ getTitle() {
33
+ return this.descriptor[this.dialogType].title;
34
+ }
35
+ getActionButtonLabel() {
36
+ return this.descriptor[this.dialogType].actionButton.caption;
37
+ }
38
+ getActionButtonColor() {
39
+ return this.descriptor[this.dialogType].actionButton.color;
40
+ }
41
+ getCancelButtonLabel() {
42
+ return this.descriptor[this.dialogType].cancelButton.caption;
43
+ }
44
+ getCancelButtonColor() {
45
+ return this.descriptor[this.dialogType].cancelButton.color;
46
+ }
47
+ constructForm() {
48
+ let model = {};
49
+ let inputName;
50
+ if (this.service.inputTypeName === "inputDialog") {
51
+ inputName = "input";
52
+ }
53
+ else {
54
+ inputName = "input2";
55
+ }
56
+ if (this.service.nodeName) {
57
+ model[inputName] = this.service.nodeName;
58
+ }
59
+ else {
60
+ model[inputName] = "";
61
+ }
62
+ let type;
63
+ let inputType = `${inputName}Type`;
64
+ if (this.service.action[inputType] === UiActionInputType.Textfield) {
65
+ type = SmartFormWidgetType.TEXT_FIELD;
66
+ }
67
+ else {
68
+ type = SmartFormWidgetType.TEXT_BOX;
69
+ }
70
+ this.folderForm = {
71
+ direction: SmartFormWidgetDirection.COL,
72
+ model,
73
+ widgets: [
74
+ {
75
+ key: inputName,
76
+ label: "",
77
+ type,
78
+ value: "",
79
+ validators: [
80
+ {
81
+ validator: Validators.required,
82
+ name: SmartValidatorName.required,
83
+ errorMessage: "Ez a mező kötelező",
84
+ },
85
+ ],
86
+ placeholder: this.descriptor[this.dialogType].placeholder ?? "",
87
+ showLabel: true,
88
+ },
89
+ ],
90
+ };
91
+ }
92
+ save() {
93
+ let form = this.folderFormChild.submitForm();
94
+ if (form.invalidFields) {
95
+ throw new Error("The form is invalid!");
96
+ }
97
+ this.service.onSave(form.model);
98
+ }
99
+ cancel() {
100
+ this.service.cancel();
101
+ }
102
+ }
103
+ UiActionInputDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: UiActionInputDialogComponent, deps: [{ token: i1.UiActionInputDialogService }, { token: i2.UiActionDescriptorService }], target: i0.ɵɵFactoryTarget.Component });
104
+ UiActionInputDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: UiActionInputDialogComponent, selector: "smart-ui-action-input-dialog", viewQueries: [{ propertyName: "folderFormChild", first: true, predicate: ["form"], descendants: true }], ngImport: i0, template: "<div class=\"folderNameDialogContainer\">\n\t<div class=\"headerContainer\">\n\t\t<h3 class=\"color-accent-700\">\n\t\t\t{{ getTitle() }}\n\t\t</h3>\n\t\t<button mat-icon-button title=\"close\" (click)=\"cancel()\">\n\t\t\t<smart-icon [color]=\"'primary'\" [icon]=\"'X'\"></smart-icon>\n\t\t</button>\n\t</div>\n\t<smartform #form [smartForm]=\"folderForm\"></smartform>\n\t<div class=\"folderNameDialogButtonsContainer\">\n\t\t<button mat-button color=\"accent\" [color]=\"getCancelButtonColor()\" (click)=\"cancel()\">\n\t\t\t{{ getCancelButtonLabel() }}\n\t\t</button>\n\t\t<button mat-raised-button [color]=\"getActionButtonColor()\" (click)=\"save()\">\n\t\t\t{{ getActionButtonLabel() }}\n\t\t</button>\n\t</div>\n</div>\n", styles: [".folderNameDialogContainer{width:25rem;display:flex;flex-direction:column;gap:1rem}.headerContainer{display:flex;flex-direction:row;justify-content:space-between}.headerContainer h3{margin:0}.folderNameDialogButtonsContainer{display:flex;flex-direction:row;justify-content:flex-end;gap:.5rem}\n"], components: [{ type: i3.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i4.SmartIconComponent, selector: "smart-icon", inputs: ["icon", "color"] }, { type: i5.SmartformComponent, selector: "smartform", inputs: ["smartForm"] }] });
105
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: UiActionInputDialogComponent, decorators: [{
106
+ type: Component,
107
+ args: [{ selector: "smart-ui-action-input-dialog", template: "<div class=\"folderNameDialogContainer\">\n\t<div class=\"headerContainer\">\n\t\t<h3 class=\"color-accent-700\">\n\t\t\t{{ getTitle() }}\n\t\t</h3>\n\t\t<button mat-icon-button title=\"close\" (click)=\"cancel()\">\n\t\t\t<smart-icon [color]=\"'primary'\" [icon]=\"'X'\"></smart-icon>\n\t\t</button>\n\t</div>\n\t<smartform #form [smartForm]=\"folderForm\"></smartform>\n\t<div class=\"folderNameDialogButtonsContainer\">\n\t\t<button mat-button color=\"accent\" [color]=\"getCancelButtonColor()\" (click)=\"cancel()\">\n\t\t\t{{ getCancelButtonLabel() }}\n\t\t</button>\n\t\t<button mat-raised-button [color]=\"getActionButtonColor()\" (click)=\"save()\">\n\t\t\t{{ getActionButtonLabel() }}\n\t\t</button>\n\t</div>\n</div>\n", styles: [".folderNameDialogContainer{width:25rem;display:flex;flex-direction:column;gap:1rem}.headerContainer{display:flex;flex-direction:row;justify-content:space-between}.headerContainer h3{margin:0}.folderNameDialogButtonsContainer{display:flex;flex-direction:row;justify-content:flex-end;gap:.5rem}\n"] }]
108
+ }], ctorParameters: function () { return [{ type: i1.UiActionInputDialogService }, { type: i2.UiActionDescriptorService }]; }, propDecorators: { folderFormChild: [{
109
+ type: ViewChild,
110
+ args: ["form"]
111
+ }] } });
112
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktYWN0aW9uLWlucHV0LWRpYWxvZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zbWFydC1uZy1jbGllbnQvc3JjL2xpYi92aWV3LWNvbnRleHQvc21hcnQtdWktYWN0aW9uL2RpYWxvZ3MvdWktYWN0aW9uLWlucHV0LWRpYWxvZy91aS1hY3Rpb24taW5wdXQtZGlhbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NtYXJ0LW5nLWNsaWVudC9zcmMvbGliL3ZpZXctY29udGV4dC9zbWFydC11aS1hY3Rpb24vZGlhbG9ncy91aS1hY3Rpb24taW5wdXQtZGlhbG9nL3VpLWFjdGlvbi1pbnB1dC1kaWFsb2cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzVDLE9BQU8sRUFHSCx3QkFBd0IsRUFDeEIsbUJBQW1CLEVBQ25CLGtCQUFrQixHQUNyQixNQUFNLG9CQUFvQixDQUFDO0FBQzVCLE9BQU8sRUFBc0IsaUJBQWlCLEVBQUUsTUFBTSxjQUFjLENBQUM7Ozs7Ozs7QUFXckUsTUFBTSxPQUFPLDRCQUE0QjtJQVNyQyxZQUNZLE9BQW1DLEVBQ25DLE9BQWtDO1FBRGxDLFlBQU8sR0FBUCxPQUFPLENBQTRCO1FBQ25DLFlBQU8sR0FBUCxPQUFPLENBQTJCO1FBRTFDLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSyxDQUFDO1FBQ3RDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNqQixDQUFDO0lBQ0QsV0FBVztRQUNQLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzlCLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUNsQixDQUFDO0lBRUQsS0FBSyxDQUFDLEtBQUs7UUFDUCxJQUFJLENBQUMsVUFBVSxHQUFHLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRTlFLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxFQUFFO1lBQzdDLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUM7U0FDaEQ7YUFBTTtZQUNILElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDO1NBQzVFO1FBRUQsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxRQUFRO1FBQ0osT0FBTyxJQUFJLENBQUMsVUFBVyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUUsQ0FBQyxLQUFLLENBQUM7SUFDcEQsQ0FBQztJQUVELG9CQUFvQjtRQUNoQixPQUFPLElBQUksQ0FBQyxVQUFXLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBRSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUM7SUFDbkUsQ0FBQztJQUNELG9CQUFvQjtRQUNoQixPQUFPLElBQUksQ0FBQyxVQUFXLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBRSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUM7SUFDakUsQ0FBQztJQUNELG9CQUFvQjtRQUNoQixPQUFPLElBQUksQ0FBQyxVQUFXLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBRSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUM7SUFDbkUsQ0FBQztJQUNELG9CQUFvQjtRQUNoQixPQUFPLElBQUksQ0FBQyxVQUFXLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBRSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUM7SUFDakUsQ0FBQztJQUVELGFBQWE7UUFDVCxJQUFJLEtBQUssR0FBUSxFQUFFLENBQUM7UUFDcEIsSUFBSSxTQUE2QixDQUFDO1FBRWxDLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLEtBQUssYUFBYSxFQUFFO1lBQzlDLFNBQVMsR0FBRyxPQUFPLENBQUM7U0FDdkI7YUFBTTtZQUNILFNBQVMsR0FBRyxRQUFRLENBQUM7U0FDeEI7UUFFRCxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFO1lBQ3ZCLEtBQUssQ0FBQyxTQUFTLENBQUMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQztTQUM1QzthQUFNO1lBQ0gsS0FBSyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQztTQUN6QjtRQUNELElBQUksSUFBeUIsQ0FBQztRQUM5QixJQUFJLFNBQVMsR0FBK0IsR0FBRyxTQUFTLE1BQU0sQ0FBQztRQUUvRCxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxLQUFLLGlCQUFpQixDQUFDLFNBQVMsRUFBRTtZQUNoRSxJQUFJLEdBQUcsbUJBQW1CLENBQUMsVUFBVSxDQUFDO1NBQ3pDO2FBQU07WUFDSCxJQUFJLEdBQUcsbUJBQW1CLENBQUMsUUFBUSxDQUFDO1NBQ3ZDO1FBQ0QsSUFBSSxDQUFDLFVBQVUsR0FBRztZQUNkLFNBQVMsRUFBRSx3QkFBd0IsQ0FBQyxHQUFHO1lBQ3ZDLEtBQUs7WUFDTCxPQUFPLEVBQUU7Z0JBQ0w7b0JBQ0ksR0FBRyxFQUFFLFNBQVM7b0JBQ2QsS0FBSyxFQUFFLEVBQUU7b0JBQ1QsSUFBSTtvQkFDSixLQUFLLEVBQUUsRUFBRTtvQkFDVCxVQUFVLEVBQUU7d0JBQ1I7NEJBQ0ksU0FBUyxFQUFFLFVBQVUsQ0FBQyxRQUFROzRCQUM5QixJQUFJLEVBQUUsa0JBQWtCLENBQUMsUUFBUTs0QkFDakMsWUFBWSxFQUFFLG9CQUFvQjt5QkFDckM7cUJBQ0o7b0JBQ0QsV0FBVyxFQUFFLElBQUksQ0FBQyxVQUFXLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBRSxDQUFDLFdBQVcsSUFBSSxFQUFFO29CQUNqRSxTQUFTLEVBQUUsSUFBSTtpQkFDbEI7YUFDSjtTQUNKLENBQUM7SUFDTixDQUFDO0lBRUQsSUFBSTtRQUNBLElBQUksSUFBSSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDN0MsSUFBSyxJQUFrQixDQUFDLGFBQWEsRUFBRTtZQUNuQyxNQUFNLElBQUksS0FBSyxDQUFDLHNCQUFzQixDQUFDLENBQUM7U0FDM0M7UUFDRCxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBRSxJQUFrQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFRCxNQUFNO1FBQ0YsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUMxQixDQUFDOzswSEExR1EsNEJBQTRCOzhHQUE1Qiw0QkFBNEIsNktDcEJ6QywwdEJBbUJBOzRGRENhLDRCQUE0QjtrQkFMeEMsU0FBUzsrQkFDSSw4QkFBOEI7eUpBS3JCLGVBQWU7c0JBQWpDLFNBQVM7dUJBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25EZXN0cm95LCBWaWV3Q2hpbGQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgVmFsaWRhdG9ycyB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xuaW1wb3J0IHtcbiAgICBTbWFydEZvcm0sXG4gICAgU21hcnRmb3JtQ29tcG9uZW50LFxuICAgIFNtYXJ0Rm9ybVdpZGdldERpcmVjdGlvbixcbiAgICBTbWFydEZvcm1XaWRnZXRUeXBlLFxuICAgIFNtYXJ0VmFsaWRhdG9yTmFtZSxcbn0gZnJvbSBcIkBzbWFydGJpdDRhbGwvZm9ybVwiO1xuaW1wb3J0IHsgVWlBY3Rpb25EZXNjcmlwdG9yLCBVaUFjdGlvbklucHV0VHlwZSB9IGZyb20gXCIuLi8uLi8uLi9hcGlcIjtcblxuaW1wb3J0IHsgVWlBY3Rpb25EZXNjcmlwdG9yU2VydmljZSB9IGZyb20gXCIuLi8uLi91aS1hY3Rpb24uZGVzY3JpcHRvci5zZXJ2aWNlXCI7XG5cbmltcG9ydCB7IFVpQWN0aW9uSW5wdXREaWFsb2dTZXJ2aWNlIH0gZnJvbSBcIi4vdWktYWN0aW9uLWlucHV0LWRpYWxvZy5zZXJ2aWNlXCI7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiBcInNtYXJ0LXVpLWFjdGlvbi1pbnB1dC1kaWFsb2dcIixcbiAgICB0ZW1wbGF0ZVVybDogXCIuL3VpLWFjdGlvbi1pbnB1dC1kaWFsb2cuY29tcG9uZW50Lmh0bWxcIixcbiAgICBzdHlsZVVybHM6IFtcIi4vdWktYWN0aW9uLWlucHV0LWRpYWxvZy5jb21wb25lbnQuY3NzXCJdLFxufSlcbmV4cG9ydCBjbGFzcyBVaUFjdGlvbklucHV0RGlhbG9nQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgICBAVmlld0NoaWxkKFwiZm9ybVwiKSBmb2xkZXJGb3JtQ2hpbGQhOiBTbWFydGZvcm1Db21wb25lbnQ7XG4gICAgY29kZSE6IHN0cmluZztcbiAgICBmb2xkZXJGb3JtITogU21hcnRGb3JtO1xuXG4gICAgZGlhbG9nVHlwZSE6IFwiZGlhbG9nXCIgfCBcImlucHV0RGlhbG9nXCIgfCBcImlucHV0MkRpYWxvZ1wiO1xuXG4gICAgZGVzY3JpcHRvcj86IFVpQWN0aW9uRGVzY3JpcHRvcjtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIHNlcnZpY2U6IFVpQWN0aW9uSW5wdXREaWFsb2dTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIG1hbmFnZXI6IFVpQWN0aW9uRGVzY3JpcHRvclNlcnZpY2VcbiAgICApIHtcbiAgICAgICAgdGhpcy5jb2RlID0gdGhpcy5zZXJ2aWNlLmFjdGlvbi5jb2RlITtcbiAgICAgICAgdGhpcy5zZXRVcCgpO1xuICAgIH1cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZXJ2aWNlLl9kZXN0cm95JC5uZXh0KCk7XG4gICAgICAgIHRoaXMuY2FuY2VsKCk7XG4gICAgfVxuXG4gICAgYXN5bmMgc2V0VXAoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIHRoaXMuZGVzY3JpcHRvciA9IGF3YWl0IHRoaXMubWFuYWdlci5nZXRBY3Rpb25EZXNjcmlwdG9yKHRoaXMuc2VydmljZS5hY3Rpb24pO1xuXG4gICAgICAgIGlmICh0aGlzLmRlc2NyaXB0b3JbdGhpcy5zZXJ2aWNlLmlucHV0VHlwZU5hbWVdKSB7XG4gICAgICAgICAgICB0aGlzLmRpYWxvZ1R5cGUgPSB0aGlzLnNlcnZpY2UuaW5wdXRUeXBlTmFtZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZGlhbG9nVHlwZSA9IHRoaXMuZGVzY3JpcHRvci5pbnB1dERpYWxvZyA/IFwiaW5wdXREaWFsb2dcIiA6IFwiZGlhbG9nXCI7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmNvbnN0cnVjdEZvcm0oKTtcbiAgICB9XG5cbiAgICBnZXRUaXRsZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5kZXNjcmlwdG9yIVt0aGlzLmRpYWxvZ1R5cGVdIS50aXRsZTtcbiAgICB9XG5cbiAgICBnZXRBY3Rpb25CdXR0b25MYWJlbCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5kZXNjcmlwdG9yIVt0aGlzLmRpYWxvZ1R5cGVdIS5hY3Rpb25CdXR0b24uY2FwdGlvbjtcbiAgICB9XG4gICAgZ2V0QWN0aW9uQnV0dG9uQ29sb3IoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGVzY3JpcHRvciFbdGhpcy5kaWFsb2dUeXBlXSEuYWN0aW9uQnV0dG9uLmNvbG9yO1xuICAgIH1cbiAgICBnZXRDYW5jZWxCdXR0b25MYWJlbCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5kZXNjcmlwdG9yIVt0aGlzLmRpYWxvZ1R5cGVdIS5jYW5jZWxCdXR0b24uY2FwdGlvbjtcbiAgICB9XG4gICAgZ2V0Q2FuY2VsQnV0dG9uQ29sb3IoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGVzY3JpcHRvciFbdGhpcy5kaWFsb2dUeXBlXSEuY2FuY2VsQnV0dG9uLmNvbG9yO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdEZvcm0oKTogdm9pZCB7XG4gICAgICAgIGxldCBtb2RlbDogYW55ID0ge307XG4gICAgICAgIGxldCBpbnB1dE5hbWU6IFwiaW5wdXRcIiB8IFwiaW5wdXQyXCI7XG5cbiAgICAgICAgaWYgKHRoaXMuc2VydmljZS5pbnB1dFR5cGVOYW1lID09PSBcImlucHV0RGlhbG9nXCIpIHtcbiAgICAgICAgICAgIGlucHV0TmFtZSA9IFwiaW5wdXRcIjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlucHV0TmFtZSA9IFwiaW5wdXQyXCI7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5zZXJ2aWNlLm5vZGVOYW1lKSB7XG4gICAgICAgICAgICBtb2RlbFtpbnB1dE5hbWVdID0gdGhpcy5zZXJ2aWNlLm5vZGVOYW1lO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbW9kZWxbaW5wdXROYW1lXSA9IFwiXCI7XG4gICAgICAgIH1cbiAgICAgICAgbGV0IHR5cGU6IFNtYXJ0Rm9ybVdpZGdldFR5cGU7XG4gICAgICAgIGxldCBpbnB1dFR5cGU6IFwiaW5wdXRUeXBlXCIgfCBcImlucHV0MlR5cGVcIiA9IGAke2lucHV0TmFtZX1UeXBlYDtcblxuICAgICAgICBpZiAodGhpcy5zZXJ2aWNlLmFjdGlvbltpbnB1dFR5cGVdID09PSBVaUFjdGlvbklucHV0VHlwZS5UZXh0ZmllbGQpIHtcbiAgICAgICAgICAgIHR5cGUgPSBTbWFydEZvcm1XaWRnZXRUeXBlLlRFWFRfRklFTEQ7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0eXBlID0gU21hcnRGb3JtV2lkZ2V0VHlwZS5URVhUX0JPWDtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmZvbGRlckZvcm0gPSB7XG4gICAgICAgICAgICBkaXJlY3Rpb246IFNtYXJ0Rm9ybVdpZGdldERpcmVjdGlvbi5DT0wsXG4gICAgICAgICAgICBtb2RlbCxcbiAgICAgICAgICAgIHdpZGdldHM6IFtcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGtleTogaW5wdXROYW1lLFxuICAgICAgICAgICAgICAgICAgICBsYWJlbDogXCJcIixcbiAgICAgICAgICAgICAgICAgICAgdHlwZSxcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IFwiXCIsXG4gICAgICAgICAgICAgICAgICAgIHZhbGlkYXRvcnM6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWxpZGF0b3I6IFZhbGlkYXRvcnMucmVxdWlyZWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogU21hcnRWYWxpZGF0b3JOYW1lLnJlcXVpcmVkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yTWVzc2FnZTogXCJFeiBhIG1lesWRIGvDtnRlbGV6xZFcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyOiB0aGlzLmRlc2NyaXB0b3IhW3RoaXMuZGlhbG9nVHlwZV0hLnBsYWNlaG9sZGVyID8/IFwiXCIsXG4gICAgICAgICAgICAgICAgICAgIHNob3dMYWJlbDogdHJ1ZSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgXSxcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBzYXZlKCk6IHZvaWQge1xuICAgICAgICBsZXQgZm9ybSA9IHRoaXMuZm9sZGVyRm9ybUNoaWxkLnN1Ym1pdEZvcm0oKTtcbiAgICAgICAgaWYgKChmb3JtIGFzIFNtYXJ0Rm9ybSkuaW52YWxpZEZpZWxkcykge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiVGhlIGZvcm0gaXMgaW52YWxpZCFcIik7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zZXJ2aWNlLm9uU2F2ZSgoZm9ybSBhcyBTbWFydEZvcm0pLm1vZGVsKTtcbiAgICB9XG5cbiAgICBjYW5jZWwoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2VydmljZS5jYW5jZWwoKTtcbiAgICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZm9sZGVyTmFtZURpYWxvZ0NvbnRhaW5lclwiPlxuXHQ8ZGl2IGNsYXNzPVwiaGVhZGVyQ29udGFpbmVyXCI+XG5cdFx0PGgzIGNsYXNzPVwiY29sb3ItYWNjZW50LTcwMFwiPlxuXHRcdFx0e3sgZ2V0VGl0bGUoKSB9fVxuXHRcdDwvaDM+XG5cdFx0PGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gdGl0bGU9XCJjbG9zZVwiIChjbGljayk9XCJjYW5jZWwoKVwiPlxuXHRcdFx0PHNtYXJ0LWljb24gW2NvbG9yXT1cIidwcmltYXJ5J1wiIFtpY29uXT1cIidYJ1wiPjwvc21hcnQtaWNvbj5cblx0XHQ8L2J1dHRvbj5cblx0PC9kaXY+XG5cdDxzbWFydGZvcm0gI2Zvcm0gW3NtYXJ0Rm9ybV09XCJmb2xkZXJGb3JtXCI+PC9zbWFydGZvcm0+XG5cdDxkaXYgY2xhc3M9XCJmb2xkZXJOYW1lRGlhbG9nQnV0dG9uc0NvbnRhaW5lclwiPlxuXHRcdDxidXR0b24gbWF0LWJ1dHRvbiBjb2xvcj1cImFjY2VudFwiIFtjb2xvcl09XCJnZXRDYW5jZWxCdXR0b25Db2xvcigpXCIgKGNsaWNrKT1cImNhbmNlbCgpXCI+XG5cdFx0XHR7eyBnZXRDYW5jZWxCdXR0b25MYWJlbCgpIH19XG5cdFx0PC9idXR0b24+XG5cdFx0PGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiBbY29sb3JdPVwiZ2V0QWN0aW9uQnV0dG9uQ29sb3IoKVwiIChjbGljayk9XCJzYXZlKClcIj5cblx0XHRcdHt7IGdldEFjdGlvbkJ1dHRvbkxhYmVsKCkgfX1cblx0XHQ8L2J1dHRvbj5cblx0PC9kaXY+XG48L2Rpdj5cbiJdfQ==
@@ -0,0 +1,51 @@
1
+ import { Injectable } from "@angular/core";
2
+ import { SmartdialogService } from "@smartbit4all/dialog";
3
+ import { Subject } from "rxjs";
4
+ import { UiActionInputDialogComponent } from "./ui-action-input-dialog.component";
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@angular/material/dialog";
7
+ import * as i2 from "@angular/router";
8
+ export class UiActionInputDialogService extends SmartdialogService {
9
+ constructor(dialog, router) {
10
+ super(dialog, router);
11
+ this._destroy$ = new Subject();
12
+ this.onAction = new Subject();
13
+ }
14
+ setDataAndOpenDialog(action, nodeName) {
15
+ this.action = action;
16
+ this.nodeName = nodeName;
17
+ this.openDialog();
18
+ }
19
+ openDialog() {
20
+ this.params = undefined;
21
+ this.onAction = new Subject();
22
+ const dialogData = {
23
+ content: {
24
+ title: "",
25
+ },
26
+ size: {},
27
+ customComponent: UiActionInputDialogComponent,
28
+ };
29
+ this.createDialog(dialogData, UiActionInputDialogComponent);
30
+ }
31
+ async onSave(params) {
32
+ this.params = params;
33
+ this.onAction.complete();
34
+ this.closeDialog();
35
+ this.onAction = new Subject();
36
+ }
37
+ cancel() {
38
+ this.onAction.complete();
39
+ this.closeDialog();
40
+ this.onAction = new Subject();
41
+ }
42
+ }
43
+ UiActionInputDialogService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: UiActionInputDialogService, deps: [{ token: i1.MatDialog }, { token: i2.Router }], target: i0.ɵɵFactoryTarget.Injectable });
44
+ UiActionInputDialogService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: UiActionInputDialogService, providedIn: "root" });
45
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: UiActionInputDialogService, decorators: [{
46
+ type: Injectable,
47
+ args: [{
48
+ providedIn: "root",
49
+ }]
50
+ }], ctorParameters: function () { return [{ type: i1.MatDialog }, { type: i2.Router }]; } });
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktYWN0aW9uLWlucHV0LWRpYWxvZy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc21hcnQtbmctY2xpZW50L3NyYy9saWIvdmlldy1jb250ZXh0L3NtYXJ0LXVpLWFjdGlvbi9kaWFsb2dzL3VpLWFjdGlvbi1pbnB1dC1kaWFsb2cvdWktYWN0aW9uLWlucHV0LWRpYWxvZy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHM0MsT0FBTyxFQUFtQixrQkFBa0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRTNFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFL0IsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sb0NBQW9DLENBQUM7Ozs7QUFLbEYsTUFBTSxPQUFPLDBCQUEyQixTQUFRLGtCQUFrQjtJQVU5RCxZQUFZLE1BQWlCLEVBQUUsTUFBYztRQUN6QyxLQUFLLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBVjFCLGNBQVMsR0FBa0IsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQU16QyxhQUFRLEdBQThCLElBQUksT0FBTyxFQUFFLENBQUM7SUFLcEQsQ0FBQztJQUVELG9CQUFvQixDQUFDLE1BQWdCLEVBQUUsUUFBaUI7UUFDcEQsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDckIsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7UUFDekIsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFUSxVQUFVO1FBQ2YsSUFBSSxDQUFDLE1BQU0sR0FBRyxTQUFTLENBQUM7UUFDeEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO1FBQzlCLE1BQU0sVUFBVSxHQUFvQjtZQUNoQyxPQUFPLEVBQUU7Z0JBQ0wsS0FBSyxFQUFFLEVBQUU7YUFDWjtZQUNELElBQUksRUFBRSxFQUFFO1lBQ1IsZUFBZSxFQUFFLDRCQUE0QjtTQUNoRCxDQUFDO1FBQ0YsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLEVBQUUsNEJBQTRCLENBQUMsQ0FBQztJQUNoRSxDQUFDO0lBRUQsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFXO1FBQ3BCLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDekIsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ25CLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztJQUNsQyxDQUFDO0lBRUQsTUFBTTtRQUNGLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDekIsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ25CLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztJQUNsQyxDQUFDOzt3SEE1Q1EsMEJBQTBCOzRIQUExQiwwQkFBMEIsY0FGdkIsTUFBTTs0RkFFVCwwQkFBMEI7a0JBSHRDLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nXCI7XG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tIFwiQGFuZ3VsYXIvcm91dGVyXCI7XG5pbXBvcnQgeyBTbWFydERpYWxvZ0RhdGEsIFNtYXJ0ZGlhbG9nU2VydmljZSB9IGZyb20gXCJAc21hcnRiaXQ0YWxsL2RpYWxvZ1wiO1xuXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7IFVpQWN0aW9uLCBVaUFjdGlvblJlcXVlc3QgfSBmcm9tIFwiLi4vLi4vLi4vYXBpXCI7XG5pbXBvcnQgeyBVaUFjdGlvbklucHV0RGlhbG9nQ29tcG9uZW50IH0gZnJvbSBcIi4vdWktYWN0aW9uLWlucHV0LWRpYWxvZy5jb21wb25lbnRcIjtcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46IFwicm9vdFwiLFxufSlcbmV4cG9ydCBjbGFzcyBVaUFjdGlvbklucHV0RGlhbG9nU2VydmljZSBleHRlbmRzIFNtYXJ0ZGlhbG9nU2VydmljZSB7XG4gICAgX2Rlc3Ryb3kkOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3QoKTtcblxuICAgIGlucHV0VHlwZU5hbWUhOiBcImlucHV0RGlhbG9nXCIgfCBcImlucHV0MkRpYWxvZ1wiO1xuICAgIGFjdGlvbiE6IFVpQWN0aW9uO1xuICAgIG5vZGVOYW1lPzogc3RyaW5nO1xuXG4gICAgb25BY3Rpb246IFN1YmplY3Q8RWRpdEZvbGRlckFjdGlvbj4gPSBuZXcgU3ViamVjdCgpO1xuICAgIHBhcmFtcz86IGFueTtcblxuICAgIGNvbnN0cnVjdG9yKGRpYWxvZzogTWF0RGlhbG9nLCByb3V0ZXI6IFJvdXRlcikge1xuICAgICAgICBzdXBlcihkaWFsb2csIHJvdXRlcik7XG4gICAgfVxuXG4gICAgc2V0RGF0YUFuZE9wZW5EaWFsb2coYWN0aW9uOiBVaUFjdGlvbiwgbm9kZU5hbWU/OiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5hY3Rpb24gPSBhY3Rpb247XG4gICAgICAgIHRoaXMubm9kZU5hbWUgPSBub2RlTmFtZTtcbiAgICAgICAgdGhpcy5vcGVuRGlhbG9nKCk7XG4gICAgfVxuXG4gICAgb3ZlcnJpZGUgb3BlbkRpYWxvZygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5wYXJhbXMgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMub25BY3Rpb24gPSBuZXcgU3ViamVjdCgpO1xuICAgICAgICBjb25zdCBkaWFsb2dEYXRhOiBTbWFydERpYWxvZ0RhdGEgPSB7XG4gICAgICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgICAgICAgdGl0bGU6IFwiXCIsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc2l6ZToge30sXG4gICAgICAgICAgICBjdXN0b21Db21wb25lbnQ6IFVpQWN0aW9uSW5wdXREaWFsb2dDb21wb25lbnQsXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuY3JlYXRlRGlhbG9nKGRpYWxvZ0RhdGEsIFVpQWN0aW9uSW5wdXREaWFsb2dDb21wb25lbnQpO1xuICAgIH1cblxuICAgIGFzeW5jIG9uU2F2ZShwYXJhbXM6IGFueSk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICB0aGlzLnBhcmFtcyA9IHBhcmFtcztcbiAgICAgICAgdGhpcy5vbkFjdGlvbi5jb21wbGV0ZSgpO1xuICAgICAgICB0aGlzLmNsb3NlRGlhbG9nKCk7XG4gICAgICAgIHRoaXMub25BY3Rpb24gPSBuZXcgU3ViamVjdCgpO1xuICAgIH1cblxuICAgIGNhbmNlbCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vbkFjdGlvbi5jb21wbGV0ZSgpO1xuICAgICAgICB0aGlzLmNsb3NlRGlhbG9nKCk7XG4gICAgICAgIHRoaXMub25BY3Rpb24gPSBuZXcgU3ViamVjdCgpO1xuICAgIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBFZGl0Rm9sZGVyQWN0aW9uIHtcbiAgICBub2RlSWQ6IHN0cmluZztcbiAgICB1aUFjdGlvblJlcXVlc3Q6IFVpQWN0aW9uUmVxdWVzdDtcbn1cbiJdfQ==
@@ -0,0 +1,81 @@
1
+ import { Component, Input } from "@angular/core";
2
+ import { UiActionButtonIconPos, UiActionButtonType } from "../api";
3
+ import { Subject, takeUntil } from "rxjs";
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "./ui-action.service";
6
+ import * as i2 from "./ui-action.descriptor.service";
7
+ import * as i3 from "@angular/material/button";
8
+ import * as i4 from "@smartbit4all/icon";
9
+ import * as i5 from "@angular/common";
10
+ export class UiActionToolbarComponent {
11
+ constructor(service, manager) {
12
+ this.service = service;
13
+ this.manager = manager;
14
+ this._destroy$ = new Subject();
15
+ this.manager.languageChanged.pipe(takeUntil(this._destroy$)).subscribe(() => {
16
+ this.setUp();
17
+ });
18
+ }
19
+ ngOnInit() {
20
+ this.setUp();
21
+ }
22
+ ngOnChanges(changes) {
23
+ let uiActionModels = changes["uiActionModels"].currentValue;
24
+ if (uiActionModels) {
25
+ this.uiActionModels = uiActionModels;
26
+ this.setUp();
27
+ }
28
+ }
29
+ ngOnDestroy() {
30
+ this._destroy$.next();
31
+ }
32
+ async setUp() {
33
+ this.uiActionModelsWithDescriptions = await Promise.all(this.uiActionModels.map(async (uiActionModel) => {
34
+ uiActionModel.descriptor = await this.manager.getActionDescriptor(uiActionModel.uiAction);
35
+ return uiActionModel;
36
+ }));
37
+ }
38
+ onActionClicked(event, uiActionModel) {
39
+ event.stopPropagation();
40
+ this.service.uiActionModel = uiActionModel;
41
+ this.service.execute(uiActionModel.uiAction);
42
+ }
43
+ getType(uiActionModel) {
44
+ switch (uiActionModel.descriptor?.type) {
45
+ case UiActionButtonType.Normal:
46
+ return "mat-button";
47
+ case UiActionButtonType.Flat:
48
+ return "mat-flat-button";
49
+ case UiActionButtonType.Raised:
50
+ return "mat-raised-button";
51
+ case UiActionButtonType.Stroked:
52
+ return "mat-stroked-button";
53
+ case UiActionButtonType.Icon:
54
+ return "mat-icon-button";
55
+ case UiActionButtonType.MiniFab:
56
+ return "mat-mini-fab";
57
+ case UiActionButtonType.Fab:
58
+ return "mat-fab";
59
+ default:
60
+ console.log(`Unhandled action button type case: ${uiActionModel.descriptor?.type}`);
61
+ return `mat-button`;
62
+ }
63
+ }
64
+ iconPosition() {
65
+ return UiActionButtonIconPos;
66
+ }
67
+ isOnlyIcon(uiActionModel) {
68
+ return (uiActionModel.descriptor?.type === UiActionButtonType.Icon ||
69
+ uiActionModel.descriptor?.type === UiActionButtonType.MiniFab ||
70
+ uiActionModel.descriptor?.type === UiActionButtonType.Fab);
71
+ }
72
+ }
73
+ UiActionToolbarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: UiActionToolbarComponent, deps: [{ token: i1.UiActionService }, { token: i2.UiActionDescriptorService }], target: i0.ɵɵFactoryTarget.Component });
74
+ UiActionToolbarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: UiActionToolbarComponent, selector: "smart-ui-action-toolbar", inputs: { uiActionModels: "uiActionModels" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"uiActionButtonsContainer\">\n <button\n *ngFor=\"let uiActionModel of uiActionModelsWithDescriptions\"\n mat-button\n [ngClass]=\"getType(uiActionModel)\"\n class=\"{{ uiActionModel.cssClass }}\"\n [color]=\"uiActionModel.descriptor?.color\"\n (click)=\"onActionClicked($event, uiActionModel)\"\n >\n <div *ngIf=\"isOnlyIcon(uiActionModel); then iconOnly; else text\"></div>\n <ng-template #iconOnly>\n <smart-icon\n *ngIf=\"uiActionModel.descriptor?.icon\"\n [icon]=\"uiActionModel.descriptor!.icon!\"\n [color]=\"uiActionModel.descriptor?.iconColor ?? uiActionModel.descriptor?.color\"\n ></smart-icon>\n </ng-template>\n <ng-template #text>\n <smart-icon\n *ngIf=\"\n uiActionModel.descriptor?.icon &&\n uiActionModel.descriptor?.iconPosition === iconPosition().Pre\n \"\n [icon]=\"uiActionModel.descriptor!.icon!\"\n [color]=\"uiActionModel.descriptor?.iconColor ?? uiActionModel.descriptor?.color\"\n ></smart-icon>\n {{ uiActionModel.descriptor?.title }}\n <smart-icon\n *ngIf=\"\n uiActionModel.descriptor?.icon &&\n uiActionModel.descriptor?.iconPosition === iconPosition().Post\n \"\n [icon]=\"uiActionModel.descriptor!.icon!\"\n [color]=\"uiActionModel.descriptor?.iconColor ?? uiActionModel.descriptor?.color\"\n ></smart-icon>\n </ng-template>\n </button>\n</div>\n", styles: [".uiActionButtonsContainer{display:flex;flex-direction:row;gap:1rem;flex-wrap:wrap;min-height:2.25rem}\n"], components: [{ type: i3.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i4.SmartIconComponent, selector: "smart-icon", inputs: ["icon", "color"] }], directives: [{ type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
75
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: UiActionToolbarComponent, decorators: [{
76
+ type: Component,
77
+ args: [{ selector: "smart-ui-action-toolbar", template: "<div class=\"uiActionButtonsContainer\">\n <button\n *ngFor=\"let uiActionModel of uiActionModelsWithDescriptions\"\n mat-button\n [ngClass]=\"getType(uiActionModel)\"\n class=\"{{ uiActionModel.cssClass }}\"\n [color]=\"uiActionModel.descriptor?.color\"\n (click)=\"onActionClicked($event, uiActionModel)\"\n >\n <div *ngIf=\"isOnlyIcon(uiActionModel); then iconOnly; else text\"></div>\n <ng-template #iconOnly>\n <smart-icon\n *ngIf=\"uiActionModel.descriptor?.icon\"\n [icon]=\"uiActionModel.descriptor!.icon!\"\n [color]=\"uiActionModel.descriptor?.iconColor ?? uiActionModel.descriptor?.color\"\n ></smart-icon>\n </ng-template>\n <ng-template #text>\n <smart-icon\n *ngIf=\"\n uiActionModel.descriptor?.icon &&\n uiActionModel.descriptor?.iconPosition === iconPosition().Pre\n \"\n [icon]=\"uiActionModel.descriptor!.icon!\"\n [color]=\"uiActionModel.descriptor?.iconColor ?? uiActionModel.descriptor?.color\"\n ></smart-icon>\n {{ uiActionModel.descriptor?.title }}\n <smart-icon\n *ngIf=\"\n uiActionModel.descriptor?.icon &&\n uiActionModel.descriptor?.iconPosition === iconPosition().Post\n \"\n [icon]=\"uiActionModel.descriptor!.icon!\"\n [color]=\"uiActionModel.descriptor?.iconColor ?? uiActionModel.descriptor?.color\"\n ></smart-icon>\n </ng-template>\n </button>\n</div>\n", styles: [".uiActionButtonsContainer{display:flex;flex-direction:row;gap:1rem;flex-wrap:wrap;min-height:2.25rem}\n"] }]
78
+ }], ctorParameters: function () { return [{ type: i1.UiActionService }, { type: i2.UiActionDescriptorService }]; }, propDecorators: { uiActionModels: [{
79
+ type: Input
80
+ }] } });
81
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktYWN0aW9uLXRvb2xiYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc21hcnQtbmctY2xpZW50L3NyYy9saWIvdmlldy1jb250ZXh0L3NtYXJ0LXVpLWFjdGlvbi91aS1hY3Rpb24tdG9vbGJhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zbWFydC1uZy1jbGllbnQvc3JjL2xpYi92aWV3LWNvbnRleHQvc21hcnQtdWktYWN0aW9uL3VpLWFjdGlvbi10b29sYmFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUErQyxNQUFNLGVBQWUsQ0FBQztBQUM5RixPQUFPLEVBQUUscUJBQXFCLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFJbkUsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7QUFPMUMsTUFBTSxPQUFPLHdCQUF3QjtJQU9qQyxZQUFvQixPQUF3QixFQUFVLE9BQWtDO1FBQXBFLFlBQU8sR0FBUCxPQUFPLENBQWlCO1FBQVUsWUFBTyxHQUFQLE9BQU8sQ0FBMkI7UUFOaEYsY0FBUyxHQUFrQixJQUFJLE9BQU8sRUFBRSxDQUFDO1FBTzdDLElBQUksQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUN4RSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDakIsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsUUFBUTtRQUNKLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNqQixDQUFDO0lBQ0QsV0FBVyxDQUFDLE9BQXNCO1FBQzlCLElBQUksY0FBYyxHQUFHLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLFlBQVksQ0FBQztRQUM1RCxJQUFJLGNBQWMsRUFBRTtZQUNoQixJQUFJLENBQUMsY0FBYyxHQUFHLGNBQWMsQ0FBQztZQUNyQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7U0FDaEI7SUFDTCxDQUFDO0lBQ0QsV0FBVztRQUNQLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVELEtBQUssQ0FBQyxLQUFLO1FBQ1AsSUFBSSxDQUFDLDhCQUE4QixHQUFHLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FDbkQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLGFBQTRCLEVBQUUsRUFBRTtZQUMzRCxhQUFhLENBQUMsVUFBVSxHQUFHLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsQ0FDN0QsYUFBYSxDQUFDLFFBQVEsQ0FDekIsQ0FBQztZQUVGLE9BQU8sYUFBYSxDQUFDO1FBQ3pCLENBQUMsQ0FBQyxDQUNMLENBQUM7SUFDTixDQUFDO0lBRUQsZUFBZSxDQUFDLEtBQVUsRUFBRSxhQUE0QjtRQUNwRCxLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7UUFFeEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLEdBQUcsYUFBYSxDQUFDO1FBQzNDLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQsT0FBTyxDQUFDLGFBQTRCO1FBQ2hDLFFBQVEsYUFBYSxDQUFDLFVBQVUsRUFBRSxJQUFJLEVBQUU7WUFDcEMsS0FBSyxrQkFBa0IsQ0FBQyxNQUFNO2dCQUMxQixPQUFPLFlBQVksQ0FBQztZQUN4QixLQUFLLGtCQUFrQixDQUFDLElBQUk7Z0JBQ3hCLE9BQU8saUJBQWlCLENBQUM7WUFDN0IsS0FBSyxrQkFBa0IsQ0FBQyxNQUFNO2dCQUMxQixPQUFPLG1CQUFtQixDQUFDO1lBQy9CLEtBQUssa0JBQWtCLENBQUMsT0FBTztnQkFDM0IsT0FBTyxvQkFBb0IsQ0FBQztZQUNoQyxLQUFLLGtCQUFrQixDQUFDLElBQUk7Z0JBQ3hCLE9BQU8saUJBQWlCLENBQUM7WUFDN0IsS0FBSyxrQkFBa0IsQ0FBQyxPQUFPO2dCQUMzQixPQUFPLGNBQWMsQ0FBQztZQUMxQixLQUFLLGtCQUFrQixDQUFDLEdBQUc7Z0JBQ3ZCLE9BQU8sU0FBUyxDQUFDO1lBQ3JCO2dCQUNJLE9BQU8sQ0FBQyxHQUFHLENBQUMsc0NBQXNDLGFBQWEsQ0FBQyxVQUFVLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztnQkFDcEYsT0FBTyxZQUFZLENBQUM7U0FDM0I7SUFDTCxDQUFDO0lBRUQsWUFBWTtRQUNSLE9BQU8scUJBQXFCLENBQUM7SUFDakMsQ0FBQztJQUVELFVBQVUsQ0FBQyxhQUE0QjtRQUNuQyxPQUFPLENBQ0gsYUFBYSxDQUFDLFVBQVUsRUFBRSxJQUFJLEtBQUssa0JBQWtCLENBQUMsSUFBSTtZQUMxRCxhQUFhLENBQUMsVUFBVSxFQUFFLElBQUksS0FBSyxrQkFBa0IsQ0FBQyxPQUFPO1lBQzdELGFBQWEsQ0FBQyxVQUFVLEVBQUUsSUFBSSxLQUFLLGtCQUFrQixDQUFDLEdBQUcsQ0FDNUQsQ0FBQztJQUNOLENBQUM7O3NIQTlFUSx3QkFBd0I7MEdBQXhCLHdCQUF3QixrSUNackMsZ3FEQXNDQTs0RkQxQmEsd0JBQXdCO2tCQUxwQyxTQUFTOytCQUNJLHlCQUF5Qjs4SUFPMUIsY0FBYztzQkFBdEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uQ2hhbmdlcywgT25EZXN0cm95LCBPbkluaXQsIFNpbXBsZUNoYW5nZXMgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgVWlBY3Rpb25CdXR0b25JY29uUG9zLCBVaUFjdGlvbkJ1dHRvblR5cGUgfSBmcm9tIFwiLi4vYXBpXCI7XG5pbXBvcnQgeyBVaUFjdGlvbkRlc2NyaXB0b3JTZXJ2aWNlIH0gZnJvbSBcIi4vdWktYWN0aW9uLmRlc2NyaXB0b3Iuc2VydmljZVwiO1xuaW1wb3J0IHsgVWlBY3Rpb25Nb2RlbCB9IGZyb20gXCIuL3VpLWFjdGlvbi5tb2RlbFwiO1xuaW1wb3J0IHsgVWlBY3Rpb25TZXJ2aWNlIH0gZnJvbSBcIi4vdWktYWN0aW9uLnNlcnZpY2VcIjtcbmltcG9ydCB7IFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gXCJyeGpzXCI7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiBcInNtYXJ0LXVpLWFjdGlvbi10b29sYmFyXCIsXG4gICAgdGVtcGxhdGVVcmw6IFwiLi91aS1hY3Rpb24tdG9vbGJhci5jb21wb25lbnQuaHRtbFwiLFxuICAgIHN0eWxlVXJsczogW1wiLi91aS1hY3Rpb24tdG9vbGJhci5jb21wb25lbnQuY3NzXCJdLFxufSlcbmV4cG9ydCBjbGFzcyBVaUFjdGlvblRvb2xiYXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcbiAgICBwcml2YXRlIF9kZXN0cm95JDogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgICBASW5wdXQoKSB1aUFjdGlvbk1vZGVscyE6IFVpQWN0aW9uTW9kZWxbXTtcblxuICAgIHVpQWN0aW9uTW9kZWxzV2l0aERlc2NyaXB0aW9ucz86IFVpQWN0aW9uTW9kZWxbXTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgc2VydmljZTogVWlBY3Rpb25TZXJ2aWNlLCBwcml2YXRlIG1hbmFnZXI6IFVpQWN0aW9uRGVzY3JpcHRvclNlcnZpY2UpIHtcbiAgICAgICAgdGhpcy5tYW5hZ2VyLmxhbmd1YWdlQ2hhbmdlZC5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnNldFVwKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNldFVwKCk7XG4gICAgfVxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgbGV0IHVpQWN0aW9uTW9kZWxzID0gY2hhbmdlc1tcInVpQWN0aW9uTW9kZWxzXCJdLmN1cnJlbnRWYWx1ZTtcbiAgICAgICAgaWYgKHVpQWN0aW9uTW9kZWxzKSB7XG4gICAgICAgICAgICB0aGlzLnVpQWN0aW9uTW9kZWxzID0gdWlBY3Rpb25Nb2RlbHM7XG4gICAgICAgICAgICB0aGlzLnNldFVwKCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2Rlc3Ryb3kkLm5leHQoKTtcbiAgICB9XG5cbiAgICBhc3luYyBzZXRVcCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgdGhpcy51aUFjdGlvbk1vZGVsc1dpdGhEZXNjcmlwdGlvbnMgPSBhd2FpdCBQcm9taXNlLmFsbChcbiAgICAgICAgICAgIHRoaXMudWlBY3Rpb25Nb2RlbHMubWFwKGFzeW5jICh1aUFjdGlvbk1vZGVsOiBVaUFjdGlvbk1vZGVsKSA9PiB7XG4gICAgICAgICAgICAgICAgdWlBY3Rpb25Nb2RlbC5kZXNjcmlwdG9yID0gYXdhaXQgdGhpcy5tYW5hZ2VyLmdldEFjdGlvbkRlc2NyaXB0b3IoXG4gICAgICAgICAgICAgICAgICAgIHVpQWN0aW9uTW9kZWwudWlBY3Rpb25cbiAgICAgICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAgICAgcmV0dXJuIHVpQWN0aW9uTW9kZWw7XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIG9uQWN0aW9uQ2xpY2tlZChldmVudDogYW55LCB1aUFjdGlvbk1vZGVsOiBVaUFjdGlvbk1vZGVsKTogdm9pZCB7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuXG4gICAgICAgIHRoaXMuc2VydmljZS51aUFjdGlvbk1vZGVsID0gdWlBY3Rpb25Nb2RlbDtcbiAgICAgICAgdGhpcy5zZXJ2aWNlLmV4ZWN1dGUodWlBY3Rpb25Nb2RlbC51aUFjdGlvbik7XG4gICAgfVxuXG4gICAgZ2V0VHlwZSh1aUFjdGlvbk1vZGVsOiBVaUFjdGlvbk1vZGVsKTogc3RyaW5nIHtcbiAgICAgICAgc3dpdGNoICh1aUFjdGlvbk1vZGVsLmRlc2NyaXB0b3I/LnR5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgVWlBY3Rpb25CdXR0b25UeXBlLk5vcm1hbDpcbiAgICAgICAgICAgICAgICByZXR1cm4gXCJtYXQtYnV0dG9uXCI7XG4gICAgICAgICAgICBjYXNlIFVpQWN0aW9uQnV0dG9uVHlwZS5GbGF0OlxuICAgICAgICAgICAgICAgIHJldHVybiBcIm1hdC1mbGF0LWJ1dHRvblwiO1xuICAgICAgICAgICAgY2FzZSBVaUFjdGlvbkJ1dHRvblR5cGUuUmFpc2VkOlxuICAgICAgICAgICAgICAgIHJldHVybiBcIm1hdC1yYWlzZWQtYnV0dG9uXCI7XG4gICAgICAgICAgICBjYXNlIFVpQWN0aW9uQnV0dG9uVHlwZS5TdHJva2VkOlxuICAgICAgICAgICAgICAgIHJldHVybiBcIm1hdC1zdHJva2VkLWJ1dHRvblwiO1xuICAgICAgICAgICAgY2FzZSBVaUFjdGlvbkJ1dHRvblR5cGUuSWNvbjpcbiAgICAgICAgICAgICAgICByZXR1cm4gXCJtYXQtaWNvbi1idXR0b25cIjtcbiAgICAgICAgICAgIGNhc2UgVWlBY3Rpb25CdXR0b25UeXBlLk1pbmlGYWI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIFwibWF0LW1pbmktZmFiXCI7XG4gICAgICAgICAgICBjYXNlIFVpQWN0aW9uQnV0dG9uVHlwZS5GYWI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIFwibWF0LWZhYlwiO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhgVW5oYW5kbGVkIGFjdGlvbiBidXR0b24gdHlwZSBjYXNlOiAke3VpQWN0aW9uTW9kZWwuZGVzY3JpcHRvcj8udHlwZX1gKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gYG1hdC1idXR0b25gO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaWNvblBvc2l0aW9uKCk6IHR5cGVvZiBVaUFjdGlvbkJ1dHRvbkljb25Qb3Mge1xuICAgICAgICByZXR1cm4gVWlBY3Rpb25CdXR0b25JY29uUG9zO1xuICAgIH1cblxuICAgIGlzT25seUljb24odWlBY3Rpb25Nb2RlbDogVWlBY3Rpb25Nb2RlbCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgdWlBY3Rpb25Nb2RlbC5kZXNjcmlwdG9yPy50eXBlID09PSBVaUFjdGlvbkJ1dHRvblR5cGUuSWNvbiB8fFxuICAgICAgICAgICAgdWlBY3Rpb25Nb2RlbC5kZXNjcmlwdG9yPy50eXBlID09PSBVaUFjdGlvbkJ1dHRvblR5cGUuTWluaUZhYiB8fFxuICAgICAgICAgICAgdWlBY3Rpb25Nb2RlbC5kZXNjcmlwdG9yPy50eXBlID09PSBVaUFjdGlvbkJ1dHRvblR5cGUuRmFiXG4gICAgICAgICk7XG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInVpQWN0aW9uQnV0dG9uc0NvbnRhaW5lclwiPlxuICAgIDxidXR0b25cbiAgICAgICAgKm5nRm9yPVwibGV0IHVpQWN0aW9uTW9kZWwgb2YgdWlBY3Rpb25Nb2RlbHNXaXRoRGVzY3JpcHRpb25zXCJcbiAgICAgICAgbWF0LWJ1dHRvblxuICAgICAgICBbbmdDbGFzc109XCJnZXRUeXBlKHVpQWN0aW9uTW9kZWwpXCJcbiAgICAgICAgY2xhc3M9XCJ7eyB1aUFjdGlvbk1vZGVsLmNzc0NsYXNzIH19XCJcbiAgICAgICAgW2NvbG9yXT1cInVpQWN0aW9uTW9kZWwuZGVzY3JpcHRvcj8uY29sb3JcIlxuICAgICAgICAoY2xpY2spPVwib25BY3Rpb25DbGlja2VkKCRldmVudCwgdWlBY3Rpb25Nb2RlbClcIlxuICAgID5cbiAgICAgICAgPGRpdiAqbmdJZj1cImlzT25seUljb24odWlBY3Rpb25Nb2RlbCk7IHRoZW4gaWNvbk9ubHk7IGVsc2UgdGV4dFwiPjwvZGl2PlxuICAgICAgICA8bmctdGVtcGxhdGUgI2ljb25Pbmx5PlxuICAgICAgICAgICAgPHNtYXJ0LWljb25cbiAgICAgICAgICAgICAgICAqbmdJZj1cInVpQWN0aW9uTW9kZWwuZGVzY3JpcHRvcj8uaWNvblwiXG4gICAgICAgICAgICAgICAgW2ljb25dPVwidWlBY3Rpb25Nb2RlbC5kZXNjcmlwdG9yIS5pY29uIVwiXG4gICAgICAgICAgICAgICAgW2NvbG9yXT1cInVpQWN0aW9uTW9kZWwuZGVzY3JpcHRvcj8uaWNvbkNvbG9yID8/IHVpQWN0aW9uTW9kZWwuZGVzY3JpcHRvcj8uY29sb3JcIlxuICAgICAgICAgICAgPjwvc21hcnQtaWNvbj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPG5nLXRlbXBsYXRlICN0ZXh0PlxuICAgICAgICAgICAgPHNtYXJ0LWljb25cbiAgICAgICAgICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICAgICAgICAgICB1aUFjdGlvbk1vZGVsLmRlc2NyaXB0b3I/Lmljb24gJiZcbiAgICAgICAgICAgICAgICAgICAgdWlBY3Rpb25Nb2RlbC5kZXNjcmlwdG9yPy5pY29uUG9zaXRpb24gPT09IGljb25Qb3NpdGlvbigpLlByZVxuICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgW2ljb25dPVwidWlBY3Rpb25Nb2RlbC5kZXNjcmlwdG9yIS5pY29uIVwiXG4gICAgICAgICAgICAgICAgW2NvbG9yXT1cInVpQWN0aW9uTW9kZWwuZGVzY3JpcHRvcj8uaWNvbkNvbG9yID8/IHVpQWN0aW9uTW9kZWwuZGVzY3JpcHRvcj8uY29sb3JcIlxuICAgICAgICAgICAgPjwvc21hcnQtaWNvbj5cbiAgICAgICAgICAgIHt7IHVpQWN0aW9uTW9kZWwuZGVzY3JpcHRvcj8udGl0bGUgfX1cbiAgICAgICAgICAgIDxzbWFydC1pY29uXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgICAgICAgICAgdWlBY3Rpb25Nb2RlbC5kZXNjcmlwdG9yPy5pY29uICYmXG4gICAgICAgICAgICAgICAgICAgIHVpQWN0aW9uTW9kZWwuZGVzY3JpcHRvcj8uaWNvblBvc2l0aW9uID09PSBpY29uUG9zaXRpb24oKS5Qb3N0XG4gICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICBbaWNvbl09XCJ1aUFjdGlvbk1vZGVsLmRlc2NyaXB0b3IhLmljb24hXCJcbiAgICAgICAgICAgICAgICBbY29sb3JdPVwidWlBY3Rpb25Nb2RlbC5kZXNjcmlwdG9yPy5pY29uQ29sb3IgPz8gdWlBY3Rpb25Nb2RlbC5kZXNjcmlwdG9yPy5jb2xvclwiXG4gICAgICAgICAgICA+PC9zbWFydC1pY29uPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvYnV0dG9uPlxuPC9kaXY+XG4iXX0=