@openziti/ziti-console-lib 0.11.2 → 0.12.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (78) hide show
  1. package/assets/fonts/icomoon.eot +0 -0
  2. package/assets/fonts/icomoon.svg +1 -0
  3. package/assets/fonts/icomoon.ttf +0 -0
  4. package/assets/fonts/icomoon.woff +0 -0
  5. package/assets/fonts/icomoon.woff2 +0 -0
  6. package/assets/styles/global.scss +76 -12
  7. package/assets/styles/ziti.css +4 -4
  8. package/esm2022/lib/features/config-editor/config-editor.component.mjs +1 -2
  9. package/esm2022/lib/features/data-table/table-filter-bar/filter-bar.component.mjs +2 -2
  10. package/esm2022/lib/features/projectable-forms/api-session/api-session-form.component.mjs +147 -0
  11. package/esm2022/lib/features/projectable-forms/api-session/api-session-form.service.mjs +119 -0
  12. package/esm2022/lib/features/projectable-forms/auth-policy/auth-policy-form.component.mjs +1 -2
  13. package/esm2022/lib/features/projectable-forms/certificate-authority/certificate-authority-form.component.mjs +1 -2
  14. package/esm2022/lib/features/projectable-forms/certificate-authority/verify-certificate/verify-certificate.component.mjs +1 -2
  15. package/esm2022/lib/features/projectable-forms/identity/identity-form.component.mjs +3 -3
  16. package/esm2022/lib/features/projectable-forms/jwt-signer/jwt-signer-form.component.mjs +91 -20
  17. package/esm2022/lib/features/projectable-forms/projectable-form.class.mjs +24 -4
  18. package/esm2022/lib/features/projectable-forms/session/session-form.component.mjs +217 -0
  19. package/esm2022/lib/features/projectable-forms/session/session-form.service.mjs +85 -0
  20. package/esm2022/lib/features/qr-code/qr-code.component.mjs +2 -2
  21. package/esm2022/lib/features/visualizer/identity-service-path/identity-service-path.component.mjs +1 -2
  22. package/esm2022/lib/models/api-session.mjs +7 -0
  23. package/esm2022/lib/models/session.mjs +7 -0
  24. package/esm2022/lib/pages/api-sessions/api-sessions-page.component.mjs +113 -0
  25. package/esm2022/lib/pages/api-sessions/api-sessions-page.service.mjs +198 -0
  26. package/esm2022/lib/pages/sessions/sessions-page.component.mjs +113 -0
  27. package/esm2022/lib/pages/sessions/sessions-page.service.mjs +200 -0
  28. package/esm2022/lib/services/auth.service.mjs +16 -5
  29. package/esm2022/lib/services/login-service.class.mjs +1 -1
  30. package/esm2022/lib/services/noop-login.service.mjs +3 -3
  31. package/esm2022/lib/services/tab-name.service.mjs +6 -1
  32. package/esm2022/lib/version.mjs +2 -2
  33. package/esm2022/lib/ziti-console-lib.module.mjs +25 -5
  34. package/esm2022/public-api.mjs +8 -1
  35. package/fesm2022/openziti-ziti-console-lib.mjs +1385 -188
  36. package/fesm2022/openziti-ziti-console-lib.mjs.map +1 -1
  37. package/lib/features/config-editor/config-editor.component.d.ts.map +1 -1
  38. package/lib/features/projectable-forms/api-session/api-session-form.component.d.ts +51 -0
  39. package/lib/features/projectable-forms/api-session/api-session-form.component.d.ts.map +1 -0
  40. package/lib/features/projectable-forms/api-session/api-session-form.service.d.ts +27 -0
  41. package/lib/features/projectable-forms/api-session/api-session-form.service.d.ts.map +1 -0
  42. package/lib/features/projectable-forms/auth-policy/auth-policy-form.component.d.ts.map +1 -1
  43. package/lib/features/projectable-forms/certificate-authority/certificate-authority-form.component.d.ts.map +1 -1
  44. package/lib/features/projectable-forms/certificate-authority/verify-certificate/verify-certificate.component.d.ts.map +1 -1
  45. package/lib/features/projectable-forms/identity/identity-form.component.d.ts +1 -1
  46. package/lib/features/projectable-forms/jwt-signer/jwt-signer-form.component.d.ts +19 -1
  47. package/lib/features/projectable-forms/jwt-signer/jwt-signer-form.component.d.ts.map +1 -1
  48. package/lib/features/projectable-forms/projectable-form.class.d.ts +5 -1
  49. package/lib/features/projectable-forms/projectable-form.class.d.ts.map +1 -1
  50. package/lib/features/projectable-forms/session/session-form.component.d.ts +64 -0
  51. package/lib/features/projectable-forms/session/session-form.component.d.ts.map +1 -0
  52. package/lib/features/projectable-forms/session/session-form.service.d.ts +23 -0
  53. package/lib/features/projectable-forms/session/session-form.service.d.ts.map +1 -0
  54. package/lib/features/visualizer/identity-service-path/identity-service-path.component.d.ts.map +1 -1
  55. package/lib/models/api-session.d.ts +17 -0
  56. package/lib/models/api-session.d.ts.map +1 -0
  57. package/lib/models/session.d.ts +17 -0
  58. package/lib/models/session.d.ts.map +1 -0
  59. package/lib/pages/api-sessions/api-sessions-page.component.d.ts +30 -0
  60. package/lib/pages/api-sessions/api-sessions-page.component.d.ts.map +1 -0
  61. package/lib/pages/api-sessions/api-sessions-page.service.d.ts +30 -0
  62. package/lib/pages/api-sessions/api-sessions-page.service.d.ts.map +1 -0
  63. package/lib/pages/sessions/sessions-page.component.d.ts +30 -0
  64. package/lib/pages/sessions/sessions-page.component.d.ts.map +1 -0
  65. package/lib/pages/sessions/sessions-page.service.d.ts +30 -0
  66. package/lib/pages/sessions/sessions-page.service.d.ts.map +1 -0
  67. package/lib/services/auth.service.d.ts +2 -1
  68. package/lib/services/auth.service.d.ts.map +1 -1
  69. package/lib/services/login-service.class.d.ts +2 -2
  70. package/lib/services/login-service.class.d.ts.map +1 -1
  71. package/lib/services/noop-login.service.d.ts +2 -2
  72. package/lib/services/noop-login.service.d.ts.map +1 -1
  73. package/lib/services/tab-name.service.d.ts.map +1 -1
  74. package/lib/ziti-console-lib.module.d.ts +22 -18
  75. package/lib/ziti-console-lib.module.d.ts.map +1 -1
  76. package/package.json +1 -1
  77. package/public-api.d.ts +7 -0
  78. package/public-api.d.ts.map +1 -1
Binary file
@@ -121,4 +121,5 @@
121
121
  <glyph unicode="&#xe96f;" glyph-name="infrastructure" horiz-adv-x="1080" d="M498.229 189.106c4.2-8.36 12.597-12.54 20.994-12.54 4.199 0 4.199 0 8.398 0l212.676 132.344c10.714 7.015 16.057 10.625 12.741 22.743-5.433 10.607-12.954 7.399-26.103 2.705l-220.308-120.172c-8.398-4.18-12.597-16.72-8.398-25.080h0.001zM213.022 521.453c-3.988 0-7.978 0-11.967 0-150.24-7.014-263.254-129.064-263.254-283.378 0-162.733 122.32-296.004 273.89-296.004s275.221 130.468 275.221 290.392c0 159.926-122.321 288.99-273.891 288.99zM-36.934 218.436h124.976c2.661-40.685 10.636-82.769 25.262-123.453h-113.012c-21.274 36.475-34.569 78.56-37.226 123.453zM315.396 243.687h-206.081c0 42.086 6.648 84.17 21.275 123.452h162.207c15.954-39.282 22.599-79.966 22.599-123.452zM86.715 243.687h-124.981c1.332 44.891 13.296 86.977 33.238 123.452h111.684c-13.298-39.282-19.941-79.966-19.941-123.452zM110.645 218.436h203.425c-2.659-40.685-11.968-82.769-27.924-123.453h-147.58c-15.955 42.086-25.262 82.768-27.921 123.453zM336.672 218.436h124.977c-2.657-44.893-14.623-86.978-35.897-123.453h-114.341c14.623 42.086 23.931 82.768 25.261 123.453zM338 243.687c0 42.086-6.647 84.17-19.942 123.452h109.023c21.274-36.475 33.238-78.561 35.897-123.452h-124.978zM411.127 393.793h-101.047c-13.298 35.072-33.239 67.336-57.172 99.603 63.819-11.223 119.663-47.698 158.219-99.603zM218.339 496.201c27.921-32.266 49.193-67.336 65.149-102.408h-142.263c15.953 36.473 37.228 70.142 65.147 102.408 1.329 0 3.989 0 5.319 0 2.66 0 5.317 0 6.647 0zM173.134 493.396c-23.931-30.863-42.544-64.53-57.171-99.603h-105.037c37.229 51.905 94.401 88.378 162.208 99.603zM16.246 69.733h107.696c13.295-33.671 30.579-67.339 53.182-99.604-65.149 9.818-122.319 46.295-160.877 99.604zM207.703-32.678c-23.933 33.669-42.545 68.741-58.498 102.412h127.636c-14.627-33.671-34.569-68.743-58.501-102.412-2.66 0-3.987 0-6.647 0-1.328 0-2.659 0-3.989 0zM248.92-29.871c21.273 32.265 38.557 65.933 53.182 99.604h107.695c-38.555-51.906-95.726-88.381-160.876-99.604zM933.963 692.976c-3.101 0-6.205 0-9.306 0-116.832-5.357-204.717-98.569-204.717-216.425 0-124.282 95.121-226.067 212.988-226.067 117.87 0 214.024 99.644 214.024 221.784s-95.119 220.708-212.989 220.708zM739.586 461.553h97.189c2.068-31.071 8.271-63.214 19.645-94.286h-87.886c-16.541 27.858-26.881 60-28.947 94.286zM1013.574 480.837h-160.257c0 32.143 5.172 64.286 16.542 94.284h126.139c12.406-29.998 17.575-61.069 17.575-94.284zM835.739 480.837h-97.189c1.035 34.285 10.339 66.427 25.849 94.284h86.848c-10.338-29.998-15.508-61.069-15.508-94.284zM854.349 461.553h158.19c-2.066-31.071-9.303-63.214-21.711-94.286h-114.764c-12.406 32.143-19.645 63.216-21.715 94.286zM1030.12 461.553h97.189c-2.067-34.286-11.373-66.428-27.918-94.286h-88.917c11.373 32.143 18.612 63.216 19.646 94.286zM1031.152 480.837c0 32.143-5.168 64.286-15.507 94.284h84.78c16.544-27.857 25.848-59.998 27.918-94.284h-97.191zM1088.018 595.478h-78.579c-10.338 26.784-25.848 51.428-44.457 76.069 49.627-8.57 93.052-36.426 123.036-76.069zM938.099 673.691c21.713-24.644 38.255-51.43 50.663-78.214h-110.629c12.407 27.857 28.948 53.57 50.661 78.214 1.033 0 3.101 0 4.136 0 2.067 0 4.134 0 5.169 0h-0.001zM902.944 671.547c-18.611-23.567-33.085-49.285-44.456-76.069h-81.681c28.95 39.643 73.407 67.499 126.137 76.069zM780.943 347.983h83.748c10.339-25.713 23.78-51.428 41.356-76.069-50.663 7.501-95.12 35.355-125.104 76.069zM929.827 269.77c-18.61 25.715-33.084 52.5-45.493 78.213h99.257c-11.371-25.713-26.881-52.498-45.491-78.213-2.069 0-3.102 0-5.169 0-1.035 0-2.068 0-3.102 0h-0.001zM961.88 271.914c16.541 24.642 29.984 50.357 41.357 76.069h83.747c-29.984-39.642-74.444-67.498-125.104-76.069zM415.85 948.684c-2.283 0-4.566 0-6.849 0-86.001-4.023-150.69-74.039-150.69-162.566 0-93.356 70.018-169.808 156.779-169.808s157.54 74.844 157.54 166.59c0 91.744-70.018 165.783-156.78 165.783zM272.771 774.852h71.539c1.522-23.34 6.088-47.483 14.459-70.821h-64.689c-12.178 20.923-19.789 45.067-21.31 70.821zM474.453 789.337h-117.965c0 24.144 3.805 48.285 12.177 70.82h92.85c9.131-22.534 12.937-45.871 12.937-70.82zM343.548 789.337h-71.539c0.762 25.753 7.612 49.896 19.028 70.82h63.929c-7.611-22.534-11.417-45.871-11.417-70.82zM357.249 774.852h116.442c-1.521-23.34-6.849-47.483-15.981-70.821h-84.478c-9.133 24.144-14.462 47.481-15.983 70.821zM486.63 774.852h71.539c-1.521-25.754-8.371-49.897-20.549-70.821h-65.451c8.372 24.144 13.699 47.481 14.46 70.821zM487.391 789.337c0 24.144-3.806 48.285-11.417 70.82h62.409c12.176-20.923 19.025-45.067 20.548-70.82h-71.539zM529.248 875.448h-57.84c-7.61 20.12-19.027 38.63-32.727 57.141 36.532-6.44 68.497-27.363 90.567-57.141zM418.894 934.198c15.984-18.51 28.159-38.63 37.293-58.75h-81.434c9.132 20.924 21.31 40.24 37.291 58.75 0.761 0 2.284 0 3.045 0 1.522 0 3.044 0 3.804 0zM393.019 932.589c-13.699-17.707-24.354-37.021-32.726-57.141h-60.126c21.312 29.777 54.038 50.702 92.852 57.141zM303.212 689.545h61.647c7.61-19.315 17.506-38.628 30.442-57.139-37.291 5.634-70.018 26.557-92.089 57.139zM412.806 630.797c-13.698 19.313-24.354 39.433-33.486 58.748h73.062c-8.372-19.315-19.788-39.435-33.488-58.748-1.521 0-2.282 0-3.804 0-0.761 0-1.523 0-2.284 0zM436.399 632.406c12.176 18.511 22.072 37.825 30.444 57.139h61.645c-22.070-29.776-54.798-50.701-92.089-57.139zM565.827 682.89c-7.792 2.657-8.371 5.611-13.324-2.108s0.417-9.733 6.187-13.842l140.732-74.261c4.091-2.283 13.842-4.044 17.429-4.044 7.175 0 9.46 0.935 13.046 3.694 7.175 5.523 6.088 14.602-1.087 20.125l-162.984 70.436zM260.159 534.069c-3.84-3.445-15.428-2.509-19.264 0.937-3.839 3.448-7.758 10.969-3.922 14.415l81.724 85.399c1.916 1.724 6.636 3.637 8.558 3.637 3.836 0 5.058-0.583 6.976-2.306 3.838-3.447 3.255-9.114-0.582-12.563l-73.49-89.518z" />
122
122
  <glyph unicode="&#xe970;" glyph-name="infrastructure-nf" horiz-adv-x="983" d="M670.16 14.037c-58.351-17.996-121.2-23.449-185.55-14.042-119.292 17.587-220.178 83.3-285.073 174.643-26.312 37.083-46.762 78.119-60.259 122.018 2.454 0 5.044-0.273 7.635-0.273 10.498 0 20.859 1.363 30.675 3.817 16.224-49.353 42.263-94.752 76.074-133.607 58.896-67.758 141.105-115.611 236.538-129.517 56.715-8.316 112.202-3.817 164.009 11.316 3.817-12.27 9.134-23.722 15.951-34.356v0zM368.264 312.471h96.892c-12.515 33.347-19.359 67.826-21.636 101.159h-107.158c2.263-36.796 13.702-71.275 31.902-101.159zM619.049 535.512h-139.074c-12.529-32.216-18.228-66.681-18.228-101.2h176.702c0 35.638-5.685 68.985-19.4 101.2zM459.484 535.512h-93.061c-11.043-17.423-19.632-36.565-25.29-56.933-3.422-14.26-5.453-29.066-5.944-44.267h107.172c0 35.638 5.712 68.985 17.123 101.2zM486.86 312.471h126.504c13.674 33.347 21.663 67.826 23.954 101.159h-174.425c2.263-33.334 10.266-66.681 23.967-101.159zM635.027 312.471h94.574c17.778 29.789 28.507 64.281 29.843 101.159h-102.768c-1.159-33.334-9.121-66.681-21.65-101.159zM640.726 535.512c11.425-32.216 17.083-66.681 17.083-101.2h101.405c-2.181 37.083-13.865 71.616-32.625 101.2zM633.896 557.326h76.837c-29.884 36.101-71.452 62.195-118.91 72.475 17.437-23.422 31.97-47.035 42.072-72.475zM489.11 557.326h121.977c-12.461 26.19-28.712 52.352-49.571 76.783-4.963 0.341-9.966 0.518-15.010 0.518-2.509 0-5.003-0.041-7.485-0.123-21.064-24.39-37.41-49.843-49.912-77.178zM467.446 557.326c11.329 26.012 25.481 51.030 43.272 74.302-51.411-8.684-96.565-35.801-128.44-74.302zM519.894 210.166c-19.4 26.435-34.206 54.029-45.576 81.636h-92.366c33.061-43.668 82.086-73.606 137.942-81.636zM605.388 291.803h-109.435c13.606-27.417 29.434-55.938 49.721-83.354 0.273 0 0.559 0 0.832 0 3.122 0 6.23 0.068 9.312 0.205 20.273 27.348 37.151 55.801 49.571 83.15zM627.038 291.803c-12.352-27.158-26.871-54.315-44.731-80.355 54.070 9.148 101.2 38.651 133.252 80.355zM785.771-24c-5.453 0-11.043 0.409-16.496 1.227-61.35 8.998-104.022 66.258-95.024 127.744 2.045 13.906 6.68 27.267 13.77 39.537 8.044 14.042 6.271 31.629-4.363 43.627-7.226 8.18-17.587 12.679-28.085 12.679-4.908 0-9.952-0.954-14.724-2.999-29.993-12.815-61.623-19.223-93.934-19.223-11.861 0-23.858 0.818-35.583 2.59-100.341 14.724-181.732 91.343-202.591 190.73-3.272 15.815-16.36 27.676-32.447 29.584-1.363 0.136-2.863 0.273-4.226 0.273-14.451 0-27.812-8.316-34.083-21.677-16.496-35.447-52.079-58.487-90.798-58.487-4.908 0-9.816 0.409-14.724 1.091-26.449 3.817-49.762 17.86-65.713 39.264s-22.631 47.853-18.678 74.302c7.226 48.807 49.625 85.481 98.842 85.481 4.908 0 9.816-0.409 14.724-1.091 26.449-3.817 49.762-17.86 65.713-39.264 4.226-5.59 7.771-11.725 10.634-17.86 6.135-13.361 19.496-21.813 34.083-21.813 1.363 0 2.863 0 4.226 0.273 16.087 1.772 29.175 13.77 32.447 29.584 23.586 111.93 123.518 193.184 237.493 193.184 11.861 0 23.858-0.818 35.583-2.59 11.861-1.772 23.586-4.363 34.901-7.771 3.545-1.091 7.226-1.636 10.77-1.636 12.27 0 24.131 6.135 31.22 16.769 9.134 13.77 8.316 31.766-2.181 44.581-1.363 1.772-2.863 3.545-4.090 5.317-21.95 29.448-31.084 65.713-25.767 102.114 9.816 67.076 68.303 117.656 135.924 117.656 6.68 0 13.497-0.545 20.177-1.5 36.401-5.317 68.439-24.54 90.389-53.988s31.084-65.713 25.767-102.114c-9.816-67.076-68.303-117.656-135.924-117.656-6.68 0-13.497 0.545-20.177 1.5-1.909 0.273-3.681 0.409-5.59 0.409-14.315 0-28.085-8.044-34.356-21.268-7.089-14.86-4.226-32.584 7.907-43.627 11.179-10.225 21.541-21.813 30.675-34.083 38.719-52.079 54.942-116.156 45.399-180.369-6.817-46.49-27.13-89.98-58.76-125.563-10.77-12.134-12.543-29.584-4.499-43.627 6.817-11.861 19.223-18.814 32.447-18.814 2.454 0 4.908 0.273 7.498 0.682 7.226 1.5 14.451 2.181 21.813 2.181 5.453 0 11.043-0.409 16.496-1.227 61.35-8.998 104.022-66.258 95.024-127.744-8.044-54.806-55.897-96.251-111.248-96.251z" />
