@mediusinc/mng-commons 0.2.0 → 0.2.6

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 (235) hide show
  1. package/esm2020/lib/api/models/builders/query-param.builder.mjs +48 -48
  2. package/esm2020/lib/api/models/filter-match-type.model.mjs +26 -26
  3. package/esm2020/lib/api/models/filter-param.model.mjs +46 -46
  4. package/esm2020/lib/api/models/index.mjs +9 -9
  5. package/esm2020/lib/api/models/mappers.mjs +17 -17
  6. package/esm2020/lib/api/models/query-mode.model.mjs +19 -19
  7. package/esm2020/lib/api/models/query-param.model.mjs +69 -69
  8. package/esm2020/lib/api/models/query-result.model.mjs +45 -45
  9. package/esm2020/lib/api/models/serialization.model.mjs +2 -2
  10. package/esm2020/lib/api/services/crud-api.abstract.service.mjs +72 -72
  11. package/esm2020/lib/api/services/index.mjs +2 -2
  12. package/esm2020/lib/api/utils/index.mjs +3 -3
  13. package/esm2020/lib/api/utils/medius-rest.util.mjs +122 -122
  14. package/esm2020/lib/api/utils/object-serializer.util.mjs +226 -226
  15. package/esm2020/lib/components/action/action.component.mjs +65 -65
  16. package/esm2020/lib/components/action/dialog/action-dialog.component.mjs +148 -148
  17. package/esm2020/lib/components/action/index.mjs +4 -4
  18. package/esm2020/lib/components/action/models/action-confirmation-service.model.mjs +2 -2
  19. package/esm2020/lib/components/action/models/action-execution.model.mjs +58 -58
  20. package/esm2020/lib/components/action/models/index.mjs +3 -3
  21. package/esm2020/lib/components/action/route/action-route.component.mjs +144 -144
  22. package/esm2020/lib/components/form/autocomplete/autocomplete.component.mjs +114 -114
  23. package/esm2020/lib/components/form/dropdown/dropdown.component.mjs +113 -113
  24. package/esm2020/lib/components/form/editor/form-editor.component.mjs +141 -141
  25. package/esm2020/lib/components/form/formly/fields/formly-field-autocomplete/formly-field-autocomplete.component.mjs +19 -19
  26. package/esm2020/lib/components/form/formly/fields/formly-field-dropdown/formly-field-dropdown.component.mjs +19 -19
  27. package/esm2020/lib/components/form/formly/fields/formly-field-fieldset/formly-field-fieldset.component.mjs +16 -16
  28. package/esm2020/lib/components/form/formly/fields/formly-field-input/formly-field-input.component.mjs +30 -26
  29. package/esm2020/lib/components/form/formly/fields/formly-field-table-dialog-form/formly-field-table-dialog-form.component.mjs +108 -109
  30. package/esm2020/lib/components/form/formly/fields/formly-field-table-dialog-multiselect/formly-field-table-dialog-multiselect.component.mjs +122 -122
  31. package/esm2020/lib/components/form/formly/fields/formly-field-tabs/formly-field-tabs.component.mjs +17 -17
  32. package/esm2020/lib/components/form/formly/fields/index.mjs +8 -8
  33. package/esm2020/lib/components/form/formly/wrappers/formly-field-wrapper/formly-field-wrapper.component.mjs +17 -17
  34. package/esm2020/lib/components/form/formly/wrappers/formly-table-wrapper/formly-table-wrapper.component.mjs +16 -16
  35. package/esm2020/lib/components/form/formly/wrappers/index.mjs +3 -3
  36. package/esm2020/lib/components/form/index.mjs +4 -4
  37. package/esm2020/lib/components/form/models/form-editor.event.mjs +7 -7
  38. package/esm2020/lib/components/form/models/index.mjs +2 -2
  39. package/esm2020/lib/components/layout/breadcrumb.component.mjs +17 -17
  40. package/esm2020/lib/components/layout/footer.component.mjs +17 -17
  41. package/esm2020/lib/components/layout/index.mjs +7 -7
  42. package/esm2020/lib/components/layout/main-layout.component.mjs +54 -54
  43. package/esm2020/lib/components/layout/menu-item.component.mjs +173 -173
  44. package/esm2020/lib/components/layout/menu.component.mjs +20 -20
  45. package/esm2020/lib/components/layout/services/index.mjs +2 -2
  46. package/esm2020/lib/components/layout/services/main-layout.component.service.mjs +190 -190
  47. package/esm2020/lib/components/layout/topbar.component.mjs +59 -59
  48. package/esm2020/lib/components/tableview/index.mjs +7 -6
  49. package/esm2020/lib/components/tableview/models/index.mjs +2 -2
  50. package/esm2020/lib/components/tableview/models/table.event.mjs +16 -16
  51. package/esm2020/lib/components/tableview/route/tableview-route.abstract.component.mjs +24 -24
  52. package/esm2020/lib/components/tableview/route/tableview-route.component.mjs +33 -0
  53. package/esm2020/lib/components/tableview/services/index.mjs +2 -2
  54. package/esm2020/lib/components/tableview/services/tableview.component.service.mjs +16 -17
  55. package/esm2020/lib/components/tableview/table/column-filter/column-filter.component.mjs +85 -74
  56. package/esm2020/lib/components/tableview/table/column-value/column-value.component.mjs +25 -25
  57. package/esm2020/lib/components/tableview/table/table.component.mjs +307 -307
  58. package/esm2020/lib/components/tableview/tableview.component.mjs +82 -82
  59. package/esm2020/lib/config/formly.config.mjs +136 -136
  60. package/esm2020/lib/config/index.mjs +2 -2
  61. package/esm2020/lib/config/models/index.mjs +2 -2
  62. package/esm2020/lib/config/models/mng-config.model.mjs +2 -2
  63. package/esm2020/lib/data-providers/base.data-provider.mjs +24 -24
  64. package/esm2020/lib/data-providers/editor.data-provider.mjs +37 -37
  65. package/esm2020/lib/data-providers/index.mjs +6 -6
  66. package/esm2020/lib/data-providers/lookup.data-provider.mjs +16 -16
  67. package/esm2020/lib/data-providers/table.data-provider.mjs +2 -2
  68. package/esm2020/lib/data-providers/tableview.data-provider.mjs +17 -17
  69. package/esm2020/lib/descriptors/action.descriptor.mjs +332 -332
  70. package/esm2020/lib/descriptors/editor.descriptor.mjs +670 -670
  71. package/esm2020/lib/descriptors/field.validator.mjs +21 -21
  72. package/esm2020/lib/descriptors/index.mjs +8 -8
  73. package/esm2020/lib/descriptors/lookup.descriptor.mjs +2 -2
  74. package/esm2020/lib/descriptors/model.descriptor.mjs +34 -34
  75. package/esm2020/lib/descriptors/table.descriptor.mjs +427 -401
  76. package/esm2020/lib/descriptors/tableview.descriptor.mjs +131 -131
  77. package/esm2020/lib/directives/component.directive.mjs +23 -23
  78. package/esm2020/lib/directives/index.mjs +3 -3
  79. package/esm2020/lib/directives/template.directive.mjs +29 -29
  80. package/esm2020/lib/mng-commons.module.mjs +412 -410
  81. package/esm2020/lib/models/index.mjs +2 -3
  82. package/esm2020/lib/models/user.model.mjs +2 -2
  83. package/esm2020/lib/pipes/boolean.pipe.mjs +22 -22
  84. package/esm2020/lib/pipes/index.mjs +3 -3
  85. package/esm2020/lib/pipes/property-path.pipe.mjs +36 -36
  86. package/esm2020/lib/router/index.mjs +2 -0
  87. package/esm2020/lib/router/models/index.mjs +2 -0
  88. package/esm2020/lib/router/models/router.model.mjs +2 -0
  89. package/esm2020/lib/router/route-builder.mjs +288 -0
  90. package/esm2020/lib/services/action.service.mjs +269 -269
  91. package/esm2020/lib/services/commons.service.mjs +354 -353
  92. package/esm2020/lib/services/configuration.service.mjs +78 -78
  93. package/esm2020/lib/services/index.mjs +5 -5
  94. package/esm2020/lib/services/navigation.service.mjs +48 -48
  95. package/esm2020/lib/services/providers/commons-init.provider.mjs +4 -4
  96. package/esm2020/lib/services/providers/config-service.provider.mjs +20 -20
  97. package/esm2020/lib/services/providers/formly-config.provider.mjs +31 -31
  98. package/esm2020/lib/services/providers/index.mjs +4 -4
  99. package/esm2020/lib/services/tokens/browser-storage.token.mjs +6 -6
  100. package/esm2020/lib/services/tokens/index.mjs +3 -3
  101. package/esm2020/lib/services/tokens/module-config.token.mjs +3 -3
  102. package/esm2020/lib/types/index.mjs +3 -3
  103. package/esm2020/lib/types/type.decorator.mjs +7 -7
  104. package/esm2020/lib/types/type.model.mjs +2 -2
  105. package/esm2020/lib/utils/editor-formly.util.mjs +176 -176
  106. package/esm2020/lib/utils/i18n.util.mjs +125 -125
  107. package/esm2020/lib/utils/index.mjs +6 -6
  108. package/esm2020/lib/utils/model.util.mjs +57 -57
  109. package/esm2020/lib/utils/route.util.mjs +24 -0
  110. package/esm2020/lib/utils/toast.util.mjs +39 -39
  111. package/esm2020/lib/utils/type.util.mjs +39 -39
  112. package/esm2020/mediusinc-mng-commons.mjs +5 -5
  113. package/esm2020/public-api.mjs +37 -36
  114. package/fesm2015/mediusinc-mng-commons.mjs +6407 -6024
  115. package/fesm2015/mediusinc-mng-commons.mjs.map +1 -1
  116. package/fesm2020/mediusinc-mng-commons.mjs +6329 -5950
  117. package/fesm2020/mediusinc-mng-commons.mjs.map +1 -1
  118. package/lib/api/models/builders/query-param.builder.d.ts +11 -11
  119. package/lib/api/models/filter-match-type.model.d.ts +23 -23
  120. package/lib/api/models/filter-param.model.d.ts +23 -23
  121. package/lib/api/models/index.d.ts +8 -8
  122. package/lib/api/models/mappers.d.ts +6 -6
  123. package/lib/api/models/query-mode.model.d.ts +16 -16
  124. package/lib/api/models/query-param.model.d.ts +31 -31
  125. package/lib/api/models/query-result.model.d.ts +36 -36
  126. package/lib/api/models/serialization.model.d.ts +8 -8
  127. package/lib/api/services/crud-api.abstract.service.d.ts +23 -23
  128. package/lib/api/services/index.d.ts +1 -1
  129. package/lib/api/utils/index.d.ts +2 -2
  130. package/lib/api/utils/medius-rest.util.d.ts +12 -12
  131. package/lib/api/utils/object-serializer.util.d.ts +30 -30
  132. package/lib/components/action/action.component.d.ts +36 -36
  133. package/lib/components/action/dialog/action-dialog.component.d.ts +46 -46
  134. package/lib/components/action/index.d.ts +3 -3
  135. package/lib/components/action/models/action-confirmation-service.model.d.ts +6 -6
  136. package/lib/components/action/models/action-execution.model.d.ts +53 -53
  137. package/lib/components/action/models/index.d.ts +2 -2
  138. package/lib/components/action/route/action-route.component.d.ts +32 -32
  139. package/lib/components/form/autocomplete/autocomplete.component.d.ts +36 -36
  140. package/lib/components/form/dropdown/dropdown.component.d.ts +34 -34
  141. package/lib/components/form/editor/form-editor.component.d.ts +39 -39
  142. package/lib/components/form/formly/fields/formly-field-autocomplete/formly-field-autocomplete.component.d.ts +11 -11
  143. package/lib/components/form/formly/fields/formly-field-dropdown/formly-field-dropdown.component.d.ts +11 -11
  144. package/lib/components/form/formly/fields/formly-field-fieldset/formly-field-fieldset.component.d.ts +6 -6
  145. package/lib/components/form/formly/fields/formly-field-input/formly-field-input.component.d.ts +12 -12
  146. package/lib/components/form/formly/fields/formly-field-table-dialog-form/formly-field-table-dialog-form.component.d.ts +17 -17
  147. package/lib/components/form/formly/fields/formly-field-table-dialog-multiselect/formly-field-table-dialog-multiselect.component.d.ts +36 -36
  148. package/lib/components/form/formly/fields/formly-field-tabs/formly-field-tabs.component.d.ts +6 -6
  149. package/lib/components/form/formly/fields/index.d.ts +7 -7
  150. package/lib/components/form/formly/wrappers/formly-field-wrapper/formly-field-wrapper.component.d.ts +8 -8
  151. package/lib/components/form/formly/wrappers/formly-table-wrapper/formly-table-wrapper.component.d.ts +8 -8
  152. package/lib/components/form/formly/wrappers/index.d.ts +2 -2
  153. package/lib/components/form/index.d.ts +3 -3
  154. package/lib/components/form/models/form-editor.event.d.ts +5 -5
  155. package/lib/components/form/models/index.d.ts +1 -1
  156. package/lib/components/layout/breadcrumb.component.d.ts +8 -8
  157. package/lib/components/layout/footer.component.d.ts +9 -9
  158. package/lib/components/layout/index.d.ts +6 -6
  159. package/lib/components/layout/main-layout.component.d.ts +21 -21
  160. package/lib/components/layout/menu-item.component.d.ts +29 -29
  161. package/lib/components/layout/menu.component.d.ts +10 -10
  162. package/lib/components/layout/services/index.d.ts +1 -1
  163. package/lib/components/layout/services/main-layout.component.service.d.ts +65 -65
  164. package/lib/components/layout/topbar.component.d.ts +25 -25
  165. package/lib/components/tableview/index.d.ts +6 -5
  166. package/lib/components/tableview/models/index.d.ts +1 -1
  167. package/lib/components/tableview/models/table.event.d.ts +17 -17
  168. package/lib/components/tableview/route/tableview-route.abstract.component.d.ts +15 -14
  169. package/lib/components/tableview/route/tableview-route.component.d.ts +15 -0
  170. package/lib/components/tableview/services/index.d.ts +1 -1
  171. package/lib/components/tableview/services/tableview.component.service.d.ts +13 -13
  172. package/lib/components/tableview/table/column-filter/column-filter.component.d.ts +27 -22
  173. package/lib/components/tableview/table/column-value/column-value.component.d.ts +12 -12
  174. package/lib/components/tableview/table/table.component.d.ts +79 -79
  175. package/lib/components/tableview/tableview.component.d.ts +35 -35
  176. package/lib/config/formly.config.d.ts +14 -14
  177. package/lib/config/index.d.ts +1 -1
  178. package/lib/config/models/index.d.ts +1 -1
  179. package/lib/config/models/mng-config.model.d.ts +34 -34
  180. package/lib/data-providers/base.data-provider.d.ts +17 -17
  181. package/lib/data-providers/editor.data-provider.d.ts +25 -25
  182. package/lib/data-providers/index.d.ts +5 -5
  183. package/lib/data-providers/lookup.data-provider.d.ts +14 -14
  184. package/lib/data-providers/table.data-provider.d.ts +6 -6
  185. package/lib/data-providers/tableview.data-provider.d.ts +15 -15
  186. package/lib/descriptors/action.descriptor.d.ts +148 -148
  187. package/lib/descriptors/editor.descriptor.d.ts +255 -255
  188. package/lib/descriptors/field.validator.d.ts +18 -18
  189. package/lib/descriptors/index.d.ts +7 -7
  190. package/lib/descriptors/lookup.descriptor.d.ts +17 -17
  191. package/lib/descriptors/model.descriptor.d.ts +15 -15
  192. package/lib/descriptors/table.descriptor.d.ts +184 -164
  193. package/lib/descriptors/tableview.descriptor.d.ts +39 -39
  194. package/lib/directives/component.directive.d.ts +11 -11
  195. package/lib/directives/index.d.ts +2 -2
  196. package/lib/directives/template.directive.d.ts +13 -13
  197. package/lib/mng-commons.module.d.ts +80 -79
  198. package/lib/models/index.d.ts +1 -2
  199. package/lib/models/user.model.d.ts +8 -8
  200. package/lib/pipes/boolean.pipe.d.ts +7 -7
  201. package/lib/pipes/index.d.ts +2 -2
  202. package/lib/pipes/property-path.pipe.d.ts +7 -7
  203. package/lib/router/index.d.ts +1 -0
  204. package/lib/router/models/index.d.ts +1 -0
  205. package/lib/router/models/router.model.d.ts +22 -0
  206. package/lib/router/route-builder.d.ts +66 -0
  207. package/lib/services/action.service.d.ts +92 -92
  208. package/lib/services/commons.service.d.ts +72 -72
  209. package/lib/services/configuration.service.d.ts +35 -35
  210. package/lib/services/index.d.ts +4 -4
  211. package/lib/services/navigation.service.d.ts +14 -14
  212. package/lib/services/providers/commons-init.provider.d.ts +2 -2
  213. package/lib/services/providers/config-service.provider.d.ts +5 -5
  214. package/lib/services/providers/formly-config.provider.d.ts +4 -4
  215. package/lib/services/providers/index.d.ts +3 -3
  216. package/lib/services/tokens/browser-storage.token.d.ts +2 -2
  217. package/lib/services/tokens/index.d.ts +2 -2
  218. package/lib/services/tokens/module-config.token.d.ts +3 -3
  219. package/lib/types/index.d.ts +2 -2
  220. package/lib/types/type.decorator.d.ts +2 -2
  221. package/lib/types/type.model.d.ts +10 -10
  222. package/lib/utils/editor-formly.util.d.ts +9 -9
  223. package/lib/utils/i18n.util.d.ts +18 -18
  224. package/lib/utils/index.d.ts +5 -5
  225. package/lib/utils/model.util.d.ts +7 -7
  226. package/lib/utils/route.util.d.ts +4 -0
  227. package/lib/utils/toast.util.d.ts +13 -13
  228. package/lib/utils/type.util.d.ts +15 -15
  229. package/mediusinc-mng-commons.d.ts +5 -5
  230. package/package.json +4 -4
  231. package/public-api.d.ts +26 -25
  232. package/scss/common/layout/_exception.scss +1 -1
  233. package/esm2020/lib/models/router.model.mjs +0 -2
  234. package/lib/models/router.model.d.ts +0 -14
  235. package/mediusinc-mng-commons-0.2.0.tgz +0 -0
