turbogui-angular 6.1.0 → 8.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 (153) hide show
  1. package/README.md +2 -2
  2. package/esm2020/main/controller/browser.service.mjs +48 -0
  3. package/esm2020/main/controller/dialog.service.mjs +324 -0
  4. package/esm2020/main/controller/globalerror.service.mjs +68 -0
  5. package/esm2020/main/controller/http.service.mjs +70 -0
  6. package/esm2020/main/controller/localization.service.mjs +22 -0
  7. package/esm2020/main/controller/notification.service.mjs +56 -0
  8. package/esm2020/main/controller/user.service.mjs +124 -0
  9. package/esm2020/main/controller/views.service.mjs +113 -0
  10. package/esm2020/main/model/modules/turbogui-angular.module.mjs +142 -0
  11. package/esm2020/main/view/animations/fade.animation.mjs +35 -0
  12. package/esm2020/main/view/components/busy-state-base/busy-state-base.component.mjs +38 -0
  13. package/esm2020/main/view/components/button-base/button-base.component.mjs +180 -0
  14. package/esm2020/main/view/components/button-container/button-container.component.mjs +34 -0
  15. package/esm2020/main/view/components/button-image/button-image.component.mjs +47 -0
  16. package/esm2020/main/view/components/dialog-error/dialog-error.component.mjs +41 -0
  17. package/esm2020/main/view/components/dialog-multiple-option/dialog-multiple-option.component.mjs +38 -0
  18. package/esm2020/main/view/components/dialog-single-option/dialog-single-option.component.mjs +41 -0
  19. package/esm2020/main/view/components/dialog-single-selection-list/dialog-single-selection-list.component.mjs +112 -0
  20. package/esm2020/main/view/components/dialog-two-option/dialog-two-option.component.mjs +42 -0
  21. package/{esm2015/main/view/components/views-container/views-container.component.js → esm2020/main/view/components/views-container/views-container.component.mjs} +15 -13
  22. package/esm2020/main/view/directives/AutoFocusOnDisplayDirective.mjs +39 -0
  23. package/esm2020/main/view/directives/AutoSelectTextOnFocusDirective.mjs +39 -0
  24. package/esm2020/main/view/directives/ElementCreatedDirective.mjs +42 -0
  25. package/esm2020/main/view/directives/ElementDestroyedDirective.mjs +42 -0
  26. package/{esm2015/public_api.js → esm2020/public_api.mjs} +1 -1
  27. package/esm2020/turbogui-angular.mjs +5 -0
  28. package/fesm2015/turbogui-angular.mjs +1953 -0
  29. package/fesm2015/turbogui-angular.mjs.map +1 -0
  30. package/{fesm2015/turbogui-angular.js → fesm2020/turbogui-angular.mjs} +432 -306
  31. package/fesm2020/turbogui-angular.mjs.map +1 -0
  32. package/main/controller/browser.service.d.ts +3 -8
  33. package/main/controller/browser.service.d.ts.map +1 -1
  34. package/main/controller/dialog.service.d.ts +7 -8
  35. package/main/controller/dialog.service.d.ts.map +1 -1
  36. package/main/controller/globalerror.service.d.ts +3 -0
  37. package/main/controller/globalerror.service.d.ts.map +1 -1
  38. package/main/controller/http.service.d.ts +3 -8
  39. package/main/controller/http.service.d.ts.map +1 -1
  40. package/main/controller/localization.service.d.ts +3 -8
  41. package/main/controller/localization.service.d.ts.map +1 -1
  42. package/main/controller/notification.service.d.ts +3 -8
  43. package/main/controller/notification.service.d.ts.map +1 -1
  44. package/main/controller/user.service.d.ts +3 -8
  45. package/main/controller/user.service.d.ts.map +1 -1
  46. package/main/controller/views.service.d.ts +3 -0
  47. package/main/controller/views.service.d.ts.map +1 -1
  48. package/main/model/modules/turbogui-angular.module.d.ts +23 -8
  49. package/main/model/modules/turbogui-angular.module.d.ts.map +1 -1
  50. package/main/view/animations/fade.animation.d.ts +3 -8
  51. package/main/view/animations/fade.animation.d.ts.map +1 -1
  52. package/main/view/components/busy-state-base/busy-state-base.component.d.ts +3 -8
  53. package/main/view/components/busy-state-base/busy-state-base.component.d.ts.map +1 -1
  54. package/main/view/components/button-base/button-base.component.d.ts +3 -0
  55. package/main/view/components/button-base/button-base.component.d.ts.map +1 -1
  56. package/main/view/components/button-container/button-container.component.d.ts +3 -8
  57. package/main/view/components/button-container/button-container.component.d.ts.map +1 -1
  58. package/main/view/components/button-image/button-image.component.d.ts +3 -0
  59. package/main/view/components/button-image/button-image.component.d.ts.map +1 -1
  60. package/main/view/components/dialog-error/dialog-error.component.d.ts +3 -8
  61. package/main/view/components/dialog-error/dialog-error.component.d.ts.map +1 -1
  62. package/main/view/components/dialog-multiple-option/dialog-multiple-option.component.d.ts +3 -8
  63. package/main/view/components/dialog-multiple-option/dialog-multiple-option.component.d.ts.map +1 -1
  64. package/main/view/components/dialog-single-option/dialog-single-option.component.d.ts +3 -8
  65. package/main/view/components/dialog-single-option/dialog-single-option.component.d.ts.map +1 -1
  66. package/main/view/components/dialog-single-selection-list/dialog-single-selection-list.component.d.ts +33 -11
  67. package/main/view/components/dialog-single-selection-list/dialog-single-selection-list.component.d.ts.map +1 -1
  68. package/main/view/components/dialog-two-option/dialog-two-option.component.d.ts +3 -8
  69. package/main/view/components/dialog-two-option/dialog-two-option.component.d.ts.map +1 -1
  70. package/main/view/components/views-container/views-container.component.d.ts +3 -0
  71. package/main/view/components/views-container/views-container.component.d.ts.map +1 -1
  72. package/main/view/directives/AutoFocusOnDisplayDirective.d.ts +3 -0
  73. package/main/view/directives/AutoFocusOnDisplayDirective.d.ts.map +1 -1
  74. package/main/view/directives/AutoSelectTextOnFocusDirective.d.ts +3 -0
  75. package/main/view/directives/AutoSelectTextOnFocusDirective.d.ts.map +1 -1
  76. package/main/view/directives/ElementCreatedDirective.d.ts +3 -0
  77. package/main/view/directives/ElementCreatedDirective.d.ts.map +1 -1
  78. package/main/view/directives/ElementDestroyedDirective.d.ts +3 -0
  79. package/main/view/directives/ElementDestroyedDirective.d.ts.map +1 -1
  80. package/package.json +25 -13
  81. package/turbogui-angular.d.ts +1 -2
  82. package/turbogui-angular.d.ts.map +1 -1
  83. package/bundles/turbogui-angular.umd.js +0 -2203
  84. package/bundles/turbogui-angular.umd.js.map +0 -1
  85. package/bundles/turbogui-angular.umd.min.js +0 -17
  86. package/bundles/turbogui-angular.umd.min.js.map +0 -1
  87. package/esm2015/main/controller/browser.service.js +0 -48
  88. package/esm2015/main/controller/dialog.service.js +0 -323
  89. package/esm2015/main/controller/globalerror.service.js +0 -65
  90. package/esm2015/main/controller/http.service.js +0 -70
  91. package/esm2015/main/controller/localization.service.js +0 -19
  92. package/esm2015/main/controller/notification.service.js +0 -53
  93. package/esm2015/main/controller/user.service.js +0 -125
  94. package/esm2015/main/controller/views.service.js +0 -113
  95. package/esm2015/main/model/modules/turbogui-angular.module.js +0 -89
  96. package/esm2015/main/view/animations/fade.animation.js +0 -32
  97. package/esm2015/main/view/components/busy-state-base/busy-state-base.component.js +0 -39
  98. package/esm2015/main/view/components/button-base/button-base.component.js +0 -147
  99. package/esm2015/main/view/components/button-container/button-container.component.js +0 -35
  100. package/esm2015/main/view/components/button-image/button-image.component.js +0 -46
  101. package/esm2015/main/view/components/dialog-error/dialog-error.component.js +0 -39
  102. package/esm2015/main/view/components/dialog-multiple-option/dialog-multiple-option.component.js +0 -36
  103. package/esm2015/main/view/components/dialog-single-option/dialog-single-option.component.js +0 -39
  104. package/esm2015/main/view/components/dialog-single-selection-list/dialog-single-selection-list.component.js +0 -64
  105. package/esm2015/main/view/components/dialog-two-option/dialog-two-option.component.js +0 -40
  106. package/esm2015/main/view/directives/AutoFocusOnDisplayDirective.js +0 -40
  107. package/esm2015/main/view/directives/AutoSelectTextOnFocusDirective.js +0 -39
  108. package/esm2015/main/view/directives/ElementCreatedDirective.js +0 -38
  109. package/esm2015/main/view/directives/ElementDestroyedDirective.js +0 -38
  110. package/esm2015/turbogui-angular.js +0 -7
  111. package/fesm2015/turbogui-angular.js.map +0 -1
  112. package/main/controller/browser.service.ngfactory.d.ts.map +0 -1
  113. package/main/controller/dialog.service.ngfactory.d.ts.map +0 -1
  114. package/main/controller/globalerror.service.ngfactory.d.ts.map +0 -1
  115. package/main/controller/http.service.ngfactory.d.ts.map +0 -1
  116. package/main/controller/localization.service.ngfactory.d.ts.map +0 -1
  117. package/main/controller/notification.service.ngfactory.d.ts.map +0 -1
  118. package/main/controller/user.service.ngfactory.d.ts.map +0 -1
  119. package/main/controller/views.service.ngfactory.d.ts.map +0 -1
  120. package/main/model/modules/turbogui-angular.module.ngfactory.d.ts.map +0 -1
  121. package/main/view/animations/fade.animation.ngfactory.d.ts.map +0 -1
  122. package/main/view/components/busy-state-base/busy-state-base.component.ngfactory.d.ts.map +0 -1
  123. package/main/view/components/busy-state-base/busy-state-base.component.scss.shim.ngstyle.d.ts.map +0 -1
  124. package/main/view/components/button-container/button-container.component.ngfactory.d.ts.map +0 -1
  125. package/main/view/components/button-container/button-container.component.scss.shim.ngstyle.d.ts.map +0 -1
  126. package/main/view/components/button-image/button-image.component.ngfactory.d.ts.map +0 -1
  127. package/main/view/components/button-image/button-image.component.scss.shim.ngstyle.d.ts.map +0 -1
  128. package/main/view/components/dialog-error/dialog-error.component.ngfactory.d.ts.map +0 -1
  129. package/main/view/components/dialog-error/dialog-error.component.scss.shim.ngstyle.d.ts.map +0 -1
  130. package/main/view/components/dialog-multiple-option/dialog-multiple-option.component.ngfactory.d.ts.map +0 -1
  131. package/main/view/components/dialog-multiple-option/dialog-multiple-option.component.scss.shim.ngstyle.d.ts.map +0 -1
  132. package/main/view/components/dialog-single-option/dialog-single-option.component.ngfactory.d.ts.map +0 -1
  133. package/main/view/components/dialog-single-option/dialog-single-option.component.scss.shim.ngstyle.d.ts.map +0 -1
  134. package/main/view/components/dialog-single-selection-list/dialog-single-selection-list.component.ngfactory.d.ts.map +0 -1
  135. package/main/view/components/dialog-single-selection-list/dialog-single-selection-list.component.scss.shim.ngstyle.d.ts.map +0 -1
  136. package/main/view/components/dialog-two-option/dialog-two-option.component.ngfactory.d.ts.map +0 -1
  137. package/main/view/components/dialog-two-option/dialog-two-option.component.scss.shim.ngstyle.d.ts.map +0 -1
  138. package/main/view/components/views-container/views-container.component.ngfactory.d.ts.map +0 -1
  139. package/main/view/components/views-container/views-container.component.scss.shim.ngstyle.d.ts.map +0 -1
  140. package/main/view/directives/AutoFocusOnDisplayDirective.ngfactory.d.ts.map +0 -1
  141. package/main/view/directives/AutoSelectTextOnFocusDirective.ngfactory.d.ts.map +0 -1
  142. package/main/view/directives/ElementCreatedDirective.ngfactory.d.ts.map +0 -1
  143. package/main/view/directives/ElementDestroyedDirective.ngfactory.d.ts.map +0 -1
  144. package/turbogui-angular.metadata.json +0 -1
  145. /package/{esm2015/main/controller/httpservice/HTTPServiceGetRequest.js → esm2020/main/controller/httpservice/HTTPServiceGetRequest.mjs} +0 -0
  146. /package/{esm2015/main/controller/httpservice/HTTPServicePostRequest.js → esm2020/main/controller/httpservice/HTTPServicePostRequest.mjs} +0 -0
  147. /package/{esm2015/main/managers/DelayedMethodCallManager.js → esm2020/main/managers/DelayedMethodCallManager.mjs} +0 -0
  148. /package/{esm2015/main/model/classes/GUINotification.js → esm2020/main/model/classes/GUINotification.mjs} +0 -0
  149. /package/{esm2015/main/model/classes/View.js → esm2020/main/model/classes/View.mjs} +0 -0
  150. /package/{esm2015/main/model/classes/ViewModel.js → esm2020/main/model/classes/ViewModel.mjs} +0 -0
  151. /package/{esm2015/main/model/classes/ViewService.js → esm2020/main/model/classes/ViewService.mjs} +0 -0
  152. /package/{esm2015/main/view/components/dialog-base/dialog-base.component.js → esm2020/main/view/components/dialog-base/dialog-base.component.mjs} +0 -0
  153. /package/{esm2015/main/view/components/dialog-options-base/dialog-options-base.component.js → esm2020/main/view/components/dialog-options-base/dialog-options-base.component.mjs} +0 -0