123
123
  <glyph unicode="&#xe971;" glyph-name="back-arrow" d="M900.929 509.062c35.834 0.39 63.868-27.698 64.268-63.537 0.394-35.83-28.728-64.763-63.532-64.264l-607.61-0.078 280.199-324.442c23.21-27.306 20.48-66.901-6.827-91.477-10.923-9.554-25.941-15.014-40.96-15.014-17.75 0-35.499 6.82-47.787 21.84l-372.736 432.811c-20.48 24.576-20.48 60.074 0 83.285l371.371 432.811c23.211 27.307 62.805 30.038 90.113 6.827 27.306-23.211 30.037-64.171 6.826-90.112l-284.116-328.977 610.791 0.327z" />
124
+ <glyph unicode="&#xe972;" glyph-name="email" d="M386.276 681.828c-107.164-0.484-195.186-1.252-195.612-1.721-3.342-3.74-3.698-27.918-2.93-202.809 0.796-181.774 1.052-195.271 3.783-197.262 3.442-2.517 198.443-4.409 454.699-4.409 152.277 0 157.369 0.1 161.28 3.257l4.025 3.271 0.469 195.129c0.27 107.335 0.085 196.793-0.412 198.812-0.526 2.162-3.1 4.437-6.272 5.547-5.604 1.948-20.665 1.963-419.029 0.185zM764.53 659.044c-7.552-6.926-266.695-185.572-268.53-185.131-3.2 0.782-262.101 184.619-262.144 186.14-0.028 0.697 119.936 1.28 266.567 1.28 223.218 0 266.197-0.37 264.107-2.29zM352.313 548.679c73.159-51.897 135.452-95.787 138.439-97.55 3.3-1.948 6.656-2.731 8.562-1.991 1.735 0.654 67.47 45.98 146.091 100.722s143.36 99.527 143.858 99.527c0.512 0 0.924-79.104 0.924-175.787v-175.787h-580.267v70.4c0 38.727-0.512 118.343-1.138 176.939l-1.138 106.553 5.831-4.352c3.214-2.389 65.692-46.791 138.837-98.674z" />
124
125
  </font></defs></svg>
Binary file
Binary file
Binary file
@@ -11,6 +11,7 @@ body {
11
11
  --black: #000;
12
12
  --shaded: #f6f7fb;
13
13
  --formBackground: #f6f7fb;
14
+ --backgroundMuted: #eaeef1;
14
15
  --visualizerBackground: #ffffff80;
15
16
  --background: #ffffff;
16
17
  --navigation: #ffffff;
@@ -63,14 +64,14 @@ body {
63
64
 
64
65
  --spinnerSizeMedium: 1.25rem;
65
66
  --spinnerSizeLarge: 2rem;
66
- --spinerBorderTopMedium: 0.125rem solid var(--stroke);
67
- --spinerBorderRightMedium: 0.125rem solid var(--stroke);
68
- --spinerBorderBottomMedium: 0.125rem solid transparent;
69
- --spinerBorderLeftMedium: 0.125rem solid transparent;
70
- --spinerBorderTopLarge: 0.175rem solid var(--stroke);
71
- --spinerBorderRightLarge: 0.175rem solid var(--stroke);
72
- --spinerBorderBottomLarge: 0.175rem solid transparent;
73
- --spinerBorderLeftLarge: 0.175rem solid transparent;
67
+ --spinnerBorderTopMedium: 0.125rem solid var(--stroke);
68
+ --spinnerBorderRightMedium: 0.125rem solid var(--stroke);
69
+ --spinnerBorderBottomMedium: 0.125rem solid transparent;
70
+ --spinnerBorderLeftMedium: 0.125rem solid transparent;
71
+ --spinnerBorderTopLarge: 0.175rem solid var(--stroke);
72
+ --spinnerBorderRightLarge: 0.175rem solid var(--stroke);
73
+ --spinnerBorderBottomLarge: 0.175rem solid transparent;
74
+ --spinnerBorderLeftLarge: 0.175rem solid transparent;
74
75
  --appLoaderSize: 10.5rem;
75
76
  }
76
77
 
@@ -624,6 +625,25 @@ input {
624
625
  }
625
626
  }
626
627
 