@@ -1,190 +1,190 @@
1
- import { Injectable } from '@angular/core';
2
- import { BehaviorSubject } from 'rxjs';
3
- import { map } from 'rxjs/operators';
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "../../../services";
6
- export class MngMainLayoutComponentService {
7
- constructor(mngCommons) {
8
- this.mngCommons = mngCommons;
9
- this._overlayMenuActive = false;
10
- this._overlayMenuActiveSubject = new BehaviorSubject(this._overlayMenuActive);
11
- this._staticMenuDesktopInactive = false;
12
- this._staticMenuDesktopInactiveSubject = new BehaviorSubject(this._staticMenuDesktopInactive);
13
- this._staticMenuMobileActive = false;
14
- this._staticMenuMobileActiveSubject = new BehaviorSubject(this._staticMenuMobileActive);
15
- this._sidebarActive = true;
16
- this._sidebarActiveSubject = new BehaviorSubject(this._sidebarActive);
17
- this._sidebarStatic = true;
18
- this._sidebarStaticSubject = new BehaviorSubject(this._sidebarStatic);
19
- this._menuClick = false;
20
- this._menuHoverActive = false;
21
- this._topbarItemClick = false;
22
- this._activeTopbarItem = null;
23
- this._activeTopbarItemSubject = new BehaviorSubject(this._activeTopbarItem);
24
- this._pinActive = true;
25
- this._pinActiveSubject = new BehaviorSubject(this._pinActive);
26
- this._innerWidth = 1920;
27
- this._innerWidthSubject = new BehaviorSubject(this._innerWidth);
28
- }
29
- get overlayMenuActive$() {
30
- return this._overlayMenuActiveSubject.asObservable();
31
- }
32
- set overlayMenuActive(value) {
33
- this._overlayMenuActive = value;
34
- this._overlayMenuActiveSubject.next(value);
35
- }
36
- get staticMenuDesktopInactive$() {
37
- return this._staticMenuDesktopInactiveSubject.asObservable();
38
- }
39
- set staticMenuDesktopInactive(value) {
40
- this._staticMenuDesktopInactive = value;
41
- this._staticMenuDesktopInactiveSubject.next(value);
42
- }
43
- get staticMenuMobileActive$() {
44
- return this._staticMenuMobileActiveSubject.asObservable();
45
- }
46
- set staticMenuMobileActive(value) {
47
- this._staticMenuMobileActive = value;
48
- this._staticMenuMobileActiveSubject.next(value);
49
- }
50
- get sidebarActive$() {
51
- return this._sidebarActiveSubject.asObservable();
52
- }
53
- set sidebarActive(value) {
54
- this._sidebarActive = value;
55
- this._sidebarActiveSubject.next(value);
56
- }
57
- get sidebarStatic$() {
58
- return this._sidebarStaticSubject.asObservable();
59
- }
60
- set sidebarStatic(value) {
61
- this._sidebarStatic = value;
62
- this._sidebarStaticSubject.next(value);
63
- }
64
- set menuHoverActive(value) {
65
- this._menuHoverActive = value;
66
- }
67
- set topbarItemClick(value) {
68
- this._topbarItemClick = value;
69
- }
70
- get activeTopbarItem$() {
71
- return this._activeTopbarItemSubject.asObservable();
72
- }
73
- set activeTopbarItem(value) {
74
- this._activeTopbarItem = value;
75
- this._activeTopbarItemSubject.next(value);
76
- }
77
- get pinActive$() {
78
- return this._pinActiveSubject.asObservable();
79
- }
80
- set pinActive(value) {
81
- this._pinActive = value;
82
- this._pinActiveSubject.next(value);
83
- }
84
- get isDesktop$() {
85
- return this._innerWidthSubject.asObservable().pipe(map(e => this.isWidthDesktop(e)));
86
- }
87
- get isMobile$() {
88
- return this._innerWidthSubject.asObservable().pipe(map(e => this.isWidthMobile(e)));
89
- }
90
- set innerWidth(value) {
91
- this._innerWidth = value;
92
- this._innerWidthSubject.next(value);
93
- }
94
- onLayoutClick() {
95
- if (!this._topbarItemClick) {
96
- this.activeTopbarItem = null;
97
- }
98
- if (!this._menuClick) {
99
- if (this.mngCommons.menuModeIsSlim && !this.isMobile()) {
100
- this.mngCommons.menuReset();
101
- this.menuHoverActive = false;
102
- }
103
- if (this._overlayMenuActive || this._staticMenuMobileActive) {
104
- this.overlayMenuActive = false;
105
- this.staticMenuMobileActive = false;
106
- }
107
- }
108
- this._menuClick = false;
109
- this.topbarItemClick = false;
110
- }
111
- onSidebarClick(event) {
112
- this._menuClick = true;
113
- }
114
- onToggleMenu(event) {
115
- this._menuClick = true;
116
- if (this._overlayMenuActive) {
117
- this.overlayMenuActive = false;
118
- }
119
- if (this._sidebarActive) {
120
- this.sidebarStatic = !this._sidebarStatic;
121
- }
122
- event.preventDefault();
123
- }
124
- onSidebarMouseOver(event) {
125
- if (this.mngCommons.menuModeIsSidebar && !this._sidebarStatic) {
126
- this.sidebarActive = this.isDesktop();
127
- setTimeout(() => {
128
- this.pinActive = this.isDesktop();
129
- }, 200);
130
- }
131
- }
132
- onSidebarMouseLeave(event) {
133
- if (this.mngCommons.menuModeIsSidebar && !this._sidebarStatic) {
134
- setTimeout(() => {
135
- this.sidebarActive = false;
136
- this.pinActive = false;
137
- }, 250);
138
- }
139
- }
140
- onMenuButtonClick(event) {
141
- this._menuClick = true;
142
- if (this.mngCommons.menuModeIsOverlay) {
143
- this.overlayMenuActive = !this._overlayMenuActive;
144
- }
145
- if (this.isDesktop()) {
146
- this.staticMenuDesktopInactive = !this._staticMenuDesktopInactive;
147
- }
148
- else {
149
- this.staticMenuMobileActive = !this._staticMenuMobileActive;
150
- }
151
- event.preventDefault();
152
- }
153
- onTopbarItemClick(event, item) {
154
- this._topbarItemClick = true;
155
- if (this._activeTopbarItem === item) {
156
- this.activeTopbarItem = null;
157
- }
158
- else {
159
- this.activeTopbarItem = item;
160
- }
161
- event.preventDefault();
162
- }
163
- onTopbarSubItemClick(event) {
164
- event.preventDefault();
165
- }
166
- /**
167
- * Checks if is desktop width, DO NOT use within HTML templates or within functions called by HTML templates
168
- */
169
- isDesktop() {
170
- return this.isWidthDesktop(this._innerWidth);
171
- }
172
- /**
173
- * Checks if is mobile width, DO NOT use within HTML templates or within functions called by HTML templates
174
- */
175
- isMobile() {
176
- return this.isWidthMobile(this._innerWidth);
177
- }
178
- isWidthDesktop(width) {
179
- return width > 991;
180
- }
181
- isWidthMobile(width) {
182
- return width <= 991;
183
- }
184
- }
185
- MngMainLayoutComponentService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: MngMainLayoutComponentService, deps: [{ token: i1.MngCommonsService }], target: i0.ɵɵFactoryTarget.Injectable });
186
- MngMainLayoutComponentService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: MngMainLayoutComponentService });
187
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: MngMainLayoutComponentService, decorators: [{
188
- type: Injectable
189
- }], ctorParameters: function () { return [{ type: i1.MngCommonsService }]; } });
190
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi1sYXlvdXQuY29tcG9uZW50LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tbmctY29tbW9ucy9zcmMvbGliL2NvbXBvbmVudHMvbGF5b3V0L3NlcnZpY2VzL21haW4tbGF5b3V0LmNvbXBvbmVudC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFHekMsT0FBTyxFQUFDLGVBQWUsRUFBc0IsTUFBTSxNQUFNLENBQUM7QUFDMUQsT0FBTyxFQUFDLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDOzs7QUFHbkMsTUFBTSxPQUFPLDZCQUE2QjtJQTJCdEMsWUFBb0IsVUFBNkI7UUFBN0IsZUFBVSxHQUFWLFVBQVUsQ0FBbUI7UUF6QnpDLHVCQUFrQixHQUFZLEtBQUssQ0FBQztRQUNwQyw4QkFBeUIsR0FBcUIsSUFBSSxlQUFlLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDM0YsK0JBQTBCLEdBQUcsS0FBSyxDQUFDO1FBQ25DLHNDQUFpQyxHQUFxQixJQUFJLGVBQWUsQ0FBQyxJQUFJLENBQUMsMEJBQTBCLENBQUMsQ0FBQztRQUMzRyw0QkFBdUIsR0FBWSxLQUFLLENBQUM7UUFDekMsbUNBQThCLEdBQXFCLElBQUksZUFBZSxDQUFDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO1FBRXJHLG1CQUFjLEdBQUcsSUFBSSxDQUFDO1FBQ3RCLDBCQUFxQixHQUFxQixJQUFJLGVBQWUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDbkYsbUJBQWMsR0FBRyxJQUFJLENBQUM7UUFDdEIsMEJBQXFCLEdBQXFCLElBQUksZUFBZSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUVuRixlQUFVLEdBQVksS0FBSyxDQUFDO1FBQzVCLHFCQUFnQixHQUFHLEtB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QWMsQ0FBQyxLQUFhO1FBQ2hDLE9BQU8sS0FBSyxHQUFHLEdBQUcsQ0FBQztJQUN2QixDQUFDO0lBRU8sYUFBYSxDQUFDLEtBQWE7UUFDL0IsT0FBTyxLQUFLLElBQUksR0FBRyxDQUFDO0lBQ3hCLENBQUM7OzBIQTlOUSw2QkFBNkI7OEhBQTdCLDZCQUE2QjsyRkFBN0IsNkJBQTZCO2tCQUR6QyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtNbmdDb21tb25zU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMnO1xuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIFN1YmplY3R9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHttYXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIE1uZ01haW5MYXlvdXRDb21wb25lbnRTZXJ2aWNlIHtcblxuICAgIHByaXZhdGUgX292ZXJsYXlNZW51QWN0aXZlOiBib29sZWFuID0gZmFsc2U7XG4gICAgcHJpdmF0ZSBfb3ZlcmxheU1lbnVBY3RpdmVTdWJqZWN0OiBTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IEJlaGF2aW9yU3ViamVjdCh0aGlzLl9vdmVybGF5TWVudUFjdGl2ZSk7XG4gICAgcHJpdmF0ZSBfc3RhdGljTWVudURlc2t0b3BJbmFjdGl2ZSA9IGZhbHNlO1xuICAgIHByaXZhdGUgX3N0YXRpY01lbnVEZXNrdG9wSW5hY3RpdmVTdWJqZWN0OiBTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IEJlaGF2aW9yU3ViamVjdCh0aGlzLl9zdGF0aWNNZW51RGVza3RvcEluYWN0aXZlKTtcbiAgICBwcml2YXRlIF9zdGF0aWNNZW51TW9iaWxlQWN0aXZlOiBib29sZWFuID0gZmFsc2U7XG4gICAgcHJpdmF0ZSBfc3RhdGljTWVudU1vYmlsZUFjdGl2ZVN1YmplY3Q6IFN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KHRoaXMuX3N0YXRpY01lbnVNb2JpbGVBY3RpdmUpO1xuXG4gICAgcHJpdmF0ZSBfc2lkZWJhckFjdGl2ZSA9IHRydWU7XG4gICAgcHJpdmF0ZSBfc2lkZWJhckFjdGl2ZVN1YmplY3Q6IFN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KHRoaXMuX3NpZGViYXJBY3RpdmUpO1xuICAgIHByaXZhdGUgX3NpZGViYXJTdGF0aWMgPSB0cnVlO1xuICAgIHByaXZhdGUgX3NpZGViYXJTdGF0aWNTdWJqZWN0OiBTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IEJlaGF2aW9yU3ViamVjdCh0aGlzLl9zaWRlYmFyU3RhdGljKTtcblxuICAgIHByaXZhdGUgX21lbnVDbGljazogYm9vbGVhbiA9IGZhbHNlO1xuICAgIHByaXZhdGUgX21lbnVIb3ZlckFjdGl2ZSA9IGZhbHNlO1xuICAgIHByaXZhdGUgX3RvcGJhckl0ZW1DbGljazogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgcHJpdmF0ZSBfYWN0aXZlVG9wYmFySXRlbTogYW55ID0gbnVsbDtcbiAgICBwcml2YXRlIF9hY3RpdmVUb3BiYXJJdGVtU3ViamVjdDogU3ViamVjdDxhbnk+ID0gbmV3IEJlaGF2aW9yU3ViamVjdCh0aGlzLl9hY3RpdmVUb3BiYXJJdGVtKTtcblxuICAgIHByaXZhdGUgX3BpbkFjdGl2ZTogYm9vbGVhbiA9IHRydWU7XG4gICAgcHJpdmF0ZSBfcGluQWN0aXZlU3ViamVjdDogU3ViamVjdDxib29sZWFuPiA9IG5ldyBCZWhhdmlvclN1YmplY3QodGhpcy5fcGluQWN0aXZlKTtcblxuICAgIHByaXZhdGUgX2lubmVyV2lkdGg6IG51bWJlciA9IDE5MjA7XG4gICAgcHJpdmF0ZSBfaW5uZXJXaWR0aFN1YmplY3Q6IFN1YmplY3Q8bnVtYmVyPiA9IG5ldyBCZWhhdmlvclN1YmplY3QodGhpcy5faW5uZXJXaWR0aCk7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIG1uZ0NvbW1vbnM6IE1uZ0NvbW1vbnNTZXJ2aWNlKSB7IH1cblxuICAgIGdldCBvdmVybGF5TWVudUFjdGl2ZSQoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9vdmVybGF5TWVudUFjdGl2ZVN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuXG4gICAgc2V0IG92ZXJsYXlNZW51QWN0aXZlKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuX292ZXJsYXlNZW51QWN0aXZlID0gdmFsdWU7XG4gICAgICAgIHRoaXMuX292ZXJsYXlNZW51QWN0aXZlU3ViamVjdC5uZXh0KHZhbHVlKTtcbiAgICB9XG5cbiAgICBnZXQgc3RhdGljTWVudURlc2t0b3BJbmFjdGl2ZSQoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zdGF0aWNNZW51RGVza3RvcEluYWN0aXZlU3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgICB9XG5cbiAgICBzZXQgc3RhdGljTWVudURlc2t0b3BJbmFjdGl2ZSh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLl9zdGF0aWNNZW51RGVza3RvcEluYWN0aXZlID0gdmFsdWU7XG4gICAgICAgIHRoaXMuX3N0YXRpY01lbnVEZXNrdG9wSW5hY3RpdmVTdWJqZWN0Lm5leHQodmFsdWUpO1xuICAgIH1cblxuICAgIGdldCBzdGF0aWNNZW51TW9iaWxlQWN0aXZlJCgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3N0YXRpY01lbnVNb2JpbGVBY3RpdmVTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cblxuICAgIHNldCBzdGF0aWNNZW51TW9iaWxlQWN0aXZlKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuX3N0YXRpY01lbnVNb2JpbGVBY3RpdmUgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5fc3RhdGljTWVudU1vYmlsZUFjdGl2ZVN1YmplY3QubmV4dCh2YWx1ZSk7XG4gICAgfVxuXG4gICAgZ2V0IHNpZGViYXJBY3RpdmUkKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fc2lkZWJhckFjdGl2ZVN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuXG4gICAgc2V0IHNpZGViYXJBY3RpdmUodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5fc2lkZWJhckFjdGl2ZSA9IHZhbHVlO1xuICAgICAgICB0aGlzLl9zaWRlYmFyQWN0aXZlU3ViamVjdC5uZXh0KHZhbHVlKTtcbiAgICB9XG5cbiAgICBnZXQgc2lkZWJhclN0YXRpYyQoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zaWRlYmFyU3RhdGljU3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgICB9XG5cbiAgICBzZXQgc2lkZWJhclN0YXRpYyh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLl9zaWRlYmFyU3RhdGljID0gdmFsdWU7XG4gICAgICAgIHRoaXMuX3NpZGViYXJTdGF0aWNTdWJqZWN0Lm5leHQodmFsdWUpO1xuICAgIH1cblxuICAgIHNldCBtZW51SG92ZXJBY3RpdmUodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5fbWVudUhvdmVyQWN0aXZlID0gdmFsdWU7XG4gICAgfVxuXG4gICAgc2V0IHRvcGJhckl0ZW1DbGljayh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLl90b3BiYXJJdGVtQ2xpY2sgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICBnZXQgYWN0aXZlVG9wYmFySXRlbSQoKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2FjdGl2ZVRvcGJhckl0ZW1TdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cblxuICAgIHNldCBhY3RpdmVUb3BiYXJJdGVtKHZhbHVlOiBhbnkpIHtcbiAgICAgICAgdGhpcy5fYWN0aXZlVG9wYmFySXRlbSA9IHZhbHVlO1xuICAgICAgICB0aGlzLl9hY3RpdmVUb3BiYXJJdGVtU3ViamVjdC5uZXh0KHZhbHVlKTtcbiAgICB9XG5cbiAgICBnZXQgcGluQWN0aXZlJCgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3BpbkFjdGl2ZVN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuXG4gICAgc2V0IHBpbkFjdGl2ZSh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLl9waW5BY3RpdmUgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5fcGluQWN0aXZlU3ViamVjdC5uZXh0KHZhbHVlKTtcbiAgICB9XG5cbiAgICBnZXQgaXNEZXNrdG9wJCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lubmVyV2lkdGhTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpLnBpcGUobWFwKGUgPT4gdGhpcy5pc1dpZHRoRGVza3RvcChlKSkpO1xuICAgIH1cblxuICAgIGdldCBpc01vYmlsZSQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pbm5lcldpZHRoU3ViamVjdC5hc09ic2VydmFibGUoKS5waXBlKG1hcChlID0+IHRoaXMuaXNXaWR0aE1vYmlsZShlKSkpIDtcbiAgICB9XG5cbiAgICBzZXQgaW5uZXJXaWR0aCh2YWx1ZTogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuX2lubmVyV2lkdGggPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5faW5uZXJXaWR0aFN1YmplY3QubmV4dCh2YWx1ZSk7XG4gICAgfVxuXG4gICAgb25MYXlvdXRDbGljaygpIHtcbiAgICAgICAgaWYgKCF0aGlzLl90b3BiYXJJdGVtQ2xpY2spIHtcbiAgICAgICAgICAgIHRoaXMuYWN0aXZlVG9wYmFySXRlbSA9IG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIXRoaXMuX21lbnVDbGljaykge1xuICAgICAgICAgICAgaWYgKHRoaXMubW5nQ29tbW9ucy5tZW51TW9kZUlzU2xpbSAmJiAhdGhpcy5pc01vYmlsZSgpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5tbmdDb21tb25zLm1lbnVSZXNldCgpO1xuICAgICAgICAgICAgICAgIHRoaXMubWVudUhvdmVyQWN0aXZlID0gZmFsc2U7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICh0aGlzLl9vdmVybGF5TWVudUFjdGl2ZSB8fCB0aGlzLl9zdGF0aWNNZW51TW9iaWxlQWN0aXZlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5vdmVybGF5TWVudUFjdGl2ZSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGljTWVudU1vYmlsZUFjdGl2ZSA9IGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fbWVudUNsaWNrID0gZmFsc2U7XG4gICAgICAgIHRoaXMudG9wYmFySXRlbUNsaWNrID0gZmFsc2U7XG4gICAgfVxuXG4gICAgb25TaWRlYmFyQ2xpY2soZXZlbnQ6IGFueSkge1xuICAgICAgICB0aGlzLl9tZW51Q2xpY2sgPSB0cnVlO1xuICAgIH1cblxuICAgIG9uVG9nZ2xlTWVudShldmVudDogYW55KSB7XG4gICAgICAgIHRoaXMuX21lbnVDbGljayA9IHRydWU7XG5cbiAgICAgICAgaWYgKHRoaXMuX292ZXJsYXlNZW51QWN0aXZlKSB7XG4gICAgICAgICAgICB0aGlzLm92ZXJsYXlNZW51QWN0aXZlID0gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5fc2lkZWJhckFjdGl2ZSkge1xuICAgICAgICAgICAgdGhpcy5zaWRlYmFyU3RhdGljID0gIXRoaXMuX3NpZGViYXJTdGF0aWM7XG4gICAgICAgIH1cblxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cblxuICAgIG9uU2lkZWJhck1vdXNlT3ZlcihldmVudDogYW55KSB7XG4gICAgICAgIGlmICh0aGlzLm1uZ0NvbW1vbnMubWVudU1vZGVJc1NpZGViYXIgJiYgIXRoaXMuX3NpZGViYXJTdGF0aWMpIHtcbiAgICAgICAgICAgIHRoaXMuc2lkZWJhckFjdGl2ZSA9IHRoaXMuaXNEZXNrdG9wKCk7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnBpbkFjdGl2ZSA9IHRoaXMuaXNEZXNrdG9wKCk7XG4gICAgICAgICAgICB9LCAyMDApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25TaWRlYmFyTW91c2VMZWF2ZShldmVudDogYW55KSB7XG4gICAgICAgIGlmICh0aGlzLm1uZ0NvbW1vbnMubWVudU1vZGVJc1NpZGViYXIgJiYgIXRoaXMuX3NpZGViYXJTdGF0aWMpIHtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuc2lkZWJhckFjdGl2ZSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHRoaXMucGluQWN0aXZlID0gZmFsc2U7XG4gICAgICAgICAgICB9LCAyNTApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25NZW51QnV0dG9uQ2xpY2soZXZlbnQ6IGFueSkge1xuICAgICAgICB0aGlzLl9tZW51Q2xpY2sgPSB0cnVlO1xuXG4gICAgICAgIGlmICh0aGlzLm1uZ0NvbW1vbnMubWVudU1vZGVJc092ZXJsYXkpIHtcbiAgICAgICAgICAgIHRoaXMub3ZlcmxheU1lbnVBY3RpdmUgPSAhdGhpcy5fb3ZlcmxheU1lbnVBY3RpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5pc0Rlc2t0b3AoKSkge1xuICAgICAgICAgICAgdGhpcy5zdGF0aWNNZW51RGVza3RvcEluYWN0aXZlID0gIXRoaXMuX3N0YXRpY01lbnVEZXNrdG9wSW5hY3RpdmU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnN0YXRpY01lbnVNb2JpbGVBY3RpdmUgPSAhdGhpcy5fc3RhdGljTWVudU1vYmlsZUFjdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuXG4gICAgb25Ub3BiYXJJdGVtQ2xpY2soZXZlbnQ6IGFueSwgaXRlbTogYW55KSB7XG4gICAgICAgIHRoaXMuX3RvcGJhckl0ZW1DbGljayA9IHRydWU7XG5cbiAgICAgICAgaWYgKHRoaXMuX2FjdGl2ZVRvcGJhckl0ZW0gPT09IGl0ZW0pIHtcbiAgICAgICAgICAgIHRoaXMuYWN0aXZlVG9wYmFySXRlbSA9IG51bGw7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmFjdGl2ZVRvcGJhckl0ZW0gPSBpdGVtO1xuICAgICAgICB9XG5cbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG5cbiAgICBvblRvcGJhclN1Ykl0ZW1DbGljayhldmVudDogYW55KSB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIGlzIGRlc2t0b3Agd2lkdGgsIERPIE5PVCB1c2Ugd2l0aGluIEhUTUwgdGVtcGxhdGVzIG9yIHdpdGhpbiBmdW5jdGlvbnMgY2FsbGVkIGJ5IEhUTUwgdGVtcGxhdGVzXG4gICAgICovXG4gICAgcHVibGljIGlzRGVza3RvcCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNXaWR0aERlc2t0b3AodGhpcy5faW5uZXJXaWR0aCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIGlzIG1vYmlsZSB3aWR0aCwgRE8gTk9UIHVzZSB3aXRoaW4gSFRNTCB0ZW1wbGF0ZXMgb3Igd2l0aGluIGZ1bmN0aW9ucyBjYWxsZWQgYnkgSFRNTCB0ZW1wbGF0ZXNcbiAgICAgKi9cbiAgICBwdWJsaWMgaXNNb2JpbGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzV2lkdGhNb2JpbGUodGhpcy5faW5uZXJXaWR0aCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpc1dpZHRoRGVza3RvcCh3aWR0aDogbnVtYmVyKSB7XG4gICAgICAgIHJldHVybiB3aWR0aCA+IDk5MTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGlzV2lkdGhNb2JpbGUod2lkdGg6IG51bWJlcikge1xuICAgICAgICByZXR1cm4gd2lkdGggPD0gOTkxO1xuICAgIH1cbn1cbiJdfQ==
1
+ import { Injectable } from '@angular/core';
2
+ import { BehaviorSubject } from 'rxjs';
3
+ import { map } from 'rxjs/operators';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "../../../services";
6
+ export class MngMainLayoutComponentService {
7
+ constructor(mngCommons) {
8
+ this.mngCommons = mngCommons;
9
+ this._overlayMenuActive = false;
10
+ this._overlayMenuActiveSubject = new BehaviorSubject(this._overlayMenuActive);
11
+ this._staticMenuDesktopInactive = false;
12
+ this._staticMenuDesktopInactiveSubject = new BehaviorSubject(this._staticMenuDesktopInactive);
13
+ this._staticMenuMobileActive = false;
14
+ this._staticMenuMobileActiveSubject = new BehaviorSubject(this._staticMenuMobileActive);
15
+ this._sidebarActive = true;
16
+ this._sidebarActiveSubject = new BehaviorSubject(this._sidebarActive);
17
+ this._sidebarStatic = true;
18
+ this._sidebarStaticSubject = new BehaviorSubject(this._sidebarStatic);
19
+ this._menuClick = false;
20
+ this._menuHoverActive = false;
21
+ this._topbarItemClick = false;
22
+ this._activeTopbarItem = null;
23
+ this._activeTopbarItemSubject = new BehaviorSubject(this._activeTopbarItem);
24
+ this._pinActive = true;
25
+ this._pinActiveSubject = new BehaviorSubject(this._pinActive);
26
+ this._innerWidth = 1920;
27
+ this._innerWidthSubject = new BehaviorSubject(this._innerWidth);
28
+ }
29
+ get overlayMenuActive$() {
30
+ return this._overlayMenuActiveSubject.asObservable();
31
+ }
32
+ set overlayMenuActive(value) {
33
+ this._overlayMenuActive = value;
34
+ this._overlayMenuActiveSubject.next(value);
35
+ }
36
+ get staticMenuDesktopInactive$() {
37
+ return this._staticMenuDesktopInactiveSubject.asObservable();
38
+ }
39
+ set staticMenuDesktopInactive(value) {
40
+ this._staticMenuDesktopInactive = value;
41
+ this._staticMenuDesktopInactiveSubject.next(value);
42
+ }
43
+ get staticMenuMobileActive$() {
44
+ return this._staticMenuMobileActiveSubject.asObservable();
45
+ }
46
+ set staticMenuMobileActive(value) {
47
+ this._staticMenuMobileActive = value;
48
+ this._staticMenuMobileActiveSubject.next(value);
49
+ }
50
+ get sidebarActive$() {
51
+ return this._sidebarActiveSubject.asObservable();
52
+ }
53
+ set sidebarActive(value) {
54
+ this._sidebarActive = value;
55
+ this._sidebarActiveSubject.next(value);
56
+ }
57
+ get sidebarStatic$() {
58
+ return this._sidebarStaticSubject.asObservable();
59
+ }
60
+ set sidebarStatic(value) {
61
+ this._sidebarStatic = value;
62
+ this._sidebarStaticSubject.next(value);
63
+ }
64
+ set menuHoverActive(value) {
65
+ this._menuHoverActive = value;
66
+ }
67
+ set topbarItemClick(value) {
68
+ this._topbarItemClick = value;
69
+ }
70
+ get activeTopbarItem$() {
71
+ return this._activeTopbarItemSubject.asObservable();
72
+ }
73
+ set activeTopbarItem(value) {
74
+ this._activeTopbarItem = value;
75
+ this._activeTopbarItemSubject.next(value);
76
+ }
77
+ get pinActive$() {
78
+ return this._pinActiveSubject.asObservable();
79
+ }
80
+ set pinActive(value) {
81
+ this._pinActive = value;
82
+ this._pinActiveSubject.next(value);
83
+ }
84
+ get isDesktop$() {
85
+ return this._innerWidthSubject.asObservable().pipe(map(e => this.isWidthDesktop(e)));
86
+ }
87
+ get isMobile$() {
88
+ return this._innerWidthSubject.asObservable().pipe(map(e => this.isWidthMobile(e)));
89
+ }
90
+ set innerWidth(value) {
91
+ this._innerWidth = value;
92
+ this._innerWidthSubject.next(value);
93
+ }
94
+ onLayoutClick() {
95
+ if (!this._topbarItemClick) {
96
+ this.activeTopbarItem = null;
97
+ }
98
+ if (!this._menuClick) {
99
+ if (this.mngCommons.menuModeIsSlim && !this.isMobile()) {
100
+ this.mngCommons.menuReset();
101
+ this.menuHoverActive = false;
102
+ }
103
+ if (this._overlayMenuActive || this._staticMenuMobileActive) {
104
+ this.overlayMenuActive = false;
105
+ this.staticMenuMobileActive = false;
106
+ }
107
+ }
108
+ this._menuClick = false;
109
+ this.topbarItemClick = false;
110
+ }
111
+ onSidebarClick(event) {
112
+ this._menuClick = true;
113
+ }
114
+ onToggleMenu(event) {
115
+ this._menuClick = true;
116
+ if (this._overlayMenuActive) {
117
+ this.overlayMenuActive = false;
118
+ }
119
+ if (this._sidebarActive) {
120
+ this.sidebarStatic = !this._sidebarStatic;
121
+ }
122
+ event.preventDefault();
123
+ }
124
+ onSidebarMouseOver(event) {
125
+ if (this.mngCommons.menuModeIsSidebar && !this._sidebarStatic) {
126
+ this.sidebarActive = this.isDesktop();
127
+ setTimeout(() => {
128
+ this.pinActive = this.isDesktop();
129
+ }, 200);
130
+ }
131
+ }
132
+ onSidebarMouseLeave(event) {
133
+ if (this.mngCommons.menuModeIsSidebar && !this._sidebarStatic) {
134
+ setTimeout(() => {
135
+ this.sidebarActive = false;
136
+ this.pinActive = false;
137
+ }, 250);
138
+ }
139
+ }
140
+ onMenuButtonClick(event) {
141
+ this._menuClick = true;
142
+ if (this.mngCommons.menuModeIsOverlay) {
143
+ this.overlayMenuActive = !this._overlayMenuActive;
144
+ }
145
+ if (this.isDesktop()) {
146
+ this.staticMenuDesktopInactive = !this._staticMenuDesktopInactive;
147
+ }
148
+ else {
149
+ this.staticMenuMobileActive = !this._staticMenuMobileActive;
150
+ }
151
+ event.preventDefault();
152
+ }
153
+ onTopbarItemClick(event, item) {
154
+ this._topbarItemClick = true;
155
+ if (this._activeTopbarItem === item) {
156
+ this.activeTopbarItem = null;
157
+ }
158
+ else {
159
+ this.activeTopbarItem = item;
160
+ }
161
+ event.preventDefault();
162
+ }
163
+ onTopbarSubItemClick(event) {
164
+ event.preventDefault();
165
+ }
166
+ /**
167
+ * Checks if is desktop width, DO NOT use within HTML templates or within functions called by HTML templates
168
+ */
169
+ isDesktop() {
170
+ return this.isWidthDesktop(this._innerWidth);
171
+ }
172
+ /**
173
+ * Checks if is mobile width, DO NOT use within HTML templates or within functions called by HTML templates
174
+ */
175
+ isMobile() {
176
+ return this.isWidthMobile(this._innerWidth);
177
+ }
178
+ isWidthDesktop(width) {
179
+ return width > 991;
180
+ }
181
+ isWidthMobile(width) {
182
+ return width <= 991;
183
+ }
184
+ }
185
+ MngMainLayoutComponentService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: MngMainLayoutComponentService, deps: [{ token: i1.MngCommonsService }], target: i0.ɵɵFactoryTarget.Injectable });
186
+ MngMainLayoutComponentService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: MngMainLayoutComponentService });
187
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: MngMainLayoutComponentService, decorators: [{
188
+ type: Injectable
189
+ }], ctorParameters: function () { return [{ type: i1.MngCommonsService }]; } });
190
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi1sYXlvdXQuY29tcG9uZW50LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvbGF5b3V0L3NlcnZpY2VzL21haW4tbGF5b3V0LmNvbXBvbmVudC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFHekMsT0FBTyxFQUFDLGVBQWUsRUFBc0IsTUFBTSxNQUFNLENBQUM7QUFDMUQsT0FBTyxFQUFDLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDOzs7QUFHbkMsTUFBTSxPQUFPLDZCQUE2QjtJQTJCdEMsWUFBb0IsVUFBNkI7UUFBN0IsZUFBVSxHQUFWLFVBQVUsQ0FBbUI7UUF6QnpDLHVCQUFrQixHQUFZLEtBQUssQ0FBQztRQUNwQyw4QkFBeUIsR0FBcUIsSUFBSSxlQUFlLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDM0YsK0JBQTBCLEdBQUcsS0FBSyxDQUFDO1FBQ25DLHNDQUFpQyxHQUFxQixJQUFJLGVBQWUsQ0FBQyxJQUFJLENBQUMsMEJBQTBCLENBQUMsQ0FBQztRQUMzRyw0QkFBdUIsR0FBWSxLQUFLLENBQUM7UUFDekMsbUNBQThCLEdBQXFCLElBQUksZUFBZSxDQUFDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO1FBRXJHLG1CQUFjLEdBQUcsSUFBSSxDQUFDO1FBQ3RCLDBCQUFxQixHQUFxQixJQUFJLGVBQWUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDbkYsbUJBQWMsR0FBRyxJQUFJLENBQUM7UUFDdEIsMEJBQXFCLEdBQXFCLElBQUksZUFBZSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUVuRixlQUFVLEdBQVksS0FBSyxDQUFDO1FBQzVCLHFCQUFnQixHQUFHLEtBQUssQ0FBQztRQUN6QixxQkFBZ0IsR0FB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S0FBSyxHQUFHLEdBQUcsQ0FBQztJQUN2QixDQUFDO0lBRU8sYUFBYSxDQUFDLEtBQWE7UUFDL0IsT0FBTyxLQUFLLElBQUksR0FBRyxDQUFDO0lBQ3hCLENBQUM7OzBIQTlOUSw2QkFBNkI7OEhBQTdCLDZCQUE2QjsyRkFBN0IsNkJBQTZCO2tCQUR6QyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtNbmdDb21tb25zU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMnO1xuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIFN1YmplY3R9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHttYXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIE1uZ01haW5MYXlvdXRDb21wb25lbnRTZXJ2aWNlIHtcblxuICAgIHByaXZhdGUgX292ZXJsYXlNZW51QWN0aXZlOiBib29sZWFuID0gZmFsc2U7XG4gICAgcHJpdmF0ZSBfb3ZlcmxheU1lbnVBY3RpdmVTdWJqZWN0OiBTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IEJlaGF2aW9yU3ViamVjdCh0aGlzLl9vdmVybGF5TWVudUFjdGl2ZSk7XG4gICAgcHJpdmF0ZSBfc3RhdGljTWVudURlc2t0b3BJbmFjdGl2ZSA9IGZhbHNlO1xuICAgIHByaXZhdGUgX3N0YXRpY01lbnVEZXNrdG9wSW5hY3RpdmVTdWJqZWN0OiBTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IEJlaGF2aW9yU3ViamVjdCh0aGlzLl9zdGF0aWNNZW51RGVza3RvcEluYWN0aXZlKTtcbiAgICBwcml2YXRlIF9zdGF0aWNNZW51TW9iaWxlQWN0aXZlOiBib29sZWFuID0gZmFsc2U7XG4gICAgcHJpdmF0ZSBfc3RhdGljTWVudU1vYmlsZUFjdGl2ZVN1YmplY3Q6IFN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KHRoaXMuX3N0YXRpY01lbnVNb2JpbGVBY3RpdmUpO1xuXG4gICAgcHJpdmF0ZSBfc2lkZWJhckFjdGl2ZSA9IHRydWU7XG4gICAgcHJpdmF0ZSBfc2lkZWJhckFjdGl2ZVN1YmplY3Q6IFN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KHRoaXMuX3NpZGViYXJBY3RpdmUpO1xuICAgIHByaXZhdGUgX3NpZGViYXJTdGF0aWMgPSB0cnVlO1xuICAgIHByaXZhdGUgX3NpZGViYXJTdGF0aWNTdWJqZWN0OiBTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IEJlaGF2aW9yU3ViamVjdCh0aGlzLl9zaWRlYmFyU3RhdGljKTtcblxuICAgIHByaXZhdGUgX21lbnVDbGljazogYm9vbGVhbiA9IGZhbHNlO1xuICAgIHByaXZhdGUgX21lbnVIb3ZlckFjdGl2ZSA9IGZhbHNlO1xuICAgIHByaXZhdGUgX3RvcGJhckl0ZW1DbGljazogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgcHJpdmF0ZSBfYWN0aXZlVG9wYmFySXRlbTogYW55ID0gbnVsbDtcbiAgICBwcml2YXRlIF9hY3RpdmVUb3BiYXJJdGVtU3ViamVjdDogU3ViamVjdDxhbnk+ID0gbmV3IEJlaGF2aW9yU3ViamVjdCh0aGlzLl9hY3RpdmVUb3BiYXJJdGVtKTtcblxuICAgIHByaXZhdGUgX3BpbkFjdGl2ZTogYm9vbGVhbiA9IHRydWU7XG4gICAgcHJpdmF0ZSBfcGluQWN0aXZlU3ViamVjdDogU3ViamVjdDxib29sZWFuPiA9IG5ldyBCZWhhdmlvclN1YmplY3QodGhpcy5fcGluQWN0aXZlKTtcblxuICAgIHByaXZhdGUgX2lubmVyV2lkdGg6IG51bWJlciA9IDE5MjA7XG4gICAgcHJpdmF0ZSBfaW5uZXJXaWR0aFN1YmplY3Q6IFN1YmplY3Q8bnVtYmVyPiA9IG5ldyBCZWhhdmlvclN1YmplY3QodGhpcy5faW5uZXJXaWR0aCk7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIG1uZ0NvbW1vbnM6IE1uZ0NvbW1vbnNTZXJ2aWNlKSB7IH1cblxuICAgIGdldCBvdmVybGF5TWVudUFjdGl2ZSQoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9vdmVybGF5TWVudUFjdGl2ZVN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuXG4gICAgc2V0IG92ZXJsYXlNZW51QWN0aXZlKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuX292ZXJsYXlNZW51QWN0aXZlID0gdmFsdWU7XG4gICAgICAgIHRoaXMuX292ZXJsYXlNZW51QWN0aXZlU3ViamVjdC5uZXh0KHZhbHVlKTtcbiAgICB9XG5cbiAgICBnZXQgc3RhdGljTWVudURlc2t0b3BJbmFjdGl2ZSQoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zdGF0aWNNZW51RGVza3RvcEluYWN0aXZlU3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgICB9XG5cbiAgICBzZXQgc3RhdGljTWVudURlc2t0b3BJbmFjdGl2ZSh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLl9zdGF0aWNNZW51RGVza3RvcEluYWN0aXZlID0gdmFsdWU7XG4gICAgICAgIHRoaXMuX3N0YXRpY01lbnVEZXNrdG9wSW5hY3RpdmVTdWJqZWN0Lm5leHQodmFsdWUpO1xuICAgIH1cblxuICAgIGdldCBzdGF0aWNNZW51TW9iaWxlQWN0aXZlJCgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3N0YXRpY01lbnVNb2JpbGVBY3RpdmVTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cblxuICAgIHNldCBzdGF0aWNNZW51TW9iaWxlQWN0aXZlKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuX3N0YXRpY01lbnVNb2JpbGVBY3RpdmUgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5fc3RhdGljTWVudU1vYmlsZUFjdGl2ZVN1YmplY3QubmV4dCh2YWx1ZSk7XG4gICAgfVxuXG4gICAgZ2V0IHNpZGViYXJBY3RpdmUkKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fc2lkZWJhckFjdGl2ZVN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuXG4gICAgc2V0IHNpZGViYXJBY3RpdmUodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5fc2lkZWJhckFjdGl2ZSA9IHZhbHVlO1xuICAgICAgICB0aGlzLl9zaWRlYmFyQWN0aXZlU3ViamVjdC5uZXh0KHZhbHVlKTtcbiAgICB9XG5cbiAgICBnZXQgc2lkZWJhclN0YXRpYyQoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zaWRlYmFyU3RhdGljU3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgICB9XG5cbiAgICBzZXQgc2lkZWJhclN0YXRpYyh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLl9zaWRlYmFyU3RhdGljID0gdmFsdWU7XG4gICAgICAgIHRoaXMuX3NpZGViYXJTdGF0aWNTdWJqZWN0Lm5leHQodmFsdWUpO1xuICAgIH1cblxuICAgIHNldCBtZW51SG92ZXJBY3RpdmUodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5fbWVudUhvdmVyQWN0aXZlID0gdmFsdWU7XG4gICAgfVxuXG4gICAgc2V0IHRvcGJhckl0ZW1DbGljayh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLl90b3BiYXJJdGVtQ2xpY2sgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICBnZXQgYWN0aXZlVG9wYmFySXRlbSQoKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2FjdGl2ZVRvcGJhckl0ZW1TdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cblxuICAgIHNldCBhY3RpdmVUb3BiYXJJdGVtKHZhbHVlOiBhbnkpIHtcbiAgICAgICAgdGhpcy5fYWN0aXZlVG9wYmFySXRlbSA9IHZhbHVlO1xuICAgICAgICB0aGlzLl9hY3RpdmVUb3BiYXJJdGVtU3ViamVjdC5uZXh0KHZhbHVlKTtcbiAgICB9XG5cbiAgICBnZXQgcGluQWN0aXZlJCgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3BpbkFjdGl2ZVN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuXG4gICAgc2V0IHBpbkFjdGl2ZSh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLl9waW5BY3RpdmUgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5fcGluQWN0aXZlU3ViamVjdC5uZXh0KHZhbHVlKTtcbiAgICB9XG5cbiAgICBnZXQgaXNEZXNrdG9wJCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lubmVyV2lkdGhTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpLnBpcGUobWFwKGUgPT4gdGhpcy5pc1dpZHRoRGVza3RvcChlKSkpO1xuICAgIH1cblxuICAgIGdldCBpc01vYmlsZSQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pbm5lcldpZHRoU3ViamVjdC5hc09ic2VydmFibGUoKS5waXBlKG1hcChlID0+IHRoaXMuaXNXaWR0aE1vYmlsZShlKSkpIDtcbiAgICB9XG5cbiAgICBzZXQgaW5uZXJXaWR0aCh2YWx1ZTogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuX2lubmVyV2lkdGggPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5faW5uZXJXaWR0aFN1YmplY3QubmV4dCh2YWx1ZSk7XG4gICAgfVxuXG4gICAgb25MYXlvdXRDbGljaygpIHtcbiAgICAgICAgaWYgKCF0aGlzLl90b3BiYXJJdGVtQ2xpY2spIHtcbiAgICAgICAgICAgIHRoaXMuYWN0aXZlVG9wYmFySXRlbSA9IG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIXRoaXMuX21lbnVDbGljaykge1xuICAgICAgICAgICAgaWYgKHRoaXMubW5nQ29tbW9ucy5tZW51TW9kZUlzU2xpbSAmJiAhdGhpcy5pc01vYmlsZSgpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5tbmdDb21tb25zLm1lbnVSZXNldCgpO1xuICAgICAgICAgICAgICAgIHRoaXMubWVudUhvdmVyQWN0aXZlID0gZmFsc2U7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICh0aGlzLl9vdmVybGF5TWVudUFjdGl2ZSB8fCB0aGlzLl9zdGF0aWNNZW51TW9iaWxlQWN0aXZlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5vdmVybGF5TWVudUFjdGl2ZSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGljTWVudU1vYmlsZUFjdGl2ZSA9IGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fbWVudUNsaWNrID0gZmFsc2U7XG4gICAgICAgIHRoaXMudG9wYmFySXRlbUNsaWNrID0gZmFsc2U7XG4gICAgfVxuXG4gICAgb25TaWRlYmFyQ2xpY2soZXZlbnQ6IGFueSkge1xuICAgICAgICB0aGlzLl9tZW51Q2xpY2sgPSB0cnVlO1xuICAgIH1cblxuICAgIG9uVG9nZ2xlTWVudShldmVudDogYW55KSB7XG4gICAgICAgIHRoaXMuX21lbnVDbGljayA9IHRydWU7XG5cbiAgICAgICAgaWYgKHRoaXMuX292ZXJsYXlNZW51QWN0aXZlKSB7XG4gICAgICAgICAgICB0aGlzLm92ZXJsYXlNZW51QWN0aXZlID0gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5fc2lkZWJhckFjdGl2ZSkge1xuICAgICAgICAgICAgdGhpcy5zaWRlYmFyU3RhdGljID0gIXRoaXMuX3NpZGViYXJTdGF0aWM7XG4gICAgICAgIH1cblxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cblxuICAgIG9uU2lkZWJhck1vdXNlT3ZlcihldmVudDogYW55KSB7XG4gICAgICAgIGlmICh0aGlzLm1uZ0NvbW1vbnMubWVudU1vZGVJc1NpZGViYXIgJiYgIXRoaXMuX3NpZGViYXJTdGF0aWMpIHtcbiAgICAgICAgICAgIHRoaXMuc2lkZWJhckFjdGl2ZSA9IHRoaXMuaXNEZXNrdG9wKCk7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnBpbkFjdGl2ZSA9IHRoaXMuaXNEZXNrdG9wKCk7XG4gICAgICAgICAgICB9LCAyMDApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25TaWRlYmFyTW91c2VMZWF2ZShldmVudDogYW55KSB7XG4gICAgICAgIGlmICh0aGlzLm1uZ0NvbW1vbnMubWVudU1vZGVJc1NpZGViYXIgJiYgIXRoaXMuX3NpZGViYXJTdGF0aWMpIHtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuc2lkZWJhckFjdGl2ZSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHRoaXMucGluQWN0aXZlID0gZmFsc2U7XG4gICAgICAgICAgICB9LCAyNTApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25NZW51QnV0dG9uQ2xpY2soZXZlbnQ6IGFueSkge1xuICAgICAgICB0aGlzLl9tZW51Q2xpY2sgPSB0cnVlO1xuXG4gICAgICAgIGlmICh0aGlzLm1uZ0NvbW1vbnMubWVudU1vZGVJc092ZXJsYXkpIHtcbiAgICAgICAgICAgIHRoaXMub3ZlcmxheU1lbnVBY3RpdmUgPSAhdGhpcy5fb3ZlcmxheU1lbnVBY3RpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5pc0Rlc2t0b3AoKSkge1xuICAgICAgICAgICAgdGhpcy5zdGF0aWNNZW51RGVza3RvcEluYWN0aXZlID0gIXRoaXMuX3N0YXRpY01lbnVEZXNrdG9wSW5hY3RpdmU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnN0YXRpY01lbnVNb2JpbGVBY3RpdmUgPSAhdGhpcy5fc3RhdGljTWVudU1vYmlsZUFjdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuXG4gICAgb25Ub3BiYXJJdGVtQ2xpY2soZXZlbnQ6IGFueSwgaXRlbTogYW55KSB7XG4gICAgICAgIHRoaXMuX3RvcGJhckl0ZW1DbGljayA9IHRydWU7XG5cbiAgICAgICAgaWYgKHRoaXMuX2FjdGl2ZVRvcGJhckl0ZW0gPT09IGl0ZW0pIHtcbiAgICAgICAgICAgIHRoaXMuYWN0aXZlVG9wYmFySXRlbSA9IG51bGw7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmFjdGl2ZVRvcGJhckl0ZW0gPSBpdGVtO1xuICAgICAgICB9XG5cbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG5cbiAgICBvblRvcGJhclN1Ykl0ZW1DbGljayhldmVudDogYW55KSB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIGlzIGRlc2t0b3Agd2lkdGgsIERPIE5PVCB1c2Ugd2l0aGluIEhUTUwgdGVtcGxhdGVzIG9yIHdpdGhpbiBmdW5jdGlvbnMgY2FsbGVkIGJ5IEhUTUwgdGVtcGxhdGVzXG4gICAgICovXG4gICAgcHVibGljIGlzRGVza3RvcCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNXaWR0aERlc2t0b3AodGhpcy5faW5uZXJXaWR0aCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIGlzIG1vYmlsZSB3aWR0aCwgRE8gTk9UIHVzZSB3aXRoaW4gSFRNTCB0ZW1wbGF0ZXMgb3Igd2l0aGluIGZ1bmN0aW9ucyBjYWxsZWQgYnkgSFRNTCB0ZW1wbGF0ZXNcbiAgICAgKi9cbiAgICBwdWJsaWMgaXNNb2JpbGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzV2lkdGhNb2JpbGUodGhpcy5faW5uZXJXaWR0aCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpc1dpZHRoRGVza3RvcCh3aWR0aDogbnVtYmVyKSB7XG4gICAgICAgIHJldHVybiB3aWR0aCA+IDk5MTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGlzV2lkdGhNb2JpbGUod2lkdGg6IG51bWJlcikge1xuICAgICAgICByZXR1cm4gd2lkdGggPD0gOTkxO1xuICAgIH1cbn1cbiJdfQ==