aril 0.0.6 → 0.0.7

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 (129) hide show
  1. package/aril-0.0.7.tgz +0 -0
  2. package/esm2022/http/lib/enums.mjs +2 -1
  3. package/esm2022/http/lib/interfaces.mjs +1 -1
  4. package/esm2022/http/src/httpClient.mjs +1 -1
  5. package/esm2022/http/src/serviceBase.mjs +5 -5
  6. package/esm2022/http/src/serviceStateMethods.mjs +5 -2
  7. package/esm2022/theme/layout/app/breadcrumb/app.breadcrumb.component.mjs +41 -0
  8. package/esm2022/theme/layout/app/config/app.config.component.mjs +134 -0
  9. package/esm2022/theme/layout/app/layout/app.layout.component.mjs +131 -0
  10. package/esm2022/theme/layout/app/menu/app.menu.component.mjs +399 -0
  11. package/esm2022/theme/layout/app/profileSidebar/app.profilesidebar.component.mjs +25 -0
  12. package/esm2022/theme/layout/app/sidebar/app.sidebar.component.mjs +41 -0
  13. package/esm2022/theme/layout/app/topbar/app.topbar.component.mjs +29 -0
  14. package/esm2022/theme/layout/aril-theme-layout.mjs +5 -0
  15. package/esm2022/theme/layout/index.mjs +2 -0
  16. package/esm2022/theme/layout/service/app.layout.service.mjs +132 -0
  17. package/esm2022/theme/layout/service/app.menu.service.mjs +27 -0
  18. package/esm2022/theme/layout/service/menuchangeevent.mjs +2 -0
  19. package/esm2022/ui/badge/src/badge.component.mjs +1 -1
  20. package/esm2022/ui/button/src/button.component.mjs +1 -1
  21. package/esm2022/ui/button/src/split-button.component.mjs +1 -1
  22. package/esm2022/ui/calendar/src/calendar.component.mjs +1 -1
  23. package/esm2022/ui/checkbox/src/check-box.component.mjs +3 -3
  24. package/esm2022/ui/checkbox/src/tri-state-checkbox.component.mjs +3 -3
  25. package/esm2022/ui/field/src/field.component.mjs +1 -1
  26. package/esm2022/ui/fileUpload/src/file-upload.component.mjs +1 -1
  27. package/esm2022/ui/form/index.mjs +20 -13
  28. package/esm2022/ui/form/src/form-submit-button.component.mjs +4 -3
  29. package/esm2022/ui/form/src/form.component.mjs +3 -3
  30. package/esm2022/ui/lib/src/form/form-error-message.component.mjs +1 -1
  31. package/esm2022/ui/lib/src/form/form-error-message.directive.mjs +1 -1
  32. package/esm2022/ui/lib/src/input/baseInput.mjs +1 -1
  33. package/esm2022/ui/lib/src/input/common-input-validators.service.mjs +1 -1
  34. package/esm2022/ui/lib/src/input/dx-input-error-message.pipe.mjs +1 -1
  35. package/esm2022/ui/mask/src/mask.component.mjs +3 -3
  36. package/esm2022/ui/number/src/number.component.mjs +2 -2
  37. package/esm2022/ui/overlayPanel/src/overlay-panel.component.mjs +1 -1
  38. package/esm2022/ui/panel/src/panel.component.mjs +2 -2
  39. package/esm2022/ui/password/src/password.component.mjs +1 -1
  40. package/esm2022/ui/radioButton/src/radio-button.component.mjs +1 -1
  41. package/esm2022/ui/selectBox/src/select-box.component.mjs +1 -1
  42. package/esm2022/ui/switch/src/switch.component.mjs +1 -1
  43. package/esm2022/ui/table/index.mjs +26 -17
  44. package/esm2022/ui/table/src/table-column.component.mjs +6 -4
  45. package/esm2022/ui/table/src/table.component.mjs +24 -42
  46. package/esm2022/ui/tagBox/src/tag-box.component.mjs +1 -1
  47. package/esm2022/ui/text/src/text.component.mjs +1 -1
  48. package/esm2022/ui/textArea/src/text-area.component.mjs +1 -1
  49. package/esm2022/ui/tree/src/tree.component.mjs +29 -45
  50. package/esm2022/ui/treeTable/src/tree-table.component.mjs +39 -43
  51. package/esm2022/ui/value/src/value.component.mjs +3 -3
  52. package/fesm2022/aril-http.mjs +7 -4
  53. package/fesm2022/aril-http.mjs.map +1 -1
  54. package/fesm2022/aril-theme-layout.mjs +918 -0
  55. package/fesm2022/aril-theme-layout.mjs.map +1 -0
  56. package/fesm2022/aril-ui-badge.mjs.map +1 -1
  57. package/fesm2022/aril-ui-button.mjs.map +1 -1
  58. package/fesm2022/aril-ui-calendar.mjs.map +1 -1
  59. package/fesm2022/aril-ui-checkbox.mjs +4 -4
  60. package/fesm2022/aril-ui-checkbox.mjs.map +1 -1
  61. package/fesm2022/aril-ui-field.mjs.map +1 -1
  62. package/fesm2022/aril-ui-fileUpload.mjs.map +1 -1
  63. package/fesm2022/aril-ui-form.mjs +22 -19
  64. package/fesm2022/aril-ui-form.mjs.map +1 -1
  65. package/fesm2022/aril-ui-lib.mjs.map +1 -1
  66. package/fesm2022/aril-ui-mask.mjs +3 -3
  67. package/fesm2022/aril-ui-mask.mjs.map +1 -1
  68. package/fesm2022/aril-ui-number.mjs +2 -2
  69. package/fesm2022/aril-ui-number.mjs.map +1 -1
  70. package/fesm2022/aril-ui-overlayPanel.mjs.map +1 -1
  71. package/fesm2022/aril-ui-panel.mjs.map +1 -1
  72. package/fesm2022/aril-ui-password.mjs.map +1 -1
  73. package/fesm2022/aril-ui-radioButton.mjs.map +1 -1
  74. package/fesm2022/aril-ui-selectBox.mjs.map +1 -1
  75. package/fesm2022/aril-ui-switch.mjs.map +1 -1
  76. package/fesm2022/aril-ui-table.mjs +45 -57
  77. package/fesm2022/aril-ui-table.mjs.map +1 -1
  78. package/fesm2022/aril-ui-tagBox.mjs.map +1 -1
  79. package/fesm2022/aril-ui-text.mjs.map +1 -1
  80. package/fesm2022/aril-ui-textArea.mjs.map +1 -1
  81. package/fesm2022/aril-ui-tree.mjs +28 -44
  82. package/fesm2022/aril-ui-tree.mjs.map +1 -1
  83. package/fesm2022/aril-ui-treeTable.mjs +38 -42
  84. package/fesm2022/aril-ui-treeTable.mjs.map +1 -1
  85. package/fesm2022/aril-ui-value.mjs +2 -2
  86. package/fesm2022/aril-ui-value.mjs.map +1 -1
  87. package/http/lib/enums.d.ts +1 -0
  88. package/http/lib/interfaces.d.ts +2 -0
  89. package/http/src/serviceStateMethods.d.ts +2 -1
  90. package/package.json +7 -1
  91. package/theme/layout/app/breadcrumb/app.breadcrumb.component.d.ts +16 -0
  92. package/theme/layout/app/breadcrumb/app.breadcrumb.component.html +10 -0
  93. package/theme/layout/app/breadcrumb/app.breadcrumb.component.ts +52 -0
  94. package/theme/layout/app/config/app.config.component.d.ts +36 -0
  95. package/theme/layout/app/config/app.config.component.html +191 -0
  96. package/theme/layout/app/config/app.config.component.ts +152 -0
  97. package/theme/layout/app/layout/app.layout.component.d.ts +51 -0
  98. package/theme/layout/app/layout/app.layout.component.html +13 -0
  99. package/theme/layout/app/layout/app.layout.component.ts +183 -0
  100. package/theme/layout/app/menu/app.menu.component.d.ts +44 -0
  101. package/theme/layout/app/menu/app.menu.component.html +9 -0
  102. package/theme/layout/app/menu/app.menu.component.ts +317 -0
  103. package/theme/layout/app/profileSidebar/app.profilesidebar.component.d.ts +10 -0
  104. package/theme/layout/app/profileSidebar/app.profilesidebar.component.html +165 -0
  105. package/theme/layout/app/profileSidebar/app.profilesidebar.component.ts +25 -0
  106. package/theme/layout/app/sidebar/app.sidebar.component.d.ts +15 -0
  107. package/theme/layout/app/sidebar/app.sidebar.component.html +67 -0
  108. package/theme/layout/app/sidebar/app.sidebar.component.ts +40 -0
  109. package/theme/layout/app/topbar/app.topbar.component.d.ts +13 -0
  110. package/theme/layout/app/topbar/app.topbar.component.html +41 -0
  111. package/theme/layout/app/topbar/app.topbar.component.ts +29 -0
  112. package/theme/layout/index.d.ts +1 -0
  113. package/theme/layout/index.ts +1 -0
  114. package/theme/layout/ng-package.json +6 -0
  115. package/theme/layout/service/app.layout.service.d.ts +51 -0
  116. package/theme/layout/service/app.layout.service.ts +197 -0
  117. package/theme/layout/service/app.menu.service.d.ts +14 -0
  118. package/theme/layout/service/app.menu.service.ts +28 -0
  119. package/theme/layout/service/menuchangeevent.d.ts +4 -0
  120. package/theme/layout/service/menuchangeevent.ts +4 -0
  121. package/ui/calendar/src/calendar.component.d.ts +1 -1
  122. package/ui/form/index.d.ts +9 -0
  123. package/ui/form/src/form-submit-button.component.d.ts +1 -1
  124. package/ui/form/src/form.component.d.ts +1 -1
  125. package/ui/table/index.d.ts +14 -0
  126. package/ui/table/src/table-column.component.d.ts +5 -4
  127. package/ui/table/src/table.component.d.ts +7 -15
  128. package/ui/tree/src/tree.component.d.ts +13 -18
  129. package/ui/treeTable/src/tree-table.component.d.ts +14 -18
package/aril-0.0.7.tgz ADDED
Binary file
@@ -2,6 +2,7 @@ export var HTTPMethods;
2
2
  (function (HTTPMethods) {
3
3
  HTTPMethods["GET"] = "GET";
4
4
  HTTPMethods["POST"] = "POST";
5
+ HTTPMethods["PUT"] = "PUT";
5
6
  HTTPMethods["DELETE"] = "DELETE";
6
7
  })(HTTPMethods || (HTTPMethods = {}));
7
8
  export var APIs;
@@ -18,4 +19,4 @@ export var ProxyTypes;
18
19
  ProxyTypes[ProxyTypes["ServerSide"] = 1] = "ServerSide";
19
20
  ProxyTypes[ProxyTypes["ClientSide"] = 2] = "ClientSide";
20
21
  })(ProxyTypes || (ProxyTypes = {}));
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW51bXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9hcmlsL2h0dHAvbGliL2VudW1zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBTixJQUFZLFdBSVg7QUFKRCxXQUFZLFdBQVc7SUFDckIsMEJBQVcsQ0FBQTtJQUNYLDRCQUFhLENBQUE7SUFDYixnQ0FBaUIsQ0FBQTtBQUNuQixDQUFDLEVBSlcsV0FBVyxLQUFYLFdBQVcsUUFJdEI7QUFFRCxNQUFNLENBQU4sSUFBWSxJQU1YO0FBTkQsV0FBWSxJQUFJO0lBQ2QsbUJBQVcsQ0FBQTtJQUNYLG1CQUFXLENBQUE7SUFDWCwyQkFBbUIsQ0FBQTtJQUNuQiwyQkFBbUIsQ0FBQTtJQUNuQixxQkFBYSxDQUFBO0FBQ2YsQ0FBQyxFQU5XLElBQUksS0FBSixJQUFJLFFBTWY7QUFFRCxNQUFNLENBQU4sSUFBWSxVQUlYO0FBSkQsV0FBWSxVQUFVO0lBQ3BCLCtDQUFNLENBQUE7SUFDTix1REFBVSxDQUFBO0lBQ1YsdURBQVUsQ0FBQTtBQUNaLENBQUMsRUFKVyxVQUFVLEtBQVYsVUFBVSxRQUlyQiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBlbnVtIEhUVFBNZXRob2RzIHtcclxuICBHRVQgPSBcIkdFVFwiLFxyXG4gIFBPU1QgPSBcIlBPU1RcIixcclxuICBERUxFVEUgPSBcIkRFTEVURVwiXHJcbn1cclxuXHJcbmV4cG9ydCBlbnVtIEFQSXMge1xyXG4gIGNybSA9IFwiY3JtXCIsXHJcbiAgd2RtID0gXCJ3ZG1cIixcclxuICBiaWxsaW5nID0gXCJiaWxsaW5nXCIsXHJcbiAgcGF5bWVudCA9IFwicGF5bWVudFwiLFxyXG4gIHllYXAgPSBcInllYXBcIlxyXG59XHJcblxyXG5leHBvcnQgZW51bSBQcm94eVR5cGVzIHtcclxuICBOYXRpdmUsXHJcbiAgU2VydmVyU2lkZSxcclxuICBDbGllbnRTaWRlXHJcbn0iXX0=
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW51bXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9hcmlsL2h0dHAvbGliL2VudW1zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBTixJQUFZLFdBS1g7QUFMRCxXQUFZLFdBQVc7SUFDckIsMEJBQVcsQ0FBQTtJQUNYLDRCQUFhLENBQUE7SUFDYiwwQkFBVyxDQUFBO0lBQ1gsZ0NBQWlCLENBQUE7QUFDbkIsQ0FBQyxFQUxXLFdBQVcsS0FBWCxXQUFXLFFBS3RCO0FBRUQsTUFBTSxDQUFOLElBQVksSUFNWDtBQU5ELFdBQVksSUFBSTtJQUNkLG1CQUFXLENBQUE7SUFDWCxtQkFBVyxDQUFBO0lBQ1gsMkJBQW1CLENBQUE7SUFDbkIsMkJBQW1CLENBQUE7SUFDbkIscUJBQWEsQ0FBQTtBQUNmLENBQUMsRUFOVyxJQUFJLEtBQUosSUFBSSxRQU1mO0FBRUQsTUFBTSxDQUFOLElBQVksVUFJWDtBQUpELFdBQVksVUFBVTtJQUNwQiwrQ0FBTSxDQUFBO0lBQ04sdURBQVUsQ0FBQTtJQUNWLHVEQUFVLENBQUE7QUFDWixDQUFDLEVBSlcsVUFBVSxLQUFWLFVBQVUsUUFJckIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZW51bSBIVFRQTWV0aG9kcyB7XHJcbiAgR0VUID0gXCJHRVRcIixcclxuICBQT1NUID0gXCJQT1NUXCIsXHJcbiAgUFVUID0gXCJQVVRcIixcclxuICBERUxFVEUgPSBcIkRFTEVURVwiXHJcbn1cclxuXHJcbmV4cG9ydCBlbnVtIEFQSXMge1xyXG4gIGNybSA9IFwiY3JtXCIsXHJcbiAgd2RtID0gXCJ3ZG1cIixcclxuICBiaWxsaW5nID0gXCJiaWxsaW5nXCIsXHJcbiAgcGF5bWVudCA9IFwicGF5bWVudFwiLFxyXG4gIHllYXAgPSBcInllYXBcIlxyXG59XHJcblxyXG5leHBvcnQgZW51bSBQcm94eVR5cGVzIHtcclxuICBOYXRpdmUsXHJcbiAgU2VydmVyU2lkZSxcclxuICBDbGllbnRTaWRlXHJcbn0iXX0=
@@ -34,4 +34,4 @@ export class ServerSidePagingResponse {
34
34
  this.totalPageCount = 0;
35
35
  }
36
36
  }
