@osovitny/anatoly 2.1.13 → 2.14.1

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 (164) hide show
  1. package/assets/styles/alerts.less +182 -0
  2. package/assets/styles/spinner.less +64 -0
  3. package/assets/styles/toastr.less +192 -0
  4. package/esm2020/lib/core/convert.mjs +62 -0
  5. package/esm2020/lib/core/core.module.mjs +72 -0
  6. package/esm2020/lib/core/go/base-go.service.mjs +41 -0
  7. package/esm2020/lib/core/guid.mjs +22 -0
  8. package/esm2020/lib/core/interceptors/httpInterceptor.mjs +108 -0
  9. package/esm2020/lib/core/localization/localization.module.mjs +47 -0
  10. package/esm2020/lib/core/localization/localization.service.mjs +185 -0
  11. package/esm2020/lib/core/localization/localizationSettings.module.mjs +88 -0
  12. package/esm2020/lib/core/localization/localize.pipe.mjs +78 -0
  13. package/esm2020/lib/core/logging/globalErrorHandler.mjs +44 -0
  14. package/esm2020/lib/core/logging/logging.service.mjs +39 -0
  15. package/esm2020/lib/core/notifications/services/notification-service.mjs +228 -0
  16. package/esm2020/lib/core/services/appcontext.service.mjs +118 -0
  17. package/esm2020/lib/core/services/dm.service.mjs +72 -0
  18. package/esm2020/lib/core/services/google-analytics.service.mjs +54 -0
  19. package/{esm2015/lib/core/services/idle.service.js → esm2020/lib/core/services/idle.service.mjs} +9 -7
  20. package/{esm2015/lib/core/services/loading.service.js → esm2020/lib/core/services/loading.service.mjs} +9 -8
  21. package/esm2020/lib/core/services/web-storage.service.mjs +69 -0
  22. package/esm2020/lib/core/subs.mjs +31 -0
  23. package/esm2020/lib/core/utils.mjs +82 -0
  24. package/esm2020/lib/data/base/base-api.service.mjs +89 -0
  25. package/esm2020/lib/data/base/grid/base-grid-edit.service.mjs +77 -0
  26. package/esm2020/lib/data/base/grid/base-grid-read.service.mjs +62 -0
  27. package/esm2020/lib/data/data.module.mjs +51 -0
  28. package/esm2020/lib/data/services/billing-api.service.mjs +65 -0
  29. package/esm2020/lib/data/services/notifications/notifications-api-service.mjs +43 -0
  30. package/esm2020/lib/ui/components/base-edit.component.mjs +143 -0
  31. package/esm2020/lib/ui/components/base.component.mjs +47 -0
  32. package/esm2020/lib/ui/components/base.dialog.mjs +49 -0
  33. package/esm2020/lib/ui/components/billing/buyaccess-button.component.mjs +69 -0
  34. package/esm2020/lib/ui/components/billing/subscribe-plan-button.component.mjs +63 -0
  35. package/esm2020/lib/ui/components/billing/upgrade-plan-button.component.mjs +53 -0
  36. package/esm2020/lib/ui/components/content-header/content-header.component.mjs +37 -0
  37. package/esm2020/lib/ui/components/html-editor/base-html-editor.component.mjs +111 -0
  38. package/esm2020/lib/ui/components/html-editor/forms-html-editor.component.mjs +48 -0
  39. package/esm2020/lib/ui/components/html-editor/html-editor.component.mjs +52 -0
  40. package/esm2020/lib/ui/components/identity/signin-button.component.mjs +32 -0
  41. package/esm2020/lib/ui/components/identity/signout-button.component.mjs +32 -0
  42. package/esm2020/lib/ui/components/identity/signup-button.component.mjs +31 -0
  43. package/esm2020/lib/ui/components/loading/loading.component.mjs +48 -0
  44. package/esm2020/lib/ui/components/spinner/spinner.component.mjs +74 -0
  45. package/esm2020/lib/ui/directives/native-element.directive.mjs +41 -0
  46. package/esm2020/lib/ui/pipes/filesize.pipe.mjs +45 -0
  47. package/esm2020/lib/ui/pipes/replace-text.pipe.mjs +40 -0
  48. package/esm2020/lib/ui/pipes/safeHtml.pipe.mjs +37 -0
  49. package/esm2020/lib/ui/ui.module.mjs +155 -0
  50. package/esm2020/lib/ui/validation/form-validation-summary.component.mjs +66 -0
  51. package/esm2020/lib/ui/validation/item-validation-summary.component.mjs +39 -0
  52. package/esm2020/lib/ui/validation/validation-summary.component.mjs +128 -0
  53. package/fesm2015/{osovitny-anatoly.js → osovitny-anatoly.mjs} +823 -765
  54. package/fesm2015/osovitny-anatoly.mjs.map +1 -0
  55. package/fesm2020/osovitny-anatoly.mjs +3496 -0
  56. package/fesm2020/osovitny-anatoly.mjs.map +1 -0
  57. package/{osovitny-anatoly.d.ts → index.d.ts} +1 -0
  58. package/lib/core/core.module.d.ts +5 -0
  59. package/lib/core/go/base-go.service.d.ts +3 -0
  60. package/lib/core/interceptors/httpInterceptor.d.ts +3 -0
  61. package/lib/core/localization/localization.module.d.ts +6 -0
  62. package/lib/core/localization/localization.service.d.ts +3 -0
  63. package/lib/core/localization/localizationSettings.module.d.ts +5 -0
  64. package/lib/core/localization/localize.pipe.d.ts +3 -0
  65. package/lib/core/logging/globalErrorHandler.d.ts +3 -0
  66. package/lib/core/logging/logging.service.d.ts +3 -0
  67. package/lib/core/notifications/services/notification-service.d.ts +3 -0
  68. package/lib/core/services/appcontext.service.d.ts +5 -2
  69. package/lib/core/services/dm.service.d.ts +3 -0
  70. package/lib/core/services/google-analytics.service.d.ts +3 -0
  71. package/lib/core/services/idle.service.d.ts +3 -0
  72. package/lib/core/services/loading.service.d.ts +3 -0
  73. package/lib/core/services/web-storage.service.d.ts +5 -0
  74. package/lib/data/base/base-api.service.d.ts +3 -0
  75. package/lib/data/base/grid/base-grid-edit.service.d.ts +3 -0
  76. package/lib/data/base/grid/base-grid-read.service.d.ts +3 -0
  77. package/lib/data/data.module.d.ts +5 -0
  78. package/lib/data/services/billing-api.service.d.ts +3 -0
  79. package/lib/data/services/notifications/notifications-api-service.d.ts +3 -0
  80. package/lib/ui/components/base-edit.component.d.ts +5 -2
  81. package/lib/ui/components/base.component.d.ts +3 -0
  82. package/lib/ui/components/base.dialog.d.ts +3 -0
  83. package/lib/ui/components/billing/buyaccess-button.component.d.ts +3 -0
  84. package/lib/ui/components/billing/subscribe-plan-button.component.d.ts +3 -0
  85. package/lib/ui/components/billing/upgrade-plan-button.component.d.ts +3 -0
  86. package/lib/ui/components/content-header/content-header.component.d.ts +3 -0
  87. package/lib/ui/components/html-editor/base-html-editor.component.d.ts +3 -0
  88. package/lib/ui/components/html-editor/forms-html-editor.component.d.ts +3 -0
  89. package/lib/ui/components/html-editor/html-editor.component.d.ts +3 -0
  90. package/lib/ui/components/identity/signin-button.component.d.ts +3 -0
  91. package/lib/ui/components/identity/signout-button.component.d.ts +3 -0
  92. package/lib/ui/components/identity/signup-button.component.d.ts +3 -0
  93. package/lib/ui/components/loading/loading.component.d.ts +3 -0
  94. package/lib/ui/components/spinner/spinner.component.d.ts +3 -0
  95. package/lib/ui/directives/native-element.directive.d.ts +3 -0
  96. package/lib/ui/pipes/filesize.pipe.d.ts +3 -0
  97. package/lib/ui/pipes/replace-text.pipe.d.ts +3 -0
  98. package/lib/ui/pipes/safeHtml.pipe.d.ts +3 -0
  99. package/lib/ui/ui.module.d.ts +24 -0
  100. package/lib/ui/validation/form-validation-summary.component.d.ts +3 -0
  101. package/lib/ui/validation/item-validation-summary.component.d.ts +3 -0
  102. package/lib/ui/validation/validation-summary.component.d.ts +3 -0
  103. package/package.json +23 -11
  104. package/bundles/osovitny-anatoly.umd.js +0 -3696
  105. package/bundles/osovitny-anatoly.umd.js.map +0 -1
  106. package/esm2015/lib/core/convert.js +0 -65
  107. package/esm2015/lib/core/core.module.js +0 -43
  108. package/esm2015/lib/core/go/base-go.service.js +0 -42
  109. package/esm2015/lib/core/guid.js +0 -25
  110. package/esm2015/lib/core/interceptors/httpInterceptor.js +0 -109
  111. package/esm2015/lib/core/localization/localization.module.js +0 -41
  112. package/esm2015/lib/core/localization/localization.service.js +0 -187
  113. package/esm2015/lib/core/localization/localizationSettings.module.js +0 -78
  114. package/esm2015/lib/core/localization/localize.pipe.js +0 -78
  115. package/esm2015/lib/core/logging/globalErrorHandler.js +0 -44
  116. package/esm2015/lib/core/logging/logging.service.js +0 -38
  117. package/esm2015/lib/core/notifications/services/notification-service.js +0 -230
  118. package/esm2015/lib/core/services/appcontext.service.js +0 -118
  119. package/esm2015/lib/core/services/dm.service.js +0 -74
  120. package/esm2015/lib/core/services/google-analytics.service.js +0 -53
  121. package/esm2015/lib/core/services/web-storage.service.js +0 -66
  122. package/esm2015/lib/core/subs.js +0 -34
  123. package/esm2015/lib/core/utils.js +0 -84
  124. package/esm2015/lib/data/base/base-api.service.js +0 -89
  125. package/esm2015/lib/data/base/grid/base-grid-edit.service.js +0 -77
  126. package/esm2015/lib/data/base/grid/base-grid-read.service.js +0 -62
  127. package/esm2015/lib/data/data.module.js +0 -43
  128. package/esm2015/lib/data/services/billing-api.service.js +0 -65
  129. package/esm2015/lib/data/services/notifications/notifications-api-service.js +0 -45
  130. package/esm2015/lib/ui/components/base-edit.component.js +0 -142
  131. package/esm2015/lib/ui/components/base.component.js +0 -43
  132. package/esm2015/lib/ui/components/base.dialog.js +0 -47
  133. package/esm2015/lib/ui/components/billing/buyaccess-button.component.js +0 -71
  134. package/esm2015/lib/ui/components/billing/subscribe-plan-button.component.js +0 -63
  135. package/esm2015/lib/ui/components/billing/upgrade-plan-button.component.js +0 -54
  136. package/esm2015/lib/ui/components/content-header/content-header.component.js +0 -37
  137. package/esm2015/lib/ui/components/html-editor/base-html-editor.component.js +0 -108
  138. package/esm2015/lib/ui/components/html-editor/forms-html-editor.component.js +0 -44
  139. package/esm2015/lib/ui/components/html-editor/html-editor.component.js +0 -51
  140. package/esm2015/lib/ui/components/identity/signin-button.component.js +0 -33
  141. package/esm2015/lib/ui/components/identity/signout-button.component.js +0 -33
  142. package/esm2015/lib/ui/components/identity/signup-button.component.js +0 -31
  143. package/esm2015/lib/ui/components/loading/loading.component.js +0 -49
  144. package/esm2015/lib/ui/components/spinner/spinner.component.js +0 -73
  145. package/esm2015/lib/ui/directives/native-element.directive.js +0 -41
  146. package/esm2015/lib/ui/pipes/filesize.pipe.js +0 -41
  147. package/esm2015/lib/ui/pipes/replace-text.pipe.js +0 -36
  148. package/esm2015/lib/ui/pipes/safeHtml.pipe.js +0 -36
  149. package/esm2015/lib/ui/ui.module.js +0 -105
  150. package/esm2015/lib/ui/validation/form-validation-summary.component.js +0 -64
  151. package/esm2015/lib/ui/validation/item-validation-summary.component.js +0 -38
  152. package/esm2015/lib/ui/validation/validation-summary.component.js +0 -126
  153. package/fesm2015/osovitny-anatoly.js.map +0 -1
  154. package/osovitny-anatoly.metadata.json +0 -1
  155. /package/{esm2015/lib/core/consts/settings.js → esm2020/lib/core/consts/settings.mjs} +0 -0
  156. /package/{esm2015/lib/core/consts/urls.js → esm2020/lib/core/consts/urls.mjs} +0 -0
  157. /package/{esm2015/lib/core/guards/once-import.guard.js → esm2020/lib/core/guards/once-import.guard.mjs} +0 -0
  158. /package/{esm2015/lib/core/localization/utils.js → esm2020/lib/core/localization/utils.mjs} +0 -0
  159. /package/{esm2015/lib/core/notifications/alerts.js → esm2020/lib/core/notifications/alerts.mjs} +0 -0
  160. /package/{esm2015/lib/core/notifications/interfaces/notification.js → esm2020/lib/core/notifications/interfaces/notification.mjs} +0 -0
  161. /package/{esm2015/lib/data/consts.js → esm2020/lib/data/consts.mjs} +0 -0
  162. /package/{esm2015/lib/ui/components/html-editor/html-editor.defaultoptions.js → esm2020/lib/ui/components/html-editor/html-editor.defaultoptions.mjs} +0 -0
  163. /package/{esm2015/osovitny-anatoly.js → esm2020/osovitny-anatoly.mjs} +0 -0
  164. /package/{esm2015/public-api.js → esm2020/public-api.mjs} +0 -0
