@smartbit4all/ng-client 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (202) hide show
  1. package/README.md +386 -0
  2. package/esm2020/lib/session/api/api/api.mjs +4 -0
  3. package/esm2020/lib/session/api/api/session.service.mjs +306 -0
  4. package/esm2020/lib/session/api/configuration.mjs +91 -0
  5. package/esm2020/lib/session/api/encoder.mjs +19 -0
  6. package/esm2020/lib/session/api/index.mjs +3 -0
  7. package/esm2020/lib/session/api/model/accountInfo.mjs +13 -0
  8. package/esm2020/lib/session/api/model/apiError.mjs +13 -0
  9. package/esm2020/lib/session/api/model/authenticationProviderData.mjs +13 -0
  10. package/esm2020/lib/session/api/model/getAuthenticationProvidersResponse.mjs +2 -0
  11. package/esm2020/lib/session/api/model/models.mjs +9 -0
  12. package/esm2020/lib/session/api/model/refreshSessionRequest.mjs +13 -0
  13. package/esm2020/lib/session/api/model/session.mjs +2 -0
  14. package/esm2020/lib/session/api/model/sessionInfoData.mjs +2 -0
  15. package/esm2020/lib/session/api/model/userActivityLog.mjs +13 -0
  16. package/esm2020/lib/session/api/param.mjs +2 -0
  17. package/esm2020/lib/session/api/variables.mjs +9 -0
  18. package/esm2020/lib/session/cookie-service/smart-cookie.service.mjs +225 -0
  19. package/esm2020/lib/session/dev-tool/smart-dev-tool-dialog/smart-dev-tool-dialog.component.mjs +90 -0
  20. package/esm2020/lib/session/dev-tool/smart-dev-tool-dialog/smart-dev-tool-dialog.service.mjs +43 -0
  21. package/esm2020/lib/session/dev-tool/smart-dev-tool-floating-button/smart-dev-tool-floating-button.component.mjs +40 -0
  22. package/esm2020/lib/session/dev-tool/smart-dev-tool.interceptor.mjs +52 -0
  23. package/esm2020/lib/session/dev-tool/smart-dev-tool.service.mjs +161 -0
  24. package/esm2020/lib/session/projects.mjs +12 -0
  25. package/esm2020/lib/session/smart-error-catching.interceptor.mjs +71 -0
  26. package/esm2020/lib/session/smart-header-maintainer.interceptor.mjs +36 -0
  27. package/esm2020/lib/session/smart-session-handler.service.mjs +6 -0
  28. package/esm2020/lib/session/smart-session.module.mjs +74 -0
  29. package/esm2020/lib/session/smart-session.service.mjs +204 -0
  30. package/esm2020/lib/session/smart-timer/smart-session-timer.component.mjs +35 -0
  31. package/esm2020/lib/session/smart-timer/smart-session-timer.service.mjs +51 -0
  32. package/esm2020/lib/smart-ng-client.module.mjs +20 -0
  33. package/esm2020/lib/smart-ng-client.service.mjs +19 -0
  34. package/esm2020/lib/view-context/api/api/api.mjs +4 -0
  35. package/esm2020/lib/view-context/api/api/view.service.mjs +401 -0
  36. package/esm2020/lib/view-context/api/api.module.mjs +40 -0
  37. package/esm2020/lib/view-context/api/configuration.mjs +91 -0
  38. package/esm2020/lib/view-context/api/encoder.mjs +19 -0
  39. package/esm2020/lib/view-context/api/index.mjs +7 -0
  40. package/esm2020/lib/view-context/api/model/closeResult.mjs +17 -0
  41. package/esm2020/lib/view-context/api/model/componentConstraint.mjs +2 -0
  42. package/esm2020/lib/view-context/api/model/messageData.mjs +2 -0
  43. package/esm2020/lib/view-context/api/model/messageOption.mjs +2 -0
  44. package/esm2020/lib/view-context/api/model/messageOptionType.mjs +17 -0
  45. package/esm2020/lib/view-context/api/model/messageResult.mjs +2 -0
  46. package/esm2020/lib/view-context/api/model/messageType.mjs +18 -0
  47. package/esm2020/lib/view-context/api/model/models.mjs +29 -0
  48. package/esm2020/lib/view-context/api/model/openPendingData.mjs +2 -0
  49. package/esm2020/lib/view-context/api/model/smartLinkData.mjs +2 -0
  50. package/esm2020/lib/view-context/api/model/uiAction.mjs +2 -0
  51. package/esm2020/lib/view-context/api/model/uiActionButtonDescriptor.mjs +13 -0
  52. package/esm2020/lib/view-context/api/model/uiActionButtonIconPos.mjs +16 -0
  53. package/esm2020/lib/view-context/api/model/uiActionButtonType.mjs +21 -0
  54. package/esm2020/lib/view-context/api/model/uiActionDescriptor.mjs +2 -0
  55. package/esm2020/lib/view-context/api/model/uiActionDialogDescriptor.mjs +2 -0
  56. package/esm2020/lib/view-context/api/model/uiActionFeedbackType.mjs +16 -0
  57. package/esm2020/lib/view-context/api/model/uiActionInputType.mjs +18 -0
  58. package/esm2020/lib/view-context/api/model/uiActionRequest.mjs +13 -0
  59. package/esm2020/lib/view-context/api/model/view.mjs +2 -0
  60. package/esm2020/lib/view-context/api/model/viewApiError.mjs +13 -0
  61. package/esm2020/lib/view-context/api/model/viewConstraint.mjs +2 -0
  62. package/esm2020/lib/view-context/api/model/viewContext.mjs +2 -0
  63. package/esm2020/lib/view-context/api/model/viewContextData.mjs +2 -0
  64. package/esm2020/lib/view-context/api/model/viewContextUpdate.mjs +2 -0
  65. package/esm2020/lib/view-context/api/model/viewData.mjs +2 -0
  66. package/esm2020/lib/view-context/api/model/viewState.mjs +21 -0
  67. package/esm2020/lib/view-context/api/model/viewStateUpdate.mjs +2 -0
  68. package/esm2020/lib/view-context/api/model/viewType.mjs +17 -0
  69. package/esm2020/lib/view-context/api/param.mjs +2 -0
  70. package/esm2020/lib/view-context/api/variables.mjs +9 -0
  71. package/esm2020/lib/view-context/message-dialog/message-dialog.component.mjs +63 -0
  72. package/esm2020/lib/view-context/projects.mjs +17 -0
  73. package/esm2020/lib/view-context/smart-ui-action/components/success-snack-bar/success-snack-bar.component.mjs +30 -0
  74. package/esm2020/lib/view-context/smart-ui-action/dialogs/ui-action-confirm-dialog/ui-action-confirm-dialog.component.mjs +53 -0
  75. package/esm2020/lib/view-context/smart-ui-action/dialogs/ui-action-confirm-dialog/ui-action-confirm-dialog.service.mjs +47 -0
  76. package/esm2020/lib/view-context/smart-ui-action/dialogs/ui-action-input-dialog/ui-action-input-dialog.component.mjs +112 -0
  77. package/esm2020/lib/view-context/smart-ui-action/dialogs/ui-action-input-dialog/ui-action-input-dialog.service.mjs +51 -0
  78. package/esm2020/lib/view-context/smart-ui-action/ui-action-toolbar.component.mjs +81 -0
  79. package/esm2020/lib/view-context/smart-ui-action/ui-action.descriptor.service.mjs +113 -0
  80. package/esm2020/lib/view-context/smart-ui-action/ui-action.model.mjs +7 -0
  81. package/esm2020/lib/view-context/smart-ui-action/ui-action.service.mjs +149 -0
  82. package/esm2020/lib/view-context/smart-view-context-error-dialog/smart-view-context-error-dialog.component.mjs +24 -0
  83. package/esm2020/lib/view-context/smart-view-context-error-dialog/smart-view-context-error-dialog.service.mjs +44 -0
  84. package/esm2020/lib/view-context/smart-view-context.interceptor.mjs +28 -0
  85. package/esm2020/lib/view-context/smart-view-context.model.mjs +2 -0
  86. package/esm2020/lib/view-context/smart-view-context.module.mjs +84 -0
  87. package/esm2020/lib/view-context/smart-view-context.service.mjs +310 -0
  88. package/esm2020/lib/view-context/smart-view-redirect/smart-view-redirect.mjs +33 -0
  89. package/esm2020/lib/view-context/value-api/api.module.mjs +40 -0
  90. package/esm2020/lib/view-context/value-api/configuration.mjs +91 -0
  91. package/esm2020/lib/view-context/value-api/index.mjs +6 -0
  92. package/esm2020/lib/view-context/value-api/model/models.mjs +2 -0
  93. package/esm2020/lib/view-context/value-api/model/valueSetData.mjs +13 -0
  94. package/esm2020/lib/view-context/value-api/param.mjs +2 -0
  95. package/esm2020/lib/view-context/value-api/variables.mjs +9 -0
  96. package/esm2020/projects.mjs +8 -0
  97. package/esm2020/smartbit4all-ng-client.mjs +5 -0
  98. package/fesm2015/smartbit4all-ng-client.mjs +3418 -0
  99. package/fesm2015/smartbit4all-ng-client.mjs.map +1 -0
  100. package/fesm2020/smartbit4all-ng-client.mjs +3423 -0
  101. package/fesm2020/smartbit4all-ng-client.mjs.map +1 -0
  102. package/lib/session/api/api/api.d.ts +3 -0
  103. package/lib/session/api/api/session.service.d.ts +107 -0
  104. package/lib/session/api/configuration.d.ts +104 -0
  105. package/lib/session/api/encoder.d.ts +11 -0
  106. package/lib/session/api/index.d.ts +2 -0
  107. package/lib/session/api/model/accountInfo.d.ts +22 -0
  108. package/lib/session/api/model/apiError.d.ts +15 -0
  109. package/lib/session/api/model/authenticationProviderData.d.ts +17 -0
  110. package/lib/session/api/model/getAuthenticationProvidersResponse.d.ts +15 -0
  111. package/lib/session/api/model/models.d.ts +8 -0
  112. package/lib/session/api/model/refreshSessionRequest.d.ts +14 -0
  113. package/lib/session/api/model/session.d.ts +32 -0
  114. package/lib/session/api/model/sessionInfoData.d.ts +22 -0
  115. package/lib/session/api/model/userActivityLog.d.ts +33 -0
  116. package/lib/session/api/param.d.ts +37 -0
  117. package/lib/session/api/variables.d.ts +8 -0
  118. package/lib/session/cookie-service/smart-cookie.service.d.ts +129 -0
  119. package/lib/session/dev-tool/smart-dev-tool-dialog/smart-dev-tool-dialog.component.d.ts +28 -0
  120. package/lib/session/dev-tool/smart-dev-tool-dialog/smart-dev-tool-dialog.service.d.ts +18 -0
  121. package/lib/session/dev-tool/smart-dev-tool-floating-button/smart-dev-tool-floating-button.component.d.ts +15 -0
  122. package/lib/session/dev-tool/smart-dev-tool.interceptor.d.ts +18 -0
  123. package/lib/session/dev-tool/smart-dev-tool.service.d.ts +55 -0
  124. package/lib/session/projects.d.ts +8 -0
  125. package/lib/session/smart-error-catching.interceptor.d.ts +13 -0
  126. package/lib/session/smart-header-maintainer.interceptor.d.ts +11 -0
  127. package/lib/session/smart-session-handler.service.d.ts +11 -0
  128. package/lib/session/smart-session.module.d.ts +15 -0
  129. package/lib/session/smart-session.service.d.ts +50 -0
  130. package/lib/session/smart-timer/smart-session-timer.component.d.ts +14 -0
  131. package/lib/session/smart-timer/smart-session-timer.service.d.ts +21 -0
  132. package/lib/smart-ng-client.module.d.ts +8 -0
  133. package/lib/smart-ng-client.service.d.ts +10 -0
  134. package/lib/view-context/api/api/api.d.ts +3 -0
  135. package/lib/view-context/api/api/view.service.d.ts +147 -0
  136. package/lib/view-context/api/api.module.d.ts +11 -0
  137. package/lib/view-context/api/configuration.d.ts +104 -0
  138. package/lib/view-context/api/encoder.d.ts +11 -0
  139. package/lib/view-context/api/index.d.ts +6 -0
  140. package/lib/view-context/api/model/closeResult.d.ts +17 -0
  141. package/lib/view-context/api/model/componentConstraint.d.ts +25 -0
  142. package/lib/view-context/api/model/messageData.d.ts +27 -0
  143. package/lib/view-context/api/model/messageOption.d.ts +18 -0
  144. package/lib/view-context/api/model/messageOptionType.d.ts +17 -0
  145. package/lib/view-context/api/model/messageResult.d.ts +16 -0
  146. package/lib/view-context/api/model/messageType.d.ts +18 -0
  147. package/lib/view-context/api/model/models.d.ts +28 -0
  148. package/lib/view-context/api/model/openPendingData.d.ts +22 -0
  149. package/lib/view-context/api/model/smartLinkData.d.ts +21 -0
  150. package/lib/view-context/api/model/uiAction.d.ts +26 -0
  151. package/lib/view-context/api/model/uiActionButtonDescriptor.d.ts +18 -0
  152. package/lib/view-context/api/model/uiActionButtonIconPos.d.ts +19 -0
  153. package/lib/view-context/api/model/uiActionButtonType.d.ts +24 -0
  154. package/lib/view-context/api/model/uiActionDescriptor.d.ts +32 -0
  155. package/lib/view-context/api/model/uiActionDialogDescriptor.d.ts +22 -0
  156. package/lib/view-context/api/model/uiActionFeedbackType.d.ts +19 -0
  157. package/lib/view-context/api/model/uiActionInputType.d.ts +18 -0
  158. package/lib/view-context/api/model/uiActionRequest.d.ts +27 -0
  159. package/lib/view-context/api/model/view.d.ts +36 -0
  160. package/lib/view-context/api/model/viewApiError.d.ts +18 -0
  161. package/lib/view-context/api/model/viewConstraint.d.ts +18 -0
  162. package/lib/view-context/api/model/viewContext.d.ts +22 -0
  163. package/lib/view-context/api/model/viewContextData.d.ts +19 -0
  164. package/lib/view-context/api/model/viewContextUpdate.d.ts +22 -0
  165. package/lib/view-context/api/model/viewData.d.ts +25 -0
  166. package/lib/view-context/api/model/viewState.d.ts +21 -0
  167. package/lib/view-context/api/model/viewStateUpdate.d.ts +22 -0
  168. package/lib/view-context/api/model/viewType.d.ts +17 -0
  169. package/lib/view-context/api/param.d.ts +37 -0
  170. package/lib/view-context/api/variables.d.ts +8 -0
  171. package/lib/view-context/message-dialog/message-dialog.component.d.ts +17 -0
  172. package/lib/view-context/projects.d.ts +13 -0
  173. package/lib/view-context/smart-ui-action/components/success-snack-bar/success-snack-bar.component.d.ts +13 -0
  174. package/lib/view-context/smart-ui-action/dialogs/ui-action-confirm-dialog/ui-action-confirm-dialog.component.d.ts +25 -0
  175. package/lib/view-context/smart-ui-action/dialogs/ui-action-confirm-dialog/ui-action-confirm-dialog.service.d.ts +18 -0
  176. package/lib/view-context/smart-ui-action/dialogs/ui-action-input-dialog/ui-action-input-dialog.component.d.ts +28 -0
  177. package/lib/view-context/smart-ui-action/dialogs/ui-action-input-dialog/ui-action-input-dialog.service.d.ts +25 -0
  178. package/lib/view-context/smart-ui-action/ui-action-toolbar.component.d.ts +24 -0
  179. package/lib/view-context/smart-ui-action/ui-action.descriptor.service.d.ts +21 -0
  180. package/lib/view-context/smart-ui-action/ui-action.model.d.ts +30 -0
  181. package/lib/view-context/smart-ui-action/ui-action.service.d.ts +21 -0
  182. package/lib/view-context/smart-view-context-error-dialog/smart-view-context-error-dialog.component.d.ts +13 -0
  183. package/lib/view-context/smart-view-context-error-dialog/smart-view-context-error-dialog.service.d.ts +17 -0
  184. package/lib/view-context/smart-view-context.interceptor.d.ts +13 -0
  185. package/lib/view-context/smart-view-context.model.d.ts +30 -0
  186. package/lib/view-context/smart-view-context.module.d.ts +20 -0
  187. package/lib/view-context/smart-view-context.service.d.ts +60 -0
  188. package/lib/view-context/smart-view-redirect/smart-view-redirect.d.ts +14 -0
  189. package/lib/view-context/value-api/api.module.d.ts +11 -0
  190. package/lib/view-context/value-api/configuration.d.ts +104 -0
  191. package/lib/view-context/value-api/index.d.ts +5 -0
  192. package/lib/view-context/value-api/model/models.d.ts +1 -0
  193. package/lib/view-context/value-api/model/valueSetData.d.ts +39 -0
  194. package/lib/view-context/value-api/param.d.ts +37 -0
  195. package/lib/view-context/value-api/variables.d.ts +8 -0
  196. package/package.json +38 -0
  197. package/projects.d.ts +4 -0
  198. package/smartbit4all-ng-client-1.0.0.tgz +0 -0
  199. package/smartbit4all-ng-client.d.ts +5 -0
  200. package/src/lib/session/api/README.md +226 -0
  201. package/src/lib/view-context/api/README.md +226 -0
  202. package/src/lib/view-context/value-api/README.md +226 -0
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyYW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zbWFydC1uZy1jbGllbnQvc3JjL2xpYi9zZXNzaW9uL2FwaS9wYXJhbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBTdGFuZGFyZCBwYXJhbWV0ZXIgc3R5bGVzIGRlZmluZWQgYnkgT3BlbkFQSSBzcGVjXG4gKi9cbmV4cG9ydCB0eXBlIFN0YW5kYXJkUGFyYW1TdHlsZSA9XG4gIHwgJ21hdHJpeCdcbiAgfCAnbGFiZWwnXG4gIHwgJ2Zvcm0nXG4gIHwgJ3NpbXBsZSdcbiAgfCAnc3BhY2VEZWxpbWl0ZWQnXG4gIHwgJ3BpcGVEZWxpbWl0ZWQnXG4gIHwgJ2RlZXBPYmplY3QnXG4gIDtcblxuLyoqXG4gKiBUaGUgT3BlbkFQSSBzdGFuZGFyZCB7QGxpbmsgU3RhbmRhcmRQYXJhbVN0eWxlfXMgbWF5IGJlIGV4dGVuZGVkIGJ5IGN1c3RvbSBzdHlsZXMgYnkgdGhlIHVzZXIuXG4gKi9cbmV4cG9ydCB0eXBlIFBhcmFtU3R5bGUgPSBTdGFuZGFyZFBhcmFtU3R5bGUgfCBzdHJpbmc7XG5cbi8qKlxuICogU3RhbmRhcmQgcGFyYW1ldGVyIGxvY2F0aW9ucyBkZWZpbmVkIGJ5IE9wZW5BUEkgc3BlY1xuICovXG5leHBvcnQgdHlwZSBQYXJhbUxvY2F0aW9uID0gJ3F1ZXJ5JyB8ICdoZWFkZXInIHwgJ3BhdGgnIHwgJ2Nvb2tpZSc7XG5cbi8qKlxuICogU3RhbmRhcmQgdHlwZXMgYXMgZGVmaW5lZCBpbiA8YSBocmVmPVwiaHR0cHM6Ly9zd2FnZ2VyLmlvL3NwZWNpZmljYXRpb24vI2RhdGEtdHlwZXNcIj5PcGVuQVBJIFNwZWNpZmljYXRpb246IERhdGEgVHlwZXM8L2E+XG4gKi9cbmV4cG9ydCB0eXBlIFN0YW5kYXJkRGF0YVR5cGUgPVxuICB8IFwiaW50ZWdlclwiXG4gIHwgXCJudW1iZXJcIlxuICB8IFwiYm9vbGVhblwiXG4gIHwgXCJzdHJpbmdcIlxuICB8IFwib2JqZWN0XCJcbiAgfCBcImFycmF5XCJcbiAgO1xuXG4vKipcbiAqIFN0YW5kYXJkIHtAbGluayBEYXRhVHlwZX1zIHBsdXMgeW91ciBvd24gdHlwZXMvY2xhc3Nlcy5cbiAqL1xuZXhwb3J0IHR5cGUgRGF0YVR5cGUgPSBTdGFuZGFyZERhdGFUeXBlIHwgc3RyaW5nO1xuXG4vKipcbiAqIFN0YW5kYXJkIGZvcm1hdHMgYXMgZGVmaW5lZCBpbiA8YSBocmVmPVwiaHR0cHM6Ly9zd2FnZ2VyLmlvL3NwZWNpZmljYXRpb24vI2RhdGEtdHlwZXNcIj5PcGVuQVBJIFNwZWNpZmljYXRpb246IERhdGEgVHlwZXM8L2E+XG4gKi9cbmV4cG9ydCB0eXBlIFN0YW5kYXJkRGF0YUZvcm1hdCA9XG4gIHwgXCJpbnQzMlwiXG4gIHwgXCJpbnQ2NFwiXG4gIHwgXCJmbG9hdFwiXG4gIHwgXCJkb3VibGVcIlxuICB8IFwiYnl0ZVwiXG4gIHwgXCJiaW5hcnlcIlxuICB8IFwiZGF0ZVwiXG4gIHwgXCJkYXRlLXRpbWVcIlxuICB8IFwicGFzc3dvcmRcIlxuICA7XG5cbmV4cG9ydCB0eXBlIERhdGFGb3JtYXQgPSBTdGFuZGFyZERhdGFGb3JtYXQgfCBzdHJpbmc7XG5cbi8qKlxuICogVGhlIHBhcmFtZXRlciB0byBlbmNvZGUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGFyYW0ge1xuICBuYW1lOiBzdHJpbmc7XG4gIHZhbHVlOiB1bmtub3duO1xuICBpbjogUGFyYW1Mb2NhdGlvbjtcbiAgc3R5bGU6IFBhcmFtU3R5bGUsXG4gIGV4cGxvZGU6IGJvb2xlYW47XG4gIGRhdGFUeXBlOiBEYXRhVHlwZTtcbiAgZGF0YUZvcm1hdDogRGF0YUZvcm1hdCB8IHVuZGVmaW5lZDtcbn1cbiJdfQ==
@@ -0,0 +1,9 @@
1
+ import { InjectionToken } from '@angular/core';
2
+ export const BASE_PATH = new InjectionToken('basePath');
3
+ export const COLLECTION_FORMATS = {
4
+ 'csv': ',',
5
+ 'tsv': ' ',
6
+ 'ssv': ' ',
7
+ 'pipes': '|'
8
+ };
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFyaWFibGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc21hcnQtbmctY2xpZW50L3NyYy9saWIvc2Vzc2lvbi9hcGkvdmFyaWFibGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFL0MsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHLElBQUksY0FBYyxDQUFTLFVBQVUsQ0FBQyxDQUFDO0FBQ2hFLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHO0lBQzlCLEtBQUssRUFBRSxHQUFHO0lBQ1YsS0FBSyxFQUFFLEtBQUs7SUFDWixLQUFLLEVBQUUsR0FBRztJQUNWLE9BQU8sRUFBRSxHQUFHO0NBQ2YsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCBjb25zdCBCQVNFX1BBVEggPSBuZXcgSW5qZWN0aW9uVG9rZW48c3RyaW5nPignYmFzZVBhdGgnKTtcbmV4cG9ydCBjb25zdCBDT0xMRUNUSU9OX0ZPUk1BVFMgPSB7XG4gICAgJ2Nzdic6ICcsJyxcbiAgICAndHN2JzogJyAgICcsXG4gICAgJ3Nzdic6ICcgJyxcbiAgICAncGlwZXMnOiAnfCdcbn1cbiJdfQ==
@@ -0,0 +1,225 @@
1
+ // This service is based on the `ng2-cookies` package which sadly is not a service and does
2
+ // not use `DOCUMENT` injection and therefore doesn't work well with AoT production builds.
3
+ // Package: https://github.com/BCJTI/ng2-cookies
4
+ import { Inject, Injectable, PLATFORM_ID } from "@angular/core";
5
+ import { DOCUMENT, isPlatformBrowser } from "@angular/common";
6
+ import * as i0 from "@angular/core";
7
+ export class SmartCookieService {
8
+ constructor(document,
9
+ // Get the `PLATFORM_ID` so we can check if we're in a browser.
10
+ platformId) {
11
+ this.document = document;
12
+ this.platformId = platformId;
13
+ this.documentIsAccessible = isPlatformBrowser(this.platformId);
14
+ }
15
+ /**
16
+ * Get cookie Regular Expression
17
+ *
18
+ * @param name Cookie name
19
+ * @returns property RegExp
20
+ *
21
+ * @author: Stepan Suvorov
22
+ * @since: 1.0.0
23
+ */
24
+ static getCookieRegExp(name) {
25
+ const escapedName = name.replace(/([\[\]\{\}\(\)\|\=\;\+\?\,\.\*\^\$])/gi, "\\$1");
26
+ return new RegExp("(?:^" + escapedName + "|;\\s*" + escapedName + ")=(.*?)(?:;|$)", "g");
27
+ }
28
+ /**
29
+ * Gets the unencoded version of an encoded component of a Uniform Resource Identifier (URI).
30
+ *
31
+ * @param encodedURIComponent A value representing an encoded URI component.
32
+ *
33
+ * @returns The unencoded version of an encoded component of a Uniform Resource Identifier (URI).
34
+ *
35
+ * @author: Stepan Suvorov
36
+ * @since: 1.0.0
37
+ */
38
+ static safeDecodeURIComponent(encodedURIComponent) {
39
+ try {
40
+ return decodeURIComponent(encodedURIComponent);
41
+ }
42
+ catch {
43
+ // probably it is not uri encoded. return as is
44
+ return encodedURIComponent;
45
+ }
46
+ }
47
+ /**
48
+ * Return `true` if {@link Document} is accessible, otherwise return `false`
49
+ *
50
+ * @param name Cookie name
51
+ * @returns boolean - whether cookie with specified name exists
52
+ *
53
+ * @author: Stepan Suvorov
54
+ * @since: 1.0.0
55
+ */
56
+ check(name) {
57
+ if (!this.documentIsAccessible) {
58
+ return false;
59
+ }
60
+ name = encodeURIComponent(name);
61
+ const regExp = SmartCookieService.getCookieRegExp(name);
62
+ return regExp.test(this.document.cookie);
63
+ }
64
+ /**
65
+ * Get cookies by name
66
+ *
67
+ * @param name Cookie name
68
+ * @returns property value
69
+ *
70
+ * @author: Stepan Suvorov
71
+ * @since: 1.0.0
72
+ */
73
+ get(name) {
74
+ if (this.documentIsAccessible && this.check(name)) {
75
+ name = encodeURIComponent(name);
76
+ const regExp = SmartCookieService.getCookieRegExp(name);
77
+ const result = regExp.exec(this.document.cookie);
78
+ let results = result.input.split(";");
79
+ let value;
80
+ results.forEach((r) => {
81
+ let values = r.split(`${name}=`);
82
+ if (values[1] !== "null") {
83
+ value = values[1];
84
+ }
85
+ });
86
+ return value ?? "";
87
+ }
88
+ else {
89
+ return "";
90
+ }
91
+ }
92
+ /**
93
+ * Get all cookies in JSON format
94
+ *
95
+ * @returns all the cookies in json
96
+ *
97
+ * @author: Stepan Suvorov
98
+ * @since: 1.0.0
99
+ */
100
+ getAll() {
101
+ if (!this.documentIsAccessible) {
102
+ return {};
103
+ }
104
+ const cookies = {};
105
+ const document = this.document;
106
+ if (document.cookie && document.cookie !== "") {
107
+ document.cookie.split(";").forEach((currentCookie) => {
108
+ const [cookieName, cookieValue] = currentCookie.split("=");
109
+ cookies[SmartCookieService.safeDecodeURIComponent(cookieName.replace(/^ /, ""))] =
110
+ SmartCookieService.safeDecodeURIComponent(cookieValue);
111
+ });
112
+ }
113
+ return cookies;
114
+ }
115
+ set(name, value, expiresOrOptions, path, domain, secure, sameSite) {
116
+ if (!this.documentIsAccessible) {
117
+ return;
118
+ }
119
+ if (typeof expiresOrOptions === "number" ||
120
+ expiresOrOptions instanceof Date ||
121
+ path ||
122
+ domain ||
123
+ secure ||
124
+ sameSite) {
125
+ const optionsBody = {
126
+ expires: expiresOrOptions,
127
+ path,
128
+ domain,
129
+ secure,
130
+ sameSite: sameSite ? sameSite : "Lax",
131
+ };
132
+ this.set(name, value, optionsBody);
133
+ return;
134
+ }
135
+ let cookieString = encodeURIComponent(name) + "=" + encodeURIComponent(value) + ";";
136
+ const options = expiresOrOptions ? expiresOrOptions : {};
137
+ if (options.expires) {
138
+ if (typeof options.expires === "number") {
139
+ const dateExpires = new Date(new Date().getTime() + options.expires * 1000 * 60 * 60 * 24);
140
+ cookieString += "expires=" + dateExpires.toUTCString() + ";";
141
+ }
142
+ else {
143
+ cookieString += "expires=" + options.expires.toUTCString() + ";";
144
+ }
145
+ }
146
+ if (options.path) {
147
+ cookieString += "path=" + options.path + ";";
148
+ }
149
+ else {
150
+ cookieString += "path=/;";
151
+ }
152
+ if (options.domain) {
153
+ cookieString += "domain=" + options.domain + ";";
154
+ }
155
+ if (options.secure === false && options.sameSite === "None") {
156
+ options.secure = true;
157
+ console.warn(`[ngx-cookie-service] Cookie ${name} was forced with secure flag because sameSite=None.` +
158
+ `More details : https://github.com/stevermeister/ngx-cookie-service/issues/86#issuecomment-597720130`);
159
+ }
160
+ if (options.secure) {
161
+ cookieString += "secure;";
162
+ }
163
+ if (!options.sameSite) {
164
+ options.sameSite = "Lax";
165
+ }
166
+ cookieString += "sameSite=" + options.sameSite + ";";
167
+ this.document.cookie = cookieString;
168
+ }
169
+ /**
170
+ * Delete cookie by name
171
+ *
172
+ * @param name Cookie name
173
+ * @param path Cookie path
174
+ * @param domain Cookie domain
175
+ * @param secure Cookie secure flag
176
+ * @param sameSite Cookie sameSite flag - https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie/SameSite
177
+ *
178
+ * @author: Stepan Suvorov
179
+ * @since: 1.0.0
180
+ */
181
+ delete(name, path, domain, secure, sameSite = "Lax") {
182
+ if (!this.documentIsAccessible) {
183
+ return;
184
+ }
185
+ const expiresDate = new Date("Thu, 01 Jan 1970 00:00:01 GMT");
186
+ this.set(name, "", { expires: expiresDate, path, domain, secure, sameSite });
187
+ }
188
+ /**
189
+ * Delete all cookies
190
+ *
191
+ * @param path Cookie path
192
+ * @param domain Cookie domain
193
+ * @param secure Is the Cookie secure
194
+ * @param sameSite Is the cookie same site
195
+ *
196
+ * @author: Stepan Suvorov
197
+ * @since: 1.0.0
198
+ */
199
+ deleteAll(path, domain, secure, sameSite = "Lax") {
200
+ if (!this.documentIsAccessible) {
201
+ return;
202
+ }
203
+ const cookies = this.getAll();
204
+ for (const cookieName in cookies) {
205
+ if (cookies.hasOwnProperty(cookieName)) {
206
+ this.delete(cookieName, path, domain, secure, sameSite);
207
+ }
208
+ }
209
+ }
210
+ }
211
+ SmartCookieService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SmartCookieService, deps: [{ token: DOCUMENT }, { token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Injectable });
212
+ SmartCookieService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SmartCookieService, providedIn: "root" });
213
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SmartCookieService, decorators: [{
214
+ type: Injectable,
215
+ args: [{
216
+ providedIn: "root",
217
+ }]
218
+ }], ctorParameters: function () { return [{ type: Document, decorators: [{
219
+ type: Inject,
220
+ args: [DOCUMENT]
221
+ }] }, { type: undefined, decorators: [{
222
+ type: Inject,
223
+ args: [PLATFORM_ID]
224
+ }] }]; } });
225
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtY29va2llLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zbWFydC1uZy1jbGllbnQvc3JjL2xpYi9zZXNzaW9uL2Nvb2tpZS1zZXJ2aWNlL3NtYXJ0LWNvb2tpZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDJGQUEyRjtBQUMzRiwyRkFBMkY7QUFDM0YsZ0RBQWdEO0FBRWhELE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNoRSxPQUFPLEVBQUUsUUFBUSxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBZTlELE1BQU0sT0FBTyxrQkFBa0I7SUFHM0IsWUFDOEIsUUFBa0I7SUFDNUMsK0RBQStEO0lBQ2xDLFVBQWU7UUFGbEIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUVmLGVBQVUsR0FBVixVQUFVLENBQUs7UUFFNUMsSUFBSSxDQUFDLG9CQUFvQixHQUFHLGlCQUFpQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNuRSxDQUFDO0lBRUQ7Ozs7Ozs7O09BUUc7SUFDSyxNQUFNLENBQUMsZUFBZSxDQUFDLElBQVk7UUFDdkMsTUFBTSxXQUFXLEdBQVcsSUFBSSxDQUFDLE9BQU8sQ0FBQyx3Q0FBd0MsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUUzRixPQUFPLElBQUksTUFBTSxDQUFDLE1BQU0sR0FBRyxXQUFXLEdBQUcsUUFBUSxHQUFHLFdBQVcsR0FBRyxnQkFBZ0IsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUM3RixDQUFDO0lBRUQ7Ozs7Ozs7OztPQVNHO0lBQ0ssTUFBTSxDQUFDLHNCQUFzQixDQUFDLG1CQUEyQjtRQUM3RCxJQUFJO1lBQ0EsT0FBTyxrQkFBa0IsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1NBQ2xEO1FBQUMsTUFBTTtZQUNKLCtDQUErQztZQUMvQyxP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QUFnQyxFQUNoQyxNQUFnQyxFQUNoQyxXQUFxQixLQUFLO1FBRTFCLElBQUksQ0FBQyxJQUFJLENBQUMsb0JBQW9CLEVBQUU7WUFDNUIsT0FBTztTQUNWO1FBRUQsTUFBTSxPQUFPLEdBQVEsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBRW5DLEtBQUssTUFBTSxVQUFVLElBQUksT0FBTyxFQUFFO1lBQzlCLElBQUksT0FBTyxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsRUFBRTtnQkFDcEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUM7YUFDM0Q7U0FDSjtJQUNMLENBQUM7O2dIQTFTUSxrQkFBa0Isa0JBSWYsUUFBUSxhQUVSLFdBQVc7b0hBTmQsa0JBQWtCLGNBRmYsTUFBTTs0RkFFVCxrQkFBa0I7a0JBSDlCLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCOzBEQUsyQyxRQUFROzBCQUEzQyxNQUFNOzJCQUFDLFFBQVE7OzBCQUVmLE1BQU07MkJBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbIi8vIFRoaXMgc2VydmljZSBpcyBiYXNlZCBvbiB0aGUgYG5nMi1jb29raWVzYCBwYWNrYWdlIHdoaWNoIHNhZGx5IGlzIG5vdCBhIHNlcnZpY2UgYW5kIGRvZXNcbi8vIG5vdCB1c2UgYERPQ1VNRU5UYCBpbmplY3Rpb24gYW5kIHRoZXJlZm9yZSBkb2Vzbid0IHdvcmsgd2VsbCB3aXRoIEFvVCBwcm9kdWN0aW9uIGJ1aWxkcy5cbi8vIFBhY2thZ2U6IGh0dHBzOi8vZ2l0aHViLmNvbS9CQ0pUSS9uZzItY29va2llc1xuXG5pbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUsIFBMQVRGT1JNX0lEIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IERPQ1VNRU5ULCBpc1BsYXRmb3JtQnJvd3NlciB9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcblxuZXhwb3J0IHR5cGUgU2FtZVNpdGUgPSBcIkxheFwiIHwgXCJOb25lXCIgfCBcIlN0cmljdFwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIENvb2tpZU9wdGlvbnMge1xuICAgIGV4cGlyZXM/OiBudW1iZXIgfCBEYXRlO1xuICAgIHBhdGg/OiBzdHJpbmc7XG4gICAgZG9tYWluPzogc3RyaW5nO1xuICAgIHNlY3VyZT86IGJvb2xlYW47XG4gICAgc2FtZVNpdGU/OiBTYW1lU2l0ZTtcbn1cblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46IFwicm9vdFwiLFxufSlcbmV4cG9ydCBjbGFzcyBTbWFydENvb2tpZVNlcnZpY2Uge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZG9jdW1lbnRJc0FjY2Vzc2libGU6IGJvb2xlYW47XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQEluamVjdChET0NVTUVOVCkgcHJpdmF0ZSBkb2N1bWVudDogRG9jdW1lbnQsXG4gICAgICAgIC8vIEdldCB0aGUgYFBMQVRGT1JNX0lEYCBzbyB3ZSBjYW4gY2hlY2sgaWYgd2UncmUgaW4gYSBicm93c2VyLlxuICAgICAgICBASW5qZWN0KFBMQVRGT1JNX0lEKSBwcml2YXRlIHBsYXRmb3JtSWQ6IGFueVxuICAgICkge1xuICAgICAgICB0aGlzLmRvY3VtZW50SXNBY2Nlc3NpYmxlID0gaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXQgY29va2llIFJlZ3VsYXIgRXhwcmVzc2lvblxuICAgICAqXG4gICAgICogQHBhcmFtIG5hbWUgQ29va2llIG5hbWVcbiAgICAgKiBAcmV0dXJucyBwcm9wZXJ0eSBSZWdFeHBcbiAgICAgKlxuICAgICAqIEBhdXRob3I6IFN0ZXBhbiBTdXZvcm92XG4gICAgICogQHNpbmNlOiAxLjAuMFxuICAgICAqL1xuICAgIHByaXZhdGUgc3RhdGljIGdldENvb2tpZVJlZ0V4cChuYW1lOiBzdHJpbmcpOiBSZWdFeHAge1xuICAgICAgICBjb25zdCBlc2NhcGVkTmFtZTogc3RyaW5nID0gbmFtZS5yZXBsYWNlKC8oW1xcW1xcXVxce1xcfVxcKFxcKVxcfFxcPVxcO1xcK1xcP1xcLFxcLlxcKlxcXlxcJF0pL2dpLCBcIlxcXFwkMVwiKTtcblxuICAgICAgICByZXR1cm4gbmV3IFJlZ0V4cChcIig/Ol5cIiArIGVzY2FwZWROYW1lICsgXCJ8O1xcXFxzKlwiICsgZXNjYXBlZE5hbWUgKyBcIik9KC4qPykoPzo7fCQpXCIsIFwiZ1wiKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIHRoZSB1bmVuY29kZWQgdmVyc2lvbiBvZiBhbiBlbmNvZGVkIGNvbXBvbmVudCBvZiBhIFVuaWZvcm0gUmVzb3VyY2UgSWRlbnRpZmllciAoVVJJKS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBlbmNvZGVkVVJJQ29tcG9uZW50IEEgdmFsdWUgcmVwcmVzZW50aW5nIGFuIGVuY29kZWQgVVJJIGNvbXBvbmVudC5cbiAgICAgKlxuICAgICAqIEByZXR1cm5zIFRoZSB1bmVuY29kZWQgdmVyc2lvbiBvZiBhbiBlbmNvZGVkIGNvbXBvbmVudCBvZiBhIFVuaWZvcm0gUmVzb3VyY2UgSWRlbnRpZmllciAoVVJJKS5cbiAgICAgKlxuICAgICAqIEBhdXRob3I6IFN0ZXBhbiBTdXZvcm92XG4gICAgICogQHNpbmNlOiAxLjAuMFxuICAgICAqL1xuICAgIHByaXZhdGUgc3RhdGljIHNhZmVEZWNvZGVVUklDb21wb25lbnQoZW5jb2RlZFVSSUNvbXBvbmVudDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHJldHVybiBkZWNvZGVVUklDb21wb25lbnQoZW5jb2RlZFVSSUNvbXBvbmVudCk7XG4gICAgICAgIH0gY2F0Y2gge1xuICAgICAgICAgICAgLy8gcHJvYmFibHkgaXQgaXMgbm90IHVyaSBlbmNvZGVkLiByZXR1cm4gYXMgaXNcbiAgICAgICAgICAgIHJldHVybiBlbmNvZGVkVVJJQ29tcG9uZW50O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJuIGB0cnVlYCBpZiB7QGxpbmsgRG9jdW1lbnR9IGlzIGFjY2Vzc2libGUsIG90aGVyd2lzZSByZXR1cm4gYGZhbHNlYFxuICAgICAqXG4gICAgICogQHBhcmFtIG5hbWUgQ29va2llIG5hbWVcbiAgICAgKiBAcmV0dXJucyBib29sZWFuIC0gd2hldGhlciBjb29raWUgd2l0aCBzcGVjaWZpZWQgbmFtZSBleGlzdHNcbiAgICAgKlxuICAgICAqIEBhdXRob3I6IFN0ZXBhbiBTdXZvcm92XG4gICAgICogQHNpbmNlOiAxLjAuMFxuICAgICAqL1xuICAgIGNoZWNrKG5hbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAoIXRoaXMuZG9jdW1lbnRJc0FjY2Vzc2libGUpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBuYW1lID0gZW5jb2RlVVJJQ29tcG9uZW50KG5hbWUpO1xuICAgICAgICBjb25zdCByZWdFeHA6IFJlZ0V4cCA9IFNtYXJ0Q29va2llU2VydmljZS5nZXRDb29raWVSZWdFeHAobmFtZSk7XG4gICAgICAgIHJldHVybiByZWdFeHAudGVzdCh0aGlzLmRvY3VtZW50LmNvb2tpZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0IGNvb2tpZXMgYnkgbmFtZVxuICAgICAqXG4gICAgICogQHBhcmFtIG5hbWUgQ29va2llIG5hbWVcbiAgICAgKiBAcmV0dXJucyBwcm9wZXJ0eSB2YWx1ZVxuICAgICAqXG4gICAgICogQGF1dGhvcjogU3RlcGFuIFN1dm9yb3ZcbiAgICAgKiBAc2luY2U6IDEuMC4wXG4gICAgICovXG4gICAgZ2V0KG5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIGlmICh0aGlzLmRvY3VtZW50SXNBY2Nlc3NpYmxlICYmIHRoaXMuY2hlY2sobmFtZSkpIHtcbiAgICAgICAgICAgIG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQobmFtZSk7XG5cbiAgICAgICAgICAgIGNvbnN0IHJlZ0V4cDogUmVnRXhwID0gU21hcnRDb29raWVTZXJ2aWNlLmdldENvb2tpZVJlZ0V4cChuYW1lKTtcbiAgICAgICAgICAgIGNvbnN0IHJlc3VsdDogUmVnRXhwRXhlY0FycmF5ID0gcmVnRXhwLmV4ZWModGhpcy5kb2N1bWVudC5jb29raWUpITtcbiAgICAgICAgICAgIGxldCByZXN1bHRzID0gcmVzdWx0LmlucHV0LnNwbGl0KFwiO1wiKTtcblxuICAgICAgICAgICAgbGV0IHZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgICAgICAgICAgIHJlc3VsdHMuZm9yRWFjaCgocjogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICAgICAgbGV0IHZhbHVlcyA9IHIuc3BsaXQoYCR7bmFtZX09YCk7XG4gICAgICAgICAgICAgICAgaWYgKHZhbHVlc1sxXSAhPT0gXCJudWxsXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZXNbMV07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIHJldHVybiB2YWx1ZSA/PyBcIlwiO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIFwiXCI7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXQgYWxsIGNvb2tpZXMgaW4gSlNPTiBmb3JtYXRcbiAgICAgKlxuICAgICAqIEByZXR1cm5zIGFsbCB0aGUgY29va2llcyBpbiBqc29uXG4gICAgICpcbiAgICAgKiBAYXV0aG9yOiBTdGVwYW4gU3V2b3JvdlxuICAgICAqIEBzaW5jZTogMS4wLjBcbiAgICAgKi9cbiAgICBnZXRBbGwoKTogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSB7XG4gICAgICAgIGlmICghdGhpcy5kb2N1bWVudElzQWNjZXNzaWJsZSkge1xuICAgICAgICAgICAgcmV0dXJuIHt9O1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgY29va2llczogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSA9IHt9O1xuICAgICAgICBjb25zdCBkb2N1bWVudDogYW55ID0gdGhpcy5kb2N1bWVudDtcblxuICAgICAgICBpZiAoZG9jdW1lbnQuY29va2llICYmIGRvY3VtZW50LmNvb2tpZSAhPT0gXCJcIikge1xuICAgICAgICAgICAgZG9jdW1lbnQuY29va2llLnNwbGl0KFwiO1wiKS5mb3JFYWNoKChjdXJyZW50Q29va2llOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBbY29va2llTmFtZSwgY29va2llVmFsdWVdID0gY3VycmVudENvb2tpZS5zcGxpdChcIj1cIik7XG4gICAgICAgICAgICAgICAgY29va2llc1tTbWFydENvb2tpZVNlcnZpY2Uuc2FmZURlY29kZVVSSUNvbXBvbmVudChjb29raWVOYW1lLnJlcGxhY2UoL14gLywgXCJcIikpXSA9XG4gICAgICAgICAgICAgICAgICAgIFNtYXJ0Q29va2llU2VydmljZS5zYWZlRGVjb2RlVVJJQ29tcG9uZW50KGNvb2tpZVZhbHVlKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGNvb2tpZXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0IGNvb2tpZSBiYXNlZCBvbiBwcm92aWRlZCBpbmZvcm1hdGlvblxuICAgICAqXG4gICAgICogQHBhcmFtIG5hbWUgICAgIENvb2tpZSBuYW1lXG4gICAgICogQHBhcmFtIHZhbHVlICAgIENvb2tpZSB2YWx1ZVxuICAgICAqIEBwYXJhbSBleHBpcmVzICBOdW1iZXIgb2YgZGF5cyB1bnRpbCB0aGUgY29va2llcyBleHBpcmVzIG9yIGFuIGFjdHVhbCBgRGF0ZWBcbiAgICAgKiBAcGFyYW0gcGF0aCAgICAgQ29va2llIHBhdGhcbiAgICAgKiBAcGFyYW0gZG9tYWluICAgQ29va2llIGRvbWFpblxuICAgICAqIEBwYXJhbSBzZWN1cmUgICBTZWN1cmUgZmxhZ1xuICAgICAqIEBwYXJhbSBzYW1lU2l0ZSBPV0FTUCBzYW1lc2l0ZSB0b2tlbiBgTGF4YCwgYE5vbmVgLCBvciBgU3RyaWN0YC4gRGVmYXVsdHMgdG8gYExheGBcbiAgICAgKlxuICAgICAqIEBhdXRob3I6IFN0ZXBhbiBTdXZvcm92XG4gICAgICogQHNpbmNlOiAxLjAuMFxuICAgICAqL1xuICAgIHNldChcbiAgICAgICAgbmFtZTogc3RyaW5nLFxuICAgICAgICB2YWx1ZTogc3RyaW5nLFxuICAgICAgICBleHBpcmVzPzogQ29va2llT3B0aW9uc1tcImV4cGlyZXNcIl0sXG4gICAgICAgIHBhdGg/OiBDb29raWVPcHRpb25zW1wicGF0aFwiXSxcbiAgICAgICAgZG9tYWluPzogQ29va2llT3B0aW9uc1tcImRvbWFpblwiXSxcbiAgICAgICAgc2VjdXJlPzogQ29va2llT3B0aW9uc1tcInNlY3VyZVwiXSxcbiAgICAgICAgc2FtZVNpdGU/OiBTYW1lU2l0ZVxuICAgICk6IHZvaWQ7XG5cbiAgICAvKipcbiAgICAgKiBTZXQgY29va2llIGJhc2VkIG9uIHByb3ZpZGVkIGluZm9ybWF0aW9uXG4gICAgICpcbiAgICAgKiBDb29raWUncyBwYXJhbWV0ZXJzOlxuICAgICAqIDxwcmU+XG4gICAgICogZXhwaXJlcyAgTnVtYmVyIG9mIGRheXMgdW50aWwgdGhlIGNvb2tpZXMgZXhwaXJlcyBvciBhbiBhY3R1YWwgYERhdGVgXG4gICAgICogcGF0aCAgICAgQ29va2llIHBhdGhcbiAgICAgKiBkb21haW4gICBDb29raWUgZG9tYWluXG4gICAgICogc2VjdXJlICAgU2VjdXJlIGZsYWdcbiAgICAgKiBzYW1lU2l0ZSBPV0FTUCBzYW1lc2l0ZSB0b2tlbiBgTGF4YCwgYE5vbmVgLCBvciBgU3RyaWN0YC4gRGVmYXVsdHMgdG8gYExheGBcbiAgICAgKiA8L3ByZT5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBuYW1lICAgICBDb29raWUgbmFtZVxuICAgICAqIEBwYXJhbSB2YWx1ZSAgICBDb29raWUgdmFsdWVcbiAgICAgKiBAcGFyYW0gb3B0aW9ucyAgQm9keSB3aXRoIGNvb2tpZSdzIHBhcmFtc1xuICAgICAqXG4gICAgICogQGF1dGhvcjogU3RlcGFuIFN1dm9yb3ZcbiAgICAgKiBAc2luY2U6IDEuMC4wXG4gICAgICovXG4gICAgc2V0KG5hbWU6IHN0cmluZywgdmFsdWU6IHN0cmluZywgb3B0aW9ucz86IENvb2tpZU9wdGlvbnMpOiB2b2lkO1xuXG4gICAgc2V0KFxuICAgICAgICBuYW1lOiBzdHJpbmcsXG4gICAgICAgIHZhbHVlOiBzdHJpbmcsXG4gICAgICAgIGV4cGlyZXNPck9wdGlvbnM/OiBDb29raWVPcHRpb25zW1wiZXhwaXJlc1wiXSB8IENvb2tpZU9wdGlvbnMsXG4gICAgICAgIHBhdGg/OiBDb29raWVPcHRpb25zW1wicGF0aFwiXSxcbiAgICAgICAgZG9tYWluPzogQ29va2llT3B0aW9uc1tcImRvbWFpblwiXSxcbiAgICAgICAgc2VjdXJlPzogQ29va2llT3B0aW9uc1tcInNlY3VyZVwiXSxcbiAgICAgICAgc2FtZVNpdGU/OiBTYW1lU2l0ZVxuICAgICk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuZG9jdW1lbnRJc0FjY2Vzc2libGUpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIHR5cGVvZiBleHBpcmVzT3JPcHRpb25zID09PSBcIm51bWJlclwiIHx8XG4gICAgICAgICAgICBleHBpcmVzT3JPcHRpb25zIGluc3RhbmNlb2YgRGF0ZSB8fFxuICAgICAgICAgICAgcGF0aCB8fFxuICAgICAgICAgICAgZG9tYWluIHx8XG4gICAgICAgICAgICBzZWN1cmUgfHxcbiAgICAgICAgICAgIHNhbWVTaXRlXG4gICAgICAgICkge1xuICAgICAgICAgICAgY29uc3Qgb3B0aW9uc0JvZHkgPSB7XG4gICAgICAgICAgICAgICAgZXhwaXJlczogZXhwaXJlc09yT3B0aW9ucyBhcyBDb29raWVPcHRpb25zW1wiZXhwaXJlc1wiXSxcbiAgICAgICAgICAgICAgICBwYXRoLFxuICAgICAgICAgICAgICAgIGRvbWFpbixcbiAgICAgICAgICAgICAgICBzZWN1cmUsXG4gICAgICAgICAgICAgICAgc2FtZVNpdGU6IHNhbWVTaXRlID8gc2FtZVNpdGUgOiBcIkxheFwiLFxuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgdGhpcy5zZXQobmFtZSwgdmFsdWUsIG9wdGlvbnNCb2R5KTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBjb29raWVTdHJpbmc6IHN0cmluZyA9IGVuY29kZVVSSUNvbXBvbmVudChuYW1lKSArIFwiPVwiICsgZW5jb2RlVVJJQ29tcG9uZW50KHZhbHVlKSArIFwiO1wiO1xuXG4gICAgICAgIGNvbnN0IG9wdGlvbnMgPSBleHBpcmVzT3JPcHRpb25zID8gZXhwaXJlc09yT3B0aW9ucyA6IHt9O1xuXG4gICAgICAgIGlmIChvcHRpb25zLmV4cGlyZXMpIHtcbiAgICAgICAgICAgIGlmICh0eXBlb2Ygb3B0aW9ucy5leHBpcmVzID09PSBcIm51bWJlclwiKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZGF0ZUV4cGlyZXM6IERhdGUgPSBuZXcgRGF0ZShcbiAgICAgICAgICAgICAgICAgICAgbmV3IERhdGUoKS5nZXRUaW1lKCkgKyBvcHRpb25zLmV4cGlyZXMgKiAxMDAwICogNjAgKiA2MCAqIDI0XG4gICAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICAgIGNvb2tpZVN0cmluZyArPSBcImV4cGlyZXM9XCIgKyBkYXRlRXhwaXJlcy50b1VUQ1N0cmluZygpICsgXCI7XCI7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvb2tpZVN0cmluZyArPSBcImV4cGlyZXM9XCIgKyBvcHRpb25zLmV4cGlyZXMudG9VVENTdHJpbmcoKSArIFwiO1wiO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKG9wdGlvbnMucGF0aCkge1xuICAgICAgICAgICAgY29va2llU3RyaW5nICs9IFwicGF0aD1cIiArIG9wdGlvbnMucGF0aCArIFwiO1wiO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29va2llU3RyaW5nICs9IFwicGF0aD0vO1wiO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKG9wdGlvbnMuZG9tYWluKSB7XG4gICAgICAgICAgICBjb29raWVTdHJpbmcgKz0gXCJkb21haW49XCIgKyBvcHRpb25zLmRvbWFpbiArIFwiO1wiO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKG9wdGlvbnMuc2VjdXJlID09PSBmYWxzZSAmJiBvcHRpb25zLnNhbWVTaXRlID09PSBcIk5vbmVcIikge1xuICAgICAgICAgICAgb3B0aW9ucy5zZWN1cmUgPSB0cnVlO1xuICAgICAgICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAgICAgICAgIGBbbmd4LWNvb2tpZS1zZXJ2aWNlXSBDb29raWUgJHtuYW1lfSB3YXMgZm9yY2VkIHdpdGggc2VjdXJlIGZsYWcgYmVjYXVzZSBzYW1lU2l0ZT1Ob25lLmAgK1xuICAgICAgICAgICAgICAgICAgICBgTW9yZSBkZXRhaWxzIDogaHR0cHM6Ly9naXRodWIuY29tL3N0ZXZlcm1laXN0ZXIvbmd4LWNvb2tpZS1zZXJ2aWNlL2lzc3Vlcy84NiNpc3N1ZWNvbW1lbnQtNTk3NzIwMTMwYFxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAob3B0aW9ucy5zZWN1cmUpIHtcbiAgICAgICAgICAgIGNvb2tpZVN0cmluZyArPSBcInNlY3VyZTtcIjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghb3B0aW9ucy5zYW1lU2l0ZSkge1xuICAgICAgICAgICAgb3B0aW9ucy5zYW1lU2l0ZSA9IFwiTGF4XCI7XG4gICAgICAgIH1cbiAgICAgICAgY29va2llU3RyaW5nICs9IFwic2FtZVNpdGU9XCIgKyBvcHRpb25zLnNhbWVTaXRlICsgXCI7XCI7XG4gICAgICAgIHRoaXMuZG9jdW1lbnQuY29va2llID0gY29va2llU3RyaW5nO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERlbGV0ZSBjb29raWUgYnkgbmFtZVxuICAgICAqXG4gICAgICogQHBhcmFtIG5hbWUgICBDb29raWUgbmFtZVxuICAgICAqIEBwYXJhbSBwYXRoICAgQ29va2llIHBhdGhcbiAgICAgKiBAcGFyYW0gZG9tYWluIENvb2tpZSBkb21haW5cbiAgICAgKiBAcGFyYW0gc2VjdXJlIENvb2tpZSBzZWN1cmUgZmxhZ1xuICAgICAqIEBwYXJhbSBzYW1lU2l0ZSBDb29raWUgc2FtZVNpdGUgZmxhZyAtIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0hUVFAvSGVhZGVycy9TZXQtQ29va2llL1NhbWVTaXRlXG4gICAgICpcbiAgICAgKiBAYXV0aG9yOiBTdGVwYW4gU3V2b3JvdlxuICAgICAqIEBzaW5jZTogMS4wLjBcbiAgICAgKi9cbiAgICBkZWxldGUoXG4gICAgICAgIG5hbWU6IHN0cmluZyxcbiAgICAgICAgcGF0aD86IENvb2tpZU9wdGlvbnNbXCJwYXRoXCJdLFxuICAgICAgICBkb21haW4/OiBDb29raWVPcHRpb25zW1wiZG9tYWluXCJdLFxuICAgICAgICBzZWN1cmU/OiBDb29raWVPcHRpb25zW1wic2VjdXJlXCJdLFxuICAgICAgICBzYW1lU2l0ZTogU2FtZVNpdGUgPSBcIkxheFwiXG4gICAgKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5kb2N1bWVudElzQWNjZXNzaWJsZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGV4cGlyZXNEYXRlID0gbmV3IERhdGUoXCJUaHUsIDAxIEphbiAxOTcwIDAwOjAwOjAxIEdNVFwiKTtcbiAgICAgICAgdGhpcy5zZXQobmFtZSwgXCJcIiwgeyBleHBpcmVzOiBleHBpcmVzRGF0ZSwgcGF0aCwgZG9tYWluLCBzZWN1cmUsIHNhbWVTaXRlIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERlbGV0ZSBhbGwgY29va2llc1xuICAgICAqXG4gICAgICogQHBhcmFtIHBhdGggICBDb29raWUgcGF0aFxuICAgICAqIEBwYXJhbSBkb21haW4gQ29va2llIGRvbWFpblxuICAgICAqIEBwYXJhbSBzZWN1cmUgSXMgdGhlIENvb2tpZSBzZWN1cmVcbiAgICAgKiBAcGFyYW0gc2FtZVNpdGUgSXMgdGhlIGNvb2tpZSBzYW1lIHNpdGVcbiAgICAgKlxuICAgICAqIEBhdXRob3I6IFN0ZXBhbiBTdXZvcm92XG4gICAgICogQHNpbmNlOiAxLjAuMFxuICAgICAqL1xuICAgIGRlbGV0ZUFsbChcbiAgICAgICAgcGF0aD86IENvb2tpZU9wdGlvbnNbXCJwYXRoXCJdLFxuICAgICAgICBkb21haW4/OiBDb29raWVPcHRpb25zW1wiZG9tYWluXCJdLFxuICAgICAgICBzZWN1cmU/OiBDb29raWVPcHRpb25zW1wic2VjdXJlXCJdLFxuICAgICAgICBzYW1lU2l0ZTogU2FtZVNpdGUgPSBcIkxheFwiXG4gICAgKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5kb2N1bWVudElzQWNjZXNzaWJsZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgY29va2llczogYW55ID0gdGhpcy5nZXRBbGwoKTtcblxuICAgICAgICBmb3IgKGNvbnN0IGNvb2tpZU5hbWUgaW4gY29va2llcykge1xuICAgICAgICAgICAgaWYgKGNvb2tpZXMuaGFzT3duUHJvcGVydHkoY29va2llTmFtZSkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmRlbGV0ZShjb29raWVOYW1lLCBwYXRoLCBkb21haW4sIHNlY3VyZSwgc2FtZVNpdGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIl19
@@ -0,0 +1,90 @@
1
+ import { Component } from '@angular/core';
2
+ import { Subject, takeUntil } from 'rxjs';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "./smart-dev-tool-dialog.service";
5
+ import * as i2 from "@angular/material/button";
6
+ import * as i3 from "@smartbit4all/icon";
7
+ import * as i4 from "@angular/material/expansion";
8
+ import * as i5 from "@angular/common";
9
+ import * as i6 from "../smart-dev-tool.service";
10
+ export class SmartDevToolDialogComponent {
11
+ constructor(service) {
12
+ this.service = service;
13
+ this._destroy$ = new Subject();
14
+ this.descriptor = this.service.getData();
15
+ this.service.update.pipe(takeUntil(this._destroy$)).subscribe(() => {
16
+ this.descriptor = this.service.getData();
17
+ });
18
+ this.service.service.clearErrors();
19
+ }
20
+ ngOnDestroy() {
21
+ this._destroy$.next();
22
+ }
23
+ clear() {
24
+ this.service.clear();
25
+ }
26
+ getBody(inp) {
27
+ return this.syntaxHighlight(inp);
28
+ }
29
+ syntaxHighlight(json) {
30
+ if (typeof json != 'string') {
31
+ json = JSON.stringify(json, undefined, 2);
32
+ }
33
+ json = json.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;');
34
+ return json.replace(/("(\\u[a-zA-Z0-9]{4}|\\[^u]|[^\\"])*"(\s*:)?|\b(true|false|null)\b|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?)/g, function (match) {
35
+ var cls = 'number';
36
+ if (/^"/.test(match)) {
37
+ if (/:$/.test(match)) {
38
+ cls = 'key';
39
+ }
40
+ else {
41
+ cls = 'string';
42
+ }
43
+ }
44
+ else if (/true|false/.test(match)) {
45
+ cls = 'boolean';
46
+ }
47
+ else if (/null/.test(match)) {
48
+ cls = 'null';
49
+ }
50
+ return '<span class="' + cls + '">' + match + '</span>';
51
+ });
52
+ }
53
+ copy() {
54
+ copyToClipboard({
55
+ value: this.service.getPureString()
56
+ });
57
+ }
58
+ close() {
59
+ this.service.closeDialog();
60
+ }
61
+ }
62
+ SmartDevToolDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SmartDevToolDialogComponent, deps: [{ token: i1.SmartDevToolDialogService }], target: i0.ɵɵFactoryTarget.Component });
63
+ SmartDevToolDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: SmartDevToolDialogComponent, selector: "app-smart-dev-tool-dialog", ngImport: i0, template: "<div class=\"smartDevToolDialogContainer\">\n <div class=\"header\">\n <h2>Developer tool</h2>\n <button mat-icon-button title=\"close\" (click)=\"close()\">\n <smart-icon icon=\"close\"></smart-icon>\n </button>\n </div>\n <div class=\"requestsContainer\">\n <mat-accordion multi>\n <mat-expansion-panel\n class=\"requestCard\"\n [ngClass]=\"apiCall.responseStatus === 200 ? '' : 'hasError'\"\n *ngFor=\"let apiCall of descriptor?.apiCalls; let i = index\"\n >\n <mat-expansion-panel-header>\n <mat-panel-title>\n <div class=\"titlePanel\">\n <span class=\"date\">\n {{ apiCall.responseDate | smartDevToolDatePipe }}\n </span>\n <span class=\"urlText\">\n {{ apiCall.url }}\n </span>\n <div [ngClass]=\"apiCall.requestMethod\">\n {{ apiCall.requestMethod }}\n </div>\n <div [ngClass]=\"'statusCode-' + apiCall.responseStatus.toString()[0]\">\n {{ apiCall.responseStatus }}\n </div>\n </div>\n </mat-panel-title>\n </mat-expansion-panel-header>\n\n <div>\n <div class=\"table\">\n <div class=\"row\">\n <div class=\"mainCol heading\">Request</div>\n <div class=\"mainCol heading\">Response</div>\n </div>\n <div class=\"row\">\n <div class=\"mainCol\">\n <div class=\"heading\">Date</div>\n <div class=\"data\">\n {{ apiCall.requestDate | smartDevToolDatePipe }}\n </div>\n </div>\n <div class=\"mainCol\">\n <div class=\"heading\">Date</div>\n <div class=\"data\">\n {{ apiCall.responseDate | smartDevToolDatePipe }}\n </div>\n </div>\n </div>\n <div class=\"row\">\n <div class=\"mainCol\">\n <div class=\"heading\">Headers</div>\n </div>\n <div class=\"mainCol\">\n <div class=\"heading\">Headers</div>\n </div>\n </div>\n <div class=\"row\">\n <div class=\"mainCol\">\n <pre\n *ngIf=\"apiCall.requestHeader\"\n class=\"data\"\n [innerHTML]=\"getBody(apiCall.requestHeader)\"\n ></pre>\n <div *ngIf=\"!apiCall.requestHeader\" class=\"data\">null</div>\n </div>\n <div class=\"mainCol\">\n <pre\n *ngIf=\"apiCall.responseHeader\"\n class=\"data\"\n [innerHTML]=\"getBody(apiCall.responseHeader)\"\n ></pre>\n <div *ngIf=\"!apiCall.responseHeader\" class=\"data\">null</div>\n </div>\n </div>\n <div class=\"row\">\n <div class=\"mainCol\">\n <div class=\"heading\"></div>\n <div class=\"data\"></div>\n </div>\n <div class=\"mainCol\">\n <div class=\"heading\">Status</div>\n <div class=\"data\">\n {{ apiCall.responseStatus }}\n </div>\n </div>\n </div>\n <div class=\"row\">\n <div class=\"mainCol\">\n <div class=\"heading\"></div>\n <div class=\"data\"></div>\n </div>\n <div class=\"mainCol\">\n <div class=\"heading\">Status text</div>\n <div class=\"data\">\n {{ apiCall.responseStatusText }}\n </div>\n </div>\n </div>\n <div class=\"row\">\n <div class=\"mainCol\">\n <div class=\"heading\">Body</div>\n </div>\n <div class=\"mainCol\">\n <div class=\"heading\">Body</div>\n </div>\n </div>\n <div class=\"row\">\n <div class=\"mainCol\">\n <pre\n *ngIf=\"apiCall.requestBody\"\n class=\"data\"\n [innerHTML]=\"getBody(apiCall.requestBody)\"\n ></pre>\n <div *ngIf=\"!apiCall.requestBody\" class=\"data\">null</div>\n </div>\n <div class=\"mainCol\">\n <pre\n *ngIf=\"apiCall.responseBody\"\n class=\"data\"\n [innerHTML]=\"getBody(apiCall.responseBody)\"\n ></pre>\n <div *ngIf=\"!apiCall.responseBody\" class=\"data\">null</div>\n </div>\n </div>\n <div class=\"row\">\n <div class=\"mainCol\">\n <div class=\"heading\">Session Storage</div>\n </div>\n <div class=\"mainCol\">\n <div class=\"heading\">Local Storage</div>\n </div>\n <div class=\"mainCol\">\n <div class=\"heading\">Cookies</div>\n </div>\n </div>\n <div class=\"row\">\n <div class=\"mainCol\">\n <pre\n *ngIf=\"apiCall.sessionStorage\"\n class=\"data\"\n [innerHTML]=\"getBody(apiCall.sessionStorage)\"\n ></pre>\n <div *ngIf=\"!apiCall.sessionStorage\" class=\"data\">null</div>\n </div>\n <div class=\"mainCol\">\n <pre\n *ngIf=\"apiCall.localStorage\"\n class=\"data\"\n [innerHTML]=\"getBody(apiCall.localStorage)\"\n ></pre>\n <div *ngIf=\"!apiCall.localStorage\" class=\"data\">null</div>\n </div>\n <div class=\"mainCol\">\n <pre\n *ngIf=\"apiCall.cookies\"\n class=\"data\"\n [innerHTML]=\"getBody(apiCall.cookies)\"\n ></pre>\n <div *ngIf=\"!apiCall.cookies\" class=\"data\">null</div>\n </div>\n </div>\n </div>\n </div>\n </mat-expansion-panel>\n </mat-accordion>\n </div>\n <div class=\"buttonsContainer\">\n <button color=\"primary\" mat-raised-button (click)=\"copy()\">Copy</button>\n <button color=\"warn\" mat-raised-button (click)=\"clear()\">Clear</button>\n </div>\n</div>\n", styles: [".smartDevToolDialogContainer{display:flex;flex-direction:column;gap:1rem;width:78vw;height:90vh}.header{display:flex;flex-direction:row;justify-content:space-between}.requestsContainer{display:flex;flex-direction:column;gap:1rem;flex:1;overflow:auto}.requestCard{background-color:var(--primary-lighter-color);padding:.5rem;border-radius:.5rem;display:flex;flex-direction:column}.table{display:flex;flex-direction:column;gap:.25rem}.row{display:flex;flex-direction:row;gap:1rem}.mainCol{flex:1;display:flex;flex-direction:row;gap:.5rem;overflow:auto}.heading{font-weight:700}.data{word-wrap:break-word}.buttonsContainer{display:flex;flex-direction:row;justify-content:space-between}pre{outline:1px solid #000;padding:5px;margin:5px}.string{color:green}.number{color:#ff8c00}.boolean{color:#00f}.null{color:#f0f}.key{color:red}@media only screen and (max-width: 1000px){.row{flex-direction:column;gap:.5rem}.mainCol{flex-direction:column;overflow-x:auto;overflow-y:visible;flex:auto}.requestCard h4{font-size:small;overflow:auto}.smartDevToolDialogContainer{width:calc(80vw - 3rem)}}.hasError{background-color:var(--warn-lighter-color)}.titlePanel{flex:1;display:flex;flex-direction:row;gap:1rem}.urlText{flex:1;text-decoration:underline}.PATCH{color:#d38042}.DELETE{color:#a41e22}.GET{color:#0f6ab4}.POST{color:#10a54a}.PUT{color:#c5862b}.HEAD{color:#ffd20f}.statusCode-2{color:#5fb442}.statusCode-3{color:#5970f6}.statusCode-4{color:#ec6762}.statusCode-5{color:#f2a63b}\n"], components: [{ type: i2.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i3.SmartIconComponent, selector: "smart-icon", inputs: ["icon", "color"] }, { type: i4.MatExpansionPanel, selector: "mat-expansion-panel", inputs: ["disabled", "expanded", "hideToggle", "togglePosition"], outputs: ["opened", "closed", "expandedChange", "afterExpand", "afterCollapse"], exportAs: ["matExpansionPanel"] }, { type: i4.MatExpansionPanelHeader, selector: "mat-expansion-panel-header", inputs: ["tabIndex", "expandedHeight", "collapsedHeight"] }], directives: [{ type: i4.MatAccordion, selector: "mat-accordion", inputs: ["multi", "hideToggle", "displayMode", "togglePosition"], exportAs: ["matAccordion"] }, { type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i4.MatExpansionPanelTitle, selector: "mat-panel-title" }, { type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "smartDevToolDatePipe": i6.SmartDevToolDatePipe } });
64
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SmartDevToolDialogComponent, decorators: [{
65
+ type: Component,
66
+ args: [{ selector: 'app-smart-dev-tool-dialog', template: "<div class=\"smartDevToolDialogContainer\">\n <div class=\"header\">\n <h2>Developer tool</h2>\n <button mat-icon-button title=\"close\" (click)=\"close()\">\n <smart-icon icon=\"close\"></smart-icon>\n </button>\n </div>\n <div class=\"requestsContainer\">\n <mat-accordion multi>\n <mat-expansion-panel\n class=\"requestCard\"\n [ngClass]=\"apiCall.responseStatus === 200 ? '' : 'hasError'\"\n *ngFor=\"let apiCall of descriptor?.apiCalls; let i = index\"\n >\n <mat-expansion-panel-header>\n <mat-panel-title>\n <div class=\"titlePanel\">\n <span class=\"date\">\n {{ apiCall.responseDate | smartDevToolDatePipe }}\n </span>\n <span class=\"urlText\">\n {{ apiCall.url }}\n </span>\n <div [ngClass]=\"apiCall.requestMethod\">\n {{ apiCall.requestMethod }}\n </div>\n <div [ngClass]=\"'statusCode-' + apiCall.responseStatus.toString()[0]\">\n {{ apiCall.responseStatus }}\n </div>\n </div>\n </mat-panel-title>\n </mat-expansion-panel-header>\n\n <div>\n <div class=\"table\">\n <div class=\"row\">\n <div class=\"mainCol heading\">Request</div>\n <div class=\"mainCol heading\">Response</div>\n </div>\n <div class=\"row\">\n <div class=\"mainCol\">\n <div class=\"heading\">Date</div>\n <div class=\"data\">\n {{ apiCall.requestDate | smartDevToolDatePipe }}\n </div>\n </div>\n <div class=\"mainCol\">\n <div class=\"heading\">Date</div>\n <div class=\"data\">\n {{ apiCall.responseDate | smartDevToolDatePipe }}\n </div>\n </div>\n </div>\n <div class=\"row\">\n <div class=\"mainCol\">\n <div class=\"heading\">Headers</div>\n </div>\n <div class=\"mainCol\">\n <div class=\"heading\">Headers</div>\n </div>\n </div>\n <div class=\"row\">\n <div class=\"mainCol\">\n <pre\n *ngIf=\"apiCall.requestHeader\"\n class=\"data\"\n [innerHTML]=\"getBody(apiCall.requestHeader)\"\n ></pre>\n <div *ngIf=\"!apiCall.requestHeader\" class=\"data\">null</div>\n </div>\n <div class=\"mainCol\">\n <pre\n *ngIf=\"apiCall.responseHeader\"\n class=\"data\"\n [innerHTML]=\"getBody(apiCall.responseHeader)\"\n ></pre>\n <div *ngIf=\"!apiCall.responseHeader\" class=\"data\">null</div>\n </div>\n </div>\n <div class=\"row\">\n <div class=\"mainCol\">\n <div class=\"heading\"></div>\n <div class=\"data\"></div>\n </div>\n <div class=\"mainCol\">\n <div class=\"heading\">Status</div>\n <div class=\"data\">\n {{ apiCall.responseStatus }}\n </div>\n </div>\n </div>\n <div class=\"row\">\n <div class=\"mainCol\">\n <div class=\"heading\"></div>\n <div class=\"data\"></div>\n </div>\n <div class=\"mainCol\">\n <div class=\"heading\">Status text</div>\n <div class=\"data\">\n {{ apiCall.responseStatusText }}\n </div>\n </div>\n </div>\n <div class=\"row\">\n <div class=\"mainCol\">\n <div class=\"heading\">Body</div>\n </div>\n <div class=\"mainCol\">\n <div class=\"heading\">Body</div>\n </div>\n </div>\n <div class=\"row\">\n <div class=\"mainCol\">\n <pre\n *ngIf=\"apiCall.requestBody\"\n class=\"data\"\n [innerHTML]=\"getBody(apiCall.requestBody)\"\n ></pre>\n <div *ngIf=\"!apiCall.requestBody\" class=\"data\">null</div>\n </div>\n <div class=\"mainCol\">\n <pre\n *ngIf=\"apiCall.responseBody\"\n class=\"data\"\n [innerHTML]=\"getBody(apiCall.responseBody)\"\n ></pre>\n <div *ngIf=\"!apiCall.responseBody\" class=\"data\">null</div>\n </div>\n </div>\n <div class=\"row\">\n <div class=\"mainCol\">\n <div class=\"heading\">Session Storage</div>\n </div>\n <div class=\"mainCol\">\n <div class=\"heading\">Local Storage</div>\n </div>\n <div class=\"mainCol\">\n <div class=\"heading\">Cookies</div>\n </div>\n </div>\n <div class=\"row\">\n <div class=\"mainCol\">\n <pre\n *ngIf=\"apiCall.sessionStorage\"\n class=\"data\"\n [innerHTML]=\"getBody(apiCall.sessionStorage)\"\n ></pre>\n <div *ngIf=\"!apiCall.sessionStorage\" class=\"data\">null</div>\n </div>\n <div class=\"mainCol\">\n <pre\n *ngIf=\"apiCall.localStorage\"\n class=\"data\"\n [innerHTML]=\"getBody(apiCall.localStorage)\"\n ></pre>\n <div *ngIf=\"!apiCall.localStorage\" class=\"data\">null</div>\n </div>\n <div class=\"mainCol\">\n <pre\n *ngIf=\"apiCall.cookies\"\n class=\"data\"\n [innerHTML]=\"getBody(apiCall.cookies)\"\n ></pre>\n <div *ngIf=\"!apiCall.cookies\" class=\"data\">null</div>\n </div>\n </div>\n </div>\n </div>\n </mat-expansion-panel>\n </mat-accordion>\n </div>\n <div class=\"buttonsContainer\">\n <button color=\"primary\" mat-raised-button (click)=\"copy()\">Copy</button>\n <button color=\"warn\" mat-raised-button (click)=\"clear()\">Clear</button>\n </div>\n</div>\n", styles: [".smartDevToolDialogContainer{display:flex;flex-direction:column;gap:1rem;width:78vw;height:90vh}.header{display:flex;flex-direction:row;justify-content:space-between}.requestsContainer{display:flex;flex-direction:column;gap:1rem;flex:1;overflow:auto}.requestCard{background-color:var(--primary-lighter-color);padding:.5rem;border-radius:.5rem;display:flex;flex-direction:column}.table{display:flex;flex-direction:column;gap:.25rem}.row{display:flex;flex-direction:row;gap:1rem}.mainCol{flex:1;display:flex;flex-direction:row;gap:.5rem;overflow:auto}.heading{font-weight:700}.data{word-wrap:break-word}.buttonsContainer{display:flex;flex-direction:row;justify-content:space-between}pre{outline:1px solid #000;padding:5px;margin:5px}.string{color:green}.number{color:#ff8c00}.boolean{color:#00f}.null{color:#f0f}.key{color:red}@media only screen and (max-width: 1000px){.row{flex-direction:column;gap:.5rem}.mainCol{flex-direction:column;overflow-x:auto;overflow-y:visible;flex:auto}.requestCard h4{font-size:small;overflow:auto}.smartDevToolDialogContainer{width:calc(80vw - 3rem)}}.hasError{background-color:var(--warn-lighter-color)}.titlePanel{flex:1;display:flex;flex-direction:row;gap:1rem}.urlText{flex:1;text-decoration:underline}.PATCH{color:#d38042}.DELETE{color:#a41e22}.GET{color:#0f6ab4}.POST{color:#10a54a}.PUT{color:#c5862b}.HEAD{color:#ffd20f}.statusCode-2{color:#5fb442}.statusCode-3{color:#5970f6}.statusCode-4{color:#ec6762}.statusCode-5{color:#f2a63b}\n"] }]
67
+ }], ctorParameters: function () { return [{ type: i1.SmartDevToolDialogService }]; } });
68
+ export const copyToClipboard = async ({ target, message, value }) => {
69
+ try {
70
+ let copyValue = '';
71
+ if (!navigator.clipboard) {
72
+ throw new Error("Browser don't have support for native clipboard.");
73
+ }
74
+ if (target) {
75
+ const node = document.querySelector(target);
76
+ if (!node || !node.textContent) {
77
+ throw new Error('Element not found');
78
+ }
79
+ value = node.textContent;
80
+ }
81
+ if (value) {
82
+ copyValue = value;
83
+ }
84
+ await navigator.clipboard.writeText(copyValue);
85
+ }
86
+ catch (error) {
87
+ console.error(error.toString());
88
+ }
89
+ };
90
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtZGV2LXRvb2wtZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NtYXJ0LW5nLWNsaWVudC9zcmMvbGliL3Nlc3Npb24vZGV2LXRvb2wvc21hcnQtZGV2LXRvb2wtZGlhbG9nL3NtYXJ0LWRldi10b29sLWRpYWxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zbWFydC1uZy1jbGllbnQvc3JjL2xpYi9zZXNzaW9uL2Rldi10b29sL3NtYXJ0LWRldi10b29sLWRpYWxvZy9zbWFydC1kZXYtdG9vbC1kaWFsb2cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUNyRCxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7Ozs7QUFTMUMsTUFBTSxPQUFPLDJCQUEyQjtJQUt2QyxZQUFvQixPQUFrQztRQUFsQyxZQUFPLEdBQVAsT0FBTyxDQUEyQjtRQUo5QyxjQUFTLEdBQWtCLElBQUksT0FBTyxFQUFFLENBQUM7UUFLaEQsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ3pDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNsRSxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDMUMsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNwQyxDQUFDO0lBQ0QsV0FBVztRQUNWLElB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QyxDQUFDO0tBQ2hDO0FBQ0YsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgU21hcnREZXZUb29sRGVzY3JpcHRvciB9IGZyb20gJy4uL3NtYXJ0LWRldi10b29sLnNlcnZpY2UnO1xuaW1wb3J0IHsgU21hcnREZXZUb29sRGlhbG9nU2VydmljZSB9IGZyb20gJy4vc21hcnQtZGV2LXRvb2wtZGlhbG9nLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICdhcHAtc21hcnQtZGV2LXRvb2wtZGlhbG9nJyxcblx0dGVtcGxhdGVVcmw6ICcuL3NtYXJ0LWRldi10b29sLWRpYWxvZy5jb21wb25lbnQuaHRtbCcsXG5cdHN0eWxlVXJsczogWycuL3NtYXJ0LWRldi10b29sLWRpYWxvZy5jb21wb25lbnQuY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgU21hcnREZXZUb29sRGlhbG9nQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcblx0cHJpdmF0ZSBfZGVzdHJveSQ6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdCgpO1xuXG5cdGRlc2NyaXB0b3I/OiBTbWFydERldlRvb2xEZXNjcmlwdG9yO1xuXG5cdGNvbnN0cnVjdG9yKHByaXZhdGUgc2VydmljZTogU21hcnREZXZUb29sRGlhbG9nU2VydmljZSkge1xuXHRcdHRoaXMuZGVzY3JpcHRvciA9IHRoaXMuc2VydmljZS5nZXREYXRhKCk7XG5cdFx0dGhpcy5zZXJ2aWNlLnVwZGF0ZS5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCkpLnN1YnNjcmliZSgoKSA9PiB7XG5cdFx0XHR0aGlzLmRlc2NyaXB0b3IgPSB0aGlzLnNlcnZpY2UuZ2V0RGF0YSgpO1xuXHRcdH0pO1xuXHRcdHRoaXMuc2VydmljZS5zZXJ2aWNlLmNsZWFyRXJyb3JzKCk7XG5cdH1cblx0bmdPbkRlc3Ryb3koKTogdm9pZCB7XG5cdFx0dGhpcy5fZGVzdHJveSQubmV4dCgpO1xuXHR9XG5cblx0Y2xlYXIoKTogdm9pZCB7XG5cdFx0dGhpcy5zZXJ2aWNlLmNsZWFyKCk7XG5cdH1cblxuXHRnZXRCb2R5KGlucDogYW55KSB7XG5cdFx0cmV0dXJuIHRoaXMuc3ludGF4SGlnaGxpZ2h0KGlucCk7XG5cdH1cblxuXHRzeW50YXhIaWdobGlnaHQoanNvbjogYW55KSB7XG5cdFx0aWYgKHR5cGVvZiBqc29uICE9ICdzdHJpbmcnKSB7XG5cdFx0XHRqc29uID0gSlNPTi5zdHJpbmdpZnkoanNvbiwgdW5kZWZpbmVkLCAyKTtcblx0XHR9XG5cdFx0anNvbiA9IGpzb24ucmVwbGFjZSgvJi9nLCAnJmFtcDsnKS5yZXBsYWNlKC88L2csICcmbHQ7JykucmVwbGFjZSgvPi9nLCAnJmd0OycpO1xuXHRcdHJldHVybiBqc29uLnJlcGxhY2UoXG5cdFx0XHQvKFwiKFxcXFx1W2EtekEtWjAtOV17NH18XFxcXFtedV18W15cXFxcXCJdKSpcIihcXHMqOik/fFxcYih0cnVlfGZhbHNlfG51bGwpXFxifC0/XFxkKyg/OlxcLlxcZCopPyg/OltlRV1bK1xcLV0/XFxkKyk/KS9nLFxuXHRcdFx0ZnVuY3Rpb24gKG1hdGNoOiBhbnkpIHtcblx0XHRcdFx0dmFyIGNscyA9ICdudW1iZXInO1xuXHRcdFx0XHRpZiAoL15cIi8udGVzdChtYXRjaCkpIHtcblx0XHRcdFx0XHRpZiAoLzokLy50ZXN0KG1hdGNoKSkge1xuXHRcdFx0XHRcdFx0Y2xzID0gJ2tleSc7XG5cdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdGNscyA9ICdzdHJpbmcnO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSBlbHNlIGlmICgvdHJ1ZXxmYWxzZS8udGVzdChtYXRjaCkpIHtcblx0XHRcdFx0XHRjbHMgPSAnYm9vbGVhbic7XG5cdFx0XHRcdH0gZWxzZSBpZiAoL251bGwvLnRlc3QobWF0Y2gpKSB7XG5cdFx0XHRcdFx0Y2xzID0gJ251bGwnO1xuXHRcdFx0XHR9XG5cdFx0XHRcdHJldHVybiAnPHNwYW4gY2xhc3M9XCInICsgY2xzICsgJ1wiPicgKyBtYXRjaCArICc8L3NwYW4+Jztcblx0XHRcdH1cblx0XHQpO1xuXHR9XG5cblx0Y29weSgpOiB2b2lkIHtcblx0XHRjb3B5VG9DbGlwYm9hcmQoe1xuXHRcdFx0dmFsdWU6IHRoaXMuc2VydmljZS5nZXRQdXJlU3RyaW5nKClcblx0XHR9KTtcblx0fVxuXG5cdGNsb3NlKCk6IHZvaWQge1xuXHRcdHRoaXMuc2VydmljZS5jbG9zZURpYWxvZygpO1xuXHR9XG59XG5cbmludGVyZmFjZSBJQ29weVRvQ2xpcGJvYXJkIHtcblx0LyoqIEhUTUwgcmVmZXJlbmNlIGlkZW50aWZpZXIgYGBgPGRpdiBpZD1cImZvb1wiPjwvZGl2PmBgYCAgKi9cblx0dGFyZ2V0Pzogc3RyaW5nO1xuXHQvKiogU3RyaW5nIHZhbHVlICovXG5cdHZhbHVlPzogc3RyaW5nO1xuXHQvKiogKE9wdGlvbmFsKSBtZXNzYWdlIHRvIGRpc3BsYXkgaW4gc25hY2tiYXIgb24gc3VjY2VzcyAqL1xuXHRtZXNzYWdlPzogc3RyaW5nO1xufVxuXG5leHBvcnQgY29uc3QgY29weVRvQ2xpcGJvYXJkID0gYXN5bmMgKHsgdGFyZ2V0LCBtZXNzYWdlLCB2YWx1ZSB9OiBJQ29weVRvQ2xpcGJvYXJkKSA9PiB7XG5cdHRyeSB7XG5cdFx0bGV0IGNvcHlWYWx1ZSA9ICcnO1xuXG5cdFx0aWYgKCFuYXZpZ2F0b3IuY2xpcGJvYXJkKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoXCJCcm93c2VyIGRvbid0IGhhdmUgc3VwcG9ydCBmb3IgbmF0aXZlIGNsaXBib2FyZC5cIik7XG5cdFx0fVxuXG5cdFx0aWYgKHRhcmdldCkge1xuXHRcdFx0Y29uc3Qgbm9kZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IodGFyZ2V0KTtcblxuXHRcdFx0aWYgKCFub2RlIHx8ICFub2RlLnRleHRDb250ZW50KSB7XG5cdFx0XHRcdHRocm93IG5ldyBFcnJvcignRWxlbWVudCBub3QgZm91bmQnKTtcblx0XHRcdH1cblxuXHRcdFx0dmFsdWUgPSBub2RlLnRleHRDb250ZW50O1xuXHRcdH1cblxuXHRcdGlmICh2YWx1ZSkge1xuXHRcdFx0Y29weVZhbHVlID0gdmFsdWU7XG5cdFx0fVxuXG5cdFx0YXdhaXQgbmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQoY29weVZhbHVlKTtcblx0fSBjYXRjaCAoZXJyb3I6IGFueSkge1xuXHRcdGNvbnNvbGUuZXJyb3IoZXJyb3IudG9TdHJpbmcoKSk7XG5cdH1cbn07XG4iLCI8ZGl2IGNsYXNzPVwic21hcnREZXZUb29sRGlhbG9nQ29udGFpbmVyXCI+XG4gICAgPGRpdiBjbGFzcz1cImhlYWRlclwiPlxuICAgICAgICA8aDI+RGV2ZWxvcGVyIHRvb2w8L2gyPlxuICAgICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiB0aXRsZT1cImNsb3NlXCIgKGNsaWNrKT1cImNsb3NlKClcIj5cbiAgICAgICAgICAgIDxzbWFydC1pY29uIGljb249XCJjbG9zZVwiPjwvc21hcnQtaWNvbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInJlcXVlc3RzQ29udGFpbmVyXCI+XG4gICAgICAgIDxtYXQtYWNjb3JkaW9uIG11bHRpPlxuICAgICAgICAgICAgPG1hdC1leHBhbnNpb24tcGFuZWxcbiAgICAgICAgICAgICAgICBjbGFzcz1cInJlcXVlc3RDYXJkXCJcbiAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJhcGlDYWxsLnJlc3BvbnNlU3RhdHVzID09PSAyMDAgPyAnJyA6ICdoYXNFcnJvcidcIlxuICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBhcGlDYWxsIG9mIGRlc2NyaXB0b3I/LmFwaUNhbGxzOyBsZXQgaSA9IGluZGV4XCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8bWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXI+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtcGFuZWwtdGl0bGU+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGl0bGVQYW5lbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZGF0ZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBhcGlDYWxsLnJlc3BvbnNlRGF0ZSB8IHNtYXJ0RGV2VG9vbERhdGVQaXBlIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidXJsVGV4dFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBhcGlDYWxsLnVybCB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IFtuZ0NsYXNzXT1cImFwaUNhbGwucmVxdWVzdE1ldGhvZFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBhcGlDYWxsLnJlcXVlc3RNZXRob2QgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IFtuZ0NsYXNzXT1cIidzdGF0dXNDb2RlLScgKyBhcGlDYWxsLnJlc3BvbnNlU3RhdHVzLnRvU3RyaW5nKClbMF1cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgYXBpQ2FsbC5yZXNwb25zZVN0YXR1cyB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LXBhbmVsLXRpdGxlPlxuICAgICAgICAgICAgICAgIDwvbWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXI+XG5cbiAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFibGVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWFpbkNvbCBoZWFkaW5nXCI+UmVxdWVzdDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYWluQ29sIGhlYWRpbmdcIj5SZXNwb25zZTwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1haW5Db2xcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRpbmdcIj5EYXRlPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkYXRhXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBhcGlDYWxsLnJlcXVlc3REYXRlIHwgc21hcnREZXZUb29sRGF0ZVBpcGUgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1haW5Db2xcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRpbmdcIj5EYXRlPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkYXRhXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBhcGlDYWxsLnJlc3BvbnNlRGF0ZSB8IHNtYXJ0RGV2VG9vbERhdGVQaXBlIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1haW5Db2xcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRpbmdcIj5IZWFkZXJzPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1haW5Db2xcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRpbmdcIj5IZWFkZXJzPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWFpbkNvbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cHJlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImFwaUNhbGwucmVxdWVzdEhlYWRlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImRhdGFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2lubmVySFRNTF09XCJnZXRCb2R5KGFwaUNhbGwucmVxdWVzdEhlYWRlcilcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9wcmU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCIhYXBpQ2FsbC5yZXF1ZXN0SGVhZGVyXCIgY2xhc3M9XCJkYXRhXCI+bnVsbDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYWluQ29sXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwcmVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiYXBpQ2FsbC5yZXNwb25zZUhlYWRlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImRhdGFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2lubmVySFRNTF09XCJnZXRCb2R5KGFwaUNhbGwucmVzcG9uc2VIZWFkZXIpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvcHJlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiIWFwaUNhbGwucmVzcG9uc2VIZWFkZXJcIiBjbGFzcz1cImRhdGFcIj5udWxsPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWFpbkNvbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGluZ1wiPjwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGF0YVwiPjwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYWluQ29sXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkaW5nXCI+U3RhdHVzPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkYXRhXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBhcGlDYWxsLnJlc3BvbnNlU3RhdHVzIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1haW5Db2xcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRpbmdcIj48L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRhdGFcIj48L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWFpbkNvbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGluZ1wiPlN0YXR1cyB0ZXh0PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkYXRhXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBhcGlDYWxsLnJlc3BvbnNlU3RhdHVzVGV4dCB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYWluQ29sXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkaW5nXCI+Qm9keTwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYWluQ29sXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkaW5nXCI+Qm9keTwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1haW5Db2xcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHByZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJhcGlDYWxsLnJlcXVlc3RCb2R5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZGF0YVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaW5uZXJIVE1MXT1cImdldEJvZHkoYXBpQ2FsbC5yZXF1ZXN0Qm9keSlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9wcmU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCIhYXBpQ2FsbC5yZXF1ZXN0Qm9keVwiIGNsYXNzPVwiZGF0YVwiPm51bGw8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWFpbkNvbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cHJlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImFwaUNhbGwucmVzcG9uc2VCb2R5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZGF0YVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaW5uZXJIVE1MXT1cImdldEJvZHkoYXBpQ2FsbC5yZXNwb25zZUJvZHkpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvcHJlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiIWFwaUNhbGwucmVzcG9uc2VCb2R5XCIgY2xhc3M9XCJkYXRhXCI+bnVsbDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1haW5Db2xcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRpbmdcIj5TZXNzaW9uIFN0b3JhZ2U8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWFpbkNvbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGluZ1wiPkxvY2FsIFN0b3JhZ2U8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWFpbkNvbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGluZ1wiPkNvb2tpZXM8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYWluQ29sXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwcmVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiYXBpQ2FsbC5zZXNzaW9uU3RvcmFnZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImRhdGFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2lubmVySFRNTF09XCJnZXRCb2R5KGFwaUNhbGwuc2Vzc2lvblN0b3JhZ2UpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvcHJlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiIWFwaUNhbGwuc2Vzc2lvblN0b3JhZ2VcIiBjbGFzcz1cImRhdGFcIj5udWxsPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1haW5Db2xcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHByZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJhcGlDYWxsLmxvY2FsU3RvcmFnZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImRhdGFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2lubmVySFRNTF09XCJnZXRCb2R5KGFwaUNhbGwubG9jYWxTdG9yYWdlKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L3ByZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIiFhcGlDYWxsLmxvY2FsU3RvcmFnZVwiIGNsYXNzPVwiZGF0YVwiPm51bGw8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWFpbkNvbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cHJlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImFwaUNhbGwuY29va2llc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImRhdGFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2lubmVySFRNTF09XCJnZXRCb2R5KGFwaUNhbGwuY29va2llcylcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9wcmU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCIhYXBpQ2FsbC5jb29raWVzXCIgY2xhc3M9XCJkYXRhXCI+bnVsbDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9tYXQtZXhwYW5zaW9uLXBhbmVsPlxuICAgICAgICA8L21hdC1hY2NvcmRpb24+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImJ1dHRvbnNDb250YWluZXJcIj5cbiAgICAgICAgPGJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiBtYXQtcmFpc2VkLWJ1dHRvbiAoY2xpY2spPVwiY29weSgpXCI+Q29weTwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uIGNvbG9yPVwid2FyblwiIG1hdC1yYWlzZWQtYnV0dG9uIChjbGljayk9XCJjbGVhcigpXCI+Q2xlYXI8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuIl19
@@ -0,0 +1,43 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { SmartdialogService } from '@smartbit4all/dialog';
3
+ import { SmartDevToolDialogComponent } from './smart-dev-tool-dialog.component';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/material/dialog";
6
+ import * as i2 from "@angular/router";
7
+ import * as i3 from "../smart-dev-tool.service";
8
+ export class SmartDevToolDialogService extends SmartdialogService {
9
+ constructor(dialog, router, service) {
10
+ super(dialog, router);
11
+ this.service = service;
12
+ this.update = this.service.descriptorChanged;
13
+ }
14
+ handleAfterClosed(result) { }
15
+ openDialog() {
16
+ const dialogData = {
17
+ content: {
18
+ title: ''
19
+ },
20
+ size: {},
21
+ customComponent: SmartDevToolDialogComponent
22
+ };
23
+ this.createDialog(dialogData, SmartDevToolDialogComponent);
24
+ }
25
+ getData() {
26
+ return this.service.descriptor;
27
+ }
28
+ getPureString() {
29
+ return this.service.getPureString();
30
+ }
31
+ clear() {
32
+ this.service.clear();
33
+ }
34
+ }
35
+ SmartDevToolDialogService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SmartDevToolDialogService, deps: [{ token: i1.MatDialog }, { token: i2.Router }, { token: i3.SmartDevToolService }], target: i0.ɵɵFactoryTarget.Injectable });
36
+ SmartDevToolDialogService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SmartDevToolDialogService, providedIn: 'root' });
37
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SmartDevToolDialogService, decorators: [{
38
+ type: Injectable,
39
+ args: [{
40
+ providedIn: 'root'
41
+ }]
42
+ }], ctorParameters: function () { return [{ type: i1.MatDialog }, { type: i2.Router }, { type: i3.SmartDevToolService }]; } });
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtZGV2LXRvb2wtZGlhbG9nLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zbWFydC1uZy1jbGllbnQvc3JjL2xpYi9zZXNzaW9uL2Rldi10b29sL3NtYXJ0LWRldi10b29sLWRpYWxvZy9zbWFydC1kZXYtdG9vbC1kaWFsb2cuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRzNDLE9BQU8sRUFBbUIsa0JBQWtCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUczRSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQzs7Ozs7QUFLaEYsTUFBTSxPQUFPLHlCQUEwQixTQUFRLGtCQUFrQjtJQUdoRSxZQUFZLE1BQWlCLEVBQUUsTUFBYyxFQUFTLE9BQTRCO1FBQ2pGLEtBQUssQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFEK0IsWUFBTyxHQUFQLE9BQU8sQ0FBcUI7UUFFakYsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLGlCQUFpQixDQUFDO0lBQzlDLENBQUM7SUFFUSxpQkFBaUIsQ0FBQyxNQUFXLElBQVMsQ0FBQztJQUV2QyxVQUFVO1FBQ2xCLE1BQU0sVUFBVSxHQUFvQjtZQUNuQyxPQUFPLEVBQUU7Z0JBQ1IsS0FBSyxFQUFFLEVBQUU7YUFDVDtZQUNELElBQUksRUFBRSxFQUFFO1lBQ1IsZUFBZSxFQUFFLDJCQUEyQjtTQUM1QyxDQUFDO1FBQ0YsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLEVBQUUsMkJBQTJCLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRUQsT0FBTztRQUNOLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFXLENBQUM7SUFDakMsQ0FBQztJQUVELGFBQWE7UUFDWixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDckMsQ0FBQztJQUVELEtBQUs7UUFDSixJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3RCLENBQUM7O3VIQS9CVyx5QkFBeUI7MkhBQXpCLHlCQUF5QixjQUZ6QixNQUFNOzRGQUVOLHlCQUF5QjtrQkFIckMsVUFBVTttQkFBQztvQkFDWCxVQUFVLEVBQUUsTUFBTTtpQkFDbEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IFNtYXJ0RGlhbG9nRGF0YSwgU21hcnRkaWFsb2dTZXJ2aWNlIH0gZnJvbSAnQHNtYXJ0Yml0NGFsbC9kaWFsb2cnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgU21hcnREZXZUb29sRGVzY3JpcHRvciwgU21hcnREZXZUb29sU2VydmljZSB9IGZyb20gJy4uL3NtYXJ0LWRldi10b29sLnNlcnZpY2UnO1xuaW1wb3J0IHsgU21hcnREZXZUb29sRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi9zbWFydC1kZXYtdG9vbC1kaWFsb2cuY29tcG9uZW50JztcblxuQEluamVjdGFibGUoe1xuXHRwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgU21hcnREZXZUb29sRGlhbG9nU2VydmljZSBleHRlbmRzIFNtYXJ0ZGlhbG9nU2VydmljZSB7XG5cdHVwZGF0ZTogU3ViamVjdDx2b2lkPjtcblxuXHRjb25zdHJ1Y3RvcihkaWFsb2c6IE1hdERpYWxvZywgcm91dGVyOiBSb3V0ZXIsIHB1YmxpYyBzZXJ2aWNlOiBTbWFydERldlRvb2xTZXJ2aWNlKSB7XG5cdFx0c3VwZXIoZGlhbG9nLCByb3V0ZXIpO1xuXHRcdHRoaXMudXBkYXRlID0gdGhpcy5zZXJ2aWNlLmRlc2NyaXB0b3JDaGFuZ2VkO1xuXHR9XG5cblx0b3ZlcnJpZGUgaGFuZGxlQWZ0ZXJDbG9zZWQocmVzdWx0OiBhbnkpOiB2b2lkIHt9XG5cblx0b3ZlcnJpZGUgb3BlbkRpYWxvZygpOiB2b2lkIHtcblx0XHRjb25zdCBkaWFsb2dEYXRhOiBTbWFydERpYWxvZ0RhdGEgPSB7XG5cdFx0XHRjb250ZW50OiB7XG5cdFx0XHRcdHRpdGxlOiAnJ1xuXHRcdFx0fSxcblx0XHRcdHNpemU6IHt9LFxuXHRcdFx0Y3VzdG9tQ29tcG9uZW50OiBTbWFydERldlRvb2xEaWFsb2dDb21wb25lbnRcblx0XHR9O1xuXHRcdHRoaXMuY3JlYXRlRGlhbG9nKGRpYWxvZ0RhdGEsIFNtYXJ0RGV2VG9vbERpYWxvZ0NvbXBvbmVudCk7XG5cdH1cblxuXHRnZXREYXRhKCk6IFNtYXJ0RGV2VG9vbERlc2NyaXB0b3Ige1xuXHRcdHJldHVybiB0aGlzLnNlcnZpY2UuZGVzY3JpcHRvciE7XG5cdH1cblxuXHRnZXRQdXJlU3RyaW5nKCk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIHRoaXMuc2VydmljZS5nZXRQdXJlU3RyaW5nKCk7XG5cdH1cblxuXHRjbGVhcigpOiB2b2lkIHtcblx0XHR0aGlzLnNlcnZpY2UuY2xlYXIoKTtcblx0fVxufVxuIl19
@@ -0,0 +1,40 @@
1
+ import { Component } from "@angular/core";
2
+ import { Subject, takeUntil } from "rxjs";
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "../smart-dev-tool-dialog/smart-dev-tool-dialog.service";
5
+ import * as i2 from "@angular/material/button";
6
+ import * as i3 from "@smartbit4all/icon";
7
+ import * as i4 from "@angular/common";
8
+ export class SmartDevToolFloatingButtonComponent {
9
+ constructor(service) {
10
+ this.service = service;
11
+ this._destroy$ = new Subject();
12
+ this.adminKeyName = "useDevTool";
13
+ this.isShown = false;
14
+ this.errorsCount = "";
15
+ this.service.service.newErrorsCountChanged.pipe(takeUntil(this._destroy$)).subscribe(() => {
16
+ this.errorsCount = `${this.service.service.newErrorsCount > 0 ? this.service.service.newErrorsCount : ""}`;
17
+ });
18
+ window.addEventListener("storage", (event) => {
19
+ if (event.storageArea === localStorage) {
20
+ if (Object.keys(localStorage).includes(this.adminKeyName)) {
21
+ this.isShown = localStorage.getItem(this.adminKeyName) === "true";
22
+ }
23
+ }
24
+ });
25
+ this.isShown = localStorage.getItem(this.adminKeyName) === "true";
26
+ }
27
+ ngOnDestroy() {
28
+ this._destroy$.next();
29
+ }
30
+ openDevToolDialog() {
31
+ this.service.openDialog();
32
+ }
33
+ }
34
+ SmartDevToolFloatingButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SmartDevToolFloatingButtonComponent, deps: [{ token: i1.SmartDevToolDialogService }], target: i0.ɵɵFactoryTarget.Component });
35
+ SmartDevToolFloatingButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: SmartDevToolFloatingButtonComponent, selector: "smart-session-dev-tool", ngImport: i0, template: "<button\n *ngIf=\"isShown\"\n mat-fab\n [color]=\"errorsCount.length ? 'warn' : 'accent'\"\n class=\"floatingButton\"\n extended\n title=\"devTool\"\n (click)=\"openDevToolDialog()\"\n>\n <smart-icon color=\"white\" icon=\"developer_mode\"></smart-icon>\n {{ errorsCount }}\n</button>\n", styles: [".floatingButton{position:fixed;right:2rem;bottom:2rem}.mat-icon.mat-white{color:#fff}\n"], components: [{ type: i2.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i3.SmartIconComponent, selector: "smart-icon", inputs: ["icon", "color"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
36
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SmartDevToolFloatingButtonComponent, decorators: [{
37
+ type: Component,
38
+ args: [{ selector: "smart-session-dev-tool", template: "<button\n *ngIf=\"isShown\"\n mat-fab\n [color]=\"errorsCount.length ? 'warn' : 'accent'\"\n class=\"floatingButton\"\n extended\n title=\"devTool\"\n (click)=\"openDevToolDialog()\"\n>\n <smart-icon color=\"white\" icon=\"developer_mode\"></smart-icon>\n {{ errorsCount }}\n</button>\n", styles: [".floatingButton{position:fixed;right:2rem;bottom:2rem}.mat-icon.mat-white{color:#fff}\n"] }]
39
+ }], ctorParameters: function () { return [{ type: i1.SmartDevToolDialogService }]; } });
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtZGV2LXRvb2wtZmxvYXRpbmctYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NtYXJ0LW5nLWNsaWVudC9zcmMvbGliL3Nlc3Npb24vZGV2LXRvb2wvc21hcnQtZGV2LXRvb2wtZmxvYXRpbmctYnV0dG9uL3NtYXJ0LWRldi10b29sLWZsb2F0aW5nLWJ1dHRvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zbWFydC1uZy1jbGllbnQvc3JjL2xpYi9zZXNzaW9uL2Rldi10b29sL3NtYXJ0LWRldi10b29sLWZsb2F0aW5nLWJ1dHRvbi9zbWFydC1kZXYtdG9vbC1mbG9hdGluZy1idXR0b24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUNyRCxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7O0FBUTFDLE1BQU0sT0FBTyxtQ0FBbUM7SUFRNUMsWUFBb0IsT0FBa0M7UUFBbEMsWUFBTyxHQUFQLE9BQU8sQ0FBMkI7UUFQOUMsY0FBUyxHQUFrQixJQUFJLE9BQU8sRUFBRSxDQUFDO1FBRWpELGlCQUFZLEdBQVcsWUFBWSxDQUFDO1FBQ3BDLFlBQU8sR0FBWSxLQUFLLENBQUM7UUFFekIsZ0JBQVcsR0FBVyxFQUFFLENBQUM7UUFHckIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ3RGLElBQUksQ0FBQyxXQUFXLEdBQUcsR0FDZixJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxjQUFjLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLEVBQ3BGLEVBQUUsQ0FBQztRQUNQLENBQUMsQ0FBQyxDQUFDO1FBRUgsTUFBTSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ3pDLElBQUksS0FBSyxDQUFDLFdBQVcsS0FBSyxZQUFZLEVBQUU7Z0JBQ3BDLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUFFO29CQUN2RCxJQUFJLENBQUMsT0FBTyxHQUFHLFlBQVksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLE1BQU0sQ0FBQztpQkFDckU7YUFDSjtRQUNMLENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLE9BQU8sR0FBRyxZQUFZLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxNQUFNLENBQUM7SUFDdEUsQ0FBQztJQUNELFdBQVc7UUFDUCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFRCxpQkFBaUI7UUFDYixJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQzlCLENBQUM7O2lJQS9CUSxtQ0FBbUM7cUhBQW5DLG1DQUFtQyw4RENUaEQsMlRBWUE7NEZESGEsbUNBQW1DO2tCQUwvQyxTQUFTOytCQUNJLHdCQUF3QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25EZXN0cm95IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQgeyBTbWFydERldlRvb2xEaWFsb2dTZXJ2aWNlIH0gZnJvbSBcIi4uL3NtYXJ0LWRldi10b29sLWRpYWxvZy9zbWFydC1kZXYtdG9vbC1kaWFsb2cuc2VydmljZVwiO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogXCJzbWFydC1zZXNzaW9uLWRldi10b29sXCIsXG4gICAgdGVtcGxhdGVVcmw6IFwiLi9zbWFydC1kZXYtdG9vbC1mbG9hdGluZy1idXR0b24uY29tcG9uZW50Lmh0bWxcIixcbiAgICBzdHlsZVVybHM6IFtcIi4vc21hcnQtZGV2LXRvb2wtZmxvYXRpbmctYnV0dG9uLmNvbXBvbmVudC5jc3NcIl0sXG59KVxuZXhwb3J0IGNsYXNzIFNtYXJ0RGV2VG9vbEZsb2F0aW5nQnV0dG9uQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgICBwcml2YXRlIF9kZXN0cm95JDogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgICBhZG1pbktleU5hbWU6IHN0cmluZyA9IFwidXNlRGV2VG9vbFwiO1xuICAgIGlzU2hvd246IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIGVycm9yc0NvdW50OiBzdHJpbmcgPSBcIlwiO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBzZXJ2aWNlOiBTbWFydERldlRvb2xEaWFsb2dTZXJ2aWNlKSB7XG4gICAgICAgIHRoaXMuc2VydmljZS5zZXJ2aWNlLm5ld0Vycm9yc0NvdW50Q2hhbmdlZC5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmVycm9yc0NvdW50ID0gYCR7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXJ2aWNlLnNlcnZpY2UubmV3RXJyb3JzQ291bnQgPiAwID8gdGhpcy5zZXJ2aWNlLnNlcnZpY2UubmV3RXJyb3JzQ291bnQgOiBcIlwiXG4gICAgICAgICAgICB9YDtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJzdG9yYWdlXCIsIChldmVudCkgPT4ge1xuICAgICAgICAgICAgaWYgKGV2ZW50LnN0b3JhZ2VBcmVhID09PSBsb2NhbFN0b3JhZ2UpIHtcbiAgICAgICAgICAgICAgICBpZiAoT2JqZWN0LmtleXMobG9jYWxTdG9yYWdlKS5pbmNsdWRlcyh0aGlzLmFkbWluS2V5TmFtZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pc1Nob3duID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5hZG1pbktleU5hbWUpID09PSBcInRydWVcIjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuaXNTaG93biA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuYWRtaW5LZXlOYW1lKSA9PT0gXCJ0cnVlXCI7XG4gICAgfVxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9kZXN0cm95JC5uZXh0KCk7XG4gICAgfVxuXG4gICAgb3BlbkRldlRvb2xEaWFsb2coKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2VydmljZS5vcGVuRGlhbG9nKCk7XG4gICAgfVxufVxuIiwiPGJ1dHRvblxuICAgICpuZ0lmPVwiaXNTaG93blwiXG4gICAgbWF0LWZhYlxuICAgIFtjb2xvcl09XCJlcnJvcnNDb3VudC5sZW5ndGggPyAnd2FybicgOiAnYWNjZW50J1wiXG4gICAgY2xhc3M9XCJmbG9hdGluZ0J1dHRvblwiXG4gICAgZXh0ZW5kZWRcbiAgICB0aXRsZT1cImRldlRvb2xcIlxuICAgIChjbGljayk9XCJvcGVuRGV2VG9vbERpYWxvZygpXCJcbj5cbiAgICA8c21hcnQtaWNvbiBjb2xvcj1cIndoaXRlXCIgaWNvbj1cImRldmVsb3Blcl9tb2RlXCI+PC9zbWFydC1pY29uPlxuICAgIHt7IGVycm9yc0NvdW50IH19XG48L2J1dHRvbj5cbiJdfQ==