@@ -0,0 +1,56 @@
1
+ /**
2
+ * TurboGUI is A library that helps with the most common and generic UI elements and functionalities
3
+ *
4
+ * Website : -> http://www.turbogui.org
5
+ * License : -> Licensed under the Apache License, Version 2.0. You may not use this file except in compliance with the License.
6
+ * License Url : -> http://www.apache.org/licenses/LICENSE-2.0
7
+ * CopyRight : -> Copyright 2018 Edertone Advanded Solutions. https://www.edertone.com
8
+ */
9
+ import { Injectable } from '@angular/core';
10
+ import { Subject } from 'rxjs';
11
+ import * as i0 from "@angular/core";
12
+ /**
13
+ * This is the main application event bus.
14
+ * All global events that happen on the application are broadcasted by this service, and
15
+ * can be listened by any application element who previously subscribed
16
+ */
17
+ export class NotificationService {
18
+ constructor() {
19
+ /**
20
+ * The Observable instance that handles subscriptions and notifications
21
+ */
22
+ this._notifications = new Subject();
23
+ }
24
+ /**
25
+ * used by other services or components to subscribe to all notifications that are generated by this service
26
+ *
27
+ * @param notificationHandler A method that will be used to receive each notification as a GUINotification instance
28
+ *
29
+ * @returns The new subscription object. Make sure to unsubscribe when not required anymore
30
+ */
31
+ subscribe(notificationHandler) {
32
+ return this._notifications.subscribe(notificationHandler);
33
+ }
34
+ /**
35
+ * Launch a notification to anyone who may be listening
36
+ *
37
+ * @param notification A notification instance to launch
38
+ */
39
+ send(notification) {
40
+ this._notifications.next(notification);
41
+ }
42
+ /**
43
+ * End a previously initiated subscription
44
+ *
45
+ * @param subscription A previously created subscription instance from which we want to unsubscribe
46
+ */
47
+ unsubscribe(subscription) {
48
+ return subscription.unsubscribe();
49
+ }
50
+ }
51
+ NotificationService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: NotificationService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
52
+ NotificationService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: NotificationService });
53
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: NotificationService, decorators: [{
54
+ type: Injectable
55
+ }] });
56
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dXJib2d1aS1hbmd1bGFyL3NyYy9tYWluL2NvbnRyb2xsZXIvbm90aWZpY2F0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7R0FPRztBQUVILE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLE9BQU8sRUFBZ0IsTUFBTSxNQUFNLENBQUM7O0FBSTdDOzs7O0dBSUc7QUFFSCxNQUFNLE9BQU8sbUJBQW1CO0lBRGhDO1FBSUk7O1dBRUc7UUFDYyxtQkFBYyxHQUFHLElBQUksT0FBTyxFQUFtQixDQUFDO0tBb0NwRTtJQWpDRzs7Ozs7O09BTUc7SUFDSCxTQUFTLENBQUMsbUJBQTJEO1FBRWpFLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsbUJBQW1CLENBQUMsQ0FBQztJQUM5RCxDQUFDO0lBR0Q7Ozs7T0FJRztJQUNILElBQUksQ0FBQyxZQUE2QjtRQUU5QixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBR0Q7Ozs7T0FJRztJQUNILFdBQVcsQ0FBQyxZQUEwQjtRQUVsQyxPQUFPLFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN0QyxDQUFDOztnSEF6Q1EsbUJBQW1CO29IQUFuQixtQkFBbUI7MkZBQW5CLG1CQUFtQjtrQkFEL0IsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBUdXJib0dVSSBpcyBBIGxpYnJhcnkgdGhhdCBoZWxwcyB3aXRoIHRoZSBtb3N0IGNvbW1vbiBhbmQgZ2VuZXJpYyBVSSBlbGVtZW50cyBhbmQgZnVuY3Rpb25hbGl0aWVzXHJcbiAqXHJcbiAqIFdlYnNpdGUgOiAtPiBodHRwOi8vd3d3LnR1cmJvZ3VpLm9yZ1xyXG4gKiBMaWNlbnNlIDogLT4gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMC4gWW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4gKiBMaWNlbnNlIFVybCA6IC0+IGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4gKiBDb3B5UmlnaHQgOiAtPiBDb3B5cmlnaHQgMjAxOCBFZGVydG9uZSBBZHZhbmRlZCBTb2x1dGlvbnMuIGh0dHBzOi8vd3d3LmVkZXJ0b25lLmNvbVxyXG4gKi9cclxuXHJcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgU3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEdVSU5vdGlmaWNhdGlvbiB9IGZyb20gJy4uL21vZGVsL2NsYXNzZXMvR1VJTm90aWZpY2F0aW9uJztcclxuXHJcblxyXG4vKipcclxuICogVGhpcyBpcyB0aGUgbWFpbiBhcHBsaWNhdGlvbiBldmVudCBidXMuXHJcbiAqIEFsbCBnbG9iYWwgZXZlbnRzIHRoYXQgaGFwcGVuIG9uIHRoZSBhcHBsaWNhdGlvbiBhcmUgYnJvYWRjYXN0ZWQgYnkgdGhpcyBzZXJ2aWNlLCBhbmRcclxuICogY2FuIGJlIGxpc3RlbmVkIGJ5IGFueSBhcHBsaWNhdGlvbiBlbGVtZW50IHdobyBwcmV2aW91c2x5IHN1YnNjcmliZWRcclxuICovXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIE5vdGlmaWNhdGlvblNlcnZpY2Uge1xyXG5cclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSBPYnNlcnZhYmxlIGluc3RhbmNlIHRoYXQgaGFuZGxlcyBzdWJzY3JpcHRpb25zIGFuZCBub3RpZmljYXRpb25zXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgcmVhZG9ubHkgX25vdGlmaWNhdGlvbnMgPSBuZXcgU3ViamVjdDxHVUlOb3RpZmljYXRpb24+KCk7XHJcblxyXG5cclxuICAgIC8qKlxyXG4gICAgICogdXNlZCBieSBvdGhlciBzZXJ2aWNlcyBvciBjb21wb25lbnRzIHRvIHN1YnNjcmliZSB0byBhbGwgbm90aWZpY2F0aW9ucyB0aGF0IGFyZSBnZW5lcmF0ZWQgYnkgdGhpcyBzZXJ2aWNlXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIG5vdGlmaWNhdGlvbkhhbmRsZXIgQSBtZXRob2QgdGhhdCB3aWxsIGJlIHVzZWQgdG8gcmVjZWl2ZSBlYWNoIG5vdGlmaWNhdGlvbiBhcyBhIEdVSU5vdGlmaWNhdGlvbiBpbnN0YW5jZVxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm5zIFRoZSBuZXcgc3Vic2NyaXB0aW9uIG9iamVjdC4gTWFrZSBzdXJlIHRvIHVuc3Vic2NyaWJlIHdoZW4gbm90IHJlcXVpcmVkIGFueW1vcmVcclxuICAgICAqL1xyXG4gICAgc3Vic2NyaWJlKG5vdGlmaWNhdGlvbkhhbmRsZXI6IChub3RpZmljYXRpb246IEdVSU5vdGlmaWNhdGlvbikgPT4gYW55KSB7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLl9ub3RpZmljYXRpb25zLnN1YnNjcmliZShub3RpZmljYXRpb25IYW5kbGVyKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBMYXVuY2ggYSBub3RpZmljYXRpb24gdG8gYW55b25lIHdobyBtYXkgYmUgbGlzdGVuaW5nXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIG5vdGlmaWNhdGlvbiBBIG5vdGlmaWNhdGlvbiBpbnN0YW5jZSB0byBsYXVuY2hcclxuICAgICAqL1xyXG4gICAgc2VuZChub3RpZmljYXRpb246IEdVSU5vdGlmaWNhdGlvbikge1xyXG5cclxuICAgICAgICB0aGlzLl9ub3RpZmljYXRpb25zLm5leHQobm90aWZpY2F0aW9uKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBFbmQgYSBwcmV2aW91c2x5IGluaXRpYXRlZCBzdWJzY3JpcHRpb25cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gc3Vic2NyaXB0aW9uIEEgcHJldmlvdXNseSBjcmVhdGVkIHN1YnNjcmlwdGlvbiBpbnN0YW5jZSBmcm9tIHdoaWNoIHdlIHdhbnQgdG8gdW5zdWJzY3JpYmVcclxuICAgICAqL1xyXG4gICAgdW5zdWJzY3JpYmUoc3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb24pIHtcclxuXHJcbiAgICAgICAgcmV0dXJuIHN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
@@ -0,0 +1,124 @@
1
+ /**
2
+ * TurboGUI is A library that helps with the most common and generic UI elements and functionalities
3
+ *
4
+ * Website : -> http://www.turbogui.org
5
+ * License : -> Licensed under the Apache License, Version 2.0. You may not use this file except in compliance with the License.
6
+ * License Url : -> http://www.apache.org/licenses/LICENSE-2.0
7
+ * CopyRight : -> Copyright 2018 Edertone Advanded Solutions. https://www.edertone.com
8
+ */
9
+ import { Injectable } from '@angular/core';
10
+ import { ConversionUtils, StringUtils } from 'turbocommons-ts';
11
+ import { HTTPServicePostRequest } from '../controller/httpservice/HTTPServicePostRequest';
12
+ import * as i0 from "@angular/core";
13
+ import * as i1 from "../controller/http.service";
14
+ import * as i2 from "../controller/localization.service";
15
+ /**
16
+ * Manages the users model and commands
17
+ */
18
+ export class UserService {
19
+ constructor(httpService, ls) {
20
+ this.httpService = httpService;
21
+ this.ls = ls;
22
+ /**
23
+ * Path to the web service that performs the user login
24
+ */
25
+ this.loginWebService = 'users/login';
26
+ /**
27
+ * The username that is currently defined and will be used by the login methods
28
+ */
29
+ this.userName = '';
30
+ /**
31
+ * The password for the user that is currently defined and will be used by the login methods
32
+ */
33
+ this.password = '';
34
+ /**
35
+ * Check public getter for docs
36
+ */
37
+ this._isLogged = false;
38
+ /**
39
+ * @see token() getter for more info
40
+ */
41
+ this._token = '';
42
+ }
43
+ /**
44
+ * Tells if the services contains a non empty username and password specified
45
+ */
46
+ get isUserAndPswDefined() {
47
+ return !StringUtils.isEmpty(this.userName) && !StringUtils.isEmpty(this.password);
48
+ }
49
+ /**
50
+ * Tells if exists a user that is currently logged or not
51
+ */
52
+ get isLogged() {
53
+ return this._isLogged;
54
+ }
55
+ /**
56
+ * Gives the value for the currently active user authentication token or an empty string if no user logged
57
+ */
58
+ get token() {
59
+ return this._token;
60
+ }
61
+ /**
62
+ * Perform a user login against the configured login webservice
63
+ *
64
+ * @param loginOkCallback Method to be executed once the login finishes chorrectly. An object with all the service response data will be passed to this method
65
+ * @param loginFailCallback Method to be executed once the login finishes incorrectly.
66
+ */
67
+ login(loginOkCallback = null, loginFailCallback = null) {
68
+ const request = new HTTPServicePostRequest(this.loginWebService);
69
+ request.ignoreGlobalPostParams = true;
70
+ const encodedCredentials = ConversionUtils.stringToBase64(ConversionUtils.stringToBase64(this.userName) + ',' + ConversionUtils.stringToBase64(this.password));
71
+ request.parameters = {
72
+ data: encodedCredentials
73
+ };
74
+ request.successCallback = (response) => {
75
+ if (response !== '') {
76
+ response = JSON.parse(response);
77
+ this._isLogged = true;
78
+ this._token = response.token;
79
+ this.httpService.setGlobalPostParam('token', response.token);
80
+ if (loginOkCallback !== null) {
81
+ loginOkCallback(response);
82
+ }
83
+ }
84
+ else {
85
+ this._clearUserAndToken();
86
+ if (loginFailCallback !== null) {
87
+ loginFailCallback();
88
+ }
89
+ }
90
+ };
91
+ this.httpService.execute(request);
92
+ }
93
+ /**
94
+ * Perform the logout for the currently logged user
95
+ */
96
+ logout(logoutOkCallback = null) {
97
+ const request = new HTTPServicePostRequest('users/logout');
98
+ request.parameters = {
99
+ token: this._token
100
+ };
101
+ request.successCallback = () => {
102
+ this._clearUserAndToken();
103
+ if (logoutOkCallback !== null) {
104
+ logoutOkCallback();
105
+ }
106
+ };
107
+ this.httpService.execute(request);
108
+ }
109
+ _clearUserAndToken() {
110
+ this.userName = '';
111
+ this.password = '';
112
+ this._isLogged = false;
113
+ this._token = '';
114
+ if (this.httpService.isGlobalPostParam('token')) {
115
+ this.httpService.deleteGlobalPostParam('token');
116
+ }
117
+ }
118
+ }
119
+ UserService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: UserService, deps: [{ token: i1.HTTPService }, { token: i2.LocalizationService }], target: i0.ɵɵFactoryTarget.Injectable });
120
+ UserService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: UserService });
121
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: UserService, decorators: [{
122
+ type: Injectable
123
+ }], ctorParameters: function () { return [{ type: i1.HTTPService }, { type: i2.LocalizationService }]; } });
124
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHVyYm9ndWktYW5ndWxhci9zcmMvbWFpbi9jb250cm9sbGVyL3VzZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7OztHQU9HO0FBRUgsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsZUFBZSxFQUFFLFdBQVcsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRy9ELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGtEQUFrRCxDQUFDOzs7O0FBRzFGOztHQUVHO0FBRUgsTUFBTSxPQUFPLFdBQVc7SUFpQ3BCLFlBQW1CLFdBQXdCLEVBQ3hCLEVBQXVCO1FBRHZCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLE9BQUUsR0FBRixFQUFFLENBQXFCO1FBL0IxQzs7V0FFRztRQUNILG9CQUFlLEdBQUcsYUFBYSxDQUFDO1FBR2hDOztXQUVHO1FBQ0gsYUFBUSxHQUFHLEVBQUUsQ0FBQztRQUdkOztXQUVHO1FBQ0gsYUFBUSxHQUFHLEVBQUUsQ0FBQztRQUdkOztXQUVHO1FBQ0ssY0FBUyxHQUFHLEtBQUssQ0FBQztRQUcxQjs7V0FFRztRQUNLLFdBQU0sR0FBRyxFQUFFLENBQUM7SUFLcEIsQ0FBQztJQUdEOztPQUVHO0lBQ0gsSUFBSSxtQkFBbUI7UUFFbkIsT0FBTyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDdEYsQ0FBQztJQUdEOztPQUVHO0lBQ0gsSUFBSSxRQUFRO1FBRVIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQzFCLENBQUM7SUFHRDs7T0FFRztJQUNILElBQUksS0FBSztRQUVMLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUN2QixDQUFDO0lBR0Q7Ozs7O09BS0c7SUFDSCxLQUFLLENBQUMsa0JBQW9ELElBQUksRUFBRSxvQkFBeUMsSUFBSTtRQUV6RyxNQUFNLE9BQU8sR0FBRyxJQUFJLHNCQUFzQixDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUVqRSxPQUFPLENBQUMsc0JBQXNCLEdBQUcsSUFBSSxDQUFDO1FBRXRDLE1BQU0sa0JBQWtCLEdBQUcsZUFBZSxDQUFDLGNBQWMsQ0FDakQsZUFBZSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsR0FBRyxHQUFHLGVBQWUsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFFN0csT0FBTyxDQUFDLFVBQVUsR0FBRztZQUNqQixJQUFJLEVBQUUsa0JBQWtCO1NBQzNCLENBQUM7UUFFRixPQUFPLENBQUMsZUFBZSxHQUFHLENBQUMsUUFBUSxFQUFFLEVBQUU7WUFFbkMsSUFBSSxRQUFRLEtBQUssRUFBRSxFQUFFO2dCQUVqQixRQUFRLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFFaEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7Z0JBQ3RCLElBQUksQ0FBQyxNQUFNLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQztnQkFDN0IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLEVBQUUsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUU3RCxJQUFJLGVBQWUsS0FBSyxJQUFJLEVBQUU7b0JBRTFCLGVBQWUsQ0FBQyxRQUFRLENBQUMsQ0FBQztpQkFDN0I7YUFFSjtpQkFBTTtnQkFFSCxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztnQkFFMUIsSUFBSSxpQkFBaUIsS0FBSyxJQUFJLEVBQUU7b0JBRTVCLGlCQUFpQixFQUFFLENBQUM7aUJBQ3ZCO2FBQ0o7UUFDTCxDQUFDLENBQUM7UUFFRixJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBR0Q7O09BRUc7SUFDSCxNQUFNLENBQUMsbUJBQXdDLElBQUk7UUFFL0MsTUFBTSxPQUFPLEdBQUcsSUFBSSxzQkFBc0IsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUUzRCxPQUFPLENBQUMsVUFBVSxHQUFHO1lBQ2pCLEtBQUssRUFBRSxJQUFJLENBQUMsTUFBTTtTQUNyQixDQUFDO1FBRUYsT0FBTyxDQUFDLGVBQWUsR0FBRyxHQUFHLEVBQUU7WUFFM0IsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7WUFFMUIsSUFBSSxnQkFBZ0IsS0FBSyxJQUFJLEVBQUU7Z0JBRTNCLGdCQUFnQixFQUFFLENBQUM7YUFDdEI7UUFDTCxDQUFDLENBQUM7UUFFRixJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBR08sa0JBQWtCO1FBRXRCLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO1FBQ25CLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO1FBQ25CLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFDO1FBRWpCLElBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsRUFBQztZQUUzQyxJQUFJLENBQUMsV0FBVyxDQUFDLHFCQUFxQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQ25EO0lBQ0wsQ0FBQzs7d0dBdEpRLFdBQVc7NEdBQVgsV0FBVzsyRkFBWCxXQUFXO2tCQUR2QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIFR1cmJvR1VJIGlzIEEgbGlicmFyeSB0aGF0IGhlbHBzIHdpdGggdGhlIG1vc3QgY29tbW9uIGFuZCBnZW5lcmljIFVJIGVsZW1lbnRzIGFuZCBmdW5jdGlvbmFsaXRpZXNcclxuICpcclxuICogV2Vic2l0ZSA6IC0+IGh0dHA6Ly93d3cudHVyYm9ndWkub3JnXHJcbiAqIExpY2Vuc2UgOiAtPiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wLiBZb3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiAqIExpY2Vuc2UgVXJsIDogLT4gaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbiAqIENvcHlSaWdodCA6IC0+IENvcHlyaWdodCAyMDE4IEVkZXJ0b25lIEFkdmFuZGVkIFNvbHV0aW9ucy4gaHR0cHM6Ly93d3cuZWRlcnRvbmUuY29tXHJcbiAqL1xyXG5cclxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb252ZXJzaW9uVXRpbHMsIFN0cmluZ1V0aWxzIH0gZnJvbSAndHVyYm9jb21tb25zLXRzJztcclxuaW1wb3J0IHsgSFRUUFNlcnZpY2UgfSBmcm9tICcuLi9jb250cm9sbGVyL2h0dHAuc2VydmljZSc7XHJcbmltcG9ydCB7IExvY2FsaXphdGlvblNlcnZpY2UgfSBmcm9tICcuLi9jb250cm9sbGVyL2xvY2FsaXphdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgSFRUUFNlcnZpY2VQb3N0UmVxdWVzdCB9IGZyb20gJy4uL2NvbnRyb2xsZXIvaHR0cHNlcnZpY2UvSFRUUFNlcnZpY2VQb3N0UmVxdWVzdCc7XHJcblxyXG5cclxuLyoqXHJcbiAqIE1hbmFnZXMgdGhlIHVzZXJzIG1vZGVsIGFuZCBjb21tYW5kc1xyXG4gKi9cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgVXNlclNlcnZpY2Uge1xyXG5cclxuXHJcbiAgICAvKipcclxuICAgICAqIFBhdGggdG8gdGhlIHdlYiBzZXJ2aWNlIHRoYXQgcGVyZm9ybXMgdGhlIHVzZXIgbG9naW5cclxuICAgICAqL1xyXG4gICAgbG9naW5XZWJTZXJ2aWNlID0gJ3VzZXJzL2xvZ2luJztcclxuICAgIFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIHVzZXJuYW1lIHRoYXQgaXMgY3VycmVudGx5IGRlZmluZWQgYW5kIHdpbGwgYmUgdXNlZCBieSB0aGUgbG9naW4gbWV0aG9kc1xyXG4gICAgICovXHJcbiAgICB1c2VyTmFtZSA9ICcnO1xyXG5cclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSBwYXNzd29yZCBmb3IgdGhlIHVzZXIgdGhhdCBpcyBjdXJyZW50bHkgZGVmaW5lZCBhbmQgd2lsbCBiZSB1c2VkIGJ5IHRoZSBsb2dpbiBtZXRob2RzXHJcbiAgICAgKi9cclxuICAgIHBhc3N3b3JkID0gJyc7XHJcblxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ2hlY2sgcHVibGljIGdldHRlciBmb3IgZG9jc1xyXG4gICAgICovXHJcbiAgICBwcml2YXRlIF9pc0xvZ2dlZCA9IGZhbHNlO1xyXG4gICAgXHJcbiAgICBcclxuICAgIC8qKlxyXG4gICAgICogQHNlZSB0b2tlbigpIGdldHRlciBmb3IgbW9yZSBpbmZvXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgX3Rva2VuID0gJyc7XHJcblxyXG5cclxuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBodHRwU2VydmljZTogSFRUUFNlcnZpY2UsXHJcbiAgICAgICAgICAgICAgICBwdWJsaWMgbHM6IExvY2FsaXphdGlvblNlcnZpY2UpIHtcclxuICAgIH1cclxuXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUZWxscyBpZiB0aGUgc2VydmljZXMgY29udGFpbnMgYSBub24gZW1wdHkgdXNlcm5hbWUgYW5kIHBhc3N3b3JkIHNwZWNpZmllZFxyXG4gICAgICovXHJcbiAgICBnZXQgaXNVc2VyQW5kUHN3RGVmaW5lZCgpOiBib29sZWFuICB7XHJcblxyXG4gICAgICAgIHJldHVybiAhU3RyaW5nVXRpbHMuaXNFbXB0eSh0aGlzLnVzZXJOYW1lKSAmJiAhU3RyaW5nVXRpbHMuaXNFbXB0eSh0aGlzLnBhc3N3b3JkKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUZWxscyBpZiBleGlzdHMgYSB1c2VyIHRoYXQgaXMgY3VycmVudGx5IGxvZ2dlZCBvciBub3RcclxuICAgICAqL1xyXG4gICAgZ2V0IGlzTG9nZ2VkKCk6IGJvb2xlYW4ge1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5faXNMb2dnZWQ7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIFxyXG4gICAgLyoqXHJcbiAgICAgKiBHaXZlcyB0aGUgdmFsdWUgZm9yIHRoZSBjdXJyZW50bHkgYWN0aXZlIHVzZXIgYXV0aGVudGljYXRpb24gdG9rZW4gb3IgYW4gZW1wdHkgc3RyaW5nIGlmIG5vIHVzZXIgbG9nZ2VkXHJcbiAgICAgKi9cclxuICAgIGdldCB0b2tlbigpIHtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Rva2VuO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKipcclxuICAgICAqIFBlcmZvcm0gYSB1c2VyIGxvZ2luIGFnYWluc3QgdGhlIGNvbmZpZ3VyZWQgbG9naW4gd2Vic2VydmljZVxyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0gbG9naW5Pa0NhbGxiYWNrIE1ldGhvZCB0byBiZSBleGVjdXRlZCBvbmNlIHRoZSBsb2dpbiBmaW5pc2hlcyBjaG9ycmVjdGx5LiBBbiBvYmplY3Qgd2l0aCBhbGwgdGhlIHNlcnZpY2UgcmVzcG9uc2UgZGF0YSB3aWxsIGJlIHBhc3NlZCB0byB0aGlzIG1ldGhvZFxyXG4gICAgICogQHBhcmFtIGxvZ2luRmFpbENhbGxiYWNrIE1ldGhvZCB0byBiZSBleGVjdXRlZCBvbmNlIHRoZSBsb2dpbiBmaW5pc2hlcyBpbmNvcnJlY3RseS5cclxuICAgICAqL1xyXG4gICAgbG9naW4obG9naW5Pa0NhbGxiYWNrOiBudWxsIHwgKChyZXNwb25zZTogYW55KSA9PiB2b2lkKSA9IG51bGwsIGxvZ2luRmFpbENhbGxiYWNrOiBudWxsIHwgKCgpID0+IHZvaWQpID0gbnVsbCkge1xyXG5cclxuICAgICAgICBjb25zdCByZXF1ZXN0ID0gbmV3IEhUVFBTZXJ2aWNlUG9zdFJlcXVlc3QodGhpcy5sb2dpbldlYlNlcnZpY2UpO1xyXG4gICAgICAgIFxyXG4gICAgICAgIHJlcXVlc3QuaWdub3JlR2xvYmFsUG9zdFBhcmFtcyA9IHRydWU7XHJcblxyXG4gICAgICAgIGNvbnN0IGVuY29kZWRDcmVkZW50aWFscyA9IENvbnZlcnNpb25VdGlscy5zdHJpbmdUb0Jhc2U2NChcclxuICAgICAgICAgICAgICAgIENvbnZlcnNpb25VdGlscy5zdHJpbmdUb0Jhc2U2NCh0aGlzLnVzZXJOYW1lKSArICcsJyArIENvbnZlcnNpb25VdGlscy5zdHJpbmdUb0Jhc2U2NCh0aGlzLnBhc3N3b3JkKSk7XHJcblxyXG4gICAgICAgIHJlcXVlc3QucGFyYW1ldGVycyA9IHtcclxuICAgICAgICAgICAgZGF0YTogZW5jb2RlZENyZWRlbnRpYWxzXHJcbiAgICAgICAgfTtcclxuICAgICAgICBcclxuICAgICAgICByZXF1ZXN0LnN1Y2Nlc3NDYWxsYmFjayA9IChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgIFxyXG4gICAgICAgICAgICBpZiAocmVzcG9uc2UgIT09ICcnKSB7XHJcblxyXG4gICAgICAgICAgICAgICAgcmVzcG9uc2UgPSBKU09OLnBhcnNlKHJlc3BvbnNlKTsgICAgICAgICAgICBcclxuXHJcbiAgICAgICAgICAgICAgICB0aGlzLl9pc0xvZ2dlZCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl90b2tlbiA9IHJlc3BvbnNlLnRva2VuO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5odHRwU2VydmljZS5zZXRHbG9iYWxQb3N0UGFyYW0oJ3Rva2VuJywgcmVzcG9uc2UudG9rZW4pO1xyXG5cclxuICAgICAgICAgICAgICAgIGlmIChsb2dpbk9rQ2FsbGJhY2sgIT09IG51bGwpIHtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgbG9naW5Pa0NhbGxiYWNrKHJlc3BvbnNlKTtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcblxyXG4gICAgICAgICAgICAgICAgdGhpcy5fY2xlYXJVc2VyQW5kVG9rZW4oKTtcclxuXHJcbiAgICAgICAgICAgICAgICBpZiAobG9naW5GYWlsQ2FsbGJhY2sgIT09IG51bGwpIHtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgbG9naW5GYWlsQ2FsbGJhY2soKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH07XHJcblxyXG4gICAgICAgIHRoaXMuaHR0cFNlcnZpY2UuZXhlY3V0ZShyZXF1ZXN0KTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBQZXJmb3JtIHRoZSBsb2dvdXQgZm9yIHRoZSBjdXJyZW50bHkgbG9nZ2VkIHVzZXJcclxuICAgICAqL1xyXG4gICAgbG9nb3V0KGxvZ291dE9rQ2FsbGJhY2s6IG51bGwgfCAoKCkgPT4gdm9pZCkgPSBudWxsKSB7XHJcbiAgICAgICAgXHJcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9IG5ldyBIVFRQU2VydmljZVBvc3RSZXF1ZXN0KCd1c2Vycy9sb2dvdXQnKTtcclxuICAgICAgICBcclxuICAgICAgICByZXF1ZXN0LnBhcmFtZXRlcnMgPSB7XHJcbiAgICAgICAgICAgIHRva2VuOiB0aGlzLl90b2tlblxyXG4gICAgICAgIH07XHJcbiAgICAgICAgXHJcbiAgICAgICAgcmVxdWVzdC5zdWNjZXNzQ2FsbGJhY2sgPSAoKSA9PiB7XHJcbiAgICAgICAgXHJcbiAgICAgICAgICAgIHRoaXMuX2NsZWFyVXNlckFuZFRva2VuKCk7XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICAgICBpZiAobG9nb3V0T2tDYWxsYmFjayAhPT0gbnVsbCkge1xyXG5cclxuICAgICAgICAgICAgICAgIGxvZ291dE9rQ2FsbGJhY2soKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH07XHJcblxyXG4gICAgICAgIHRoaXMuaHR0cFNlcnZpY2UuZXhlY3V0ZShyZXF1ZXN0KTtcclxuICAgIH1cclxuICAgIFxyXG4gICAgXHJcbiAgICBwcml2YXRlIF9jbGVhclVzZXJBbmRUb2tlbigpe1xyXG4gICAgXHJcbiAgICAgICAgdGhpcy51c2VyTmFtZSA9ICcnO1xyXG4gICAgICAgIHRoaXMucGFzc3dvcmQgPSAnJztcclxuICAgICAgICB0aGlzLl9pc0xvZ2dlZCA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuX3Rva2VuID0gJyc7XHJcbiAgICAgICAgXHJcbiAgICAgICAgaWYodGhpcy5odHRwU2VydmljZS5pc0dsb2JhbFBvc3RQYXJhbSgndG9rZW4nKSl7XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICAgICB0aGlzLmh0dHBTZXJ2aWNlLmRlbGV0ZUdsb2JhbFBvc3RQYXJhbSgndG9rZW4nKTtcclxuICAgICAgICB9ICAgIFxyXG4gICAgfVxyXG59XHJcbiJdfQ==
@@ -0,0 +1,113 @@
1
+ /**
2
+ * TurboGUI is A library that helps with the most common and generic UI elements and functionalities
3
+ *
4
+ * Website : -> http://www.turbogui.org
5
+ * License : -> Licensed under the Apache License, Version 2.0. You may not use this file except in compliance with the License.
6
+ * License Url : -> http://www.apache.org/licenses/LICENSE-2.0
7
+ * CopyRight : -> Copyright 2018 Edertone Advanded Solutions. https://www.edertone.com
8
+ */
9
+ import { Injectable } from '@angular/core';
10
+ import * as i0 from "@angular/core";
11
+ /**
12
+ * Manages adding, removing and manipulating the application views
13
+ */
14
+ export class ViewsService {
15
+ constructor(componentFactoryResolver) {
16
+ this.componentFactoryResolver = componentFactoryResolver;
17
+ /**
18
+ * See getter method for docs
19
+ */
20
+ this._loadedViewClass = null;
21
+ /**
22
+ * An instance of the model that is assigned to the currently loaded view
23
+ */
24
+ this._loadedViewModel = null;
25
+ /**
26
+ * See setter method for docs
27
+ */
28
+ this._viewContainerRef = null;
29
+ }
30
+ /**
31
+ * Tells if there's any view currently loaded on the application views container
32
+ */
33
+ get isViewLoaded() {
34
+ return this._loadedViewClass !== null;
35
+ }
36
+ /**
37
+ * Stores a reference to the visual element that will be used as the container for all the views.
38
+ * This is automatically assigned by the tg-views-container component once it is created.
39
+ *
40
+ * @see ViewsContainerComponent for more information
41
+ */
42
+ set viewContainerRef(ref) {
43
+ if (ref !== null && this._viewContainerRef !== null) {
44
+ throw new Error('Views container already defined. Only one views container element can exist on an application');
45
+ }
46
+ this._viewContainerRef = ref;
47
+ }
48
+ /**
49
+ * Create a new view instance with the specified type and add it to the current application views container. Any currently loaded
50
+ * view will be removed
51
+ *
52
+ * Make sure this method is called when all the visual components of the application have been created (ngAfterViewInit)
53
+ *
54
+ * @param view The classname for the view that we want to create and add to the views container (must extend View base class).
55
+ *
56
+ * @return The instance of the newly added and created view.
57
+ */
58
+ pushView(view) {
59
+ // If a view is already loaded, we will unload it first
60
+ if (this._loadedViewClass !== null) {
61
+ // If the loaded view is the same as the specified one, we will do nothing
62
+ if (this._loadedViewClass === view) {
63
+ return;
64
+ }
65
+ this.popView();
66
+ }
67
+ this.verifyViewsContainerExist();
68
+ const factory = this.componentFactoryResolver.resolveComponentFactory(view);
69
+ const componentRef = this._viewContainerRef.createComponent(factory);
70
+ this._loadedViewModel = componentRef.instance.modelClass !== null ? new componentRef.instance.modelClass() : null;
71
+ componentRef.changeDetectorRef.detectChanges();
72
+ this._loadedViewClass = view;
73
+ return componentRef;
74
+ }
75
+ /**
76
+ * Get the model that is instantiated for the currently active view. (A view model only lives while its view is active)
77
+ * If no view model is assigned to the current view or no view is loaded, an exception will be thrown.
78
+ *
79
+ * @return The current view model instance, which must be casted to the appropiate ViewModel extended class
80
+ */
81
+ get model() {
82
+ if (this._loadedViewModel === null) {
83
+ throw new Error('No active model. Make sure a view is loaded with an assigned model. Do not access the model until view is initialized (for example on ngAfterViewInit)');
84
+ }
85
+ return this._loadedViewModel;
86
+ }
87
+ /**
88
+ * Delete the currently loaded view from the views container, and leave it empty.
89
+ * If no view is currently loaded, this method will do nothing
90
+ */
91
+ popView() {
92
+ this.verifyViewsContainerExist();
93
+ if (this._loadedViewClass !== null) {
94
+ this._viewContainerRef.clear();
95
+ }
96
+ this._loadedViewClass = null;
97
+ this._loadedViewModel = null;
98
+ }
99
+ /**
100
+ * Auxiliary method to test if the views container instance is available on the application
101
+ */
102
+ verifyViewsContainerExist() {
103
+ if (this._viewContainerRef === null) {
104
+ throw new Error('Views container not defined. Please declare a <views-container> element in your application');
105
+ }
106
+ }
107
+ }
108
+ ViewsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: ViewsService, deps: [{ token: i0.ComponentFactoryResolver }], target: i0.ɵɵFactoryTarget.Injectable });
109
+ ViewsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: ViewsService });
110
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: ViewsService, decorators: [{
111
+ type: Injectable
112
+ }], ctorParameters: function () { return [{ type: i0.ComponentFactoryResolver }]; } });
113
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlld3Muc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R1cmJvZ3VpLWFuZ3VsYXIvc3JjL21haW4vY29udHJvbGxlci92aWV3cy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7O0dBT0c7QUFFSCxPQUFPLEVBQTBCLFVBQVUsRUFBNEIsTUFBTSxlQUFlLENBQUM7O0FBSzdGOztHQUVHO0FBRUgsTUFBTSxPQUFPLFlBQVk7SUFxQnJCLFlBQTZCLHdCQUFrRDtRQUFsRCw2QkFBd0IsR0FBeEIsd0JBQXdCLENBQTBCO1FBbEIvRTs7V0FFRztRQUNLLHFCQUFnQixHQUFzQixJQUFJLENBQUM7UUFHbkQ7O1dBRUc7UUFDSyxxQkFBZ0IsR0FBcUIsSUFBSSxDQUFDO1FBR2xEOztXQUVHO1FBQ0ssc0JBQWlCLEdBQTRCLElBQUksQ0FBQztJQUsxRCxDQUFDO0lBR0Q7O09BRUc7SUFDSCxJQUFJLFlBQVk7UUFFWixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsS0FBSyxJQUFJLENBQUM7SUFDMUMsQ0FBQztJQUdEOzs7OztPQUtHO0lBQ0gsSUFBSSxnQkFBZ0IsQ0FBQyxHQUE0QjtRQUU3QyxJQUFJLEdBQUcsS0FBSyxJQUFJLElBQUksSUFBSSxDQUFDLGlCQUFpQixLQUFLLElBQUksRUFBRTtZQUVqRCxNQUFNLElBQUksS0FBSyxDQUFDLCtGQUErRixDQUFDLENBQUM7U0FDcEg7UUFFRCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsR0FBRyxDQUFDO0lBQ2pDLENBQUM7SUFHRDs7Ozs7Ozs7O09BU0c7SUFDSCxRQUFRLENBQUMsSUFBZ0I7UUFFckIsdURBQXVEO1FBQ3ZELElBQUksSUFBSSxDQUFDLGdCQUFnQixLQUFLLElBQUksRUFBRTtZQUVoQywwRUFBMEU7WUFDMUUsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEtBQUssSUFBSSxFQUFFO2dCQUVoQyxPQUFPO2FBQ1Y7WUFFRCxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7U0FDbEI7UUFFRCxJQUFJLENBQUMseUJBQXlCLEVBQUUsQ0FBQztRQUVqQyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsd0JBQXdCLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFNUUsTUFBTSxZQUFZLEdBQUksSUFBSSxDQUFDLGlCQUFzQyxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUUzRixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsWUFBWSxDQUFDLFFBQVEsQ0FBQyxVQUFVLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFLLFlBQVksQ0FBQyxRQUFRLENBQUMsVUFBa0IsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFFM0gsWUFBWSxDQUFDLGlCQUFpQixDQUFDLGFBQWEsRUFBRSxDQUFDO1FBRS9DLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUM7UUFFN0IsT0FBTyxZQUFZLENBQUM7SUFDeEIsQ0FBQztJQUdEOzs7OztPQUtHO0lBQ0gsSUFBSSxLQUFLO1FBRUwsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEtBQUssSUFBSSxFQUFFO1lBRWhDLE1BQU0sSUFBSSxLQUFLLENBQUMsd0pBQXdKLENBQUMsQ0FBQztTQUM3SztRQUVELE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDO0lBQ2pDLENBQUM7SUFHRDs7O09BR0c7SUFDSCxPQUFPO1FBRUgsSUFBSSxDQUFDLHlCQUF5QixFQUFFLENBQUM7UUFFakMsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEtBQUssSUFBSSxFQUFFO1lBRS9CLElBQUksQ0FBQyxpQkFBc0MsQ0FBQyxLQUFLLEVBQUUsQ0FBQztTQUN4RDtRQUVELElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUM7UUFDN0IsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQztJQUNqQyxDQUFDO0lBR0Q7O09BRUc7SUFDSyx5QkFBeUI7UUFFN0IsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEtBQUssSUFBSSxFQUFFO1lBRWpDLE1BQU0sSUFBSSxLQUFLLENBQUMsNkZBQTZGLENBQUMsQ0FBQztTQUNsSDtJQUNMLENBQUM7O3lHQXhJUSxZQUFZOzZHQUFaLFlBQVk7MkZBQVosWUFBWTtrQkFEeEIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBUdXJib0dVSSBpcyBBIGxpYnJhcnkgdGhhdCBoZWxwcyB3aXRoIHRoZSBtb3N0IGNvbW1vbiBhbmQgZ2VuZXJpYyBVSSBlbGVtZW50cyBhbmQgZnVuY3Rpb25hbGl0aWVzXHJcbiAqXHJcbiAqIFdlYnNpdGUgOiAtPiBodHRwOi8vd3d3LnR1cmJvZ3VpLm9yZ1xyXG4gKiBMaWNlbnNlIDogLT4gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMC4gWW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4gKiBMaWNlbnNlIFVybCA6IC0+IGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4gKiBDb3B5UmlnaHQgOiAtPiBDb3B5cmlnaHQgMjAxOCBFZGVydG9uZSBBZHZhbmRlZCBTb2x1dGlvbnMuIGh0dHBzOi8vd3d3LmVkZXJ0b25lLmNvbVxyXG4gKi9cclxuXHJcbmltcG9ydCB7IFR5cGUsIFZpZXdDb250YWluZXJSZWYsIEluamVjdGFibGUsIENvbXBvbmVudEZhY3RvcnlSZXNvbHZlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBWaWV3IH0gZnJvbSAnLi4vbW9kZWwvY2xhc3Nlcy9WaWV3JztcclxuaW1wb3J0IHsgVmlld01vZGVsIH0gZnJvbSAnLi4vbW9kZWwvY2xhc3Nlcy9WaWV3TW9kZWwnO1xyXG5cclxuXHJcbi8qKlxyXG4gKiBNYW5hZ2VzIGFkZGluZywgcmVtb3ZpbmcgYW5kIG1hbmlwdWxhdGluZyB0aGUgYXBwbGljYXRpb24gdmlld3NcclxuICovXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIFZpZXdzU2VydmljZSB7XHJcblxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2VlIGdldHRlciBtZXRob2QgZm9yIGRvY3NcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBfbG9hZGVkVmlld0NsYXNzOiBUeXBlPFZpZXc+IHwgbnVsbCA9IG51bGw7XHJcblxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQW4gaW5zdGFuY2Ugb2YgdGhlIG1vZGVsIHRoYXQgaXMgYXNzaWduZWQgdG8gdGhlIGN1cnJlbnRseSBsb2FkZWQgdmlld1xyXG4gICAgICovXHJcbiAgICBwcml2YXRlIF9sb2FkZWRWaWV3TW9kZWw6IFZpZXdNb2RlbCB8IG51bGwgPSBudWxsO1xyXG5cclxuXHJcbiAgICAvKipcclxuICAgICAqIFNlZSBzZXR0ZXIgbWV0aG9kIGZvciBkb2NzXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgX3ZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYgfCBudWxsID0gbnVsbDtcclxuXHJcblxyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBjb21wb25lbnRGYWN0b3J5UmVzb2x2ZXI6IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcikge1xyXG5cclxuICAgIH1cclxuXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUZWxscyBpZiB0aGVyZSdzIGFueSB2aWV3IGN1cnJlbnRseSBsb2FkZWQgb24gdGhlIGFwcGxpY2F0aW9uIHZpZXdzIGNvbnRhaW5lclxyXG4gICAgICovXHJcbiAgICBnZXQgaXNWaWV3TG9hZGVkKCkge1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5fbG9hZGVkVmlld0NsYXNzICE9PSBudWxsO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKipcclxuICAgICAqIFN0b3JlcyBhIHJlZmVyZW5jZSB0byB0aGUgdmlzdWFsIGVsZW1lbnQgdGhhdCB3aWxsIGJlIHVzZWQgYXMgdGhlIGNvbnRhaW5lciBmb3IgYWxsIHRoZSB2aWV3cy5cclxuICAgICAqIFRoaXMgaXMgYXV0b21hdGljYWxseSBhc3NpZ25lZCBieSB0aGUgdGctdmlld3MtY29udGFpbmVyIGNvbXBvbmVudCBvbmNlIGl0IGlzIGNyZWF0ZWQuXHJcbiAgICAgKlxyXG4gICAgICogQHNlZSBWaWV3c0NvbnRhaW5lckNvbXBvbmVudCBmb3IgbW9yZSBpbmZvcm1hdGlvblxyXG4gICAgICovXHJcbiAgICBzZXQgdmlld0NvbnRhaW5lclJlZihyZWY6IFZpZXdDb250YWluZXJSZWYgfCBudWxsKSB7XHJcblxyXG4gICAgICAgIGlmIChyZWYgIT09IG51bGwgJiYgdGhpcy5fdmlld0NvbnRhaW5lclJlZiAhPT0gbnVsbCkge1xyXG5cclxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdWaWV3cyBjb250YWluZXIgYWxyZWFkeSBkZWZpbmVkLiBPbmx5IG9uZSB2aWV3cyBjb250YWluZXIgZWxlbWVudCBjYW4gZXhpc3Qgb24gYW4gYXBwbGljYXRpb24nKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuX3ZpZXdDb250YWluZXJSZWYgPSByZWY7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ3JlYXRlIGEgbmV3IHZpZXcgaW5zdGFuY2Ugd2l0aCB0aGUgc3BlY2lmaWVkIHR5cGUgYW5kIGFkZCBpdCB0byB0aGUgY3VycmVudCBhcHBsaWNhdGlvbiB2aWV3cyBjb250YWluZXIuIEFueSBjdXJyZW50bHkgbG9hZGVkIFxyXG4gICAgICogdmlldyB3aWxsIGJlIHJlbW92ZWRcclxuICAgICAqXHJcbiAgICAgKiBNYWtlIHN1cmUgdGhpcyBtZXRob2QgaXMgY2FsbGVkIHdoZW4gYWxsIHRoZSB2aXN1YWwgY29tcG9uZW50cyBvZiB0aGUgYXBwbGljYXRpb24gaGF2ZSBiZWVuIGNyZWF0ZWQgKG5nQWZ0ZXJWaWV3SW5pdClcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gdmlldyBUaGUgY2xhc3NuYW1lIGZvciB0aGUgdmlldyB0aGF0IHdlIHdhbnQgdG8gY3JlYXRlIGFuZCBhZGQgdG8gdGhlIHZpZXdzIGNvbnRhaW5lciAobXVzdCBleHRlbmQgVmlldyBiYXNlIGNsYXNzKS5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIFRoZSBpbnN0YW5jZSBvZiB0aGUgbmV3bHkgYWRkZWQgYW5kIGNyZWF0ZWQgdmlldy4gXHJcbiAgICAgKi9cclxuICAgIHB1c2hWaWV3KHZpZXc6IFR5cGU8Vmlldz4pIHtcclxuXHJcbiAgICAgICAgLy8gSWYgYSB2aWV3IGlzIGFscmVhZHkgbG9hZGVkLCB3ZSB3aWxsIHVubG9hZCBpdCBmaXJzdFxyXG4gICAgICAgIGlmICh0aGlzLl9sb2FkZWRWaWV3Q2xhc3MgIT09IG51bGwpIHtcclxuXHJcbiAgICAgICAgICAgIC8vIElmIHRoZSBsb2FkZWQgdmlldyBpcyB0aGUgc2FtZSBhcyB0aGUgc3BlY2lmaWVkIG9uZSwgd2Ugd2lsbCBkbyBub3RoaW5nXHJcbiAgICAgICAgICAgIGlmICh0aGlzLl9sb2FkZWRWaWV3Q2xhc3MgPT09IHZpZXcpIHtcclxuXHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHRoaXMucG9wVmlldygpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy52ZXJpZnlWaWV3c0NvbnRhaW5lckV4aXN0KCk7XHJcbiAgICAgICAgXHJcbiAgICAgICAgY29uc3QgZmFjdG9yeSA9IHRoaXMuY29tcG9uZW50RmFjdG9yeVJlc29sdmVyLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KHZpZXcpO1xyXG5cclxuICAgICAgICBjb25zdCBjb21wb25lbnRSZWYgPSAodGhpcy5fdmlld0NvbnRhaW5lclJlZiBhcyBWaWV3Q29udGFpbmVyUmVmKS5jcmVhdGVDb21wb25lbnQoZmFjdG9yeSk7XHJcblxyXG4gICAgICAgIHRoaXMuX2xvYWRlZFZpZXdNb2RlbCA9IGNvbXBvbmVudFJlZi5pbnN0YW5jZS5tb2RlbENsYXNzICE9PSBudWxsID8gbmV3IChjb21wb25lbnRSZWYuaW5zdGFuY2UubW9kZWxDbGFzcyBhcyBhbnkpKCkgOiBudWxsO1xyXG5cclxuICAgICAgICBjb21wb25lbnRSZWYuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG5cclxuICAgICAgICB0aGlzLl9sb2FkZWRWaWV3Q2xhc3MgPSB2aWV3O1xyXG5cclxuICAgICAgICByZXR1cm4gY29tcG9uZW50UmVmO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKipcclxuICAgICAqIEdldCB0aGUgbW9kZWwgdGhhdCBpcyBpbnN0YW50aWF0ZWQgZm9yIHRoZSBjdXJyZW50bHkgYWN0aXZlIHZpZXcuIChBIHZpZXcgbW9kZWwgb25seSBsaXZlcyB3aGlsZSBpdHMgdmlldyBpcyBhY3RpdmUpXHJcbiAgICAgKiBJZiBubyB2aWV3IG1vZGVsIGlzIGFzc2lnbmVkIHRvIHRoZSBjdXJyZW50IHZpZXcgb3Igbm8gdmlldyBpcyBsb2FkZWQsIGFuIGV4Y2VwdGlvbiB3aWxsIGJlIHRocm93bi5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIFRoZSBjdXJyZW50IHZpZXcgbW9kZWwgaW5zdGFuY2UsIHdoaWNoIG11c3QgYmUgY2FzdGVkIHRvIHRoZSBhcHByb3BpYXRlIFZpZXdNb2RlbCBleHRlbmRlZCBjbGFzc1xyXG4gICAgICovXHJcbiAgICBnZXQgbW9kZWwoKSB7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLl9sb2FkZWRWaWV3TW9kZWwgPT09IG51bGwpIHtcclxuXHJcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignTm8gYWN0aXZlIG1vZGVsLiBNYWtlIHN1cmUgYSB2aWV3IGlzIGxvYWRlZCB3aXRoIGFuIGFzc2lnbmVkIG1vZGVsLiBEbyBub3QgYWNjZXNzIHRoZSBtb2RlbCB1bnRpbCB2aWV3IGlzIGluaXRpYWxpemVkIChmb3IgZXhhbXBsZSBvbiBuZ0FmdGVyVmlld0luaXQpJyk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5fbG9hZGVkVmlld01vZGVsO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKipcclxuICAgICAqIERlbGV0ZSB0aGUgY3VycmVudGx5IGxvYWRlZCB2aWV3IGZyb20gdGhlIHZpZXdzIGNvbnRhaW5lciwgYW5kIGxlYXZlIGl0IGVtcHR5LlxyXG4gICAgICogSWYgbm8gdmlldyBpcyBjdXJyZW50bHkgbG9hZGVkLCB0aGlzIG1ldGhvZCB3aWxsIGRvIG5vdGhpbmdcclxuICAgICAqL1xyXG4gICAgcG9wVmlldygpIHtcclxuXHJcbiAgICAgICAgdGhpcy52ZXJpZnlWaWV3c0NvbnRhaW5lckV4aXN0KCk7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLl9sb2FkZWRWaWV3Q2xhc3MgIT09IG51bGwpIHtcclxuXHJcbiAgICAgICAgICAgICh0aGlzLl92aWV3Q29udGFpbmVyUmVmIGFzIFZpZXdDb250YWluZXJSZWYpLmNsZWFyKCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLl9sb2FkZWRWaWV3Q2xhc3MgPSBudWxsO1xyXG4gICAgICAgIHRoaXMuX2xvYWRlZFZpZXdNb2RlbCA9IG51bGw7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQXV4aWxpYXJ5IG1ldGhvZCB0byB0ZXN0IGlmIHRoZSB2aWV3cyBjb250YWluZXIgaW5zdGFuY2UgaXMgYXZhaWxhYmxlIG9uIHRoZSBhcHBsaWNhdGlvblxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIHZlcmlmeVZpZXdzQ29udGFpbmVyRXhpc3QoKSB7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLl92aWV3Q29udGFpbmVyUmVmID09PSBudWxsKSB7XHJcblxyXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1ZpZXdzIGNvbnRhaW5lciBub3QgZGVmaW5lZC4gUGxlYXNlIGRlY2xhcmUgYSA8dmlld3MtY29udGFpbmVyPiBlbGVtZW50IGluIHlvdXIgYXBwbGljYXRpb24nKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuIl19
@@ -0,0 +1,142 @@
1
+ /**
2
+ * TurboGUI is A library that helps with the most common and generic UI elements and functionalities
3
+ *
4
+ * Website : -> http://www.turbogui.org
5
+ * License : -> Licensed under the Apache License, Version 2.0. You may not use this file except in compliance with the License.
6
+ * License Url : -> http://www.apache.org/licenses/LICENSE-2.0
7
+ * CopyRight : -> Copyright 2018 Edertone Advanded Solutions. https://www.edertone.com
8
+ */
9
+ import { NgModule } from '@angular/core';
10
+ import { MatDialogModule } from '@angular/material/dialog';
11
+ import { MatInputModule } from '@angular/material/input';
12
+ import { MatSnackBarModule } from '@angular/material/snack-bar';
13
+ import { MatButtonModule } from '@angular/material/button';
14
+ import { MatFormFieldModule } from '@angular/material/form-field';
15
+ import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
16
+ import { BusyStateBaseComponent } from '../../view/components/busy-state-base/busy-state-base.component';
17
+ import { DialogService } from '../../controller/dialog.service';
18
+ import { LocalizationService } from '../../controller/localization.service';
19
+ import { HTTPService } from '../../controller/http.service';
20
+ import { NotificationService } from '../../controller/notification.service';
21
+ import { UserService } from '../../controller/user.service';
22
+ import { ViewsService } from '../../controller/views.service';
23
+ import { ViewsContainerComponent } from '../../view/components/views-container/views-container.component';
24
+ import { ButtonImageComponent } from '../../view/components/button-image/button-image.component';
25
+ import { ButtonContainerComponent } from '../../view/components/button-container/button-container.component';
26
+ import { DialogErrorComponent } from '../../view/components/dialog-error/dialog-error.component';
27
+ import { DialogSingleOptionComponent } from '../../view/components/dialog-single-option/dialog-single-option.component';
28
+ import { DialogTwoOptionComponent } from '../../view/components/dialog-two-option/dialog-two-option.component';
29
+ import { DialogSingleSelectionListComponent } from '../../view/components/dialog-single-selection-list/dialog-single-selection-list.component';
30
+ import { DialogMultipleOptionComponent } from '../../view/components/dialog-multiple-option/dialog-multiple-option.component';
31
+ import { BrowserService } from '../../controller/browser.service';
32
+ import { ElementCreatedDirective } from '../../view/directives/ElementCreatedDirective';
33
+ import { ElementDestroyedDirective } from '../../view/directives/ElementDestroyedDirective';
34
+ import { AutoFocusOnDisplayDirective } from '../../view/directives/AutoFocusOnDisplayDirective';
35
+ import { AutoSelectTextOnFocusDirective } from '../../view/directives/AutoSelectTextOnFocusDirective';
36
+ import * as i0 from "@angular/core";
37
+ /**
38
+ * This file contains the root module that contains all the library declarations and exports.
39
+ */
40
+ export class TurboGuiAngularModule {
41
+ }
42
+ TurboGuiAngularModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: TurboGuiAngularModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
43
+ TurboGuiAngularModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: TurboGuiAngularModule, declarations: [BusyStateBaseComponent,
44
+ DialogErrorComponent,
45
+ DialogSingleOptionComponent,
46
+ DialogTwoOptionComponent,
47
+ DialogMultipleOptionComponent,
48
+ DialogSingleSelectionListComponent,
49
+ ViewsContainerComponent,
50
+ ButtonImageComponent,
51
+ ButtonContainerComponent,
52
+ ElementCreatedDirective,
53
+ ElementDestroyedDirective,
54
+ AutoFocusOnDisplayDirective,
55
+ AutoSelectTextOnFocusDirective], imports: [MatDialogModule,
56
+ MatSnackBarModule,
57
+ MatInputModule,
58
+ MatButtonModule,
59
+ MatFormFieldModule,
60
+ BrowserAnimationsModule], exports: [BusyStateBaseComponent,
61
+ ViewsContainerComponent,
62
+ ButtonImageComponent,
63
+ ButtonContainerComponent,
64
+ DialogErrorComponent,
65
+ DialogSingleOptionComponent,
66
+ DialogTwoOptionComponent,
67
+ DialogMultipleOptionComponent,
68
+ DialogSingleSelectionListComponent,
69
+ ElementCreatedDirective,
70
+ ElementDestroyedDirective,
71
+ AutoFocusOnDisplayDirective,
72
+ AutoSelectTextOnFocusDirective] });
73
+ TurboGuiAngularModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: TurboGuiAngularModule, providers: [
74
+ DialogService,
75
+ LocalizationService,
76
+ HTTPService,
77
+ NotificationService,
78
+ UserService,
79
+ ViewsService,
80
+ BrowserService
81
+ ], imports: [[
82
+ MatDialogModule,
83
+ MatSnackBarModule,
84
+ MatInputModule,
85
+ MatButtonModule,
86
+ MatFormFieldModule,
87
+ BrowserAnimationsModule
88
+ ]] });
89
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: TurboGuiAngularModule, decorators: [{
90
+ type: NgModule,
91
+ args: [{
92
+ imports: [
93
+ MatDialogModule,
94
+ MatSnackBarModule,
95
+ MatInputModule,
96
+ MatButtonModule,
97
+ MatFormFieldModule,
98
+ BrowserAnimationsModule
99
+ ],
100
+ declarations: [
101
+ BusyStateBaseComponent,
102
+ DialogErrorComponent,
103
+ DialogSingleOptionComponent,
104
+ DialogTwoOptionComponent,
105
+ DialogMultipleOptionComponent,
106
+ DialogSingleSelectionListComponent,
107
+ ViewsContainerComponent,
108
+ ButtonImageComponent,
109
+ ButtonContainerComponent,
110
+ ElementCreatedDirective,
111
+ ElementDestroyedDirective,
112
+ AutoFocusOnDisplayDirective,
113
+ AutoSelectTextOnFocusDirective
114
+ ],
115
+ // Globally available singleton services are added here
116
+ providers: [
117
+ DialogService,
118
+ LocalizationService,
119
+ HTTPService,
120
+ NotificationService,
121
+ UserService,
122
+ ViewsService,
123
+ BrowserService
124
+ ],
125
+ exports: [
126
+ BusyStateBaseComponent,
127
+ ViewsContainerComponent,
128
+ ButtonImageComponent,
129
+ ButtonContainerComponent,
130
+ DialogErrorComponent,
131
+ DialogSingleOptionComponent,
132
+ DialogTwoOptionComponent,
133
+ DialogMultipleOptionComponent,
134
+ DialogSingleSelectionListComponent,
135
+ ElementCreatedDirective,
136
+ ElementDestroyedDirective,
137
+ AutoFocusOnDisplayDirective,
138
+ AutoSelectTextOnFocusDirective
139
+ ]
140
+ }]
141
+ }] });
142
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHVyYm9ndWktYW5ndWxhci5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dXJib2d1aS1hbmd1bGFyL3NyYy9tYWluL21vZGVsL21vZHVsZXMvdHVyYm9ndWktYW5ndWxhci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7R0FPRztBQUVILE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbEUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDL0UsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0saUVBQWlFLENBQUM7QUFDekcsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUM1RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDNUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzlELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGlFQUFpRSxDQUFDO0FBQzFHLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDJEQUEyRCxDQUFDO0FBQ2pHLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLG1FQUFtRSxDQUFDO0FBQzdHLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDJEQUEyRCxDQUFDO0FBQ2pHLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLDJFQUEyRSxDQUFDO0FBQ3hILE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHFFQUFxRSxDQUFDO0FBQy9HLE9BQU8sRUFBRSxrQ0FBa0MsRUFBRSxNQUFNLDJGQUEyRixDQUFDO0FBQy9JLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLCtFQUErRSxDQUFDO0FBQzlILE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNsRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUN4RixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUM1RixPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUNoRyxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxzREFBc0QsQ0FBQzs7QUFHdEc7O0dBRUc7QUF3REgsTUFBTSxPQUFPLHFCQUFxQjs7a0hBQXJCLHFCQUFxQjttSEFBckIscUJBQXFCLGlCQTNDMUIsc0JBQXNCO1FBQ3RCLG9CQUFvQjtRQUNwQiwyQkFBMkI7UUFDM0Isd0JBQXdCO1FBQ3hCLDZCQUE2QjtRQUM3QixrQ0FBa0M7UUFDbEMsdUJBQXVCO1FBQ3ZCLG9CQUFvQjtRQUNwQix3QkFBd0I7UUFDeEIsdUJBQXVCO1FBQ3ZCLHlCQUF5QjtRQUN6QiwyQkFBMkI7UUFDM0IsOEJBQThCLGFBckI5QixlQUFlO1FBQ2YsaUJBQWlCO1FBQ2pCLGNBQWM7UUFDZCxlQUFlO1FBQ2Ysa0JBQWtCO1FBQ2xCLHVCQUF1QixhQStCdkIsc0JBQXNCO1FBQ3RCLHVCQUF1QjtRQUN2QixvQkFBb0I7UUFDcEIsd0JBQXdCO1FBQ3hCLG9CQUFvQjtRQUNwQiwyQkFBMkI7UUFDM0Isd0JBQXdCO1FBQ3hCLDZCQUE2QjtRQUM3QixrQ0FBa0M7UUFDbEMsdUJBQXVCO1FBQ3ZCLHlCQUF5QjtRQUN6QiwyQkFBMkI7UUFDM0IsOEJBQThCO21IQUl6QixxQkFBcUIsYUEzQm5CO1FBQ1AsYUFBYTtRQUNiLG1CQUFtQjtRQUNuQixXQUFXO1FBQ1gsbUJBQW1CO1FBQ25CLFdBQVc7UUFDWCxZQUFZO1FBQ1osY0FBYztLQUNqQixZQWxDUTtZQUNMLGVBQWU7WUFDZixpQkFBaUI7WUFDakIsY0FBYztZQUNkLGVBQWU7WUFDZixrQkFBa0I7WUFDbEIsdUJBQXVCO1NBQzFCOzJGQThDUSxxQkFBcUI7a0JBdkRqQyxRQUFRO21CQUFDO29CQUVOLE9BQU8sRUFBRTt3QkFDTCxlQUFlO3dCQUNmLGlCQUFpQjt3QkFDakIsY0FBYzt3QkFDZCxlQUFlO3dCQUNmLGtCQUFrQjt3QkFDbEIsdUJBQXVCO3FCQUMxQjtvQkFFRCxZQUFZLEVBQUU7d0JBQ1Ysc0JBQXNCO3dCQUN0QixvQkFBb0I7d0JBQ3BCLDJCQUEyQjt3QkFDM0Isd0JBQXdCO3dCQUN4Qiw2QkFBNkI7d0JBQzdCLGtDQUFrQzt3QkFDbEMsdUJBQXVCO3dCQUN2QixvQkFBb0I7d0JBQ3BCLHdCQUF3Qjt3QkFDeEIsdUJBQXVCO3dCQUN2Qix5QkFBeUI7d0JBQ3pCLDJCQUEyQjt3QkFDM0IsOEJBQThCO3FCQUNqQztvQkFFRCx1REFBdUQ7b0JBQ3ZELFNBQVMsRUFBRTt3QkFDUCxhQUFhO3dCQUNiLG1CQUFtQjt3QkFDbkIsV0FBVzt3QkFDWCxtQkFBbUI7d0JBQ25CLFdBQVc7d0JBQ1gsWUFBWTt3QkFDWixjQUFjO3FCQUNqQjtvQkFFRCxPQUFPLEVBQUU7d0JBQ0wsc0JBQXNCO3dCQUN0Qix1QkFBdUI7d0JBQ3ZCLG9CQUFvQjt3QkFDcEIsd0JBQXdCO3dCQUN4QixvQkFBb0I7d0JBQ3BCLDJCQUEyQjt3QkFDM0Isd0JBQXdCO3dCQUN4Qiw2QkFBNkI7d0JBQzdCLGtDQUFrQzt3QkFDbEMsdUJBQXVCO3dCQUN2Qix5QkFBeUI7d0JBQ3pCLDJCQUEyQjt3QkFDM0IsOEJBQThCO3FCQUNqQztpQkFDSiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVHVyYm9HVUkgaXMgQSBsaWJyYXJ5IHRoYXQgaGVscHMgd2l0aCB0aGUgbW9zdCBjb21tb24gYW5kIGdlbmVyaWMgVUkgZWxlbWVudHMgYW5kIGZ1bmN0aW9uYWxpdGllc1xuICpcbiAqIFdlYnNpdGUgOiAtPiBodHRwOi8vd3d3LnR1cmJvZ3VpLm9yZ1xuICogTGljZW5zZSA6IC0+IExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAuIFlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIExpY2Vuc2UgVXJsIDogLT4gaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKiBDb3B5UmlnaHQgOiAtPiBDb3B5cmlnaHQgMjAxOCBFZGVydG9uZSBBZHZhbmRlZCBTb2x1dGlvbnMuIGh0dHBzOi8vd3d3LmVkZXJ0b25lLmNvbVxuICovXG5cbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXREaWFsb2dNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgTWF0SW5wdXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XG5pbXBvcnQgeyBNYXRTbmFja0Jhck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NuYWNrLWJhcic7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XG5pbXBvcnQgeyBCcm93c2VyQW5pbWF0aW9uc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXIvYW5pbWF0aW9ucyc7XG5pbXBvcnQgeyBCdXN5U3RhdGVCYXNlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vdmlldy9jb21wb25lbnRzL2J1c3ktc3RhdGUtYmFzZS9idXN5LXN0YXRlLWJhc2UuY29tcG9uZW50JztcbmltcG9ydCB7IERpYWxvZ1NlcnZpY2UgfSBmcm9tICcuLi8uLi9jb250cm9sbGVyL2RpYWxvZy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTG9jYWxpemF0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uL2NvbnRyb2xsZXIvbG9jYWxpemF0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBIVFRQU2VydmljZSB9IGZyb20gJy4uLy4uL2NvbnRyb2xsZXIvaHR0cC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTm90aWZpY2F0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uL2NvbnRyb2xsZXIvbm90aWZpY2F0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgVXNlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb250cm9sbGVyL3VzZXIuc2VydmljZSc7XG5pbXBvcnQgeyBWaWV3c1NlcnZpY2UgfSBmcm9tICcuLi8uLi9jb250cm9sbGVyL3ZpZXdzLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBWaWV3c0NvbnRhaW5lckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL3ZpZXcvY29tcG9uZW50cy92aWV3cy1jb250YWluZXIvdmlld3MtY29udGFpbmVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEJ1dHRvbkltYWdlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vdmlldy9jb21wb25lbnRzL2J1dHRvbi1pbWFnZS9idXR0b24taW1hZ2UuY29tcG9uZW50JztcbmltcG9ydCB7IEJ1dHRvbkNvbnRhaW5lckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL3ZpZXcvY29tcG9uZW50cy9idXR0b24tY29udGFpbmVyL2J1dHRvbi1jb250YWluZXIuY29tcG9uZW50JztcbmltcG9ydCB7IERpYWxvZ0Vycm9yQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vdmlldy9jb21wb25lbnRzL2RpYWxvZy1lcnJvci9kaWFsb2ctZXJyb3IuY29tcG9uZW50JztcbmltcG9ydCB7IERpYWxvZ1NpbmdsZU9wdGlvbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uL3ZpZXcvY29tcG9uZW50cy9kaWFsb2ctc2luZ2xlLW9wdGlvbi9kaWFsb2ctc2luZ2xlLW9wdGlvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGlhbG9nVHdvT3B0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vdmlldy9jb21wb25lbnRzL2RpYWxvZy10d28tb3B0aW9uL2RpYWxvZy10d28tb3B0aW9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEaWFsb2dTaW5nbGVTZWxlY3Rpb25MaXN0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vdmlldy9jb21wb25lbnRzL2RpYWxvZy1zaW5nbGUtc2VsZWN0aW9uLWxpc3QvZGlhbG9nLXNpbmdsZS1zZWxlY3Rpb24tbGlzdC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBEaWFsb2dNdWx0aXBsZU9wdGlvbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uL3ZpZXcvY29tcG9uZW50cy9kaWFsb2ctbXVsdGlwbGUtb3B0aW9uL2RpYWxvZy1tdWx0aXBsZS1vcHRpb24uY29tcG9uZW50JztcclxuaW1wb3J0IHsgQnJvd3NlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb250cm9sbGVyL2Jyb3dzZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IEVsZW1lbnRDcmVhdGVkRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vdmlldy9kaXJlY3RpdmVzL0VsZW1lbnRDcmVhdGVkRGlyZWN0aXZlJztcclxuaW1wb3J0IHsgRWxlbWVudERlc3Ryb3llZERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL3ZpZXcvZGlyZWN0aXZlcy9FbGVtZW50RGVzdHJveWVkRGlyZWN0aXZlJztcclxuaW1wb3J0IHsgQXV0b0ZvY3VzT25EaXNwbGF5RGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vdmlldy9kaXJlY3RpdmVzL0F1dG9Gb2N1c09uRGlzcGxheURpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IEF1dG9TZWxlY3RUZXh0T25Gb2N1c0RpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL3ZpZXcvZGlyZWN0aXZlcy9BdXRvU2VsZWN0VGV4dE9uRm9jdXNEaXJlY3RpdmUnO1xuXG5cbi8qKlxuICogVGhpcyBmaWxlIGNvbnRhaW5zIHRoZSByb290IG1vZHVsZSB0aGF0IGNvbnRhaW5zIGFsbCB0aGUgbGlicmFyeSBkZWNsYXJhdGlvbnMgYW5kIGV4cG9ydHMuXG4gKi9cbkBOZ01vZHVsZSh7XG5cbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIE1hdERpYWxvZ01vZHVsZSxcbiAgICAgICAgTWF0U25hY2tCYXJNb2R1bGUsXG4gICAgICAgIE1hdElucHV0TW9kdWxlLFxuICAgICAgICBNYXRCdXR0b25Nb2R1bGUsXG4gICAgICAgIE1hdEZvcm1GaWVsZE1vZHVsZSxcbiAgICAgICAgQnJvd3NlckFuaW1hdGlvbnNNb2R1bGVcbiAgICBdLFxuXG4gICAgZGVjbGFyYXRpb25zOiBbXG4gICAgICAgIEJ1c3lTdGF0ZUJhc2VDb21wb25lbnQsXG4gICAgICAgIERpYWxvZ0Vycm9yQ29tcG9uZW50LFxuICAgICAgICBEaWFsb2dTaW5nbGVPcHRpb25Db21wb25lbnQsXG4gICAgICAgIERpYWxvZ1R3b09wdGlvbkNvbXBvbmVudCxcbiAgICAgICAgRGlhbG9nTXVsdGlwbGVPcHRpb25Db21wb25lbnQsXG4gICAgICAgIERpYWxvZ1NpbmdsZVNlbGVjdGlvbkxpc3RDb21wb25lbnQsXG4gICAgICAgIFZpZXdzQ29udGFpbmVyQ29tcG9uZW50LFxuICAgICAgICBCdXR0b25JbWFnZUNvbXBvbmVudCxcbiAgICAgICAgQnV0dG9uQ29udGFpbmVyQ29tcG9uZW50LFxuICAgICAgICBFbGVtZW50Q3JlYXRlZERpcmVjdGl2ZSxcbiAgICAgICAgRWxlbWVudERlc3Ryb3llZERpcmVjdGl2ZSxcbiAgICAgICAgQXV0b0ZvY3VzT25EaXNwbGF5RGlyZWN0aXZlLFxuICAgICAgICBBdXRvU2VsZWN0VGV4dE9uRm9jdXNEaXJlY3RpdmVcbiAgICBdLFxuXG4gICAgLy8gR2xvYmFsbHkgYXZhaWxhYmxlIHNpbmdsZXRvbiBzZXJ2aWNlcyBhcmUgYWRkZWQgaGVyZVxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICBEaWFsb2dTZXJ2aWNlLFxuICAgICAgICBMb2NhbGl6YXRpb25TZXJ2aWNlLFxuICAgICAgICBIVFRQU2VydmljZSxcbiAgICAgICAgTm90aWZpY2F0aW9uU2VydmljZSxcbiAgICAgICAgVXNlclNlcnZpY2UsXG4gICAgICAgIFZpZXdzU2VydmljZSxcbiAgICAgICAgQnJvd3NlclNlcnZpY2VcbiAgICBdLFxuXG4gICAgZXhwb3J0czogW1xuICAgICAgICBCdXN5U3RhdGVCYXNlQ29tcG9uZW50LFxuICAgICAgICBWaWV3c0NvbnRhaW5lckNvbXBvbmVudCxcbiAgICAgICAgQnV0dG9uSW1hZ2VDb21wb25lbnQsXG4gICAgICAgIEJ1dHRvbkNvbnRhaW5lckNvbXBvbmVudCxcbiAgICAgICAgRGlhbG9nRXJyb3JDb21wb25lbnQsXG4gICAgICAgIERpYWxvZ1NpbmdsZU9wdGlvbkNvbXBvbmVudCxcbiAgICAgICAgRGlhbG9nVHdvT3B0aW9uQ29tcG9uZW50LFxuICAgICAgICBEaWFsb2dNdWx0aXBsZU9wdGlvbkNvbXBvbmVudCxcbiAgICAgICAgRGlhbG9nU2luZ2xlU2VsZWN0aW9uTGlzdENvbXBvbmVudCxcbiAgICAgICAgRWxlbWVudENyZWF0ZWREaXJlY3RpdmUsXG4gICAgICAgIEVsZW1lbnREZXN0cm95ZWREaXJlY3RpdmUsXG4gICAgICAgIEF1dG9Gb2N1c09uRGlzcGxheURpcmVjdGl2ZSxcbiAgICAgICAgQXV0b1NlbGVjdFRleHRPbkZvY3VzRGlyZWN0aXZlXG4gICAgXVxufSlcblxuZXhwb3J0IGNsYXNzIFR1cmJvR3VpQW5ndWxhck1vZHVsZSB7IH1cbiJdfQ==
@@ -0,0 +1,35 @@
1
+ /**
2
+ * TurboGUI is A library that helps with the most common and generic UI elements and functionalities
3
+ *
4
+ * Website : -> http://www.turbogui.org
5
+ * License : -> Licensed under the Apache License, Version 2.0. You may not use this file except in compliance with the License.
6
+ * License Url : -> http://www.apache.org/licenses/LICENSE-2.0
7
+ * CopyRight : -> Copyright 2018 Edertone Advanded Solutions. https://www.edertone.com
8
+ */
9
+ import { Injectable } from '@angular/core';
10
+ import { trigger, animate, transition, style } from '@angular/animations';
11
+ import * as i0 from "@angular/core";
12
+ /**
13
+ * Fade animations
14
+ */
15
+ export class FadeAnimationClass {
16
+ /**
17
+ * Get a custom trigger to create fade animations when components are added or removed from the application
18
+ *
19
+ * @param triggerName The name for the trigger we want to create
20
+ * @param enter The time and easing that we want to use for the enter state
21
+ * @param leave The time and easing that we want to use for the leave state
22
+ */
23
+ static getTrigger(triggerName, enter = '1s ease', leave = '0s ease') {
24
+ return trigger(triggerName, [
25
+ transition(':enter', [style({ opacity: 0 }), animate(enter)]),
26
+ transition(':leave', [style({ opacity: 1 }), animate(leave, style({ opacity: 0 }))])
27
+ ]);
28
+ }
29
+ }
30
+ FadeAnimationClass.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: FadeAnimationClass, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
31
+ FadeAnimationClass.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: FadeAnimationClass });
32
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: FadeAnimationClass, decorators: [{
33
+ type: Injectable
34
+ }] });
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFkZS5hbmltYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dXJib2d1aS1hbmd1bGFyL3NyYy9tYWluL3ZpZXcvYW5pbWF0aW9ucy9mYWRlLmFuaW1hdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7OztHQU9HO0FBRUgsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLE1BQU0scUJBQXFCLENBQUM7O0FBRzFFOztHQUVHO0FBRUgsTUFBTSxPQUFPLGtCQUFrQjtJQUUzQjs7Ozs7O09BTUc7SUFDSCxNQUFNLENBQUMsVUFBVSxDQUFDLFdBQW1CLEVBQUUsS0FBSyxHQUFHLFNBQVMsRUFBRSxLQUFLLEdBQUcsU0FBUztRQUV2RSxPQUFPLE9BQU8sQ0FBQyxXQUFXLEVBQUU7WUFDQyxVQUFVLENBQUMsUUFBUSxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUMsT0FBTyxFQUFFLENBQUMsRUFBQyxDQUFDLEVBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDM0QsVUFBVSxDQUFDLFFBQVEsRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFDLE9BQU8sRUFBRSxDQUFDLEVBQUMsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLEVBQUMsT0FBTyxFQUFFLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ2hGLENBQUMsQ0FBQztJQUNuQyxDQUFDOzsrR0FmUSxrQkFBa0I7bUhBQWxCLGtCQUFrQjsyRkFBbEIsa0JBQWtCO2tCQUQ5QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIFR1cmJvR1VJIGlzIEEgbGlicmFyeSB0aGF0IGhlbHBzIHdpdGggdGhlIG1vc3QgY29tbW9uIGFuZCBnZW5lcmljIFVJIGVsZW1lbnRzIGFuZCBmdW5jdGlvbmFsaXRpZXNcclxuICpcclxuICogV2Vic2l0ZSA6IC0+IGh0dHA6Ly93d3cudHVyYm9ndWkub3JnXHJcbiAqIExpY2Vuc2UgOiAtPiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wLiBZb3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiAqIExpY2Vuc2UgVXJsIDogLT4gaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbiAqIENvcHlSaWdodCA6IC0+IENvcHlyaWdodCAyMDE4IEVkZXJ0b25lIEFkdmFuZGVkIFNvbHV0aW9ucy4gaHR0cHM6Ly93d3cuZWRlcnRvbmUuY29tXHJcbiAqL1xyXG5cclxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyB0cmlnZ2VyLCBhbmltYXRlLCB0cmFuc2l0aW9uLCBzdHlsZSB9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xyXG5cclxuXHJcbi8qKlxyXG4gKiBGYWRlIGFuaW1hdGlvbnNcclxuICovXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIEZhZGVBbmltYXRpb25DbGFzcyB7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBHZXQgYSBjdXN0b20gdHJpZ2dlciB0byBjcmVhdGUgZmFkZSBhbmltYXRpb25zIHdoZW4gY29tcG9uZW50cyBhcmUgYWRkZWQgb3IgcmVtb3ZlZCBmcm9tIHRoZSBhcHBsaWNhdGlvblxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB0cmlnZ2VyTmFtZSBUaGUgbmFtZSBmb3IgdGhlIHRyaWdnZXIgd2Ugd2FudCB0byBjcmVhdGVcclxuICAgICAqIEBwYXJhbSBlbnRlciBUaGUgdGltZSBhbmQgZWFzaW5nIHRoYXQgd2Ugd2FudCB0byB1c2UgZm9yIHRoZSBlbnRlciBzdGF0ZVxyXG4gICAgICogQHBhcmFtIGxlYXZlIFRoZSB0aW1lIGFuZCBlYXNpbmcgdGhhdCB3ZSB3YW50IHRvIHVzZSBmb3IgdGhlIGxlYXZlIHN0YXRlXHJcbiAgICAgKi9cclxuICAgIHN0YXRpYyBnZXRUcmlnZ2VyKHRyaWdnZXJOYW1lOiBzdHJpbmcsIGVudGVyID0gJzFzIGVhc2UnLCBsZWF2ZSA9ICcwcyBlYXNlJykge1xyXG5cclxuICAgICAgICByZXR1cm4gdHJpZ2dlcih0cmlnZ2VyTmFtZSwgW1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNpdGlvbignOmVudGVyJywgW3N0eWxlKHtvcGFjaXR5OiAwfSksIGFuaW1hdGUoZW50ZXIpXSksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2l0aW9uKCc6bGVhdmUnLCBbc3R5bGUoe29wYWNpdHk6IDF9KSwgYW5pbWF0ZShsZWF2ZSwgc3R5bGUoe29wYWNpdHk6IDB9KSldKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdKTtcclxuICAgIH1cclxufVxyXG4iXX0=
@@ -0,0 +1,38 @@
1
+ /**
2
+ * TurboGUI is A library that helps with the most common and generic UI elements and functionalities
3
+ *
4
+ * Website : -> http://www.turbogui.org
5
+ * License : -> Licensed under the Apache License, Version 2.0. You may not use this file except in compliance with the License.
6
+ * License Url : -> http://www.apache.org/licenses/LICENSE-2.0
7
+ * CopyRight : -> Copyright 2018 Edertone Advanded Solutions. https://www.edertone.com
8
+ */
9
+ import { Component, HostBinding } from '@angular/core';
10
+ import { FadeAnimationClass } from '../../animations/fade.animation';
11
+ import * as i0 from "@angular/core";
12
+ /**
13
+ * This component is used by turboGUI angular library to show the busy state to the user.
14
+ * It is used to block all the user input and progressively shows a busy cursor to notify that the application
15
+ * is waiting for something.
16
+ *
17
+ * We can (should) override this component with our own one to adapt its visual appearance to our application.
18
+ * We can then set dialogService.busyStateComponentClass to our component class at the application start to to
19
+ * override the default one.
20
+ */
21
+ export class BusyStateBaseComponent {
22
+ constructor() {
23
+ /**
24
+ * This is used to attach the fade animation directly to this component so it fades in and out when created and removed from the app
25
+ */
26
+ this.busyStateBaseFade = true;
27
+ }
28
+ }
29
+ BusyStateBaseComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: BusyStateBaseComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
30
+ BusyStateBaseComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: BusyStateBaseComponent, selector: "tg-busy-state-base", host: { properties: { "@busyStateBaseFade": "this.busyStateBaseFade" } }, ngImport: i0, template: "<div class=\"darkBg\">\r\n\r\n</div>\r\n\r\n<svg width=\"38\" height=\"38\" viewBox=\"0 0 38 38\" xmlns=\"http://www.w3.org/2000/svg\" stroke=\"#fff\">\r\n <g fill=\"none\" fill-rule=\"evenodd\">\r\n <g transform=\"translate(1 1)\" stroke-width=\"1\">\r\n <circle stroke-opacity=\".2\" cx=\"18\" cy=\"18\" r=\"18\"/>\r\n <path d=\"M36 18c0-9.94-8.06-18-18-18\">\r\n <animateTransform\r\n attributeName=\"transform\"\r\n type=\"rotate\"\r\n from=\"0 18 18\"\r\n to=\"360 18 18\"\r\n dur=\"1s\"\r\n repeatCount=\"indefinite\"/>\r\n </path>\r\n </g>\r\n </g>\r\n</svg>\r\n", styles: [":host{position:fixed;inset:0;display:flex;justify-content:center;align-items:center;z-index:999999999}.darkBg{position:absolute;cursor:progress;width:100%;height:100%;display:flex;justify-content:center;align-items:center;background-color:#00000096;animation-name:bgfadein;animation-duration:30s;animation-timing-function:ease}svg{z-index:5000;width:40%;height:40%;max-width:130px;max-height:130px;animation-name:loadingfadein;animation-duration:3s;animation-timing-function:ease-in}@keyframes loadingfadein{0%{opacity:0}25%{opacity:0}to{opacity:1}}@keyframes bgfadein{0%{opacity:0}4%{opacity:0}14%{opacity:.2}35%{opacity:.5}to{opacity:1}}\n"], animations: [FadeAnimationClass.getTrigger('busyStateBaseFade', '1s ease', '400ms ease')] });
31
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: BusyStateBaseComponent, decorators: [{
32
+ type: Component,
33
+ args: [{ selector: 'tg-busy-state-base', animations: [FadeAnimationClass.getTrigger('busyStateBaseFade', '1s ease', '400ms ease')], template: "<div class=\"darkBg\">\r\n\r\n</div>\r\n\r\n<svg width=\"38\" height=\"38\" viewBox=\"0 0 38 38\" xmlns=\"http://www.w3.org/2000/svg\" stroke=\"#fff\">\r\n <g fill=\"none\" fill-rule=\"evenodd\">\r\n <g transform=\"translate(1 1)\" stroke-width=\"1\">\r\n <circle stroke-opacity=\".2\" cx=\"18\" cy=\"18\" r=\"18\"/>\r\n <path d=\"M36 18c0-9.94-8.06-18-18-18\">\r\n <animateTransform\r\n attributeName=\"transform\"\r\n type=\"rotate\"\r\n from=\"0 18 18\"\r\n to=\"360 18 18\"\r\n dur=\"1s\"\r\n repeatCount=\"indefinite\"/>\r\n </path>\r\n </g>\r\n </g>\r\n</svg>\r\n", styles: [":host{position:fixed;inset:0;display:flex;justify-content:center;align-items:center;z-index:999999999}.darkBg{position:absolute;cursor:progress;width:100%;height:100%;display:flex;justify-content:center;align-items:center;background-color:#00000096;animation-name:bgfadein;animation-duration:30s;animation-timing-function:ease}svg{z-index:5000;width:40%;height:40%;max-width:130px;max-height:130px;animation-name:loadingfadein;animation-duration:3s;animation-timing-function:ease-in}@keyframes loadingfadein{0%{opacity:0}25%{opacity:0}to{opacity:1}}@keyframes bgfadein{0%{opacity:0}4%{opacity:0}14%{opacity:.2}35%{opacity:.5}to{opacity:1}}\n"] }]
34
+ }], propDecorators: { busyStateBaseFade: [{
35
+ type: HostBinding,
36
+ args: ['@busyStateBaseFade']
37
+ }] } });
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVzeS1zdGF0ZS1iYXNlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R1cmJvZ3VpLWFuZ3VsYXIvc3JjL21haW4vdmlldy9jb21wb25lbnRzL2J1c3ktc3RhdGUtYmFzZS9idXN5LXN0YXRlLWJhc2UuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHVyYm9ndWktYW5ndWxhci9zcmMvbWFpbi92aWV3L2NvbXBvbmVudHMvYnVzeS1zdGF0ZS1iYXNlL2J1c3ktc3RhdGUtYmFzZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7OztHQU9HO0FBRUgsT0FBTyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0saUNBQWlDLENBQUM7O0FBR3JFOzs7Ozs7OztHQVFHO0FBU0gsTUFBTSxPQUFPLHNCQUFzQjtJQVJuQztRQVdJOztXQUVHO1FBQ2dDLHNCQUFpQixHQUFHLElBQUksQ0FBQztLQUMvRDs7bUhBUFksc0JBQXNCO3VHQUF0QixzQkFBc0Isb0lDOUJuQyxpdkJBb0JBLDZwQkRLYyxDQUFDLGtCQUFrQixDQUFDLFVBQVUsQ0FBQyxtQkFBbUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxDQUFDLENBQUM7MkZBSzlFLHNCQUFzQjtrQkFSbEMsU0FBUzsrQkFDRSxvQkFBb0IsY0FFbEIsQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsbUJBQW1CLEVBQUUsU0FBUyxFQUFFLFlBQVksQ0FBQyxDQUFDOzhCQVdwRCxpQkFBaUI7c0JBQW5ELFdBQVc7dUJBQUMsb0JBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIFR1cmJvR1VJIGlzIEEgbGlicmFyeSB0aGF0IGhlbHBzIHdpdGggdGhlIG1vc3QgY29tbW9uIGFuZCBnZW5lcmljIFVJIGVsZW1lbnRzIGFuZCBmdW5jdGlvbmFsaXRpZXNcclxuICpcclxuICogV2Vic2l0ZSA6IC0+IGh0dHA6Ly93d3cudHVyYm9ndWkub3JnXHJcbiAqIExpY2Vuc2UgOiAtPiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wLiBZb3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiAqIExpY2Vuc2UgVXJsIDogLT4gaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbiAqIENvcHlSaWdodCA6IC0+IENvcHlyaWdodCAyMDE4IEVkZXJ0b25lIEFkdmFuZGVkIFNvbHV0aW9ucy4gaHR0cHM6Ly93d3cuZWRlcnRvbmUuY29tXHJcbiAqL1xyXG5cclxuaW1wb3J0IHsgQ29tcG9uZW50LCBIb3N0QmluZGluZyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGYWRlQW5pbWF0aW9uQ2xhc3MgfSBmcm9tICcuLi8uLi9hbmltYXRpb25zL2ZhZGUuYW5pbWF0aW9uJztcclxuXHJcblxyXG4vKipcclxuICogVGhpcyBjb21wb25lbnQgaXMgdXNlZCBieSB0dXJib0dVSSBhbmd1bGFyIGxpYnJhcnkgdG8gc2hvdyB0aGUgYnVzeSBzdGF0ZSB0byB0aGUgdXNlci5cclxuICogSXQgaXMgdXNlZCB0byBibG9jayBhbGwgdGhlIHVzZXIgaW5wdXQgYW5kIHByb2dyZXNzaXZlbHkgc2hvd3MgYSBidXN5IGN1cnNvciB0byBub3RpZnkgdGhhdCB0aGUgYXBwbGljYXRpb25cclxuICogaXMgd2FpdGluZyBmb3Igc29tZXRoaW5nLlxyXG4gKlxyXG4gKiBXZSBjYW4gKHNob3VsZCkgb3ZlcnJpZGUgdGhpcyBjb21wb25lbnQgd2l0aCBvdXIgb3duIG9uZSB0byBhZGFwdCBpdHMgdmlzdWFsIGFwcGVhcmFuY2UgdG8gb3VyIGFwcGxpY2F0aW9uLlxyXG4gKiBXZSBjYW4gdGhlbiBzZXQgZGlhbG9nU2VydmljZS5idXN5U3RhdGVDb21wb25lbnRDbGFzcyB0byBvdXIgY29tcG9uZW50IGNsYXNzIGF0IHRoZSBhcHBsaWNhdGlvbiBzdGFydCB0byB0b1xyXG4gKiBvdmVycmlkZSB0aGUgZGVmYXVsdCBvbmUuXHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3RnLWJ1c3ktc3RhdGUtYmFzZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2J1c3ktc3RhdGUtYmFzZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgYW5pbWF0aW9uczogW0ZhZGVBbmltYXRpb25DbGFzcy5nZXRUcmlnZ2VyKCdidXN5U3RhdGVCYXNlRmFkZScsICcxcyBlYXNlJywgJzQwMG1zIGVhc2UnKV0sXHJcbiAgc3R5bGVVcmxzOiBbJy4vYnVzeS1zdGF0ZS1iYXNlLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuXHJcblxyXG5leHBvcnQgY2xhc3MgQnVzeVN0YXRlQmFzZUNvbXBvbmVudCB7XHJcblxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhpcyBpcyB1c2VkIHRvIGF0dGFjaCB0aGUgZmFkZSBhbmltYXRpb24gZGlyZWN0bHkgdG8gdGhpcyBjb21wb25lbnQgc28gaXQgZmFkZXMgaW4gYW5kIG91dCB3aGVuIGNyZWF0ZWQgYW5kIHJlbW92ZWQgZnJvbSB0aGUgYXBwXHJcbiAgICAgKi9cclxuICAgIEBIb3N0QmluZGluZygnQGJ1c3lTdGF0ZUJhc2VGYWRlJykgYnVzeVN0YXRlQmFzZUZhZGUgPSB0cnVlO1xyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJkYXJrQmdcIj5cclxuXHJcbjwvZGl2PlxyXG5cclxuPHN2ZyB3aWR0aD1cIjM4XCIgaGVpZ2h0PVwiMzhcIiB2aWV3Qm94PVwiMCAwIDM4IDM4XCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHN0cm9rZT1cIiNmZmZcIj5cclxuICAgIDxnIGZpbGw9XCJub25lXCIgZmlsbC1ydWxlPVwiZXZlbm9kZFwiPlxyXG4gICAgICAgIDxnIHRyYW5zZm9ybT1cInRyYW5zbGF0ZSgxIDEpXCIgc3Ryb2tlLXdpZHRoPVwiMVwiPlxyXG4gICAgICAgICAgICA8Y2lyY2xlIHN0cm9rZS1vcGFjaXR5PVwiLjJcIiBjeD1cIjE4XCIgY3k9XCIxOFwiIHI9XCIxOFwiLz5cclxuICAgICAgICAgICAgPHBhdGggZD1cIk0zNiAxOGMwLTkuOTQtOC4wNi0xOC0xOC0xOFwiPlxyXG4gICAgICAgICAgICAgICAgPGFuaW1hdGVUcmFuc2Zvcm1cclxuICAgICAgICAgICAgICAgICAgICBhdHRyaWJ1dGVOYW1lPVwidHJhbnNmb3JtXCJcclxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwicm90YXRlXCJcclxuICAgICAgICAgICAgICAgICAgICBmcm9tPVwiMCAxOCAxOFwiXHJcbiAgICAgICAgICAgICAgICAgICAgdG89XCIzNjAgMTggMThcIlxyXG4gICAgICAgICAgICAgICAgICAgIGR1cj1cIjFzXCJcclxuICAgICAgICAgICAgICAgICAgICByZXBlYXRDb3VudD1cImluZGVmaW5pdGVcIi8+XHJcbiAgICAgICAgICAgIDwvcGF0aD5cclxuICAgICAgICA8L2c+XHJcbiAgICA8L2c+XHJcbjwvc3ZnPlxyXG4iXX0=