@mediusinc/mng-commons-layout 6.0.0-rc.5 → 6.0.0-rc.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 (195) hide show
  1. package/components/pages/error/index.d.ts +1 -3
  2. package/components/pages/not-found/index.d.ts +1 -3
  3. package/fesm2022/mediusinc-mng-commons-layout-components-pages-error.mjs +6 -7
  4. package/fesm2022/mediusinc-mng-commons-layout-components-pages-error.mjs.map +1 -1
  5. package/fesm2022/mediusinc-mng-commons-layout-components-pages-main.mjs +3 -3
  6. package/fesm2022/mediusinc-mng-commons-layout-components-pages-main.mjs.map +1 -1
  7. package/fesm2022/mediusinc-mng-commons-layout-components-pages-not-found.mjs +6 -7
  8. package/fesm2022/mediusinc-mng-commons-layout-components-pages-not-found.mjs.map +1 -1
  9. package/fesm2022/mediusinc-mng-commons-layout-components.mjs +62 -58
  10. package/fesm2022/mediusinc-mng-commons-layout-components.mjs.map +1 -1
  11. package/fesm2022/mediusinc-mng-commons-layout.mjs +21 -14
  12. package/fesm2022/mediusinc-mng-commons-layout.mjs.map +1 -1
  13. package/package.json +11 -21
  14. package/scss/commons.scss +1 -0
  15. package/scss/layout/_breadcrumb.scss +14 -11
  16. package/scss/layout/_config.scss +75 -7
  17. package/scss/layout/_content.scss +1 -1
  18. package/scss/layout/_main.scss +7 -9
  19. package/scss/layout/_profile.scss +1 -1
  20. package/scss/layout/_responsive.scss +4 -2
  21. package/scss/layout/_sass_variables.scss +1 -0
  22. package/scss/layout/_sidebar_drawer.scss +6 -5
  23. package/scss/layout/_sidebar_horizontal.scss +15 -11
  24. package/scss/layout/_sidebar_reveal.scss +16 -10
  25. package/scss/layout/_sidebar_slim.scss +5 -3
  26. package/scss/layout/_sidebar_slim_plus.scss +5 -2
  27. package/scss/layout/_sidebar_vertical.scss +13 -7
  28. package/scss/layout/_topbar.scss +75 -45
  29. package/scss/layout/_utils.scss +1 -5
  30. package/scss/layout/layout.scss +29 -22
  31. package/scss/layout/mng/{_mng_layout_menu.scss → layout/_mng_layout_menu.scss} +0 -4
  32. package/scss/layout/mng/{_mng_layout_topbar.scss → layout/_mng_layout_topbar.scss} +2 -2
  33. package/scss/layout/mng/theme/_mng_theme_button.scss +63 -0
  34. package/scss/{theme/theme-base/mng → layout/mng/theme}/_mng_theme_dialog.scss +44 -46
  35. package/scss/{theme/theme-base/mng → layout/mng/theme}/_mng_theme_toast.scss +4 -4
  36. package/scss/layout/mng/theme/_mng_theme_toggleswitch.scss +3 -0
  37. package/scss/layout/mng/variables/_mng-variables-common.scss +22 -0
  38. package/scss/layout/variables/_common.scss +15 -0
  39. package/scss/layout/variables/_dark.scss +10 -0
  40. package/scss/layout/variables/_light.scss +10 -0
  41. package/version-info.json +3 -3
  42. package/esm2022/components/index.mjs +0 -12
  43. package/esm2022/components/lib/components/breadcrumb.component.mjs +0 -29
  44. package/esm2022/components/lib/components/footer.component.mjs +0 -23
  45. package/esm2022/components/lib/components/main-layout.component.mjs +0 -86
  46. package/esm2022/components/lib/components/menu-item.component.mjs +0 -169
  47. package/esm2022/components/lib/components/menu.component.mjs +0 -36
  48. package/esm2022/components/lib/components/settings.component.mjs +0 -87
  49. package/esm2022/components/lib/components/sidebar.component.mjs +0 -51
  50. package/esm2022/components/lib/components/topbar-user.component.mjs +0 -51
  51. package/esm2022/components/lib/components/topbar.component.mjs +0 -37
  52. package/esm2022/components/lib/components/version.component.mjs +0 -95
  53. package/esm2022/components/mediusinc-mng-commons-layout-components.mjs +0 -5
  54. package/esm2022/components/pages/error/index.mjs +0 -4
  55. package/esm2022/components/pages/error/lib/error.page.component.mjs +0 -20
  56. package/esm2022/components/pages/error/mediusinc-mng-commons-layout-components-pages-error.mjs +0 -5
  57. package/esm2022/components/pages/main/index.mjs +0 -3
  58. package/esm2022/components/pages/main/lazy/index.mjs +0 -2
  59. package/esm2022/components/pages/main/lazy/lib/route-builder.mjs +0 -11
  60. package/esm2022/components/pages/main/lazy/mediusinc-mng-commons-layout-components-pages-main-lazy.mjs +0 -5
  61. package/esm2022/components/pages/main/lib/main-layout.component.mjs +0 -84
  62. package/esm2022/components/pages/main/lib/route-builder.mjs +0 -12
  63. package/esm2022/components/pages/main/mediusinc-mng-commons-layout-components-pages-main.mjs +0 -5
  64. package/esm2022/components/pages/not-found/index.mjs +0 -4
  65. package/esm2022/components/pages/not-found/lib/not-found.page.component.mjs +0 -20
  66. package/esm2022/components/pages/not-found/mediusinc-mng-commons-layout-components-pages-not-found.mjs +0 -5
  67. package/esm2022/index.mjs +0 -13
  68. package/esm2022/lib/helpers/menu-items.mjs +0 -29
  69. package/esm2022/lib/models/layout-state.model.mjs +0 -2
  70. package/esm2022/lib/models/menu.model.mjs +0 -2
  71. package/esm2022/lib/provide.mjs +0 -25
  72. package/esm2022/lib/services/layout-feature-config.token.mjs +0 -3
  73. package/esm2022/lib/services/layout.service.mjs +0 -167
  74. package/esm2022/lib/services/menu.service.mjs +0 -121
  75. package/esm2022/lib/services/version.service.mjs +0 -45
  76. package/esm2022/mediusinc-mng-commons-layout.mjs +0 -5
  77. package/scss/commons-dark.scss +0 -9
  78. package/scss/commons-light.scss +0 -9
  79. package/scss/layout/_animation.scss +0 -53
  80. package/scss/layout/_fonts.scss +0 -40
  81. package/scss/layout/_layout_dark.scss +0 -12
  82. package/scss/layout/_layout_light.scss +0 -12
  83. package/scss/layout/_typography.scss +0 -67
  84. package/scss/layout/mng/_mng_layout_styles.scss +0 -4
  85. package/scss/layout/preloading.scss +0 -84
  86. package/scss/theme/extensions/_fullcalendar.scss +0 -328
  87. package/scss/theme/theme-base/_colors.scss +0 -17
  88. package/scss/theme/theme-base/_common.scss +0 -76
  89. package/scss/theme/theme-base/_components.scss +0 -110
  90. package/scss/theme/theme-base/_mixins.scss +0 -337
  91. package/scss/theme/theme-base/components/button/_button.scss +0 -576
  92. package/scss/theme/theme-base/components/button/_speeddial.scss +0 -96
  93. package/scss/theme/theme-base/components/button/_splitbutton.scss +0 -348
  94. package/scss/theme/theme-base/components/data/_carousel.scss +0 -37
  95. package/scss/theme/theme-base/components/data/_datatable.scss +0 -338
  96. package/scss/theme/theme-base/components/data/_dataview.scss +0 -46
  97. package/scss/theme/theme-base/components/data/_filter.scss +0 -137
  98. package/scss/theme/theme-base/components/data/_orderlist.scss +0 -114
  99. package/scss/theme/theme-base/components/data/_organizationchart.scss +0 -50
  100. package/scss/theme/theme-base/components/data/_paginator.scss +0 -92
  101. package/scss/theme/theme-base/components/data/_picklist.scss +0 -114
  102. package/scss/theme/theme-base/components/data/_timeline.scss +0 -35
  103. package/scss/theme/theme-base/components/data/_tree.scss +0 -150
  104. package/scss/theme/theme-base/components/data/_treetable.scss +0 -255
  105. package/scss/theme/theme-base/components/data/_virtualscroller.scss +0 -28
  106. package/scss/theme/theme-base/components/file/_fileupload.scss +0 -64
  107. package/scss/theme/theme-base/components/input/_autocomplete.scss +0 -136
  108. package/scss/theme/theme-base/components/input/_calendar.scss +0 -267
  109. package/scss/theme/theme-base/components/input/_cascadeselect.scss +0 -135
  110. package/scss/theme/theme-base/components/input/_checkbox.scss +0 -94
  111. package/scss/theme/theme-base/components/input/_chips.scss +0 -65
  112. package/scss/theme/theme-base/components/input/_colorpicker.scss +0 -19
  113. package/scss/theme/theme-base/components/input/_dropdown.scss +0 -151
  114. package/scss/theme/theme-base/components/input/_editor.scss +0 -122
  115. package/scss/theme/theme-base/components/input/_inputgroup.scss +0 -74
  116. package/scss/theme/theme-base/components/input/_inputmask.scss +0 -16
  117. package/scss/theme/theme-base/components/input/_inputnumber.scss +0 -28
  118. package/scss/theme/theme-base/components/input/_inputswitch.scss +0 -60
  119. package/scss/theme/theme-base/components/input/_inputtext.scss +0 -100
  120. package/scss/theme/theme-base/components/input/_listbox.scss +0 -97
  121. package/scss/theme/theme-base/components/input/_multiselect.scss +0 -177
  122. package/scss/theme/theme-base/components/input/_password.scss +0 -52
  123. package/scss/theme/theme-base/components/input/_radiobutton.scss +0 -78
  124. package/scss/theme/theme-base/components/input/_rating.scss +0 -60
  125. package/scss/theme/theme-base/components/input/_selectbutton.scss +0 -50
  126. package/scss/theme/theme-base/components/input/_slider.scss +0 -75
  127. package/scss/theme/theme-base/components/input/_togglebutton.scss +0 -48
  128. package/scss/theme/theme-base/components/input/_treeselect.scss +0 -139
  129. package/scss/theme/theme-base/components/menu/_breadcrumb.scss +0 -42
  130. package/scss/theme/theme-base/components/menu/_contextmenu.scss +0 -39
  131. package/scss/theme/theme-base/components/menu/_dock.scss +0 -95
  132. package/scss/theme/theme-base/components/menu/_megamenu.scss +0 -55
  133. package/scss/theme/theme-base/components/menu/_menu.scss +0 -37
  134. package/scss/theme/theme-base/components/menu/_menubar.scss +0 -140
  135. package/scss/theme/theme-base/components/menu/_panelmenu.scss +0 -153
  136. package/scss/theme/theme-base/components/menu/_slidemenu.scss +0 -59
  137. package/scss/theme/theme-base/components/menu/_steps.scss +0 -56
  138. package/scss/theme/theme-base/components/menu/_tabmenu.scss +0 -73
  139. package/scss/theme/theme-base/components/menu/_tieredmenu.scss +0 -43
  140. package/scss/theme/theme-base/components/messages/_inlinemessage.scss +0 -69
  141. package/scss/theme/theme-base/components/messages/_message.scss +0 -107
  142. package/scss/theme/theme-base/components/messages/_toast.scss +0 -99
  143. package/scss/theme/theme-base/components/misc/_avatar.scss +0 -30
  144. package/scss/theme/theme-base/components/misc/_badge.scss +0 -48
  145. package/scss/theme/theme-base/components/misc/_blockui.scss +0 -0
  146. package/scss/theme/theme-base/components/misc/_chip.scss +0 -42
  147. package/scss/theme/theme-base/components/misc/_inplace.scss +0 -16
  148. package/scss/theme/theme-base/components/misc/_progressbar.scss +0 -17
  149. package/scss/theme/theme-base/components/misc/_scrolltop.scss +0 -25
  150. package/scss/theme/theme-base/components/misc/_skeleton.scss +0 -8
  151. package/scss/theme/theme-base/components/misc/_tag.scss +0 -40
  152. package/scss/theme/theme-base/components/misc/_terminal.scss +0 -12
  153. package/scss/theme/theme-base/components/multimedia/_galleria.scss +0 -155
  154. package/scss/theme/theme-base/components/multimedia/_image.scss +0 -49
  155. package/scss/theme/theme-base/components/overlay/_confirmpopup.scss +0 -70
  156. package/scss/theme/theme-base/components/overlay/_dialog.scss +0 -69
  157. package/scss/theme/theme-base/components/overlay/_overlaypanel.scss +0 -62
  158. package/scss/theme/theme-base/components/overlay/_sidebar.scss +0 -27
  159. package/scss/theme/theme-base/components/overlay/_tooltip.scss +0 -33
  160. package/scss/theme/theme-base/components/panel/_accordion.scss +0 -119
  161. package/scss/theme/theme-base/components/panel/_card.scss +0 -30
  162. package/scss/theme/theme-base/components/panel/_divider.scss +0 -31
  163. package/scss/theme/theme-base/components/panel/_fieldset.scss +0 -47
  164. package/scss/theme/theme-base/components/panel/_panel.scss +0 -63
  165. package/scss/theme/theme-base/components/panel/_scrollpanel.scss +0 -6
  166. package/scss/theme/theme-base/components/panel/_splitter.scss +0 -19
  167. package/scss/theme/theme-base/components/panel/_tabview.scss +0 -82
  168. package/scss/theme/theme-base/components/panel/_toolbar.scss +0 -11
  169. package/scss/theme/theme-base/mng/_mng_mixins.scss +0 -69
  170. package/scss/theme/theme-base/mng/_mng_theme_autocomplete.scss +0 -34
  171. package/scss/theme/theme-base/mng/_mng_theme_button.scss +0 -68
  172. package/scss/theme/theme-base/mng/_mng_theme_datatable.scss +0 -157
  173. package/scss/theme/theme-base/mng/_mng_theme_datepicker.scss +0 -21
  174. package/scss/theme/theme-base/mng/_mng_theme_dropdown.scss +0 -32
  175. package/scss/theme/theme-base/mng/_mng_theme_fileupload.scss +0 -24
  176. package/scss/theme/theme-base/mng/_mng_theme_forms.scss +0 -66
  177. package/scss/theme/theme-base/mng/_mng_theme_image.scss +0 -27
  178. package/scss/theme/theme-base/mng/_mng_theme_input.scss +0 -42
  179. package/scss/theme/theme-base/mng/_mng_theme_menu.scss +0 -5
  180. package/scss/theme/theme-base/mng/_mng_theme_multiselect.scss +0 -20
  181. package/scss/theme/theme-base/mng/_mng_theme_styles.scss +0 -19
  182. package/scss/theme/theme-base/mng/_mng_theme_table.scss +0 -54
  183. package/scss/theme/theme-base/mng/_mng_theme_tableview.scss +0 -41
  184. package/scss/theme/theme-base/mng/_mng_theme_tabview.scss +0 -14
  185. package/scss/theme/theme-base/mng/_mng_theme_tag.scss +0 -11
  186. package/scss/theme/theme-base/mng/_mng_theme_toolbar.scss +0 -5
  187. package/scss/theme/theme-base/mng/_mng_variables.scss +0 -15
  188. package/scss/theme/theme-dark/_extensions.scss +0 -109
  189. package/scss/theme/theme-dark/_variables.scss +0 -941
  190. package/scss/theme/theme-dark/blue/theme.scss +0 -14
  191. package/scss/theme/theme-light/_extensions.scss +0 -109
  192. package/scss/theme/theme-light/_variables.scss +0 -937
  193. package/scss/theme/theme-light/blue/theme.scss +0 -14
  194. /package/scss/layout/mng/{_mng_layout_footer.scss → layout/_mng_layout_footer.scss} +0 -0
  195. /package/scss/layout/mng/{_mng_sidebar_vertical.scss → layout/_mng_sidebar_vertical.scss} +0 -0