628
+ .form-field-advanced {
629
+ &.formFieldSuccess {
630
+ .form-field-container {
631
+ &:before {
632
+ border-style: solid;
633
+ border-color: var(--green);
634
+ }
635
+ }
636
+ }
637
+ &.formFieldError {
638
+ .form-field-container {
639
+ &:before {
640
+ border-style: solid;
641
+ border-color: var(--red);
642
+ }
643
+ }
644
+ }
645
+ }
646
+
627
647
  lib-form-field-container {
628
648
  box-shadow: 0rem 0.1875rem 0.3125rem 0.0625rem var(--boxShadow);
629
649
  border-radius: 0.625rem;
@@ -1517,10 +1537,10 @@ p-dropdown {
1517
1537
  height: var(--spinnerSizeMedium);
1518
1538
  border-radius: 50%;
1519
1539
  background: transparent;
1520
- border-top: var(--spinerBorderTopMedium);
1521
- border-right: var(--spinerBorderRightMedium);
1522
- border-bottom: var(--spinerBorderBottomMedium);
1523
- border-left: var(--spinerBorderLeftMedium);
1540
+ border-top: var(--spinnerBorderTopMedium);
1541
+ border-right: var(--spinnerBorderRightMedium);
1542
+ border-bottom: var(--spinnerBorderBottomMedium);
1543
+ border-left: var(--spinnerBorderLeftMedium);
1524
1544
  animation: loading .5s infinite linear;
1525
1545
  margin-left: var(--marginSmall);
1526
1546
  position: absolute;
@@ -1703,3 +1723,47 @@ p-dropdown {
1703
1723
  .error-text {
1704
1724
  color: var(--red);
1705
1725
  }
1726
+
1727
+ .config-container {
1728
+ display: flex;
1729
+ flex-direction: row;
1730
+ align-items: center;
1731
+ justify-content: space-between;
1732
+ height: var(--defaultInputHeight);
1733
+ padding-left: var(--paddingMedium);
1734
+ width: 100%;
1735
+ background-color: var(--stroke);
1736
+ border-radius: var(--inputBorderRadius);
1737
+
1738
+ &.config-container-clickable {
1739
+ cursor: pointer;
1740
+ }
1741
+ }
1742
+
1743
+ a {
1744
+ &.form-field-link {
1745
+ span {
1746
+ color: var(--primaryColor);
1747
+ }
1748
+ &:hover {
1749
+ span {
1750
+ filter: brightness(.85);
1751
+ text-decoration: underline;
1752
+ }
1753
+ }
1754
+ }
1755
+ }
1756
+
1757
+ .spinner {
1758
+ display: inline-block;
1759
+ width: var(--spinnerSizeMedium);
1760
+ height: var(--spinnerSizeMedium);
1761
+ border-radius: 50%;
1762
+ background: transparent;
1763
+ border-top: var(--spinnerBorderTopMedium);
1764
+ border-right: var(--spinnerBorderRightMedium);
1765
+ border-bottom: var(--spinnerBorderBottomMedium);
1766
+ border-left: var(--spinnerBorderLeftMedium);
1767
+ animation: loading .5s infinite linear;
1768
+ margin-left: var(--marginSmall);
1769
+ }
@@ -53,10 +53,10 @@ body {
53
53
  --inputBorderWidth: 0.125rem;
54
54
 
55
55
  --spinnerSizeMedium: 1.25rem;
56
- --spinerBorderTopMedium: 0.125rem solid var(--stroke);
57
- --spinerBorderRightMedium: 0.125rem solid var(--stroke);
58
- --spinerBorderBottomMedium: 0.125rem solid transparent;
59
- --spinerBorderLeftMedium: 0.125rem solid transparent;
56
+ --spinnerBorderTopMedium: 0.125rem solid var(--stroke);
57
+ --spinnerBorderRightMedium: 0.125rem solid var(--stroke);
58
+ --spinnerBorderBottomMedium: 0.125rem solid transparent;
59
+ --spinnerBorderLeftMedium: 0.125rem solid transparent;
60
60
  }
61
61
 
62
62
  ::placeholder {
@@ -235,7 +235,6 @@ class ConfigEditorComponent {
235
235
  let isValid = true;
236
236
  items.forEach((item) => {
237
237
  if (item.type === 'object') {
238
- console.log(validationErrors);
239
238
  if (!this.validateConfigItems(item.items, item.type, path + '/' + item.key, validationErrors)) {
240
239
  isValid = false;
241
240
  }
@@ -332,4 +331,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
332
331
  type: ViewChild,
333
332
  args: [JsonEditorComponent, { static: false }]
334
333
  }] } });
335
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLWVkaXRvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy96aXRpLWNvbnNvbGUtbGliL3NyYy9saWIvZmVhdHVyZXMvY29uZmlnLWVkaXRvci9jb25maWctZWRpdG9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ppdGktY29uc29sZS1saWIvc3JjL2xpYi9mZWF0dXJlcy9jb25maWctZWRpdG9yL2NvbmZpZy1lZGl0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBZ0IsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3hILE9BQU8sRUFBQyxtQkFBbUIsRUFBb0IsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0RSxPQUFPLEVBQUMsUUFBUSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUMsTUFBTSxRQUFRLENBQUM7QUFFeEUsT0FBTyxHQUFHLE1BQU0sS0FBSyxDQUFDO0FBQ3RCLE9BQU8sVUFBVSxNQUFNLGFBQWEsQ0FBQztBQUNyQyxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sNEJBQTRCLENBQUM7Ozs7Ozs7QUFHeEQsTUFLYSxxQkFBcUI7SUFxQmhDLElBQWEsVUFBVSxDQUFDLElBQUk7UUFDMUIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7UUFDeEIsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFBQSxDQUFDO0lBR0YsSUFBSSxVQUFVO1FBQ1osT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzFCLENBQUM7SUFHRCxJQUFhLFlBQVksQ0FBQyxZQUFxQjtRQUM3QyxJQUFJLENBQUMsYUFBYSxHQUFHLFlBQVksQ0FB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ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBDb21wb25lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBWaWV3Q2hpbGQsIFZpZXdDb250YWluZXJSZWZ9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtKc29uRWRpdG9yQ29tcG9uZW50LCBKc29uRWRpdG9yT3B0aW9uc30gZnJvbSBcImFuZy1qc29uZWRpdG9yXCI7XG5pbXBvcnQge2RlYm91bmNlLCBkZWZlciwgaXNCb29sZWFuLCBpc0VtcHR5LCBpc05pbCwga2V5c30gZnJvbSBcImxvZGFzaFwiO1xuaW1wb3J0IHtTY2hlbWFTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vc2VydmljZXMvc2NoZW1hLnNlcnZpY2VcIjtcbmltcG9ydCBBanYgZnJvbSAnYWp2JztcbmltcG9ydCBhZGRGb3JtYXRzIGZyb20gJ2Fqdi1mb3JtYXRzJztcbmltcG9ydCB7R3Jvd2xlck1vZGVsfSBmcm9tIFwiLi4vbWVzc2FnaW5nL2dyb3dsZXIubW9kZWxcIjtcbmltcG9ydCB7R3Jvd2xlclNlcnZpY2V9IGZyb20gXCIuLi9tZXNzYWdpbmcvZ3Jvd2xlci5zZXJ2aWNlXCI7ICAvLyBJbXBvcnQgYWp2LWZvcm1hdHNcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGliLWNvbmZpZy1lZGl0b3InLFxuICB0ZW1wbGF0ZVVybDogJy4vY29uZmlnLWVkaXRvci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NvbmZpZy1lZGl0b3IuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBDb25maWdFZGl0b3JDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIGNvbmZpZ0RhdGFJbml0ID0gZmFsc2U7XG5cbiAgaXRlbXM6IGFueVtdID0gW107XG5cbiAgbENvbG9yQXJyYXkgPSBbXG4gICAgJ3doaXRlJyxcbiAgICAnd2hpdGUnLFxuICBdXG5cbiAgYkNvbG9yQXJyYXkgPSBbXG4gICAgJ3ZhcigtLWZvcm1Hcm91cCknLFxuICAgICd2YXIoLS1mb3JtU3ViR3JvdXApJ1xuICBdXG4gIGhpZGVDb25maWdKU09OID0gZmFsc2U7XG5cbiAgQElucHV0KCkgY29uZmlnRXJyb3JzOiBhbnkgPSB7fTtcbiAgQE91dHB1dCgpIGNvbmZpZ0Vycm9yc0NoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gIF9jb25maWdEYXRhOiBhbnkgPSB7fTtcbiAgQElucHV0KCkgc2V0IGNvbmZpZ0RhdGEoZGF0YSkge1xuICAgIHRoaXMuX2NvbmZpZ0RhdGEgPSBkYXRhO1xuICAgIHRoaXMuaW5pdEZvcm1EYXRhKCk7XG4gIH07XG5cbiAgQE91dHB1dCgpIGNvbmZpZ0RhdGFDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgZ2V0IGNvbmZpZ0RhdGEoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2NvbmZpZ0RhdGE7XG4gIH1cblxuICBfc2hvd0pzb25WaWV3ID0gZmFsc2U7XG4gIEBJbnB1dCgpIHNldCBzaG93SnNvblZpZXcoc2hvd0pzb25WaWV3OiBib29sZWFuKSB7XG4gICAgdGhpcy5fc2hvd0pzb25WaWV3ID0gc2hvd0pzb25WaWV3O1xuICAgIHRoaXMudXBkYXRlQ29uZmlnRGF0YSgpO1xuICB9XG4gIGdldCBzaG93SnNvblZpZXcoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3Nob3dKc29uVmlldztcbiAgfVxuXG4gIF9zY2hlbWEgPSBmYWxzZTtcbiAgQElucHV0KCkgc2V0IHNjaGVtYShzY2hlbWE6IGFueSkge1xuICAgIHRoaXMuX3NjaGVtYSA9IHNjaGVtYTtcbiAgICB0aGlzLmluaXRGb3JtRGF0YSgpO1xuICAgIHRoaXMuY3JlYXRlRm9ybSgpO1xuICAgIHRoaXMudXBkYXRlQ29uZmlnRGF0YSgpO1xuICB9XG5cbiAgZ2V0IHNjaGVtYSgpIHtcbiAgICByZXR1cm4gdGhpcy5fc2NoZW1hO1xuICB9XG5cbiAgZm9ybURhdGFDaGFuZ2VkRGVib3VuY2VkOiBhbnkgPSBkZWJvdW5jZSh0aGlzLmZvcm1EYXRhQ2hhbmdlZC5iaW5kKHRoaXMpLCAzNTApO1xuICBqc29uRGF0YUNoYW5nZWREZWJvdW5jZWQ6IGFueSA9IGRlYm91bmNlKHRoaXMuanNvbkRhdGFDaGFuZ2VkLmJpbmQodGhpcyksIDM1MCk7XG4gIEBWaWV3Q2hpbGQoXCJkeW5hbWljZm9ybVwiLCB7cmVhZDogVmlld0NvbnRhaW5lclJlZn0pIGR5bmFtaWNGb3JtITogVmlld0NvbnRhaW5lclJlZjtcbiAgQFZpZXdDaGlsZChKc29uRWRpdG9yQ29tcG9uZW50LCB7c3RhdGljOiBmYWxzZX0pIGVkaXRvciE6IEpzb25FZGl0b3JDb21wb25lbnQ7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgc2NoZW1hU3ZjOiBTY2hlbWFTZXJ2aWNlLCBwcml2YXRlIGdyb3dsZXJTZXJ2aWNlOiBHcm93bGVyU2VydmljZSkge1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5jcmVhdGVGb3JtKCk7XG4gIH1cblxuICBjcmVhdGVGb3JtKCkge1xuICAgIHRoaXMuY2xlYXJGb3JtKCk7XG4gICAgaWYgKHRoaXMuZHluYW1pY0Zvcm0gJiYgdGhpcy5zY2hlbWEpIHtcbiAgICAgIHRoaXMucmVuZGVyU2NoZW1hKHRoaXMuc2NoZW1hKTtcbiAgICB9XG4gIH1cblxuICBjbGVhckZvcm0oKSB7XG4gICAgdGhpcy5pdGVtcy5mb3JFYWNoKChpdGVtOiBhbnkpID0+IHtcbiAgICAgIGlmIChpdGVtPy5jb21wb25lbnQpIGl0ZW0uY29tcG9uZW50LmRlc3Ryb3koKTtcbiAgICB9KTtcbiAgICB0aGlzLmNvbmZpZ0Vycm9ycyA9IHt9O1xuICAgIHRoaXMuaXRlbXMgPSBbXTtcbiAgfVxuXG4gIHJlbmRlclNjaGVtYShzY2hlbWE6IGFueSkge1xuICAgIGlmIChzY2hlbWEucHJvcGVydGllcykge1xuICAgICAgdGhpcy5pdGVtcyA9IHRoaXMuc2NoZW1hU3ZjLnJlbmRlcihzY2hlbWEsIHRoaXMuZHluYW1pY0Zvcm0sIHRoaXMubENvbG9yQXJyYXksIHRoaXMuYkNvbG9yQXJyYXkpO1xuICAgICAgZm9yIChsZXQgb2JqIG9mIHRoaXMuaXRlbXMpIHtcbiAgICAgICAgY29uc3QgY1JlZiA9IG9iai5jb21wb25lbnQ7XG4gICAgICAgIGNSZWYuaW5zdGFuY2UuZXJyb3JzID0gdGhpcy5jb25maWdFcnJvcnM7XG4gICAgICAgIGlmIChjUmVmPy5pbnN0YW5jZS52YWx1ZUNoYW5nZSkge1xuICAgICAgICAgIGNvbnN0IHBOYW1lOiBzdHJpbmdbXSAgPSBjUmVmLmluc3RhbmNlLnBhcmVudGFnZTtcbiAgICAgICAgICBsZXQgcGFyZW50S2V5O1xuICAgICAgICAgIGlmKHBOYW1lKSBwYXJlbnRLZXkgPSBwTmFtZS5qb2luKCcuJyk7XG4gICAgICAgICAgLy9pZiAocGFyZW50S2V5ICYmICF0aGlzLmZvcm1EYXRhW3BhcmVudEtleV0pIHRoaXMuZm9ybURhdGFbcGFyZW50S2V5XSA9IHt9O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgdXBkYXRlQ29uZmlnRGF0YSgpIHtcbiAgICBpZiAoIXRoaXMuc2hvd0pzb25WaWV3KSB7XG4gICAgICB0aGlzLnVwZGF0ZUZvcm1WaWV3KHRoaXMuaXRlbXMsIHRoaXMuY29uZmlnRGF0YSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuaGlkZUNvbmZpZ0pTT04gPSB0cnVlO1xuICAgICAgZGVmZXIoKCkgPT4ge1xuICAgICAgICB0aGlzLmdldENvbmZpZ0RhdGFGcm9tRm9ybSgpO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgdXBkYXRlRm9ybVZpZXcoaXRlbXMsIGRhdGE6IGFueSA9IHt9KSB7XG4gICAgaXRlbXMuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgaWYgKGl0ZW0uaXRlbXMpIHtcbiAgICAgICAgaWYgKGl0ZW0udHlwZSA9PT0gJ2FycmF5Jykge1xuICAgICAgICAgIGlmIChpdGVtPy5jb21wb25lbnQ/Lmluc3RhbmNlPy5hZGRlZEl0ZW1zKSB7XG4gICAgICAgICAgICBpdGVtLmFkZGVkSXRlbXMgPSBkYXRhW2l0ZW0ua2V5XSB8fCBbXTtcbiAgICAgICAgICAgIGl0ZW0uY29tcG9uZW50Lmluc3RhbmNlLmFkZGVkSXRlbXMgPSBkYXRhW2l0ZW0ua2V5XSB8fCBbXTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy51cGRhdGVGb3JtVmlldyhpdGVtLml0ZW1zLCB7fSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy51cGRhdGVGb3JtVmlldyhpdGVtLml0ZW1zLCBkYXRhW2l0ZW0ua2V5XSk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAoaXRlbT8uY29tcG9uZW50Py5pbnN0YW5jZT8uc2V0UHJvcGVydGllcykge1xuICAgICAgICBsZXQgdmFsO1xuICAgICAgICBzd2l0Y2ggKGl0ZW0ua2V5KSB7XG4gICAgICAgICAgY2FzZSAnZm9yd2FyZGluZ2NvbmZpZyc6XG4gICAgICAgICAgICB2YWwgPSB7XG4gICAgICAgICAgICAgIHByb3RvY29sOiBkYXRhLnByb3RvY29sLFxuICAgICAgICAgICAgICBhZGRyZXNzOiBkYXRhLmFkZHJlc3MsXG4gICAgICAgICAgICAgIHBvcnQ6IGRhdGEucG9ydCxcbiAgICAgICAgICAgICAgZm9yd2FyZFByb3RvY29sOiBkYXRhLmZvcndhcmRQcm90b2NvbCxcbiAgICAgICAgICAgICAgZm9yd2FyZEFkZHJlc3M6IGRhdGEuZm9yd2FyZEFkZHJlc3MsXG4gICAgICAgICAgICAgIGZvcndhcmRQb3J0OiBkYXRhLmZvcndhcmRQb3J0LFxuICAgICAgICAgICAgICBhbGxvd2VkUHJvdG9jb2xzOiBkYXRhLmFsbG93ZWRQcm90b2NvbHMsXG4gICAgICAgICAgICAgIGFsbG93ZWRBZGRyZXNzZXM6IGRhdGEuYWxsb3dlZEFkZHJlc3NlcyxcbiAgICAgICAgICAgICAgYWxsb3dlZFBvcnRSYW5nZXM6IGRhdGEuYWxsb3dlZFBvcnRSYW5nZXNcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgJ3BhcCc6XG4gICAgICAgICAgICB2YWwgPSB7XG4gICAgICAgICAgICAgIHByb3RvY29sOiBkYXRhLnByb3RvY29sLFxuICAgICAgICAgICAgICBhZGRyZXNzOiBkYXRhLmFkZHJlc3MsXG4gICAgICAgICAgICAgIHBvcnQ6IGRhdGEucG9ydCxcbiAgICAgICAgICAgICAgaG9zdG5hbWU6IGRhdGEuaG9zdG5hbWUsXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgdmFsID0gZGF0YVtpdGVtLmtleV07XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBpdGVtPy5jb21wb25lbnQ/Lmluc3RhbmNlPy5zZXRQcm9wZXJ0aWVzKHZhbCk7XG4gICAgICB9IGVsc2UgaWYgKGl0ZW0/LmNvbXBvbmVudD8uc2V0SW5wdXQpIHtcbiAgICAgICAgaXRlbS5jb21wb25lbnQuc2V0SW5wdXQoJ2ZpZWxkVmFsdWUnLCBkYXRhW2l0ZW0ua2V5XSk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIGRhdGE7XG4gIH1cblxuICBnZXRDb25maWdEYXRhRnJvbUZvcm0oKSB7XG4gICAgY29uc3QgZGF0YSA9IHt9O1xuICAgIHRoaXMuYWRkSXRlbXNUb0NvbmZpZyh0aGlzLml0ZW1zLCBkYXRhKTtcbiAgICB0aGlzLl9jb25maWdEYXRhID0gZGF0YTtcbiAgICB0aGlzLmhpZGVDb25maWdKU09OID0gZmFsc2U7XG4gICAgdGhpcy5jb25maWdEYXRhQ2hhbmdlLmVtaXQodGhpcy5jb25maWdEYXRhKTtcbiAgfVxuXG4gIGFkZEl0ZW1zVG9Db25maWcoaXRlbXMsIGRhdGE6IGFueSA9IHt9LCBwYXJlbnRUeXBlID0gJ29iamVjdCcpIHtcbiAgICBpdGVtcy5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICBpZiAoaXRlbS50eXBlID09PSAnYXJyYXknKSB7XG4gICAgICAgIGlmIChpdGVtLmFkZGVkSXRlbXMpIHtcbiAgICAgICAgICBkYXRhW2l0ZW0ua2V5XSA9IGl0ZW0uYWRkZWRJdGVtcztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBkYXRhW2l0ZW0ua2V5XSA9IFtdO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKGl0ZW0udHlwZSA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgY29uc3QgdmFsID0gdGhpcy5hZGRJdGVtc1RvQ29uZmlnKGl0ZW0uaXRlbXMsIHt9LCBpdGVtLnR5cGUpO1xuICAgICAgICBsZXQgaGFzRGVmaW5pdGlvbiA9IGZhbHNlO1xuICAgICAgICBrZXlzKHZhbCkuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgICAgICAgaWYgKGlzQm9vbGVhbih2YWxba2V5XSkgfHwgKCFpc0VtcHR5KHZhbFtrZXldKSAmJiAhaXNOaWwodmFsW2tleV0pKSkge1xuICAgICAgICAgICAgaGFzRGVmaW5pdGlvbiA9IHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgZGF0YVtpdGVtLmtleV0gPSBoYXNEZWZpbml0aW9uID8gdmFsIDogdW5kZWZpbmVkO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbGV0IHByb3BzID0gW107XG4gICAgICAgIGlmIChpdGVtPy5jb21wb25lbnQ/Lmluc3RhbmNlPy5nZXRQcm9wZXJ0aWVzKSB7XG4gICAgICAgICAgcHJvcHMgPSBpdGVtPy5jb21wb25lbnQ/Lmluc3RhbmNlPy5nZXRQcm9wZXJ0aWVzKCk7XG4gICAgICAgIH0gZWxzZSBpZiAoaXRlbT8uY29tcG9uZW50Py5pbnN0YW5jZSkge1xuICAgICAgICAgIHByb3BzID0gW3trZXk6IGl0ZW0ua2V5LCB2YWx1ZTogaXRlbS5jb21wb25lbnQuaW5zdGFuY2UuZmllbGRWYWx1ZX1dO1xuICAgICAgICB9XG4gICAgICAgIHByb3BzLmZvckVhY2goKHByb3ApID0+IHtcbiAgICAgICAgICBkYXRhW3Byb3Aua2V5XSA9IHByb3AudmFsdWU7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiBkYXRhO1xuICB9XG5cbiAgdmFsaWRhdGVDb25maWcoc2NoZW1hPywgc2hvd0dyb3dsZXIgPSB0cnVlKSB7XG4gICAgdGhpcy5jb25maWdEYXRhID0gdGhpcy5yZW1vdmVVbmRlZmluZWRQcm9wZXJ0aWVzKHRoaXMuY29uZmlnRGF0YSk7XG4gICAgbGV0IHZhbGlkYXRpb25FcnJvcnM7XG4gICAgbGV0IHZhbGlkID0gdHJ1ZTtcbiAgICBpZiAoc2NoZW1hKSB7XG4gICAgICAvLyBJbml0aWFsaXplIEFqdlxuICAgICAgY29uc3QgYWp2ID0gbmV3IEFqdih7YWxsRXJyb3JzOiB0cnVlfSk7XG4gICAgICBhZGRGb3JtYXRzKGFqdik7XG4gICAgICBhanYuYWRkRm9ybWF0KCdpZG4taG9zdG5hbWUnLCAvXi4rJC8pO1xuICAgICAgY29uc3QgdmFsaWRhdGUgPSBhanYuY29tcGlsZShzY2hlbWEpO1xuICAgICAgdmFsaWQgPSB2YWxpZGF0ZSh0aGlzLmNvbmZpZ0RhdGEpO1xuICAgICAgdmFsaWRhdGlvbkVycm9ycyA9IHZhbGlkYXRlLmVycm9ycztcbiAgICB9XG4gICAgdGhpcy5jb25maWdFcnJvcnMgPSB7fTtcbiAgICBjb25zdCBwcm9wZXJ0eVZhbGlkYXRpb25NYXAgPSB7fTtcbiAgICB0aGlzLnZhbGlkYXRlQ29uZmlnSXRlbXModGhpcy5pdGVtcywgdW5kZWZpbmVkLCAnJywgdmFsaWRhdGlvbkVycm9ycyk7XG4gICAgdGhpcy5idWlsZFByb3BlcnR5VmFsaWRhdGlvbk1hcCh2YWxpZGF0aW9uRXJyb3JzLCBwcm9wZXJ0eVZhbGlkYXRpb25NYXApO1xuICAgIGlmICghdmFsaWQpIHtcbiAgICAgIHRoaXMuY29uZmlnRXJyb3JzWydjb25maWdEYXRhJ10gPSB0cnVlO1xuICAgICAgaWYgKHNob3dHcm93bGVyKSB7XG4gICAgICAgIHRoaXMuZGlzcGxheUNvbmZpZ0Vycm9ycyhwcm9wZXJ0eVZhbGlkYXRpb25NYXApO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLmNvbmZpZ0Vycm9yc0NoYW5nZS5lbWl0KHRoaXMuY29uZmlnRXJyb3JzKTtcbiAgICByZXR1cm4gaXNFbXB0eSh0aGlzLmNvbmZpZ0Vycm9ycyk7XG4gIH1cblxuICBidWlsZFByb3BlcnR5VmFsaWRhdGlvbk1hcCh2YWxpZGF0aW9uRXJyb3JzLCBwcm9wZXJ0eVZhbGlkYXRpb25NYXApIHtcbiAgICB2YWxpZGF0aW9uRXJyb3JzPy5mb3JFYWNoKChlcnJvcikgPT4ge1xuICAgICAgbGV0IHBhdGggPSBlcnJvci5pbnN0YW5jZVBhdGg7XG4gICAgICBpZiAoIWlzRW1wdHkoZXJyb3I/LnBhcmFtcz8ubWlzc2luZ1Byb3BlcnR5KSkge1xuICAgICAgICBwYXRoICs9ICcvJyArIGVycm9yPy5wYXJhbXM/Lm1pc3NpbmdQcm9wZXJ0eTtcbiAgICAgIH1cbiAgICAgIGlmICghaXNFbXB0eShwYXRoKSkge1xuICAgICAgICBwcm9wZXJ0eVZhbGlkYXRpb25NYXBbcGF0aF0gPSBgPGI+JHtwYXRofTwvYj46ICR7ZXJyb3IubWVzc2FnZX1gO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgdmFsaWRhdGVDb25maWdJdGVtcyhpdGVtcywgcGFyZW50VHlwZSA9ICdvYmplY3QnLCBwYXRoID0gJycsIHZhbGlkYXRpb25FcnJvcnMgPSBbXSkge1xuICAgIGxldCBpc1ZhbGlkID0gdHJ1ZTtcbiAgICBpdGVtcy5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICBpZiAoaXRlbS50eXBlID09PSAnb2JqZWN0Jykge1xuICAgICAgICBjb25zb2xlLmxvZyh2YWxpZGF0aW9uRXJyb3JzKTtcbiAgICAgICAgaWYgKCF0aGlzLnZhbGlkYXRlQ29uZmlnSXRlbXMoaXRlbS5pdGVtcywgaXRlbS50eXBlLCBwYXRoICsgJy8nICsgaXRlbS5rZXksIHZhbGlkYXRpb25FcnJvcnMpKSB7XG4gICAgICAgICAgaXNWYWxpZCA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKGl0ZW0/LmNvbXBvbmVudD8uaW5zdGFuY2U/LnNldFZhbGlkYXRpb25FcnJvcnMpIHtcbiAgICAgICAgaXRlbT8uY29tcG9uZW50Py5pbnN0YW5jZT8uc2V0VmFsaWRhdGlvbkVycm9ycyhwYXRoLCB2YWxpZGF0aW9uRXJyb3JzKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgaGFzVmFsaWRhdGlvbkVycm9yOiBhbnkgPSB2YWxpZGF0aW9uRXJyb3JzPy5zb21lKChlcnJvcikgPT4ge1xuICAgICAgICAgIGxldCBwYXRoVG9NYWNoID0gZXJyb3IuaW5zdGFuY2VQYXRoO1xuICAgICAgICAgIGlmICghaXNFbXB0eShlcnJvcj8ucGFyYW1zPy5taXNzaW5nUHJvcGVydHkpKSB7XG4gICAgICAgICAgICBwYXRoVG9NYWNoICs9ICcvJyArIGVycm9yPy5wYXJhbXM/Lm1pc3NpbmdQcm9wZXJ0eTtcbiAgICAgICAgICB9XG4gICAgICAgICAgY29uc3QgbWF0Y2hlZCA9IHBhdGhUb01hY2ggPT09IChwYXRoICsgJy8nICsgaXRlbS5rZXkpO1xuICAgICAgICAgIHJldHVybiBtYXRjaGVkO1xuICAgICAgICB9KTtcbiAgICAgICAgaWYgKGl0ZW0/LmNvbXBvbmVudD8uaW5zdGFuY2U/LnNldElzVmFsaWQpIHtcbiAgICAgICAgICBpdGVtPy5jb21wb25lbnQ/Lmluc3RhbmNlPy5zZXRJc1ZhbGlkKCFoYXNWYWxpZGF0aW9uRXJyb3IpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIGlzVmFsaWQ7XG4gIH1cblxuICBkaXNwbGF5Q29uZmlnRXJyb3JzKHByb3BlcnR5VmFsaWRhdGlvbk1hcCkge1xuICAgIGxldCB2YWxpZGF0aW9uTWVzc2FnZSA9ICcnO1xuICAgIGlmICghaXNFbXB0eShwcm9wZXJ0eVZhbGlkYXRpb25NYXApKSB7XG4gICAgICBjb25zdCBwcm9wcyA9IGtleXMocHJvcGVydHlWYWxpZGF0aW9uTWFwKTtcbiAgICAgIHByb3BzLmZvckVhY2goKGtleSwgaW5kZXgpID0+IHtcbiAgICAgICAgdmFsaWRhdGlvbk1lc3NhZ2UgKz0gYDxsaT4ke3Byb3BlcnR5VmFsaWRhdGlvbk1hcFtrZXldfTwvbGk+YDtcbiAgICAgIH0pO1xuICAgIH1cbiAgICBpZiAoaXNFbXB0eSh2YWxpZGF0aW9uTWVzc2FnZSkpIHtcbiAgICAgIHZhbGlkYXRpb25NZXNzYWdlID0gJ1RoZSBlbnRlcmVkIGNvbmZpZ3VyYXRpb24gaXMgaW52YWxpZC4gUGxlYXNlIHVwZGF0ZSBtaXNzaW5nL2ludmFsaWQgZmllbGRzIGFuZCB0cnkgYWdhaW4uJztcbiAgICB9IGVsc2Uge1xuICAgICAgdmFsaWRhdGlvbk1lc3NhZ2UgPSBgPHVsIHN0eWxlPVwibWFyZ2luLXRvcDogNXB4O1wiPiR7dmFsaWRhdGlvbk1lc3NhZ2V9PC91bD5gO1xuICAgIH1cbiAgICBjb25zdCBncm93bGVyRGF0YSA9IG5ldyBHcm93bGVyTW9kZWwoXG4gICAgICAgICdlcnJvcicsXG4gICAgICAgICdFcnJvcicsXG4gICAgICAgIGBFcnJvciBWYWxpZGF0aW5nIENvbmZpZ2AsXG4gICAgICAgIHZhbGlkYXRpb25NZXNzYWdlLFxuICAgICk7XG4gICAgdGhpcy5ncm93bGVyU2VydmljZS5zaG93KGdyb3dsZXJEYXRhKTtcbiAgfVxuXG4gIGluaXRGb3JtRGF0YSgpIHtcbiAgICBpZiAoIXRoaXMuY29uZmlnRGF0YUluaXQgJiYgIWlzRW1wdHkodGhpcy5fY29uZmlnRGF0YSkgJiYgIWlzRW1wdHkodGhpcy5zY2hlbWEpKSB7XG4gICAgICB0aGlzLmNvbmZpZ0RhdGFJbml0ID0gdHJ1ZTtcbiAgICAgIHRoaXMuZm9ybURhdGFDaGFuZ2VkKCk7XG4gICAgfVxuICB9XG5cbiAgZm9ybURhdGFDaGFuZ2VkKCkge1xuICAgICAgZGVmZXIoKCkgPT4ge1xuICAgICAgICB0aGlzLmdldENvbmZpZ0RhdGFGcm9tRm9ybSgpO1xuICAgICAgfSk7XG4gIH1cblxuICBqc29uRGF0YUNoYW5nZWQoZXZlbnQpIHtcbiAgICBkZWZlcigoKSA9PiB7XG4gICAgICB0aGlzLmNvbmZpZ0RhdGFDaGFuZ2UuZW1pdCh0aGlzLmNvbmZpZ0RhdGEpO1xuICAgICAgdGhpcy51cGRhdGVGb3JtVmlldyh0aGlzLml0ZW1zLCB0aGlzLmNvbmZpZ0RhdGEpO1xuICAgIH0pO1xuICB9XG5cbiAgcmVtb3ZlVW5kZWZpbmVkUHJvcGVydGllcyhkYXRhKSB7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkoZGF0YSkpIHtcbiAgICAgIHJldHVybiBkYXRhXG4gICAgICAgICAgLm1hcChpdGVtID0+IHRoaXMucmVtb3ZlVW5kZWZpbmVkUHJvcGVydGllcyhpdGVtKSlcbiAgICAgICAgICAuZmlsdGVyKGl0ZW0gPT4gaXRlbSAhPT0gdW5kZWZpbmVkKTtcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiBkYXRhID09PSAnb2JqZWN0JyAmJiBkYXRhICE9PSBudWxsKSB7XG4gICAgICByZXR1cm4gT2JqZWN0LmZyb21FbnRyaWVzKFxuICAgICAgICAgIE9iamVjdC5lbnRyaWVzKGRhdGEpXG4gICAgICAgICAgICAgIC5maWx0ZXIoKFtfLCB2YWx1ZV0pID0+IHZhbHVlICE9PSB1bmRlZmluZWQpXG4gICAgICAgICAgICAgIC5tYXAoKFtrZXksIHZhbHVlXSkgPT4gW2tleSwgdGhpcy5yZW1vdmVVbmRlZmluZWRQcm9wZXJ0aWVzKHZhbHVlKV0pXG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gZGF0YTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImZvcm0tZmllbGQtZXh0ZW5kZWQtZmllbGRzXCIgW2hpZGRlbl09XCJzaG93SnNvblZpZXdcIiAobW91c2V1cCk9XCJmb3JtRGF0YUNoYW5nZWREZWJvdW5jZWQoJGV2ZW50KVwiIChrZXl1cCk9XCJmb3JtRGF0YUNoYW5nZWREZWJvdW5jZWQoJGV2ZW50KVwiIChjbGlja091dHNpZGUpPVwiZm9ybURhdGFDaGFuZ2VkRGVib3VuY2VkKCRldmVudClcIj5cbiAgICA8bmctY29udGFpbmVyICNkeW5hbWljZm9ybT48L25nLWNvbnRhaW5lcj5cbjwvZGl2PlxuPGxpYi1qc29uLXZpZXcgKm5nSWY9XCJzaG93SnNvblZpZXcgJiYgIWhpZGVDb25maWdKU09OXCIgKGRhdGFDaGFuZ2UpPVwianNvbkRhdGFDaGFuZ2VkRGVib3VuY2VkKCRldmVudClcIiBbKGRhdGEpXT1cImNvbmZpZ0RhdGFcIj48L2xpYi1qc29uLXZpZXc+XG48bGliLWpzb24tdmlldyAqbmdJZj1cInNob3dKc29uVmlldyAmJiBoaWRlQ29uZmlnSlNPTlwiIFsoZGF0YSldPVwiY29uZmlnRGF0YVwiPjwvbGliLWpzb24tdmlldz4iXX0=
334
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLWVkaXRvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy96aXRpLWNvbnNvbGUtbGliL3NyYy9saWIvZmVhdHVyZXMvY29uZmlnLWVkaXRvci9jb25maWctZWRpdG9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ppdGktY29uc29sZS1saWIvc3JjL2xpYi9mZWF0dXJlcy9jb25maWctZWRpdG9yL2NvbmZpZy1lZGl0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBZ0IsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3hILE9BQU8sRUFBQyxtQkFBbUIsRUFBb0IsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0RSxPQUFPLEVBQUMsUUFBUSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUMsTUFBTSxRQUFRLENBQUM7QUFFeEUsT0FBTyxHQUFHLE1BQU0sS0FBSyxDQUFDO0FBQ3RCLE9BQU8sVUFBVSxNQUFNLGFBQWEsQ0FBQztBQUNyQyxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sNEJBQTRCLENBQUM7Ozs7Ozs7QUFHeEQsTUFLYSxxQkFBcUI7SUFxQmhDLElBQWEsVUFBVSxDQUFDLElBQUk7UUFDMUIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7UUFDeEIsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFBQSxDQUFDO0lBR0YsSUFBSSxVQUFVO1FBQ1osT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzFCLENBQUM7SUFHRCxJQUFhLFlBQVksQ0FBQyxZQUFxQjtRQUM3QyxJQUFJLENBQUMsYUFBYSxHQUFHLFlBQVksQ0FB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dEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCwgVmlld0NoaWxkLCBWaWV3Q29udGFpbmVyUmVmfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7SnNvbkVkaXRvckNvbXBvbmVudCwgSnNvbkVkaXRvck9wdGlvbnN9IGZyb20gXCJhbmctanNvbmVkaXRvclwiO1xuaW1wb3J0IHtkZWJvdW5jZSwgZGVmZXIsIGlzQm9vbGVhbiwgaXNFbXB0eSwgaXNOaWwsIGtleXN9IGZyb20gXCJsb2Rhc2hcIjtcbmltcG9ydCB7U2NoZW1hU2VydmljZX0gZnJvbSBcIi4uLy4uL3NlcnZpY2VzL3NjaGVtYS5zZXJ2aWNlXCI7XG5pbXBvcnQgQWp2IGZyb20gJ2Fqdic7XG5pbXBvcnQgYWRkRm9ybWF0cyBmcm9tICdhanYtZm9ybWF0cyc7XG5pbXBvcnQge0dyb3dsZXJNb2RlbH0gZnJvbSBcIi4uL21lc3NhZ2luZy9ncm93bGVyLm1vZGVsXCI7XG5pbXBvcnQge0dyb3dsZXJTZXJ2aWNlfSBmcm9tIFwiLi4vbWVzc2FnaW5nL2dyb3dsZXIuc2VydmljZVwiOyAgLy8gSW1wb3J0IGFqdi1mb3JtYXRzXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1jb25maWctZWRpdG9yJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NvbmZpZy1lZGl0b3IuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jb25maWctZWRpdG9yLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQ29uZmlnRWRpdG9yQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBjb25maWdEYXRhSW5pdCA9IGZhbHNlO1xuXG4gIGl0ZW1zOiBhbnlbXSA9IFtdO1xuXG4gIGxDb2xvckFycmF5ID0gW1xuICAgICd3aGl0ZScsXG4gICAgJ3doaXRlJyxcbiAgXVxuXG4gIGJDb2xvckFycmF5ID0gW1xuICAgICd2YXIoLS1mb3JtR3JvdXApJyxcbiAgICAndmFyKC0tZm9ybVN1Ykdyb3VwKSdcbiAgXVxuICBoaWRlQ29uZmlnSlNPTiA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpIGNvbmZpZ0Vycm9yczogYW55ID0ge307XG4gIEBPdXRwdXQoKSBjb25maWdFcnJvcnNDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICBfY29uZmlnRGF0YTogYW55ID0ge307XG4gIEBJbnB1dCgpIHNldCBjb25maWdEYXRhKGRhdGEpIHtcbiAgICB0aGlzLl9jb25maWdEYXRhID0gZGF0YTtcbiAgICB0aGlzLmluaXRGb3JtRGF0YSgpO1xuICB9O1xuXG4gIEBPdXRwdXQoKSBjb25maWdEYXRhQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIGdldCBjb25maWdEYXRhKCkge1xuICAgIHJldHVybiB0aGlzLl9jb25maWdEYXRhO1xuICB9XG5cbiAgX3Nob3dKc29uVmlldyA9IGZhbHNlO1xuICBASW5wdXQoKSBzZXQgc2hvd0pzb25WaWV3KHNob3dKc29uVmlldzogYm9vbGVhbikge1xuICAgIHRoaXMuX3Nob3dKc29uVmlldyA9IHNob3dKc29uVmlldztcbiAgICB0aGlzLnVwZGF0ZUNvbmZpZ0RhdGEoKTtcbiAgfVxuICBnZXQgc2hvd0pzb25WaWV3KCkge1xuICAgIHJldHVybiB0aGlzLl9zaG93SnNvblZpZXc7XG4gIH1cblxuICBfc2NoZW1hID0gZmFsc2U7XG4gIEBJbnB1dCgpIHNldCBzY2hlbWEoc2NoZW1hOiBhbnkpIHtcbiAgICB0aGlzLl9zY2hlbWEgPSBzY2hlbWE7XG4gICAgdGhpcy5pbml0Rm9ybURhdGEoKTtcbiAgICB0aGlzLmNyZWF0ZUZvcm0oKTtcbiAgICB0aGlzLnVwZGF0ZUNvbmZpZ0RhdGEoKTtcbiAgfVxuXG4gIGdldCBzY2hlbWEoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3NjaGVtYTtcbiAgfVxuXG4gIGZvcm1EYXRhQ2hhbmdlZERlYm91bmNlZDogYW55ID0gZGVib3VuY2UodGhpcy5mb3JtRGF0YUNoYW5nZWQuYmluZCh0aGlzKSwgMzUwKTtcbiAganNvbkRhdGFDaGFuZ2VkRGVib3VuY2VkOiBhbnkgPSBkZWJvdW5jZSh0aGlzLmpzb25EYXRhQ2hhbmdlZC5iaW5kKHRoaXMpLCAzNTApO1xuICBAVmlld0NoaWxkKFwiZHluYW1pY2Zvcm1cIiwge3JlYWQ6IFZpZXdDb250YWluZXJSZWZ9KSBkeW5hbWljRm9ybSE6IFZpZXdDb250YWluZXJSZWY7XG4gIEBWaWV3Q2hpbGQoSnNvbkVkaXRvckNvbXBvbmVudCwge3N0YXRpYzogZmFsc2V9KSBlZGl0b3IhOiBKc29uRWRpdG9yQ29tcG9uZW50O1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHNjaGVtYVN2YzogU2NoZW1hU2VydmljZSwgcHJpdmF0ZSBncm93bGVyU2VydmljZTogR3Jvd2xlclNlcnZpY2UpIHtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuY3JlYXRlRm9ybSgpO1xuICB9XG5cbiAgY3JlYXRlRm9ybSgpIHtcbiAgICB0aGlzLmNsZWFyRm9ybSgpO1xuICAgIGlmICh0aGlzLmR5bmFtaWNGb3JtICYmIHRoaXMuc2NoZW1hKSB7XG4gICAgICB0aGlzLnJlbmRlclNjaGVtYSh0aGlzLnNjaGVtYSk7XG4gICAgfVxuICB9XG5cbiAgY2xlYXJGb3JtKCkge1xuICAgIHRoaXMuaXRlbXMuZm9yRWFjaCgoaXRlbTogYW55KSA9PiB7XG4gICAgICBpZiAoaXRlbT8uY29tcG9uZW50KSBpdGVtLmNvbXBvbmVudC5kZXN0cm95KCk7XG4gICAgfSk7XG4gICAgdGhpcy5jb25maWdFcnJvcnMgPSB7fTtcbiAgICB0aGlzLml0ZW1zID0gW107XG4gIH1cblxuICByZW5kZXJTY2hlbWEoc2NoZW1hOiBhbnkpIHtcbiAgICBpZiAoc2NoZW1hLnByb3BlcnRpZXMpIHtcbiAgICAgIHRoaXMuaXRlbXMgPSB0aGlzLnNjaGVtYVN2Yy5yZW5kZXIoc2NoZW1hLCB0aGlzLmR5bmFtaWNGb3JtLCB0aGlzLmxDb2xvckFycmF5LCB0aGlzLmJDb2xvckFycmF5KTtcbiAgICAgIGZvciAobGV0IG9iaiBvZiB0aGlzLml0ZW1zKSB7XG4gICAgICAgIGNvbnN0IGNSZWYgPSBvYmouY29tcG9uZW50O1xuICAgICAgICBjUmVmLmluc3RhbmNlLmVycm9ycyA9IHRoaXMuY29uZmlnRXJyb3JzO1xuICAgICAgICBpZiAoY1JlZj8uaW5zdGFuY2UudmFsdWVDaGFuZ2UpIHtcbiAgICAgICAgICBjb25zdCBwTmFtZTogc3RyaW5nW10gID0gY1JlZi5pbnN0YW5jZS5wYXJlbnRhZ2U7XG4gICAgICAgICAgbGV0IHBhcmVudEtleTtcbiAgICAgICAgICBpZihwTmFtZSkgcGFyZW50S2V5ID0gcE5hbWUuam9pbignLicpO1xuICAgICAgICAgIC8vaWYgKHBhcmVudEtleSAmJiAhdGhpcy5mb3JtRGF0YVtwYXJlbnRLZXldKSB0aGlzLmZvcm1EYXRhW3BhcmVudEtleV0gPSB7fTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHVwZGF0ZUNvbmZpZ0RhdGEoKSB7XG4gICAgaWYgKCF0aGlzLnNob3dKc29uVmlldykge1xuICAgICAgdGhpcy51cGRhdGVGb3JtVmlldyh0aGlzLml0ZW1zLCB0aGlzLmNvbmZpZ0RhdGEpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmhpZGVDb25maWdKU09OID0gdHJ1ZTtcbiAgICAgIGRlZmVyKCgpID0+IHtcbiAgICAgICAgdGhpcy5nZXRDb25maWdEYXRhRnJvbUZvcm0oKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHVwZGF0ZUZvcm1WaWV3KGl0ZW1zLCBkYXRhOiBhbnkgPSB7fSkge1xuICAgIGl0ZW1zLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgIGlmIChpdGVtLml0ZW1zKSB7XG4gICAgICAgIGlmIChpdGVtLnR5cGUgPT09ICdhcnJheScpIHtcbiAgICAgICAgICBpZiAoaXRlbT8uY29tcG9uZW50Py5pbnN0YW5jZT8uYWRkZWRJdGVtcykge1xuICAgICAgICAgICAgaXRlbS5hZGRlZEl0ZW1zID0gZGF0YVtpdGVtLmtleV0gfHwgW107XG4gICAgICAgICAgICBpdGVtLmNvbXBvbmVudC5pbnN0YW5jZS5hZGRlZEl0ZW1zID0gZGF0YVtpdGVtLmtleV0gfHwgW107XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMudXBkYXRlRm9ybVZpZXcoaXRlbS5pdGVtcywge30pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMudXBkYXRlRm9ybVZpZXcoaXRlbS5pdGVtcywgZGF0YVtpdGVtLmtleV0pO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKGl0ZW0/LmNvbXBvbmVudD8uaW5zdGFuY2U/LnNldFByb3BlcnRpZXMpIHtcbiAgICAgICAgbGV0IHZhbDtcbiAgICAgICAgc3dpdGNoIChpdGVtLmtleSkge1xuICAgICAgICAgIGNhc2UgJ2ZvcndhcmRpbmdjb25maWcnOlxuICAgICAgICAgICAgdmFsID0ge1xuICAgICAgICAgICAgICBwcm90b2NvbDogZGF0YS5wcm90b2NvbCxcbiAgICAgICAgICAgICAgYWRkcmVzczogZGF0YS5hZGRyZXNzLFxuICAgICAgICAgICAgICBwb3J0OiBkYXRhLnBvcnQsXG4gICAgICAgICAgICAgIGZvcndhcmRQcm90b2NvbDogZGF0YS5mb3J3YXJkUHJvdG9jb2wsXG4gICAgICAgICAgICAgIGZvcndhcmRBZGRyZXNzOiBkYXRhLmZvcndhcmRBZGRyZXNzLFxuICAgICAgICAgICAgICBmb3J3YXJkUG9ydDogZGF0YS5mb3J3YXJkUG9ydCxcbiAgICAgICAgICAgICAgYWxsb3dlZFByb3RvY29sczogZGF0YS5hbGxvd2VkUHJvdG9jb2xzLFxuICAgICAgICAgICAgICBhbGxvd2VkQWRkcmVzc2VzOiBkYXRhLmFsbG93ZWRBZGRyZXNzZXMsXG4gICAgICAgICAgICAgIGFsbG93ZWRQb3J0UmFuZ2VzOiBkYXRhLmFsbG93ZWRQb3J0UmFuZ2VzXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlICdwYXAnOlxuICAgICAgICAgICAgdmFsID0ge1xuICAgICAgICAgICAgICBwcm90b2NvbDogZGF0YS5wcm90b2NvbCxcbiAgICAgICAgICAgICAgYWRkcmVzczogZGF0YS5hZGRyZXNzLFxuICAgICAgICAgICAgICBwb3J0OiBkYXRhLnBvcnQsXG4gICAgICAgICAgICAgIGhvc3RuYW1lOiBkYXRhLmhvc3RuYW1lLFxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHZhbCA9IGRhdGFbaXRlbS5rZXldO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgaXRlbT8uY29tcG9uZW50Py5pbnN0YW5jZT8uc2V0UHJvcGVydGllcyh2YWwpO1xuICAgICAgfSBlbHNlIGlmIChpdGVtPy5jb21wb25lbnQ/LnNldElucHV0KSB7XG4gICAgICAgIGl0ZW0uY29tcG9uZW50LnNldElucHV0KCdmaWVsZFZhbHVlJywgZGF0YVtpdGVtLmtleV0pO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiBkYXRhO1xuICB9XG5cbiAgZ2V0Q29uZmlnRGF0YUZyb21Gb3JtKCkge1xuICAgIGNvbnN0IGRhdGEgPSB7fTtcbiAgICB0aGlzLmFkZEl0ZW1zVG9Db25maWcodGhpcy5pdGVtcywgZGF0YSk7XG4gICAgdGhpcy5fY29uZmlnRGF0YSA9IGRhdGE7XG4gICAgdGhpcy5oaWRlQ29uZmlnSlNPTiA9IGZhbHNlO1xuICAgIHRoaXMuY29uZmlnRGF0YUNoYW5nZS5lbWl0KHRoaXMuY29uZmlnRGF0YSk7XG4gIH1cblxuICBhZGRJdGVtc1RvQ29uZmlnKGl0ZW1zLCBkYXRhOiBhbnkgPSB7fSwgcGFyZW50VHlwZSA9ICdvYmplY3QnKSB7XG4gICAgaXRlbXMuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgaWYgKGl0ZW0udHlwZSA9PT0gJ2FycmF5Jykge1xuICAgICAgICBpZiAoaXRlbS5hZGRlZEl0ZW1zKSB7XG4gICAgICAgICAgZGF0YVtpdGVtLmtleV0gPSBpdGVtLmFkZGVkSXRlbXM7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZGF0YVtpdGVtLmtleV0gPSBbXTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChpdGVtLnR5cGUgPT09ICdvYmplY3QnKSB7XG4gICAgICAgIGNvbnN0IHZhbCA9IHRoaXMuYWRkSXRlbXNUb0NvbmZpZyhpdGVtLml0ZW1zLCB7fSwgaXRlbS50eXBlKTtcbiAgICAgICAgbGV0IGhhc0RlZmluaXRpb24gPSBmYWxzZTtcbiAgICAgICAga2V5cyh2YWwpLmZvckVhY2goKGtleSkgPT4ge1xuICAgICAgICAgIGlmIChpc0Jvb2xlYW4odmFsW2tleV0pIHx8ICghaXNFbXB0eSh2YWxba2V5XSkgJiYgIWlzTmlsKHZhbFtrZXldKSkpIHtcbiAgICAgICAgICAgIGhhc0RlZmluaXRpb24gPSB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIGRhdGFbaXRlbS5rZXldID0gaGFzRGVmaW5pdGlvbiA/IHZhbCA6IHVuZGVmaW5lZDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGxldCBwcm9wcyA9IFtdO1xuICAgICAgICBpZiAoaXRlbT8uY29tcG9uZW50Py5pbnN0YW5jZT8uZ2V0UHJvcGVydGllcykge1xuICAgICAgICAgIHByb3BzID0gaXRlbT8uY29tcG9uZW50Py5pbnN0YW5jZT8uZ2V0UHJvcGVydGllcygpO1xuICAgICAgICB9IGVsc2UgaWYgKGl0ZW0/LmNvbXBvbmVudD8uaW5zdGFuY2UpIHtcbiAgICAgICAgICBwcm9wcyA9IFt7a2V5OiBpdGVtLmtleSwgdmFsdWU6IGl0ZW0uY29tcG9uZW50Lmluc3RhbmNlLmZpZWxkVmFsdWV9XTtcbiAgICAgICAgfVxuICAgICAgICBwcm9wcy5mb3JFYWNoKChwcm9wKSA9PiB7XG4gICAgICAgICAgZGF0YVtwcm9wLmtleV0gPSBwcm9wLnZhbHVlO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gZGF0YTtcbiAgfVxuXG4gIHZhbGlkYXRlQ29uZmlnKHNjaGVtYT8sIHNob3dHcm93bGVyID0gdHJ1ZSkge1xuICAgIHRoaXMuY29uZmlnRGF0YSA9IHRoaXMucmVtb3ZlVW5kZWZpbmVkUHJvcGVydGllcyh0aGlzLmNvbmZpZ0RhdGEpO1xuICAgIGxldCB2YWxpZGF0aW9uRXJyb3JzO1xuICAgIGxldCB2YWxpZCA9IHRydWU7XG4gICAgaWYgKHNjaGVtYSkge1xuICAgICAgLy8gSW5pdGlhbGl6ZSBBanZcbiAgICAgIGNvbnN0IGFqdiA9IG5ldyBBanYoe2FsbEVycm9yczogdHJ1ZX0pO1xuICAgICAgYWRkRm9ybWF0cyhhanYpO1xuICAgICAgYWp2LmFkZEZvcm1hdCgnaWRuLWhvc3RuYW1lJywgL14uKyQvKTtcbiAgICAgIGNvbnN0IHZhbGlkYXRlID0gYWp2LmNvbXBpbGUoc2NoZW1hKTtcbiAgICAgIHZhbGlkID0gdmFsaWRhdGUodGhpcy5jb25maWdEYXRhKTtcbiAgICAgIHZhbGlkYXRpb25FcnJvcnMgPSB2YWxpZGF0ZS5lcnJvcnM7XG4gICAgfVxuICAgIHRoaXMuY29uZmlnRXJyb3JzID0ge307XG4gICAgY29uc3QgcHJvcGVydHlWYWxpZGF0aW9uTWFwID0ge307XG4gICAgdGhpcy52YWxpZGF0ZUNvbmZpZ0l0ZW1zKHRoaXMuaXRlbXMsIHVuZGVmaW5lZCwgJycsIHZhbGlkYXRpb25FcnJvcnMpO1xuICAgIHRoaXMuYnVpbGRQcm9wZXJ0eVZhbGlkYXRpb25NYXAodmFsaWRhdGlvbkVycm9ycywgcHJvcGVydHlWYWxpZGF0aW9uTWFwKTtcbiAgICBpZiAoIXZhbGlkKSB7XG4gICAgICB0aGlzLmNvbmZpZ0Vycm9yc1snY29uZmlnRGF0YSddID0gdHJ1ZTtcbiAgICAgIGlmIChzaG93R3Jvd2xlcikge1xuICAgICAgICB0aGlzLmRpc3BsYXlDb25maWdFcnJvcnMocHJvcGVydHlWYWxpZGF0aW9uTWFwKTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5jb25maWdFcnJvcnNDaGFuZ2UuZW1pdCh0aGlzLmNvbmZpZ0Vycm9ycyk7XG4gICAgcmV0dXJuIGlzRW1wdHkodGhpcy5jb25maWdFcnJvcnMpO1xuICB9XG5cbiAgYnVpbGRQcm9wZXJ0eVZhbGlkYXRpb25NYXAodmFsaWRhdGlvbkVycm9ycywgcHJvcGVydHlWYWxpZGF0aW9uTWFwKSB7XG4gICAgdmFsaWRhdGlvbkVycm9ycz8uZm9yRWFjaCgoZXJyb3IpID0+IHtcbiAgICAgIGxldCBwYXRoID0gZXJyb3IuaW5zdGFuY2VQYXRoO1xuICAgICAgaWYgKCFpc0VtcHR5KGVycm9yPy5wYXJhbXM/Lm1pc3NpbmdQcm9wZXJ0eSkpIHtcbiAgICAgICAgcGF0aCArPSAnLycgKyBlcnJvcj8ucGFyYW1zPy5taXNzaW5nUHJvcGVydHk7XG4gICAgICB9XG4gICAgICBpZiAoIWlzRW1wdHkocGF0aCkpIHtcbiAgICAgICAgcHJvcGVydHlWYWxpZGF0aW9uTWFwW3BhdGhdID0gYDxiPiR7cGF0aH08L2I+OiAke2Vycm9yLm1lc3NhZ2V9YDtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHZhbGlkYXRlQ29uZmlnSXRlbXMoaXRlbXMsIHBhcmVudFR5cGUgPSAnb2JqZWN0JywgcGF0aCA9ICcnLCB2YWxpZGF0aW9uRXJyb3JzID0gW10pIHtcbiAgICBsZXQgaXNWYWxpZCA9IHRydWU7XG4gICAgaXRlbXMuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgaWYgKGl0ZW0udHlwZSA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgaWYgKCF0aGlzLnZhbGlkYXRlQ29uZmlnSXRlbXMoaXRlbS5pdGVtcywgaXRlbS50eXBlLCBwYXRoICsgJy8nICsgaXRlbS5rZXksIHZhbGlkYXRpb25FcnJvcnMpKSB7XG4gICAgICAgICAgaXNWYWxpZCA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKGl0ZW0/LmNvbXBvbmVudD8uaW5zdGFuY2U/LnNldFZhbGlkYXRpb25FcnJvcnMpIHtcbiAgICAgICAgaXRlbT8uY29tcG9uZW50Py5pbnN0YW5jZT8uc2V0VmFsaWRhdGlvbkVycm9ycyhwYXRoLCB2YWxpZGF0aW9uRXJyb3JzKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgaGFzVmFsaWRhdGlvbkVycm9yOiBhbnkgPSB2YWxpZGF0aW9uRXJyb3JzPy5zb21lKChlcnJvcikgPT4ge1xuICAgICAgICAgIGxldCBwYXRoVG9NYWNoID0gZXJyb3IuaW5zdGFuY2VQYXRoO1xuICAgICAgICAgIGlmICghaXNFbXB0eShlcnJvcj8ucGFyYW1zPy5taXNzaW5nUHJvcGVydHkpKSB7XG4gICAgICAgICAgICBwYXRoVG9NYWNoICs9ICcvJyArIGVycm9yPy5wYXJhbXM/Lm1pc3NpbmdQcm9wZXJ0eTtcbiAgICAgICAgICB9XG4gICAgICAgICAgY29uc3QgbWF0Y2hlZCA9IHBhdGhUb01hY2ggPT09IChwYXRoICsgJy8nICsgaXRlbS5rZXkpO1xuICAgICAgICAgIHJldHVybiBtYXRjaGVkO1xuICAgICAgICB9KTtcbiAgICAgICAgaWYgKGl0ZW0/LmNvbXBvbmVudD8uaW5zdGFuY2U/LnNldElzVmFsaWQpIHtcbiAgICAgICAgICBpdGVtPy5jb21wb25lbnQ/Lmluc3RhbmNlPy5zZXRJc1ZhbGlkKCFoYXNWYWxpZGF0aW9uRXJyb3IpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIGlzVmFsaWQ7XG4gIH1cblxuICBkaXNwbGF5Q29uZmlnRXJyb3JzKHByb3BlcnR5VmFsaWRhdGlvbk1hcCkge1xuICAgIGxldCB2YWxpZGF0aW9uTWVzc2FnZSA9ICcnO1xuICAgIGlmICghaXNFbXB0eShwcm9wZXJ0eVZhbGlkYXRpb25NYXApKSB7XG4gICAgICBjb25zdCBwcm9wcyA9IGtleXMocHJvcGVydHlWYWxpZGF0aW9uTWFwKTtcbiAgICAgIHByb3BzLmZvckVhY2goKGtleSwgaW5kZXgpID0+IHtcbiAgICAgICAgdmFsaWRhdGlvbk1lc3NhZ2UgKz0gYDxsaT4ke3Byb3BlcnR5VmFsaWRhdGlvbk1hcFtrZXldfTwvbGk+YDtcbiAgICAgIH0pO1xuICAgIH1cbiAgICBpZiAoaXNFbXB0eSh2YWxpZGF0aW9uTWVzc2FnZSkpIHtcbiAgICAgIHZhbGlkYXRpb25NZXNzYWdlID0gJ1RoZSBlbnRlcmVkIGNvbmZpZ3VyYXRpb24gaXMgaW52YWxpZC4gUGxlYXNlIHVwZGF0ZSBtaXNzaW5nL2ludmFsaWQgZmllbGRzIGFuZCB0cnkgYWdhaW4uJztcbiAgICB9IGVsc2Uge1xuICAgICAgdmFsaWRhdGlvbk1lc3NhZ2UgPSBgPHVsIHN0eWxlPVwibWFyZ2luLXRvcDogNXB4O1wiPiR7dmFsaWRhdGlvbk1lc3NhZ2V9PC91bD5gO1xuICAgIH1cbiAgICBjb25zdCBncm93bGVyRGF0YSA9IG5ldyBHcm93bGVyTW9kZWwoXG4gICAgICAgICdlcnJvcicsXG4gICAgICAgICdFcnJvcicsXG4gICAgICAgIGBFcnJvciBWYWxpZGF0aW5nIENvbmZpZ2AsXG4gICAgICAgIHZhbGlkYXRpb25NZXNzYWdlLFxuICAgICk7XG4gICAgdGhpcy5ncm93bGVyU2VydmljZS5zaG93KGdyb3dsZXJEYXRhKTtcbiAgfVxuXG4gIGluaXRGb3JtRGF0YSgpIHtcbiAgICBpZiAoIXRoaXMuY29uZmlnRGF0YUluaXQgJiYgIWlzRW1wdHkodGhpcy5fY29uZmlnRGF0YSkgJiYgIWlzRW1wdHkodGhpcy5zY2hlbWEpKSB7XG4gICAgICB0aGlzLmNvbmZpZ0RhdGFJbml0ID0gdHJ1ZTtcbiAgICAgIHRoaXMuZm9ybURhdGFDaGFuZ2VkKCk7XG4gICAgfVxuICB9XG5cbiAgZm9ybURhdGFDaGFuZ2VkKCkge1xuICAgICAgZGVmZXIoKCkgPT4ge1xuICAgICAgICB0aGlzLmdldENvbmZpZ0RhdGFGcm9tRm9ybSgpO1xuICAgICAgfSk7XG4gIH1cblxuICBqc29uRGF0YUNoYW5nZWQoZXZlbnQpIHtcbiAgICBkZWZlcigoKSA9PiB7XG4gICAgICB0aGlzLmNvbmZpZ0RhdGFDaGFuZ2UuZW1pdCh0aGlzLmNvbmZpZ0RhdGEpO1xuICAgICAgdGhpcy51cGRhdGVGb3JtVmlldyh0aGlzLml0ZW1zLCB0aGlzLmNvbmZpZ0RhdGEpO1xuICAgIH0pO1xuICB9XG5cbiAgcmVtb3ZlVW5kZWZpbmVkUHJvcGVydGllcyhkYXRhKSB7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkoZGF0YSkpIHtcbiAgICAgIHJldHVybiBkYXRhXG4gICAgICAgICAgLm1hcChpdGVtID0+IHRoaXMucmVtb3ZlVW5kZWZpbmVkUHJvcGVydGllcyhpdGVtKSlcbiAgICAgICAgICAuZmlsdGVyKGl0ZW0gPT4gaXRlbSAhPT0gdW5kZWZpbmVkKTtcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiBkYXRhID09PSAnb2JqZWN0JyAmJiBkYXRhICE9PSBudWxsKSB7XG4gICAgICByZXR1cm4gT2JqZWN0LmZyb21FbnRyaWVzKFxuICAgICAgICAgIE9iamVjdC5lbnRyaWVzKGRhdGEpXG4gICAgICAgICAgICAgIC5maWx0ZXIoKFtfLCB2YWx1ZV0pID0+IHZhbHVlICE9PSB1bmRlZmluZWQpXG4gICAgICAgICAgICAgIC5tYXAoKFtrZXksIHZhbHVlXSkgPT4gW2tleSwgdGhpcy5yZW1vdmVVbmRlZmluZWRQcm9wZXJ0aWVzKHZhbHVlKV0pXG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gZGF0YTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImZvcm0tZmllbGQtZXh0ZW5kZWQtZmllbGRzXCIgW2hpZGRlbl09XCJzaG93SnNvblZpZXdcIiAobW91c2V1cCk9XCJmb3JtRGF0YUNoYW5nZWREZWJvdW5jZWQoJGV2ZW50KVwiIChrZXl1cCk9XCJmb3JtRGF0YUNoYW5nZWREZWJvdW5jZWQoJGV2ZW50KVwiIChjbGlja091dHNpZGUpPVwiZm9ybURhdGFDaGFuZ2VkRGVib3VuY2VkKCRldmVudClcIj5cbiAgICA8bmctY29udGFpbmVyICNkeW5hbWljZm9ybT48L25nLWNvbnRhaW5lcj5cbjwvZGl2PlxuPGxpYi1qc29uLXZpZXcgKm5nSWY9XCJzaG93SnNvblZpZXcgJiYgIWhpZGVDb25maWdKU09OXCIgKGRhdGFDaGFuZ2UpPVwianNvbkRhdGFDaGFuZ2VkRGVib3VuY2VkKCRldmVudClcIiBbKGRhdGEpXT1cImNvbmZpZ0RhdGFcIj48L2xpYi1qc29uLXZpZXc+XG48bGliLWpzb24tdmlldyAqbmdJZj1cInNob3dKc29uVmlldyAmJiBoaWRlQ29uZmlnSlNPTlwiIFsoZGF0YSldPVwiY29uZmlnRGF0YVwiPjwvbGliLWpzb24tdmlldz4iXX0=
@@ -38,7 +38,7 @@ class FilterBarComponent {
38
38
  });
39
39
  let tmp = '';
40
40
  for (let idx = 0; idx < filters.length; idx++) {
41
- if (filters[idx].columnId === 'name') {
41
+ if (filters[idx].columnId === this.filterColumn) {
42
42
  tmp = filters[idx].value;
43
43
  break;
44
44
  }
@@ -106,4 +106,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
106
106
  }], currentPage: [{
107
107
  type: Input
108
108
  }] } });