37
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJmYWNlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2FyaWwvaHR0cC9saWIvaW50ZXJmYWNlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx1REFBdUQ7QUFDdkQsaURBQWlEO0FBRWpELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFhckMsTUFBTSxPQUFPLGVBQWU7SUFZMUIsWUFBWSxJQUFRO1FBQ2xCLElBQUksQ0FBQyxNQUFNLEdBQUcsU0FBUyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxJQUFJLEVBQU8sQ0FBQztRQUNoQyxJQUFJLENBQUMsS0FBSyxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUM7UUFDL0IsSUFBSSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7UUFDaEIsSUFBSSxDQUFDLE1BQU0sR0FBRztZQUNaLFdBQVcsRUFBRSxDQUFDO1lBQ2QsUUFBUSxFQUFFLEVBQUU7WUFDWixjQUFjLEVBQUUsQ0FBQztZQUNqQixjQUFjLEVBQUUsQ0FBQztTQUNsQixDQUFDO0lBQ0osQ0FBQztDQUNGO0FBRUQsTUFBTSxPQUFPLHdCQUF3QjtJQUluQztRQUNFLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO0lBQ3JCLENBQUM7Q0FDRjtBQUVELE1BQU0sT0FBTyx1QkFBdUI7SUFLbEM7UUFDRSxJQUFJLENBQUMsTUFBTSxHQUFHLFNBQVMsQ0FBQztRQUN4QixJQUFJLENBQUMsVUFBVSxHQUFHLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztJQUNyQixDQUFDO0NBQ0Y7QUFFRCxNQUFNLE9BQU8sd0JBQXdCO0lBTW5DO1FBQ0UsSUFBSSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7UUFDaEIsSUFBSSxDQUFDLGNBQWMsR0FBRyxDQUFDLENBQUM7UUFDeEIsSUFBSSxDQUFDLGNBQWMsR0FBRyxDQUFDLENBQUM7SUFDMUIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xyXG4vKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvYmFuLXR5cGVzICovXHJcblxyXG5pbXBvcnQgeyBQcm94eVR5cGVzIH0gZnJvbSBcIi4vZW51bXNcIjtcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU2VydmljZUNhbGxTdGF0ZXMge1xyXG4gIHNlcnZpY2VDYWxsZWQ6IGJvb2xlYW47XHJcbiAgd2FpdGluZ0ZvclJlc3BvbnNlOiBib29sZWFuO1xyXG4gIHJlc3BvbnNlSXNSZWNpZXZlZDogYm9vbGVhbjtcclxuICBzZXJ2aWNlQ2FsbEZhaWxlZDogYm9vbGVhbjtcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgU2VydmljZUNhbGxTdGF0ZU1hcDxUPiA9IHtcclxuICBbSyBpbiBrZXlvZiBUXT86IFRbS10gZXh0ZW5kcyBGdW5jdGlvbiA/IFNlcnZpY2VDYWxsU3RhdGVzIDogbmV2ZXI7XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBTZXJ2aWNlUmVzcG9uc2U8VD4ge1xyXG4gIHBhcmFtczogYW55O1xyXG4gIHJlc3BvbnNlOiBUO1xyXG4gIHByb3h5OiBQcm94eVR5cGVzO1xyXG4gIGl0ZW1zOiBBcnJheTxUPjtcclxuICBwYWdpbmc6IHtcclxuICAgIGN1cnJlbnRQYWdlOiBudW1iZXI7XHJcbiAgICBwYWdlU2l6ZTogbnVtYmVyXHJcbiAgICB0b3RhbEl0ZW1Db3VudDogbnVtYmVyO1xyXG4gICAgdG90YWxQYWdlQ291bnQ6IG51bWJlcjtcclxuICB9O1xyXG5cclxuICBjb25zdHJ1Y3RvcihyZXNwPzogVCkge1xyXG4gICAgdGhpcy5wYXJhbXMgPSB1bmRlZmluZWQ7XHJcbiAgICB0aGlzLnJlc3BvbnNlID0gcmVzcCA/PyB7fSBhcyBUO1xyXG4gICAgdGhpcy5wcm94eSA9IFByb3h5VHlwZXMuTmF0aXZlO1xyXG4gICAgdGhpcy5pdGVtcyA9IFtdO1xyXG4gICAgdGhpcy5wYWdpbmcgPSB7XHJcbiAgICAgIGN1cnJlbnRQYWdlOiAxLFxyXG4gICAgICBwYWdlU2l6ZTogMTAsXHJcbiAgICAgIHRvdGFsSXRlbUNvdW50OiAwLFxyXG4gICAgICB0b3RhbFBhZ2VDb3VudDogMFxyXG4gICAgfTtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBDbGllbnRTaWRlUGFnaW5nUmVzcG9uc2Uge1xyXG4gIG9yaWdpbmFsUmVzcG9uc2U6IGFueTtcclxuICBhbGxJdGVtczogYW55W107XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgdGhpcy5hbGxJdGVtcyA9IFtdO1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFNlcnZlclNpZGVQYWdpbmdSZXF1ZXN0IHtcclxuICBwYXJhbXM6IGFueTtcclxuICBwYWdlTnVtYmVyOiBudW1iZXI7XHJcbiAgcGFnZVNpemU6IG51bWJlcjtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgICB0aGlzLnBhcmFtcyA9IHVuZGVmaW5lZDtcclxuICAgIHRoaXMucGFnZU51bWJlciA9IDE7XHJcbiAgICB0aGlzLnBhZ2VTaXplID0gMTA7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgU2VydmVyU2lkZVBhZ2luZ1Jlc3BvbnNlIHtcclxuICBvcmlnaW5hbFJlc3BvbnNlOiBhbnk7XHJcbiAgaXRlbXM6IGFueVtdO1xyXG4gIHRvdGFsSXRlbUNvdW50OiBudW1iZXI7XHJcbiAgdG90YWxQYWdlQ291bnQ6IG51bWJlcjtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgICB0aGlzLml0ZW1zID0gW107XHJcbiAgICB0aGlzLnRvdGFsSXRlbUNvdW50ID0gMDtcclxuICAgIHRoaXMudG90YWxQYWdlQ291bnQgPSAwO1xyXG4gIH1cclxufSJdfQ==
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJmYWNlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2FyaWwvaHR0cC9saWIvaW50ZXJmYWNlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx1REFBdUQ7QUFDdkQsaURBQWlEO0FBR2pELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFjckMsTUFBTSxPQUFPLGVBQWU7SUFZMUIsWUFBWSxJQUFRO1FBQ2xCLElBQUksQ0FBQyxNQUFNLEdBQUcsU0FBUyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxJQUFJLEVBQU8sQ0FBQztRQUNoQyxJQUFJLENBQUMsS0FBSyxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUM7UUFDL0IsSUFBSSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7UUFDaEIsSUFBSSxDQUFDLE1BQU0sR0FBRztZQUNaLFdBQVcsRUFBRSxDQUFDO1lBQ2QsUUFBUSxFQUFFLEVBQUU7WUFDWixjQUFjLEVBQUUsQ0FBQztZQUNqQixjQUFjLEVBQUUsQ0FBQztTQUNsQixDQUFDO0lBQ0osQ0FBQztDQUNGO0FBRUQsTUFBTSxPQUFPLHdCQUF3QjtJQUluQztRQUNFLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO0lBQ3JCLENBQUM7Q0FDRjtBQUVELE1BQU0sT0FBTyx1QkFBdUI7SUFLbEM7UUFDRSxJQUFJLENBQUMsTUFBTSxHQUFHLFNBQVMsQ0FBQztRQUN4QixJQUFJLENBQUMsVUFBVSxHQUFHLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztJQUNyQixDQUFDO0NBQ0Y7QUFFRCxNQUFNLE9BQU8sd0JBQXdCO0lBTW5DO1FBQ0UsSUFBSSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7UUFDaEIsSUFBSSxDQUFDLGNBQWMsR0FBRyxDQUFDLENBQUM7UUFDeEIsSUFBSSxDQUFDLGNBQWMsR0FBRyxDQUFDLENBQUM7SUFDMUIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xyXG4vKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvYmFuLXR5cGVzICovXHJcblxyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgUHJveHlUeXBlcyB9IGZyb20gXCIuL2VudW1zXCI7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFNlcnZpY2VDYWxsU3RhdGVzIHtcclxuICBzZXJ2aWNlQ2FsbGVkOiBib29sZWFuO1xyXG4gIHdhaXRpbmdGb3JSZXNwb25zZTogYm9vbGVhbjtcclxuICByZXNwb25zZUlzUmVjaWV2ZWQ6IGJvb2xlYW47XHJcbiAgc2VydmljZUNhbGxGYWlsZWQ6IGJvb2xlYW47XHJcbiAgZXJyb3JFdmVudD86IFN1YmplY3Q8YW55PjtcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgU2VydmljZUNhbGxTdGF0ZU1hcDxUPiA9IHtcclxuICBbSyBpbiBrZXlvZiBUXT86IFRbS10gZXh0ZW5kcyBGdW5jdGlvbiA/IFNlcnZpY2VDYWxsU3RhdGVzIDogbmV2ZXI7XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBTZXJ2aWNlUmVzcG9uc2U8VD4ge1xyXG4gIHBhcmFtczogYW55O1xyXG4gIHJlc3BvbnNlOiBUO1xyXG4gIHByb3h5OiBQcm94eVR5cGVzO1xyXG4gIGl0ZW1zOiBBcnJheTxUPjtcclxuICBwYWdpbmc6IHtcclxuICAgIGN1cnJlbnRQYWdlOiBudW1iZXI7XHJcbiAgICBwYWdlU2l6ZTogbnVtYmVyXHJcbiAgICB0b3RhbEl0ZW1Db3VudDogbnVtYmVyO1xyXG4gICAgdG90YWxQYWdlQ291bnQ6IG51bWJlcjtcclxuICB9O1xyXG5cclxuICBjb25zdHJ1Y3RvcihyZXNwPzogVCkge1xyXG4gICAgdGhpcy5wYXJhbXMgPSB1bmRlZmluZWQ7XHJcbiAgICB0aGlzLnJlc3BvbnNlID0gcmVzcCA/PyB7fSBhcyBUO1xyXG4gICAgdGhpcy5wcm94eSA9IFByb3h5VHlwZXMuTmF0aXZlO1xyXG4gICAgdGhpcy5pdGVtcyA9IFtdO1xyXG4gICAgdGhpcy5wYWdpbmcgPSB7XHJcbiAgICAgIGN1cnJlbnRQYWdlOiAxLFxyXG4gICAgICBwYWdlU2l6ZTogMTAsXHJcbiAgICAgIHRvdGFsSXRlbUNvdW50OiAwLFxyXG4gICAgICB0b3RhbFBhZ2VDb3VudDogMFxyXG4gICAgfTtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBDbGllbnRTaWRlUGFnaW5nUmVzcG9uc2Uge1xyXG4gIG9yaWdpbmFsUmVzcG9uc2U6IGFueTtcclxuICBhbGxJdGVtczogYW55W107XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgdGhpcy5hbGxJdGVtcyA9IFtdO1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFNlcnZlclNpZGVQYWdpbmdSZXF1ZXN0IHtcclxuICBwYXJhbXM6IGFueTtcclxuICBwYWdlTnVtYmVyOiBudW1iZXI7XHJcbiAgcGFnZVNpemU6IG51bWJlcjtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgICB0aGlzLnBhcmFtcyA9IHVuZGVmaW5lZDtcclxuICAgIHRoaXMucGFnZU51bWJlciA9IDE7XHJcbiAgICB0aGlzLnBhZ2VTaXplID0gMTA7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgU2VydmVyU2lkZVBhZ2luZ1Jlc3BvbnNlIHtcclxuICBvcmlnaW5hbFJlc3BvbnNlOiBhbnk7XHJcbiAgaXRlbXM6IGFueVtdO1xyXG4gIHRvdGFsSXRlbUNvdW50OiBudW1iZXI7XHJcbiAgdG90YWxQYWdlQ291bnQ6IG51bWJlcjtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgICB0aGlzLml0ZW1zID0gW107XHJcbiAgICB0aGlzLnRvdGFsSXRlbUNvdW50ID0gMDtcclxuICAgIHRoaXMudG90YWxQYWdlQ291bnQgPSAwO1xyXG4gIH1cclxufSJdfQ==
@@ -9,4 +9,4 @@ export class RestClient {
9
9
  this.injector = inject(Injector);
10
10
  }
11
11
  }
12
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cENsaWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2FyaWwvaHR0cC9zcmMvaHR0cENsaWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx1REFBdUQ7QUFFdkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxjQUFjLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUlqRSxNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUcsSUFBSSxjQUFjLENBQU8sS0FBSyxDQUFDLENBQUM7QUFFekQsTUFBTSxPQUFnQixVQUFVO0lBQWhDO1FBQ21CLGVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDaEMsWUFBTyxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUM1QixhQUFRLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBRy9DLENBQUM7Q0FBQSIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cclxuXHJcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uL2h0dHBcIjtcclxuaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4sIEluamVjdG9yLCBpbmplY3QgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBBUElzIH0gZnJvbSBcIi4uL2xpYi9lbnVtc1wiO1xyXG5pbXBvcnQgeyBTZXJ2aWNlQ2FsbFN0YXRlTWFwIH0gZnJvbSBcIi4uL2xpYi9pbnRlcmZhY2VzXCI7XHJcblxyXG5leHBvcnQgY29uc3QgQVBJX1RPS0VOID0gbmV3IEluamVjdGlvblRva2VuPEFQSXM+KCdBUEknKTtcclxuXHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBSZXN0Q2xpZW50IHtcclxuICBwcml2YXRlIHJlYWRvbmx5IGh0dHBDbGllbnQgPSBpbmplY3QoSHR0cENsaWVudCk7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBiYXNlQVBJID0gaW5qZWN0KEFQSV9UT0tFTik7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBpbmplY3RvciA9IGluamVjdChJbmplY3Rvcik7XHJcblxyXG4gIGFic3RyYWN0IHN0YXRlczogU2VydmljZUNhbGxTdGF0ZU1hcDxhbnk+O1xyXG59Il19
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cENsaWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2FyaWwvaHR0cC9zcmMvaHR0cENsaWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx1REFBdUQ7QUFFdkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxjQUFjLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUtqRSxNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUcsSUFBSSxjQUFjLENBQU8sS0FBSyxDQUFDLENBQUM7QUFFekQsTUFBTSxPQUFnQixVQUFVO0lBQWhDO1FBQ21CLGVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDaEMsWUFBTyxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUM1QixhQUFRLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBRy9DLENBQUM7Q0FBQSIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cclxuXHJcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uL2h0dHBcIjtcclxuaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4sIEluamVjdG9yLCBpbmplY3QgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5cclxuaW1wb3J0IHsgQVBJcyB9IGZyb20gXCIuLi9saWIvZW51bXNcIjtcclxuaW1wb3J0IHsgU2VydmljZUNhbGxTdGF0ZU1hcCB9IGZyb20gXCIuLi9saWIvaW50ZXJmYWNlc1wiO1xyXG5cclxuZXhwb3J0IGNvbnN0IEFQSV9UT0tFTiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxBUElzPignQVBJJyk7XHJcblxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgUmVzdENsaWVudCB7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBodHRwQ2xpZW50ID0gaW5qZWN0KEh0dHBDbGllbnQpO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgYmFzZUFQSSA9IGluamVjdChBUElfVE9LRU4pO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgaW5qZWN0b3IgPSBpbmplY3QoSW5qZWN0b3IpO1xyXG5cclxuICBhYnN0cmFjdCBzdGF0ZXM6IFNlcnZpY2VDYWxsU3RhdGVNYXA8YW55PjtcclxufSJdfQ==
@@ -1,12 +1,12 @@
1
1
  /* eslint-disable @typescript-eslint/no-explicit-any */
2
2
  /** TODO: ADD INTERCEPTOR */
3
3
  /** TODO: SET REQUEST & RESPONSE ACCORDING TO PROXY */
4
- import { Observable, throwError } from 'rxjs';
5
- import { catchError, map, tap } from 'rxjs/operators';
4
+ import { runInInjectionContext } from '@angular/core';
6
5
  import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
7
6
  import { HttpParams } from '@angular/common/http';
7
+ import { Observable, throwError } from 'rxjs';
8
+ import { catchError, map, tap } from 'rxjs/operators';
8
9
  import { callState, successState, errorState } from './serviceStateMethods';
9
- import { runInInjectionContext } from '@angular/core';
10
10
  import { HTTPMethods, ProxyTypes } from '../lib/enums';
11
11
  import { ServiceResponse } from '../lib/interfaces';
12
12
  export function ServiceCall(httpMethod, proxy, remoteAPI) {
@@ -33,7 +33,7 @@ export function ServiceCall(httpMethod, proxy, remoteAPI) {
33
33
  break;
34
34
  }
35
35
  observable = observable.pipe(map((data) => setResponse(data, proxy)), tap(() => successState(states, serviceName)), catchError((error) => {
36
- errorState(states, serviceName);
36
+ errorState(states, serviceName, error);
37
37
  console.error(error);
38
38
  return throwError(() => new Error('Something bad happened; please try again later.'));
39
39
  }), takeUntilDestroyed());
@@ -76,4 +76,4 @@ function setResponse(data, proxy) {
76
76
  }
77
77
  return new ServiceResponse(data);
78
78
  }