@@ -1,26 +1,24 @@
1
- @import 'mng_variables';
2
-
3
1
  .p-dialog {
4
2
  .p-dialog-header {
5
- border-top-right-radius: $dialogBorderRadius;
6
- border-top-left-radius: $dialogBorderRadius;
3
+ border-top-right-radius: var(--p-dialog-border-radius);
4
+ border-top-left-radius: var(--p-dialog-border-radius);
7
5
  }
8
6
 
9
7
  .p-dialog-footer {
10
- border-bottom-right-radius: $dialogBorderRadius;
11
- border-bottom-left-radius: $dialogBorderRadius;
8
+ border-bottom-right-radius: var(--p-dialog-border-radius);
9
+ border-bottom-left-radius: var(--p-dialog-border-radius);
12
10
  }
13
11
 
14
12
  &.mng-dialog {
15
13
  height: 90vh;
16
- width: 60vw;
14
+ width: 90vw;
17
15
 
18
- @include mediaMaxLg() {
16
+ @media (screen(md)) {
19
17
  width: 80vw;
20
18
  }
21
19
 
22
- @include mediaMaxMd() {
23
- width: 90vw;
20
+ @media (screen(lg)) {
21
+ width: 60vw;
24
22
  }
25
23
 
26
24
  &.mng-dialog-xl {
@@ -30,53 +28,53 @@
30
28
 
31
29
  &.mng-dialog-lg {
32
30
  height: 95vh;
33
- width: 80vw;
31
+ width: 90vw;
34
32
 
35
- @include mediaMaxLg() {
33
+ @media (screen(md)) {
36
34
  width: 85vw;
37
35
  }
38
36
 
39
- @include mediaMaxMd() {
40
- width: 90vw;
37
+ @media (screen(lg)) {
38
+ width: 80vw;
41
39
  }
42
40
  }
43
41
 
44
42
  &.mng-dialog-sm {
45
- width: 50vw;
46
- height: 70vh;
43
+ width: 90vw;
44
+ height: 80vh;
47
45
 
48
- @include mediaMaxLg() {
49
- width: 70vw;
50
- height: 80vh;
46
+ @media (screen(sm)) {
47
+ width: 80vw;
51
48
  }
52
49
 
53
- @include mediaMaxMd() {
54
- width: 80vw;
50
+ @media (screen(md)) {
51
+ width: 70vw;
55
52
  }
56
53
 
57
- @include mediaMaxXs() {
58
- width: 90vw;
54
+ @media (screen(lg)) {
55
+ width: 50vw;
56
+ height: 70vh;
59
57
  }
60
58
  }
61
59
 
62
60
  &.mng-dialog-xs {
63
- width: 30vw;
61
+ width: 90vw;
64
62
  height: initial;
65
63
 
66
- @media (max-width: 1500px) {
67
- width: 45vw;
64
+ @media (screen(sm)) {
65
+ width: 70vw;
68
66
  }
69
67
 
70
- @include mediaMaxLg() {
68
+ @media (screen(md)) {
71
69
  width: 60vw;
72
70
  }
73
71
 
74
- @include mediaMaxMd() {
75
- width: 70vw;
72
+ @media (screen(lg)) {
73
+ width: 45vw;
76
74
  }
77
75
 
78
- @include mediaMaxXs() {
79
- width: 90vw;
76
+ @media (screen(2xl)) {
77
+ width: 30vw;
80
78
  }
81
79
  }
82
80
 
@@ -85,15 +83,15 @@
85
83
  height: initial;
86
84
  max-height: 90vh;
87
85
 
88
- @include mediaMinSm() {
86
+ @media (screen(sm)) {
89
87
  width: 90vw;
90
88
  }
91
89
 
92
- @include mediaMinMd() {
90
+ @media (screen(md)) {
93
91
  width: 80vw;
94
92
  }
95
93
 
96
- @include mediaMinLg() {
94
+ @media (screen(lg)) {
97
95
  width: 70vw;
98
96
  }
99
97
  }
@@ -102,8 +100,8 @@
102
100
  &.mng-action-editor-dialog,
103
101
  &.mng-formly-field-table-multiselect-dialog {
104
102
  .p-dialog-content {
105
- border-bottom-left-radius: $dialogBorderRadius;
106
- border-bottom-right-radius: $dialogBorderRadius;
103
+ border-bottom-left-radius: var(--p-dialog-border-radius);
104
+ border-bottom-right-radius: var(--p-dialog-border-radius);
107
105
  }
108
106
  }
109
107
 
@@ -114,12 +112,12 @@
114
112
  }
115
113
 
116
114
  .formly-field-table-multiselect-dialog-form-container {
117
- padding: $mngDialogContentPadding;
115
+ padding: var(--p-dialog-content-padding);
118
116
  overflow: auto;
119
117
  }
120
118
 
121
119
  .mng-formly-field-table-multiselect-dialog-footer {
122
- padding: $mngDialogFooterPadding;
120
+ padding: var(--mng-dialog-footer-padding);
123
121
 
124
122
  button {
125
123
  width: initial;
@@ -134,11 +132,11 @@
134
132
  }
135
133
 
136
134
  .mng-formly-field-table-multiselect-dialog-table {
137
- padding: $mngDialogContentPadding;
135
+ padding: var(--p-dialog-content-padding);
138
136
  }
139
137
 
140
138
  .p-dialog-footer {
141
- padding: $mngDialogFooterPadding;
139
+ padding: var(--mng-dialog-footer-padding);
142
140
 
143
141
  button {
144
142
  margin: 0.15rem 0.15rem;
@@ -153,12 +151,12 @@
153
151
  }
154
152
 
155
153
  .mng-action-editor-form-container {
156
- padding: $mngDialogContentPadding;
154
+ padding: var(--p-dialog-content-padding);
157
155
  overflow-y: auto;
158
156
  }
159
157
 
160
158
  .mng-action-editor-footer-container {
161
- padding: $mngDialogFooterPadding;
159
+ padding: var(--mng-dialog-footer-padding);
162
160
  }
163
161
  }
164
162
  }
@@ -175,25 +173,25 @@
175
173
  &-info {
176
174
  .p-dialog-header,
177
175
  .p-dialog-content {
178
- border-left-color: $infoButtonBg;
176
+ border-left-color: var(--p-toast-info-color);
179
177
  }
180
178
  }
181
179
  &-success {
182
180
  .p-dialog-header,
183
181
  .p-dialog-content {
184
- border-left-color: $successButtonBg;
182
+ border-left-color: var(--p-toast-success-color);
185
183
  }
186
184
  }
187
185
  &-warn {
188
186
  .p-dialog-header,
189
187
  .p-dialog-content {
190
- border-left-color: $warningButtonBg;
188
+ border-left-color: var(--p-toast-warn-color);
191
189
  }
192
190
  }
193
191
  &-error {
194
192
  .p-dialog-header,
195
193
  .p-dialog-content {
196
- border-left-color: $errorColor;
194
+ border-left-color: var(--p-toast-error-color);
197
195
  }
198
196
  }
199
197
  }
@@ -3,16 +3,16 @@
3
3
 
4
4
  .p-toast-message {
5
5
  &.p-toast-message-info {
6
- background: var(--surface-toast);
6
+ background: var(--p-content-background);
7
7
  }
8
8
  &.p-toast-message-success {
9
- background: var(--surface-toast);
9
+ background: var(--p-content-background);
10
10
  }
11
11
  &.p-toast-message-warn {
12
- background: var(--surface-toast);
12
+ background: var(--p-content-background);
13
13
  }
14
14
  &.p-toast-message-error {
15
- background: var(--surface-toast);
15
+ background: var(--p-content-background);
16
16
  }
17
17
 
18
18
  .p-toast-detail {
@@ -0,0 +1,3 @@
1
+ .p-toggleswitch {
2
+ position: relative;
3
+ }
@@ -0,0 +1,22 @@
1
+ :root {
2
+ --mng-dialog-footer-padding: 1.25rem 1.75rem;
3
+ --mng-form-field-xs-font-size: 0.75rem;
4
+ --mng-button-xs-font-size: var(--mng-form-field-xs-font-size);
5
+ --mng-form-field-xl-font-size: 1.25rem;
6
+ --mng-button-xl-font-size: var(--mng-form-field-xl-font-size);
7
+ --mng-form-field-xs-padding-x: 0.5rem;
8
+ --mng-button-xs-padding-x: var(--mng-form-field-xs-padding-x);
9
+ --mng-form-field-xl-padding-x: 1rem;
10
+ --mng-button-xl-padding-x: var(--mng-form-field-xl-padding-x);
11
+ --mng-form-field-xs-padding-y: 0.25rem;
12
+ --mng-button-xs-padding-y: var(--mng-form-field-xs-padding-y);
13
+ --mng-form-field-xl-padding-y: 0.75rem;
14
+ --mng-button-xl-padding-y: var(--mng-form-field-xl-padding-y);
15
+ --mng-button-icon-only-xs-width: 2rem;
16
+ --mng-button-icon-only-sm-width: 2.25rem;
17
+ --mng-button-icon-only-lg-width: 2.75rem;
18
+ --mng-button-icon-only-xl-width: 3rem;
19
+ --mng-action-button-margin-x: 0.15rem;
20
+ --mng-action-button-margin-y: 0.15rem;
21
+ --mng-tag-secondary-outlined-border: var(--p-content-border-color);
22
+ }
@@ -0,0 +1,15 @@
1
+ :root {
2
+ --primary-color: var(--p-primary-color);
3
+ --primary-color-text: var(--p-primary-contrast-color);
4
+ --text-color: var(--p-text-color);
5
+ --text-color-secondary: var(--p-text-muted-color);
6
+ --surface-border: var(--p-content-border-color);
7
+ --surface-card: var(--p-content-background);
8
+ --surface-hover: var(--p-content-hover-background);
9
+ --surface-overlay: var(--p-overlay-popover-background);
10
+ --transition-duration: var(--p-transition-duration);
11
+ --maskbg: var(--p-mask-background);
12
+ --border-radius: var(--p-content-border-radius);
13
+ --layout-section-transition-duration: 0.2s;
14
+ --focus-ring-shadow: var(--p-focus-ring-shadow);
15
+ }
@@ -0,0 +1,10 @@
1
+ :root[class*='app-dark'] {
2
+ --surface-ground: var(--p-surface-950);
3
+ --sidebar-shadow: none;
4
+ --sidebar-border: 1px solid var(--surface-border);
5
+ --card-shadow: none;
6
+ --body-bg: var(--p-surface-950);
7
+ --body-image: url('/assets/images/mng/effect-ondark.svg');
8
+ --root-menu-item-hover-bg: rgba(255, 255, 255, 0.05);
9
+ --exception-pages-image: url('/assets/images/mng/exception-ondark.png');
10
+ }
@@ -0,0 +1,10 @@
1
+ :root {
2
+ --surface-ground: var(--p-surface-100);
3
+ --sidebar-shadow: 0px 4px 50px #d9ddfc;
4
+ --sidebar-border: 1px solid transparent;
5
+ --card-shadow: 0px 4px 30px rgba(221, 224, 255, 0.54);
6
+ --body-bg: var(--p-surface-50);
7
+ --body-image: url('/assets/images/mng/effect-onlight.svg');
8
+ --root-menu-item-hover-bg: rgba(68, 72, 109, 0.07);
9
+ --exception-pages-image: url('/assets/images/mng/pages/exception-onlight.png');
10
+ }
package/version-info.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "@mediusinc/mng-commons-layout",
3
- "version": "6.0.0-rc.5",
3
+ "version": "6.0.0-rc.6",
4
4
  "tag": null,
5
5
  "distance": null,
6
- "hash": "7bc3839",
6
+ "hash": "65c2b24",
7
7
  "dirty": true,
8
8
  "semver": null,
9
9
  "buildTimestamp": null,
10
- "raw": "6.0.0-rc.5-7bc3839-dirty"
10
+ "raw": "6.0.0-rc.6-65c2b24-dirty"
11
11
  }
@@ -1,12 +0,0 @@
1
- // components
2
- export * from './lib/components/footer.component';
3
- export * from './lib/components/breadcrumb.component';
4
- export * from './lib/components/main-layout.component';
5
- export * from './lib/components/menu.component';
6
- export * from './lib/components/menu-item.component';
7
- export * from './lib/components/settings.component';
8
- export * from './lib/components/sidebar.component';
9
- export * from './lib/components/topbar.component';
10
- export * from './lib/components/topbar-user.component';
11
- export * from './lib/components/version.component';
12
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9jb21wb25lbnRzL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxhQUFhO0FBQ2IsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLHVDQUF1QyxDQUFDO0FBQ3RELGNBQWMsd0NBQXdDLENBQUM7QUFDdkQsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLHNDQUFzQyxDQUFDO0FBQ3JELGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMsd0NBQXdDLENBQUM7QUFDdkQsY0FBYyxvQ0FBb0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIGNvbXBvbmVudHNcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZm9vdGVyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2JyZWFkY3J1bWIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbWFpbi1sYXlvdXQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbWVudS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tZW51LWl0ZW0uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvc2V0dGluZ3MuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvc2lkZWJhci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy90b3BiYXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvdG9wYmFyLXVzZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvdmVyc2lvbi5jb21wb25lbnQnO1xuIl19
@@ -1,29 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, computed, inject } from '@angular/core';
2
- import { TranslateModule } from '@ngx-translate/core';
3
- import { CommonsService } from '@mediusinc/mng-commons/core';
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "@ngx-translate/core";
6
- export class BreadcrumbComponent {
7
- constructor() {
8
- this.commons = inject(CommonsService);
9
- this.mappedBreadcrumbs = computed(() => {
10
- const items = this.commons.breadcrumbs();
11
- return items.map(el => this.mapMenuItem(el));
12
- });
13
- }
14
- mapMenuItem(item) {
15
- return {
16
- ...item,
17
- url: item.href,
18
- badgeStyleClass: item.badgeClassName,
19
- styleClass: item.className
20
- };
21
- }
22
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: BreadcrumbComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
23
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.12", type: BreadcrumbComponent, isStandalone: true, selector: "mng-breadcrumb", ngImport: i0, template: "<div class=\"layout-breadcrumb flex align-items-center relative h-3rem\">\n <nav>\n <ol class=\"relative z-2\">\n @for (item of mappedBreadcrumbs(); track item.id; let last = $last) {\n <li>{{ item.label! | translate }}</li>\n @if (!last) {\n <li class=\"layout-breadcrumb-chevron\">/</li>\n }\n }\n </ol>\n </nav>\n</div>\n", dependencies: [{ kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
24
- }
25
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: BreadcrumbComponent, decorators: [{
26
- type: Component,
27
- args: [{ standalone: true, selector: 'mng-breadcrumb', imports: [TranslateModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"layout-breadcrumb flex align-items-center relative h-3rem\">\n <nav>\n <ol class=\"relative z-2\">\n @for (item of mappedBreadcrumbs(); track item.id; let last = $last) {\n <li>{{ item.label! | translate }}</li>\n @if (!last) {\n <li class=\"layout-breadcrumb-chevron\">/</li>\n }\n }\n </ol>\n </nav>\n</div>\n" }]
28
- }] });
29
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlYWRjcnVtYi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9icmVhZGNydW1iLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL2NvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2JyZWFkY3J1bWIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRW5GLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUdwRCxPQUFPLEVBQWtCLGNBQWMsRUFBQyxNQUFNLDZCQUE2QixDQUFDOzs7QUFTNUUsTUFBTSxPQUFPLG1CQUFtQjtJQVBoQztRQVFZLFlBQU8sR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7UUFFbEMsc0JBQWlCLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUNyQyxNQUFNLEtBQUssR0FBc0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUM1RCxPQUFPLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDakQsQ0FBQyxDQUFDLENBQUM7S0FVTjtJQVJXLFdBQVcsQ0FBQyxJQUFxQjtRQUNyQyxPQUFPO1lBQ0gsR0FBRyxJQUFJO1lBQ1AsR0FBRyxFQUFFLElBQUksQ0FBQyxJQUFJO1lBQ2QsZUFBZSxFQUFFLElBQUksQ0FBQyxjQUFjO1lBQ3BDLFVBQVUsRUFBRSxJQUFJLENBQUMsU0FBUztTQUM3QixDQUFDO0lBQ04sQ0FBQzsrR0FmUSxtQkFBbUI7bUdBQW5CLG1CQUFtQiwwRUNkaEMsZ2JBWUEsMkNERmMsZUFBZTs7NEZBSWhCLG1CQUFtQjtrQkFQL0IsU0FBUztpQ0FDTSxJQUFJLFlBQ04sZ0JBQWdCLFdBQ2pCLENBQUMsZUFBZSxDQUFDLG1CQUVULHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGNvbXB1dGVkLCBpbmplY3R9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQge1RyYW5zbGF0ZU1vZHVsZX0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQge01lbnVJdGVtfSBmcm9tICdwcmltZW5nL2FwaSc7XG5cbmltcG9ydCB7Q29tbW9uc01lbnVJdGVtLCBDb21tb25zU2VydmljZX0gZnJvbSAnQG1lZGl1c2luYy9tbmctY29tbW9ucy9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBzZWxlY3RvcjogJ21uZy1icmVhZGNydW1iJyxcbiAgICBpbXBvcnRzOiBbVHJhbnNsYXRlTW9kdWxlXSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vYnJlYWRjcnVtYi5jb21wb25lbnQuaHRtbCcsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgQnJlYWRjcnVtYkNvbXBvbmVudCB7XG4gICAgcHJpdmF0ZSBjb21tb25zID0gaW5qZWN0KENvbW1vbnNTZXJ2aWNlKTtcblxuICAgIHB1YmxpYyBtYXBwZWRCcmVhZGNydW1icyA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICAgICAgY29uc3QgaXRlbXM6IENvbW1vbnNNZW51SXRlbVtdID0gdGhpcy5jb21tb25zLmJyZWFkY3J1bWJzKCk7XG4gICAgICAgIHJldHVybiBpdGVtcy5tYXAoZWwgPT4gdGhpcy5tYXBNZW51SXRlbShlbCkpO1xuICAgIH0pO1xuXG4gICAgcHJpdmF0ZSBtYXBNZW51SXRlbShpdGVtOiBDb21tb25zTWVudUl0ZW0pOiBNZW51SXRlbSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAuLi5pdGVtLFxuICAgICAgICAgICAgdXJsOiBpdGVtLmhyZWYsXG4gICAgICAgICAgICBiYWRnZVN0eWxlQ2xhc3M6IGl0ZW0uYmFkZ2VDbGFzc05hbWUsXG4gICAgICAgICAgICBzdHlsZUNsYXNzOiBpdGVtLmNsYXNzTmFtZVxuICAgICAgICB9O1xuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJsYXlvdXQtYnJlYWRjcnVtYiBmbGV4IGFsaWduLWl0ZW1zLWNlbnRlciByZWxhdGl2ZSBoLTNyZW1cIj5cbiAgICA8bmF2PlxuICAgICAgICA8b2wgY2xhc3M9XCJyZWxhdGl2ZSB6LTJcIj5cbiAgICAgICAgICAgIEBmb3IgKGl0ZW0gb2YgbWFwcGVkQnJlYWRjcnVtYnMoKTsgdHJhY2sgaXRlbS5pZDsgbGV0IGxhc3QgPSAkbGFzdCkge1xuICAgICAgICAgICAgICAgIDxsaT57eyBpdGVtLmxhYmVsISB8IHRyYW5zbGF0ZSB9fTwvbGk+XG4gICAgICAgICAgICAgICAgQGlmICghbGFzdCkge1xuICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9XCJsYXlvdXQtYnJlYWRjcnVtYi1jaGV2cm9uXCI+LzwvbGk+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICA8L29sPlxuICAgIDwvbmF2PlxuPC9kaXY+XG4iXX0=
@@ -1,23 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, inject, signal } from '@angular/core';
2
- import { TranslateModule } from '@ngx-translate/core';
3
- import { COMMONS_LAYOUT_FEATURE_CONFIG_IT, LayoutService } from '@mediusinc/mng-commons-layout';
4
- import { CommonsService, ComponentDirective } from '@mediusinc/mng-commons/core';
5
- import { VersionComponent } from './version.component';
6
- import * as i0 from "@angular/core";
7
- import * as i1 from "@ngx-translate/core";
8
- export class FooterComponent {
9
- constructor() {
10
- this.config = inject(COMMONS_LAYOUT_FEATURE_CONFIG_IT, { optional: true });
11
- this.layout = inject(LayoutService);
12
- this.commons = inject(CommonsService);
13
- this.currentYear = signal(new Date().getFullYear());
14
- this.versionComponent = signal(this.config?.components?.version === false ? undefined : (this.config?.components?.version ?? VersionComponent));
15
- }
16
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: FooterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
17
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.12", type: FooterComponent, isStandalone: true, selector: "mng-footer", ngImport: i0, template: "<div class=\"layout-footer\">\n <div class=\"footer-logo-container\">\n @if (layout.appLogo()) {\n <img id=\"footer-logo\" [src]=\"layout.appLogo()\" alt=\"atlantis-layout\" />\n }\n <span class=\"app-name\">{{ commons.appName() | translate }}</span>\n </div>\n <div class=\"flex flex-column\">\n <div>\n <span class=\"copyright\">&#169; {{ commons.appOwner() | translate }} - {{ currentYear() }}</span>\n </div>\n @if (versionComponent()) {\n <div class=\"version\" [mngComponent]=\"versionComponent()\" [inputs]=\"{version: commons.appVersion()}\" [attachToHost]=\"true\"></div>\n }\n </div>\n</div>\n", dependencies: [{ kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "directive", type: ComponentDirective, selector: "[mngComponent]", inputs: ["mngComponent", "injectionToken", "inputs", "attachToHost", "parentInjector"], outputs: ["instanceCreated"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
18
- }
19
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: FooterComponent, decorators: [{
20
- type: Component,
21
- args: [{ standalone: true, selector: 'mng-footer', imports: [TranslateModule, ComponentDirective], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"layout-footer\">\n <div class=\"footer-logo-container\">\n @if (layout.appLogo()) {\n <img id=\"footer-logo\" [src]=\"layout.appLogo()\" alt=\"atlantis-layout\" />\n }\n <span class=\"app-name\">{{ commons.appName() | translate }}</span>\n </div>\n <div class=\"flex flex-column\">\n <div>\n <span class=\"copyright\">&#169; {{ commons.appOwner() | translate }} - {{ currentYear() }}</span>\n </div>\n @if (versionComponent()) {\n <div class=\"version\" [mngComponent]=\"versionComponent()\" [inputs]=\"{version: commons.appVersion()}\" [attachToHost]=\"true\"></div>\n }\n </div>\n</div>\n" }]
22
- }] });
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9vdGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2NvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2Zvb3Rlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9mb290ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLHVCQUF1QixFQUFFLFNBQVMsRUFBUSxNQUFNLEVBQUUsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRXZGLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUVwRCxPQUFPLEVBQUMsZ0NBQWdDLEVBQUUsYUFBYSxFQUFDLE1BQU0sK0JBQStCLENBQUM7QUFDOUYsT0FBTyxFQUFDLGNBQWMsRUFBRSxrQkFBa0IsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBRS9FLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHFCQUFxQixDQUFDOzs7QUFTckQsTUFBTSxPQUFPLGVBQWU7SUFQNUI7UUFRWSxXQUFNLEdBQUcsTUFBTSxDQUFDLGdDQUFnQyxFQUFFLEVBQUMsUUFBUSxFQUFFLElBQUksRUFBQyxDQUFDLENBQUM7UUFDNUQsV0FBTSxHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUN4QyxZQUFPLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBRWpDLGdCQUFXLEdBQUcsTUFBTSxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztRQUMvQyxxQkFBZ0IsR0FBRyxNQUFNLENBQXdCLElBQUksQ0FBQyxNQUFNLEVBQUUsVUFBVSxFQUFFLE9BQU8sS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLFVBQVUsRUFBRSxPQUFPLElBQUksZ0JBQWdCLENBQUMsQ0FBQyxDQUFDO0tBQzVLOytHQVBZLGVBQWU7bUdBQWYsZUFBZSxzRUNoQjVCLDJyQkFnQkEsMkNESGMsZUFBZSw0RkFBRSxrQkFBa0I7OzRGQUdwQyxlQUFlO2tCQVAzQixTQUFTO2lDQUNNLElBQUksWUFDTixZQUFZLFdBRWIsQ0FBQyxlQUFlLEVBQUUsa0JBQWtCLENBQUMsbUJBQzdCLHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIFR5cGUsIGluamVjdCwgc2lnbmFsfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtUcmFuc2xhdGVNb2R1bGV9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuXG5pbXBvcnQge0NPTU1PTlNfTEFZT1VUX0ZFQVRVUkVfQ09ORklHX0lULCBMYXlvdXRTZXJ2aWNlfSBmcm9tICdAbWVkaXVzaW5jL21uZy1jb21tb25zLWxheW91dCc7XG5pbXBvcnQge0NvbW1vbnNTZXJ2aWNlLCBDb21wb25lbnREaXJlY3RpdmV9IGZyb20gJ0BtZWRpdXNpbmMvbW5nLWNvbW1vbnMvY29yZSc7XG5cbmltcG9ydCB7VmVyc2lvbkNvbXBvbmVudH0gZnJvbSAnLi92ZXJzaW9uLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgc2VsZWN0b3I6ICdtbmctZm9vdGVyJyxcbiAgICB0ZW1wbGF0ZVVybDogJ2Zvb3Rlci5jb21wb25lbnQuaHRtbCcsXG4gICAgaW1wb3J0czogW1RyYW5zbGF0ZU1vZHVsZSwgQ29tcG9uZW50RGlyZWN0aXZlXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBGb290ZXJDb21wb25lbnQge1xuICAgIHByaXZhdGUgY29uZmlnID0gaW5qZWN0KENPTU1PTlNfTEFZT1VUX0ZFQVRVUkVfQ09ORklHX0lULCB7b3B0aW9uYWw6IHRydWV9KTtcbiAgICBwdWJsaWMgcmVhZG9ubHkgbGF5b3V0ID0gaW5qZWN0KExheW91dFNlcnZpY2UpO1xuICAgIHB1YmxpYyBjb21tb25zID0gaW5qZWN0KENvbW1vbnNTZXJ2aWNlKTtcblxuICAgIHB1YmxpYyBjdXJyZW50WWVhciA9IHNpZ25hbChuZXcgRGF0ZSgpLmdldEZ1bGxZZWFyKCkpO1xuICAgIHB1YmxpYyB2ZXJzaW9uQ29tcG9uZW50ID0gc2lnbmFsPFR5cGU8YW55PiB8IHVuZGVmaW5lZD4odGhpcy5jb25maWc/LmNvbXBvbmVudHM/LnZlcnNpb24gPT09IGZhbHNlID8gdW5kZWZpbmVkIDogKHRoaXMuY29uZmlnPy5jb21wb25lbnRzPy52ZXJzaW9uID8/IFZlcnNpb25Db21wb25lbnQpKTtcbn1cbiIsIjxkaXYgY2xhc3M9XCJsYXlvdXQtZm9vdGVyXCI+XG4gICAgPGRpdiBjbGFzcz1cImZvb3Rlci1sb2dvLWNvbnRhaW5lclwiPlxuICAgICAgICBAaWYgKGxheW91dC5hcHBMb2dvKCkpIHtcbiAgICAgICAgICAgIDxpbWcgaWQ9XCJmb290ZXItbG9nb1wiIFtzcmNdPVwibGF5b3V0LmFwcExvZ28oKVwiIGFsdD1cImF0bGFudGlzLWxheW91dFwiIC8+XG4gICAgICAgIH1cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJhcHAtbmFtZVwiPnt7IGNvbW1vbnMuYXBwTmFtZSgpIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sdW1uXCI+XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNvcHlyaWdodFwiPiYjMTY5OyB7eyBjb21tb25zLmFwcE93bmVyKCkgfCB0cmFuc2xhdGUgfX0gLSB7eyBjdXJyZW50WWVhcigpIH19PC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgQGlmICh2ZXJzaW9uQ29tcG9uZW50KCkpIHtcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2ZXJzaW9uXCIgW21uZ0NvbXBvbmVudF09XCJ2ZXJzaW9uQ29tcG9uZW50KClcIiBbaW5wdXRzXT1cInt2ZXJzaW9uOiBjb21tb25zLmFwcFZlcnNpb24oKX1cIiBbYXR0YWNoVG9Ib3N0XT1cInRydWVcIj48L2Rpdj5cbiAgICAgICAgfVxuICAgIDwvZGl2PlxuPC9kaXY+XG4iXX0=
@@ -1,86 +0,0 @@
1
- import { NgClass, NgTemplateOutlet } from '@angular/common';
2
- import { ChangeDetectionStrategy, Component, Renderer2, inject, signal, viewChild } from '@angular/core';
3
- import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
4
- import { RouterModule } from '@angular/router';
5
- import { COMMONS_LAYOUT_FEATURE_CONFIG_IT, LayoutService, MenuService } from '@mediusinc/mng-commons-layout';
6
- import { ComponentDirective, NotificationWrapperComponent } from '@mediusinc/mng-commons/core';
7
- import { BreadcrumbComponent } from './breadcrumb.component';
8
- import { FooterComponent } from './footer.component';
9
- import { TopbarComponent } from './topbar.component';
10
- import * as i0 from "@angular/core";
11
- import * as i1 from "@angular/router";
12
- export class MainLayoutComponent {
13
- constructor() {
14
- // private readonly commonsService = inject(CommonsService);
15
- this.config = inject(COMMONS_LAYOUT_FEATURE_CONFIG_IT, { optional: true });
16
- this.layout = inject(LayoutService);
17
- this.menuService = inject(MenuService);
18
- this.renderer = inject(Renderer2);
19
- this.appTopbar = viewChild('topbarCmp');
20
- this.ripple = signal(this.config?.ripple ?? true);
21
- this.topbarComponent = signal(this.config?.components?.topbar === false ? undefined : (this.config?.components?.topbar ?? TopbarComponent));
22
- this.breadcrumbsComponent = signal(this.config?.components?.breadcrumb === false ? undefined : (this.config?.components?.breadcrumb ?? BreadcrumbComponent));
23
- this.footerComponent = signal(this.config?.components?.footer === false ? undefined : (this.config?.components?.footer ?? FooterComponent));
24
- this.useNotificationWrapper = signal(!this.config?.disableNotificationWrapper);
25
- this.layout.overlayOpen$.pipe(takeUntilDestroyed()).subscribe(() => {
26
- if (!this.menuOutsideClickListener) {
27
- this.menuOutsideClickListener = this.renderer.listen('document', 'click', event => {
28
- const isOutsideClicked = !(this.appTopbar()?.nativeElement.isSameNode(event.target) || this.appTopbar()?.nativeElement.contains(event.target));
29
- if (isOutsideClicked) {
30
- this.hideMenu();
31
- }
32
- });
33
- }
34
- if (this.layout.state().staticMenuMobileActive) {
35
- this.blockBodyScroll();
36
- }
37
- });
38
- }
39
- blockBodyScroll() {
40
- if (document.body.classList) {
41
- document.body.classList.add('blocked-scroll');
42
- }
43
- else {
44
- document.body.className += ' blocked-scroll';
45
- }
46
- }
47
- unblockBodyScroll() {
48
- if (document.body.classList) {
49
- document.body.classList.remove('blocked-scroll');
50
- }
51
- else {
52
- document.body.className = document.body.className.replace(new RegExp('(^|\\b)' + 'blocked-scroll'.split(' ').join('|') + '(\\b|$)', 'gi'), ' ');
53
- }
54
- }
55
- hideMenu() {
56
- this.layout.state.update(state => ({
57
- ...state,
58
- overlayMenuActive: false,
59
- staticMenuMobileActive: false,
60
- menuHoverActive: false
61
- }));
62
- if (this.layout.submenuOverlayKey() !== undefined) {
63
- this.layout.onOverlaySubmenuClose();
64
- }
65
- if (!(this.layout.isSlim() || this.layout.isSlimPlus())) {
66
- this.menuService.reset();
67
- }
68
- if (this.menuOutsideClickListener) {
69
- this.menuOutsideClickListener();
70
- this.menuOutsideClickListener = null;
71
- }
72
- this.unblockBodyScroll();
73
- }
74
- ngOnDestroy() {
75
- if (this.menuOutsideClickListener) {
76
- this.menuOutsideClickListener();
77
- }
78
- }
79
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: MainLayoutComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
80
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.12", type: MainLayoutComponent, isStandalone: true, selector: "mng-main-layout", viewQueries: [{ propertyName: "appTopbar", first: true, predicate: ["topbarCmp"], descendants: true, isSignal: true }], ngImport: i0, template: "@if (useNotificationWrapper()) {\n <mng-notification-wrapper>\n <ng-template [ngTemplateOutlet]=\"content\"></ng-template>\n </mng-notification-wrapper>\n} @else {\n <ng-template [ngTemplateOutlet]=\"content\"></ng-template>\n}\n\n<ng-template #content>\n <div\n class=\"layout-container\"\n [ngClass]=\"{\n 'layout-light': layout.colorScheme() === 'light',\n 'layout-dark': layout.colorScheme() === 'dark',\n 'layout-overlay': layout.menuMode() === 'overlay',\n 'layout-static': layout.menuMode() === 'static',\n 'layout-reveal': layout.menuMode() === 'reveal',\n 'layout-drawer': layout.menuMode() === 'drawer',\n 'layout-slim': layout.menuMode() === 'slim',\n 'layout-slim-plus': layout.menuMode() === 'slim-plus',\n 'layout-static-inactive': layout.state().staticMenuDesktopInactive && layout.menuMode() === 'static',\n 'layout-overlay-active': layout.state().overlayMenuActive,\n 'layout-mobile-active': layout.state().staticMenuMobileActive,\n 'p-ripple-disabled': !ripple(),\n 'layout-sidebar-active': layout.state().sidebarActive,\n 'layout-sidebar-anchored': layout.state().anchored\n }\">\n <div class=\"layout-content-wrapper\">\n @if (topbarComponent()) {\n <div #topbarCmp class=\"layout-topbar-wrapper\" [mngComponent]=\"topbarComponent()\" [attachToHost]=\"true\"></div>\n }\n @if (breadcrumbsComponent()) {\n <div class=\"content-breadcrumb\">\n <div [mngComponent]=\"breadcrumbsComponent()\" [attachToHost]=\"true\"></div>\n </div>\n }\n <div class=\"layout-content\">\n <router-outlet></router-outlet>\n </div>\n <div class=\"layout-mask\"></div>\n @if (footerComponent()) {\n <div [mngComponent]=\"footerComponent()\" [attachToHost]=\"true\"></div>\n }\n </div>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i1.RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "directive", type: ComponentDirective, selector: "[mngComponent]", inputs: ["mngComponent", "injectionToken", "inputs", "attachToHost", "parentInjector"], outputs: ["instanceCreated"] }, { kind: "component", type: NotificationWrapperComponent, selector: "mng-notification-wrapper" }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
81
- }
82
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: MainLayoutComponent, decorators: [{
83
- type: Component,
84
- args: [{ standalone: true, selector: 'mng-main-layout', imports: [NgClass, RouterModule, ComponentDirective, NotificationWrapperComponent, NgTemplateOutlet], changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (useNotificationWrapper()) {\n <mng-notification-wrapper>\n <ng-template [ngTemplateOutlet]=\"content\"></ng-template>\n </mng-notification-wrapper>\n} @else {\n <ng-template [ngTemplateOutlet]=\"content\"></ng-template>\n}\n\n<ng-template #content>\n <div\n class=\"layout-container\"\n [ngClass]=\"{\n 'layout-light': layout.colorScheme() === 'light',\n 'layout-dark': layout.colorScheme() === 'dark',\n 'layout-overlay': layout.menuMode() === 'overlay',\n 'layout-static': layout.menuMode() === 'static',\n 'layout-reveal': layout.menuMode() === 'reveal',\n 'layout-drawer': layout.menuMode() === 'drawer',\n 'layout-slim': layout.menuMode() === 'slim',\n 'layout-slim-plus': layout.menuMode() === 'slim-plus',\n 'layout-static-inactive': layout.state().staticMenuDesktopInactive && layout.menuMode() === 'static',\n 'layout-overlay-active': layout.state().overlayMenuActive,\n 'layout-mobile-active': layout.state().staticMenuMobileActive,\n 'p-ripple-disabled': !ripple(),\n 'layout-sidebar-active': layout.state().sidebarActive,\n 'layout-sidebar-anchored': layout.state().anchored\n }\">\n <div class=\"layout-content-wrapper\">\n @if (topbarComponent()) {\n <div #topbarCmp class=\"layout-topbar-wrapper\" [mngComponent]=\"topbarComponent()\" [attachToHost]=\"true\"></div>\n }\n @if (breadcrumbsComponent()) {\n <div class=\"content-breadcrumb\">\n <div [mngComponent]=\"breadcrumbsComponent()\" [attachToHost]=\"true\"></div>\n </div>\n }\n <div class=\"layout-content\">\n <router-outlet></router-outlet>\n </div>\n <div class=\"layout-mask\"></div>\n @if (footerComponent()) {\n <div [mngComponent]=\"footerComponent()\" [attachToHost]=\"true\"></div>\n }\n </div>\n </div>\n</ng-template>\n" }]
85
- }], ctorParameters: () => [] });
86
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi1sYXlvdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvbWFpbi1sYXlvdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvbWFpbi1sYXlvdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzFELE9BQU8sRUFBQyx1QkFBdUIsRUFBRSxTQUFTLEVBQXlCLFNBQVMsRUFBUSxNQUFNLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNwSSxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUM5RCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFFN0MsT0FBTyxFQUFDLGdDQUFnQyxFQUFFLGFBQWEsRUFBRSxXQUFXLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQztBQUMzRyxPQUFPLEVBQUMsa0JBQWtCLEVBQUUsNEJBQTRCLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQztBQUU3RixPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUMzRCxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFDbkQsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLG9CQUFvQixDQUFDOzs7QUFTbkQsTUFBTSxPQUFPLG1CQUFtQjtJQW9CNUI7UUFuQkEsNERBQTREO1FBQzNDLFdBQU0sR0FBRyxNQUFNLENBQUMsZ0NBQWdDLEVBQUUsRUFBQyxRQUFRLEVBQUUsSUFBSSxFQUFDLENBQUMsQ0FBQztRQUNyRSxXQUFNLEdBQUcsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQzlCLGdC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TCxDQUFDOytHQTlFUSxtQkFBbUI7bUdBQW5CLG1CQUFtQixtTUNuQmhDLGlrRUE4Q0EsNENEL0JjLE9BQU8sbUZBQUUsWUFBWSx5TUFBRSxrQkFBa0IsaUxBQUUsNEJBQTRCLHFFQUFFLGdCQUFnQjs7NEZBSTFGLG1CQUFtQjtrQkFQL0IsU0FBUztpQ0FDTSxJQUFJLFlBQ04saUJBQWlCLFdBQ2xCLENBQUMsT0FBTyxFQUFFLFlBQVksRUFBRSxrQkFBa0IsRUFBRSw0QkFBNEIsRUFBRSxnQkFBZ0IsQ0FBQyxtQkFFbkYsdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TmdDbGFzcywgTmdUZW1wbGF0ZU91dGxldH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRWxlbWVudFJlZiwgT25EZXN0cm95LCBSZW5kZXJlcjIsIFR5cGUsIGluamVjdCwgc2lnbmFsLCB2aWV3Q2hpbGR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHt0YWtlVW50aWxEZXN0cm95ZWR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7Um91dGVyTW9kdWxlfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5pbXBvcnQge0NPTU1PTlNfTEFZT1VUX0ZFQVRVUkVfQ09ORklHX0lULCBMYXlvdXRTZXJ2aWNlLCBNZW51U2VydmljZX0gZnJvbSAnQG1lZGl1c2luYy9tbmctY29tbW9ucy1sYXlvdXQnO1xuaW1wb3J0IHtDb21wb25lbnREaXJlY3RpdmUsIE5vdGlmaWNhdGlvbldyYXBwZXJDb21wb25lbnR9IGZyb20gJ0BtZWRpdXNpbmMvbW5nLWNvbW1vbnMvY29yZSc7XG5cbmltcG9ydCB7QnJlYWRjcnVtYkNvbXBvbmVudH0gZnJvbSAnLi9icmVhZGNydW1iLmNvbXBvbmVudCc7XG5pbXBvcnQge0Zvb3RlckNvbXBvbmVudH0gZnJvbSAnLi9mb290ZXIuY29tcG9uZW50JztcbmltcG9ydCB7VG9wYmFyQ29tcG9uZW50fSBmcm9tICcuL3RvcGJhci5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiAnbW5nLW1haW4tbGF5b3V0JyxcbiAgICBpbXBvcnRzOiBbTmdDbGFzcywgUm91dGVyTW9kdWxlLCBDb21wb25lbnREaXJlY3RpdmUsIE5vdGlmaWNhdGlvbldyYXBwZXJDb21wb25lbnQsIE5nVGVtcGxhdGVPdXRsZXRdLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9tYWluLWxheW91dC5jb21wb25lbnQuaHRtbCcsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgTWFpbkxheW91dENvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gICAgLy8gcHJpdmF0ZSByZWFkb25seSBjb21tb25zU2VydmljZSA9IGluamVjdChDb21tb25zU2VydmljZSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBjb25maWcgPSBpbmplY3QoQ09NTU9OU19MQVlPVVRfRkVBVFVSRV9DT05GSUdfSVQsIHtvcHRpb25hbDogdHJ1ZX0pO1xuICAgIHB1YmxpYyByZWFkb25seSBsYXlvdXQgPSBpbmplY3QoTGF5b3V0U2VydmljZSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBtZW51U2VydmljZSA9IGluamVjdChNZW51U2VydmljZSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSByZW5kZXJlciA9IGluamVjdChSZW5kZXJlcjIpO1xuXG4gICAgcHJpdmF0ZSBhcHBUb3BiYXIgPSB2aWV3Q2hpbGQ8RWxlbWVudFJlZj4oJ3RvcGJhckNtcCcpO1xuXG4gICAgcHVibGljIHJlYWRvbmx5IHJpcHBsZSA9IHNpZ25hbCh0aGlzLmNvbmZpZz8ucmlwcGxlID8/IHRydWUpO1xuXG4gICAgcHVibGljIHRvcGJhckNvbXBvbmVudCA9IHNpZ25hbDxUeXBlPGFueT4gfCB1bmRlZmluZWQ+KHRoaXMuY29uZmlnPy5jb21wb25lbnRzPy50b3BiYXIgPT09IGZhbHNlID8gdW5kZWZpbmVkIDogKHRoaXMuY29uZmlnPy5jb21wb25lbnRzPy50b3BiYXIgPz8gVG9wYmFyQ29tcG9uZW50KSk7XG4gICAgcHVibGljIGJyZWFkY3J1bWJzQ29tcG9uZW50ID0gc2lnbmFsPFR5cGU8YW55PiB8IHVuZGVmaW5lZD4oXG4gICAgICAgIHRoaXMuY29uZmlnPy5jb21wb25lbnRzPy5icmVhZGNydW1iID09PSBmYWxzZSA/IHVuZGVmaW5lZCA6ICh0aGlzLmNvbmZpZz8uY29tcG9uZW50cz8uYnJlYWRjcnVtYiA/PyBCcmVhZGNydW1iQ29tcG9uZW50KVxuICAgICk7XG4gICAgcHVibGljIGZvb3RlckNvbXBvbmVudCA9IHNpZ25hbDxUeXBlPGFueT4gfCB1bmRlZmluZWQ+KHRoaXMuY29uZmlnPy5jb21wb25lbnRzPy5mb290ZXIgPT09IGZhbHNlID8gdW5kZWZpbmVkIDogKHRoaXMuY29uZmlnPy5jb21wb25lbnRzPy5mb290ZXIgPz8gRm9vdGVyQ29tcG9uZW50KSk7XG5cbiAgICBwdWJsaWMgdXNlTm90aWZpY2F0aW9uV3JhcHBlciA9IHNpZ25hbCghdGhpcy5jb25maWc/LmRpc2FibGVOb3RpZmljYXRpb25XcmFwcGVyKTtcbiAgICBwcml2YXRlIG1lbnVPdXRzaWRlQ2xpY2tMaXN0ZW5lcjogYW55O1xuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMubGF5b3V0Lm92ZXJsYXlPcGVuJC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCgpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgaWYgKCF0aGlzLm1lbnVPdXRzaWRlQ2xpY2tMaXN0ZW5lcikge1xuICAgICAgICAgICAgICAgIHRoaXMubWVudU91dHNpZGVDbGlja0xpc3RlbmVyID0gdGhpcy5yZW5kZXJlci5saXN0ZW4oJ2RvY3VtZW50JywgJ2NsaWNrJywgZXZlbnQgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBpc091dHNpZGVDbGlja2VkID0gISh0aGlzLmFwcFRvcGJhcigpPy5uYXRpdmVFbGVtZW50LmlzU2FtZU5vZGUoZXZlbnQudGFyZ2V0KSB8fCB0aGlzLmFwcFRvcGJhcigpPy5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKGV2ZW50LnRhcmdldCkpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoaXNPdXRzaWRlQ2xpY2tlZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5oaWRlTWVudSgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodGhpcy5sYXlvdXQuc3RhdGUoKS5zdGF0aWNNZW51TW9iaWxlQWN0aXZlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5ibG9ja0JvZHlTY3JvbGwoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgYmxvY2tCb2R5U2Nyb2xsKCk6IHZvaWQge1xuICAgICAgICBpZiAoZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QpIHtcbiAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LmFkZCgnYmxvY2tlZC1zY3JvbGwnKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuY2xhc3NOYW1lICs9ICcgYmxvY2tlZC1zY3JvbGwnO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdW5ibG9ja0JvZHlTY3JvbGwoKTogdm9pZCB7XG4gICAgICAgIGlmIChkb2N1bWVudC5ib2R5LmNsYXNzTGlzdCkge1xuICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QucmVtb3ZlKCdibG9ja2VkLXNjcm9sbCcpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5jbGFzc05hbWUgPSBkb2N1bWVudC5ib2R5LmNsYXNzTmFtZS5yZXBsYWNlKG5ldyBSZWdFeHAoJyhefFxcXFxiKScgKyAnYmxvY2tlZC1zY3JvbGwnLnNwbGl0KCcgJykuam9pbignfCcpICsgJyhcXFxcYnwkKScsICdnaScpLCAnICcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaGlkZU1lbnUoKSB7XG4gICAgICAgIHRoaXMubGF5b3V0LnN0YXRlLnVwZGF0ZShzdGF0ZSA9PiAoe1xuICAgICAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgICAgICBvdmVybGF5TWVudUFjdGl2ZTogZmFsc2UsXG4gICAgICAgICAgICBzdGF0aWNNZW51TW9iaWxlQWN0aXZlOiBmYWxzZSxcbiAgICAgICAgICAgIG1lbnVIb3ZlckFjdGl2ZTogZmFsc2VcbiAgICAgICAgfSkpO1xuXG4gICAgICAgIGlmICh0aGlzLmxheW91dC5zdWJtZW51T3ZlcmxheUtleSgpICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMubGF5b3V0Lm9uT3ZlcmxheVN1Ym1lbnVDbG9zZSgpO1xuICAgICAgICB9XG4gICAgICAgIGlmICghKHRoaXMubGF5b3V0LmlzU2xpbSgpIHx8IHRoaXMubGF5b3V0LmlzU2xpbVBsdXMoKSkpIHtcbiAgICAgICAgICAgIHRoaXMubWVudVNlcnZpY2UucmVzZXQoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLm1lbnVPdXRzaWRlQ2xpY2tMaXN0ZW5lcikge1xuICAgICAgICAgICAgdGhpcy5tZW51T3V0c2lkZUNsaWNrTGlzdGVuZXIoKTtcbiAgICAgICAgICAgIHRoaXMubWVudU91dHNpZGVDbGlja0xpc3RlbmVyID0gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnVuYmxvY2tCb2R5U2Nyb2xsKCk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIGlmICh0aGlzLm1lbnVPdXRzaWRlQ2xpY2tMaXN0ZW5lcikge1xuICAgICAgICAgICAgdGhpcy5tZW51T3V0c2lkZUNsaWNrTGlzdGVuZXIoKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIkBpZiAodXNlTm90aWZpY2F0aW9uV3JhcHBlcigpKSB7XG4gICAgPG1uZy1ub3RpZmljYXRpb24td3JhcHBlcj5cbiAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImNvbnRlbnRcIj48L25nLXRlbXBsYXRlPlxuICAgIDwvbW5nLW5vdGlmaWNhdGlvbi13cmFwcGVyPlxufSBAZWxzZSB7XG4gICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImNvbnRlbnRcIj48L25nLXRlbXBsYXRlPlxufVxuXG48bmctdGVtcGxhdGUgI2NvbnRlbnQ+XG4gICAgPGRpdlxuICAgICAgICBjbGFzcz1cImxheW91dC1jb250YWluZXJcIlxuICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAnbGF5b3V0LWxpZ2h0JzogbGF5b3V0LmNvbG9yU2NoZW1lKCkgPT09ICdsaWdodCcsXG4gICAgICAgICAgICAnbGF5b3V0LWRhcmsnOiBsYXlvdXQuY29sb3JTY2hlbWUoKSA9PT0gJ2RhcmsnLFxuICAgICAgICAgICAgJ2xheW91dC1vdmVybGF5JzogbGF5b3V0Lm1lbnVNb2RlKCkgPT09ICdvdmVybGF5JyxcbiAgICAgICAgICAgICdsYXlvdXQtc3RhdGljJzogbGF5b3V0Lm1lbnVNb2RlKCkgPT09ICdzdGF0aWMnLFxuICAgICAgICAgICAgJ2xheW91dC1yZXZlYWwnOiBsYXlvdXQubWVudU1vZGUoKSA9PT0gJ3JldmVhbCcsXG4gICAgICAgICAgICAnbGF5b3V0LWRyYXdlcic6IGxheW91dC5tZW51TW9kZSgpID09PSAnZHJhd2VyJyxcbiAgICAgICAgICAgICdsYXlvdXQtc2xpbSc6IGxheW91dC5tZW51TW9kZSgpID09PSAnc2xpbScsXG4gICAgICAgICAgICAnbGF5b3V0LXNsaW0tcGx1cyc6IGxheW91dC5tZW51TW9kZSgpID09PSAnc2xpbS1wbHVzJyxcbiAgICAgICAgICAgICdsYXlvdXQtc3RhdGljLWluYWN0aXZlJzogbGF5b3V0LnN0YXRlKCkuc3RhdGljTWVudURlc2t0b3BJbmFjdGl2ZSAmJiBsYXlvdXQubWVudU1vZGUoKSA9PT0gJ3N0YXRpYycsXG4gICAgICAgICAgICAnbGF5b3V0LW92ZXJsYXktYWN0aXZlJzogbGF5b3V0LnN0YXRlKCkub3ZlcmxheU1lbnVBY3RpdmUsXG4gICAgICAgICAgICAnbGF5b3V0LW1vYmlsZS1hY3RpdmUnOiBsYXlvdXQuc3RhdGUoKS5zdGF0aWNNZW51TW9iaWxlQWN0aXZlLFxuICAgICAgICAgICAgJ3AtcmlwcGxlLWRpc2FibGVkJzogIXJpcHBsZSgpLFxuICAgICAgICAgICAgJ2xheW91dC1zaWRlYmFyLWFjdGl2ZSc6IGxheW91dC5zdGF0ZSgpLnNpZGViYXJBY3RpdmUsXG4gICAgICAgICAgICAnbGF5b3V0LXNpZGViYXItYW5jaG9yZWQnOiBsYXlvdXQuc3RhdGUoKS5hbmNob3JlZFxuICAgICAgICB9XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJsYXlvdXQtY29udGVudC13cmFwcGVyXCI+XG4gICAgICAgICAgICBAaWYgKHRvcGJhckNvbXBvbmVudCgpKSB7XG4gICAgICAgICAgICAgICAgPGRpdiAjdG9wYmFyQ21wIGNsYXNzPVwibGF5b3V0LXRvcGJhci13cmFwcGVyXCIgW21uZ0NvbXBvbmVudF09XCJ0b3BiYXJDb21wb25lbnQoKVwiIFthdHRhY2hUb0hvc3RdPVwidHJ1ZVwiPjwvZGl2PlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGlmIChicmVhZGNydW1ic0NvbXBvbmVudCgpKSB7XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRlbnQtYnJlYWRjcnVtYlwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IFttbmdDb21wb25lbnRdPVwiYnJlYWRjcnVtYnNDb21wb25lbnQoKVwiIFthdHRhY2hUb0hvc3RdPVwidHJ1ZVwiPjwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxheW91dC1jb250ZW50XCI+XG4gICAgICAgICAgICAgICAgPHJvdXRlci1vdXRsZXQ+PC9yb3V0ZXItb3V0bGV0PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGF5b3V0LW1hc2tcIj48L2Rpdj5cbiAgICAgICAgICAgIEBpZiAoZm9vdGVyQ29tcG9uZW50KCkpIHtcbiAgICAgICAgICAgICAgICA8ZGl2IFttbmdDb21wb25lbnRdPVwiZm9vdGVyQ29tcG9uZW50KClcIiBbYXR0YWNoVG9Ib3N0XT1cInRydWVcIj48L2Rpdj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19