@@ -1,142 +0,0 @@
1
- /*
2
- <file>
3
- Project:
4
- @osovitny/anatoly
5
-
6
- Authors:
7
- Vadim Osovitny
8
- Anatoly Osovitny
9
-
10
- Created:
11
- 20 Nov 2017
12
-
13
- Version:
14
- 1.0
15
-
16
- Copyright (c) 2016-2021 Osovitny Inc. All rights reserved.
17
- </file>
18
- */
19
- //Node
20
- import { Component, Input } from "@angular/core";
21
- import { FormControl, } from "@angular/forms";
22
- //App
23
- import { BaseComponent } from "./base.component";
24
- import { Utils } from "../../core/utils";
25
- export class BaseEditComponent extends BaseComponent {
26
- constructor() {
27
- super();
28
- this.formSubmitted = false;
29
- }
30
- isActionAdding() {
31
- var id = Utils.getValueByNameInQS("id");
32
- if (typeof id === "undefined" || id == "")
33
- return true;
34
- return false;
35
- }
36
- getEntityId() {
37
- return this.getQSId();
38
- }
39
- isControlValid(name, frmGroup = null) {
40
- return !this.isControlInvalid(name, frmGroup);
41
- }
42
- isControlInvalid(name, frmGroup = null) {
43
- if (typeof name === "undefined" || name == "") {
44
- return false;
45
- }
46
- let fg = frmGroup ? frmGroup : this.formGroup;
47
- if (!fg) {
48
- return false;
49
- }
50
- if (fg.get(name)) {
51
- return ((this.formSubmitted && fg.get(name).invalid) ||
52
- (fg.get(name).touched && fg.get(name).invalid));
53
- }
54
- return false;
55
- }
56
- //FormGroup functions
57
- getFormValue(name, frmGroup = null) {
58
- let fg = frmGroup ? frmGroup : this.formGroup;
59
- return fg.controls[name].value;
60
- }
61
- setFormValue(name, value, frmGroup = null) {
62
- let fg = frmGroup ? frmGroup : this.formGroup;
63
- fg.controls[name].setValue(value);
64
- }
65
- getFormGroupValue(groupName, name, frmGroup = null) {
66
- let fg = frmGroup ? frmGroup : this.formGroup;
67
- return fg.controls[groupName].get(name).value;
68
- }
69
- setFormGroupValue(groupName, name, value, frmGroup = null) {
70
- let fg = frmGroup ? frmGroup : this.formGroup;
71
- fg.controls[groupName].get(name).setValue(value);
72
- }
73
- /**
74
- * Add control to form group
75
- * @param name
76
- * @param formControl
77
- * @param formGroup
78
- */
79
- addControl(name, formControl, frmGroup = null) {
80
- let fg = frmGroup ? frmGroup : this.formGroup;
81
- fg.addControl(name, formControl);
82
- }
83
- /**
84
- * Removes control from form group
85
- * @param name
86
- * @param formGroup
87
- */
88
- removeControl(name, frmGroup = null) {
89
- let fg = frmGroup ? frmGroup : this.formGroup;
90
- if (fg.get(name)) {
91
- fg.removeControl(name);
92
- }
93
- }
94
- /**
95
- * return new form control
96
- * @param formState
97
- * @param validatorOrOpts
98
- * @param asyncValidator
99
- */
100
- createFormControl(formState, validatorOrOpts, asyncValidator) {
101
- return new FormControl(formState, validatorOrOpts, asyncValidator);
102
- }
103
- /**
104
- * Set error to control
105
- * @param controlName formControl name
106
- * @param err error expect {erroname: boolean} format
107
- * @param formGroup Specific form group. default it will apply on this.formGroup property
108
- */
109
- setControlError(controlName, err, frmGroup = null) {
110
- var _a;
111
- let fg = frmGroup ? frmGroup : this.formGroup;
112
- (_a = fg.get(controlName)) === null || _a === void 0 ? void 0 : _a.setErrors(err);
113
- }
114
- /**
115
- * Set {invalid: true} for the specified form
116
- * @param controlName form control name
117
- * @param formGroup
118
- */
119
- setInValidError(controlName, frmGroup = null) {
120
- var _a;
121
- let fg = frmGroup ? frmGroup : this.formGroup;
122
- (_a = fg.get(controlName)) === null || _a === void 0 ? void 0 : _a.setErrors({ invalid: true });
123
- }
124
- /**
125
- * returns formgroup controls.
126
- * main use case is used in html pages
127
- */
128
- get fc() {
129
- return this.formGroup.controls;
130
- }
131
- }
132
- BaseEditComponent.decorators = [
133
- { type: Component, args: [{
134
- template: ''
135
- },] }
136
- ];
137
- BaseEditComponent.ctorParameters = () => [];
138
- BaseEditComponent.propDecorators = {
139
- formGroup: [{ type: Input }],
140
- formSubmitted: [{ type: Input }]
141
- };
142
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1lZGl0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuYXRvbHkvc3JjL2xpYi91aS9jb21wb25lbnRzL2Jhc2UtZWRpdC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBaUJFO0FBRUYsTUFBTTtBQUNOLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFHTCxXQUFXLEdBSVosTUFBTSxnQkFBZ0IsQ0FBQztBQUV4QixLQUFLO0FBQ0wsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUt6QyxNQUFNLE9BQWdCLGlCQUFrQixTQUFRLGFBQWE7SUFJM0Q7UUFDRSxLQUFLLEVBQUUsQ0FBQztRQUhELGtCQUFhLEdBQVksS0FBSyxDQUFDO0lBSXhDLENBQUM7SUFFRCxjQUFjO1FBQ1osSUFBSSxFQUFFLEdBQUcsS0FBSyxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3hDLElBQUksT0FBTyxFQUFFLEtBQUssV0FBVyxJQUFJLEVBQUUsSUFBSSxFQUFFO1lBQUUsT0FBTyxJQUFJLENBQUM7UUFFdkQsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsV0FBVztRQUNULE9BQU8sSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFRCxjQUFjLENBQUMsSUFBWSxFQUFFLFdBQXNCLElBQUk7UUFDckQsT0FBTyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVELGdCQUFnQixDQUFDLElBQVksRUFBRSxXQUFzQixJQUFJO1FBQ3ZELElBQUksT0FBTyxJQUFJLEtBQUssV0FBVyxJQUFJLElBQUksSUFBSSxFQUFFLEVBQUU7WUFDN0MsT0FBTyxLQUFLLENBQUM7U0FDZDtRQUVELElBQUksRUFBRSxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBQzlDLElBQUksQ0FBQyxFQUFFLEVBQUU7WUFDUCxPQUFPLEtBQUssQ0FBQztTQUNkO1FBRUQsSUFBSSxFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ2hCLE9BQU8sQ0FDTCxDQUFDLElBQUksQ0FBQyxhQUFhLElBQUksRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUM7Z0JBQzVDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FDL0MsQ0FBQztTQUNIO1FBRUQsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQscUJBQXFCO0lBQ3JCLFlBQVksQ0FBQyxJQUFJLEVBQUUsV0FBc0IsSUFBSTtRQUMzQyxJQUFJLEVBQUUsR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUM5QyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDO0lBQ2pDLENBQUM7SUFFRCxZQUFZLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxXQUFzQixJQUFJO1FBQ2xELElBQUksRUFBRSxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBQzlDLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxTQUFTLEVBQUUsSUFBSSxFQUFFLFdBQXNCLElBQUk7UUFDM0QsSUFBSSxFQUFFLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUM7UUFDOUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUM7SUFDaEQsQ0FBQztJQUVELGlCQUFpQixDQUFDLFNBQVMsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLFdBQXNCLElBQUk7UUFDbEUsSUFBSSxFQUFFLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUM7UUFDOUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILFVBQVUsQ0FDUixJQUFZLEVBQ1osV0FBNEIsRUFDNUIsV0FBc0IsSUFBSTtRQUUxQixJQUFJLEVBQUUsR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUM5QyxFQUFFLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxXQUFXLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILGFBQWEsQ0FBQyxJQUFZLEVBQUUsV0FBc0IsSUFBSTtRQUNwRCxJQUFJLEVBQUUsR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUU5QyxJQUFJLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDaEIsRUFBRSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUN4QjtJQUNILENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILGlCQUFpQixDQUNmLFNBQWUsRUFDZixlQUlRLEVBQ1IsY0FBNkQ7UUFFN0QsT0FBTyxJQUFJLFdBQVcsQ0FBQyxTQUFTLEVBQUUsZUFBZSxFQUFFLGNBQWMsQ0FBQyxDQUFDO0lBQ3JFLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILGVBQWUsQ0FBQyxXQUFtQixFQUFFLEdBQU8sRUFBRSxXQUFzQixJQUFJOztRQUN0RSxJQUFJLEVBQUUsR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUM5QyxNQUFBLEVBQUUsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLDBDQUFFLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILGVBQWUsQ0FBQyxXQUFtQixFQUFFLFdBQXNCLElBQUk7O1FBQzdELElBQUksRUFBRSxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBQzlDLE1BQUEsRUFBRSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsMENBQUUsU0FBUyxDQUFDLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUVEOzs7T0FHRztJQUNILElBQUksRUFBRTtRQUNKLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUM7SUFDakMsQ0FBQzs7O1lBNUlGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsRUFBRTthQUNiOzs7O3dCQUVFLEtBQUs7NEJBQ0wsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbjxmaWxlPlxyXG4gIFByb2plY3Q6XHJcbiAgICBAb3Nvdml0bnkvYW5hdG9seVxyXG5cclxuICBBdXRob3JzOlxyXG4gICAgVmFkaW0gT3Nvdml0bnlcclxuICAgIEFuYXRvbHkgT3Nvdml0bnlcclxuXHJcbiAgQ3JlYXRlZDpcclxuICAgIDIwIE5vdiAyMDE3XHJcblxyXG4gIFZlcnNpb246XHJcbiAgICAxLjBcclxuXHJcbiAgQ29weXJpZ2h0IChjKSAyMDE2LTIwMjEgT3Nvdml0bnkgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxyXG48L2ZpbGU+XHJcbiovXHJcblxyXG4vL05vZGVcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7XHJcbiAgRm9ybUdyb3VwLFxyXG4gIEFic3RyYWN0Q29udHJvbCxcclxuICBGb3JtQ29udHJvbCxcclxuICBWYWxpZGF0b3JGbixcclxuICBBYnN0cmFjdENvbnRyb2xPcHRpb25zLFxyXG4gIEFzeW5jVmFsaWRhdG9yRm4sXHJcbn0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcblxyXG4vL0FwcFxyXG5pbXBvcnQgeyBCYXNlQ29tcG9uZW50IH0gZnJvbSBcIi4vYmFzZS5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgVXRpbHMgfSBmcm9tIFwiLi4vLi4vY29yZS91dGlsc1wiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgdGVtcGxhdGU6ICcnXHJcbn0pXHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBCYXNlRWRpdENvbXBvbmVudCBleHRlbmRzIEJhc2VDb21wb25lbnQge1xyXG4gIEBJbnB1dCgpIGZvcm1Hcm91cDogRm9ybUdyb3VwO1xyXG4gIEBJbnB1dCgpIGZvcm1TdWJtaXR0ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgICBzdXBlcigpO1xyXG4gIH1cclxuXHJcbiAgaXNBY3Rpb25BZGRpbmcoKSB7XHJcbiAgICB2YXIgaWQgPSBVdGlscy5nZXRWYWx1ZUJ5TmFtZUluUVMoXCJpZFwiKTtcclxuICAgIGlmICh0eXBlb2YgaWQgPT09IFwidW5kZWZpbmVkXCIgfHwgaWQgPT0gXCJcIikgcmV0dXJuIHRydWU7XHJcblxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgZ2V0RW50aXR5SWQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5nZXRRU0lkKCk7XHJcbiAgfVxyXG5cclxuICBpc0NvbnRyb2xWYWxpZChuYW1lOiBzdHJpbmcsIGZybUdyb3VwOiBGb3JtR3JvdXAgPSBudWxsKSB7XHJcbiAgICByZXR1cm4gIXRoaXMuaXNDb250cm9sSW52YWxpZChuYW1lLCBmcm1Hcm91cCk7XHJcbiAgfVxyXG5cclxuICBpc0NvbnRyb2xJbnZhbGlkKG5hbWU6IHN0cmluZywgZnJtR3JvdXA6IEZvcm1Hcm91cCA9IG51bGwpIHtcclxuICAgIGlmICh0eXBlb2YgbmFtZSA9PT0gXCJ1bmRlZmluZWRcIiB8fCBuYW1lID09IFwiXCIpIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIGxldCBmZyA9IGZybUdyb3VwID8gZnJtR3JvdXAgOiB0aGlzLmZvcm1Hcm91cDtcclxuICAgIGlmICghZmcpIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChmZy5nZXQobmFtZSkpIHtcclxuICAgICAgcmV0dXJuIChcclxuICAgICAgICAodGhpcy5mb3JtU3VibWl0dGVkICYmIGZnLmdldChuYW1lKS5pbnZhbGlkKSB8fFxyXG4gICAgICAgIChmZy5nZXQobmFtZSkudG91Y2hlZCAmJiBmZy5nZXQobmFtZSkuaW52YWxpZClcclxuICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICAvL0Zvcm1Hcm91cCBmdW5jdGlvbnNcclxuICBnZXRGb3JtVmFsdWUobmFtZSwgZnJtR3JvdXA6IEZvcm1Hcm91cCA9IG51bGwpIHtcclxuICAgIGxldCBmZyA9IGZybUdyb3VwID8gZnJtR3JvdXAgOiB0aGlzLmZvcm1Hcm91cDtcclxuICAgIHJldHVybiBmZy5jb250cm9sc1tuYW1lXS52YWx1ZTtcclxuICB9XHJcblxyXG4gIHNldEZvcm1WYWx1ZShuYW1lLCB2YWx1ZSwgZnJtR3JvdXA6IEZvcm1Hcm91cCA9IG51bGwpIHtcclxuICAgIGxldCBmZyA9IGZybUdyb3VwID8gZnJtR3JvdXAgOiB0aGlzLmZvcm1Hcm91cDtcclxuICAgIGZnLmNvbnRyb2xzW25hbWVdLnNldFZhbHVlKHZhbHVlKTtcclxuICB9XHJcblxyXG4gIGdldEZvcm1Hcm91cFZhbHVlKGdyb3VwTmFtZSwgbmFtZSwgZnJtR3JvdXA6IEZvcm1Hcm91cCA9IG51bGwpIHtcclxuICAgIGxldCBmZyA9IGZybUdyb3VwID8gZnJtR3JvdXAgOiB0aGlzLmZvcm1Hcm91cDtcclxuICAgIHJldHVybiBmZy5jb250cm9sc1tncm91cE5hbWVdLmdldChuYW1lKS52YWx1ZTtcclxuICB9XHJcblxyXG4gIHNldEZvcm1Hcm91cFZhbHVlKGdyb3VwTmFtZSwgbmFtZSwgdmFsdWUsIGZybUdyb3VwOiBGb3JtR3JvdXAgPSBudWxsKSB7XHJcbiAgICBsZXQgZmcgPSBmcm1Hcm91cCA/IGZybUdyb3VwIDogdGhpcy5mb3JtR3JvdXA7XHJcbiAgICBmZy5jb250cm9sc1tncm91cE5hbWVdLmdldChuYW1lKS5zZXRWYWx1ZSh2YWx1ZSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBBZGQgY29udHJvbCB0byBmb3JtIGdyb3VwXHJcbiAgICogQHBhcmFtIG5hbWVcclxuICAgKiBAcGFyYW0gZm9ybUNvbnRyb2xcclxuICAgKiBAcGFyYW0gZm9ybUdyb3VwXHJcbiAgICovXHJcbiAgYWRkQ29udHJvbChcclxuICAgIG5hbWU6IHN0cmluZyxcclxuICAgIGZvcm1Db250cm9sOiBBYnN0cmFjdENvbnRyb2wsXHJcbiAgICBmcm1Hcm91cDogRm9ybUdyb3VwID0gbnVsbFxyXG4gICkge1xyXG4gICAgbGV0IGZnID0gZnJtR3JvdXAgPyBmcm1Hcm91cCA6IHRoaXMuZm9ybUdyb3VwO1xyXG4gICAgZmcuYWRkQ29udHJvbChuYW1lLCBmb3JtQ29udHJvbCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZW1vdmVzIGNvbnRyb2wgZnJvbSBmb3JtIGdyb3VwXHJcbiAgICogQHBhcmFtIG5hbWVcclxuICAgKiBAcGFyYW0gZm9ybUdyb3VwXHJcbiAgICovXHJcbiAgcmVtb3ZlQ29udHJvbChuYW1lOiBzdHJpbmcsIGZybUdyb3VwOiBGb3JtR3JvdXAgPSBudWxsKSB7XHJcbiAgICBsZXQgZmcgPSBmcm1Hcm91cCA/IGZybUdyb3VwIDogdGhpcy5mb3JtR3JvdXA7XHJcblxyXG4gICAgaWYgKGZnLmdldChuYW1lKSkge1xyXG4gICAgICBmZy5yZW1vdmVDb250cm9sKG5hbWUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogcmV0dXJuIG5ldyBmb3JtIGNvbnRyb2xcclxuICAgKiBAcGFyYW0gZm9ybVN0YXRlXHJcbiAgICogQHBhcmFtIHZhbGlkYXRvck9yT3B0c1xyXG4gICAqIEBwYXJhbSBhc3luY1ZhbGlkYXRvclxyXG4gICAqL1xyXG4gIGNyZWF0ZUZvcm1Db250cm9sKFxyXG4gICAgZm9ybVN0YXRlPzogYW55LFxyXG4gICAgdmFsaWRhdG9yT3JPcHRzPzpcclxuICAgICAgfCBWYWxpZGF0b3JGblxyXG4gICAgICB8IFZhbGlkYXRvckZuW11cclxuICAgICAgfCBBYnN0cmFjdENvbnRyb2xPcHRpb25zXHJcbiAgICAgIHwgbnVsbCxcclxuICAgIGFzeW5jVmFsaWRhdG9yPzogQXN5bmNWYWxpZGF0b3JGbiB8IEFzeW5jVmFsaWRhdG9yRm5bXSB8IG51bGxcclxuICApIHtcclxuICAgIHJldHVybiBuZXcgRm9ybUNvbnRyb2woZm9ybVN0YXRlLCB2YWxpZGF0b3JPck9wdHMsIGFzeW5jVmFsaWRhdG9yKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNldCBlcnJvciB0byBjb250cm9sXHJcbiAgICogQHBhcmFtIGNvbnRyb2xOYW1lIGZvcm1Db250cm9sIG5hbWVcclxuICAgKiBAcGFyYW0gZXJyIGVycm9yIGV4cGVjdCB7ZXJyb25hbWU6IGJvb2xlYW59IGZvcm1hdFxyXG4gICAqIEBwYXJhbSBmb3JtR3JvdXAgU3BlY2lmaWMgZm9ybSBncm91cC4gZGVmYXVsdCBpdCB3aWxsIGFwcGx5IG9uIHRoaXMuZm9ybUdyb3VwIHByb3BlcnR5XHJcbiAgICovXHJcbiAgc2V0Q29udHJvbEVycm9yKGNvbnRyb2xOYW1lOiBzdHJpbmcsIGVycjoge30sIGZybUdyb3VwOiBGb3JtR3JvdXAgPSBudWxsKSB7XHJcbiAgICBsZXQgZmcgPSBmcm1Hcm91cCA/IGZybUdyb3VwIDogdGhpcy5mb3JtR3JvdXA7XHJcbiAgICBmZy5nZXQoY29udHJvbE5hbWUpPy5zZXRFcnJvcnMoZXJyKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNldCB7aW52YWxpZDogdHJ1ZX0gZm9yIHRoZSBzcGVjaWZpZWQgZm9ybVxyXG4gICAqIEBwYXJhbSBjb250cm9sTmFtZSBmb3JtIGNvbnRyb2wgbmFtZVxyXG4gICAqIEBwYXJhbSBmb3JtR3JvdXBcclxuICAgKi9cclxuICBzZXRJblZhbGlkRXJyb3IoY29udHJvbE5hbWU6IHN0cmluZywgZnJtR3JvdXA6IEZvcm1Hcm91cCA9IG51bGwpIHtcclxuICAgIGxldCBmZyA9IGZybUdyb3VwID8gZnJtR3JvdXAgOiB0aGlzLmZvcm1Hcm91cDtcclxuICAgIGZnLmdldChjb250cm9sTmFtZSk/LnNldEVycm9ycyh7IGludmFsaWQ6IHRydWUgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiByZXR1cm5zIGZvcm1ncm91cCBjb250cm9scy5cclxuICAgKiBtYWluIHVzZSBjYXNlIGlzIHVzZWQgaW4gaHRtbCBwYWdlc1xyXG4gICAqL1xyXG4gIGdldCBmYygpIHtcclxuICAgIHJldHVybiB0aGlzLmZvcm1Hcm91cC5jb250cm9scztcclxuICB9XHJcbn1cclxuIl19
@@ -1,43 +0,0 @@
1
- /*
2
- <file>
3
- Project:
4
- @osovitny/anatoly
5
-
6
- Authors:
7
- Vadim Osovitny
8
- Anatoly Osovitny
9
-
10
- Created:
11
- 28 Aug 2018
12
-
13
- Version:
14
- 1.0
15
-
16
- Copyright (c) 2016-2021 Osovitny Inc. All rights reserved.
17
- </file>
18
- */
19
- //Node
20
- import { Component } from "@angular/core";
21
- //App
22
- import { Utils } from "../../core/utils";
23
- import { Subs } from "../../core/subs";
24
- export class BaseComponent {
25
- constructor() {
26
- this.subs = new Subs();
27
- }
28
- getQSId() {
29
- var id = Utils.getValueByNameInQS("id");
30
- if (typeof id === "undefined" || id == "")
31
- return null;
32
- return id;
33
- }
34
- ngOnDestroy() {
35
- this.subs.unsubscribe();
36
- }
37
- }
38
- BaseComponent.decorators = [
39
- { type: Component, args: [{
40
- template: ''
41
- },] }
42
- ];
43
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmF0b2x5L3NyYy9saWIvdWkvY29tcG9uZW50cy9iYXNlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7RUFpQkU7QUFFRixNQUFNO0FBQ04sT0FBTyxFQUFFLFNBQVMsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUVyRCxLQUFLO0FBQ0wsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3pDLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUt2QyxNQUFNLE9BQWdCLGFBQWE7SUFIbkM7UUFJWSxTQUFJLEdBQVMsSUFBSSxJQUFJLEVBQUUsQ0FBQztJQVlwQyxDQUFDO0lBVkMsT0FBTztRQUNMLElBQUksRUFBRSxHQUFHLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN4QyxJQUFJLE9BQU8sRUFBRSxLQUFLLFdBQVcsSUFBSSxFQUFFLElBQUksRUFBRTtZQUFFLE9BQU8sSUFBSSxDQUFDO1FBRXZELE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQzFCLENBQUM7OztZQWZGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsRUFBRTthQUNiIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuPGZpbGU+XHJcbiAgUHJvamVjdDpcclxuICAgIEBvc292aXRueS9hbmF0b2x5XHJcblxyXG4gIEF1dGhvcnM6XHJcbiAgICBWYWRpbSBPc292aXRueVxyXG4gICAgQW5hdG9seSBPc292aXRueVxyXG5cclxuICBDcmVhdGVkOlxyXG4gICAgMjggQXVnIDIwMThcclxuXHJcbiAgVmVyc2lvbjpcclxuICAgIDEuMFxyXG5cclxuICBDb3B5cmlnaHQgKGMpIDIwMTYtMjAyMSBPc292aXRueSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXHJcbjwvZmlsZT5cclxuKi9cclxuXHJcbi8vTm9kZVxyXG5pbXBvcnQgeyBDb21wb25lbnQsIE9uRGVzdHJveSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcblxyXG4vL0FwcFxyXG5pbXBvcnQgeyBVdGlscyB9IGZyb20gXCIuLi8uLi9jb3JlL3V0aWxzXCI7XHJcbmltcG9ydCB7IFN1YnMgfSBmcm9tIFwiLi4vLi4vY29yZS9zdWJzXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICB0ZW1wbGF0ZTogJydcclxufSlcclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xyXG4gIHByb3RlY3RlZCBzdWJzOiBTdWJzID0gbmV3IFN1YnMoKTtcclxuXHJcbiAgZ2V0UVNJZCgpIHtcclxuICAgIHZhciBpZCA9IFV0aWxzLmdldFZhbHVlQnlOYW1lSW5RUyhcImlkXCIpO1xyXG4gICAgaWYgKHR5cGVvZiBpZCA9PT0gXCJ1bmRlZmluZWRcIiB8fCBpZCA9PSBcIlwiKSByZXR1cm4gbnVsbDtcclxuXHJcbiAgICByZXR1cm4gaWQ7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMuc3Vicy51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -1,47 +0,0 @@
1
- /*
2
- <file>
3
- Project:
4
- @osovitny/anatoly
5
-
6
- Authors:
7
- Vadim Osovitny
8
- Anatoly Osovitny
9
-
10
- Created:
11
- 24 Jan 2022
12
-
13
- Version:
14
- 1.0
15
-
16
- Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
17
- </file>
18
- */
19
- //Node
20
- import { Component, Input } from "@angular/core";
21
- //App
22
- import { BaseEditComponent } from "./base-edit.component";
23
- export class BaseDialog extends BaseEditComponent {
24
- constructor() {
25
- super();
26
- this._opened = false;
27
- }
28
- get opened() {
29
- return this._opened;
30
- }
31
- open() {
32
- this._opened = true;
33
- }
34
- close() {
35
- this._opened = false;
36
- }
37
- }
38
- BaseDialog.decorators = [
39
- { type: Component, args: [{
40
- template: ''
41
- },] }
42
- ];
43
- BaseDialog.ctorParameters = () => [];
44
- BaseDialog.propDecorators = {
45
- opened: [{ type: Input }]
46
- };
47
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS5kaWFsb2cuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmF0b2x5L3NyYy9saWIvdWkvY29tcG9uZW50cy9iYXNlLmRpYWxvZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7RUFpQkU7QUFFRixNQUFNO0FBQ04sT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFakQsS0FBSztBQUNMLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBSzFELE1BQU0sT0FBZ0IsVUFBVyxTQUFRLGlCQUFpQjtJQVF4RDtRQUNFLEtBQUssRUFBRSxDQUFDO1FBUkYsWUFBTyxHQUFHLEtBQUssQ0FBQztJQVN4QixDQUFDO0lBUEQsSUFDSSxNQUFNO1FBQ1IsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3RCLENBQUM7SUFNRCxJQUFJO1FBQ0YsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7SUFDdEIsQ0FBQztJQUVELEtBQUs7UUFDSCxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztJQUN2QixDQUFDOzs7WUFyQkYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxFQUFFO2FBQ2I7Ozs7cUJBSUUsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbjxmaWxlPlxyXG4gIFByb2plY3Q6XHJcbiAgICBAb3Nvdml0bnkvYW5hdG9seVxyXG5cclxuICBBdXRob3JzOlxyXG4gICAgVmFkaW0gT3Nvdml0bnlcclxuICAgIEFuYXRvbHkgT3Nvdml0bnlcclxuXHJcbiAgQ3JlYXRlZDpcclxuICAgIDI0IEphbiAyMDIyXHJcblxyXG4gIFZlcnNpb246XHJcbiAgICAxLjBcclxuXHJcbiAgQ29weXJpZ2h0IChjKSAyMDE2LTIwMjIgT3Nvdml0bnkgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxyXG48L2ZpbGU+XHJcbiovXHJcblxyXG4vL05vZGVcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcblxyXG4vL0FwcFxyXG5pbXBvcnQgeyBCYXNlRWRpdENvbXBvbmVudCB9IGZyb20gXCIuL2Jhc2UtZWRpdC5jb21wb25lbnRcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHRlbXBsYXRlOiAnJ1xyXG59KVxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQmFzZURpYWxvZyBleHRlbmRzIEJhc2VFZGl0Q29tcG9uZW50IHtcclxuICBwcml2YXRlIF9vcGVuZWQgPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KClcclxuICBnZXQgb3BlbmVkKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX29wZW5lZDtcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgc3VwZXIoKTtcclxuICB9XHJcblxyXG4gIG9wZW4oKSB7XHJcbiAgICB0aGlzLl9vcGVuZWQgPSB0cnVlO1xyXG4gIH1cclxuICBcclxuICBjbG9zZSgpIHtcclxuICAgIHRoaXMuX29wZW5lZCA9IGZhbHNlO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -1,71 +0,0 @@
1
- /*
2
- <file>
3
- Project:
4
- @osovitny/anatoly
5
-
6
- Authors:
7
- Vadim Osovitny
8
- Anatoly Osovitny
9
-
10
- Created:
11
- 14 Aug 2018
12
-
13
- Copyright (c) 2016-2021 Osovitny Inc. All rights reserved.
14
- </file>
15
- */
16
- // Node
17
- import { Component, Input } from '@angular/core';
18
- // App
19
- import { AppContextService } from '../../../core/services/appcontext.service';
20
- import { BillingApiService } from '../../../data/services/billing-api.service';
21
- import { Alerts } from '../../../core/notifications/alerts';
22
- export class BuyAccessButtonComponent {
23
- constructor(appContext, api) {
24
- this.appContext = appContext;
25
- this.api = api;
26
- this.contextUpdated = false;
27
- this.isUserSignedIn = false;
28
- this.currentPlan = 0;
29
- this.currentPlanTitle = '';
30
- }
31
- ngOnInit() {
32
- if (!this.appContext.isUserSignedIn()) {
33
- this.contextUpdated = true;
34
- return;
35
- }
36
- this.appContext.getCurrent((current) => {
37
- this.isUserSignedIn = current.isUserSignedIn;
38
- if (this.isUserSignedIn) {
39
- this.currentPlan = current.account.billingPlan;
40
- this.currentPlanTitle = current.account.billingPlanAsString;
41
- }
42
- this.contextUpdated = true;
43
- });
44
- }
45
- onBuyPlan() {
46
- const text = `Requested plan: ${this.plantitle} `;
47
- const that = this;
48
- Alerts.areYouSure(text, 'Buying access', 'Confirm change', 'Cancel', () => {
49
- that.api.buyAccess(that.plan, () => {
50
- Alerts.success('Access Granted', null, null, () => {
51
- window.location.reload();
52
- });
53
- });
54
- });
55
- }
56
- }
57
- BuyAccessButtonComponent.decorators = [
58
- { type: Component, args: [{
59
- selector: 'anatoly-buyaccess-button',
60
- template: "<div *ngIf=\"contextUpdated\">\r\n <div *ngIf=\"!isUserSignedIn\">\r\n <anatoly-signup-button classbtn=\"btn btn-block btn-primary\"></anatoly-signup-button>\r\n </div>\r\n\r\n <div *ngIf=\"isUserSignedIn\">\r\n <button class=\"btn btn-block btn-success selectPlan\" *ngIf=\"plan == currentPlan\">\r\n Your Plan\r\n </button>\r\n\r\n <button class=\"btn btn-block btn-warning selectPlan\" *ngIf=\"plan != currentPlan && currentPlan == 1\" (click)=\"onBuyPlan()\">\r\n Buy Now\r\n </button>\r\n </div>\r\n</div>\r\n"
61
- },] }
62
- ];
63
- BuyAccessButtonComponent.ctorParameters = () => [
64
- { type: AppContextService },
65
- { type: BillingApiService }
66
- ];
67
- BuyAccessButtonComponent.propDecorators = {
68
- plan: [{ type: Input }],
69
- plantitle: [{ type: Input }]
70
- };
71
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV5YWNjZXNzLWJ1dHRvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmF0b2x5L3NyYy9saWIvdWkvY29tcG9uZW50cy9iaWxsaW5nL2J1eWFjY2Vzcy1idXR0b24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztFQWNFO0FBRUYsT0FBTztBQUNQLE9BQU8sRUFBQyxTQUFTLEVBQUUsS0FBSyxFQUFTLE1BQU0sZUFBZSxDQUFDO0FBRXZELE1BQU07QUFDTixPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSwyQ0FBMkMsQ0FBQztBQUM1RSxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSw0Q0FBNEMsQ0FBQztBQUM3RSxPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0sb0NBQW9DLENBQUM7QUFNMUQsTUFBTSxPQUFPLHdCQUF3QjtJQVNuQyxZQUNVLFVBQTZCLEVBQzdCLEdBQXNCO1FBRHRCLGVBQVUsR0FBVixVQUFVLENBQW1CO1FBQzdCLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBVnpCLG1CQUFjLEdBQUcsS0FBSyxDQUFDO1FBQ3ZCLG1CQUFjLEdBQUcsS0FBSyxDQUFDO1FBQ3ZCLGdCQUFXLEdBQUcsQ0FBQyxDQUFDO1FBQ2hCLHFCQUFnQixHQUFHLEVBQUUsQ0FBQztJQVU3QixDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGNBQWMsRUFBRSxFQUFFO1lBQ3JDLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDO1lBQzNCLE9BQU87U0FDUjtRQUVELElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7WUFDckMsSUFBSSxDQUFDLGNBQWMsR0FBRyxPQUFPLENBQUMsY0FBYyxDQUFDO1lBRTdDLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRTtnQkFDdkIsSUFBSSxDQUFDLFdBQVcsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQztnQkFDL0MsSUFBSSxDQUFDLGdCQUFnQixHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsbUJBQW1CLENBQUM7YUFDN0Q7WUFFRCxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQztRQUM3QixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxTQUFTO1FBQ1AsTUFBTSxJQUFJLEdBQUcsbUJBQW1CLElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQztRQUNsRCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUM7UUFFbEIsTUFBTSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUU7WUFDeEUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxHQUFHLEVBQUU7Z0JBQ2pDLE1BQU0sQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBQyxHQUFHLEVBQUU7b0JBQzlDLE1BQWMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBQ3BDLENBQUMsQ0FBQyxDQUFDO1lBQ0wsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7OztZQWpERixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLDBCQUEwQjtnQkFDcEMsNGlCQUFnRDthQUNqRDs7O1lBUE8saUJBQWlCO1lBQ2pCLGlCQUFpQjs7O21CQWF0QixLQUFLO3dCQUNMLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG48ZmlsZT5cclxuICBQcm9qZWN0OlxyXG4gICAgQG9zb3ZpdG55L2FuYXRvbHlcclxuXHJcbiAgQXV0aG9yczpcclxuICAgIFZhZGltIE9zb3ZpdG55XHJcbiAgICBBbmF0b2x5IE9zb3ZpdG55XHJcblxyXG4gIENyZWF0ZWQ6XHJcbiAgICAxNCBBdWcgMjAxOFxyXG5cclxuICBDb3B5cmlnaHQgKGMpIDIwMTYtMjAyMSBPc292aXRueSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXHJcbjwvZmlsZT5cclxuKi9cclxuXHJcbi8vIE5vZGVcclxuaW1wb3J0IHtDb21wb25lbnQsIElucHV0LCBPbkluaXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuLy8gQXBwXHJcbmltcG9ydCB7QXBwQ29udGV4dFNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL2NvcmUvc2VydmljZXMvYXBwY29udGV4dC5zZXJ2aWNlJztcclxuaW1wb3J0IHtCaWxsaW5nQXBpU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vZGF0YS9zZXJ2aWNlcy9iaWxsaW5nLWFwaS5zZXJ2aWNlJztcclxuaW1wb3J0IHtBbGVydHN9IGZyb20gJy4uLy4uLy4uL2NvcmUvbm90aWZpY2F0aW9ucy9hbGVydHMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhbmF0b2x5LWJ1eWFjY2Vzcy1idXR0b24nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9idXlhY2Nlc3MtYnV0dG9uLmNvbXBvbmVudC5odG1sJyxcclxufSlcclxuZXhwb3J0IGNsYXNzIEJ1eUFjY2Vzc0J1dHRvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgcHVibGljIGNvbnRleHRVcGRhdGVkID0gZmFsc2U7XHJcbiAgcHVibGljIGlzVXNlclNpZ25lZEluID0gZmFsc2U7XHJcbiAgcHVibGljIGN1cnJlbnRQbGFuID0gMDtcclxuICBwdWJsaWMgY3VycmVudFBsYW5UaXRsZSA9ICcnO1xyXG5cclxuICBASW5wdXQoKSBwbGFuOiBudW1iZXI7XHJcbiAgQElucHV0KCkgcGxhbnRpdGxlOiBzdHJpbmc7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBhcHBDb250ZXh0OiBBcHBDb250ZXh0U2VydmljZSxcclxuICAgIHByaXZhdGUgYXBpOiBCaWxsaW5nQXBpU2VydmljZVxyXG4gICkge1xyXG5cclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgaWYgKCF0aGlzLmFwcENvbnRleHQuaXNVc2VyU2lnbmVkSW4oKSkge1xyXG4gICAgICB0aGlzLmNvbnRleHRVcGRhdGVkID0gdHJ1ZTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuYXBwQ29udGV4dC5nZXRDdXJyZW50KChjdXJyZW50KSA9PiB7XHJcbiAgICAgIHRoaXMuaXNVc2VyU2lnbmVkSW4gPSBjdXJyZW50LmlzVXNlclNpZ25lZEluO1xyXG5cclxuICAgICAgaWYgKHRoaXMuaXNVc2VyU2lnbmVkSW4pIHtcclxuICAgICAgICB0aGlzLmN1cnJlbnRQbGFuID0gY3VycmVudC5hY2NvdW50LmJpbGxpbmdQbGFuO1xyXG4gICAgICAgIHRoaXMuY3VycmVudFBsYW5UaXRsZSA9IGN1cnJlbnQuYWNjb3VudC5iaWxsaW5nUGxhbkFzU3RyaW5nO1xyXG4gICAgICB9XHJcblxyXG4gICAgICB0aGlzLmNvbnRleHRVcGRhdGVkID0gdHJ1ZTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgb25CdXlQbGFuKCkge1xyXG4gICAgY29uc3QgdGV4dCA9IGBSZXF1ZXN0ZWQgcGxhbjogJHt0aGlzLnBsYW50aXRsZX0gYDtcclxuICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xyXG5cclxuICAgIEFsZXJ0cy5hcmVZb3VTdXJlKHRleHQsICdCdXlpbmcgYWNjZXNzJywgJ0NvbmZpcm0gY2hhbmdlJywgJ0NhbmNlbCcsICgpID0+IHtcclxuICAgICAgdGhhdC5hcGkuYnV5QWNjZXNzKHRoYXQucGxhbiwgKCkgPT4ge1xyXG4gICAgICAgIEFsZXJ0cy5zdWNjZXNzKCdBY2Nlc3MgR3JhbnRlZCcsIG51bGwsIG51bGwsKCkgPT4ge1xyXG4gICAgICAgICAgKHdpbmRvdyBhcyBhbnkpLmxvY2F0aW9uLnJlbG9hZCgpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -1,63 +0,0 @@
1
- /*
2
- <file>
3
- Project:
4
- @osovitny/anatoly
5
-
6
- Authors:
7
- Vadim Osovitny
8
- Anatoly Osovitny
9
-
10
- Created:
11
- 1 Jun 2018
12
-
13
- Version:
14
- 1.0
15
-
16
- Copyright (c) 2016-2021 Osovitny Inc. All rights reserved.
17
- </file>
18
- */
19
- // Node
20
- import { Component, Input } from "@angular/core";
21
- // Services
22
- import { AppContextService } from "../../../core/services/appcontext.service";
23
- export class SubscribePlanButtonComponent {
24
- constructor(appcontext) {
25
- this.appcontext = appcontext;
26
- this.contextUpdated = false;
27
- this.isUserSignedIn = false;
28
- this.currentPlan = 0;
29
- this.currentPlanTitle = "";
30
- this.requestedPlan = 0;
31
- this.requestedPlanTitle = "";
32
- }
33
- ngOnInit() {
34
- if (!this.appcontext.isUserSignedIn()) {
35
- this.contextUpdated = true;
36
- return;
37
- }
38
- this.appcontext.getCurrent((current) => {
39
- this.isUserSignedIn = current.isUserSignedIn;
40
- if (this.isUserSignedIn) {
41
- this.currentPlan = current.account.billingPlan;
42
- this.currentPlanTitle = current.account.billingPlanAsString;
43
- this.requestedPlan = current.account.requestedBillingPlan;
44
- this.requestedPlanTitle = current.account.requestedBillingPlanAsString;
45
- }
46
- this.contextUpdated = true;
47
- });
48
- }
49
- }
50
- SubscribePlanButtonComponent.decorators = [
51
- { type: Component, args: [{
52
- selector: "anatoly-subscribe-plan-button",
53
- template: "<div *ngIf=\"contextUpdated\">\r\n <div *ngIf=\"!isUserSignedIn\">\r\n <anatoly-signup-button classbtn=\"btn btn-block btn-primary\"></anatoly-signup-button>\r\n </div>\r\n\r\n <div *ngIf=\"isUserSignedIn\">\r\n <button class=\"btn btn-block btn-success selectPlan\" *ngIf=\"plan == currentPlan\">\r\n Your Plan\r\n </button>\r\n\r\n <button class=\"btn btn-block btn-warning selectPlan\" *ngIf=\"requestedPlan != null && requestedPlan != 0 && plan == requestedPlan\">\r\n Requested\r\n </button>\r\n\r\n <anatoly-upgrade-plan-button *ngIf=\"plan != currentPlan && plan != requestedPlan\"\r\n [currentplantitle]=\"currentPlanTitle\"\r\n [requestedplan]=plan\r\n [requestedplantitle]=\"plantitle\">\r\n </anatoly-upgrade-plan-button>\r\n </div>\r\n</div>\r\n"
54
- },] }
55
- ];
56
- SubscribePlanButtonComponent.ctorParameters = () => [
57
- { type: AppContextService }
58
- ];
59
- SubscribePlanButtonComponent.propDecorators = {
60
- plan: [{ type: Input }],
61
- plantitle: [{ type: Input }]
62
- };
63
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Vic2NyaWJlLXBsYW4tYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuYXRvbHkvc3JjL2xpYi91aS9jb21wb25lbnRzL2JpbGxpbmcvc3Vic2NyaWJlLXBsYW4tYnV0dG9uLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7RUFpQkU7QUFFRixPQUFPO0FBQ1AsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFFekQsV0FBVztBQUNYLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBTTlFLE1BQU0sT0FBTyw0QkFBNEI7SUFXdkMsWUFBb0IsVUFBNkI7UUFBN0IsZUFBVSxHQUFWLFVBQVUsQ0FBbUI7UUFWMUMsbUJBQWMsR0FBRyxLQUFLLENBQUM7UUFDdkIsbUJBQWMsR0FBRyxLQUFLLENBQUM7UUFDdkIsZ0JBQVcsR0FBRyxDQUFDLENBQUM7UUFDaEIscUJBQWdCLEdBQUcsRUFBRSxDQUFDO1FBQ3RCLGtCQUFhLEdBQUcsQ0FBQyxDQUFDO1FBQ2xCLHVCQUFrQixHQUFHLEVBQUUsQ0FBQztJQUtxQixDQUFDO0lBRXJELFFBQVE7UUFDTixJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxjQUFjLEVBQUUsRUFBRTtZQUNyQyxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQztZQUMzQixPQUFPO1NBQ1I7UUFFRCxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO1lBQ3JDLElBQUksQ0FBQyxjQUFjLEdBQUcsT0FBTyxDQUFDLGNBQWMsQ0FBQztZQUU3QyxJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUU7Z0JBQ3ZCLElBQUksQ0FBQyxXQUFXLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUM7Z0JBQy9DLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLG1CQUFtQixDQUFDO2dCQUM1RCxJQUFJLENBQUMsYUFBYSxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsb0JBQW9CLENBQUM7Z0JBQzFELElBQUksQ0FBQyxrQkFBa0IsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLDRCQUE0QixDQUFDO2FBQ3hFO1lBRUQsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUM7UUFDN0IsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOzs7WUFuQ0YsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSwrQkFBK0I7Z0JBQ3pDLHE0QkFBcUQ7YUFDdEQ7OztZQUxRLGlCQUFpQjs7O21CQWN2QixLQUFLO3dCQUNMLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG48ZmlsZT5cclxuICBQcm9qZWN0OlxyXG4gICAgQG9zb3ZpdG55L2FuYXRvbHlcclxuXHJcbiAgQXV0aG9yczpcclxuICAgIFZhZGltIE9zb3ZpdG55XHJcbiAgICBBbmF0b2x5IE9zb3ZpdG55XHJcblxyXG4gIENyZWF0ZWQ6XHJcbiAgICAxIEp1biAyMDE4XHJcblxyXG4gIFZlcnNpb246XHJcbiAgICAxLjBcclxuXHJcbiAgQ29weXJpZ2h0IChjKSAyMDE2LTIwMjEgT3Nvdml0bnkgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxyXG48L2ZpbGU+XHJcbiovXHJcblxyXG4vLyBOb2RlXHJcbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcblxyXG4vLyBTZXJ2aWNlc1xyXG5pbXBvcnQgeyBBcHBDb250ZXh0U2VydmljZSB9IGZyb20gXCIuLi8uLi8uLi9jb3JlL3NlcnZpY2VzL2FwcGNvbnRleHQuc2VydmljZVwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwiYW5hdG9seS1zdWJzY3JpYmUtcGxhbi1idXR0b25cIixcclxuICB0ZW1wbGF0ZVVybDogXCIuL3N1YnNjcmliZS1wbGFuLWJ1dHRvbi5jb21wb25lbnQuaHRtbFwiLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU3Vic2NyaWJlUGxhbkJ1dHRvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgcHVibGljIGNvbnRleHRVcGRhdGVkID0gZmFsc2U7XHJcbiAgcHVibGljIGlzVXNlclNpZ25lZEluID0gZmFsc2U7XHJcbiAgcHVibGljIGN1cnJlbnRQbGFuID0gMDtcclxuICBwdWJsaWMgY3VycmVudFBsYW5UaXRsZSA9IFwiXCI7XHJcbiAgcHVibGljIHJlcXVlc3RlZFBsYW4gPSAwO1xyXG4gIHB1YmxpYyByZXF1ZXN0ZWRQbGFuVGl0bGUgPSBcIlwiO1xyXG5cclxuICBASW5wdXQoKSBwbGFuOiBudW1iZXI7XHJcbiAgQElucHV0KCkgcGxhbnRpdGxlOiBzdHJpbmc7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgYXBwY29udGV4dDogQXBwQ29udGV4dFNlcnZpY2UpIHt9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgaWYgKCF0aGlzLmFwcGNvbnRleHQuaXNVc2VyU2lnbmVkSW4oKSkge1xyXG4gICAgICB0aGlzLmNvbnRleHRVcGRhdGVkID0gdHJ1ZTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuYXBwY29udGV4dC5nZXRDdXJyZW50KChjdXJyZW50KSA9PiB7XHJcbiAgICAgIHRoaXMuaXNVc2VyU2lnbmVkSW4gPSBjdXJyZW50LmlzVXNlclNpZ25lZEluO1xyXG5cclxuICAgICAgaWYgKHRoaXMuaXNVc2VyU2lnbmVkSW4pIHtcclxuICAgICAgICB0aGlzLmN1cnJlbnRQbGFuID0gY3VycmVudC5hY2NvdW50LmJpbGxpbmdQbGFuO1xyXG4gICAgICAgIHRoaXMuY3VycmVudFBsYW5UaXRsZSA9IGN1cnJlbnQuYWNjb3VudC5iaWxsaW5nUGxhbkFzU3RyaW5nO1xyXG4gICAgICAgIHRoaXMucmVxdWVzdGVkUGxhbiA9IGN1cnJlbnQuYWNjb3VudC5yZXF1ZXN0ZWRCaWxsaW5nUGxhbjtcclxuICAgICAgICB0aGlzLnJlcXVlc3RlZFBsYW5UaXRsZSA9IGN1cnJlbnQuYWNjb3VudC5yZXF1ZXN0ZWRCaWxsaW5nUGxhbkFzU3RyaW5nO1xyXG4gICAgICB9XHJcblxyXG4gICAgICB0aGlzLmNvbnRleHRVcGRhdGVkID0gdHJ1ZTtcclxuICAgIH0pO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -1,54 +0,0 @@
1
- /*
2
- <file>
3
- Project:
4
- @osovitny/anatoly
5
-
6
- Authors:
7
- Vadim Osovitny
8
- Anatoly Osovitny
9
-
10
- Created:
11
- 12 Nov 2017
12
-
13
- Version:
14
- 1.0
15
-
16
- Copyright (c) 2016-2021 Osovitny Inc. All rights reserved.
17
- </file>
18
- */
19
- // Node
20
- import { Component, Input } from '@angular/core';
21
- import { BillingApiService } from '../../../data/services/billing-api.service';
22
- import { Alerts } from '../../../core/notifications/alerts';
23
- // Services
24
- export class UpgradePlanButtonComponent {
25
- constructor(api) {
26
- this.api = api;
27
- }
28
- onUpgradePlan() {
29
- const text = `Current plan: ${this.currentplantitle} New plan: ${this.requestedplantitle}`;
30
- const that = this;
31
- Alerts.areYouSure(text, 'Change billing plan', 'Confirm change', 'Cancel', () => {
32
- that.api.requestNewSubscription(that.requestedplan, () => {
33
- Alerts.success('Your request for changing plan has been sent.', null, null, () => {
34
- window.location.reload();
35
- });
36
- });
37
- });
38
- }
39
- }
40
- UpgradePlanButtonComponent.decorators = [
41
- { type: Component, args: [{
42
- selector: 'anatoly-upgrade-plan-button',
43
- template: "<button class=\"btn btn-block btn-primary\" (click)=\"onUpgradePlan()\">\r\n Upgrade\r\n</button>\r\n"
44
- },] }
45
- ];
46
- UpgradePlanButtonComponent.ctorParameters = () => [
47
- { type: BillingApiService }
48
- ];
49
- UpgradePlanButtonComponent.propDecorators = {
50
- currentplantitle: [{ type: Input }],
51
- requestedplan: [{ type: Input }],
52
- requestedplantitle: [{ type: Input }]
53
- };
54
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBncmFkZS1wbGFuLWJ1dHRvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmF0b2x5L3NyYy9saWIvdWkvY29tcG9uZW50cy9iaWxsaW5nL3VwZ3JhZGUtcGxhbi1idXR0b24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7OztFQWlCRTtBQUVGLE9BQU87QUFDUCxPQUFPLEVBQUMsU0FBUyxFQUFFLEtBQUssRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUMvQyxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSw0Q0FBNEMsQ0FBQztBQUM3RSxPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0sb0NBQW9DLENBQUM7QUFFMUQsV0FBVztBQU1YLE1BQU0sT0FBTywwQkFBMEI7SUFLckMsWUFBb0IsR0FBc0I7UUFBdEIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7SUFBRyxDQUFDO0lBRTlDLGFBQWE7UUFDWCxNQUFNLElBQUksR0FBRyxpQkFBaUIsSUFBSSxDQUFDLGdCQUFnQixjQUFjLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1FBQzNGLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQztRQUVsQixNQUFNLENBQUMsVUFBVSxDQUNmLElBQUksRUFDSixxQkFBcUIsRUFDckIsZ0JBQWdCLEVBQ2hCLFFBQVEsRUFDUixHQUFHLEVBQUU7WUFDSCxJQUFJLENBQUMsR0FBRyxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsR0FBRyxFQUFFO2dCQUN2RCxNQUFNLENBQUMsT0FBTyxDQUNaLCtDQUErQyxFQUMvQyxJQUFJLEVBQUMsSUFBSSxFQUNULEdBQUcsRUFBRTtvQkFDRixNQUFjLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUNwQyxDQUFDLENBQ0YsQ0FBQztZQUNKLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUNGLENBQUM7SUFDSixDQUFDOzs7WUFoQ0YsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSw2QkFBNkI7Z0JBQ3ZDLGtIQUFtRDthQUNwRDs7O1lBUk8saUJBQWlCOzs7K0JBVXRCLEtBQUs7NEJBQ0wsS0FBSztpQ0FDTCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuPGZpbGU+XHJcbiAgUHJvamVjdDpcclxuICAgIEBvc292aXRueS9hbmF0b2x5XHJcblxyXG4gIEF1dGhvcnM6XHJcbiAgICBWYWRpbSBPc292aXRueVxyXG4gICAgQW5hdG9seSBPc292aXRueVxyXG5cclxuICBDcmVhdGVkOlxyXG4gICAgMTIgTm92IDIwMTdcclxuXHJcbiAgVmVyc2lvbjpcclxuICAgIDEuMFxyXG5cclxuICBDb3B5cmlnaHQgKGMpIDIwMTYtMjAyMSBPc292aXRueSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXHJcbjwvZmlsZT5cclxuKi9cclxuXHJcbi8vIE5vZGVcclxuaW1wb3J0IHtDb21wb25lbnQsIElucHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtCaWxsaW5nQXBpU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vZGF0YS9zZXJ2aWNlcy9iaWxsaW5nLWFwaS5zZXJ2aWNlJztcclxuaW1wb3J0IHtBbGVydHN9IGZyb20gJy4uLy4uLy4uL2NvcmUvbm90aWZpY2F0aW9ucy9hbGVydHMnO1xyXG5cclxuLy8gU2VydmljZXNcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYW5hdG9seS11cGdyYWRlLXBsYW4tYnV0dG9uJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vdXBncmFkZS1wbGFuLWJ1dHRvbi5jb21wb25lbnQuaHRtbCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBVcGdyYWRlUGxhbkJ1dHRvbkNvbXBvbmVudCB7XHJcbiAgQElucHV0KCkgY3VycmVudHBsYW50aXRsZTogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHJlcXVlc3RlZHBsYW46IG51bWJlcjtcclxuICBASW5wdXQoKSByZXF1ZXN0ZWRwbGFudGl0bGU6IHN0cmluZztcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBhcGk6IEJpbGxpbmdBcGlTZXJ2aWNlKSB7fVxyXG5cclxuICBvblVwZ3JhZGVQbGFuKCkge1xyXG4gICAgY29uc3QgdGV4dCA9IGBDdXJyZW50IHBsYW46ICR7dGhpcy5jdXJyZW50cGxhbnRpdGxlfSBOZXcgcGxhbjogJHt0aGlzLnJlcXVlc3RlZHBsYW50aXRsZX1gO1xyXG4gICAgY29uc3QgdGhhdCA9IHRoaXM7XHJcblxyXG4gICAgQWxlcnRzLmFyZVlvdVN1cmUoXHJcbiAgICAgIHRleHQsXHJcbiAgICAgICdDaGFuZ2UgYmlsbGluZyBwbGFuJyxcclxuICAgICAgJ0NvbmZpcm0gY2hhbmdlJyxcclxuICAgICAgJ0NhbmNlbCcsXHJcbiAgICAgICgpID0+IHtcclxuICAgICAgICB0aGF0LmFwaS5yZXF1ZXN0TmV3U3Vic2NyaXB0aW9uKHRoYXQucmVxdWVzdGVkcGxhbiwgKCkgPT4ge1xyXG4gICAgICAgICAgQWxlcnRzLnN1Y2Nlc3MoXHJcbiAgICAgICAgICAgICdZb3VyIHJlcXVlc3QgZm9yIGNoYW5naW5nIHBsYW4gaGFzIGJlZW4gc2VudC4nLFxyXG4gICAgICAgICAgICBudWxsLG51bGwsXHJcbiAgICAgICAgICAgICgpID0+IHtcclxuICAgICAgICAgICAgICAod2luZG93IGFzIGFueSkubG9jYXRpb24ucmVsb2FkKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -1,37 +0,0 @@
1
- /*
2
- <file>
3
- Project:
4
- @osovitny/anatoly
5
-
6
- Authors:
7
- Vadim Osovitny
8
- Anatoly Osovitny
9
-
10
- Created:
11
- 23 Apr 2018
12
-
13
- Version:
14
- 1.0
15
-
16
- Copyright (c) 2016-2021 Osovitny Inc. All rights reserved.
17
- </file>
18
- */
19
- // Node
20
- import { Component, Input } from "@angular/core";
21
- export class ContentHeaderComponent {
22
- ngOnInit() {
23
- if (this.title == null) {
24
- this.title = "";
25
- }
26
- }
27
- }
28
- ContentHeaderComponent.decorators = [
29
- { type: Component, args: [{
30
- selector: "anatoly-content-header",
31
- template: "<h2 class=\"page-header\">\r\n {{title}}\r\n <!--<small>Optional {{title}}</small>-->\r\n</h2>\r\n"
32
- },] }
33
- ];
34
- ContentHeaderComponent.propDecorators = {
35
- title: [{ type: Input }]
36
- };
37
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGVudC1oZWFkZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5hdG9seS9zcmMvbGliL3VpL2NvbXBvbmVudHMvY29udGVudC1oZWFkZXIvY29udGVudC1oZWFkZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7OztFQWlCRTtBQUVGLE9BQU87QUFDUCxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQU16RCxNQUFNLE9BQU8sc0JBQXNCO0lBR2pDLFFBQVE7UUFDTixJQUFJLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxFQUFFO1lBQ3RCLElBQUksQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDO1NBQ2pCO0lBQ0gsQ0FBQzs7O1lBWEYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSx3QkFBd0I7Z0JBQ2xDLGdIQUE4QzthQUMvQzs7O29CQUVFLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG48ZmlsZT5cclxuICBQcm9qZWN0OlxyXG4gICAgQG9zb3ZpdG55L2FuYXRvbHlcclxuXHJcbiAgQXV0aG9yczpcclxuICAgIFZhZGltIE9zb3ZpdG55XHJcbiAgICBBbmF0b2x5IE9zb3ZpdG55XHJcblxyXG4gIENyZWF0ZWQ6XHJcbiAgICAyMyBBcHIgMjAxOFxyXG5cclxuICBWZXJzaW9uOlxyXG4gICAgMS4wXHJcblxyXG4gIENvcHlyaWdodCAoYykgMjAxNi0yMDIxIE9zb3ZpdG55IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cclxuPC9maWxlPlxyXG4qL1xyXG5cclxuLy8gTm9kZVxyXG5pbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwiYW5hdG9seS1jb250ZW50LWhlYWRlclwiLFxyXG4gIHRlbXBsYXRlVXJsOiBcIi4vY29udGVudC1oZWFkZXIuY29tcG9uZW50Lmh0bWxcIixcclxufSlcclxuZXhwb3J0IGNsYXNzIENvbnRlbnRIZWFkZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIEBJbnB1dCgpIHRpdGxlPzogc3RyaW5nO1xyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIGlmICh0aGlzLnRpdGxlID09IG51bGwpIHtcclxuICAgICAgdGhpcy50aXRsZSA9IFwiXCI7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -1,108 +0,0 @@
1
- /*
2
- <file>
3
- Project:
4
- @osovitny/anatoly
5
-
6
- Authors:
7
- Vadim Osovitny
8
- Anatoly Osovitny
9
-
10
- Created:
11
- 12 Dec 2017
12
-
13
- Version:
14
- 1.0
15
-
16
- Copyright (c) 2016-2021 Osovitny Inc. All rights reserved.
17
- </file>
18
- */
19
- // Node
20
- import { Component, Input } from "@angular/core";
21
- // App
22
- import { AppCoreSettings } from "../../../core/consts/settings";
23
- import { BaseEditComponent } from "../base-edit.component";
24
- import { DefaultEditorOptions } from "./html-editor.defaultoptions";
25
- export class BaseHtmlEditorComponent extends BaseEditComponent {
26
- constructor() {
27
- super();
28
- this.froalaEditorInitialized = false;
29
- this.afterInitializedActions = [];
30
- // Inputs
31
- this.editorLabelText = "Html";
32
- this.editorOptions = {};
33
- }
34
- ngOnInit() {
35
- let opt = this.editorOptions;
36
- if (typeof this.editorOptions == "string") {
37
- opt = JSON.parse(this.editorOptions);
38
- }
39
- let newOptions = $.extend({}, DefaultEditorOptions, opt);
40
- const key = AppCoreSettings.froalaEditorKey;
41
- if (key) {
42
- newOptions = $.extend({}, newOptions, JSON.parse('{ "key": "' + key + '" }'));
43
- }
44
- if (newOptions.events && newOptions.events.initialized) {
45
- newOptions.events.initialized.overridden = false;
46
- }
47
- this.options = newOptions;
48
- }
49
- ngAfterViewInit() {
50
- const that = this;
51
- setTimeout(function () {
52
- that.froalaEditorInitialized = true;
53
- that.onInitialized();
54
- }, 300);
55
- }
56
- onInitialized() {
57
- let actions = this.afterInitializedActions;
58
- // Clear actions
59
- this.afterInitializedActions = [];
60
- if (actions) {
61
- for (let i = 0; i < actions.length; i++) {
62
- actions[i]();
63
- }
64
- }
65
- }
66
- getEditor() {
67
- if (this.froalaEditor)
68
- return this.froalaEditor.getEditor();
69
- return null;
70
- }
71
- // Public Funcs
72
- doAfterInitialized(action) {
73
- const that = this;
74
- if (!this.froalaEditorInitialized) {
75
- this.afterInitializedActions.push(() => {
76
- action(that);
77
- });
78
- }
79
- else {
80
- action(that);
81
- }
82
- }
83
- initializeControl(control) {
84
- this.froalaEditor = control;
85
- this.froalaEditor.initialize();
86
- }
87
- setUploadParams(uploadType, uploadParentId) {
88
- this.doAfterInitialized(function (that) {
89
- const editor = that.getEditor();
90
- if (typeof editor == "undefined" || editor == null) {
91
- return;
92
- }
93
- editor.opts.imageUploadParams.uploadType = uploadType;
94
- editor.opts.imageUploadParams.uploadParentId = uploadParentId;
95
- });
96
- }
97
- }
98
- BaseHtmlEditorComponent.decorators = [
99
- { type: Component, args: [{
100
- template: ""
101
- },] }
102
- ];
103
- BaseHtmlEditorComponent.ctorParameters = () => [];
104
- BaseHtmlEditorComponent.propDecorators = {
105
- editorLabelText: [{ type: Input }],
106
- editorOptions: [{ type: Input }]
107
- };
108
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1odG1sLWVkaXRvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmF0b2x5L3NyYy9saWIvdWkvY29tcG9uZW50cy9odG1sLWVkaXRvci9iYXNlLWh0bWwtZWRpdG9yLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7RUFpQkU7QUFFRixPQUFPO0FBQ1AsT0FBTyxFQUFpQixTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBRXhFLE1BQU07QUFDTixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDM0QsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFLcEUsTUFBTSxPQUFnQix1QkFBd0IsU0FBUSxpQkFBaUI7SUFhckU7UUFDRSxLQUFLLEVBQUUsQ0FBQztRQVJILDRCQUF1QixHQUFHLEtBQUssQ0FBQztRQUNoQyw0QkFBdUIsR0FBRyxFQUFFLENBQUM7UUFFcEMsU0FBUztRQUNBLG9CQUFlLEdBQUcsTUFBTSxDQUFDO1FBQ3pCLGtCQUFhLEdBQVcsRUFBRSxDQUFDO0lBSXBDLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQztRQUM3QixJQUFJLE9BQU8sSUFBSSxDQUFDLGFBQWEsSUFBSSxRQUFRLEVBQUU7WUFDekMsR0FBRyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1NBQ3RDO1FBRUQsSUFBSSxVQUFVLEdBQVEsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsb0JBQW9CLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDOUQsTUFBTSxHQUFHLEdBQUcsZUFBZSxDQUFDLGVBQWUsQ0FBQztRQUU1QyxJQUFJLEdBQUcsRUFBRTtZQUNQLFVBQVUsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUNuQixFQUFFLEVBQ0YsVUFBVSxFQUNWLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxHQUFHLEdBQUcsR0FBRyxLQUFLLENBQUMsQ0FDdkMsQ0FBQztTQUNIO1FBRUQsSUFBSSxVQUFVLENBQUMsTUFBTSxJQUFJLFVBQVUsQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFO1lBQ3RELFVBQVUsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7U0FDbEQ7UUFFRCxJQUFJLENBQUMsT0FBTyxHQUFHLFVBQVUsQ0FBQztJQUM1QixDQUFDO0lBRUQsZUFBZTtRQUNiLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQztRQUNsQixVQUFVLENBQUM7WUFDVCxJQUFJLENBQUMsdUJBQXVCLEdBQUcsSUFBSSxDQUFDO1lBQ3BDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUN2QixDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDVixDQUFDO0lBRU8sYUFBYTtRQUNuQixJQUFJLE9BQU8sR0FBRyxJQUFJLENBQUMsdUJBQXVCLENBQUM7UUFFM0MsZ0JBQWdCO1FBQ2hCLElBQUksQ0FBQyx1QkFBdUIsR0FBRyxFQUFFLENBQUM7UUFFbEMsSUFBSSxPQUFPLEVBQUU7WUFDWCxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtnQkFDdkMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7YUFDZDtTQUNGO0lBQ0gsQ0FBQztJQUVTLFNBQVM7UUFDakIsSUFBSSxJQUFJLENBQUMsWUFBWTtZQUFFLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUU1RCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxlQUFlO0lBQ1Isa0JBQWtCLENBQUMsTUFBTTtRQUM5QixNQUFNLElBQUksR0FBRyxJQUFJLENBQUM7UUFFbEIsSUFBSSxDQUFDLElBQUksQ0FBQyx1QkFBdUIsRUFBRTtZQUNqQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRTtnQkFDckMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2YsQ0FBQyxDQUFDLENBQUM7U0FDSjthQUFNO1lBQ0wsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ2Q7SUFDSCxDQUFDO0lBRU0saUJBQWlCLENBQUMsT0FBTztRQUM5QixJQUFJLENBQUMsWUFBWSxHQUFHLE9BQU8sQ0FBQztRQUM1QixJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ2pDLENBQUM7SUFFTSxlQUFlLENBQUMsVUFBVSxFQUFFLGNBQWM7UUFDL0MsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFVBQVUsSUFBSTtZQUNwQyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDaEMsSUFBSSxPQUFPLE1BQU0sSUFBSSxXQUFXLElBQUksTUFBTSxJQUFJLElBQUksRUFBRTtnQkFDbEQsT0FBTzthQUNSO1lBRUQsTUFBTSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1lBQ3RELE1BQU0sQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsY0FBYyxHQUFHLGNBQWMsQ0FBQztRQUNoRSxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7OztZQW5HRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLEVBQUU7YUFDYjs7Ozs4QkFXRSxLQUFLOzRCQUNMLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG48ZmlsZT5cclxuICBQcm9qZWN0OlxyXG4gICAgQG9zb3ZpdG55L2FuYXRvbHlcclxuXHJcbiAgQXV0aG9yczpcclxuICAgIFZhZGltIE9zb3ZpdG55XHJcbiAgICBBbmF0b2x5IE9zb3ZpdG55XHJcblxyXG4gIENyZWF0ZWQ6XHJcbiAgICAxMiBEZWMgMjAxN1xyXG5cclxuICBWZXJzaW9uOlxyXG4gICAgMS4wXHJcblxyXG4gIENvcHlyaWdodCAoYykgMjAxNi0yMDIxIE9zb3ZpdG55IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cclxuPC9maWxlPlxyXG4qL1xyXG5cclxuLy8gTm9kZVxyXG5pbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5cclxuLy8gQXBwXHJcbmltcG9ydCB7IEFwcENvcmVTZXR0aW5ncyB9IGZyb20gXCIuLi8uLi8uLi9jb3JlL2NvbnN0cy9zZXR0aW5nc1wiO1xyXG5pbXBvcnQgeyBCYXNlRWRpdENvbXBvbmVudCB9IGZyb20gXCIuLi9iYXNlLWVkaXQuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IERlZmF1bHRFZGl0b3JPcHRpb25zIH0gZnJvbSBcIi4vaHRtbC1lZGl0b3IuZGVmYXVsdG9wdGlvbnNcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHRlbXBsYXRlOiBcIlwiLFxyXG59KVxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQmFzZUh0bWxFZGl0b3JDb21wb25lbnQgZXh0ZW5kcyBCYXNlRWRpdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdFxyXG57XHJcbiAgcHJvdGVjdGVkIGZyb2FsYUVkaXRvcjtcclxuXHJcbiAgLy8gUHVibGljIG1lbWJlcnNcclxuICBwdWJsaWMgb3B0aW9ucztcclxuICBwdWJsaWMgZnJvYWxhRWRpdG9ySW5pdGlhbGl6ZWQgPSBmYWxzZTtcclxuICBwdWJsaWMgYWZ0ZXJJbml0aWFsaXplZEFjdGlvbnMgPSBbXTtcclxuXHJcbiAgLy8gSW5wdXRzXHJcbiAgQElucHV0KCkgZWRpdG9yTGFiZWxUZXh0ID0gXCJIdG1sXCI7XHJcbiAgQElucHV0KCkgZWRpdG9yT3B0aW9uczogT2JqZWN0ID0ge307XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgc3VwZXIoKTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgbGV0IG9wdCA9IHRoaXMuZWRpdG9yT3B0aW9ucztcclxuICAgIGlmICh0eXBlb2YgdGhpcy5lZGl0b3JPcHRpb25zID09IFwic3RyaW5nXCIpIHtcclxuICAgICAgb3B0ID0gSlNPTi5wYXJzZSh0aGlzLmVkaXRvck9wdGlvbnMpO1xyXG4gICAgfVxyXG5cclxuICAgIGxldCBuZXdPcHRpb25zOiBhbnkgPSAkLmV4dGVuZCh7fSwgRGVmYXVsdEVkaXRvck9wdGlvbnMsIG9wdCk7XHJcbiAgICBjb25zdCBrZXkgPSBBcHBDb3JlU2V0dGluZ3MuZnJvYWxhRWRpdG9yS2V5O1xyXG5cclxuICAgIGlmIChrZXkpIHtcclxuICAgICAgbmV3T3B0aW9ucyA9ICQuZXh0ZW5kKFxyXG4gICAgICAgIHt9LFxyXG4gICAgICAgIG5ld09wdGlvbnMsXHJcbiAgICAgICAgSlNPTi5wYXJzZSgneyBcImtleVwiOiBcIicgKyBrZXkgKyAnXCIgfScpXHJcbiAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKG5ld09wdGlvbnMuZXZlbnRzICYmIG5ld09wdGlvbnMuZXZlbnRzLmluaXRpYWxpemVkKSB7XHJcbiAgICAgIG5ld09wdGlvbnMuZXZlbnRzLmluaXRpYWxpemVkLm92ZXJyaWRkZW4gPSBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLm9wdGlvbnMgPSBuZXdPcHRpb25zO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgY29uc3QgdGhhdCA9IHRoaXM7XHJcbiAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcclxuICAgICAgdGhhdC5mcm9hbGFFZGl0b3JJbml0aWFsaXplZCA9IHRydWU7XHJcbiAgICAgIHRoYXQub25Jbml0aWFsaXplZCgpO1xyXG4gICAgfSwgMzAwKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgb25Jbml0aWFsaXplZCgpIHtcclxuICAgIGxldCBhY3Rpb25zID0gdGhpcy5hZnRlckluaXRpYWxpemVkQWN0aW9ucztcclxuXHJcbiAgICAvLyBDbGVhciBhY3Rpb25zXHJcbiAgICB0aGlzLmFmdGVySW5pdGlhbGl6ZWRBY3Rpb25zID0gW107XHJcblxyXG4gICAgaWYgKGFjdGlvbnMpIHtcclxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBhY3Rpb25zLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgYWN0aW9uc1tpXSgpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgZ2V0RWRpdG9yKCkge1xyXG4gICAgaWYgKHRoaXMuZnJvYWxhRWRpdG9yKSByZXR1cm4gdGhpcy5mcm9hbGFFZGl0b3IuZ2V0RWRpdG9yKCk7XHJcblxyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfVxyXG5cclxuICAvLyBQdWJsaWMgRnVuY3NcclxuICBwdWJsaWMgZG9BZnRlckluaXRpYWxpemVkKGFjdGlvbikge1xyXG4gICAgY29uc3QgdGhhdCA9IHRoaXM7XHJcblxyXG4gICAgaWYgKCF0aGlzLmZyb2FsYUVkaXRvckluaXRpYWxpemVkKSB7XHJcbiAgICAgIHRoaXMuYWZ0ZXJJbml0aWFsaXplZEFjdGlvbnMucHVzaCgoKSA9PiB7XHJcbiAgICAgICAgYWN0aW9uKHRoYXQpO1xyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGFjdGlvbih0aGF0KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBpbml0aWFsaXplQ29udHJvbChjb250cm9sKSB7XHJcbiAgICB0aGlzLmZyb2FsYUVkaXRvciA9IGNvbnRyb2w7XHJcbiAgICB0aGlzLmZyb2FsYUVkaXRvci5pbml0aWFsaXplKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0VXBsb2FkUGFyYW1zKHVwbG9hZFR5cGUsIHVwbG9hZFBhcmVudElkKSB7XHJcbiAgICB0aGlzLmRvQWZ0ZXJJbml0aWFsaXplZChmdW5jdGlvbiAodGhhdCkge1xyXG4gICAgICBjb25zdCBlZGl0b3IgPSB0aGF0LmdldEVkaXRvcigpO1xyXG4gICAgICBpZiAodHlwZW9mIGVkaXRvciA9PSBcInVuZGVmaW5lZFwiIHx8IGVkaXRvciA9PSBudWxsKSB7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBlZGl0b3Iub3B0cy5pbWFnZVVwbG9hZFBhcmFtcy51cGxvYWRUeXBlID0gdXBsb2FkVHlwZTtcclxuICAgICAgZWRpdG9yLm9wdHMuaW1hZ2VVcGxvYWRQYXJhbXMudXBsb2FkUGFyZW50SWQgPSB1cGxvYWRQYXJlbnRJZDtcclxuICAgIH0pO1xyXG4gIH1cclxufVxyXG4iXX0=