79
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZUJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9hcmlsL2h0dHAvc3JjL3NlcnZpY2VCYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHVEQUF1RDtBQUV2RCw0QkFBNEI7QUFDNUIsc0RBQXNEO0FBRXRELE9BQU8sRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzlDLE9BQU8sRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFBaUMsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDakYsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDNUUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3RELE9BQU8sRUFBUSxXQUFXLEVBQUUsVUFBVSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzdELE9BQU8sRUFBdUIsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFHekUsTUFBTSxVQUFVLFdBQVcsQ0FBQyxVQUF1QixFQUFFLEtBQWlCLEVBQUUsU0FBZ0I7SUFDdEYsT0FBTyxVQUFVLFlBQW9CLEVBQUUsV0FBNEIsRUFBRSxVQUE4QjtRQUNqRyxNQUFNLGdCQUFnQixHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUM7UUFFMUMsVUFBVSxDQUFDLEtBQUssR0FBRyxVQUFVLEdBQUcsSUFBVztZQUV6QyxPQUFPLHFCQUFxQixDQUFPLElBQUssQ0FBQyxRQUFRLEVBQUUsR0FBRyxFQUFFO2dCQUN0RCxNQUFNLFVBQVUsR0FBcUIsSUFBSyxDQUFDLFVBQVUsQ0FBQztnQkFDdEQsTUFBTSxHQUFHLEdBQVMsU0FBUyxJQUFVLElBQUssQ0FB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QyxDQUFDO1lBQzNELENBQUMsQ0FBQyxDQUFDO1lBQ0gsT0FBTyxXQUFXLENBQUM7UUFDckIsQ0FBQzthQUNJLENBQUM7WUFDSixNQUFNLE1BQU0sR0FBK0IsRUFBRSxDQUFDO1lBRTlDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUU7Z0JBQzFCLE1BQU0sQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUM7WUFDbEMsQ0FBQyxDQUFDLENBQUM7WUFFSCxPQUFPLE1BQU0sQ0FBQztRQUNoQixDQUFDO0lBQ0gsQ0FBQzs7UUFDSSxPQUFPLFNBQVMsQ0FBQztBQUN4QixDQUFDO0FBRUQsU0FBUyxXQUFXLENBQUMsSUFBUyxFQUFFLEtBQWlCO0lBQy9DLFFBQVEsS0FBSyxFQUFFLENBQUM7UUFDZCxLQUFLLFVBQVUsQ0FBQyxNQUFNO1lBQ3BCLE1BQU07UUFDUixLQUFLLFVBQVUsQ0FBQyxVQUFVO1lBQ3hCLE1BQU07UUFDUixLQUFLLFVBQVUsQ0FBQyxVQUFVO1lBQ3hCLE1BQU07SUFDVixDQUFDO0lBRUQsT0FBTyxJQUFJLGVBQWUsQ0FBTSxJQUFJLENBQUMsQ0FBQTtBQUN2QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xyXG5cclxuLyoqIFRPRE86IEFERCBJTlRFUkNFUFRPUiAqL1xyXG4vKiogVE9ETzogU0VUIFJFUVVFU1QgJiBSRVNQT05TRSBBQ0NPUkRJTkcgVE8gUFJPWFkgKi9cclxuXHJcbmltcG9ydCB7IE9ic2VydmFibGUsIHRocm93RXJyb3IgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgY2F0Y2hFcnJvciwgbWFwLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcclxuaW1wb3J0IHsgSHR0cEVycm9yUmVzcG9uc2UsIEh0dHBDbGllbnQsIEh0dHBQYXJhbXMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IGNhbGxTdGF0ZSwgc3VjY2Vzc1N0YXRlLCBlcnJvclN0YXRlIH0gZnJvbSAnLi9zZXJ2aWNlU3RhdGVNZXRob2RzJztcclxuaW1wb3J0IHsgcnVuSW5JbmplY3Rpb25Db250ZXh0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFQSXMsIEhUVFBNZXRob2RzLCBQcm94eVR5cGVzIH0gZnJvbSAnLi4vbGliL2VudW1zJztcclxuaW1wb3J0IHsgU2VydmljZUNhbGxTdGF0ZU1hcCwgU2VydmljZVJlc3BvbnNlIH0gZnJvbSAnLi4vbGliL2ludGVyZmFjZXMnO1xyXG5pbXBvcnQgeyBJbnRlcmZhY2VzIH0gZnJvbSBcImFyaWwvdXRpbC9saWJcIjtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBTZXJ2aWNlQ2FsbChodHRwTWV0aG9kOiBIVFRQTWV0aG9kcywgcHJveHk6IFByb3h5VHlwZXMsIHJlbW90ZUFQST86IEFQSXMpOiBNZXRob2REZWNvcmF0b3Ige1xyXG4gIHJldHVybiBmdW5jdGlvbiAoc2VydmljZUNsYXNzOiBvYmplY3QsIHNlcnZpY2VOYW1lOiBzdHJpbmcgfCBzeW1ib2wsIGRlc2NyaXB0b3I6IFByb3BlcnR5RGVzY3JpcHRvcikge1xyXG4gICAgY29uc3Qgb3JpZ2luYWxGdW5jdGlvbiA9IGRlc2NyaXB0b3IudmFsdWU7XHJcblxyXG4gICAgZGVzY3JpcHRvci52YWx1ZSA9IGZ1bmN0aW9uICguLi5hcmdzOiBhbnlbXSkge1xyXG5cclxuICAgICAgcmV0dXJuIHJ1bkluSW5qZWN0aW9uQ29udGV4dCgoPGFueT50aGlzKS5pbmplY3RvciwgKCkgPT4ge1xyXG4gICAgICAgIGNvbnN0IGh0dHBDbGllbnQ6IEh0dHBDbGllbnQgPSAoPGFueT50aGlzKS5odHRwQ2xpZW50O1xyXG4gICAgICAgIGNvbnN0IGFwaTogQVBJcyA9IHJlbW90ZUFQSSA/PyAoPGFueT50aGlzKS5iYXNlQVBJO1xyXG4gICAgICAgIGNvbnN0IGVuZFBvaW50OiBzdHJpbmcgPSBhcGkgKyA8c3RyaW5nPnNlcnZpY2VOYW1lO1xyXG4gICAgICAgIGNvbnN0IHBhcmFtcyA9IGdldFBhcmFtcyhodHRwTWV0aG9kLCBwcm94eSwgb3JpZ2luYWxGdW5jdGlvbiwgYXJncyk7XHJcbiAgICAgICAgY29uc3Qgc3RhdGVzOiBTZXJ2aWNlQ2FsbFN0YXRlTWFwPGFueT4gPSAoPGFueT50aGlzKS5zdGF0ZXM7XHJcblxyXG4gICAgICAgIGNhbGxTdGF0ZShzdGF0ZXMsIHNlcnZpY2VOYW1lKTtcclxuXHJcbiAgICAgICAgbGV0IG9ic2VydmFibGU6IE9ic2VydmFibGU8YW55PiA9IG5ldyBPYnNlcnZhYmxlPGFueT4oKTtcclxuXHJcbiAgICAgICAgc3dpdGNoIChodHRwTWV0aG9kKSB7XHJcbiAgICAgICAgICBjYXNlIEhUVFBNZXRob2RzLkdFVDpcclxuICAgICAgICAgICAgb2JzZXJ2YWJsZSA9IGh0dHBDbGllbnQuZ2V0PGFueT4oZW5kUG9pbnQsIHsgcGFyYW1zOiBwYXJhbXMgYXMgSHR0cFBhcmFtcywgcmVzcG9uc2VUeXBlOiAnanNvbicgfSk7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgY2FzZSBIVFRQTWV0aG9kcy5QT1NUOlxyXG4gICAgICAgICAgICBvYnNlcnZhYmxlID0gaHR0cENsaWVudC5wb3N0PGFueT4oZW5kUG9pbnQsIHBhcmFtcywgeyByZXNwb25zZVR5cGU6ICdqc29uJyB9KTtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICBjYXNlIEhUVFBNZXRob2RzLkRFTEVURTpcclxuICAgICAgICAgICAgb2JzZXJ2YWJsZSA9IGh0dHBDbGllbnQuZGVsZXRlPGFueT4oZW5kUG9pbnQgKyBcIi9cIiArIGFyZ3NbMF0sIHsgcmVzcG9uc2VUeXBlOiAnanNvbicgfSk7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgb2JzZXJ2YWJsZSA9IG9ic2VydmFibGUucGlwZShcclxuICAgICAgICAgIG1hcCgoZGF0YSkgPT4gc2V0UmVzcG9uc2UoZGF0YSwgcHJveHkpKSxcclxuICAgICAgICAgIHRhcCgoKSA9PiBzdWNjZXNzU3RhdGUoc3RhdGVzLCBzZXJ2aWNlTmFtZSkpLFxyXG4gICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICAgIGVycm9yU3RhdGUoc3RhdGVzLCBzZXJ2aWNlTmFtZSk7XHJcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpO1xyXG4gICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiBuZXcgRXJyb3IoJ1NvbWV0aGluZyBiYWQgaGFwcGVuZWQ7IHBsZWFzZSB0cnkgYWdhaW4gbGF0ZXIuJykpO1xyXG4gICAgICAgICAgfSksXHJcbiAgICAgICAgICB0YWtlVW50aWxEZXN0cm95ZWQoKVxyXG4gICAgICAgICk7XHJcblxyXG4gICAgICAgIHJldHVybiBvYnNlcnZhYmxlO1xyXG4gICAgICB9KTtcclxuICAgIH07XHJcbiAgfTtcclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0UGFyYW1zKGh0dHBNZXRob2Q6IEhUVFBNZXRob2RzLCBwcm94eTogUHJveHlUeXBlcywgZm46ICgpID0+IGFueSwgYXJnczogYW55W10pOiBIdHRwUGFyYW1zIHwgSW50ZXJmYWNlcy5NYXBTdHJpbmdTdHJpbmcgfCB1bmRlZmluZWQge1xyXG4gIGlmIChhcmdzLmxlbmd0aCkge1xyXG4gICAgY29uc3Qgc291cmNlID0gZm4udG9TdHJpbmcoKTtcclxuICAgIGNvbnN0IG1hdGNoID0gc291cmNlLm1hdGNoKC9cXCgoLio/KVxcKS8pO1xyXG4gICAgY29uc3QgcGFyYW1OYW1lcyA9IG1hdGNoID8gbWF0Y2hbMV0uc3BsaXQoJywnKS5tYXAocGFyYW0gPT4gcGFyYW0udHJpbSgpKSA6IFtdO1xyXG5cclxuICAgIGlmIChodHRwTWV0aG9kID09PSBIVFRQTWV0aG9kcy5HRVQpIHtcclxuICAgICAgbGV0IHF1ZXJ5UGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoKVxyXG5cclxuICAgICAgcGFyYW1OYW1lcy5mb3JFYWNoKChwYXJhbU5hbWUsIGluZGV4KSA9PiB7XHJcbiAgICAgICAgcXVlcnlQYXJhbXMgPSBxdWVyeVBhcmFtcy5hcHBlbmQocGFyYW1OYW1lLCBhcmdzW2luZGV4XSk7XHJcbiAgICAgIH0pO1xyXG4gICAgICByZXR1cm4gcXVlcnlQYXJhbXM7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgY29uc3QgcGFyYW1zOiBJbnRlcmZhY2VzLk1hcFN0cmluZ1N0cmluZyA9IHt9O1xyXG5cclxuICAgICAgYXJncy5mb3JFYWNoKChhcmcsIGluZGV4KSA9PiB7XHJcbiAgICAgICAgcGFyYW1zW3BhcmFtTmFtZXNbaW5kZXhdXSA9IGFyZztcclxuICAgICAgfSk7XHJcblxyXG4gICAgICByZXR1cm4gcGFyYW1zO1xyXG4gICAgfVxyXG4gIH1cclxuICBlbHNlIHJldHVybiB1bmRlZmluZWQ7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIHNldFJlc3BvbnNlKGRhdGE6IGFueSwgcHJveHk6IFByb3h5VHlwZXMpIHtcclxuICBzd2l0Y2ggKHByb3h5KSB7XHJcbiAgICBjYXNlIFByb3h5VHlwZXMuTmF0aXZlOlxyXG4gICAgICBicmVhaztcclxuICAgIGNhc2UgUHJveHlUeXBlcy5TZXJ2ZXJTaWRlOlxyXG4gICAgICBicmVhaztcclxuICAgIGNhc2UgUHJveHlUeXBlcy5DbGllbnRTaWRlOlxyXG4gICAgICBicmVhaztcclxuICB9XHJcblxyXG4gIHJldHVybiBuZXcgU2VydmljZVJlc3BvbnNlPGFueT4oZGF0YSlcclxufSJdfQ==
79
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZUJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9hcmlsL2h0dHAvc3JjL3NlcnZpY2VCYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHVEQUF1RDtBQUV2RCw0QkFBNEI7QUFDNUIsc0RBQXNEO0FBRXRELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN0RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRSxPQUFPLEVBQWlDLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRWpGLE9BQU8sRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzlDLE9BQU8sRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBSXRELE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzVFLE9BQU8sRUFBUSxXQUFXLEVBQUUsVUFBVSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzdELE9BQU8sRUFBdUIsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFekUsTUFBTSxVQUFVLFdBQVcsQ0FBQyxVQUF1QixFQUFFLEtBQWlCLEVBQUUsU0FBZ0I7SUFDdEYsT0FBTyxVQUFVLFlBQW9CLEVBQUUsV0FBNEIsRUFBRSxVQUE4QjtRQUNqRyxNQUFNLGdCQUFnQixHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUM7UUFFMUMsVUFBVSxDQUFDLEtBQUssR0FBRyxVQUFVLEdBQUcsSUFBVztZQUV6QyxPQUFPLHFCQUFxQixDQUFPLElBQUssQ0FBQyxRQUFRLEVBQUUsR0FBRyxFQUFFO2dCQUN0RCxNQUFNLFVBQVUsR0FBcUIsSUFBSyxDQUFDLFVBQVUsQ0FBQztnQkFDdEQsTUFBTSxHQUFHLEdBQVMsU0FBUyxJQUFVLElBQUssQ0FB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SyxDQUFDLENBQUMsQ0FBQztZQUMzRCxDQUFDLENBQUMsQ0FBQztZQUNILE9BQU8sV0FBVyxDQUFDO1FBQ3JCLENBQUM7YUFDSSxDQUFDO1lBQ0osTUFBTSxNQUFNLEdBQStCLEVBQUUsQ0FBQztZQUU5QyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFO2dCQUMxQixNQUFNLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDO1lBQ2xDLENBQUMsQ0FBQyxDQUFDO1lBRUgsT0FBTyxNQUFNLENBQUM7UUFDaEIsQ0FBQztJQUNILENBQUM7O1FBQ0ksT0FBTyxTQUFTLENBQUM7QUFDeEIsQ0FBQztBQUVELFNBQVMsV0FBVyxDQUFDLElBQVMsRUFBRSxLQUFpQjtJQUMvQyxRQUFRLEtBQUssRUFBRSxDQUFDO1FBQ2QsS0FBSyxVQUFVLENBQUMsTUFBTTtZQUNwQixNQUFNO1FBQ1IsS0FBSyxVQUFVLENBQUMsVUFBVTtZQUN4QixNQUFNO1FBQ1IsS0FBSyxVQUFVLENBQUMsVUFBVTtZQUN4QixNQUFNO0lBQ1YsQ0FBQztJQUVELE9BQU8sSUFBSSxlQUFlLENBQU0sSUFBSSxDQUFDLENBQUE7QUFDdkMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cclxuXHJcbi8qKiBUT0RPOiBBREQgSU5URVJDRVBUT1IgKi9cclxuLyoqIFRPRE86IFNFVCBSRVFVRVNUICYgUkVTUE9OU0UgQUNDT1JESU5HIFRPIFBST1hZICovXHJcblxyXG5pbXBvcnQgeyBydW5JbkluamVjdGlvbkNvbnRleHQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xyXG5pbXBvcnQgeyBIdHRwRXJyb3JSZXNwb25zZSwgSHR0cENsaWVudCwgSHR0cFBhcmFtcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuXHJcbmltcG9ydCB7IE9ic2VydmFibGUsIHRocm93RXJyb3IgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgY2F0Y2hFcnJvciwgbWFwLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG5pbXBvcnQgeyBJbnRlcmZhY2VzIH0gZnJvbSBcImFyaWwvdXRpbC9saWJcIjtcclxuXHJcbmltcG9ydCB7IGNhbGxTdGF0ZSwgc3VjY2Vzc1N0YXRlLCBlcnJvclN0YXRlIH0gZnJvbSAnLi9zZXJ2aWNlU3RhdGVNZXRob2RzJztcclxuaW1wb3J0IHsgQVBJcywgSFRUUE1ldGhvZHMsIFByb3h5VHlwZXMgfSBmcm9tICcuLi9saWIvZW51bXMnO1xyXG5pbXBvcnQgeyBTZXJ2aWNlQ2FsbFN0YXRlTWFwLCBTZXJ2aWNlUmVzcG9uc2UgfSBmcm9tICcuLi9saWIvaW50ZXJmYWNlcyc7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gU2VydmljZUNhbGwoaHR0cE1ldGhvZDogSFRUUE1ldGhvZHMsIHByb3h5OiBQcm94eVR5cGVzLCByZW1vdGVBUEk/OiBBUElzKTogTWV0aG9kRGVjb3JhdG9yIHtcclxuICByZXR1cm4gZnVuY3Rpb24gKHNlcnZpY2VDbGFzczogb2JqZWN0LCBzZXJ2aWNlTmFtZTogc3RyaW5nIHwgc3ltYm9sLCBkZXNjcmlwdG9yOiBQcm9wZXJ0eURlc2NyaXB0b3IpIHtcclxuICAgIGNvbnN0IG9yaWdpbmFsRnVuY3Rpb24gPSBkZXNjcmlwdG9yLnZhbHVlO1xyXG5cclxuICAgIGRlc2NyaXB0b3IudmFsdWUgPSBmdW5jdGlvbiAoLi4uYXJnczogYW55W10pIHtcclxuXHJcbiAgICAgIHJldHVybiBydW5JbkluamVjdGlvbkNvbnRleHQoKDxhbnk+dGhpcykuaW5qZWN0b3IsICgpID0+IHtcclxuICAgICAgICBjb25zdCBodHRwQ2xpZW50OiBIdHRwQ2xpZW50ID0gKDxhbnk+dGhpcykuaHR0cENsaWVudDtcclxuICAgICAgICBjb25zdCBhcGk6IEFQSXMgPSByZW1vdGVBUEkgPz8gKDxhbnk+dGhpcykuYmFzZUFQSTtcclxuICAgICAgICBjb25zdCBlbmRQb2ludDogc3RyaW5nID0gYXBpICsgPHN0cmluZz5zZXJ2aWNlTmFtZTtcclxuICAgICAgICBjb25zdCBwYXJhbXMgPSBnZXRQYXJhbXMoaHR0cE1ldGhvZCwgcHJveHksIG9yaWdpbmFsRnVuY3Rpb24sIGFyZ3MpO1xyXG4gICAgICAgIGNvbnN0IHN0YXRlczogU2VydmljZUNhbGxTdGF0ZU1hcDxhbnk+ID0gKDxhbnk+dGhpcykuc3RhdGVzO1xyXG5cclxuICAgICAgICBjYWxsU3RhdGUoc3RhdGVzLCBzZXJ2aWNlTmFtZSk7XHJcblxyXG4gICAgICAgIGxldCBvYnNlcnZhYmxlOiBPYnNlcnZhYmxlPGFueT4gPSBuZXcgT2JzZXJ2YWJsZTxhbnk+KCk7XHJcblxyXG4gICAgICAgIHN3aXRjaCAoaHR0cE1ldGhvZCkge1xyXG4gICAgICAgICAgY2FzZSBIVFRQTWV0aG9kcy5HRVQ6XHJcbiAgICAgICAgICAgIG9ic2VydmFibGUgPSBodHRwQ2xpZW50LmdldDxhbnk+KGVuZFBvaW50LCB7IHBhcmFtczogcGFyYW1zIGFzIEh0dHBQYXJhbXMsIHJlc3BvbnNlVHlwZTogJ2pzb24nIH0pO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgIGNhc2UgSFRUUE1ldGhvZHMuUE9TVDpcclxuICAgICAgICAgICAgb2JzZXJ2YWJsZSA9IGh0dHBDbGllbnQucG9zdDxhbnk+KGVuZFBvaW50LCBwYXJhbXMsIHsgcmVzcG9uc2VUeXBlOiAnanNvbicgfSk7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgY2FzZSBIVFRQTWV0aG9kcy5ERUxFVEU6XHJcbiAgICAgICAgICAgIG9ic2VydmFibGUgPSBodHRwQ2xpZW50LmRlbGV0ZTxhbnk+KGVuZFBvaW50ICsgXCIvXCIgKyBhcmdzWzBdLCB7IHJlc3BvbnNlVHlwZTogJ2pzb24nIH0pO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIG9ic2VydmFibGUgPSBvYnNlcnZhYmxlLnBpcGUoXHJcbiAgICAgICAgICBtYXAoKGRhdGEpID0+IHNldFJlc3BvbnNlKGRhdGEsIHByb3h5KSksXHJcbiAgICAgICAgICB0YXAoKCkgPT4gc3VjY2Vzc1N0YXRlKHN0YXRlcywgc2VydmljZU5hbWUpKSxcclxuICAgICAgICAgIGNhdGNoRXJyb3IoKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgICBlcnJvclN0YXRlKHN0YXRlcywgc2VydmljZU5hbWUsIGVycm9yKTtcclxuICAgICAgICAgICAgY29uc29sZS5lcnJvcihlcnJvcik7XHJcbiAgICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+IG5ldyBFcnJvcignU29tZXRoaW5nIGJhZCBoYXBwZW5lZDsgcGxlYXNlIHRyeSBhZ2FpbiBsYXRlci4nKSk7XHJcbiAgICAgICAgICB9KSxcclxuICAgICAgICAgIHRha2VVbnRpbERlc3Ryb3llZCgpXHJcbiAgICAgICAgKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIG9ic2VydmFibGU7XHJcbiAgICAgIH0pO1xyXG4gICAgfTtcclxuICB9O1xyXG59XHJcblxyXG5mdW5jdGlvbiBnZXRQYXJhbXMoaHR0cE1ldGhvZDogSFRUUE1ldGhvZHMsIHByb3h5OiBQcm94eVR5cGVzLCBmbjogKCkgPT4gYW55LCBhcmdzOiBhbnlbXSk6IEh0dHBQYXJhbXMgfCBJbnRlcmZhY2VzLk1hcFN0cmluZ1N0cmluZyB8IHVuZGVmaW5lZCB7XHJcbiAgaWYgKGFyZ3MubGVuZ3RoKSB7XHJcbiAgICBjb25zdCBzb3VyY2UgPSBmbi50b1N0cmluZygpO1xyXG4gICAgY29uc3QgbWF0Y2ggPSBzb3VyY2UubWF0Y2goL1xcKCguKj8pXFwpLyk7XHJcbiAgICBjb25zdCBwYXJhbU5hbWVzID0gbWF0Y2ggPyBtYXRjaFsxXS5zcGxpdCgnLCcpLm1hcChwYXJhbSA9PiBwYXJhbS50cmltKCkpIDogW107XHJcblxyXG4gICAgaWYgKGh0dHBNZXRob2QgPT09IEhUVFBNZXRob2RzLkdFVCkge1xyXG4gICAgICBsZXQgcXVlcnlQYXJhbXMgPSBuZXcgSHR0cFBhcmFtcygpXHJcblxyXG4gICAgICBwYXJhbU5hbWVzLmZvckVhY2goKHBhcmFtTmFtZSwgaW5kZXgpID0+IHtcclxuICAgICAgICBxdWVyeVBhcmFtcyA9IHF1ZXJ5UGFyYW1zLmFwcGVuZChwYXJhbU5hbWUsIGFyZ3NbaW5kZXhdKTtcclxuICAgICAgfSk7XHJcbiAgICAgIHJldHVybiBxdWVyeVBhcmFtcztcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICBjb25zdCBwYXJhbXM6IEludGVyZmFjZXMuTWFwU3RyaW5nU3RyaW5nID0ge307XHJcblxyXG4gICAgICBhcmdzLmZvckVhY2goKGFyZywgaW5kZXgpID0+IHtcclxuICAgICAgICBwYXJhbXNbcGFyYW1OYW1lc1tpbmRleF1dID0gYXJnO1xyXG4gICAgICB9KTtcclxuXHJcbiAgICAgIHJldHVybiBwYXJhbXM7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGVsc2UgcmV0dXJuIHVuZGVmaW5lZDtcclxufVxyXG5cclxuZnVuY3Rpb24gc2V0UmVzcG9uc2UoZGF0YTogYW55LCBwcm94eTogUHJveHlUeXBlcykge1xyXG4gIHN3aXRjaCAocHJveHkpIHtcclxuICAgIGNhc2UgUHJveHlUeXBlcy5OYXRpdmU6XHJcbiAgICAgIGJyZWFrO1xyXG4gICAgY2FzZSBQcm94eVR5cGVzLlNlcnZlclNpZGU6XHJcbiAgICAgIGJyZWFrO1xyXG4gICAgY2FzZSBQcm94eVR5cGVzLkNsaWVudFNpZGU6XHJcbiAgICAgIGJyZWFrO1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIG5ldyBTZXJ2aWNlUmVzcG9uc2U8YW55PihkYXRhKVxyXG59Il19
@@ -1,4 +1,5 @@
1
1
  /* eslint-disable @typescript-eslint/no-explicit-any */