109
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLWJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy96aXRpLWNvbnNvbGUtbGliL3NyYy9saWIvZmVhdHVyZXMvZGF0YS10YWJsZS90YWJsZS1maWx0ZXItYmFyL2ZpbHRlci1iYXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMveml0aS1jb25zb2xlLWxpYi9zcmMvbGliL2ZlYXR1cmVzL2RhdGEtdGFibGUvdGFibGUtZmlsdGVyLWJhci9maWx0ZXItYmFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztFQWNFO0FBRUYsT0FBTyxFQUFDLFNBQVMsRUFBZ0IsS0FBSyxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUM3RSxPQUFPLEVBQUMsUUFBUSxFQUFFLFFBQVEsRUFBQyxNQUFNLFFBQVEsQ0FBQzs7Ozs7QUFHMUMsTUFLYSxrQkFBa0I7SUFnQjdCLFlBQW1CLGFBQXFDO1FBQXJDLGtCQUFhLEdBQWIsYUFBYSxDQUF3QjtRQWR4RCxhQUFRLEdBQUcsRUFBRSxDQUFDO1FBRUwsZUFBVSxHQUFXLE1BQU0sQ0FBQztRQUM1QixpQkFBWSxHQUFXLE1BQU0sQ0FBQztRQUU5QixlQUFVLEdBQVcsR0FBRyxDQUFDO1FBQ3pCLGFBQVEsR0FBVyxHQUFHLENBQUM7UUFDdkIsZUFBVSxHQUFXLEdBQUcsQ0FBQztRQUN6QixnQkFBVyxHQUFXLENBQUMsQ0FBQztRQUVqQyxjQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ2xCLGlCQUFZLEdBQUcsRUFBRSxDQUFDO1FBQ2xCLDBCQUFxQixHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUdsRSxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMs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QUFrQjttR0FBbEIsa0JBQWtCLHNPQ3pCL0IsczZDQThCQTs7U0RMYSxrQkFBa0I7NEZBQWxCLGtCQUFrQjtrQkFMOUIsU0FBUzsrQkFDRSxzQkFBc0I7NkdBUXZCLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFFRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAgICBDb3B5cmlnaHQgTmV0Rm91bmRyeSBJbmMuXG5cbiAgICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICAgIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAgICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcblxuICAgIGh0dHBzOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcblxuICAgIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAgICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gICAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICAgIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuKi9cblxuaW1wb3J0IHtDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7ZGVib3VuY2UsIGlzTnVtYmVyfSBmcm9tIFwibG9kYXNoXCI7XG5pbXBvcnQge0RhdGFUYWJsZUZpbHRlclNlcnZpY2UsIEZpbHRlck9ian0gZnJvbSBcIi4uL2RhdGEtdGFibGUtZmlsdGVyLnNlcnZpY2VcIjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGliLXRhYmxlLWZpbHRlci1iYXInLFxuICB0ZW1wbGF0ZVVybDogJy4vZmlsdGVyLWJhci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2ZpbHRlci1iYXIuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBGaWx0ZXJCYXJDb21wb25lbnQge1xuXG4gIF9maWx0ZXJzID0gW107XG5cbiAgQElucHV0KCkgZmlsdGVyTmFtZTogc3RyaW5nID0gJ25hbWUnO1xuICBASW5wdXQoKSBmaWx0ZXJDb2x1bW46IHN0cmluZyA9ICduYW1lJztcblxuICBASW5wdXQoKSBzdGFydENvdW50OiBzdHJpbmcgPSAnLSc7XG4gIEBJbnB1dCgpIGVuZENvdW50OiBzdHJpbmcgPSAnLSc7XG4gIEBJbnB1dCgpIHRvdGFsQ291bnQ6IHN0cmluZyA9ICctJztcbiAgQElucHV0KCkgY3VycmVudFBhZ2U6IG51bWJlciA9IDE7XG5cbiAgZmlsdGVyaW5nID0gZmFsc2U7XG4gIGZpbHRlclN0cmluZyA9ICcnO1xuICBpbnB1dENoYW5nZWREZWJvdW5jZWQgPSBkZWJvdW5jZSh0aGlzLmlucHV0Q2hhbmdlZC5iaW5kKHRoaXMpLCA0MDApO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBmaWx0ZXJTZXJ2aWNlOiBEYXRhVGFibGVGaWx0ZXJTZXJ2aWNlKSB7XG4gICAgdGhpcy5maWx0ZXJTZXJ2aWNlLmZpbHRlcnNDaGFuZ2VkLnN1YnNjcmliZShmaWx0ZXJzID0+IHtcbiAgICAgIHRoaXMuX2ZpbHRlcnMgPSBmaWx0ZXJzLmZpbHRlcigoZmlsdGVyOiBhbnkpID0+IHtcbiAgICAgICAgcmV0dXJuIGZpbHRlci5oaWRkZW4gIT09IHRydWU7XG4gICAgICB9KTtcbiAgICAgIGxldCB0bXAgPSAnJztcbiAgICAgIGZvciAobGV0IGlkeCA9IDA7IGlkeCA8IGZpbHRlcnMubGVuZ3RoOyBpZHgrKykge1xuICAgICAgICBpZiAoZmlsdGVyc1tpZHhdLmNvbHVtbklkID09PSAnbmFtZScpIHtcbiAgICAgICAgICB0bXAgPSBmaWx0ZXJzW2lkeF0udmFsdWU7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHRoaXMuZmlsdGVyU3RyaW5nID0gdG1wO1xuICAgIH0pO1xuICAgIHRoaXMuZmlsdGVyU2VydmljZS5maWx0ZXJpbmcuc3Vic2NyaWJlKChmaWx0ZXJpbmcpID0+IHtcbiAgICAgIHRoaXMuZmlsdGVyaW5nID0gZmlsdGVyaW5nO1xuICAgIH0pO1xuICB9XG5cbiAgbmV4dFBhZ2UoKSB7XG4gICAgdGhpcy5jdXJyZW50UGFnZSsrO1xuICAgIHRoaXMuZmlsdGVyU2VydmljZS5jaGFuZ2VQYWdlKHRoaXMuY3VycmVudFBhZ2UpO1xuICB9XG5cbiAgcHJldlBhZ2UoKSB7XG4gICAgdGhpcy5jdXJyZW50UGFnZS0tO1xuICAgIHRoaXMuZmlsdGVyU2VydmljZS5jaGFuZ2VQYWdlKHRoaXMuY3VycmVudFBhZ2UpO1xuICB9XG5cbiAgZ2V0IG5leHREaXNhYmxlZCgpIHtcbiAgICBpZiAoIWlzTnVtYmVyKHRoaXMudG90YWxDb3VudCkgfHwgIWlzTnVtYmVyKHRoaXMuZW5kQ291bnQpIHx8IHRoaXMuZmlsdGVyaW5nKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgY29uc3QgdG90YWw6IGFueSA9IE51bWJlci5wYXJzZUludCh0aGlzLnRvdGFsQ291bnQpO1xuICAgIGNvbnN0IGVuZDogYW55ID0gTnVtYmVyLnBhcnNlSW50KHRoaXMuZW5kQ291bnQpO1xuICAgIHJldHVybiBlbmQgPj0gdG90YWw7XG4gIH1cblxuICBnZXQgcHJldkRpc2FibGVkKCkge1xuICAgIGlmICghaXNOdW1iZXIodGhpcy5zdGFydENvdW50KSB8fCAhaXNOdW1iZXIodGhpcy50b3RhbENvdW50KSB8fCB0aGlzLmZpbHRlcmluZykge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGNvbnN0IHN0YXJ0ID0gTnVtYmVyLnBhcnNlSW50KHRoaXMuc3RhcnRDb3VudCwgMTApO1xuICAgIHJldHVybiBzdGFydCA8PSAxO1xuICB9XG5cbiAgaW5wdXRDaGFuZ2VkKCkge1xuICAgIHRoaXMuY3VycmVudFBhZ2UgPSAxO1xuICAgIHRoaXMuZmlsdGVyU2VydmljZS5jdXJyZW50UGFnZSA9IHRoaXMuY3VycmVudFBhZ2U7XG4gICAgY29uc3QgZmlsdGVyT2JqOiBGaWx0ZXJPYmogPSB7XG4gICAgICBmaWx0ZXJOYW1lOiB0aGlzLmZpbHRlck5hbWUsXG4gICAgICBjb2x1bW5JZDogdGhpcy5maWx0ZXJDb2x1bW4sXG4gICAgICB2YWx1ZTogdGhpcy5maWx0ZXJTdHJpbmcsXG4gICAgICBsYWJlbDogdGhpcy5maWx0ZXJTdHJpbmcsXG4gICAgfTtcbiAgICB0aGlzLmZpbHRlclNlcnZpY2UudXBkYXRlRmlsdGVyKGZpbHRlck9iailcbiAgfVxuXG5cbiAgcmVtb3ZlRmlsdGVyKGZpbHRlck9iajogRmlsdGVyT2JqKSB7XG4gICAgdGhpcy5maWx0ZXJTZXJ2aWNlLnJlbW92ZUZpbHRlcihmaWx0ZXJPYmopO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZmlsdGVyc1wiPlxuICAgIDxpbnB1dFxuICAgICAgICBpZD1cIlNlYXJjaEZpbHRlclwiXG4gICAgICAgIGRhdGEtZGVmaW5lZD1cInNlYXJjaFwiXG4gICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgY2xhc3M9XCJzZWFyY2hcIlxuICAgICAgICBwbGFjZWhvbGRlcj1cIlR5cGUgdG8gRmlsdGVyXCJcbiAgICAgICAgKGtleXVwKT1cImlucHV0Q2hhbmdlZERlYm91bmNlZCgpXCJcbiAgICAgICAgWyhuZ01vZGVsKV09XCJmaWx0ZXJTdHJpbmdcIlxuICAgIC8+XG4gICAgPGRpdiBjbGFzcz1cImNsZWFyIGljb24tY2xlYXJcIiBkYXRhLWRlZmluZWQ9XCJjbGVhclwiPjwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJzZWFyY2hCdXR0b24gaWNvbi1zZWFyY2hcIj48L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiZmlsdGVyZWQtY29sdW1ucy1saXN0XCIgaWQ9XCJDb2x1bW5GaWx0ZXJDb250YWluZXJcIj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJyZW1vdmVGaWx0ZXIoZmlsdGVyKVwiXG4gICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGZpbHRlciBvZiBfZmlsdGVyc1wiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmaWx0ZXJlZC1jb2x1bW4taXRlbSBhZy1kbmQtZ2hvc3QgYWctdW5zZWxlY3RhYmxlIGFnLXRoZW1lLWFscGluZVwiXG4gICAgICAgICAgICAgICAgaWQ9XCJDb2x1bW5WaXNpYmlsaXR5X3t7IGZpbHRlci5maWx0ZXJOYW1lIH19XCJcbiAgICAgICAgICAgICAgICB0aXRsZT1cIlJlbW92ZSBmaWx0ZXJcIlxuICAgICAgICA+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImFnLWRuZC1naG9zdC1pY29uXCI+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJhZy1pY29uIGFnLWljb24tZmlsdGVyXCI+PC9zcGFuPlxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFnLWRuZC1naG9zdC1sYWJlbFwiPnt7IGZpbHRlci5maWx0ZXJOYW1lIH19OiB7eyBmaWx0ZXIubGFiZWwgfX08L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImNvdW50ZXJzXCI+PHNwYW4gaWQ9XCJTdGFydFwiPnt7c3RhcnRDb3VudH19PC9zcGFuPi08c3BhbiBpZD1cIkVuZFwiPnt7ZW5kQ291bnR9fTwvc3Bhbj4gb2YgPHNwYW4gaWQ9XCJUb3RhbFwiPnt7dG90YWxDb3VudH19PC9zcGFuPjwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJuYXZpZ2F0ZSBwcmV2IGljb24tcHJldlwiIFtuZ0NsYXNzXT1cIntkaXNhYmxlZDogcHJldkRpc2FibGVkfVwiIChjbGljayk9XCJwcmV2UGFnZSgpXCI+PC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cIm5hdmlnYXRlIG5leHQgaWNvbi1uZXh0XCIgW25nQ2xhc3NdPVwie2Rpc2FibGVkOiBuZXh0RGlzYWJsZWR9XCIgKGNsaWNrKT1cIm5leHRQYWdlKClcIj48L2Rpdj5cbjwvZGl2PlxuIl19
109
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLWJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy96aXRpLWNvbnNvbGUtbGliL3NyYy9saWIvZmVhdHVyZXMvZGF0YS10YWJsZS90YWJsZS1maWx0ZXItYmFyL2ZpbHRlci1iYXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMveml0aS1jb25zb2xlLWxpYi9zcmMvbGliL2ZlYXR1cmVzL2RhdGEtdGFibGUvdGFibGUtZmlsdGVyLWJhci9maWx0ZXItYmFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztFQWNFO0FBRUYsT0FBTyxFQUFDLFNBQVMsRUFBZ0IsS0FBSyxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUM3RSxPQUFPLEVBQUMsUUFBUSxFQUFFLFFBQVEsRUFBQyxNQUFNLFFBQVEsQ0FBQzs7Ozs7QUFHMUMsTUFLYSxrQkFBa0I7SUFnQjdCLFlBQW1CLGFBQXFDO1FBQXJDLGtCQUFhLEdBQWIsYUFBYSxDQUF3QjtRQWR4RCxhQUFRLEdBQUcsRUFBRSxDQUFDO1FBRUwsZUFBVSxHQUFXLE1BQU0sQ0FBQztRQUM1QixpQkFBWSxHQUFXLE1BQU0sQ0FBQztRQUU5QixlQUFVLEdBQVcsR0FBRyxDQUFDO1FBQ3pCLGFBQVEsR0FBVyxHQUFHLENBQUM7UUFDdkIsZUFBVSxHQUFXLEdBQUcsQ0FBQztRQUN6QixnQkFBVyxHQUFXLENBQUMsQ0FBQztRQUVqQyxjQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ2xCLGlCQUFZLEdBQUcsRUFBRSxDQUFDO1FBQ2xCLDBCQUFxQixHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUdsRSxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMs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OytHQTdFVSxrQkFBa0I7bUdBQWxCLGtCQUFrQixzT0N6Qi9CLHM2Q0E4QkE7O1NETGEsa0JBQWtCOzRGQUFsQixrQkFBa0I7a0JBTDlCLFNBQVM7K0JBQ0Usc0JBQXNCOzZHQVF2QixVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBRUcsVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gICAgQ29weXJpZ2h0IE5ldEZvdW5kcnkgSW5jLlxuXG4gICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAgICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG5cbiAgICBodHRwczovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG5cbiAgICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICAgIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiovXG5cbmltcG9ydCB7Q29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge2RlYm91bmNlLCBpc051bWJlcn0gZnJvbSBcImxvZGFzaFwiO1xuaW1wb3J0IHtEYXRhVGFibGVGaWx0ZXJTZXJ2aWNlLCBGaWx0ZXJPYmp9IGZyb20gXCIuLi9kYXRhLXRhYmxlLWZpbHRlci5zZXJ2aWNlXCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi10YWJsZS1maWx0ZXItYmFyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2ZpbHRlci1iYXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9maWx0ZXItYmFyLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgRmlsdGVyQmFyQ29tcG9uZW50IHtcblxuICBfZmlsdGVycyA9IFtdO1xuXG4gIEBJbnB1dCgpIGZpbHRlck5hbWU6IHN0cmluZyA9ICduYW1lJztcbiAgQElucHV0KCkgZmlsdGVyQ29sdW1uOiBzdHJpbmcgPSAnbmFtZSc7XG5cbiAgQElucHV0KCkgc3RhcnRDb3VudDogc3RyaW5nID0gJy0nO1xuICBASW5wdXQoKSBlbmRDb3VudDogc3RyaW5nID0gJy0nO1xuICBASW5wdXQoKSB0b3RhbENvdW50OiBzdHJpbmcgPSAnLSc7XG4gIEBJbnB1dCgpIGN1cnJlbnRQYWdlOiBudW1iZXIgPSAxO1xuXG4gIGZpbHRlcmluZyA9IGZhbHNlO1xuICBmaWx0ZXJTdHJpbmcgPSAnJztcbiAgaW5wdXRDaGFuZ2VkRGVib3VuY2VkID0gZGVib3VuY2UodGhpcy5pbnB1dENoYW5nZWQuYmluZCh0aGlzKSwgNDAwKTtcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgZmlsdGVyU2VydmljZTogRGF0YVRhYmxlRmlsdGVyU2VydmljZSkge1xuICAgIHRoaXMuZmlsdGVyU2VydmljZS5maWx0ZXJzQ2hhbmdlZC5zdWJzY3JpYmUoZmlsdGVycyA9PiB7XG4gICAgICB0aGlzLl9maWx0ZXJzID0gZmlsdGVycy5maWx0ZXIoKGZpbHRlcjogYW55KSA9PiB7XG4gICAgICAgIHJldHVybiBmaWx0ZXIuaGlkZGVuICE9PSB0cnVlO1xuICAgICAgfSk7XG4gICAgICBsZXQgdG1wID0gJyc7XG4gICAgICBmb3IgKGxldCBpZHggPSAwOyBpZHggPCBmaWx0ZXJzLmxlbmd0aDsgaWR4KyspIHtcbiAgICAgICAgaWYgKGZpbHRlcnNbaWR4XS5jb2x1bW5JZCA9PT0gdGhpcy5maWx0ZXJDb2x1bW4pIHtcbiAgICAgICAgICB0bXAgPSBmaWx0ZXJzW2lkeF0udmFsdWU7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHRoaXMuZmlsdGVyU3RyaW5nID0gdG1wO1xuICAgIH0pO1xuICAgIHRoaXMuZmlsdGVyU2VydmljZS5maWx0ZXJpbmcuc3Vic2NyaWJlKChmaWx0ZXJpbmcpID0+IHtcbiAgICAgIHRoaXMuZmlsdGVyaW5nID0gZmlsdGVyaW5nO1xuICAgIH0pO1xuICB9XG5cbiAgbmV4dFBhZ2UoKSB7XG4gICAgdGhpcy5jdXJyZW50UGFnZSsrO1xuICAgIHRoaXMuZmlsdGVyU2VydmljZS5jaGFuZ2VQYWdlKHRoaXMuY3VycmVudFBhZ2UpO1xuICB9XG5cbiAgcHJldlBhZ2UoKSB7XG4gICAgdGhpcy5jdXJyZW50UGFnZS0tO1xuICAgIHRoaXMuZmlsdGVyU2VydmljZS5jaGFuZ2VQYWdlKHRoaXMuY3VycmVudFBhZ2UpO1xuICB9XG5cbiAgZ2V0IG5leHREaXNhYmxlZCgpIHtcbiAgICBpZiAoIWlzTnVtYmVyKHRoaXMudG90YWxDb3VudCkgfHwgIWlzTnVtYmVyKHRoaXMuZW5kQ291bnQpIHx8IHRoaXMuZmlsdGVyaW5nKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgY29uc3QgdG90YWw6IGFueSA9IE51bWJlci5wYXJzZUludCh0aGlzLnRvdGFsQ291bnQpO1xuICAgIGNvbnN0IGVuZDogYW55ID0gTnVtYmVyLnBhcnNlSW50KHRoaXMuZW5kQ291bnQpO1xuICAgIHJldHVybiBlbmQgPj0gdG90YWw7XG4gIH1cblxuICBnZXQgcHJldkRpc2FibGVkKCkge1xuICAgIGlmICghaXNOdW1iZXIodGhpcy5zdGFydENvdW50KSB8fCAhaXNOdW1iZXIodGhpcy50b3RhbENvdW50KSB8fCB0aGlzLmZpbHRlcmluZykge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGNvbnN0IHN0YXJ0ID0gTnVtYmVyLnBhcnNlSW50KHRoaXMuc3RhcnRDb3VudCwgMTApO1xuICAgIHJldHVybiBzdGFydCA8PSAxO1xuICB9XG5cbiAgaW5wdXRDaGFuZ2VkKCkge1xuICAgIHRoaXMuY3VycmVudFBhZ2UgPSAxO1xuICAgIHRoaXMuZmlsdGVyU2VydmljZS5jdXJyZW50UGFnZSA9IHRoaXMuY3VycmVudFBhZ2U7XG4gICAgY29uc3QgZmlsdGVyT2JqOiBGaWx0ZXJPYmogPSB7XG4gICAgICBmaWx0ZXJOYW1lOiB0aGlzLmZpbHRlck5hbWUsXG4gICAgICBjb2x1bW5JZDogdGhpcy5maWx0ZXJDb2x1bW4sXG4gICAgICB2YWx1ZTogdGhpcy5maWx0ZXJTdHJpbmcsXG4gICAgICBsYWJlbDogdGhpcy5maWx0ZXJTdHJpbmcsXG4gICAgfTtcbiAgICB0aGlzLmZpbHRlclNlcnZpY2UudXBkYXRlRmlsdGVyKGZpbHRlck9iailcbiAgfVxuXG5cbiAgcmVtb3ZlRmlsdGVyKGZpbHRlck9iajogRmlsdGVyT2JqKSB7XG4gICAgdGhpcy5maWx0ZXJTZXJ2aWNlLnJlbW92ZUZpbHRlcihmaWx0ZXJPYmopO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZmlsdGVyc1wiPlxuICAgIDxpbnB1dFxuICAgICAgICBpZD1cIlNlYXJjaEZpbHRlclwiXG4gICAgICAgIGRhdGEtZGVmaW5lZD1cInNlYXJjaFwiXG4gICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgY2xhc3M9XCJzZWFyY2hcIlxuICAgICAgICBwbGFjZWhvbGRlcj1cIlR5cGUgdG8gRmlsdGVyXCJcbiAgICAgICAgKGtleXVwKT1cImlucHV0Q2hhbmdlZERlYm91bmNlZCgpXCJcbiAgICAgICAgWyhuZ01vZGVsKV09XCJmaWx0ZXJTdHJpbmdcIlxuICAgIC8+XG4gICAgPGRpdiBjbGFzcz1cImNsZWFyIGljb24tY2xlYXJcIiBkYXRhLWRlZmluZWQ9XCJjbGVhclwiPjwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJzZWFyY2hCdXR0b24gaWNvbi1zZWFyY2hcIj48L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiZmlsdGVyZWQtY29sdW1ucy1saXN0XCIgaWQ9XCJDb2x1bW5GaWx0ZXJDb250YWluZXJcIj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJyZW1vdmVGaWx0ZXIoZmlsdGVyKVwiXG4gICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGZpbHRlciBvZiBfZmlsdGVyc1wiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmaWx0ZXJlZC1jb2x1bW4taXRlbSBhZy1kbmQtZ2hvc3QgYWctdW5zZWxlY3RhYmxlIGFnLXRoZW1lLWFscGluZVwiXG4gICAgICAgICAgICAgICAgaWQ9XCJDb2x1bW5WaXNpYmlsaXR5X3t7IGZpbHRlci5maWx0ZXJOYW1lIH19XCJcbiAgICAgICAgICAgICAgICB0aXRsZT1cIlJlbW92ZSBmaWx0ZXJcIlxuICAgICAgICA+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImFnLWRuZC1naG9zdC1pY29uXCI+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJhZy1pY29uIGFnLWljb24tZmlsdGVyXCI+PC9zcGFuPlxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFnLWRuZC1naG9zdC1sYWJlbFwiPnt7IGZpbHRlci5maWx0ZXJOYW1lIH19OiB7eyBmaWx0ZXIubGFiZWwgfX08L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImNvdW50ZXJzXCI+PHNwYW4gaWQ9XCJTdGFydFwiPnt7c3RhcnRDb3VudH19PC9zcGFuPi08c3BhbiBpZD1cIkVuZFwiPnt7ZW5kQ291bnR9fTwvc3Bhbj4gb2YgPHNwYW4gaWQ9XCJUb3RhbFwiPnt7dG90YWxDb3VudH19PC9zcGFuPjwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJuYXZpZ2F0ZSBwcmV2IGljb24tcHJldlwiIFtuZ0NsYXNzXT1cIntkaXNhYmxlZDogcHJldkRpc2FibGVkfVwiIChjbGljayk9XCJwcmV2UGFnZSgpXCI+PC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cIm5hdmlnYXRlIG5leHQgaWNvbi1uZXh0XCIgW25nQ2xhc3NdPVwie2Rpc2FibGVkOiBuZXh0RGlzYWJsZWR9XCIgKGNsaWNrKT1cIm5leHRQYWdlKClcIj48L2Rpdj5cbjwvZGl2PlxuIl19
@@ -0,0 +1,147 @@
1
+ import { Component, EventEmitter, Input, Output, Inject } from '@angular/core';
2
+ import { ProjectableForm } from "../projectable-form.class";
3
+ import { isEmpty } from 'lodash';
4
+ import moment from "moment";
5
+ import { SETTINGS_SERVICE } from "../../../services/settings.service";
6
+ import { ZITI_DATA_SERVICE } from "../../../services/ziti-data.service";
7
+ import { MatDialogRef } from "@angular/material/dialog";
8
+ import { SHAREDZ_EXTENSION } from "../../extendable/extensions-noop.service";
9
+ import { APISession } from "../../../models/api-session";
10
+ import * as i0 from "@angular/core";
11
+ import * as i1 from "./api-session-form.service";
12
+ import * as i2 from "../../messaging/growler.service";
13
+ import * as i3 from "@angular/router";
14
+ import * as i4 from "@angular/common";
15
+ import * as i5 from "../form-header/form-header.component";
16
+ import * as i6 from "../form-field-container/form-field-container.component";
17
+ import * as i7 from "../../loading-indicator/loading-indicator.component";
18
+ import * as i8 from "../../json-view/json-view.component";
19
+ import * as i9 from "../../../services/settings.service";
20
+ import * as i10 from "../../../services/ziti-data.service";
21
+ class APISessionFormComponent extends ProjectableForm {
22
+ constructor(settingsService, svc, zitiService, growlerService, extService, router, route, location) {
23
+ super(growlerService, extService, zitiService, router, route, location, settingsService);
24
+ this.settingsService = settingsService;
25
+ this.svc = svc;
26
+ this.zitiService = zitiService;
27
+ this.router = router;
28
+ this.route = route;
29
+ this.formData = {};
30
+ this.edgeRouterRoleAttributes = [];
31
+ this.close = new EventEmitter();
32
+ this.headerToggle = false;
33
+ this.entityType = 'api-sessions';
34
+ this.entityClass = APISession;
35
+ this.moment = moment;
36
+ this.associatedIdentity = {};
37
+ this.formView = 'simple';
38
+ this.isEditing = false;
39
+ this.servicesLoading = false;
40
+ this.identityLoading = false;
41
+ this.authPolicies = [
42
+ { id: 'default', name: 'Default' }
43
+ ];
44
+ this.associatedEdgeRouters = [];
45
+ this.associatedServicePolicies = [];
46
+ this.settings = {};
47
+ this._apiData = {};
48
+ }
49
+ ngOnInit() {
50
+ super.ngOnInit();
51
+ this.subscription.add(this.settingsService.settingsChange.subscribe((results) => {
52
+ this.settings = results;
53
+ }));
54
+ this.subscription.add(this.extService.formDataChanged.subscribe((data) => {
55
+ if (data.isEmpty) {
56
+ return;
57
+ }
58
+ this.formData = data || {};
59
+ }));
60
+ }
61
+ identityNameLinkClicked(event) {
62
+ this.router.navigateByUrl('/identities/' + this.formData?.identity?.id);
63
+ event.preventDefault();
64
+ }
65
+ ngOnDestroy() {
66
+ this.extService.closed.emit({});
67
+ this.subscription.unsubscribe();
68
+ }
69
+ ngOnChanges(changes) {
70
+ this.isEditing = !isEmpty(this.formData.id);
71
+ }
72
+ get hasEnrolmentToken() {
73
+ return !isEmpty(this.formData.enrollmentJwt) || !isEmpty(this.formData.enrollmentToken);
74
+ }
75
+ headerActionRequested(action) {
76
+ switch (action.name) {
77
+ case 'save':
78
+ this.save();
79
+ break;
80
+ case 'close':
81
+ this.closeForm();
82
+ break;
83
+ case 'toggle-view':
84
+ this.formView = action.data;
85
+ break;
86
+ }
87
+ }
88
+ async save(event) { }
89
+ get apiCallURL() {
90
+ return this.settings.selectedEdgeController + '/edge/management/v1/sessions' + (this.formData.id ? `/${this.formData.id}` : '');
91
+ }
92
+ get apiData() {
93
+ const data = {
94
+ name: this.formData?.name || '',
95
+ appData: this.formData?.appData || '',
96
+ roleAttributes: this.formData.roleAttributes || '',
97
+ isTunnelerEnabled: this.formData.isTunnelerEnabled,
98
+ noTraversal: this.formData.noTraversal,
99
+ cost: this.formData.cost || '0',
100
+ tags: this.formData.tags || ''
101
+ };
102
+ if (!this.isEditing) {
103
+ data.enrollment = this.formData.enrollment || { ott: true };
104
+ }
105
+ return data;
106
+ }
107
+ set apiData(data) {
108
+ this._apiData = data;
109
+ }
110
+ clear() {
111
+ }
112
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: APISessionFormComponent, deps: [{ token: SETTINGS_SERVICE }, { token: i1.APISessionFormService }, { token: ZITI_DATA_SERVICE }, { token: i2.GrowlerService }, { token: SHAREDZ_EXTENSION }, { token: i3.Router }, { token: i3.ActivatedRoute }, { token: i4.Location }], target: i0.ɵɵFactoryTarget.Component }); }
113
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: APISessionFormComponent, selector: "lib-sessions-form", inputs: { formData: "formData", edgeRouterRoleAttributes: "edgeRouterRoleAttributes", headerToggle: "headerToggle" }, outputs: { close: "close" }, providers: [
114
+ {
115
+ provide: MatDialogRef,
116
+ useValue: {}
117
+ }
118
+ ], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"projectable-form-wrapper api-session-form-wrapper\"\n (keyup.enter)=\"save($event)\"\n (keyup.escape)=\"closeModal(false)\"\n>\n <lib-form-header\n [data]=\"formData\"\n [title]=\"'API Session Details'\"\n [moreActions]=\"moreActions\"\n (actionRequested)=\"headerActionRequested($event)\"\n [(formView)]=\"formView\"\n [showHeaderButton]=\"false\"\n ></lib-form-header>\n <div class=\"edge-router-form-container projectable-form-container\">\n <div class=\"projectable-form-main-column form-group-row\" *ngIf=\"formView === 'simple'\">\n <div class=\"form-group-column\">\n <lib-form-field-container [showHeader]=\"false\">\n <div class=\"form-field-label-container\">\n <div class=\"form-field-title-container\">\n <span class=\"form-field-title\">ID</span>\n </div>\n <div class=\"config-container\">\n <span>{{formData.id}}</span>\n </div>\n </div>\n <div class=\"form-field-label-container\">\n <div class=\"form-field-title-container\">\n <span class=\"form-field-title\">Identity Name</span>\n </div>\n <a class=\"form-field-link\" [href]=\"'./services/' + formData.identity.id\" (click)=\"identityNameLinkClicked($event)\">\n <div class=\"config-container config-container-clickable\">\n <span>{{formData.identity.name}}</span>\n </div>\n </a>\n </div>\n <div class=\"form-field-label-container\">\n <div class=\"form-field-title-container\">\n <span class=\"form-field-title\">IP Address</span>\n </div>\n <div class=\"config-container\">\n <span>{{formData.ipAddress}}</span>\n </div>\n </div>\n <div class=\"form-field-label-container\">\n <div class=\"form-field-title-container\">\n <span class=\"form-field-title\">Created At</span>\n </div>\n <div class=\"config-container\">\n <span>{{moment(formData.createdAt).format(\"M/D/YYYY h:mm A\")}}</span>\n </div>\n </div>\n <div class=\"form-field-label-container\">\n <div class=\"form-field-title-container\">\n <span class=\"form-field-title\">Updated At</span>\n </div>\n <div class=\"config-container\">\n <span>{{moment(formData.updatedAt).format(\"M/D/YYYY h:mm A\")}}</span>\n </div>\n </div>\n <div class=\"form-field-label-container\">\n <div class=\"form-field-title-container\">\n <span class=\"form-field-title\">Last Activity</span>\n </div>\n <div class=\"config-container\">\n <span>{{moment(formData.lastActivity).format(\"M/D/YYYY h:mm A\")}}</span>\n </div>\n </div>\n </lib-form-field-container>\n <ng-content select=\"[slot=column-1-slot-1]\"></ng-content>\n </div>\n </div>\n <div class=\"form-group-column\" *ngIf=\"formView === 'raw'\">\n <lib-json-view *ngIf=\"formData\" [(data)]=\"formData\"></lib-json-view>\n </div>\n </div>\n</div>\n<lib-loading-indicator *ngIf=\"isLoading\" [isLoading]=\"isLoading\"></lib-loading-indicator>\n", styles: ["::ng-deep .api-session-form-wrapper .form-header-container{max-width:35rem!important}::ng-deep .api-session-form-wrapper .form-header-container .form-header-toggle-container{margin-right:0!important}.projectable-form-main-column.form-group-row{max-width:35rem}.form-field-dropdown{background-image:url(\"data:image/svg+xml,%3C%3Fxml version%3D%221.0%22 encoding%3D%22utf-8%22%3F%3E%3C!-- Generator%3A Adobe Illustrator 23.0.3%2C SVG Export Plug-In . SVG Version%3A 6.00 Build 0) --%3E%3Csvg id%3D'Stroke_Color' style%3D'enable-background%3Anew 0 0 20.2 10.8%3B' version%3D'1.1' viewBox%3D'0 0 20.2 10.8' x%3D'0px' xml%3Aspace%3D'preserve' xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg' y%3D'0px'%3E%3Cstyle type%3D'text%2Fcss'%3E%09.st0 %7B fill%3A %23668291%3B %7D%3C%2Fstyle%3E %3Cg%3E%09%3Cpath class%3D'st0' d%3D'M19.8%2C1.7c0%2C0.4-0.1%2C0.7-0.4%2C0.9l-8.5%2C7.3c-0.5%2C0.4-1.2%2C0.4-1.6%2C0L0.7%2C2.7C0.2%2C2.2%2C0.2%2C1.5%2C0.6%2C0.9%09%09c0.5-0.5%2C1.2-0.6%2C1.8-0.1l7.7%2C6.6l7.7-6.6c0.5-0.5%2C1.3-0.4%2C1.8%2C0.1C19.7%2C1.2%2C19.8%2C1.5%2C19.8%2C1.7z'%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E\");background-position:center right .625rem;background-repeat:no-repeat;background-size:1.125rem;padding-right:1.75rem}.disabled{opacity:.5;pointer-events:none}.config-item{max-height:var(--defaultInputHeight);margin-top:1.15rem}::ng-deep .admin-toggle{width:100%;width:35%;display:flex}::ng-deep .admin-toggle .form-field-line{display:none}::ng-deep .admin-toggle .toggle{width:100%}::ng-deep .is-admin-container .form-field-title-container.title-container-2{width:35%!important}.svc-test-result{position:absolute;transition:var(--transition);height:0;width:100%;background-color:var(--background);bottom:0;font-weight:600;padding-left:.625rem;padding-right:.625rem;border-color:var(--inputBorder);border-style:solid;border-width:var(--inputBorderWidth);border-bottom-right-radius:var(--inputBorderRadius);border-bottom-left-radius:var(--inputBorderRadius);border-top-style:none}.svc-test-result.test-result-open{height:-moz-fit-content;height:fit-content;box-shadow:0 -.125rem .6875rem 0 var(--boxShadow);padding-bottom:.9375rem;padding-top:.9375rem}.svc-test-result .close.icon-close{top:.625rem;right:.625rem;font-size:1.125rem;height:1.125rem;width:1.125rem;line-height:1.125rem}::ng-deep .admin-toggle .form-field-toggle-container:focus .form-field-label{color:var(--primaryColor)}::ng-deep .admin-toggle .form-field-toggle-container:focus .form-field-line{border-color:var(--primaryColor)}::ng-deep .admin-toggle .form-field-toggle-container:focus .toggle{border-color:var(--primaryColor);border-style:solid;border-width:var(--inputBorderWidth)}::ng-deep .admin-toggle .form-field-toggle-container:focus .toggle .switch{top:.0625rem}.entity-name-and-spinner{display:flex;flex-direction:row;align-items:center;justify-content:flex-start}.spinner{border-right-color:var(--formBase);border-top-color:var(--formBase)}\n"], dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.FormHeaderComponent, selector: "lib-form-header", inputs: ["data", "badges", "title", "moreActions", "formView", "saveDisabled", "saveTooltip", "actionButtonText", "moreActionsText", "showHeaderToggle", "showHeaderButton"], outputs: ["formViewChange", "actionRequested"] }, { kind: "component", type: i6.FormFieldContainerComponent, selector: "lib-form-field-container", inputs: ["title", "title2", "titleIcon", "layout", "helpText", "helpText2", "label", "count", "action", "actionLabel", "class", "contentStyle", "contentClass", "showHeader", "showToggle", "headerActions", "headerToggle"], outputs: ["actionRequested", "headerToggleChange"] }, { kind: "component", type: i7.LoadingIndicatorComponent, selector: "lib-loading-indicator", inputs: ["isLoading"] }, { kind: "component", type: i8.JsonViewComponent, selector: "lib-json-view", inputs: ["data", "schema", "readOnly", "jsonInvalid", "showCopy"], outputs: ["dataChange", "jsonChange", "jsonInvalidChange"] }] }); }
119
+ }
120
+ export { APISessionFormComponent };
121
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: APISessionFormComponent, decorators: [{
122
+ type: Component,
123
+ args: [{ selector: 'lib-sessions-form', providers: [
124
+ {
125
+ provide: MatDialogRef,
126
+ useValue: {}
127
+ }
128
+ ], template: "<div class=\"projectable-form-wrapper api-session-form-wrapper\"\n (keyup.enter)=\"save($event)\"\n (keyup.escape)=\"closeModal(false)\"\n>\n <lib-form-header\n [data]=\"formData\"\n [title]=\"'API Session Details'\"\n [moreActions]=\"moreActions\"\n (actionRequested)=\"headerActionRequested($event)\"\n [(formView)]=\"formView\"\n [showHeaderButton]=\"false\"\n ></lib-form-header>\n <div class=\"edge-router-form-container projectable-form-container\">\n <div class=\"projectable-form-main-column form-group-row\" *ngIf=\"formView === 'simple'\">\n <div class=\"form-group-column\">\n <lib-form-field-container [showHeader]=\"false\">\n <div class=\"form-field-label-container\">\n <div class=\"form-field-title-container\">\n <span class=\"form-field-title\">ID</span>\n </div>\n <div class=\"config-container\">\n <span>{{formData.id}}</span>\n </div>\n </div>\n <div class=\"form-field-label-container\">\n <div class=\"form-field-title-container\">\n <span class=\"form-field-title\">Identity Name</span>\n </div>\n <a class=\"form-field-link\" [href]=\"'./services/' + formData.identity.id\" (click)=\"identityNameLinkClicked($event)\">\n <div class=\"config-container config-container-clickable\">\n <span>{{formData.identity.name}}</span>\n </div>\n </a>\n </div>\n <div class=\"form-field-label-container\">\n <div class=\"form-field-title-container\">\n <span class=\"form-field-title\">IP Address</span>\n </div>\n <div class=\"config-container\">\n <span>{{formData.ipAddress}}</span>\n </div>\n </div>\n <div class=\"form-field-label-container\">\n <div class=\"form-field-title-container\">\n <span class=\"form-field-title\">Created At</span>\n </div>\n <div class=\"config-container\">\n <span>{{moment(formData.createdAt).format(\"M/D/YYYY h:mm A\")}}</span>\n </div>\n </div>\n <div class=\"form-field-label-container\">\n <div class=\"form-field-title-container\">\n <span class=\"form-field-title\">Updated At</span>\n </div>\n <div class=\"config-container\">\n <span>{{moment(formData.updatedAt).format(\"M/D/YYYY h:mm A\")}}</span>\n </div>\n </div>\n <div class=\"form-field-label-container\">\n <div class=\"form-field-title-container\">\n <span class=\"form-field-title\">Last Activity</span>\n </div>\n <div class=\"config-container\">\n <span>{{moment(formData.lastActivity).format(\"M/D/YYYY h:mm A\")}}</span>\n </div>\n </div>\n </lib-form-field-container>\n <ng-content select=\"[slot=column-1-slot-1]\"></ng-content>\n </div>\n </div>\n <div class=\"form-group-column\" *ngIf=\"formView === 'raw'\">\n <lib-json-view *ngIf=\"formData\" [(data)]=\"formData\"></lib-json-view>\n </div>\n </div>\n</div>\n<lib-loading-indicator *ngIf=\"isLoading\" [isLoading]=\"isLoading\"></lib-loading-indicator>\n", styles: ["::ng-deep .api-session-form-wrapper .form-header-container{max-width:35rem!important}::ng-deep .api-session-form-wrapper .form-header-container .form-header-toggle-container{margin-right:0!important}.projectable-form-main-column.form-group-row{max-width:35rem}.form-field-dropdown{background-image:url(\"data:image/svg+xml,%3C%3Fxml version%3D%221.0%22 encoding%3D%22utf-8%22%3F%3E%3C!-- Generator%3A Adobe Illustrator 23.0.3%2C SVG Export Plug-In . SVG Version%3A 6.00 Build 0) --%3E%3Csvg id%3D'Stroke_Color' style%3D'enable-background%3Anew 0 0 20.2 10.8%3B' version%3D'1.1' viewBox%3D'0 0 20.2 10.8' x%3D'0px' xml%3Aspace%3D'preserve' xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg' y%3D'0px'%3E%3Cstyle type%3D'text%2Fcss'%3E%09.st0 %7B fill%3A %23668291%3B %7D%3C%2Fstyle%3E %3Cg%3E%09%3Cpath class%3D'st0' d%3D'M19.8%2C1.7c0%2C0.4-0.1%2C0.7-0.4%2C0.9l-8.5%2C7.3c-0.5%2C0.4-1.2%2C0.4-1.6%2C0L0.7%2C2.7C0.2%2C2.2%2C0.2%2C1.5%2C0.6%2C0.9%09%09c0.5-0.5%2C1.2-0.6%2C1.8-0.1l7.7%2C6.6l7.7-6.6c0.5-0.5%2C1.3-0.4%2C1.8%2C0.1C19.7%2C1.2%2C19.8%2C1.5%2C19.8%2C1.7z'%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E\");background-position:center right .625rem;background-repeat:no-repeat;background-size:1.125rem;padding-right:1.75rem}.disabled{opacity:.5;pointer-events:none}.config-item{max-height:var(--defaultInputHeight);margin-top:1.15rem}::ng-deep .admin-toggle{width:100%;width:35%;display:flex}::ng-deep .admin-toggle .form-field-line{display:none}::ng-deep .admin-toggle .toggle{width:100%}::ng-deep .is-admin-container .form-field-title-container.title-container-2{width:35%!important}.svc-test-result{position:absolute;transition:var(--transition);height:0;width:100%;background-color:var(--background);bottom:0;font-weight:600;padding-left:.625rem;padding-right:.625rem;border-color:var(--inputBorder);border-style:solid;border-width:var(--inputBorderWidth);border-bottom-right-radius:var(--inputBorderRadius);border-bottom-left-radius:var(--inputBorderRadius);border-top-style:none}.svc-test-result.test-result-open{height:-moz-fit-content;height:fit-content;box-shadow:0 -.125rem .6875rem 0 var(--boxShadow);padding-bottom:.9375rem;padding-top:.9375rem}.svc-test-result .close.icon-close{top:.625rem;right:.625rem;font-size:1.125rem;height:1.125rem;width:1.125rem;line-height:1.125rem}::ng-deep .admin-toggle .form-field-toggle-container:focus .form-field-label{color:var(--primaryColor)}::ng-deep .admin-toggle .form-field-toggle-container:focus .form-field-line{border-color:var(--primaryColor)}::ng-deep .admin-toggle .form-field-toggle-container:focus .toggle{border-color:var(--primaryColor);border-style:solid;border-width:var(--inputBorderWidth)}::ng-deep .admin-toggle .form-field-toggle-container:focus .toggle .switch{top:.0625rem}.entity-name-and-spinner{display:flex;flex-direction:row;align-items:center;justify-content:flex-start}.spinner{border-right-color:var(--formBase);border-top-color:var(--formBase)}\n"] }]
129
+ }], ctorParameters: function () { return [{ type: i9.SettingsService, decorators: [{
130
+ type: Inject,
131
+ args: [SETTINGS_SERVICE]
132
+ }] }, { type: i1.APISessionFormService }, { type: i10.ZitiDataService, decorators: [{
133
+ type: Inject,
134
+ args: [ZITI_DATA_SERVICE]
135
+ }] }, { type: i2.GrowlerService }, { type: undefined, decorators: [{
136
+ type: Inject,
137
+ args: [SHAREDZ_EXTENSION]
138
+ }] }, { type: i3.Router }, { type: i3.ActivatedRoute }, { type: i4.Location }]; }, propDecorators: { formData: [{
139
+ type: Input
140
+ }], edgeRouterRoleAttributes: [{
141
+ type: Input
142
+ }], close: [{
143
+ type: Output
144
+ }], headerToggle: [{
145
+ type: Input
146
+ }] } });
147
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLXNlc3Npb24tZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy96aXRpLWNvbnNvbGUtbGliL3NyYy9saWIvZmVhdHVyZXMvcHJvamVjdGFibGUtZm9ybXMvYXBpLXNlc3Npb24vYXBpLXNlc3Npb24tZm9ybS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy96aXRpLWNvbnNvbGUtbGliL3NyYy9saWIvZmVhdHVyZXMvcHJvamVjdGFibGUtZm9ybXMvYXBpLXNlc3Npb24vYXBpLXNlc3Npb24tZm9ybS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBR0wsTUFBTSxFQUlOLE1BQU0sRUFDUCxNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFFMUQsT0FBTyxFQUFDLE9BQU8sRUFBd0MsTUFBTSxRQUFRLENBQUM7QUFDdEUsT0FBTyxNQUFNLE1BQU0sUUFBUSxDQUFDO0FBRTVCLE9BQU8sRUFBQyxnQkFBZ0IsRUFBa0IsTUFBTSxvQ0FBb0MsQ0FBQztBQUNyRixPQUFPLEVBQUMsaUJBQWlCLEVBQWtCLE1BQU0scUNBQXFDLENBQUM7QUFHdkYsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQ3RELE9BQU8sRUFBbUIsaUJBQWlCLEVBQUMsTUFBTSwwQ0FBMEMsQ0FBQztBQUk3RixPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sNkJBQTZCLENBQUM7Ozs7Ozs7Ozs7OztBQUV2RCxNQVdhLHVCQUF3QixTQUFRLGVBQWU7SUF5QjFELFlBQ2lELGVBQWdDLEVBQ3RFLEdBQTBCLEVBQ0csV0FBNEIsRUFDaEUsY0FBOEIsRUFDSCxVQUE0QixFQUNwQyxNQUFjLEVBQ2QsS0FB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QUFJLEVBQUMsQ0FBQztTQUMzRDtRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUdELElBQUksT0FBTyxDQUFDLElBQUk7UUFDZCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztJQUN2QixDQUFDO0lBRUQsS0FBSztJQUNMLENBQUM7K0dBbkhVLHVCQUF1QixrQkEwQnRCLGdCQUFnQixrREFFaEIsaUJBQWlCLDJDQUVqQixpQkFBaUI7bUdBOUJsQix1QkFBdUIsK0xBUHZCO1lBQ1Q7Z0JBQ0UsT0FBTyxFQUFFLFlBQVk7Z0JBQ3JCLFFBQVEsRUFBRSxFQUFFO2FBQ2I7U0FDRixzRUN0Q0gsZytIQTRFQTs7U0RwQ2EsdUJBQXVCOzRGQUF2Qix1QkFBdUI7a0JBWG5DLFNBQVM7K0JBQ0UsbUJBQW1CLGFBR2xCO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxZQUFZOzRCQUNyQixRQUFRLEVBQUUsRUFBRTt5QkFDYjtxQkFDRjs7MEJBNEJJLE1BQU07MkJBQUMsZ0JBQWdCOzswQkFFdkIsTUFBTTsyQkFBQyxpQkFBaUI7OzBCQUV4QixNQUFNOzJCQUFDLGlCQUFpQjtxSEE3QnBCLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csd0JBQXdCO3NCQUFoQyxLQUFLO2dCQUNJLEtBQUs7c0JBQWQsTUFBTTtnQkFDRSxZQUFZO3NCQUFwQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkluaXQsXG4gIE9uRGVzdHJveSxcbiAgT3V0cHV0LFxuICBPbkNoYW5nZXMsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIEFmdGVyVmlld0luaXQsXG4gIEluamVjdFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7U3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcbmltcG9ydCB7UHJvamVjdGFibGVGb3JtfSBmcm9tIFwiLi4vcHJvamVjdGFibGUtZm9ybS5jbGFzc1wiO1xuXG5pbXBvcnQge2lzRW1wdHksIGRlbGF5LCBjbG9uZURlZXAsIGlzRXF1YWwsIHNldCwgdW5zZXR9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgbW9tZW50IGZyb20gXCJtb21lbnRcIjtcblxuaW1wb3J0IHtTRVRUSU5HU19TRVJWSUNFLCBTZXR0aW5nc1NlcnZpY2V9IGZyb20gXCIuLi8uLi8uLi9zZXJ2aWNlcy9zZXR0aW5ncy5zZXJ2aWNlXCI7XG5pbXBvcnQge1pJVElfREFUQV9TRVJWSUNFLCBaaXRpRGF0YVNlcnZpY2V9IGZyb20gXCIuLi8uLi8uLi9zZXJ2aWNlcy96aXRpLWRhdGEuc2VydmljZVwiO1xuaW1wb3J0IHtHcm93bGVyU2VydmljZX0gZnJvbSBcIi4uLy4uL21lc3NhZ2luZy9ncm93bGVyLnNlcnZpY2VcIjtcbmltcG9ydCB7QVBJU2Vzc2lvbkZvcm1TZXJ2aWNlfSBmcm9tICcuL2FwaS1zZXNzaW9uLWZvcm0uc2VydmljZSc7XG5pbXBvcnQge01hdERpYWxvZ1JlZn0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2RpYWxvZ1wiO1xuaW1wb3J0IHtFeHRlbnNpb25TZXJ2aWNlLCBTSEFSRURaX0VYVEVOU0lPTn0gZnJvbSBcIi4uLy4uL2V4dGVuZGFibGUvZXh0ZW5zaW9ucy1ub29wLnNlcnZpY2VcIjtcbmltcG9ydCB7QWN0aXZhdGVkUm91dGUsIFJvdXRlcn0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xuaW1wb3J0IHtFZGdlUm91dGVyfSBmcm9tIFwiLi4vLi4vLi4vbW9kZWxzL2VkZ2Utcm91dGVyXCI7XG5pbXBvcnQge0xvY2F0aW9ufSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XG5pbXBvcnQge0FQSVNlc3Npb259IGZyb20gXCIuLi8uLi8uLi9tb2RlbHMvYXBpLXNlc3Npb25cIjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGliLXNlc3Npb25zLWZvcm0nLFxuICB0ZW1wbGF0ZVVybDogJy4vYXBpLXNlc3Npb24tZm9ybS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2FwaS1zZXNzaW9uLWZvcm0uY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTWF0RGlhbG9nUmVmLFxuICAgICAgdXNlVmFsdWU6IHt9XG4gICAgfVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIEFQSVNlc3Npb25Gb3JtQ29tcG9uZW50IGV4dGVuZHMgUHJvamVjdGFibGVGb3JtIGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSwgQWZ0ZXJWaWV3SW5pdCB7XG4gIEBJbnB1dCgpIGZvcm1EYXRhOiBhbnkgPSB7fTtcbiAgQElucHV0KCkgZWRnZVJvdXRlclJvbGVBdHRyaWJ1dGVzOiBhbnlbXSA9IFtdO1xuICBAT3V0cHV0KCkgY2xvc2U6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBJbnB1dCgpIGhlYWRlclRvZ2dsZSA9IGZhbHNlO1xuXG4gIG92ZXJyaWRlIGVudGl0eVR5cGUgPSAnYXBpLXNlc3Npb25zJztcbiAgb3ZlcnJpZGUgZW50aXR5Q2xhc3MgPSBBUElTZXNzaW9uO1xuXG4gIG1vbWVudCA9IG1vbWVudDtcblxuICBhc3NvY2lhdGVkSWRlbnRpdHk6IGFueSA9IHt9O1xuICBmb3JtVmlldyA9ICdzaW1wbGUnO1xuICBpc0VkaXRpbmcgPSBmYWxzZTtcbiAgc2VydmljZXNMb2FkaW5nID0gZmFsc2U7XG4gIGlkZW50aXR5TG9hZGluZyA9IGZhbHNlO1xuICBhdXRoUG9saWNpZXM6IGFueSA9IFtcbiAgICB7aWQ6ICdkZWZhdWx0JywgbmFtZTogJ0RlZmF1bHQnfVxuICBdO1xuXG4gIGFzc29jaWF0ZWRFZGdlUm91dGVycyA9IFtdO1xuICBhc3NvY2lhdGVkU2VydmljZVBvbGljaWVzID0gW107XG5cbiAgc2V0dGluZ3M6IGFueSA9IHt9O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgICAgQEluamVjdChTRVRUSU5HU19TRVJWSUNFKSBwcm90ZWN0ZWQgb3ZlcnJpZGUgc2V0dGluZ3NTZXJ2aWNlOiBTZXR0aW5nc1NlcnZpY2UsXG4gICAgICBwdWJsaWMgc3ZjOiBBUElTZXNzaW9uRm9ybVNlcnZpY2UsXG4gICAgICBASW5qZWN0KFpJVElfREFUQV9TRVJWSUNFKSBvdmVycmlkZSB6aXRpU2VydmljZTogWml0aURhdGFTZXJ2aWNlLFxuICAgICAgZ3Jvd2xlclNlcnZpY2U6IEdyb3dsZXJTZXJ2aWNlLFxuICAgICAgQEluamVjdChTSEFSRURaX0VYVEVOU0lPTikgZXh0U2VydmljZTogRXh0ZW5zaW9uU2VydmljZSxcbiAgICAgIHByb3RlY3RlZCBvdmVycmlkZSByb3V0ZXI6IFJvdXRlcixcbiAgICAgIHByb3RlY3RlZCBvdmVycmlkZSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgICBsb2NhdGlvbjogTG9jYXRpb25cbiAgKSB7XG4gICAgc3VwZXIoZ3Jvd2xlclNlcnZpY2UsIGV4dFNlcnZpY2UsIHppdGlTZXJ2aWNlLCByb3V0ZXIsIHJvdXRlLCBsb2NhdGlvbiwgc2V0dGluZ3NTZXJ2aWNlKTtcbiAgfVxuXG4gIG92ZXJyaWRlIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb24uYWRkKFxuICAgICAgdGhpcy5zZXR0aW5nc1NlcnZpY2Uuc2V0dGluZ3NDaGFuZ2Uuc3Vic2NyaWJlKChyZXN1bHRzOmFueSkgPT4ge1xuICAgICAgICB0aGlzLnNldHRpbmdzID0gcmVzdWx0cztcbiAgICAgIH0pXG4gICAgKTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbi5hZGQoXG4gICAgICB0aGlzLmV4dFNlcnZpY2UuZm9ybURhdGFDaGFuZ2VkLnN1YnNjcmliZSgoZGF0YSkgPT4ge1xuICAgICAgICBpZiAoZGF0YS5pc0VtcHR5KSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZm9ybURhdGEgPSBkYXRhIHx8IHt9O1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgaWRlbnRpdHlOYW1lTGlua0NsaWNrZWQoZXZlbnQpIHtcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKCcvaWRlbnRpdGllcy8nICsgdGhpcy5mb3JtRGF0YT8uaWRlbnRpdHk/LmlkKTtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5leHRTZXJ2aWNlLmNsb3NlZC5lbWl0KHt9KTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIHRoaXMuaXNFZGl0aW5nID0gIWlzRW1wdHkodGhpcy5mb3JtRGF0YS5pZCk7XG4gIH1cblxuICBnZXQgaGFzRW5yb2xtZW50VG9rZW4oKSB7XG4gICAgcmV0dXJuICFpc0VtcHR5KHRoaXMuZm9ybURhdGEuZW5yb2xsbWVudEp3dCkgfHwgIWlzRW1wdHkodGhpcy5mb3JtRGF0YS5lbnJvbGxtZW50VG9rZW4pO1xuICB9XG5cbiAgaGVhZGVyQWN0aW9uUmVxdWVzdGVkKGFjdGlvbikge1xuICAgIHN3aXRjaChhY3Rpb24ubmFtZSkge1xuICAgICAgY2FzZSAnc2F2ZSc6XG4gICAgICAgIHRoaXMuc2F2ZSgpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2Nsb3NlJzpcbiAgICAgICAgdGhpcy5jbG9zZUZvcm0oKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICd0b2dnbGUtdmlldyc6XG4gICAgICAgIHRoaXMuZm9ybVZpZXcgPSBhY3Rpb24uZGF0YTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgc2F2ZShldmVudD8pIHt9XG5cbiAgZ2V0IGFwaUNhbGxVUkwoKSB7XG4gICAgcmV0dXJuIHRoaXMuc2V0dGluZ3Muc2VsZWN0ZWRFZGdlQ29udHJvbGxlciArICcvZWRnZS9tYW5hZ2VtZW50L3YxL3Nlc3Npb25zJyArICh0aGlzLmZvcm1EYXRhLmlkID8gYC8ke3RoaXMuZm9ybURhdGEuaWR9YCA6ICcnKTtcbiAgfVxuXG4gIGdldCBhcGlEYXRhKCkge1xuICAgIGNvbnN0IGRhdGE6IGFueSA9IHtcbiAgICAgICAgICBuYW1lOiB0aGlzLmZvcm1EYXRhPy5uYW1lIHx8ICcnLFxuICAgICAgICAgIGFwcERhdGE6IHRoaXMuZm9ybURhdGE/LmFwcERhdGEgfHwgJycsXG4gICAgICAgICAgcm9sZUF0dHJpYnV0ZXM6IHRoaXMuZm9ybURhdGEucm9sZUF0dHJpYnV0ZXMgfHwgJycsXG4gICAgICAgICAgaXNUdW5uZWxlckVuYWJsZWQ6IHRoaXMuZm9ybURhdGEuaXNUdW5uZWxlckVuYWJsZWQsXG4gICAgICAgICAgbm9UcmF2ZXJzYWw6IHRoaXMuZm9ybURhdGEubm9UcmF2ZXJzYWwsXG4gICAgICAgICAgY29zdDogdGhpcy5mb3JtRGF0YS5jb3N0IHx8ICcwJyxcbiAgICAgICAgICB0YWdzOiB0aGlzLmZvcm1EYXRhLnRhZ3MgfHwgJydcbiAgICB9XG4gICAgaWYgKCF0aGlzLmlzRWRpdGluZykge1xuICAgICAgZGF0YS5lbnJvbGxtZW50ID0gdGhpcy5mb3JtRGF0YS5lbnJvbGxtZW50IHx8IHtvdHQ6IHRydWV9O1xuICAgIH1cbiAgICByZXR1cm4gZGF0YTtcbiAgfVxuXG4gIF9hcGlEYXRhID0ge307XG4gIHNldCBhcGlEYXRhKGRhdGEpIHtcbiAgICB0aGlzLl9hcGlEYXRhID0gZGF0YTtcbiAgfVxuXG4gIGNsZWFyKCk6IHZvaWQge1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwicHJvamVjdGFibGUtZm9ybS13cmFwcGVyIGFwaS1zZXNzaW9uLWZvcm0td3JhcHBlclwiXG4gICAgIChrZXl1cC5lbnRlcik9XCJzYXZlKCRldmVudClcIlxuICAgICAoa2V5dXAuZXNjYXBlKT1cImNsb3NlTW9kYWwoZmFsc2UpXCJcbj5cbiAgICA8bGliLWZvcm0taGVhZGVyXG4gICAgICAgIFtkYXRhXT1cImZvcm1EYXRhXCJcbiAgICAgICAgW3RpdGxlXT1cIidBUEkgU2Vzc2lvbiBEZXRhaWxzJ1wiXG4gICAgICAgIFttb3JlQWN0aW9uc109XCJtb3JlQWN0aW9uc1wiXG4gICAgICAgIChhY3Rpb25SZXF1ZXN0ZWQpPVwiaGVhZGVyQWN0aW9uUmVxdWVzdGVkKCRldmVudClcIlxuICAgICAgICBbKGZvcm1WaWV3KV09XCJmb3JtVmlld1wiXG4gICAgICAgIFtzaG93SGVhZGVyQnV0dG9uXT1cImZhbHNlXCJcbiAgICA+PC9saWItZm9ybS1oZWFkZXI+XG4gICAgPGRpdiBjbGFzcz1cImVkZ2Utcm91dGVyLWZvcm0tY29udGFpbmVyIHByb2plY3RhYmxlLWZvcm0tY29udGFpbmVyXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJwcm9qZWN0YWJsZS1mb3JtLW1haW4tY29sdW1uIGZvcm0tZ3JvdXAtcm93XCIgKm5nSWY9XCJmb3JtVmlldyA9PT0gJ3NpbXBsZSdcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwLWNvbHVtblwiPlxuICAgICAgICAgICAgICAgIDxsaWItZm9ybS1maWVsZC1jb250YWluZXIgW3Nob3dIZWFkZXJdPVwiZmFsc2VcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZmllbGQtbGFiZWwtY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1maWVsZC10aXRsZS1jb250YWluZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZvcm0tZmllbGQtdGl0bGVcIj5JRDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbmZpZy1jb250YWluZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj57e2Zvcm1EYXRhLmlkfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWZpZWxkLWxhYmVsLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZmllbGQtdGl0bGUtY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmb3JtLWZpZWxkLXRpdGxlXCI+SWRlbnRpdHkgTmFtZTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9XCJmb3JtLWZpZWxkLWxpbmtcIiBbaHJlZl09XCInLi9zZXJ2aWNlcy8nICsgZm9ybURhdGEuaWRlbnRpdHkuaWRcIiAoY2xpY2spPVwiaWRlbnRpdHlOYW1lTGlua0NsaWNrZWQoJGV2ZW50KVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb25maWctY29udGFpbmVyIGNvbmZpZy1jb250YWluZXItY2xpY2thYmxlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPnt7Zm9ybURhdGEuaWRlbnRpdHkubmFtZX19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZmllbGQtbGFiZWwtY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1maWVsZC10aXRsZS1jb250YWluZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZvcm0tZmllbGQtdGl0bGVcIj5JUCBBZGRyZXNzPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29uZmlnLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPnt7Zm9ybURhdGEuaXBBZGRyZXNzfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWZpZWxkLWxhYmVsLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZmllbGQtdGl0bGUtY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmb3JtLWZpZWxkLXRpdGxlXCI+Q3JlYXRlZCBBdDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbmZpZy1jb250YWluZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj57e21vbWVudChmb3JtRGF0YS5jcmVhdGVkQXQpLmZvcm1hdChcIk0vRC9ZWVlZIGg6bW0gQVwiKX19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1maWVsZC1sYWJlbC1jb250YWluZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWZpZWxkLXRpdGxlLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZm9ybS1maWVsZC10aXRsZVwiPlVwZGF0ZWQgQXQ8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb25maWctY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3ttb21lbnQoZm9ybURhdGEudXBkYXRlZEF0KS5mb3JtYXQoXCJNL0QvWVlZWSBoOm1tIEFcIil9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZmllbGQtbGFiZWwtY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1maWVsZC10aXRsZS1jb250YWluZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZvcm0tZmllbGQtdGl0bGVcIj5MYXN0IEFjdGl2aXR5PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29uZmlnLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPnt7bW9tZW50KGZvcm1EYXRhLmxhc3RBY3Rpdml0eSkuZm9ybWF0KFwiTS9EL1lZWVkgaDptbSBBXCIpfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9saWItZm9ybS1maWVsZC1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW3Nsb3Q9Y29sdW1uLTEtc2xvdC0xXVwiPjwvbmctY29udGVudD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXAtY29sdW1uXCIgKm5nSWY9XCJmb3JtVmlldyA9PT0gJ3JhdydcIj5cbiAgICAgICAgICAgIDxsaWItanNvbi12aWV3ICpuZ0lmPVwiZm9ybURhdGFcIiBbKGRhdGEpXT1cImZvcm1EYXRhXCI+PC9saWItanNvbi12aWV3PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuPGxpYi1sb2FkaW5nLWluZGljYXRvciAqbmdJZj1cImlzTG9hZGluZ1wiIFtpc0xvYWRpbmddPVwiaXNMb2FkaW5nXCI+PC9saWItbG9hZGluZy1pbmRpY2F0b3I+XG4iXX0=