2
+ import { Subject } from "rxjs";
2
3
  export const callState = (states, serviceName) => {
3
4
  states[serviceName] = {
4
5
  serviceCalled: true,
@@ -15,12 +16,14 @@ export const successState = (states, serviceName) => {
15
16
  serviceCallFailed: false,
16
17
  };
17
18
  };
18
- export const errorState = (states, serviceName) => {
19
+ export const errorState = (states, serviceName, error) => {
19
20
  states[serviceName] = {
20
21
  serviceCalled: true,
21
22
  waitingForResponse: false,
22
23
  responseIsRecieved: true,
23
24
  serviceCallFailed: true,
25
+ errorEvent: new Subject()
24
26
  };
27
+ states[serviceName]?.errorEvent?.next(error);
25
28
  };
26
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZVN0YXRlTWV0aG9kcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2FyaWwvaHR0cC9zcmMvc2VydmljZVN0YXRlTWV0aG9kcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx1REFBdUQ7QUFJdkQsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHLENBQUMsTUFBZ0MsRUFBRSxXQUFnQixFQUFRLEVBQUU7SUFDcEYsTUFBTSxDQUFDLFdBQVcsQ0FBQyxHQUFHO1FBQ3BCLGFBQWEsRUFBRSxJQUFJO1FBQ25CLGtCQUFrQixFQUFFLElBQUk7UUFDeEIsa0JBQWtCLEVBQUUsS0FBSztRQUN6QixpQkFBaUIsRUFBRSxLQUFLO0tBQ3pCLENBQUM7QUFDSixDQUFDLENBQUE7QUFDRCxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsQ0FBQyxNQUFnQyxFQUFFLFdBQWdCLEVBQVEsRUFBRTtJQUN2RixNQUFNLENBQUMsV0FBVyxDQUFDLEdBQUc7UUFDcEIsYUFBYSxFQUFFLElBQUk7UUFDbkIsa0JBQWtCLEVBQUUsS0FBSztRQUN6QixrQkFBa0IsRUFBRSxJQUFJO1FBQ3hCLGlCQUFpQixFQUFFLEtBQUs7S0FDekIsQ0FBQztBQUNKLENBQUMsQ0FBQTtBQUNELE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxDQUFDLE1BQWdDLEVBQUUsV0FBZ0IsRUFBUSxFQUFFO0lBQ3JGLE1BQU0sQ0FBQyxXQUFXLENBQUMsR0FBRztRQUNwQixhQUFhLEVBQUUsSUFBSTtRQUNuQixrQkFBa0IsRUFBRSxLQUFLO1FBQ3pCLGtCQUFrQixFQUFFLElBQUk7UUFDeEIsaUJBQWlCLEVBQUUsSUFBSTtLQUN4QixDQUFDO0FBQ0osQ0FBQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xyXG5cclxuaW1wb3J0IHsgU2VydmljZUNhbGxTdGF0ZU1hcCB9IGZyb20gXCIuLi9saWIvaW50ZXJmYWNlc1wiO1xyXG5cclxuZXhwb3J0IGNvbnN0IGNhbGxTdGF0ZSA9IChzdGF0ZXM6IFNlcnZpY2VDYWxsU3RhdGVNYXA8YW55Piwgc2VydmljZU5hbWU6IGFueSk6IHZvaWQgPT4ge1xyXG4gIHN0YXRlc1tzZXJ2aWNlTmFtZV0gPSB7XHJcbiAgICBzZXJ2aWNlQ2FsbGVkOiB0cnVlLFxyXG4gICAgd2FpdGluZ0ZvclJlc3BvbnNlOiB0cnVlLFxyXG4gICAgcmVzcG9uc2VJc1JlY2lldmVkOiBmYWxzZSxcclxuICAgIHNlcnZpY2VDYWxsRmFpbGVkOiBmYWxzZVxyXG4gIH07XHJcbn1cclxuZXhwb3J0IGNvbnN0IHN1Y2Nlc3NTdGF0ZSA9IChzdGF0ZXM6IFNlcnZpY2VDYWxsU3RhdGVNYXA8YW55Piwgc2VydmljZU5hbWU6IGFueSk6IHZvaWQgPT4ge1xyXG4gIHN0YXRlc1tzZXJ2aWNlTmFtZV0gPSB7XHJcbiAgICBzZXJ2aWNlQ2FsbGVkOiB0cnVlLFxyXG4gICAgd2FpdGluZ0ZvclJlc3BvbnNlOiBmYWxzZSxcclxuICAgIHJlc3BvbnNlSXNSZWNpZXZlZDogdHJ1ZSxcclxuICAgIHNlcnZpY2VDYWxsRmFpbGVkOiBmYWxzZSxcclxuICB9O1xyXG59XHJcbmV4cG9ydCBjb25zdCBlcnJvclN0YXRlID0gKHN0YXRlczogU2VydmljZUNhbGxTdGF0ZU1hcDxhbnk+LCBzZXJ2aWNlTmFtZTogYW55KTogdm9pZCA9PiB7XHJcbiAgc3RhdGVzW3NlcnZpY2VOYW1lXSA9IHtcclxuICAgIHNlcnZpY2VDYWxsZWQ6IHRydWUsXHJcbiAgICB3YWl0aW5nRm9yUmVzcG9uc2U6IGZhbHNlLFxyXG4gICAgcmVzcG9uc2VJc1JlY2lldmVkOiB0cnVlLFxyXG4gICAgc2VydmljZUNhbGxGYWlsZWQ6IHRydWUsXHJcbiAgfTtcclxufSJdfQ==
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZVN0YXRlTWV0aG9kcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2FyaWwvaHR0cC9zcmMvc2VydmljZVN0YXRlTWV0aG9kcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx1REFBdUQ7QUFJdkQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUcvQixNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUcsQ0FBQyxNQUFnQyxFQUFFLFdBQWdCLEVBQVEsRUFBRTtJQUNwRixNQUFNLENBQUMsV0FBVyxDQUFDLEdBQUc7UUFDcEIsYUFBYSxFQUFFLElBQUk7UUFDbkIsa0JBQWtCLEVBQUUsSUFBSTtRQUN4QixrQkFBa0IsRUFBRSxLQUFLO1FBQ3pCLGlCQUFpQixFQUFFLEtBQUs7S0FDekIsQ0FBQztBQUNKLENBQUMsQ0FBQTtBQUNELE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxDQUFDLE1BQWdDLEVBQUUsV0FBZ0IsRUFBUSxFQUFFO0lBQ3ZGLE1BQU0sQ0FBQyxXQUFXLENBQUMsR0FBRztRQUNwQixhQUFhLEVBQUUsSUFBSTtRQUNuQixrQkFBa0IsRUFBRSxLQUFLO1FBQ3pCLGtCQUFrQixFQUFFLElBQUk7UUFDeEIsaUJBQWlCLEVBQUUsS0FBSztLQUN6QixDQUFDO0FBQ0osQ0FBQyxDQUFBO0FBQ0QsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLENBQUMsTUFBZ0MsRUFBRSxXQUFnQixFQUFFLEtBQXdCLEVBQVEsRUFBRTtJQUMvRyxNQUFNLENBQUMsV0FBVyxDQUFDLEdBQUc7UUFDcEIsYUFBYSxFQUFFLElBQUk7UUFDbkIsa0JBQWtCLEVBQUUsS0FBSztRQUN6QixrQkFBa0IsRUFBRSxJQUFJO1FBQ3hCLGlCQUFpQixFQUFFLElBQUk7UUFDdkIsVUFBVSxFQUFFLElBQUksT0FBTyxFQUFPO0tBQy9CLENBQUM7SUFDRixNQUFNLENBQUMsV0FBVyxDQUFDLEVBQUUsVUFBVSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUMvQyxDQUFDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55ICovXHJcblxyXG5pbXBvcnQgeyBIdHRwRXJyb3JSZXNwb25zZSB9IGZyb20gXCJAYW5ndWxhci9jb21tb24vaHR0cFwiO1xyXG5cclxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7IFNlcnZpY2VDYWxsU3RhdGVNYXAgfSBmcm9tIFwiLi4vbGliL2ludGVyZmFjZXNcIjtcclxuXHJcbmV4cG9ydCBjb25zdCBjYWxsU3RhdGUgPSAoc3RhdGVzOiBTZXJ2aWNlQ2FsbFN0YXRlTWFwPGFueT4sIHNlcnZpY2VOYW1lOiBhbnkpOiB2b2lkID0+IHtcclxuICBzdGF0ZXNbc2VydmljZU5hbWVdID0ge1xyXG4gICAgc2VydmljZUNhbGxlZDogdHJ1ZSxcclxuICAgIHdhaXRpbmdGb3JSZXNwb25zZTogdHJ1ZSxcclxuICAgIHJlc3BvbnNlSXNSZWNpZXZlZDogZmFsc2UsXHJcbiAgICBzZXJ2aWNlQ2FsbEZhaWxlZDogZmFsc2VcclxuICB9O1xyXG59XHJcbmV4cG9ydCBjb25zdCBzdWNjZXNzU3RhdGUgPSAoc3RhdGVzOiBTZXJ2aWNlQ2FsbFN0YXRlTWFwPGFueT4sIHNlcnZpY2VOYW1lOiBhbnkpOiB2b2lkID0+IHtcclxuICBzdGF0ZXNbc2VydmljZU5hbWVdID0ge1xyXG4gICAgc2VydmljZUNhbGxlZDogdHJ1ZSxcclxuICAgIHdhaXRpbmdGb3JSZXNwb25zZTogZmFsc2UsXHJcbiAgICByZXNwb25zZUlzUmVjaWV2ZWQ6IHRydWUsXHJcbiAgICBzZXJ2aWNlQ2FsbEZhaWxlZDogZmFsc2UsXHJcbiAgfTtcclxufVxyXG5leHBvcnQgY29uc3QgZXJyb3JTdGF0ZSA9IChzdGF0ZXM6IFNlcnZpY2VDYWxsU3RhdGVNYXA8YW55Piwgc2VydmljZU5hbWU6IGFueSwgZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKTogdm9pZCA9PiB7XHJcbiAgc3RhdGVzW3NlcnZpY2VOYW1lXSA9IHtcclxuICAgIHNlcnZpY2VDYWxsZWQ6IHRydWUsXHJcbiAgICB3YWl0aW5nRm9yUmVzcG9uc2U6IGZhbHNlLFxyXG4gICAgcmVzcG9uc2VJc1JlY2lldmVkOiB0cnVlLFxyXG4gICAgc2VydmljZUNhbGxGYWlsZWQ6IHRydWUsXHJcbiAgICBlcnJvckV2ZW50OiBuZXcgU3ViamVjdDxhbnk+KClcclxuICB9O1xyXG4gIHN0YXRlc1tzZXJ2aWNlTmFtZV0/LmVycm9yRXZlbnQ/Lm5leHQoZXJyb3IpO1xyXG59Il19
@@ -0,0 +1,41 @@
1
+ import { AsyncPipe, NgTemplateOutlet } from '@angular/common';
2
+ import { Component } from '@angular/core';
3
+ import { NavigationEnd } from '@angular/router';
4
+ import { BehaviorSubject } from 'rxjs';
5
+ import { filter } from 'rxjs/operators';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "@angular/router";
8
+ export class AppBreadcrumbComponent {
9
+ constructor(router) {
10
+ this.router = router;
11
+ this._breadcrumbs$ = new BehaviorSubject([]);
12
+ this.breadcrumbs$ = this._breadcrumbs$.asObservable();
13
+ this.router.events.pipe(filter((event) => event instanceof NavigationEnd)).subscribe(event => {
14
+ const root = this.router.routerState.snapshot.root;
15
+ const breadcrumbs = [];
16
+ this.addBreadcrumb(root, [], breadcrumbs);
17
+ this._breadcrumbs$.next(breadcrumbs);
18
+ });
19
+ }
20
+ addBreadcrumb(route, parentUrl, breadcrumbs) {
21
+ const routeUrl = parentUrl.concat(route.url.map(url => url.path));
22
+ const breadcrumb = route.data['breadcrumb'];
23
+ const parentBreadcrumb = route.parent && route.parent.data ? route.parent.data['breadcrumb'] : null;
24
+ if (breadcrumb && breadcrumb !== parentBreadcrumb) {
25
+ breadcrumbs.push({
26
+ label: route.data['breadcrumb'],
27
+ url: '/' + routeUrl.join('/')
28
+ });
29
+ }
30
+ if (route.firstChild) {
31
+ this.addBreadcrumb(route.firstChild, routeUrl, breadcrumbs);
32
+ }
33
+ }
34
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: AppBreadcrumbComponent, deps: [{ token: i1.Router }], target: i0.ɵɵFactoryTarget.Component }); }
35
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.2", type: AppBreadcrumbComponent, isStandalone: true, selector: "app-breadcrumb", ngImport: i0, template: "<nav class=\"layout-breadcrumb\">\n\t<ol>\n\t\t@for (item of breadcrumbs$ | async; track item; let last = $last) {\n\t\t\t<li>{{ item.label }}</li>\n\t\t\t@if (!last) {\n\t\t\t\t<li class=\"layout-breadcrumb-chevron\">/</li>\n\t\t\t}\n\t\t}\n\t</ol>\n</nav>\n", dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }] }); }
36
+ }
37
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: AppBreadcrumbComponent, decorators: [{
38
+ type: Component,
39
+ args: [{ standalone: true, selector: 'app-breadcrumb', imports: [NgTemplateOutlet, AsyncPipe], template: "<nav class=\"layout-breadcrumb\">\n\t<ol>\n\t\t@for (item of breadcrumbs$ | async; track item; let last = $last) {\n\t\t\t<li>{{ item.label }}</li>\n\t\t\t@if (!last) {\n\t\t\t\t<li class=\"layout-breadcrumb-chevron\">/</li>\n\t\t\t}\n\t\t}\n\t</ol>\n</nav>\n" }]
40
+ }], ctorParameters: () => [{ type: i1.Router }] });
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLmJyZWFkY3J1bWIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJpbC90aGVtZS9sYXlvdXQvYXBwL2JyZWFkY3J1bWIvYXBwLmJyZWFkY3J1bWIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJpbC90aGVtZS9sYXlvdXQvYXBwL2JyZWFkY3J1bWIvYXBwLmJyZWFkY3J1bWIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzlELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUEwQixhQUFhLEVBQVUsTUFBTSxpQkFBaUIsQ0FBQztBQUVoRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7O0FBYXhDLE1BQU0sT0FBTyxzQkFBc0I7SUFNbEMsWUFBb0IsTUFBYztRQUFkLFdBQU0sR0FBTixNQUFNLENBQVE7UUFKakIsa0JBQWEsR0FBRyxJQUFJLGVBQWUsQ0FBZSxFQUFFLENBQUMsQ0FBQztRQUU5RCxpQkFBWSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxFQUFFLENBQUM7UUFHekQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxZQUFZLGFBQWEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQzVGLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUM7WUFDbkQsTUFBTSxXQUFXLEdBQWlCLEVBQUUsQ0FBQztZQUNyQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsV0FBVyxDQUFDLENBQUM7WUFFMUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDdEMsQ0FBQyxDQUFDLENBQUM7SUFDSixDQUFDO0lBRU8sYUFBYSxDQUFDLEtBQTZCLEVBQUUsU0FBbUIsRUFBRSxXQUF5QjtRQUNsRyxNQUFNLFFBQVEsR0FBRyxTQUFTLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDbEUsTUFBTSxVQUFVLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUM1QyxNQUFNLGdCQUFnQixHQUFHLEtBQUssQ0FBQyxNQUFNLElBQUksS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFFcEcsSUFBSSxVQUFVLElBQUksVUFBVSxLQUFLLGdCQUFnQixFQUFFLENBQUM7WUFDbkQsV0FBVyxDQUFDLElBQUksQ0FBQztnQkFDaEIsS0FBSyxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDO2dCQUMvQixHQUFHLEVBQUUsR0FBRyxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDO2FBQzdCLENBQUMsQ0FBQztRQUNKLENBQUM7UUFFRCxJQUFJLEtBQUssQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUN0QixJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxVQUFVLEVBQUUsUUFBUSxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBQzdELENBQUM7SUFDRixDQUFDOzhHQS9CVyxzQkFBc0I7a0dBQXRCLHNCQUFzQiwwRUNsQm5DLHFRQVVBLHVDREs2QixTQUFTOzsyRkFHekIsc0JBQXNCO2tCQU5sQyxTQUFTO2lDQUNHLElBQUksWUFDTixnQkFBZ0IsV0FDakIsQ0FBQyxnQkFBZ0IsRUFBRSxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBc3luY1BpcGUsIE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBOYXZpZ2F0aW9uRW5kLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpbHRlciB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW50ZXJmYWNlIEJyZWFkY3J1bWIge1xuXHRsYWJlbDogc3RyaW5nO1xuXHR1cmw/OiBzdHJpbmc7XG59XG5cbkBDb21wb25lbnQoe1xuXHRzdGFuZGFsb25lOiB0cnVlLFxuXHRzZWxlY3RvcjogJ2FwcC1icmVhZGNydW1iJyxcblx0aW1wb3J0czogW05nVGVtcGxhdGVPdXRsZXQsIEFzeW5jUGlwZV0sXG5cdHRlbXBsYXRlVXJsOiAnLi9hcHAuYnJlYWRjcnVtYi5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgQXBwQnJlYWRjcnVtYkNvbXBvbmVudCB7XG5cblx0cHJpdmF0ZSByZWFkb25seSBfYnJlYWRjcnVtYnMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxCcmVhZGNydW1iW10+KFtdKTtcblxuXHRyZWFkb25seSBicmVhZGNydW1icyQgPSB0aGlzLl9icmVhZGNydW1icyQuYXNPYnNlcnZhYmxlKCk7XG5cblx0Y29uc3RydWN0b3IocHJpdmF0ZSByb3V0ZXI6IFJvdXRlcikge1xuXHRcdHRoaXMucm91dGVyLmV2ZW50cy5waXBlKGZpbHRlcigoZXZlbnQpID0+IGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvbkVuZCkpLnN1YnNjcmliZShldmVudCA9PiB7XG5cdFx0XHRjb25zdCByb290ID0gdGhpcy5yb3V0ZXIucm91dGVyU3RhdGUuc25hcHNob3Qucm9vdDtcblx0XHRcdGNvbnN0IGJyZWFkY3J1bWJzOiBCcmVhZGNydW1iW10gPSBbXTtcblx0XHRcdHRoaXMuYWRkQnJlYWRjcnVtYihyb290LCBbXSwgYnJlYWRjcnVtYnMpO1xuXG5cdFx0XHR0aGlzLl9icmVhZGNydW1icyQubmV4dChicmVhZGNydW1icyk7XG5cdFx0fSk7XG5cdH1cblxuXHRwcml2YXRlIGFkZEJyZWFkY3J1bWIocm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIHBhcmVudFVybDogc3RyaW5nW10sIGJyZWFkY3J1bWJzOiBCcmVhZGNydW1iW10pIHtcblx0XHRjb25zdCByb3V0ZVVybCA9IHBhcmVudFVybC5jb25jYXQocm91dGUudXJsLm1hcCh1cmwgPT4gdXJsLnBhdGgpKTtcblx0XHRjb25zdCBicmVhZGNydW1iID0gcm91dGUuZGF0YVsnYnJlYWRjcnVtYiddO1xuXHRcdGNvbnN0IHBhcmVudEJyZWFkY3J1bWIgPSByb3V0ZS5wYXJlbnQgJiYgcm91dGUucGFyZW50LmRhdGEgPyByb3V0ZS5wYXJlbnQuZGF0YVsnYnJlYWRjcnVtYiddIDogbnVsbDtcblxuXHRcdGlmIChicmVhZGNydW1iICYmIGJyZWFkY3J1bWIgIT09IHBhcmVudEJyZWFkY3J1bWIpIHtcblx0XHRcdGJyZWFkY3J1bWJzLnB1c2goe1xuXHRcdFx0XHRsYWJlbDogcm91dGUuZGF0YVsnYnJlYWRjcnVtYiddLFxuXHRcdFx0XHR1cmw6ICcvJyArIHJvdXRlVXJsLmpvaW4oJy8nKVxuXHRcdFx0fSk7XG5cdFx0fVxuXG5cdFx0aWYgKHJvdXRlLmZpcnN0Q2hpbGQpIHtcblx0XHRcdHRoaXMuYWRkQnJlYWRjcnVtYihyb3V0ZS5maXJzdENoaWxkLCByb3V0ZVVybCwgYnJlYWRjcnVtYnMpO1xuXHRcdH1cblx0fVxuXG59XG4iLCI8bmF2IGNsYXNzPVwibGF5b3V0LWJyZWFkY3J1bWJcIj5cblx0PG9sPlxuXHRcdEBmb3IgKGl0ZW0gb2YgYnJlYWRjcnVtYnMkIHwgYXN5bmM7IHRyYWNrIGl0ZW07IGxldCBsYXN0ID0gJGxhc3QpIHtcblx0XHRcdDxsaT57eyBpdGVtLmxhYmVsIH19PC9saT5cblx0XHRcdEBpZiAoIWxhc3QpIHtcblx0XHRcdFx0PGxpIGNsYXNzPVwibGF5b3V0LWJyZWFkY3J1bWItY2hldnJvblwiPi88L2xpPlxuXHRcdFx0fVxuXHRcdH1cblx0PC9vbD5cbjwvbmF2PlxuIl19
@@ -0,0 +1,134 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import { NgClass, NgStyle } from '@angular/common';
3
+ import { FormsModule } from '@angular/forms';
4
+ import { SidebarModule } from 'primeng/sidebar';
5
+ import { RadioButtonModule } from 'primeng/radiobutton';
6
+ import { ButtonModule } from 'primeng/button';
7
+ import { InputSwitchModule } from 'primeng/inputswitch';
8
+ import * as i0 from "@angular/core";
9
+ import * as i1 from "../../service/app.layout.service";
10
+ import * as i2 from "../../service/app.menu.service";
11
+ import * as i3 from "@angular/forms";
12
+ import * as i4 from "primeng/sidebar";
13
+ import * as i5 from "primeng/radiobutton";
14
+ import * as i6 from "primeng/button";
15
+ import * as i7 from "primeng/inputswitch";
16
+ export class AppConfigComponent {
17
+ constructor(layoutService, menuService) {
18
+ this.layoutService = layoutService;
19
+ this.menuService = menuService;
20
+ this.minimal = false;
21
+ this.componentThemes = [];
22
+ this.scales = [12, 13, 14, 15, 16];
23
+ }
24
+ get visible() {
25
+ return this.layoutService.state.configSidebarVisible;
26
+ }
27
+ set visible(_val) {
28
+ this.layoutService.state.configSidebarVisible = _val;
29
+ }
30
+ get scale() {
31
+ return this.layoutService.config().scale;
32
+ }
33
+ set scale(_val) {
34
+ this.layoutService.config.update((config) => ({
35
+ ...config,
36
+ scale: _val,
37
+ }));
38
+ }
39
+ get menuMode() {
40
+ return this.layoutService.config().menuMode;
41
+ }
42
+ set menuMode(_val) {
43
+ this.layoutService.config.update((config) => ({
44
+ ...config,
45
+ menuMode: _val,
46
+ }));
47
+ if (this.layoutService.isSlimPlus() ||
48
+ this.layoutService.isSlim() ||
49
+ this.layoutService.isHorizontal()) {
50
+ this.menuService.reset();
51
+ }
52
+ }
53
+ get colorScheme() {
54
+ return this.layoutService.config().colorScheme;
55
+ }
56
+ set colorScheme(_val) {
57
+ this.layoutService.config.update((config) => ({
58
+ ...config,
59
+ colorScheme: _val,
60
+ }));
61
+ }
62
+ get inputStyle() {
63
+ return this.layoutService.config().inputStyle;
64
+ }
65
+ set inputStyle(_val) {
66
+ this.layoutService.config.update((config) => ({
67
+ ...config,
68
+ inputStyle: _val,
69
+ }));
70
+ }
71
+ get ripple() {
72
+ return this.layoutService.config().ripple;
73
+ }
74
+ set ripple(_val) {
75
+ this.layoutService.config.update((config) => ({
76
+ ...config,
77
+ ripple: _val,
78
+ }));
79
+ }
80
+ get menuTheme() {
81
+ return this.layoutService.config().menuTheme;
82
+ }
83
+ set menuTheme(_val) {
84
+ this.layoutService.config.update((config) => ({
85
+ ...config,
86
+ menuTheme: _val,
87
+ }));
88
+ }
89
+ get theme() {
90
+ return this.layoutService.config().theme;
91
+ }
92
+ set theme(_val) {
93
+ this.layoutService.config.update((config) => ({
94
+ ...config,
95
+ theme: _val,
96
+ }));
97
+ }
98
+ ngOnInit() {
99
+ this.componentThemes = [
100
+ { name: 'indigo', color: '#6366F1' },
101
+ { name: 'blue', color: '#3B82F6' },
102
+ { name: 'purple', color: '#8B5CF6' },
103
+ { name: 'teal', color: '#14B8A6' },
104
+ { name: 'cyan', color: '#06b6d4' },
105
+ { name: 'green', color: '#10b981' },
106
+ { name: 'orange', color: '#f59e0b' },
107
+ { name: 'pink', color: '#d946ef' },
108
+ ];
109
+ }
110
+ onConfigButtonClick() {
111
+ this.layoutService.showConfigSidebar();
112
+ }
113
+ changeColorScheme(colorScheme) {
114
+ this.colorScheme = colorScheme;
115
+ }
116
+ changeTheme(theme) {
117
+ this.theme = theme;
118
+ }
119
+ decrementScale() {
120
+ this.scale--;
121
+ }
122
+ incrementScale() {
123
+ this.scale++;
124
+ }
125
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: AppConfigComponent, deps: [{ token: i1.LayoutService }, { token: i2.MenuService }], target: i0.ɵɵFactoryTarget.Component }); }
126
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.2", type: AppConfigComponent, isStandalone: true, selector: "app-config", inputs: { minimal: "minimal" }, ngImport: i0, template: "<button\n\tclass=\"layout-config-button p-link\"\n\ttype=\"button\"\n\t(click)=\"onConfigButtonClick()\">\n\t<i class=\"pi pi-cog\"></i>\n</button>\n\n<p-sidebar\n\t[(visible)]=\"visible\"\n\tposition=\"right\"\n\t[transitionOptions]=\"'.3s cubic-bezier(0, 0, 0.2, 1)'\"\n\tstyleClass=\"layout-config-sidebar w-18rem\">\n\t<h5>Themes</h5>\n\t<div class=\"flex flex-wrap row-gap-3\">\n\t\t@for (theme of componentThemes; track theme) {\n\t\t\t<div class=\"w-3\">\n\t\t\t\t<button\n\t\t\t\t\ttype=\"button\"\n\t\t\t\t\tclass=\"cursor-pointer p-link w-2rem h-2rem border-circle flex-shrink-0 flex align-items-center justify-content-center\"\n\t\t\t\t\t(click)=\"changeTheme(theme.name)\"\n\t\t\t\t\t[ngStyle]=\"{ 'background-color': theme.color }\">\n\t\t\t\t\t@if (theme.name == this.layoutService.config().theme) {\n\t\t\t\t\t\t<i class=\"pi pi-check text-white\"></i>\n\t\t\t\t\t}\n\t\t\t\t</button>\n\t\t\t</div>\n\t\t}\n\t</div>\n\n\t<h5>Scale</h5>\n\t<div class=\"flex align-items-center\">\n\t\t<button\n\t\t\ticon=\"pi pi-minus\"\n\t\t\ttype=\"button\"\n\t\t\tpButton\n\t\t\t(click)=\"decrementScale()\"\n\t\t\tclass=\"p-button-text p-button-rounded w-2rem h-2rem mr-2\"\n\t\t\t[disabled]=\"scale === scales[0]\"></button>\n\t\t<div class=\"flex gap-2 align-items-center\">\n\t\t\t@for (s of scales; track s) {\n\t\t\t\t<i\n\t\t\t\t\tclass=\"pi pi-circle-fill text-300\"\n\t\t\t\t\t[ngClass]=\"{ 'text-primary-500': s === scale }\"></i>\n\t\t\t}\n\t\t</div>\n\t\t<button\n\t\t\ticon=\"pi pi-plus\"\n\t\t\ttype=\"button\"\n\t\t\tpButton\n\t\t\t(click)=\"incrementScale()\"\n\t\t\tclass=\"p-button-text p-button-rounded w-2rem h-2rem ml-2\"\n\t\t\t[disabled]=\"scale === scales[scales.length - 1]\"></button>\n\t</div>\n\n\t@if (!minimal) {\n\t\t<h5>Menu Type</h5>\n\t\t<div class=\"flex flex-wrap row-gap-3\">\n\t\t\t<div class=\"flex align-items-center gap-2 w-6\">\n\t\t\t\t<p-radioButton\n\t\t\t\t\tname=\"menuMode\"\n\t\t\t\t\tvalue=\"static\"\n\t\t\t\t\t[(ngModel)]=\"menuMode\"\n\t\t\t\t\tinputId=\"mode1\"></p-radioButton>\n\t\t\t\t<label for=\"mode1\">Static</label>\n\t\t\t</div>\n\t\t\t<div class=\"flex align-items-center gap-2 w-6\">\n\t\t\t\t<p-radioButton\n\t\t\t\t\tname=\"menuMode\"\n\t\t\t\t\tvalue=\"overlay\"\n\t\t\t\t\t[(ngModel)]=\"menuMode\"\n\t\t\t\t\tinputId=\"mode2\"></p-radioButton>\n\t\t\t\t<label for=\"mode2\">Overlay</label>\n\t\t\t</div>\n\t\t\t<div class=\"flex align-items-center gap-2 w-6\">\n\t\t\t\t<p-radioButton\n\t\t\t\t\tname=\"menuMode\"\n\t\t\t\t\tvalue=\"slim\"\n\t\t\t\t\t[(ngModel)]=\"menuMode\"\n\t\t\t\t\tinputId=\"mode3\"></p-radioButton>\n\t\t\t\t<label for=\"mode3\">Slim</label>\n\t\t\t</div>\n\t\t\t<div class=\"flex align-items-center gap-2 w-6\">\n\t\t\t\t<p-radioButton\n\t\t\t\t\tname=\"menuMode\"\n\t\t\t\t\tvalue=\"slim-plus\"\n\t\t\t\t\t[(ngModel)]=\"menuMode\"\n\t\t\t\t\tinputId=\"mode4\"></p-radioButton>\n\t\t\t\t<label for=\"mode3\">Slim +</label>\n\t\t\t</div>\n\t\t\t<div class=\"flex align-items-center gap-2 w-6\">\n\t\t\t\t<p-radioButton\n\t\t\t\t\tname=\"menuMode\"\n\t\t\t\t\tvalue=\"reveal\"\n\t\t\t\t\t[(ngModel)]=\"menuMode\"\n\t\t\t\t\tinputId=\"mode6\"></p-radioButton>\n\t\t\t\t<label for=\"mode5\">Reveal</label>\n\t\t\t</div>\n\t\t\t<div class=\"flex align-items-center gap-2 w-6\">\n\t\t\t\t<p-radioButton\n\t\t\t\t\tname=\"menuMode\"\n\t\t\t\t\tvalue=\"drawer\"\n\t\t\t\t\t[(ngModel)]=\"menuMode\"\n\t\t\t\t\tinputId=\"mode7\"></p-radioButton>\n\t\t\t\t<label for=\"mode6\">Drawer</label>\n\t\t\t</div>\n\t\t\t<div class=\"flex align-items-center gap-2 w-6\">\n\t\t\t\t<p-radioButton\n\t\t\t\t\tname=\"menuMode\"\n\t\t\t\t\tvalue=\"horizontal\"\n\t\t\t\t\t[(ngModel)]=\"menuMode\"\n\t\t\t\t\tinputId=\"mode5\"></p-radioButton>\n\t\t\t\t<label for=\"mode4\">Horizontal</label>\n\t\t\t</div>\n\t\t</div>\n\t\t<h5>Menu Theme</h5>\n\t\t<div class=\"field-radiobutton\">\n\t\t\t<p-radioButton\n\t\t\t\tname=\"menuTheme\"\n\t\t\t\tvalue=\"colorScheme\"\n\t\t\t\t[(ngModel)]=\"menuTheme\"\n\t\t\t\tinputId=\"menutheme-colorscheme\"></p-radioButton>\n\t\t\t<label for=\"menutheme-colorscheme\">Color Scheme</label>\n\t\t</div>\n\t\t<div class=\"field-radiobutton\">\n\t\t\t<p-radioButton\n\t\t\t\tname=\"menuTheme\"\n\t\t\t\tvalue=\"primaryColor\"\n\t\t\t\t[(ngModel)]=\"menuTheme\"\n\t\t\t\tinputId=\"menutheme-primarycolor\"></p-radioButton>\n\t\t\t<label for=\"menutheme-primarycolor\">Primary Color</label>\n\t\t</div>\n\t\t<div class=\"field-radiobutton\">\n\t\t\t<p-radioButton\n\t\t\t\tname=\"menuTheme\"\n\t\t\t\tvalue=\"transparent\"\n\t\t\t\t[(ngModel)]=\"menuTheme\"\n\t\t\t\tinputId=\"menutheme-transparent\"></p-radioButton>\n\t\t\t<label for=\"menutheme-transparent\">Transparent</label>\n\t\t</div>\n\t}\n\n\t<h5>Color Scheme</h5>\n\t<div class=\"field-radiobutton\">\n\t\t<p-radioButton\n\t\t\tname=\"colorScheme\"\n\t\t\tvalue=\"light\"\n\t\t\t[(ngModel)]=\"colorScheme\"\n\t\t\tinputId=\"mode-light\"></p-radioButton>\n\t\t<label for=\"mode-light\">Light</label>\n\t</div>\n\t<div class=\"field-radiobutton\">\n\t\t<p-radioButton\n\t\t\tname=\"colorScheme\"\n\t\t\tvalue=\"dim\"\n\t\t\t[(ngModel)]=\"colorScheme\"\n\t\t\tinputId=\"mode-dim\"></p-radioButton>\n\t\t<label for=\"mode-dim\">Dim</label>\n\t</div>\n\t<div class=\"field-radiobutton\">\n\t\t<p-radioButton\n\t\t\tname=\"colorScheme\"\n\t\t\tvalue=\"dark\"\n\t\t\t[(ngModel)]=\"colorScheme\"\n\t\t\tinputId=\"mode-dark\"></p-radioButton>\n\t\t<label for=\"mode-dark\">Dark</label>\n\t</div>\n\n\t@if (!minimal) {\n\t\t<h5>Input Style</h5>\n\t\t<div class=\"flex\">\n\t\t\t<div class=\"field-radiobutton flex-1\">\n\t\t\t\t<p-radioButton\n\t\t\t\t\tname=\"inputStyle\"\n\t\t\t\t\tvalue=\"outlined\"\n\t\t\t\t\t[(ngModel)]=\"inputStyle\"\n\t\t\t\t\tinputId=\"outlined_input\"></p-radioButton>\n\t\t\t\t<label for=\"outlined_input\">Outlined</label>\n\t\t\t</div>\n\t\t\t<div class=\"field-radiobutton flex-1\">\n\t\t\t\t<p-radioButton\n\t\t\t\t\tname=\"inputStyle\"\n\t\t\t\t\tvalue=\"filled\"\n\t\t\t\t\t[(ngModel)]=\"inputStyle\"\n\t\t\t\t\tinputId=\"filled_input\"></p-radioButton>\n\t\t\t\t<label for=\"filled_input\">Filled</label>\n\t\t\t</div>\n\t\t</div>\n\t\t<h5>Ripple Effect</h5>\n\t\t<p-inputSwitch [(ngModel)]=\"ripple\"></p-inputSwitch>\n\t}\n</p-sidebar>\n", dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: SidebarModule }, { kind: "component", type: i4.Sidebar, selector: "p-sidebar", inputs: ["appendTo", "blockScroll", "style", "styleClass", "ariaCloseLabel", "autoZIndex", "baseZIndex", "modal", "dismissible", "showCloseIcon", "closeOnEscape", "transitionOptions", "visible", "position", "fullScreen"], outputs: ["onShow", "onHide", "visibleChange"] }, { kind: "ngmodule", type: RadioButtonModule }, { kind: "component", type: i5.RadioButton, selector: "p-radioButton", inputs: ["value", "formControlName", "name", "disabled", "label", "tabindex", "inputId", "ariaLabelledBy", "ariaLabel", "style", "styleClass", "labelStyleClass"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i6.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading"] }, { kind: "ngmodule", type: InputSwitchModule }, { kind: "component", type: i7.InputSwitch, selector: "p-inputSwitch", inputs: ["style", "styleClass", "tabindex", "inputId", "name", "disabled", "readonly", "trueValue", "falseValue", "ariaLabel", "ariaLabelledBy"], outputs: ["onChange"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] }); }
127
+ }
128
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: AppConfigComponent, decorators: [{
129
+ type: Component,
130
+ args: [{ standalone: true, selector: 'app-config', imports: [FormsModule, SidebarModule, RadioButtonModule, ButtonModule, InputSwitchModule, NgStyle, NgClass], template: "<button\n\tclass=\"layout-config-button p-link\"\n\ttype=\"button\"\n\t(click)=\"onConfigButtonClick()\">\n\t<i class=\"pi pi-cog\"></i>\n</button>\n\n<p-sidebar\n\t[(visible)]=\"visible\"\n\tposition=\"right\"\n\t[transitionOptions]=\"'.3s cubic-bezier(0, 0, 0.2, 1)'\"\n\tstyleClass=\"layout-config-sidebar w-18rem\">\n\t<h5>Themes</h5>\n\t<div class=\"flex flex-wrap row-gap-3\">\n\t\t@for (theme of componentThemes; track theme) {\n\t\t\t<div class=\"w-3\">\n\t\t\t\t<button\n\t\t\t\t\ttype=\"button\"\n\t\t\t\t\tclass=\"cursor-pointer p-link w-2rem h-2rem border-circle flex-shrink-0 flex align-items-center justify-content-center\"\n\t\t\t\t\t(click)=\"changeTheme(theme.name)\"\n\t\t\t\t\t[ngStyle]=\"{ 'background-color': theme.color }\">\n\t\t\t\t\t@if (theme.name == this.layoutService.config().theme) {\n\t\t\t\t\t\t<i class=\"pi pi-check text-white\"></i>\n\t\t\t\t\t}\n\t\t\t\t</button>\n\t\t\t</div>\n\t\t}\n\t</div>\n\n\t<h5>Scale</h5>\n\t<div class=\"flex align-items-center\">\n\t\t<button\n\t\t\ticon=\"pi pi-minus\"\n\t\t\ttype=\"button\"\n\t\t\tpButton\n\t\t\t(click)=\"decrementScale()\"\n\t\t\tclass=\"p-button-text p-button-rounded w-2rem h-2rem mr-2\"\n\t\t\t[disabled]=\"scale === scales[0]\"></button>\n\t\t<div class=\"flex gap-2 align-items-center\">\n\t\t\t@for (s of scales; track s) {\n\t\t\t\t<i\n\t\t\t\t\tclass=\"pi pi-circle-fill text-300\"\n\t\t\t\t\t[ngClass]=\"{ 'text-primary-500': s === scale }\"></i>\n\t\t\t}\n\t\t</div>\n\t\t<button\n\t\t\ticon=\"pi pi-plus\"\n\t\t\ttype=\"button\"\n\t\t\tpButton\n\t\t\t(click)=\"incrementScale()\"\n\t\t\tclass=\"p-button-text p-button-rounded w-2rem h-2rem ml-2\"\n\t\t\t[disabled]=\"scale === scales[scales.length - 1]\"></button>\n\t</div>\n\n\t@if (!minimal) {\n\t\t<h5>Menu Type</h5>\n\t\t<div class=\"flex flex-wrap row-gap-3\">\n\t\t\t<div class=\"flex align-items-center gap-2 w-6\">\n\t\t\t\t<p-radioButton\n\t\t\t\t\tname=\"menuMode\"\n\t\t\t\t\tvalue=\"static\"\n\t\t\t\t\t[(ngModel)]=\"menuMode\"\n\t\t\t\t\tinputId=\"mode1\"></p-radioButton>\n\t\t\t\t<label for=\"mode1\">Static</label>\n\t\t\t</div>\n\t\t\t<div class=\"flex align-items-center gap-2 w-6\">\n\t\t\t\t<p-radioButton\n\t\t\t\t\tname=\"menuMode\"\n\t\t\t\t\tvalue=\"overlay\"\n\t\t\t\t\t[(ngModel)]=\"menuMode\"\n\t\t\t\t\tinputId=\"mode2\"></p-radioButton>\n\t\t\t\t<label for=\"mode2\">Overlay</label>\n\t\t\t</div>\n\t\t\t<div class=\"flex align-items-center gap-2 w-6\">\n\t\t\t\t<p-radioButton\n\t\t\t\t\tname=\"menuMode\"\n\t\t\t\t\tvalue=\"slim\"\n\t\t\t\t\t[(ngModel)]=\"menuMode\"\n\t\t\t\t\tinputId=\"mode3\"></p-radioButton>\n\t\t\t\t<label for=\"mode3\">Slim</label>\n\t\t\t</div>\n\t\t\t<div class=\"flex align-items-center gap-2 w-6\">\n\t\t\t\t<p-radioButton\n\t\t\t\t\tname=\"menuMode\"\n\t\t\t\t\tvalue=\"slim-plus\"\n\t\t\t\t\t[(ngModel)]=\"menuMode\"\n\t\t\t\t\tinputId=\"mode4\"></p-radioButton>\n\t\t\t\t<label for=\"mode3\">Slim +</label>\n\t\t\t</div>\n\t\t\t<div class=\"flex align-items-center gap-2 w-6\">\n\t\t\t\t<p-radioButton\n\t\t\t\t\tname=\"menuMode\"\n\t\t\t\t\tvalue=\"reveal\"\n\t\t\t\t\t[(ngModel)]=\"menuMode\"\n\t\t\t\t\tinputId=\"mode6\"></p-radioButton>\n\t\t\t\t<label for=\"mode5\">Reveal</label>\n\t\t\t</div>\n\t\t\t<div class=\"flex align-items-center gap-2 w-6\">\n\t\t\t\t<p-radioButton\n\t\t\t\t\tname=\"menuMode\"\n\t\t\t\t\tvalue=\"drawer\"\n\t\t\t\t\t[(ngModel)]=\"menuMode\"\n\t\t\t\t\tinputId=\"mode7\"></p-radioButton>\n\t\t\t\t<label for=\"mode6\">Drawer</label>\n\t\t\t</div>\n\t\t\t<div class=\"flex align-items-center gap-2 w-6\">\n\t\t\t\t<p-radioButton\n\t\t\t\t\tname=\"menuMode\"\n\t\t\t\t\tvalue=\"horizontal\"\n\t\t\t\t\t[(ngModel)]=\"menuMode\"\n\t\t\t\t\tinputId=\"mode5\"></p-radioButton>\n\t\t\t\t<label for=\"mode4\">Horizontal</label>\n\t\t\t</div>\n\t\t</div>\n\t\t<h5>Menu Theme</h5>\n\t\t<div class=\"field-radiobutton\">\n\t\t\t<p-radioButton\n\t\t\t\tname=\"menuTheme\"\n\t\t\t\tvalue=\"colorScheme\"\n\t\t\t\t[(ngModel)]=\"menuTheme\"\n\t\t\t\tinputId=\"menutheme-colorscheme\"></p-radioButton>\n\t\t\t<label for=\"menutheme-colorscheme\">Color Scheme</label>\n\t\t</div>\n\t\t<div class=\"field-radiobutton\">\n\t\t\t<p-radioButton\n\t\t\t\tname=\"menuTheme\"\n\t\t\t\tvalue=\"primaryColor\"\n\t\t\t\t[(ngModel)]=\"menuTheme\"\n\t\t\t\tinputId=\"menutheme-primarycolor\"></p-radioButton>\n\t\t\t<label for=\"menutheme-primarycolor\">Primary Color</label>\n\t\t</div>\n\t\t<div class=\"field-radiobutton\">\n\t\t\t<p-radioButton\n\t\t\t\tname=\"menuTheme\"\n\t\t\t\tvalue=\"transparent\"\n\t\t\t\t[(ngModel)]=\"menuTheme\"\n\t\t\t\tinputId=\"menutheme-transparent\"></p-radioButton>\n\t\t\t<label for=\"menutheme-transparent\">Transparent</label>\n\t\t</div>\n\t}\n\n\t<h5>Color Scheme</h5>\n\t<div class=\"field-radiobutton\">\n\t\t<p-radioButton\n\t\t\tname=\"colorScheme\"\n\t\t\tvalue=\"light\"\n\t\t\t[(ngModel)]=\"colorScheme\"\n\t\t\tinputId=\"mode-light\"></p-radioButton>\n\t\t<label for=\"mode-light\">Light</label>\n\t</div>\n\t<div class=\"field-radiobutton\">\n\t\t<p-radioButton\n\t\t\tname=\"colorScheme\"\n\t\t\tvalue=\"dim\"\n\t\t\t[(ngModel)]=\"colorScheme\"\n\t\t\tinputId=\"mode-dim\"></p-radioButton>\n\t\t<label for=\"mode-dim\">Dim</label>\n\t</div>\n\t<div class=\"field-radiobutton\">\n\t\t<p-radioButton\n\t\t\tname=\"colorScheme\"\n\t\t\tvalue=\"dark\"\n\t\t\t[(ngModel)]=\"colorScheme\"\n\t\t\tinputId=\"mode-dark\"></p-radioButton>\n\t\t<label for=\"mode-dark\">Dark</label>\n\t</div>\n\n\t@if (!minimal) {\n\t\t<h5>Input Style</h5>\n\t\t<div class=\"flex\">\n\t\t\t<div class=\"field-radiobutton flex-1\">\n\t\t\t\t<p-radioButton\n\t\t\t\t\tname=\"inputStyle\"\n\t\t\t\t\tvalue=\"outlined\"\n\t\t\t\t\t[(ngModel)]=\"inputStyle\"\n\t\t\t\t\tinputId=\"outlined_input\"></p-radioButton>\n\t\t\t\t<label for=\"outlined_input\">Outlined</label>\n\t\t\t</div>\n\t\t\t<div class=\"field-radiobutton flex-1\">\n\t\t\t\t<p-radioButton\n\t\t\t\t\tname=\"inputStyle\"\n\t\t\t\t\tvalue=\"filled\"\n\t\t\t\t\t[(ngModel)]=\"inputStyle\"\n\t\t\t\t\tinputId=\"filled_input\"></p-radioButton>\n\t\t\t\t<label for=\"filled_input\">Filled</label>\n\t\t\t</div>\n\t\t</div>\n\t\t<h5>Ripple Effect</h5>\n\t\t<p-inputSwitch [(ngModel)]=\"ripple\"></p-inputSwitch>\n\t}\n</p-sidebar>\n" }]
131
+ }], ctorParameters: () => [{ type: i1.LayoutService }, { type: i2.MenuService }], propDecorators: { minimal: [{
132
+ type: Input
133
+ }] } });
134
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLmNvbmZpZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hcmlsL3RoZW1lL2xheW91dC9hcHAvY29uZmlnL2FwcC5jb25maWcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJpbC90aGVtZS9sYXlvdXQvYXBwL2NvbmZpZy9hcHAuY29uZmlnLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ3pELE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTdDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7Ozs7OztBQWdCeEQsTUFBTSxPQUFPLGtCQUFrQjtJQU85QixZQUNRLGFBQTRCLEVBQzVCLFdBQXdCO1FBRHhCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBUnZCLFlBQU8sR0FBWSxLQUFLLENBQUM7UUFFbEMsb0JBQWUsR0FBVSxFQUFFLENBQUM7UUFFNUIsV0FBTSxHQUFhLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBS3BDLENBQUM7SUFFTCxJQUFJLE9BQU87UUFDVixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLG9CQUFv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QWM7UUFDYixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDZCxDQUFDO0lBRUQsY0FBYztRQUNiLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNkLENBQUM7OEdBL0hXLGtCQUFrQjtrR0FBbEIsa0JBQWtCLHNHQ3ZCL0IsbWxNQStMQSwyQ0QzS1csV0FBVyw4VkFBRSxhQUFhLDRXQUFFLGlCQUFpQixvVEFBRSxZQUFZLHNLQUFFLGlCQUFpQixnUkFBRSxPQUFPLDJFQUFFLE9BQU87OzJGQUc5RixrQkFBa0I7a0JBTjlCLFNBQVM7aUNBQ0csSUFBSSxZQUNOLFlBQVksV0FDYixDQUFDLFdBQVcsRUFBRSxhQUFhLEVBQUUsaUJBQWlCLEVBQUUsWUFBWSxFQUFFLGlCQUFpQixFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUM7NEdBSWxHLE9BQU87c0JBQWYsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmdDbGFzcywgTmdTdHlsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHsgU2lkZWJhck1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvc2lkZWJhcic7XG5pbXBvcnQgeyBSYWRpb0J1dHRvbk1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvcmFkaW9idXR0b24nO1xuaW1wb3J0IHsgQnV0dG9uTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9idXR0b24nO1xuaW1wb3J0IHsgSW5wdXRTd2l0Y2hNb2R1bGUgfSBmcm9tICdwcmltZW5nL2lucHV0c3dpdGNoJztcblxuaW1wb3J0IHsgTWVudVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlL2FwcC5tZW51LnNlcnZpY2UnO1xuaW1wb3J0IHtcblx0Q29sb3JTY2hlbWUsXG5cdExheW91dFNlcnZpY2UsXG5cdE1lbnVDb2xvclNjaGVtZSxcblx0TWVudU1vZGUsXG59IGZyb20gJy4uLy4uL3NlcnZpY2UvYXBwLmxheW91dC5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG5cdHN0YW5kYWxvbmU6IHRydWUsXG5cdHNlbGVjdG9yOiAnYXBwLWNvbmZpZycsXG5cdGltcG9ydHM6IFtGb3Jtc01vZHVsZSwgU2lkZWJhck1vZHVsZSwgUmFkaW9CdXR0b25Nb2R1bGUsIEJ1dHRvbk1vZHVsZSwgSW5wdXRTd2l0Y2hNb2R1bGUsIE5nU3R5bGUsIE5nQ2xhc3NdLFxuXHR0ZW1wbGF0ZVVybDogJy4vYXBwLmNvbmZpZy5jb21wb25lbnQuaHRtbCcsXG59KVxuZXhwb3J0IGNsYXNzIEFwcENvbmZpZ0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cdEBJbnB1dCgpIG1pbmltYWw6IGJvb2xlYW4gPSBmYWxzZTtcblxuXHRjb21wb25lbnRUaGVtZXM6IGFueVtdID0gW107XG5cblx0c2NhbGVzOiBudW1iZXJbXSA9IFsxMiwgMTMsIDE0LCAxNSwgMTZdO1xuXG5cdGNvbnN0cnVjdG9yKFxuXHRcdHB1YmxpYyBsYXlvdXRTZXJ2aWNlOiBMYXlvdXRTZXJ2aWNlLFxuXHRcdHB1YmxpYyBtZW51U2VydmljZTogTWVudVNlcnZpY2Vcblx0KSB7IH1cblxuXHRnZXQgdmlzaWJsZSgpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gdGhpcy5sYXlvdXRTZXJ2aWNlLnN0YXRlLmNvbmZpZ1NpZGViYXJWaXNpYmxlO1xuXHR9XG5cdHNldCB2aXNpYmxlKF92YWw6IGJvb2xlYW4pIHtcblx0XHR0aGlzLmxheW91dFNlcnZpY2Uuc3RhdGUuY29uZmlnU2lkZWJhclZpc2libGUgPSBfdmFsO1xuXHR9XG5cblx0Z2V0IHNjYWxlKCk6IG51bWJlciB7XG5cdFx0cmV0dXJuIHRoaXMubGF5b3V0U2VydmljZS5jb25maWcoKS5zY2FsZTtcblx0fVxuXHRzZXQgc2NhbGUoX3ZhbDogbnVtYmVyKSB7XG5cdFx0dGhpcy5sYXlvdXRTZXJ2aWNlLmNvbmZpZy51cGRhdGUoKGNvbmZpZykgPT4gKHtcblx0XHRcdC4uLmNvbmZpZyxcblx0XHRcdHNjYWxlOiBfdmFsLFxuXHRcdH0pKTtcblx0fVxuXG5cdGdldCBtZW51TW9kZSgpOiBNZW51TW9kZSB7XG5cdFx0cmV0dXJuIHRoaXMubGF5b3V0U2VydmljZS5jb25maWcoKS5tZW51TW9kZTtcblx0fVxuXHRzZXQgbWVudU1vZGUoX3ZhbDogTWVudU1vZGUpIHtcblx0XHR0aGlzLmxheW91dFNlcnZpY2UuY29uZmlnLnVwZGF0ZSgoY29uZmlnKSA9PiAoe1xuXHRcdFx0Li4uY29uZmlnLFxuXHRcdFx0bWVudU1vZGU6IF92YWwsXG5cdFx0fSkpO1xuXHRcdGlmIChcblx0XHRcdHRoaXMubGF5b3V0U2VydmljZS5pc1NsaW1QbHVzKCkgfHxcblx0XHRcdHRoaXMubGF5b3V0U2VydmljZS5pc1NsaW0oKSB8fFxuXHRcdFx0dGhpcy5sYXlvdXRTZXJ2aWNlLmlzSG9yaXpvbnRhbCgpXG5cdFx0KSB7XG5cdFx0XHR0aGlzLm1lbnVTZXJ2aWNlLnJlc2V0KCk7XG5cdFx0fVxuXHR9XG5cblx0Z2V0IGNvbG9yU2NoZW1lKCk6IENvbG9yU2NoZW1lIHtcblx0XHRyZXR1cm4gdGhpcy5sYXlvdXRTZXJ2aWNlLmNvbmZpZygpLmNvbG9yU2NoZW1lO1xuXHR9XG5cdHNldCBjb2xvclNjaGVtZShfdmFsOiBDb2xvclNjaGVtZSkge1xuXHRcdHRoaXMubGF5b3V0U2VydmljZS5jb25maWcudXBkYXRlKChjb25maWcpID0+ICh7XG5cdFx0XHQuLi5jb25maWcsXG5cdFx0XHRjb2xvclNjaGVtZTogX3ZhbCxcblx0XHR9KSk7XG5cdH1cblxuXHRnZXQgaW5wdXRTdHlsZSgpOiBzdHJpbmcge1xuXHRcdHJldHVybiB0aGlzLmxheW91dFNlcnZpY2UuY29uZmlnKCkuaW5wdXRTdHlsZTtcblx0fVxuXHRzZXQgaW5wdXRTdHlsZShfdmFsOiBzdHJpbmcpIHtcblx0XHR0aGlzLmxheW91dFNlcnZpY2UuY29uZmlnLnVwZGF0ZSgoY29uZmlnKSA9PiAoe1xuXHRcdFx0Li4uY29uZmlnLFxuXHRcdFx0aW5wdXRTdHlsZTogX3ZhbCxcblx0XHR9KSk7XG5cdH1cblxuXHRnZXQgcmlwcGxlKCk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiB0aGlzLmxheW91dFNlcnZpY2UuY29uZmlnKCkucmlwcGxlO1xuXHR9XG5cdHNldCByaXBwbGUoX3ZhbDogYm9vbGVhbikge1xuXHRcdHRoaXMubGF5b3V0U2VydmljZS5jb25maWcudXBkYXRlKChjb25maWcpID0+ICh7XG5cdFx0XHQuLi5jb25maWcsXG5cdFx0XHRyaXBwbGU6IF92YWwsXG5cdFx0fSkpO1xuXHR9XG5cblx0Z2V0IG1lbnVUaGVtZSgpOiBNZW51Q29sb3JTY2hlbWUge1xuXHRcdHJldHVybiB0aGlzLmxheW91dFNlcnZpY2UuY29uZmlnKCkubWVudVRoZW1lO1xuXHR9XG5cdHNldCBtZW51VGhlbWUoX3ZhbDogTWVudUNvbG9yU2NoZW1lKSB7XG5cdFx0dGhpcy5sYXlvdXRTZXJ2aWNlLmNvbmZpZy51cGRhdGUoKGNvbmZpZykgPT4gKHtcblx0XHRcdC4uLmNvbmZpZyxcblx0XHRcdG1lbnVUaGVtZTogX3ZhbCxcblx0XHR9KSk7XG5cdH1cblxuXHRnZXQgdGhlbWUoKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gdGhpcy5sYXlvdXRTZXJ2aWNlLmNvbmZpZygpLnRoZW1lO1xuXHR9XG5cdHNldCB0aGVtZShfdmFsOiBzdHJpbmcpIHtcblx0XHR0aGlzLmxheW91dFNlcnZpY2UuY29uZmlnLnVwZGF0ZSgoY29uZmlnKSA9PiAoe1xuXHRcdFx0Li4uY29uZmlnLFxuXHRcdFx0dGhlbWU6IF92YWwsXG5cdFx0fSkpO1xuXHR9XG5cblx0bmdPbkluaXQoKSB7XG5cdFx0dGhpcy5jb21wb25lbnRUaGVtZXMgPSBbXG5cdFx0XHR7IG5hbWU6ICdpbmRpZ28nLCBjb2xvcjogJyM2MzY2RjEnIH0sXG5cdFx0XHR7IG5hbWU6ICdibHVlJywgY29sb3I6ICcjM0I4MkY2JyB9LFxuXHRcdFx0eyBuYW1lOiAncHVycGxlJywgY29sb3I6ICcjOEI1Q0Y2JyB9LFxuXHRcdFx0eyBuYW1lOiAndGVhbCcsIGNvbG9yOiAnIzE0QjhBNicgfSxcblx0XHRcdHsgbmFtZTogJ2N5YW4nLCBjb2xvcjogJyMwNmI2ZDQnIH0sXG5cdFx0XHR7IG5hbWU6ICdncmVlbicsIGNvbG9yOiAnIzEwYjk4MScgfSxcblx0XHRcdHsgbmFtZTogJ29yYW5nZScsIGNvbG9yOiAnI2Y1OWUwYicgfSxcblx0XHRcdHsgbmFtZTogJ3BpbmsnLCBjb2xvcjogJyNkOTQ2ZWYnIH0sXG5cdFx0XTtcblx0fVxuXG5cdG9uQ29uZmlnQnV0dG9uQ2xpY2soKSB7XG5cdFx0dGhpcy5sYXlvdXRTZXJ2aWNlLnNob3dDb25maWdTaWRlYmFyKCk7XG5cdH1cblxuXHRjaGFuZ2VDb2xvclNjaGVtZShjb2xvclNjaGVtZTogQ29sb3JTY2hlbWUpIHtcblx0XHR0aGlzLmNvbG9yU2NoZW1lID0gY29sb3JTY2hlbWU7XG5cdH1cblxuXHRjaGFuZ2VUaGVtZSh0aGVtZTogc3RyaW5nKSB7XG5cdFx0dGhpcy50aGVtZSA9IHRoZW1lO1xuXHR9XG5cblx0ZGVjcmVtZW50U2NhbGUoKSB7XG5cdFx0dGhpcy5zY2FsZS0tO1xuXHR9XG5cblx0aW5jcmVtZW50U2NhbGUoKSB7XG5cdFx0dGhpcy5zY2FsZSsrO1xuXHR9XG59XG4iLCI8YnV0dG9uXG5cdGNsYXNzPVwibGF5b3V0LWNvbmZpZy1idXR0b24gcC1saW5rXCJcblx0dHlwZT1cImJ1dHRvblwiXG5cdChjbGljayk9XCJvbkNvbmZpZ0J1dHRvbkNsaWNrKClcIj5cblx0PGkgY2xhc3M9XCJwaSBwaS1jb2dcIj48L2k+XG48L2J1dHRvbj5cblxuPHAtc2lkZWJhclxuXHRbKHZpc2libGUpXT1cInZpc2libGVcIlxuXHRwb3NpdGlvbj1cInJpZ2h0XCJcblx0W3RyYW5zaXRpb25PcHRpb25zXT1cIicuM3MgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSknXCJcblx0c3R5bGVDbGFzcz1cImxheW91dC1jb25maWctc2lkZWJhciB3LTE4cmVtXCI+XG5cdDxoNT5UaGVtZXM8L2g1PlxuXHQ8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXdyYXAgcm93LWdhcC0zXCI+XG5cdFx0QGZvciAodGhlbWUgb2YgY29tcG9uZW50VGhlbWVzOyB0cmFjayB0aGVtZSkge1xuXHRcdFx0PGRpdiBjbGFzcz1cInctM1wiPlxuXHRcdFx0XHQ8YnV0dG9uXG5cdFx0XHRcdFx0dHlwZT1cImJ1dHRvblwiXG5cdFx0XHRcdFx0Y2xhc3M9XCJjdXJzb3ItcG9pbnRlciBwLWxpbmsgdy0ycmVtIGgtMnJlbSBib3JkZXItY2lyY2xlIGZsZXgtc2hyaW5rLTAgZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlclwiXG5cdFx0XHRcdFx0KGNsaWNrKT1cImNoYW5nZVRoZW1lKHRoZW1lLm5hbWUpXCJcblx0XHRcdFx0XHRbbmdTdHlsZV09XCJ7ICdiYWNrZ3JvdW5kLWNvbG9yJzogdGhlbWUuY29sb3IgfVwiPlxuXHRcdFx0XHRcdEBpZiAodGhlbWUubmFtZSA9PSB0aGlzLmxheW91dFNlcnZpY2UuY29uZmlnKCkudGhlbWUpIHtcblx0XHRcdFx0XHRcdDxpIGNsYXNzPVwicGkgcGktY2hlY2sgdGV4dC13aGl0ZVwiPjwvaT5cblx0XHRcdFx0XHR9XG5cdFx0XHRcdDwvYnV0dG9uPlxuXHRcdFx0PC9kaXY+XG5cdFx0fVxuXHQ8L2Rpdj5cblxuXHQ8aDU+U2NhbGU8L2g1PlxuXHQ8ZGl2IGNsYXNzPVwiZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cblx0XHQ8YnV0dG9uXG5cdFx0XHRpY29uPVwicGkgcGktbWludXNcIlxuXHRcdFx0dHlwZT1cImJ1dHRvblwiXG5cdFx0XHRwQnV0dG9uXG5cdFx0XHQoY2xpY2spPVwiZGVjcmVtZW50U2NhbGUoKVwiXG5cdFx0XHRjbGFzcz1cInAtYnV0dG9uLXRleHQgcC1idXR0b24tcm91bmRlZCB3LTJyZW0gaC0ycmVtIG1yLTJcIlxuXHRcdFx0W2Rpc2FibGVkXT1cInNjYWxlID09PSBzY2FsZXNbMF1cIj48L2J1dHRvbj5cblx0XHQ8ZGl2IGNsYXNzPVwiZmxleCBnYXAtMiBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cblx0XHRcdEBmb3IgKHMgb2Ygc2NhbGVzOyB0cmFjayBzKSB7XG5cdFx0XHRcdDxpXG5cdFx0XHRcdFx0Y2xhc3M9XCJwaSBwaS1jaXJjbGUtZmlsbCB0ZXh0LTMwMFwiXG5cdFx0XHRcdFx0W25nQ2xhc3NdPVwieyAndGV4dC1wcmltYXJ5LTUwMCc6IHMgPT09IHNjYWxlIH1cIj48L2k+XG5cdFx0XHR9XG5cdFx0PC9kaXY+XG5cdFx0PGJ1dHRvblxuXHRcdFx0aWNvbj1cInBpIHBpLXBsdXNcIlxuXHRcdFx0dHlwZT1cImJ1dHRvblwiXG5cdFx0XHRwQnV0dG9uXG5cdFx0XHQoY2xpY2spPVwiaW5jcmVtZW50U2NhbGUoKVwiXG5cdFx0XHRjbGFzcz1cInAtYnV0dG9uLXRleHQgcC1idXR0b24tcm91bmRlZCB3LTJyZW0gaC0ycmVtIG1sLTJcIlxuXHRcdFx0W2Rpc2FibGVkXT1cInNjYWxlID09PSBzY2FsZXNbc2NhbGVzLmxlbmd0aCAtIDFdXCI+PC9idXR0b24+XG5cdDwvZGl2PlxuXG5cdEBpZiAoIW1pbmltYWwpIHtcblx0XHQ8aDU+TWVudSBUeXBlPC9oNT5cblx0XHQ8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXdyYXAgcm93LWdhcC0zXCI+XG5cdFx0XHQ8ZGl2IGNsYXNzPVwiZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTIgdy02XCI+XG5cdFx0XHRcdDxwLXJhZGlvQnV0dG9uXG5cdFx0XHRcdFx0bmFtZT1cIm1lbnVNb2RlXCJcblx0XHRcdFx0XHR2YWx1ZT1cInN0YXRpY1wiXG5cdFx0XHRcdFx0WyhuZ01vZGVsKV09XCJtZW51TW9kZVwiXG5cdFx0XHRcdFx0aW5wdXRJZD1cIm1vZGUxXCI+PC9wLXJhZGlvQnV0dG9uPlxuXHRcdFx0XHQ8bGFiZWwgZm9yPVwibW9kZTFcIj5TdGF0aWM8L2xhYmVsPlxuXHRcdFx0PC9kaXY+XG5cdFx0XHQ8ZGl2IGNsYXNzPVwiZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTIgdy02XCI+XG5cdFx0XHRcdDxwLXJhZGlvQnV0dG9uXG5cdFx0XHRcdFx0bmFtZT1cIm1lbnVNb2RlXCJcblx0XHRcdFx0XHR2YWx1ZT1cIm92ZXJsYXlcIlxuXHRcdFx0XHRcdFsobmdNb2RlbCldPVwibWVudU1vZGVcIlxuXHRcdFx0XHRcdGlucHV0SWQ9XCJtb2RlMlwiPjwvcC1yYWRpb0J1dHRvbj5cblx0XHRcdFx0PGxhYmVsIGZvcj1cIm1vZGUyXCI+T3ZlcmxheTwvbGFiZWw+XG5cdFx0XHQ8L2Rpdj5cblx0XHRcdDxkaXYgY2xhc3M9XCJmbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMiB3LTZcIj5cblx0XHRcdFx0PHAtcmFkaW9CdXR0b25cblx0XHRcdFx0XHRuYW1lPVwibWVudU1vZGVcIlxuXHRcdFx0XHRcdHZhbHVlPVwic2xpbVwiXG5cdFx0XHRcdFx0WyhuZ01vZGVsKV09XCJtZW51TW9kZVwiXG5cdFx0XHRcdFx0aW5wdXRJZD1cIm1vZGUzXCI+PC9wLXJhZGlvQnV0dG9uPlxuXHRcdFx0XHQ8bGFiZWwgZm9yPVwibW9kZTNcIj5TbGltPC9sYWJlbD5cblx0XHRcdDwvZGl2PlxuXHRcdFx0PGRpdiBjbGFzcz1cImZsZXggYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yIHctNlwiPlxuXHRcdFx0XHQ8cC1yYWRpb0J1dHRvblxuXHRcdFx0XHRcdG5hbWU9XCJtZW51TW9kZVwiXG5cdFx0XHRcdFx0dmFsdWU9XCJzbGltLXBsdXNcIlxuXHRcdFx0XHRcdFsobmdNb2RlbCldPVwibWVudU1vZGVcIlxuXHRcdFx0XHRcdGlucHV0SWQ9XCJtb2RlNFwiPjwvcC1yYWRpb0J1dHRvbj5cblx0XHRcdFx0PGxhYmVsIGZvcj1cIm1vZGUzXCI+U2xpbSArPC9sYWJlbD5cblx0XHRcdDwvZGl2PlxuXHRcdFx0PGRpdiBjbGFzcz1cImZsZXggYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yIHctNlwiPlxuXHRcdFx0XHQ8cC1yYWRpb0J1dHRvblxuXHRcdFx0XHRcdG5hbWU9XCJtZW51TW9kZVwiXG5cdFx0XHRcdFx0dmFsdWU9XCJyZXZlYWxcIlxuXHRcdFx0XHRcdFsobmdNb2RlbCldPVwibWVudU1vZGVcIlxuXHRcdFx0XHRcdGlucHV0SWQ9XCJtb2RlNlwiPjwvcC1yYWRpb0J1dHRvbj5cblx0XHRcdFx0PGxhYmVsIGZvcj1cIm1vZGU1XCI+UmV2ZWFsPC9sYWJlbD5cblx0XHRcdDwvZGl2PlxuXHRcdFx0PGRpdiBjbGFzcz1cImZsZXggYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yIHctNlwiPlxuXHRcdFx0XHQ8cC1yYWRpb0J1dHRvblxuXHRcdFx0XHRcdG5hbWU9XCJtZW51TW9kZVwiXG5cdFx0XHRcdFx0dmFsdWU9XCJkcmF3ZXJcIlxuXHRcdFx0XHRcdFsobmdNb2RlbCldPVwibWVudU1vZGVcIlxuXHRcdFx0XHRcdGlucHV0SWQ9XCJtb2RlN1wiPjwvcC1yYWRpb0J1dHRvbj5cblx0XHRcdFx0PGxhYmVsIGZvcj1cIm1vZGU2XCI+RHJhd2VyPC9sYWJlbD5cblx0XHRcdDwvZGl2PlxuXHRcdFx0PGRpdiBjbGFzcz1cImZsZXggYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yIHctNlwiPlxuXHRcdFx0XHQ8cC1yYWRpb0J1dHRvblxuXHRcdFx0XHRcdG5hbWU9XCJtZW51TW9kZVwiXG5cdFx0XHRcdFx0dmFsdWU9XCJob3Jpem9udGFsXCJcblx0XHRcdFx0XHRbKG5nTW9kZWwpXT1cIm1lbnVNb2RlXCJcblx0XHRcdFx0XHRpbnB1dElkPVwibW9kZTVcIj48L3AtcmFkaW9CdXR0b24+XG5cdFx0XHRcdDxsYWJlbCBmb3I9XCJtb2RlNFwiPkhvcml6b250YWw8L2xhYmVsPlxuXHRcdFx0PC9kaXY+XG5cdFx0PC9kaXY+XG5cdFx0PGg1Pk1lbnUgVGhlbWU8L2g1PlxuXHRcdDxkaXYgY2xhc3M9XCJmaWVsZC1yYWRpb2J1dHRvblwiPlxuXHRcdFx0PHAtcmFkaW9CdXR0b25cblx0XHRcdFx0bmFtZT1cIm1lbnVUaGVtZVwiXG5cdFx0XHRcdHZhbHVlPVwiY29sb3JTY2hlbWVcIlxuXHRcdFx0XHRbKG5nTW9kZWwpXT1cIm1lbnVUaGVtZVwiXG5cdFx0XHRcdGlucHV0SWQ9XCJtZW51dGhlbWUtY29sb3JzY2hlbWVcIj48L3AtcmFkaW9CdXR0b24+XG5cdFx0XHQ8bGFiZWwgZm9yPVwibWVudXRoZW1lLWNvbG9yc2NoZW1lXCI+Q29sb3IgU2NoZW1lPC9sYWJlbD5cblx0XHQ8L2Rpdj5cblx0XHQ8ZGl2IGNsYXNzPVwiZmllbGQtcmFkaW9idXR0b25cIj5cblx0XHRcdDxwLXJhZGlvQnV0dG9uXG5cdFx0XHRcdG5hbWU9XCJtZW51VGhlbWVcIlxuXHRcdFx0XHR2YWx1ZT1cInByaW1hcnlDb2xvclwiXG5cdFx0XHRcdFsobmdNb2RlbCldPVwibWVudVRoZW1lXCJcblx0XHRcdFx0aW5wdXRJZD1cIm1lbnV0aGVtZS1wcmltYXJ5Y29sb3JcIj48L3AtcmFkaW9CdXR0b24+XG5cdFx0XHQ8bGFiZWwgZm9yPVwibWVudXRoZW1lLXByaW1hcnljb2xvclwiPlByaW1hcnkgQ29sb3I8L2xhYmVsPlxuXHRcdDwvZGl2PlxuXHRcdDxkaXYgY2xhc3M9XCJmaWVsZC1yYWRpb2J1dHRvblwiPlxuXHRcdFx0PHAtcmFkaW9CdXR0b25cblx0XHRcdFx0bmFtZT1cIm1lbnVUaGVtZVwiXG5cdFx0XHRcdHZhbHVlPVwidHJhbnNwYXJlbnRcIlxuXHRcdFx0XHRbKG5nTW9kZWwpXT1cIm1lbnVUaGVtZVwiXG5cdFx0XHRcdGlucHV0SWQ9XCJtZW51dGhlbWUtdHJhbnNwYXJlbnRcIj48L3AtcmFkaW9CdXR0b24+XG5cdFx0XHQ8bGFiZWwgZm9yPVwibWVudXRoZW1lLXRyYW5zcGFyZW50XCI+VHJhbnNwYXJlbnQ8L2xhYmVsPlxuXHRcdDwvZGl2PlxuXHR9XG5cblx0PGg1PkNvbG9yIFNjaGVtZTwvaDU+XG5cdDxkaXYgY2xhc3M9XCJmaWVsZC1yYWRpb2J1dHRvblwiPlxuXHRcdDxwLXJhZGlvQnV0dG9uXG5cdFx0XHRuYW1lPVwiY29sb3JTY2hlbWVcIlxuXHRcdFx0dmFsdWU9XCJsaWdodFwiXG5cdFx0XHRbKG5nTW9kZWwpXT1cImNvbG9yU2NoZW1lXCJcblx0XHRcdGlucHV0SWQ9XCJtb2RlLWxpZ2h0XCI+PC9wLXJhZGlvQnV0dG9uPlxuXHRcdDxsYWJlbCBmb3I9XCJtb2RlLWxpZ2h0XCI+TGlnaHQ8L2xhYmVsPlxuXHQ8L2Rpdj5cblx0PGRpdiBjbGFzcz1cImZpZWxkLXJhZGlvYnV0dG9uXCI+XG5cdFx0PHAtcmFkaW9CdXR0b25cblx0XHRcdG5hbWU9XCJjb2xvclNjaGVtZVwiXG5cdFx0XHR2YWx1ZT1cImRpbVwiXG5cdFx0XHRbKG5nTW9kZWwpXT1cImNvbG9yU2NoZW1lXCJcblx0XHRcdGlucHV0SWQ9XCJtb2RlLWRpbVwiPjwvcC1yYWRpb0J1dHRvbj5cblx0XHQ8bGFiZWwgZm9yPVwibW9kZS1kaW1cIj5EaW08L2xhYmVsPlxuXHQ8L2Rpdj5cblx0PGRpdiBjbGFzcz1cImZpZWxkLXJhZGlvYnV0dG9uXCI+XG5cdFx0PHAtcmFkaW9CdXR0b25cblx0XHRcdG5hbWU9XCJjb2xvclNjaGVtZVwiXG5cdFx0XHR2YWx1ZT1cImRhcmtcIlxuXHRcdFx0WyhuZ01vZGVsKV09XCJjb2xvclNjaGVtZVwiXG5cdFx0XHRpbnB1dElkPVwibW9kZS1kYXJrXCI+PC9wLXJhZGlvQnV0dG9uPlxuXHRcdDxsYWJlbCBmb3I9XCJtb2RlLWRhcmtcIj5EYXJrPC9sYWJlbD5cblx0PC9kaXY+XG5cblx0QGlmICghbWluaW1hbCkge1xuXHRcdDxoNT5JbnB1dCBTdHlsZTwvaDU+XG5cdFx0PGRpdiBjbGFzcz1cImZsZXhcIj5cblx0XHRcdDxkaXYgY2xhc3M9XCJmaWVsZC1yYWRpb2J1dHRvbiBmbGV4LTFcIj5cblx0XHRcdFx0PHAtcmFkaW9CdXR0b25cblx0XHRcdFx0XHRuYW1lPVwiaW5wdXRTdHlsZVwiXG5cdFx0XHRcdFx0dmFsdWU9XCJvdXRsaW5lZFwiXG5cdFx0XHRcdFx0WyhuZ01vZGVsKV09XCJpbnB1dFN0eWxlXCJcblx0XHRcdFx0XHRpbnB1dElkPVwib3V0bGluZWRfaW5wdXRcIj48L3AtcmFkaW9CdXR0b24+XG5cdFx0XHRcdDxsYWJlbCBmb3I9XCJvdXRsaW5lZF9pbnB1dFwiPk91dGxpbmVkPC9sYWJlbD5cblx0XHRcdDwvZGl2PlxuXHRcdFx0PGRpdiBjbGFzcz1cImZpZWxkLXJhZGlvYnV0dG9uIGZsZXgtMVwiPlxuXHRcdFx0XHQ8cC1yYWRpb0J1dHRvblxuXHRcdFx0XHRcdG5hbWU9XCJpbnB1dFN0eWxlXCJcblx0XHRcdFx0XHR2YWx1ZT1cImZpbGxlZFwiXG5cdFx0XHRcdFx0WyhuZ01vZGVsKV09XCJpbnB1dFN0eWxlXCJcblx0XHRcdFx0XHRpbnB1dElkPVwiZmlsbGVkX2lucHV0XCI+PC9wLXJhZGlvQnV0dG9uPlxuXHRcdFx0XHQ8bGFiZWwgZm9yPVwiZmlsbGVkX2lucHV0XCI+RmlsbGVkPC9sYWJlbD5cblx0XHRcdDwvZGl2PlxuXHRcdDwvZGl2PlxuXHRcdDxoNT5SaXBwbGUgRWZmZWN0PC9oNT5cblx0XHQ8cC1pbnB1dFN3aXRjaCBbKG5nTW9kZWwpXT1cInJpcHBsZVwiPjwvcC1pbnB1dFN3aXRjaD5cblx0fVxuPC9wLXNpZGViYXI+XG4iXX0=
@@ -0,0 +1,131 @@
1
+ import { NgClass } from '@angular/common';
2
+ import { Component, ViewChild, effect, input } from '@angular/core';
3
+ import { NavigationEnd, RouterOutlet } from '@angular/router';
4
+ import { filter } from 'rxjs';
5
+ import { AppSidebarComponent } from '../sidebar/app.sidebar.component';
6
+ import { AppTopbarComponent } from '../topbar/app.topbar.component';
7
+ import { AppBreadcrumbComponent } from '../breadcrumb/app.breadcrumb.component';
8
+ import { AppProfileSidebarComponent } from '../profileSidebar/app.profilesidebar.component';
9
+ import { AppConfigComponent } from '../config/app.config.component';
10
+ import * as i0 from "@angular/core";
11
+ import * as i1 from "../../service/app.menu.service";
12
+ import * as i2 from "../../service/app.layout.service";
13
+ import * as i3 from "@angular/router";
14
+ export class AppLayoutComponent {
15
+ constructor(menuService, layoutService, renderer, router, route) {
16
+ this.menuService = menuService;
17
+ this.layoutService = layoutService;
18
+ this.renderer = renderer;
19
+ this.router = router;
20
+ this.route = route;
21
+ this.sidebarItems = input([]);
22
+ this.overlayMenuOpenSubscription = this.layoutService.overlayOpen$.subscribe(() => {
23
+ if (!this.menuOutsideClickListener) {
24
+ this.menuOutsideClickListener = this.renderer.listen('document', 'click', (event) => {
25
+ const isOutsideClicked = !(this.appSidebar.el.nativeElement.isSameNode(event.target) ||
26
+ this.appSidebar.el.nativeElement.contains(event.target) ||
27
+ this.appTopbar.menuButton.nativeElement.isSameNode(event.target) ||
28
+ this.appTopbar.menuButton.nativeElement.contains(event.target));
29
+ if (isOutsideClicked) {
30
+ this.hideMenu();
31
+ }
32
+ });
33
+ }
34
+ if ((this.layoutService.isHorizontal() || this.layoutService.isSlim() || this.layoutService.isSlimPlus()) && !this.menuScrollListener) {
35
+ this.menuScrollListener = this.renderer.listen(this.appSidebar.menuContainer.nativeElement, 'scroll', (event) => {
36
+ if (this.layoutService.isDesktop()) {
37
+ this.hideMenu();
38
+ }
39
+ });
40
+ }
41
+ if (this.layoutService.state.staticMenuMobileActive) {
42
+ this.blockBodyScroll();
43
+ }
44
+ });
45
+ this.router.events.pipe(filter((event) => event instanceof NavigationEnd)).subscribe(() => {
46
+ this.hideMenu();
47
+ });
48
+ effect(() => {
49
+ this.menuService.menuItems.set(this.sidebarItems());
50
+ }, { allowSignalWrites: true });
51
+ }
52
+ blockBodyScroll() {
53
+ if (document.body.classList) {
54
+ document.body.classList.add('blocked-scroll');
55
+ }
56
+ else {
57
+ document.body.className += ' blocked-scroll';
58
+ }
59
+ }
60
+ unblockBodyScroll() {
61
+ if (document.body.classList) {
62
+ document.body.classList.remove('blocked-scroll');
63
+ }
64
+ else {
65
+ document.body.className = document.body.className.replace(new RegExp('(^|\\b)' +
66
+ 'blocked-scroll'.split(' ').join('|') +
67
+ '(\\b|$)', 'gi'), ' ');
68
+ }
69
+ }
70
+ hideMenu() {
71
+ this.layoutService.state.overlayMenuActive = false;
72
+ this.layoutService.state.staticMenuMobileActive = false;
73
+ this.layoutService.state.menuHoverActive = false;
74
+ this.menuService.reset();
75
+ if (this.menuOutsideClickListener) {
76
+ this.menuOutsideClickListener();
77
+ this.menuOutsideClickListener = null;
78
+ }
79
+ if (this.menuScrollListener) {
80
+ this.menuScrollListener();
81
+ this.menuScrollListener = null;
82
+ }
83
+ this.unblockBodyScroll();
84
+ }
85
+ get containerClass() {
86
+ return {
87
+ 'layout-light': this.layoutService.config().colorScheme === 'light',
88
+ 'layout-dim': this.layoutService.config().colorScheme === 'dim',
89
+ 'layout-dark': this.layoutService.config().colorScheme === 'dark',
90
+ 'layout-colorscheme-menu': this.layoutService.config().menuTheme === 'colorScheme',
91
+ 'layout-primarycolor-menu': this.layoutService.config().menuTheme === 'primaryColor',
92
+ 'layout-transparent-menu': this.layoutService.config().menuTheme === 'transparent',
93
+ 'layout-overlay': this.layoutService.config().menuMode === 'overlay',
94
+ 'layout-static': this.layoutService.config().menuMode === 'static',
95
+ 'layout-slim': this.layoutService.config().menuMode === 'slim',
96
+ 'layout-slim-plus': this.layoutService.config().menuMode === 'slim-plus',
97
+ 'layout-horizontal': this.layoutService.config().menuMode === 'horizontal',
98
+ 'layout-reveal': this.layoutService.config().menuMode === 'reveal',
99
+ 'layout-drawer': this.layoutService.config().menuMode === 'drawer',
100
+ 'layout-static-inactive': this.layoutService.state.staticMenuDesktopInactive &&
101
+ this.layoutService.config().menuMode === 'static',
102
+ 'layout-overlay-active': this.layoutService.state.overlayMenuActive,
103
+ 'layout-mobile-active': this.layoutService.state.staticMenuMobileActive,
104
+ 'p-input-filled': this.layoutService.config().inputStyle === 'filled',
105
+ 'p-ripple-disabled': !this.layoutService.config().ripple,
106
+ 'layout-sidebar-active': this.layoutService.state.sidebarActive,
107
+ 'layout-sidebar-anchored': this.layoutService.state.anchored,
108
+ };
109
+ }
110
+ ngOnDestroy() {
111
+ if (this.overlayMenuOpenSubscription) {
112
+ this.overlayMenuOpenSubscription.unsubscribe();
113
+ }
114
+ if (this.menuOutsideClickListener) {
115
+ this.menuOutsideClickListener();
116
+ }
117
+ }
118
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: AppLayoutComponent, deps: [{ token: i1.MenuService }, { token: i2.LayoutService }, { token: i0.Renderer2 }, { token: i3.Router }, { token: i3.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
119
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "17.1.2", type: AppLayoutComponent, isStandalone: true, selector: "app-layout", inputs: { sidebarItems: { classPropertyName: "sidebarItems", publicName: "sidebarItems", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "appSidebar", first: true, predicate: AppSidebarComponent, descendants: true }, { propertyName: "appTopbar", first: true, predicate: AppTopbarComponent, descendants: true }], ngImport: i0, template: "<div class=\"layout-container\" [ngClass]=\"containerClass\">\n\t<app-sidebar></app-sidebar>\n\t<div class=\"layout-content-wrapper\">\n\t\t<app-topbar></app-topbar>\n\t\t<!-- <app-breadcrumb class=\"content-breadcrumb\"></app-breadcrumb> -->\n\t\t<div class=\"layout-content\">\n\t\t\t<router-outlet></router-outlet>\n\t\t</div>\n\t</div>\n\t<app-profilemenu></app-profilemenu>\n\t<app-config></app-config>\n\t<div class=\"layout-mask\"></div>\n</div>\n", dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "component", type: AppSidebarComponent, selector: "app-sidebar" }, { kind: "component", type: AppTopbarComponent, selector: "app-topbar" }, { kind: "component", type: AppProfileSidebarComponent, selector: "app-profilemenu" }, { kind: "component", type: AppConfigComponent, selector: "app-config", inputs: ["minimal"] }] }); }
120
+ }
121
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: AppLayoutComponent, decorators: [{
122
+ type: Component,
123
+ args: [{ standalone: true, selector: 'app-layout', imports: [NgClass, RouterOutlet, AppSidebarComponent, AppTopbarComponent, AppBreadcrumbComponent, AppProfileSidebarComponent, AppConfigComponent], template: "<div class=\"layout-container\" [ngClass]=\"containerClass\">\n\t<app-sidebar></app-sidebar>\n\t<div class=\"layout-content-wrapper\">\n\t\t<app-topbar></app-topbar>\n\t\t<!-- <app-breadcrumb class=\"content-breadcrumb\"></app-breadcrumb> -->\n\t\t<div class=\"layout-content\">\n\t\t\t<router-outlet></router-outlet>\n\t\t</div>\n\t</div>\n\t<app-profilemenu></app-profilemenu>\n\t<app-config></app-config>\n\t<div class=\"layout-mask\"></div>\n</div>\n" }]
124
+ }], ctorParameters: () => [{ type: i1.MenuService }, { type: i2.LayoutService }, { type: i0.Renderer2 }, { type: i3.Router }, { type: i3.ActivatedRoute }], propDecorators: { appSidebar: [{
125
+ type: ViewChild,
126
+ args: [AppSidebarComponent]
127
+ }], appTopbar: [{
128
+ type: ViewChild,
129
+ args: [AppTopbarComponent]
130
+ }] } });
131
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLmxheW91dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hcmlsL3RoZW1lL2xheW91dC9hcHAvbGF5b3V0L2FwcC5sYXlvdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJpbC90aGVtZS9sYXlvdXQvYXBwL2xheW91dC9hcHAubGF5b3V0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMxQyxPQUFPLEVBQUUsU0FBUyxFQUF3QixTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRixPQUFPLEVBQWtCLGFBQWEsRUFBVSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUd0RixPQUFPLEVBQUUsTUFBTSxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUc1QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUN2RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNwRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUNoRixPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUU1RixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQzs7Ozs7QUFRcEUsTUFBTSxPQUFPLGtCQUFrQjtJQWE5QixZQUNTLFdBQXdCLEVBQ3pCLGFBQTRCLEVBQzVCLFFBQW1CLEVBQ25CLE1BQWMsRUFDYixLQUFxQjtRQUpyQixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN6QixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUM1QixhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQ25CLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDYixV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RSxrQkFBa0IsRUFBRSxzQkFBc0IsRUFBRSwwQkFBMEIsRUFBRSxrQkFBa0IsQ0FBQztzTEFZakgsVUFBVTtzQkFBekMsU0FBUzt1QkFBQyxtQkFBbUI7Z0JBRUMsU0FBUztzQkFBdkMsU0FBUzt1QkFBQyxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ0NsYXNzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgT25EZXN0cm95LCBSZW5kZXJlcjIsIFZpZXdDaGlsZCwgZWZmZWN0LCBpbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIE5hdmlnYXRpb25FbmQsIFJvdXRlciwgUm91dGVyT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuaW1wb3J0IHsgTWVudUl0ZW0gfSBmcm9tICdwcmltZW5nL2FwaSc7XG5pbXBvcnQgeyBmaWx0ZXIsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBNZW51U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2UvYXBwLm1lbnUuc2VydmljZSc7XG5pbXBvcnQgeyBBcHBTaWRlYmFyQ29tcG9uZW50IH0gZnJvbSAnLi4vc2lkZWJhci9hcHAuc2lkZWJhci5jb21wb25lbnQnO1xuaW1wb3J0IHsgQXBwVG9wYmFyQ29tcG9uZW50IH0gZnJvbSAnLi4vdG9wYmFyL2FwcC50b3BiYXIuY29tcG9uZW50JztcbmltcG9ydCB7IEFwcEJyZWFkY3J1bWJDb21wb25lbnQgfSBmcm9tICcuLi9icmVhZGNydW1iL2FwcC5icmVhZGNydW1iLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBcHBQcm9maWxlU2lkZWJhckNvbXBvbmVudCB9IGZyb20gJy4uL3Byb2ZpbGVTaWRlYmFyL2FwcC5wcm9maWxlc2lkZWJhci5jb21wb25lbnQnO1xuaW1wb3J0IHsgTGF5b3V0U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2UvYXBwLmxheW91dC5zZXJ2aWNlJztcbmltcG9ydCB7IEFwcENvbmZpZ0NvbXBvbmVudCB9IGZyb20gJy4uL2NvbmZpZy9hcHAuY29uZmlnLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuXHRzdGFuZGFsb25lOiB0cnVlLFxuXHRzZWxlY3RvcjogJ2FwcC1sYXlvdXQnLFxuXHRpbXBvcnRzOiBbTmdDbGFzcywgUm91dGVyT3V0bGV0LCBBcHBTaWRlYmFyQ29tcG9uZW50LCBBcHBUb3BiYXJDb21wb25lbnQsIEFwcEJyZWFkY3J1bWJDb21wb25lbnQsIEFwcFByb2ZpbGVTaWRlYmFyQ29tcG9uZW50LCBBcHBDb25maWdDb21wb25lbnRdLFxuXHR0ZW1wbGF0ZVVybDogJy4vYXBwLmxheW91dC5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgQXBwTGF5b3V0Q29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcblx0c2lkZWJhckl0ZW1zID0gaW5wdXQ8TWVudUl0ZW1bXT4oW10pO1xuXG5cdG92ZXJsYXlNZW51T3BlblN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuXG5cdG1lbnVPdXRzaWRlQ2xpY2tMaXN0ZW5lcjogYW55O1xuXG5cdG1lbnVTY3JvbGxMaXN0ZW5lcjogYW55O1xuXG5cdEBWaWV3Q2hpbGQoQXBwU2lkZWJhckNvbXBvbmVudCkgYXBwU2lkZWJhciE6IEFwcFNpZGViYXJDb21wb25lbnQ7XG5cblx0QFZpZXdDaGlsZChBcHBUb3BiYXJDb21wb25lbnQpIGFwcFRvcGJhciE6IEFwcFRvcGJhckNvbXBvbmVudDtcblxuXHRjb25zdHJ1Y3Rvcihcblx0XHRwcml2YXRlIG1lbnVTZXJ2aWNlOiBNZW51U2VydmljZSxcblx0XHRwdWJsaWMgbGF5b3V0U2VydmljZTogTGF5b3V0U2VydmljZSxcblx0XHRwdWJsaWMgcmVuZGVyZXI6IFJlbmRlcmVyMixcblx0XHRwdWJsaWMgcm91dGVyOiBSb3V0ZXIsXG5cdFx0cHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGVcblx0KSB7XG5cdFx0dGhpcy5vdmVybGF5TWVudU9wZW5TdWJzY3JpcHRpb24gPSB0aGlzLmxheW91dFNlcnZpY2Uub3ZlcmxheU9wZW4kLnN1YnNjcmliZSgoKSA9PiB7XG5cdFx0XHRpZiAoIXRoaXMubWVudU91dHNpZGVDbGlja0xpc3RlbmVyKSB7XG5cdFx0XHRcdHRoaXMubWVudU91dHNpZGVDbGlja0xpc3RlbmVyID0gdGhpcy5yZW5kZXJlci5saXN0ZW4oXG5cdFx0XHRcdFx0J2RvY3VtZW50Jyxcblx0XHRcdFx0XHQnY2xpY2snLFxuXHRcdFx0XHRcdChldmVudCkgPT4ge1xuXHRcdFx0XHRcdFx0Y29uc3QgaXNPdXRzaWRlQ2xpY2tlZCA9ICEoXG5cdFx0XHRcdFx0XHRcdHRoaXMuYXBwU2lkZWJhci5lbC5uYXRpdmVFbGVtZW50LmlzU2FtZU5vZGUoXG5cdFx0XHRcdFx0XHRcdFx0ZXZlbnQudGFyZ2V0XG5cdFx0XHRcdFx0XHRcdCkgfHxcblx0XHRcdFx0XHRcdFx0dGhpcy5hcHBTaWRlYmFyLmVsLm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoXG5cdFx0XHRcdFx0XHRcdFx0ZXZlbnQudGFyZ2V0XG5cdFx0XHRcdFx0XHRcdCkgfHxcblx0XHRcdFx0XHRcdFx0dGhpcy5hcHBUb3BiYXIubWVudUJ1dHRvbi5uYXRpdmVFbGVtZW50LmlzU2FtZU5vZGUoXG5cdFx0XHRcdFx0XHRcdFx0ZXZlbnQudGFyZ2V0XG5cdFx0XHRcdFx0XHRcdCkgfHxcblx0XHRcdFx0XHRcdFx0dGhpcy5hcHBUb3BiYXIubWVudUJ1dHRvbi5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKFxuXHRcdFx0XHRcdFx0XHRcdGV2ZW50LnRhcmdldFxuXHRcdFx0XHRcdFx0XHQpXG5cdFx0XHRcdFx0XHQpO1xuXHRcdFx0XHRcdFx0aWYgKGlzT3V0c2lkZUNsaWNrZWQpIHtcblx0XHRcdFx0XHRcdFx0dGhpcy5oaWRlTWVudSgpO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0KTtcblx0XHRcdH1cblxuXHRcdFx0aWYgKFxuXHRcdFx0XHQodGhpcy5sYXlvdXRTZXJ2aWNlLmlzSG9yaXpvbnRhbCgpIHx8IHRoaXMubGF5b3V0U2VydmljZS5pc1NsaW0oKSB8fCB0aGlzLmxheW91dFNlcnZpY2UuaXNTbGltUGx1cygpKSAmJiAhdGhpcy5tZW51U2Nyb2xsTGlzdGVuZXIpIHtcblx0XHRcdFx0dGhpcy5tZW51U2Nyb2xsTGlzdGVuZXIgPSB0aGlzLnJlbmRlcmVyLmxpc3Rlbihcblx0XHRcdFx0XHR0aGlzLmFwcFNpZGViYXIubWVudUNvbnRhaW5lci5uYXRpdmVFbGVtZW50LFxuXHRcdFx0XHRcdCdzY3JvbGwnLFxuXHRcdFx0XHRcdChldmVudCkgPT4ge1xuXHRcdFx0XHRcdFx0aWYgKHRoaXMubGF5b3V0U2VydmljZS5pc0Rlc2t0b3AoKSkge1xuXHRcdFx0XHRcdFx0XHR0aGlzLmhpZGVNZW51KCk7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHQpO1xuXHRcdFx0fVxuXG5cdFx0XHRpZiAodGhpcy5sYXlvdXRTZXJ2aWNlLnN0YXRlLnN0YXRpY01lbnVNb2JpbGVBY3RpdmUpIHtcblx0XHRcdFx0dGhpcy5ibG9ja0JvZHlTY3JvbGwoKTtcblx0XHRcdH1cblx0XHR9KTtcblxuXHRcdHRoaXMucm91dGVyLmV2ZW50cy5waXBlKGZpbHRlcigoZXZlbnQpID0+IGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvbkVuZCkpLnN1YnNjcmliZSgoKSA9PiB7XG5cdFx0XHR0aGlzLmhpZGVNZW51KCk7XG5cdFx0fSk7XG5cblx0XHRlZmZlY3QoKCkgPT4ge1xuXHRcdFx0dGhpcy5tZW51U2VydmljZS5tZW51SXRlbXMuc2V0KHRoaXMuc2lkZWJhckl0ZW1zKCkpO1xuXHRcdH0sIHsgYWxsb3dTaWduYWxXcml0ZXM6IHRydWUgfSk7XG5cdH1cblxuXHRibG9ja0JvZHlTY3JvbGwoKTogdm9pZCB7XG5cdFx0aWYgKGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0KSB7XG5cdFx0XHRkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5hZGQoJ2Jsb2NrZWQtc2Nyb2xsJyk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdGRvY3VtZW50LmJvZHkuY2xhc3NOYW1lICs9ICcgYmxvY2tlZC1zY3JvbGwnO1xuXHRcdH1cblx0fVxuXG5cdHVuYmxvY2tCb2R5U2Nyb2xsKCk6IHZvaWQge1xuXHRcdGlmIChkb2N1bWVudC5ib2R5LmNsYXNzTGlzdCkge1xuXHRcdFx0ZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QucmVtb3ZlKCdibG9ja2VkLXNjcm9sbCcpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRkb2N1bWVudC5ib2R5LmNsYXNzTmFtZSA9IGRvY3VtZW50LmJvZHkuY2xhc3NOYW1lLnJlcGxhY2UoXG5cdFx0XHRcdG5ldyBSZWdFeHAoXG5cdFx0XHRcdFx0JyhefFxcXFxiKScgK1xuXHRcdFx0XHRcdCdibG9ja2VkLXNjcm9sbCcuc3BsaXQoJyAnKS5qb2luKCd8JykgK1xuXHRcdFx0XHRcdCcoXFxcXGJ8JCknLFxuXHRcdFx0XHRcdCdnaSdcblx0XHRcdFx0KSxcblx0XHRcdFx0JyAnXG5cdFx0XHQpO1xuXHRcdH1cblx0fVxuXG5cdGhpZGVNZW51KCkge1xuXHRcdHRoaXMubGF5b3V0U2VydmljZS5zdGF0ZS5vdmVybGF5TWVudUFjdGl2ZSA9IGZhbHNlO1xuXHRcdHRoaXMubGF5b3V0U2VydmljZS5zdGF0ZS5zdGF0aWNNZW51TW9iaWxlQWN0aXZlID0gZmFsc2U7XG5cdFx0dGhpcy5sYXlvdXRTZXJ2aWNlLnN0YXRlLm1lbnVIb3ZlckFjdGl2ZSA9IGZhbHNlO1xuXHRcdHRoaXMubWVudVNlcnZpY2UucmVzZXQoKTtcblxuXHRcdGlmICh0aGlzLm1lbnVPdXRzaWRlQ2xpY2tMaXN0ZW5lcikge1xuXHRcdFx0dGhpcy5tZW51T3V0c2lkZUNsaWNrTGlzdGVuZXIoKTtcblx0XHRcdHRoaXMubWVudU91dHNpZGVDbGlja0xpc3RlbmVyID0gbnVsbDtcblx0XHR9XG5cblx0XHRpZiAodGhpcy5tZW51U2Nyb2xsTGlzdGVuZXIpIHtcblx0XHRcdHRoaXMubWVudVNjcm9sbExpc3RlbmVyKCk7XG5cdFx0XHR0aGlzLm1lbnVTY3JvbGxMaXN0ZW5lciA9IG51bGw7XG5cdFx0fVxuXG5cdFx0dGhpcy51bmJsb2NrQm9keVNjcm9sbCgpO1xuXHR9XG5cblx0Z2V0IGNvbnRhaW5lckNsYXNzKCkge1xuXHRcdHJldHVybiB7XG5cdFx0XHQnbGF5b3V0LWxpZ2h0JzogdGhpcy5sYXlvdXRTZXJ2aWNlLmNvbmZpZygpLmNvbG9yU2NoZW1lID09PSAnbGlnaHQnLFxuXHRcdFx0J2xheW91dC1kaW0nOiB0aGlzLmxheW91dFNlcnZpY2UuY29uZmlnKCkuY29sb3JTY2hlbWUgPT09ICdkaW0nLFxuXHRcdFx0J2xheW91dC1kYXJrJzogdGhpcy5sYXlvdXRTZXJ2aWNlLmNvbmZpZygpLmNvbG9yU2NoZW1lID09PSAnZGFyaycsXG5cdFx0XHQnbGF5b3V0LWNvbG9yc2NoZW1lLW1lbnUnOlxuXHRcdFx0XHR0aGlzLmxheW91dFNlcnZpY2UuY29uZmlnKCkubWVudVRoZW1lID09PSAnY29sb3JTY2hlbWUnLFxuXHRcdFx0J2xheW91dC1wcmltYXJ5Y29sb3ItbWVudSc6XG5cdFx0XHRcdHRoaXMubGF5b3V0U2VydmljZS5jb25maWcoKS5tZW51VGhlbWUgPT09ICdwcmltYXJ5Q29sb3InLFxuXHRcdFx0J2xheW91dC10cmFuc3BhcmVudC1tZW51Jzpcblx0XHRcdFx0dGhpcy5sYXlvdXRTZXJ2aWNlLmNvbmZpZygpLm1lbnVUaGVtZSA9PT0gJ3RyYW5zcGFyZW50Jyxcblx0XHRcdCdsYXlvdXQtb3ZlcmxheSc6XG5cdFx0XHRcdHRoaXMubGF5b3V0U2VydmljZS5jb25maWcoKS5tZW51TW9kZSA9PT0gJ292ZXJsYXknLFxuXHRcdFx0J2xheW91dC1zdGF0aWMnOiB0aGlzLmxheW91dFNlcnZpY2UuY29uZmlnKCkubWVudU1vZGUgPT09ICdzdGF0aWMnLFxuXHRcdFx0J2xheW91dC1zbGltJzogdGhpcy5sYXlvdXRTZXJ2aWNlLmNvbmZpZygpLm1lbnVNb2RlID09PSAnc2xpbScsXG5cdFx0XHQnbGF5b3V0LXNsaW0tcGx1cyc6XG5cdFx0XHRcdHRoaXMubGF5b3V0U2VydmljZS5jb25maWcoKS5tZW51TW9kZSA9PT0gJ3NsaW0tcGx1cycsXG5cdFx0XHQnbGF5b3V0LWhvcml6b250YWwnOlxuXHRcdFx0XHR0aGlzLmxheW91dFNlcnZpY2UuY29uZmlnKCkubWVudU1vZGUgPT09ICdob3Jpem9udGFsJyxcblx0XHRcdCdsYXlvdXQtcmV2ZWFsJzogdGhpcy5sYXlvdXRTZXJ2aWNlLmNvbmZpZygpLm1lbnVNb2RlID09PSAncmV2ZWFsJyxcblx0XHRcdCdsYXlvdXQtZHJhd2VyJzogdGhpcy5sYXlvdXRTZXJ2aWNlLmNvbmZpZygpLm1lbnVNb2RlID09PSAnZHJhd2VyJyxcblx0XHRcdCdsYXlvdXQtc3RhdGljLWluYWN0aXZlJzpcblx0XHRcdFx0dGhpcy5sYXlvdXRTZXJ2aWNlLnN0YXRlLnN0YXRpY01lbnVEZXNrdG9wSW5hY3RpdmUgJiZcblx0XHRcdFx0dGhpcy5sYXlvdXRTZXJ2aWNlLmNvbmZpZygpLm1lbnVNb2RlID09PSAnc3RhdGljJyxcblx0XHRcdCdsYXlvdXQtb3ZlcmxheS1hY3RpdmUnOiB0aGlzLmxheW91dFNlcnZpY2Uuc3RhdGUub3ZlcmxheU1lbnVBY3RpdmUsXG5cdFx0XHQnbGF5b3V0LW1vYmlsZS1hY3RpdmUnOlxuXHRcdFx0XHR0aGlzLmxheW91dFNlcnZpY2Uuc3RhdGUuc3RhdGljTWVudU1vYmlsZUFjdGl2ZSxcblx0XHRcdCdwLWlucHV0LWZpbGxlZCc6XG5cdFx0XHRcdHRoaXMubGF5b3V0U2VydmljZS5jb25maWcoKS5pbnB1dFN0eWxlID09PSAnZmlsbGVkJyxcblx0XHRcdCdwLXJpcHBsZS1kaXNhYmxlZCc6ICF0aGlzLmxheW91dFNlcnZpY2UuY29uZmlnKCkucmlwcGxlLFxuXHRcdFx0J2xheW91dC1zaWRlYmFyLWFjdGl2ZSc6IHRoaXMubGF5b3V0U2VydmljZS5zdGF0ZS5zaWRlYmFyQWN0aXZlLFxuXHRcdFx0J2xheW91dC1zaWRlYmFyLWFuY2hvcmVkJzogdGhpcy5sYXlvdXRTZXJ2aWNlLnN0YXRlLmFuY2hvcmVkLFxuXHRcdH07XG5cdH1cblxuXHRuZ09uRGVzdHJveSgpIHtcblx0XHRpZiAodGhpcy5vdmVybGF5TWVudU9wZW5TdWJzY3JpcHRpb24pIHtcblx0XHRcdHRoaXMub3ZlcmxheU1lbnVPcGVuU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG5cdFx0fVxuXG5cdFx0aWYgKHRoaXMubWVudU91dHNpZGVDbGlja0xpc3RlbmVyKSB7XG5cdFx0XHR0aGlzLm1lbnVPdXRzaWRlQ2xpY2tMaXN0ZW5lcigpO1xuXHRcdH1cblx0fVxufVxuIiwiPGRpdiBjbGFzcz1cImxheW91dC1jb250YWluZXJcIiBbbmdDbGFzc109XCJjb250YWluZXJDbGFzc1wiPlxuXHQ8YXBwLXNpZGViYXI+PC9hcHAtc2lkZWJhcj5cblx0PGRpdiBjbGFzcz1cImxheW91dC1jb250ZW50LXdyYXBwZXJcIj5cblx0XHQ8YXBwLXRvcGJhcj48L2FwcC10b3BiYXI+XG5cdFx0PCEtLSA8YXBwLWJyZWFkY3J1bWIgY2xhc3M9XCJjb250ZW50LWJyZWFkY3J1bWJcIj48L2FwcC1icmVhZGNydW1iPiAtLT5cblx0XHQ8ZGl2IGNsYXNzPVwibGF5b3V0LWNvbnRlbnRcIj5cblx0XHRcdDxyb3V0ZXItb3V0bGV0Pjwvcm91dGVyLW91dGxldD5cblx0XHQ8L2Rpdj5cblx0PC9kaXY+XG5cdDxhcHAtcHJvZmlsZW1lbnU+PC9hcHAtcHJvZmlsZW1lbnU+XG5cdDxhcHAtY29uZmlnPjwvYXBwLWNvbmZpZz5cblx0PGRpdiBjbGFzcz1cImxheW91dC1tYXNrXCI+PC9kaXY+XG48L2Rpdj5cbiJdfQ==