@gravitee/ui-policy-studio-angular 15.13.0-angular-20-4a9d88b → 15.13.0-fix-cron-e0271bb

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 (171) hide show
  1. package/esm2022/gravitee-ui-policy-studio-angular.mjs +5 -0
  2. package/esm2022/lib/components/filter-pipe/gio-flter-connectors-by-mode.pipe.mjs +43 -0
  3. package/esm2022/lib/components/flow-details/gio-ps-flow-details.component.mjs +184 -0
  4. package/esm2022/lib/components/flow-details-info-bar/gio-ps-flow-details-info-bar.component.mjs +115 -0
  5. package/esm2022/lib/components/flow-details-phase/gio-ps-flow-details-phase.component.mjs +179 -0
  6. package/esm2022/lib/components/flow-details-phase-step/gio-ps-flow-details-phase-step.component.mjs +162 -0
  7. package/esm2022/lib/components/flow-execution-form-dialog/gio-ps-flow-execution-form-dialog.component.mjs +81 -0
  8. package/esm2022/lib/components/flow-form-dialog/flow-message-form-dialog/gio-ps-flow-message-form-dialog.component.mjs +109 -0
  9. package/esm2022/lib/components/flow-form-dialog/flow-native-form-dialog/gio-ps-flow-native-form-dialog.component.mjs +89 -0
  10. package/esm2022/lib/components/flow-form-dialog/flow-proxy-form-dialog/gio-ps-flow-proxy-form-dialog.component.mjs +135 -0
  11. package/esm2022/lib/components/flow-form-dialog/gio-ps-flow-form-dialog-result.model.mjs +2 -0
  12. package/esm2022/lib/components/flows-menu/gio-ps-flows-menu.component.mjs +432 -0
  13. package/esm2022/lib/components/policies-catalog-dialog/gio-ps-policies-catalog-dialog.component.mjs +165 -0
  14. package/esm2022/lib/components/step-edit-dialog/gio-ps-step-edit-dialog.component.mjs +53 -0
  15. package/esm2022/lib/components/step-form/gio-ps-step-form.component.mjs +158 -0
  16. package/esm2022/lib/models/ApiProtocolType.mjs +17 -0
  17. package/esm2022/lib/models/ApiType.mjs +17 -0
  18. package/esm2022/lib/models/ConnectorsInfo.mjs +2 -0
  19. package/esm2022/lib/models/PolicySchemaFetcher.mjs +2 -0
  20. package/esm2022/lib/models/SaveOutput.mjs +2 -0
  21. package/esm2022/lib/models/flow/Flow.mjs +2 -0
  22. package/esm2022/lib/models/flow/FlowExecution.mjs +17 -0
  23. package/esm2022/lib/models/flow/HttpMethod.mjs +43 -0
  24. package/esm2022/lib/models/flow/Selector.mjs +2 -0
  25. package/esm2022/lib/models/flow/Step.mjs +2 -0
  26. package/esm2022/lib/models/flow/index.mjs +21 -0
  27. package/esm2022/lib/models/index.mjs +24 -0
  28. package/esm2022/lib/models/plan/Plan.mjs +17 -0
  29. package/esm2022/lib/models/plan/index.mjs +17 -0
  30. package/esm2022/lib/models/policy/GenericPolicy.mjs +24 -0
  31. package/esm2022/lib/models/policy/Policy.mjs +44 -0
  32. package/esm2022/lib/models/policy/SharedPolicyGroupPolicy.mjs +17 -0
  33. package/esm2022/lib/models/policy/index.mjs +19 -0
  34. package/esm2022/lib/policy-group-studio/gio-policy-group-studio.component.mjs +228 -0
  35. package/esm2022/lib/policy-studio/gio-policy-studio.component.mjs +304 -0
  36. package/esm2022/lib/policy-studio/gio-policy-studio.model.mjs +17 -0
  37. package/esm2022/lib/policy-studio/gio-policy-studio.service.mjs +74 -0
  38. package/esm2022/public-api.mjs +22 -0
  39. package/esm2022/testing/gravitee-ui-policy-studio-angular-testing.mjs +5 -0
  40. package/esm2022/testing/lib/components/flow-details/gio-ps-flow-details.harness.mjs +56 -0
  41. package/esm2022/testing/lib/components/flow-details-info-bar/gio-ps-flow-details-info-bar.harness.mjs +35 -0
  42. package/esm2022/testing/lib/components/flow-details-phase/gio-ps-flow-details-phase.harness.mjs +155 -0
  43. package/esm2022/testing/lib/components/flow-details-phase-step/gio-ps-flow-details-phase-step.harness.mjs +69 -0
  44. package/esm2022/testing/lib/components/flow-execution-form-dialog/gio-ps-flow-execution-form-dialog.harness.mjs +60 -0
  45. package/esm2022/testing/lib/components/flow-form-dialog/flow-message-form-dialog/gio-ps-flow-message-form-dialog.harness.mjs +128 -0
  46. package/esm2022/testing/lib/components/flow-form-dialog/flow-native-form-dialog/gio-ps-flow-native-form-dialog.harness.mjs +50 -0
  47. package/esm2022/testing/lib/components/flow-form-dialog/flow-proxy-form-dialog/gio-ps-flow-proxy-form-dialog.harness.mjs +98 -0
  48. package/esm2022/testing/lib/components/flows-menu/gio-ps-flows-menu.harness.mjs +91 -0
  49. package/esm2022/testing/lib/components/policies-catalog-dialog/gio-ps-policies-catalog-dialog.harness.mjs +87 -0
  50. package/esm2022/testing/lib/components/step-edit-dialog/gio-ps-step-edit-dialog.harness.mjs +30 -0
  51. package/esm2022/testing/lib/components/step-form/gio-ps-step-form.harness.mjs +56 -0
  52. package/esm2022/testing/lib/models/ApiProtocolType.mjs +17 -0
  53. package/esm2022/testing/lib/models/ApiType.mjs +17 -0
  54. package/esm2022/testing/lib/models/ConnectorsInfo.fixture.mjs +182 -0
  55. package/esm2022/testing/lib/models/ConnectorsInfo.mjs +2 -0
  56. package/esm2022/testing/lib/models/PolicySchemaFetcher.mjs +2 -0
  57. package/esm2022/testing/lib/models/SaveOutput.mjs +2 -0
  58. package/esm2022/testing/lib/models/flow/Flow.fixture.mjs +122 -0
  59. package/esm2022/testing/lib/models/flow/Flow.mjs +2 -0
  60. package/esm2022/testing/lib/models/flow/FlowExecution.fixture.mjs +43 -0
  61. package/esm2022/testing/lib/models/flow/FlowExecution.mjs +17 -0
  62. package/esm2022/testing/lib/models/flow/HttpMethod.mjs +43 -0
  63. package/esm2022/testing/lib/models/flow/Selector.mjs +2 -0
  64. package/esm2022/testing/lib/models/flow/Step.fixture.mjs +92 -0
  65. package/esm2022/testing/lib/models/flow/Step.mjs +2 -0
  66. package/esm2022/testing/lib/models/flow/index-testing.mjs +19 -0
  67. package/esm2022/testing/lib/models/flow/index.mjs +21 -0
  68. package/esm2022/testing/lib/models/index-testing.mjs +20 -0
  69. package/esm2022/testing/lib/models/index.mjs +24 -0
  70. package/esm2022/testing/lib/models/plan/Plan.fixture.mjs +31 -0
  71. package/esm2022/testing/lib/models/plan/Plan.mjs +17 -0
  72. package/esm2022/testing/lib/models/plan/index-testing.mjs +17 -0
  73. package/esm2022/testing/lib/models/plan/index.mjs +17 -0
  74. package/esm2022/testing/lib/models/policy/GenericPolicy.mjs +24 -0
  75. package/esm2022/testing/lib/models/policy/Policy.fixture.mjs +194 -0
  76. package/esm2022/testing/lib/models/policy/Policy.mjs +44 -0
  77. package/esm2022/testing/lib/models/policy/SharedPolicyGroupPolicy.mjs +17 -0
  78. package/esm2022/testing/lib/models/policy/index-testing.mjs +17 -0
  79. package/esm2022/testing/lib/models/policy/index.mjs +19 -0
  80. package/esm2022/testing/lib/policy-group-studio/gio-policy-group-studio.harness.mjs +52 -0
  81. package/esm2022/testing/lib/policy-studio/gio-policy-studio.harness.mjs +202 -0
  82. package/esm2022/testing/lib/policy-studio/gio-policy-studio.model.mjs +17 -0
  83. package/esm2022/testing/public-testing-api.mjs +19 -0
  84. package/fesm2022/gravitee-ui-policy-studio-angular-testing.mjs +1 -1
  85. package/fesm2022/gravitee-ui-policy-studio-angular-testing.mjs.map +1 -1
  86. package/fesm2022/gravitee-ui-policy-studio-angular.mjs +95 -92
  87. package/fesm2022/gravitee-ui-policy-studio-angular.mjs.map +1 -1
  88. package/index.d.ts +3 -404
  89. package/lib/components/filter-pipe/gio-flter-connectors-by-mode.pipe.d.ts +8 -0
  90. package/lib/components/flow-details/gio-ps-flow-details.component.d.ts +29 -0
  91. package/lib/components/flow-details-info-bar/gio-ps-flow-details-info-bar.component.d.ts +20 -0
  92. package/lib/components/flow-details-phase/gio-ps-flow-details-phase.component.d.ts +47 -0
  93. package/lib/components/flow-details-phase-step/gio-ps-flow-details-phase-step.component.d.ts +33 -0
  94. package/lib/components/flow-execution-form-dialog/gio-ps-flow-execution-form-dialog.component.d.ts +18 -0
  95. package/lib/components/flow-form-dialog/flow-message-form-dialog/gio-ps-flow-message-form-dialog.component.d.ts +21 -0
  96. package/lib/components/flow-form-dialog/flow-native-form-dialog/gio-ps-flow-native-form-dialog.component.d.ts +21 -0
  97. package/lib/components/flow-form-dialog/flow-proxy-form-dialog/gio-ps-flow-proxy-form-dialog.component.d.ts +24 -0
  98. package/lib/components/flow-form-dialog/gio-ps-flow-form-dialog-result.model.d.ts +2 -0
  99. package/lib/components/flows-menu/gio-ps-flows-menu.component.d.ts +57 -0
  100. package/lib/components/policies-catalog-dialog/gio-ps-policies-catalog-dialog.component.d.ts +47 -0
  101. package/lib/components/step-edit-dialog/gio-ps-step-edit-dialog.component.d.ts +24 -0
  102. package/lib/components/step-form/gio-ps-step-form.component.d.ts +35 -0
  103. package/lib/models/ApiProtocolType.d.ts +1 -0
  104. package/lib/models/ApiType.d.ts +1 -0
  105. package/lib/models/ConnectorsInfo.d.ts +7 -0
  106. package/lib/models/PolicySchemaFetcher.d.ts +5 -0
  107. package/lib/models/SaveOutput.d.ts +7 -0
  108. package/lib/models/flow/Flow.d.ts +24 -0
  109. package/lib/models/flow/FlowExecution.d.ts +11 -0
  110. package/lib/models/flow/HttpMethod.d.ts +3 -0
  111. package/lib/models/flow/Selector.d.ts +37 -0
  112. package/lib/models/flow/Step.d.ts +34 -0
  113. package/lib/models/flow/index.d.ts +5 -0
  114. package/lib/models/index.d.ts +8 -0
  115. package/lib/models/plan/Plan.d.ts +6 -0
  116. package/lib/models/plan/index.d.ts +1 -0
  117. package/lib/models/policy/GenericPolicy.d.ts +22 -0
  118. package/lib/models/policy/Policy.d.ts +28 -0
  119. package/lib/models/policy/SharedPolicyGroupPolicy.d.ts +11 -0
  120. package/lib/models/policy/index.d.ts +3 -0
  121. package/lib/policy-group-studio/gio-policy-group-studio.component.d.ts +70 -0
  122. package/lib/policy-studio/gio-policy-studio.component.d.ts +98 -0
  123. package/lib/policy-studio/gio-policy-studio.model.d.ts +17 -0
  124. package/lib/policy-studio/gio-policy-studio.service.d.ts +30 -0
  125. package/package.json +11 -7
  126. package/public-api.d.ts +3 -0
  127. package/testing/index.d.ts +3 -369
  128. package/testing/lib/components/flow-details/gio-ps-flow-details.harness.d.ts +12 -0
  129. package/testing/lib/components/flow-details-info-bar/gio-ps-flow-details-info-bar.harness.d.ts +5 -0
  130. package/testing/lib/components/flow-details-phase/gio-ps-flow-details-phase.harness.d.ts +69 -0
  131. package/testing/lib/components/flow-details-phase-step/gio-ps-flow-details-phase-step.harness.d.ts +21 -0
  132. package/testing/lib/components/flow-execution-form-dialog/gio-ps-flow-execution-form-dialog.harness.d.ts +13 -0
  133. package/testing/lib/components/flow-form-dialog/flow-message-form-dialog/gio-ps-flow-message-form-dialog.harness.d.ts +37 -0
  134. package/testing/lib/components/flow-form-dialog/flow-native-form-dialog/gio-ps-flow-native-form-dialog.harness.d.ts +17 -0
  135. package/testing/lib/components/flow-form-dialog/flow-proxy-form-dialog/gio-ps-flow-proxy-form-dialog.harness.d.ts +33 -0
  136. package/testing/lib/components/flows-menu/gio-ps-flows-menu.harness.d.ts +31 -0
  137. package/testing/lib/components/policies-catalog-dialog/gio-ps-policies-catalog-dialog.harness.d.ts +20 -0
  138. package/testing/lib/components/step-edit-dialog/gio-ps-step-edit-dialog.harness.d.ts +8 -0
  139. package/testing/lib/components/step-form/gio-ps-step-form.harness.d.ts +18 -0
  140. package/testing/lib/models/ApiProtocolType.d.ts +1 -0
  141. package/testing/lib/models/ApiType.d.ts +1 -0
  142. package/testing/lib/models/ConnectorsInfo.d.ts +7 -0
  143. package/testing/lib/models/ConnectorsInfo.fixture.d.ts +12 -0
  144. package/testing/lib/models/PolicySchemaFetcher.d.ts +5 -0
  145. package/testing/lib/models/SaveOutput.d.ts +7 -0
  146. package/testing/lib/models/flow/Flow.d.ts +24 -0
  147. package/testing/lib/models/flow/Flow.fixture.d.ts +6 -0
  148. package/testing/lib/models/flow/FlowExecution.d.ts +11 -0
  149. package/testing/lib/models/flow/FlowExecution.fixture.d.ts +3 -0
  150. package/testing/lib/models/flow/HttpMethod.d.ts +3 -0
  151. package/testing/lib/models/flow/Selector.d.ts +37 -0
  152. package/testing/lib/models/flow/Step.d.ts +34 -0
  153. package/testing/lib/models/flow/Step.fixture.d.ts +5 -0
  154. package/testing/lib/models/flow/index-testing.d.ts +3 -0
  155. package/testing/lib/models/flow/index.d.ts +5 -0
  156. package/testing/lib/models/index-testing.d.ts +4 -0
  157. package/testing/lib/models/index.d.ts +8 -0
  158. package/testing/lib/models/plan/Plan.d.ts +6 -0
  159. package/testing/lib/models/plan/Plan.fixture.d.ts +2 -0
  160. package/testing/lib/models/plan/index-testing.d.ts +1 -0
  161. package/testing/lib/models/plan/index.d.ts +1 -0
  162. package/testing/lib/models/policy/GenericPolicy.d.ts +22 -0
  163. package/testing/lib/models/policy/Policy.d.ts +28 -0
  164. package/testing/lib/models/policy/Policy.fixture.d.ts +4 -0
  165. package/testing/lib/models/policy/SharedPolicyGroupPolicy.d.ts +11 -0
  166. package/testing/lib/models/policy/index-testing.d.ts +1 -0
  167. package/testing/lib/models/policy/index.d.ts +3 -0
  168. package/testing/lib/policy-group-studio/gio-policy-group-studio.harness.d.ts +20 -0
  169. package/testing/lib/policy-studio/gio-policy-studio.harness.d.ts +78 -0
  170. package/testing/lib/policy-studio/gio-policy-studio.model.d.ts +17 -0
  171. package/testing/public-testing-api.d.ts +3 -0
@@ -0,0 +1,52 @@
1
+ /*
2
+ * Copyright (C) 2024 The Gravitee team (http://gravitee.io)
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ import { ComponentHarness } from '@angular/cdk/testing';
17
+ import { DivHarness } from '@gravitee/ui-particles-angular/testing';
18
+ import { MatButtonHarness } from '@angular/material/button/testing';
19
+ import { GioPolicyStudioDetailsPhaseHarness } from '../components/flow-details-phase/gio-ps-flow-details-phase.harness';
20
+ import { GioPolicyStudioPoliciesCatalogDialogHarness } from '../components/policies-catalog-dialog/gio-ps-policies-catalog-dialog.harness';
21
+ export class GioPolicyGroupStudioHarness extends ComponentHarness {
22
+ constructor() {
23
+ super(...arguments);
24
+ this.phaseHarness = () => this.locatorFor(GioPolicyStudioDetailsPhaseHarness)();
25
+ }
26
+ static { this.hostSelector = 'gio-policy-group-studio'; }
27
+ /**
28
+ * Get Policy Group phase harness
29
+ */
30
+ async getPolicyGroupPhase() {
31
+ return this.phaseHarness();
32
+ }
33
+ async clickAddStep(index) {
34
+ const addStepBtn = await this.locatorForAll(DivHarness.with({ selector: '.content__step' }))().then(divs => divs[index]);
35
+ await addStepBtn
36
+ .childLocatorFor(MatButtonHarness.with({ selector: '.content__step__addBtn' }))()
37
+ .then(btn => btn.click());
38
+ }
39
+ /**
40
+ * Add a step to a policy-group
41
+ * @param index Index where to add the step. (Add button index)
42
+ * @param stepConfig Step to add
43
+ */
44
+ async addStep(index, stepConfig) {
45
+ await this.clickAddStep(index);
46
+ const catalogDialog = await this.documentRootLocatorFactory().locatorFor(GioPolicyStudioPoliciesCatalogDialogHarness)();
47
+ await catalogDialog.selectPolicy(stepConfig.policyName);
48
+ await (await catalogDialog.getStepForm()).setStepForm(stepConfig);
49
+ await catalogDialog.clickAddPolicyButton();
50
+ }
51
+ }
52
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2lvLXBvbGljeS1ncm91cC1zdHVkaW8uaGFybmVzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLXBvbGljeS1zdHVkaW8tYW5ndWxhci9zcmMvbGliL3BvbGljeS1ncm91cC1zdHVkaW8vZ2lvLXBvbGljeS1ncm91cC1zdHVkaW8uaGFybmVzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUNILE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUNwRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUVwRSxPQUFPLEVBQUUsa0NBQWtDLEVBQUUsTUFBTSxvRUFBb0UsQ0FBQztBQUV4SCxPQUFPLEVBQUUsMkNBQTJDLEVBQUUsTUFBTSw4RUFBOEUsQ0FBQztBQUUzSSxNQUFNLE9BQU8sMkJBQTRCLFNBQVEsZ0JBQWdCO0lBQWpFOztRQUdVLGlCQUFZLEdBQUcsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxrQ0FBa0MsQ0FBQyxFQUFFLENBQUM7SUFxQ3JGLENBQUM7YUF2Q2UsaUJBQVksR0FBRyx5QkFBeUIsQUFBNUIsQ0FBNkI7SUFJdkQ7O09BRUc7SUFDSSxLQUFLLENBQUMsbUJBQW1CO1FBQzlCLE9BQU8sSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFTSxLQUFLLENBQUMsWUFBWSxDQUFDLEtBQWE7UUFDckMsTUFBTSxVQUFVLEdBQUcsTUFBTSxJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsRUFBRSxRQUFRLEVBQUUsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUV6SCxNQUFNLFVBQVU7YUFDYixlQUFlLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEVBQUUsUUFBUSxFQUFFLHdCQUF3QixFQUFFLENBQUMsQ0FBQyxFQUFFO2FBQ2hGLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksS0FBSyxDQUFDLE9BQU8sQ0FDbEIsS0FBYSxFQUNiLFVBRVk7UUFFWixNQUFNLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFL0IsTUFBTSxhQUFhLEdBQUcsTUFBTSxJQUFJLENBQUMsMEJBQTBCLEVBQUUsQ0FBQyxVQUFVLENBQUMsMkNBQTJDLENBQUMsRUFBRSxDQUFDO1FBQ3hILE1BQU0sYUFBYSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFeEQsTUFBTSxDQUFDLE1BQU0sYUFBYSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRWxFLE1BQU0sYUFBYSxDQUFDLG9CQUFvQixFQUFFLENBQUM7SUFDN0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKEMpIDIwMjQgVGhlIEdyYXZpdGVlIHRlYW0gKGh0dHA6Ly9ncmF2aXRlZS5pbylcbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5pbXBvcnQgeyBDb21wb25lbnRIYXJuZXNzIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3Rlc3RpbmcnO1xuaW1wb3J0IHsgRGl2SGFybmVzcyB9IGZyb20gJ0BncmF2aXRlZS91aS1wYXJ0aWNsZXMtYW5ndWxhci90ZXN0aW5nJztcbmltcG9ydCB7IE1hdEJ1dHRvbkhhcm5lc3MgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24vdGVzdGluZyc7XG5cbmltcG9ydCB7IEdpb1BvbGljeVN0dWRpb0RldGFpbHNQaGFzZUhhcm5lc3MgfSBmcm9tICcuLi9jb21wb25lbnRzL2Zsb3ctZGV0YWlscy1waGFzZS9naW8tcHMtZmxvdy1kZXRhaWxzLXBoYXNlLmhhcm5lc3MnO1xuaW1wb3J0IHsgU3RlcEZvcm0gfSBmcm9tICcuLi9jb21wb25lbnRzL3N0ZXAtZm9ybS9naW8tcHMtc3RlcC1mb3JtLmhhcm5lc3MnO1xuaW1wb3J0IHsgR2lvUG9saWN5U3R1ZGlvUG9saWNpZXNDYXRhbG9nRGlhbG9nSGFybmVzcyB9IGZyb20gJy4uL2NvbXBvbmVudHMvcG9saWNpZXMtY2F0YWxvZy1kaWFsb2cvZ2lvLXBzLXBvbGljaWVzLWNhdGFsb2ctZGlhbG9nLmhhcm5lc3MnO1xuXG5leHBvcnQgY2xhc3MgR2lvUG9saWN5R3JvdXBTdHVkaW9IYXJuZXNzIGV4dGVuZHMgQ29tcG9uZW50SGFybmVzcyB7XG4gIHB1YmxpYyBzdGF0aWMgaG9zdFNlbGVjdG9yID0gJ2dpby1wb2xpY3ktZ3JvdXAtc3R1ZGlvJztcblxuICBwcml2YXRlIHBoYXNlSGFybmVzcyA9ICgpID0+IHRoaXMubG9jYXRvckZvcihHaW9Qb2xpY3lTdHVkaW9EZXRhaWxzUGhhc2VIYXJuZXNzKSgpO1xuXG4gIC8qKlxuICAgKiBHZXQgUG9saWN5IEdyb3VwIHBoYXNlIGhhcm5lc3NcbiAgICovXG4gIHB1YmxpYyBhc3luYyBnZXRQb2xpY3lHcm91cFBoYXNlKCk6IFByb21pc2U8R2lvUG9saWN5U3R1ZGlvRGV0YWlsc1BoYXNlSGFybmVzcz4ge1xuICAgIHJldHVybiB0aGlzLnBoYXNlSGFybmVzcygpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGNsaWNrQWRkU3RlcChpbmRleDogbnVtYmVyKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgYWRkU3RlcEJ0biA9IGF3YWl0IHRoaXMubG9jYXRvckZvckFsbChEaXZIYXJuZXNzLndpdGgoeyBzZWxlY3RvcjogJy5jb250ZW50X19zdGVwJyB9KSkoKS50aGVuKGRpdnMgPT4gZGl2c1tpbmRleF0pO1xuXG4gICAgYXdhaXQgYWRkU3RlcEJ0blxuICAgICAgLmNoaWxkTG9jYXRvckZvcihNYXRCdXR0b25IYXJuZXNzLndpdGgoeyBzZWxlY3RvcjogJy5jb250ZW50X19zdGVwX19hZGRCdG4nIH0pKSgpXG4gICAgICAudGhlbihidG4gPT4gYnRuLmNsaWNrKCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZCBhIHN0ZXAgdG8gYSBwb2xpY3ktZ3JvdXBcbiAgICogQHBhcmFtIGluZGV4IEluZGV4IHdoZXJlIHRvIGFkZCB0aGUgc3RlcC4gKEFkZCBidXR0b24gaW5kZXgpXG4gICAqIEBwYXJhbSBzdGVwQ29uZmlnIFN0ZXAgdG8gYWRkXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgYWRkU3RlcChcbiAgICBpbmRleDogbnVtYmVyLFxuICAgIHN0ZXBDb25maWc6IHtcbiAgICAgIHBvbGljeU5hbWU6IHN0cmluZztcbiAgICB9ICYgU3RlcEZvcm0sXG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHRoaXMuY2xpY2tBZGRTdGVwKGluZGV4KTtcblxuICAgIGNvbnN0IGNhdGFsb2dEaWFsb2cgPSBhd2FpdCB0aGlzLmRvY3VtZW50Um9vdExvY2F0b3JGYWN0b3J5KCkubG9jYXRvckZvcihHaW9Qb2xpY3lTdHVkaW9Qb2xpY2llc0NhdGFsb2dEaWFsb2dIYXJuZXNzKSgpO1xuICAgIGF3YWl0IGNhdGFsb2dEaWFsb2cuc2VsZWN0UG9saWN5KHN0ZXBDb25maWcucG9saWN5TmFtZSk7XG5cbiAgICBhd2FpdCAoYXdhaXQgY2F0YWxvZ0RpYWxvZy5nZXRTdGVwRm9ybSgpKS5zZXRTdGVwRm9ybShzdGVwQ29uZmlnKTtcblxuICAgIGF3YWl0IGNhdGFsb2dEaWFsb2cuY2xpY2tBZGRQb2xpY3lCdXR0b24oKTtcbiAgfVxufVxuIl19
@@ -0,0 +1,202 @@
1
+ /*
2
+ * Copyright (C) 2022 The Gravitee team (http://gravitee.io)
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ import { ComponentHarness } from '@angular/cdk/testing';
17
+ import { MatButtonHarness } from '@angular/material/button/testing';
18
+ import { MatTabGroupHarness } from '@angular/material/tabs/testing';
19
+ import { GioPolicyStudioFlowsMenuHarness } from '../components/flows-menu/gio-ps-flows-menu.harness';
20
+ import { GioPolicyStudioDetailsHarness } from '../components/flow-details/gio-ps-flow-details.harness';
21
+ import { GioPolicyStudioFlowProxyFormDialogHarness } from '../components/flow-form-dialog/flow-proxy-form-dialog/gio-ps-flow-proxy-form-dialog.harness';
22
+ import { GioPolicyStudioFlowMessageFormDialogHarness } from '../components/flow-form-dialog/flow-message-form-dialog/gio-ps-flow-message-form-dialog.harness';
23
+ import { GioPolicyStudioFlowExecutionFormDialogHarness } from '../components/flow-execution-form-dialog/gio-ps-flow-execution-form-dialog.harness';
24
+ import { GioPolicyStudioDetailsPhaseHarness } from '../components/flow-details-phase/gio-ps-flow-details-phase.harness';
25
+ import { GioPolicyStudioFlowNativeFormDialogHarness } from '../components/flow-form-dialog/flow-native-form-dialog/gio-ps-flow-native-form-dialog.harness';
26
+ export class GioPolicyStudioHarness extends ComponentHarness {
27
+ constructor() {
28
+ super(...arguments);
29
+ this.menuHarness = this.locatorFor(GioPolicyStudioFlowsMenuHarness);
30
+ this.detailsHarness = this.locatorFor(GioPolicyStudioDetailsHarness);
31
+ this.phaseHarness = (phaseType) => this.locatorFor(GioPolicyStudioDetailsPhaseHarness.with({ type: phaseType }))();
32
+ }
33
+ static { this.hostSelector = 'gio-policy-studio'; }
34
+ async isReadOnly() {
35
+ const menu = await this.menuHarness();
36
+ const readOnlyMenu = await menu.isReadOnly();
37
+ await this.selectFlowInMenu('.+');
38
+ const details = await this.detailsHarness();
39
+ const emptyDetails = await details.isDisplayEmptyFlow();
40
+ if (!emptyDetails) {
41
+ await this.selectFlowInMenu('.+');
42
+ const readOnlyDetails = await details.isReadOnly();
43
+ return readOnlyMenu && readOnlyDetails;
44
+ }
45
+ return readOnlyMenu;
46
+ }
47
+ /**
48
+ * Add a flow to a plan or to "Common flows"
49
+ *
50
+ * @param groupName Plan name where to add the flow. You also can define "Common flows" to add a flow to this group.
51
+ * @param flow Flow to add
52
+ */
53
+ async addFlow(groupName, flow) {
54
+ await (await this.menuHarness()).addFlow(new RegExp(groupName, 'i'));
55
+ await this.setFlowFormDialog(flow);
56
+ }
57
+ /**
58
+ * Edit a flow configuration
59
+ *
60
+ * @param flowName Flow name to edit
61
+ * @param flow
62
+ */
63
+ async editFlowConfig(flowName, flow) {
64
+ (await this.menuHarness()).selectFlow(new RegExp(flowName, 'i'));
65
+ await (await this.detailsHarness()).clickEditFlowBtn();
66
+ await this.setFlowFormDialog(flow);
67
+ }
68
+ /**
69
+ * Delete a flow
70
+ *
71
+ * @param flowName Flow name to delete
72
+ */
73
+ async deleteFlow(flowName) {
74
+ (await this.menuHarness()).selectFlow(new RegExp(flowName, 'i'));
75
+ await (await this.detailsHarness()).clickDeleteFlowBtn();
76
+ }
77
+ /**
78
+ * Enable or disable a flow
79
+ */
80
+ async enableDisableFlow(flowName) {
81
+ (await this.menuHarness()).selectFlow(new RegExp(flowName, 'i'));
82
+ await (await this.detailsHarness()).clickEnableDisableFlowBtn();
83
+ }
84
+ /**
85
+ * Duplicate a flow
86
+ *
87
+ * @param flowName Flow name to clone
88
+ */
89
+ async duplicateFlow(flowName) {
90
+ await (await this.menuHarness()).clickDuplicateFlowBtn(new RegExp(flowName, 'i'));
91
+ }
92
+ /**
93
+ * Select a flow in the menu
94
+ *
95
+ * @param flowName Flow name to select
96
+ */
97
+ async selectFlowInMenu(flowName) {
98
+ await (await this.menuHarness()).selectFlow(new RegExp(flowName, 'i'));
99
+ }
100
+ /**
101
+ * Get the list of flows in the menu
102
+ */
103
+ async getFlowsMenu() {
104
+ return (await this.menuHarness()).getAllFlowsGroups();
105
+ }
106
+ /**
107
+ * Get selected flow infos
108
+ */
109
+ async getSelectedFlowInfos() {
110
+ return await (await this.detailsHarness()).getFlowInfos();
111
+ }
112
+ /**
113
+ * Get selected flow phase harness
114
+ * @param phaseType Phase type to get
115
+ */
116
+ async getSelectedFlowPhase(phaseType) {
117
+ if (phaseType === 'PUBLISH' || phaseType === 'SUBSCRIBE') {
118
+ const matTabsHarness = await this.locatorFor(MatTabGroupHarness.with({ selector: '.content__tabs' }))();
119
+ await matTabsHarness.selectTab({ label: 'Event messages' });
120
+ }
121
+ const steps = await this.phaseHarness(phaseType);
122
+ return steps ? steps : undefined;
123
+ }
124
+ /**
125
+ * Get Save button state
126
+ */
127
+ async getSaveButtonState() {
128
+ const saveButton = await this.locatorFor(MatButtonHarness.with({ ancestor: '.header__btn' }))();
129
+ const disabled = await saveButton.isDisabled();
130
+ const text = await saveButton.getText();
131
+ if (text === 'Saving...') {
132
+ return 'SAVING';
133
+ }
134
+ if (disabled) {
135
+ return 'DISABLED';
136
+ }
137
+ return 'VISIBLE';
138
+ }
139
+ /**
140
+ * Click on the "Save" button
141
+ */
142
+ async save() {
143
+ await (await this.locatorFor(MatButtonHarness.with({ text: /Save/ }))()).click();
144
+ }
145
+ async setFlowFormDialog(flow) {
146
+ const channelSelector = flow.selectors?.find(s => s.type === 'CHANNEL');
147
+ const httpSelector = flow.selectors?.find(s => s.type === 'HTTP');
148
+ const conditionSelector = flow.selectors?.find(s => s.type === 'CONDITION');
149
+ if (!!channelSelector && !!httpSelector) {
150
+ throw new Error('Channel and HTTP selectors are not be used together.');
151
+ }
152
+ if (channelSelector) {
153
+ const flowFormNewDialog = await this.documentRootLocatorFactory().locatorFor(GioPolicyStudioFlowMessageFormDialogHarness)();
154
+ const toChannelOperator = {
155
+ STARTS_WITH: 'Starts with',
156
+ EQUALS: 'Equals',
157
+ };
158
+ await flowFormNewDialog.setFlowFormValues({
159
+ name: flow.name,
160
+ channel: channelSelector?.channel,
161
+ channelOperator: toChannelOperator[channelSelector.channelOperator],
162
+ entrypoints: channelSelector?.entrypoints,
163
+ operations: channelSelector?.operations,
164
+ condition: conditionSelector?.condition,
165
+ });
166
+ await flowFormNewDialog.save();
167
+ return;
168
+ }
169
+ if (httpSelector) {
170
+ const flowFormNewDialog = await this.documentRootLocatorFactory().locatorFor(GioPolicyStudioFlowProxyFormDialogHarness)();
171
+ await flowFormNewDialog.setFlowFormValues({
172
+ name: flow.name,
173
+ path: httpSelector?.path,
174
+ pathOperator: httpSelector?.pathOperator,
175
+ methods: httpSelector?.methods,
176
+ condition: conditionSelector?.condition,
177
+ });
178
+ await flowFormNewDialog.save();
179
+ return;
180
+ }
181
+ if (!channelSelector && !httpSelector) {
182
+ const flowFormNewDialog = await this.documentRootLocatorFactory().locatorFor(GioPolicyStudioFlowNativeFormDialogHarness)();
183
+ await flowFormNewDialog.setFlowFormValues({
184
+ name: flow.name,
185
+ });
186
+ await flowFormNewDialog.save();
187
+ return;
188
+ }
189
+ throw new Error('No selector found for this flow. Needed to select Message or Proxy flow form dialog.');
190
+ }
191
+ async setFlowExecutionConfig(flowExecution) {
192
+ await (await this.menuHarness()).openFlowExecutionConfig();
193
+ const flowExecutionDialog = await this.documentRootLocatorFactory().locatorFor(GioPolicyStudioFlowExecutionFormDialogHarness)();
194
+ await flowExecutionDialog.setFlowFormValues(flowExecution);
195
+ await flowExecutionDialog.save();
196
+ }
197
+ async getSearchInput() {
198
+ const menu = await this.menuHarness();
199
+ return menu.getSearchInput();
200
+ }
201
+ }
202
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2lvLXBvbGljeS1zdHVkaW8uaGFybmVzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLXBvbGljeS1zdHVkaW8tYW5ndWxhci9zcmMvbGliL3BvbGljeS1zdHVkaW8vZ2lvLXBvbGljeS1zdHVkaW8uaGFybmVzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUVILE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBSXBFLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBQ3JHLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLHdEQUF3RCxDQUFDO0FBQ3ZHLE9BQU8sRUFBRSx5Q0FBeUMsRUFBRSxNQUFNLDZGQUE2RixDQUFDO0FBQ3hKLE9BQU8sRUFBRSwyQ0FBMkMsRUFBRSxNQUFNLGlHQUFpRyxDQUFDO0FBQzlKLE9BQU8sRUFBRSw2Q0FBNkMsRUFBRSxNQUFNLG9GQUFvRixDQUFDO0FBQ25KLE9BQU8sRUFBRSxrQ0FBa0MsRUFBYSxNQUFNLG9FQUFvRSxDQUFDO0FBQ25JLE9BQU8sRUFBRSwwQ0FBMEMsRUFBRSxNQUFNLCtGQUErRixDQUFDO0FBRTNKLE1BQU0sT0FBTyxzQkFBdUIsU0FBUSxnQkFBZ0I7SUFBNUQ7O1FBR1UsZ0JBQVcsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLCtCQUErQixDQUFDLENBQUM7UUFFL0QsbUJBQWMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLDZCQUE2QixDQUFDLENBQUM7UUFFaEUsaUJBQVksR0FBRyxDQUFDLFNBQW9CLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsa0NBQWtDLENB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QUFpQixHQUFHLE1BQU0sSUFBSSxDQUFDLDBCQUEwQixFQUFFLENBQUMsVUFBVSxDQUFDLDBDQUEwQyxDQUFDLEVBQUUsQ0FBQztZQUMzSCxNQUFNLGlCQUFpQixDQUFDLGlCQUFpQixDQUFDO2dCQUN4QyxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7YUFDaEIsQ0FBQyxDQUFDO1lBQ0gsTUFBTSxpQkFBaUIsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUMvQixPQUFPO1FBQ1QsQ0FBQztRQUVELE1BQU0sSUFBSSxLQUFLLENBQUMsc0ZBQXNGLENBQUMsQ0FBQztJQUMxRyxDQUFDO0lBRU0sS0FBSyxDQUFDLHNCQUFzQixDQUFDLGFBQTRCO1FBQzlELE1BQU0sQ0FBQyxNQUFNLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLHVCQUF1QixFQUFFLENBQUM7UUFFM0QsTUFBTSxtQkFBbUIsR0FBRyxNQUFNLElBQUksQ0FBQywwQkFBMEIsRUFBRSxDQUFDLFVBQVUsQ0FBQyw2Q0FBNkMsQ0FBQyxFQUFFLENBQUM7UUFDaEksTUFBTSxtQkFBbUIsQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUMzRCxNQUFNLG1CQUFtQixDQUFDLElBQUksRUFBRSxDQUFDO0lBQ25DLENBQUM7SUFFTSxLQUFLLENBQUMsY0FBYztRQUN6QixNQUFNLElBQUksR0FBRyxNQUFNLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUN0QyxPQUFPLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUMvQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoQykgMjAyMiBUaGUgR3Jhdml0ZWUgdGVhbSAoaHR0cDovL2dyYXZpdGVlLmlvKVxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHsgQ29tcG9uZW50SGFybmVzcyB9IGZyb20gJ0Bhbmd1bGFyL2Nkay90ZXN0aW5nJztcbmltcG9ydCB7IE1hdEJ1dHRvbkhhcm5lc3MgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24vdGVzdGluZyc7XG5pbXBvcnQgeyBNYXRUYWJHcm91cEhhcm5lc3MgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90YWJzL3Rlc3RpbmcnO1xuaW1wb3J0IHsgTWF0SW5wdXRIYXJuZXNzIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQvdGVzdGluZyc7XG5cbmltcG9ydCB7IENoYW5uZWxTZWxlY3RvciwgQ29uZGl0aW9uU2VsZWN0b3IsIEZsb3csIEZsb3dFeGVjdXRpb24sIEh0dHBTZWxlY3RvciB9IGZyb20gJy4uL21vZGVscyc7XG5pbXBvcnQgeyBHaW9Qb2xpY3lTdHVkaW9GbG93c01lbnVIYXJuZXNzIH0gZnJvbSAnLi4vY29tcG9uZW50cy9mbG93cy1tZW51L2dpby1wcy1mbG93cy1tZW51Lmhhcm5lc3MnO1xuaW1wb3J0IHsgR2lvUG9saWN5U3R1ZGlvRGV0YWlsc0hhcm5lc3MgfSBmcm9tICcuLi9jb21wb25lbnRzL2Zsb3ctZGV0YWlscy9naW8tcHMtZmxvdy1kZXRhaWxzLmhhcm5lc3MnO1xuaW1wb3J0IHsgR2lvUG9saWN5U3R1ZGlvRmxvd1Byb3h5Rm9ybURpYWxvZ0hhcm5lc3MgfSBmcm9tICcuLi9jb21wb25lbnRzL2Zsb3ctZm9ybS1kaWFsb2cvZmxvdy1wcm94eS1mb3JtLWRpYWxvZy9naW8tcHMtZmxvdy1wcm94eS1mb3JtLWRpYWxvZy5oYXJuZXNzJztcbmltcG9ydCB7IEdpb1BvbGljeVN0dWRpb0Zsb3dNZXNzYWdlRm9ybURpYWxvZ0hhcm5lc3MgfSBmcm9tICcuLi9jb21wb25lbnRzL2Zsb3ctZm9ybS1kaWFsb2cvZmxvdy1tZXNzYWdlLWZvcm0tZGlhbG9nL2dpby1wcy1mbG93LW1lc3NhZ2UtZm9ybS1kaWFsb2cuaGFybmVzcyc7XG5pbXBvcnQgeyBHaW9Qb2xpY3lTdHVkaW9GbG93RXhlY3V0aW9uRm9ybURpYWxvZ0hhcm5lc3MgfSBmcm9tICcuLi9jb21wb25lbnRzL2Zsb3ctZXhlY3V0aW9uLWZvcm0tZGlhbG9nL2dpby1wcy1mbG93LWV4ZWN1dGlvbi1mb3JtLWRpYWxvZy5oYXJuZXNzJztcbmltcG9ydCB7IEdpb1BvbGljeVN0dWRpb0RldGFpbHNQaGFzZUhhcm5lc3MsIFBoYXNlVHlwZSB9IGZyb20gJy4uL2NvbXBvbmVudHMvZmxvdy1kZXRhaWxzLXBoYXNlL2dpby1wcy1mbG93LWRldGFpbHMtcGhhc2UuaGFybmVzcyc7XG5pbXBvcnQgeyBHaW9Qb2xpY3lTdHVkaW9GbG93TmF0aXZlRm9ybURpYWxvZ0hhcm5lc3MgfSBmcm9tICcuLi9jb21wb25lbnRzL2Zsb3ctZm9ybS1kaWFsb2cvZmxvdy1uYXRpdmUtZm9ybS1kaWFsb2cvZ2lvLXBzLWZsb3ctbmF0aXZlLWZvcm0tZGlhbG9nLmhhcm5lc3MnO1xuXG5leHBvcnQgY2xhc3MgR2lvUG9saWN5U3R1ZGlvSGFybmVzcyBleHRlbmRzIENvbXBvbmVudEhhcm5lc3Mge1xuICBwdWJsaWMgc3RhdGljIGhvc3RTZWxlY3RvciA9ICdnaW8tcG9saWN5LXN0dWRpbyc7XG5cbiAgcHJpdmF0ZSBtZW51SGFybmVzcyA9IHRoaXMubG9jYXRvckZvcihHaW9Qb2xpY3lTdHVkaW9GbG93c01lbnVIYXJuZXNzKTtcblxuICBwcml2YXRlIGRldGFpbHNIYXJuZXNzID0gdGhpcy5sb2NhdG9yRm9yKEdpb1BvbGljeVN0dWRpb0RldGFpbHNIYXJuZXNzKTtcblxuICBwcml2YXRlIHBoYXNlSGFybmVzcyA9IChwaGFzZVR5cGU6IFBoYXNlVHlwZSkgPT4gdGhpcy5sb2NhdG9yRm9yKEdpb1BvbGljeVN0dWRpb0RldGFpbHNQaGFzZUhhcm5lc3Mud2l0aCh7IHR5cGU6IHBoYXNlVHlwZSB9KSkoKTtcblxuICBwdWJsaWMgYXN5bmMgaXNSZWFkT25seSgpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICBjb25zdCBtZW51ID0gYXdhaXQgdGhpcy5tZW51SGFybmVzcygpO1xuICAgIGNvbnN0IHJlYWRPbmx5TWVudSA9IGF3YWl0IG1lbnUuaXNSZWFkT25seSgpO1xuXG4gICAgYXdhaXQgdGhpcy5zZWxlY3RGbG93SW5NZW51KCcuKycpO1xuXG4gICAgY29uc3QgZGV0YWlscyA9IGF3YWl0IHRoaXMuZGV0YWlsc0hhcm5lc3MoKTtcbiAgICBjb25zdCBlbXB0eURldGFpbHMgPSBhd2FpdCBkZXRhaWxzLmlzRGlzcGxheUVtcHR5RmxvdygpO1xuXG4gICAgaWYgKCFlbXB0eURldGFpbHMpIHtcbiAgICAgIGF3YWl0IHRoaXMuc2VsZWN0Rmxvd0luTWVudSgnLisnKTtcbiAgICAgIGNvbnN0IHJlYWRPbmx5RGV0YWlscyA9IGF3YWl0IGRldGFpbHMuaXNSZWFkT25seSgpO1xuICAgICAgcmV0dXJuIHJlYWRPbmx5TWVudSAmJiByZWFkT25seURldGFpbHM7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlYWRPbmx5TWVudTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgYSBmbG93IHRvIGEgcGxhbiBvciB0byBcIkNvbW1vbiBmbG93c1wiXG4gICAqXG4gICAqIEBwYXJhbSBncm91cE5hbWUgUGxhbiBuYW1lIHdoZXJlIHRvIGFkZCB0aGUgZmxvdy4gWW91IGFsc28gY2FuIGRlZmluZSBcIkNvbW1vbiBmbG93c1wiIHRvIGFkZCBhIGZsb3cgdG8gdGhpcyBncm91cC5cbiAgICogQHBhcmFtIGZsb3cgRmxvdyB0byBhZGRcbiAgICovXG4gIHB1YmxpYyBhc3luYyBhZGRGbG93KGdyb3VwTmFtZTogc3RyaW5nLCBmbG93OiBGbG93KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgKGF3YWl0IHRoaXMubWVudUhhcm5lc3MoKSkuYWRkRmxvdyhuZXcgUmVnRXhwKGdyb3VwTmFtZSwgJ2knKSk7XG5cbiAgICBhd2FpdCB0aGlzLnNldEZsb3dGb3JtRGlhbG9nKGZsb3cpO1xuICB9XG5cbiAgLyoqXG4gICAqIEVkaXQgYSBmbG93IGNvbmZpZ3VyYXRpb25cbiAgICpcbiAgICogQHBhcmFtIGZsb3dOYW1lIEZsb3cgbmFtZSB0byBlZGl0XG4gICAqIEBwYXJhbSBmbG93XG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZWRpdEZsb3dDb25maWcoZmxvd05hbWU6IHN0cmluZywgZmxvdzogUGFydGlhbDxGbG93Pik6IFByb21pc2U8dm9pZD4ge1xuICAgIChhd2FpdCB0aGlzLm1lbnVIYXJuZXNzKCkpLnNlbGVjdEZsb3cobmV3IFJlZ0V4cChmbG93TmFtZSwgJ2knKSk7XG4gICAgYXdhaXQgKGF3YWl0IHRoaXMuZGV0YWlsc0hhcm5lc3MoKSkuY2xpY2tFZGl0Rmxvd0J0bigpO1xuXG4gICAgYXdhaXQgdGhpcy5zZXRGbG93Rm9ybURpYWxvZyhmbG93KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZWxldGUgYSBmbG93XG4gICAqXG4gICAqIEBwYXJhbSBmbG93TmFtZSBGbG93IG5hbWUgdG8gZGVsZXRlXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZGVsZXRlRmxvdyhmbG93TmFtZTogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgKGF3YWl0IHRoaXMubWVudUhhcm5lc3MoKSkuc2VsZWN0RmxvdyhuZXcgUmVnRXhwKGZsb3dOYW1lLCAnaScpKTtcbiAgICBhd2FpdCAoYXdhaXQgdGhpcy5kZXRhaWxzSGFybmVzcygpKS5jbGlja0RlbGV0ZUZsb3dCdG4oKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFbmFibGUgb3IgZGlzYWJsZSBhIGZsb3dcbiAgICovXG4gIHB1YmxpYyBhc3luYyBlbmFibGVEaXNhYmxlRmxvdyhmbG93TmFtZTogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgKGF3YWl0IHRoaXMubWVudUhhcm5lc3MoKSkuc2VsZWN0RmxvdyhuZXcgUmVnRXhwKGZsb3dOYW1lLCAnaScpKTtcbiAgICBhd2FpdCAoYXdhaXQgdGhpcy5kZXRhaWxzSGFybmVzcygpKS5jbGlja0VuYWJsZURpc2FibGVGbG93QnRuKCk7XG4gIH1cblxuICAvKipcbiAgICogRHVwbGljYXRlIGEgZmxvd1xuICAgKlxuICAgKiBAcGFyYW0gZmxvd05hbWUgRmxvdyBuYW1lIHRvIGNsb25lXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZHVwbGljYXRlRmxvdyhmbG93TmFtZTogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgKGF3YWl0IHRoaXMubWVudUhhcm5lc3MoKSkuY2xpY2tEdXBsaWNhdGVGbG93QnRuKG5ldyBSZWdFeHAoZmxvd05hbWUsICdpJykpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNlbGVjdCBhIGZsb3cgaW4gdGhlIG1lbnVcbiAgICpcbiAgICogQHBhcmFtIGZsb3dOYW1lIEZsb3cgbmFtZSB0byBzZWxlY3RcbiAgICovXG4gIHB1YmxpYyBhc3luYyBzZWxlY3RGbG93SW5NZW51KGZsb3dOYW1lOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCAoYXdhaXQgdGhpcy5tZW51SGFybmVzcygpKS5zZWxlY3RGbG93KG5ldyBSZWdFeHAoZmxvd05hbWUsICdpJykpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgbGlzdCBvZiBmbG93cyBpbiB0aGUgbWVudVxuICAgKi9cbiAgcHVibGljIGFzeW5jIGdldEZsb3dzTWVudSgpOiBQcm9taXNlPFxuICAgIHtcbiAgICAgIG5hbWU6IHN0cmluZyB8IG51bGw7XG4gICAgICBmbG93czoge1xuICAgICAgICBuYW1lOiBzdHJpbmcgfCBudWxsO1xuICAgICAgICBpc1NlbGVjdGVkOiBib29sZWFuO1xuICAgICAgICBpbmZvczogc3RyaW5nIHwgbnVsbDtcbiAgICAgIH1bXTtcbiAgICB9W11cbiAgPiB7XG4gICAgcmV0dXJuIChhd2FpdCB0aGlzLm1lbnVIYXJuZXNzKCkpLmdldEFsbEZsb3dzR3JvdXBzKCk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHNlbGVjdGVkIGZsb3cgaW5mb3NcbiAgICovXG4gIHB1YmxpYyBhc3luYyBnZXRTZWxlY3RlZEZsb3dJbmZvcygpOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIChzdHJpbmcgfCBudWxsKVtdPj4ge1xuICAgIHJldHVybiBhd2FpdCAoYXdhaXQgdGhpcy5kZXRhaWxzSGFybmVzcygpKS5nZXRGbG93SW5mb3MoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgc2VsZWN0ZWQgZmxvdyBwaGFzZSBoYXJuZXNzXG4gICAqIEBwYXJhbSBwaGFzZVR5cGUgUGhhc2UgdHlwZSB0byBnZXRcbiAgICovXG4gIHB1YmxpYyBhc3luYyBnZXRTZWxlY3RlZEZsb3dQaGFzZShwaGFzZVR5cGU6IFBoYXNlVHlwZSk6IFByb21pc2U8R2lvUG9saWN5U3R1ZGlvRGV0YWlsc1BoYXNlSGFybmVzcyB8IHVuZGVmaW5lZD4ge1xuICAgIGlmIChwaGFzZVR5cGUgPT09ICdQVUJMSVNIJyB8fCBwaGFzZVR5cGUgPT09ICdTVUJTQ1JJQkUnKSB7XG4gICAgICBjb25zdCBtYXRUYWJzSGFybmVzcyA9IGF3YWl0IHRoaXMubG9jYXRvckZvcihNYXRUYWJHcm91cEhhcm5lc3Mud2l0aCh7IHNlbGVjdG9yOiAnLmNvbnRlbnRfX3RhYnMnIH0pKSgpO1xuICAgICAgYXdhaXQgbWF0VGFic0hhcm5lc3Muc2VsZWN0VGFiKHsgbGFiZWw6ICdFdmVudCBtZXNzYWdlcycgfSk7XG4gICAgfVxuXG4gICAgY29uc3Qgc3RlcHMgPSBhd2FpdCB0aGlzLnBoYXNlSGFybmVzcyhwaGFzZVR5cGUpO1xuXG4gICAgcmV0dXJuIHN0ZXBzID8gc3RlcHMgOiB1bmRlZmluZWQ7XG4gIH1cblxuICAvKipcbiAgICogR2V0IFNhdmUgYnV0dG9uIHN0YXRlXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZ2V0U2F2ZUJ1dHRvblN0YXRlKCk6IFByb21pc2U8J1ZJU0lCTEUnIHwgJ0RJU0FCTEVEJyB8ICdTQVZJTkcnPiB7XG4gICAgY29uc3Qgc2F2ZUJ1dHRvbiA9IGF3YWl0IHRoaXMubG9jYXRvckZvcihNYXRCdXR0b25IYXJuZXNzLndpdGgoeyBhbmNlc3RvcjogJy5oZWFkZXJfX2J0bicgfSkpKCk7XG4gICAgY29uc3QgZGlzYWJsZWQgPSBhd2FpdCBzYXZlQnV0dG9uLmlzRGlzYWJsZWQoKTtcbiAgICBjb25zdCB0ZXh0ID0gYXdhaXQgc2F2ZUJ1dHRvbi5nZXRUZXh0KCk7XG5cbiAgICBpZiAodGV4dCA9PT0gJ1NhdmluZy4uLicpIHtcbiAgICAgIHJldHVybiAnU0FWSU5HJztcbiAgICB9XG5cbiAgICBpZiAoZGlzYWJsZWQpIHtcbiAgICAgIHJldHVybiAnRElTQUJMRUQnO1xuICAgIH1cblxuICAgIHJldHVybiAnVklTSUJMRSc7XG4gIH1cblxuICAvKipcbiAgICogQ2xpY2sgb24gdGhlIFwiU2F2ZVwiIGJ1dHRvblxuICAgKi9cbiAgcHVibGljIGFzeW5jIHNhdmUoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgKGF3YWl0IHRoaXMubG9jYXRvckZvcihNYXRCdXR0b25IYXJuZXNzLndpdGgoeyB0ZXh0OiAvU2F2ZS8gfSkpKCkpLmNsaWNrKCk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHNldEZsb3dGb3JtRGlhbG9nKGZsb3c6IFBhcnRpYWw8Rmxvdz4pIHtcbiAgICBjb25zdCBjaGFubmVsU2VsZWN0b3IgPSBmbG93LnNlbGVjdG9ycz8uZmluZChzID0+IHMudHlwZSA9PT0gJ0NIQU5ORUwnKSBhcyBDaGFubmVsU2VsZWN0b3IgfCB1bmRlZmluZWQ7XG4gICAgY29uc3QgaHR0cFNlbGVjdG9yID0gZmxvdy5zZWxlY3RvcnM/LmZpbmQocyA9PiBzLnR5cGUgPT09ICdIVFRQJykgYXMgSHR0cFNlbGVjdG9yIHwgdW5kZWZpbmVkO1xuICAgIGNvbnN0IGNvbmRpdGlvblNlbGVjdG9yID0gZmxvdy5zZWxlY3RvcnM/LmZpbmQocyA9PiBzLnR5cGUgPT09ICdDT05ESVRJT04nKSBhcyBDb25kaXRpb25TZWxlY3RvciB8IHVuZGVmaW5lZDtcblxuICAgIGlmICghIWNoYW5uZWxTZWxlY3RvciAmJiAhIWh0dHBTZWxlY3Rvcikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdDaGFubmVsIGFuZCBIVFRQIHNlbGVjdG9ycyBhcmUgbm90IGJlIHVzZWQgdG9nZXRoZXIuJyk7XG4gICAgfVxuXG4gICAgaWYgKGNoYW5uZWxTZWxlY3Rvcikge1xuICAgICAgY29uc3QgZmxvd0Zvcm1OZXdEaWFsb2cgPSBhd2FpdCB0aGlzLmRvY3VtZW50Um9vdExvY2F0b3JGYWN0b3J5KCkubG9jYXRvckZvcihHaW9Qb2xpY3lTdHVkaW9GbG93TWVzc2FnZUZvcm1EaWFsb2dIYXJuZXNzKSgpO1xuXG4gICAgICBjb25zdCB0b0NoYW5uZWxPcGVyYXRvciA9IHtcbiAgICAgICAgU1RBUlRTX1dJVEg6ICdTdGFydHMgd2l0aCcsXG4gICAgICAgIEVRVUFMUzogJ0VxdWFscycsXG4gICAgICB9O1xuXG4gICAgICBhd2FpdCBmbG93Rm9ybU5ld0RpYWxvZy5zZXRGbG93Rm9ybVZhbHVlcyh7XG4gICAgICAgIG5hbWU6IGZsb3cubmFtZSxcbiAgICAgICAgY2hhbm5lbDogY2hhbm5lbFNlbGVjdG9yPy5jaGFubmVsLFxuICAgICAgICBjaGFubmVsT3BlcmF0b3I6IHRvQ2hhbm5lbE9wZXJhdG9yW2NoYW5uZWxTZWxlY3Rvci5jaGFubmVsT3BlcmF0b3JdLFxuICAgICAgICBlbnRyeXBvaW50czogY2hhbm5lbFNlbGVjdG9yPy5lbnRyeXBvaW50cyxcbiAgICAgICAgb3BlcmF0aW9uczogY2hhbm5lbFNlbGVjdG9yPy5vcGVyYXRpb25zLFxuICAgICAgICBjb25kaXRpb246IGNvbmRpdGlvblNlbGVjdG9yPy5jb25kaXRpb24sXG4gICAgICB9KTtcblxuICAgICAgYXdhaXQgZmxvd0Zvcm1OZXdEaWFsb2cuc2F2ZSgpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChodHRwU2VsZWN0b3IpIHtcbiAgICAgIGNvbnN0IGZsb3dGb3JtTmV3RGlhbG9nID0gYXdhaXQgdGhpcy5kb2N1bWVudFJvb3RMb2NhdG9yRmFjdG9yeSgpLmxvY2F0b3JGb3IoR2lvUG9saWN5U3R1ZGlvRmxvd1Byb3h5Rm9ybURpYWxvZ0hhcm5lc3MpKCk7XG5cbiAgICAgIGF3YWl0IGZsb3dGb3JtTmV3RGlhbG9nLnNldEZsb3dGb3JtVmFsdWVzKHtcbiAgICAgICAgbmFtZTogZmxvdy5uYW1lLFxuICAgICAgICBwYXRoOiBodHRwU2VsZWN0b3I/LnBhdGgsXG4gICAgICAgIHBhdGhPcGVyYXRvcjogaHR0cFNlbGVjdG9yPy5wYXRoT3BlcmF0b3IsXG4gICAgICAgIG1ldGhvZHM6IGh0dHBTZWxlY3Rvcj8ubWV0aG9kcyxcbiAgICAgICAgY29uZGl0aW9uOiBjb25kaXRpb25TZWxlY3Rvcj8uY29uZGl0aW9uLFxuICAgICAgfSk7XG5cbiAgICAgIGF3YWl0IGZsb3dGb3JtTmV3RGlhbG9nLnNhdmUoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoIWNoYW5uZWxTZWxlY3RvciAmJiAhaHR0cFNlbGVjdG9yKSB7XG4gICAgICBjb25zdCBmbG93Rm9ybU5ld0RpYWxvZyA9IGF3YWl0IHRoaXMuZG9jdW1lbnRSb290TG9jYXRvckZhY3RvcnkoKS5sb2NhdG9yRm9yKEdpb1BvbGljeVN0dWRpb0Zsb3dOYXRpdmVGb3JtRGlhbG9nSGFybmVzcykoKTtcbiAgICAgIGF3YWl0IGZsb3dGb3JtTmV3RGlhbG9nLnNldEZsb3dGb3JtVmFsdWVzKHtcbiAgICAgICAgbmFtZTogZmxvdy5uYW1lLFxuICAgICAgfSk7XG4gICAgICBhd2FpdCBmbG93Rm9ybU5ld0RpYWxvZy5zYXZlKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhyb3cgbmV3IEVycm9yKCdObyBzZWxlY3RvciBmb3VuZCBmb3IgdGhpcyBmbG93LiBOZWVkZWQgdG8gc2VsZWN0IE1lc3NhZ2Ugb3IgUHJveHkgZmxvdyBmb3JtIGRpYWxvZy4nKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBzZXRGbG93RXhlY3V0aW9uQ29uZmlnKGZsb3dFeGVjdXRpb246IEZsb3dFeGVjdXRpb24pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCAoYXdhaXQgdGhpcy5tZW51SGFybmVzcygpKS5vcGVuRmxvd0V4ZWN1dGlvbkNvbmZpZygpO1xuXG4gICAgY29uc3QgZmxvd0V4ZWN1dGlvbkRpYWxvZyA9IGF3YWl0IHRoaXMuZG9jdW1lbnRSb290TG9jYXRvckZhY3RvcnkoKS5sb2NhdG9yRm9yKEdpb1BvbGljeVN0dWRpb0Zsb3dFeGVjdXRpb25Gb3JtRGlhbG9nSGFybmVzcykoKTtcbiAgICBhd2FpdCBmbG93RXhlY3V0aW9uRGlhbG9nLnNldEZsb3dGb3JtVmFsdWVzKGZsb3dFeGVjdXRpb24pO1xuICAgIGF3YWl0IGZsb3dFeGVjdXRpb25EaWFsb2cuc2F2ZSgpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGdldFNlYXJjaElucHV0KCk6IFByb21pc2U8TWF0SW5wdXRIYXJuZXNzPiB7XG4gICAgY29uc3QgbWVudSA9IGF3YWl0IHRoaXMubWVudUhhcm5lc3MoKTtcbiAgICByZXR1cm4gbWVudS5nZXRTZWFyY2hJbnB1dCgpO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,17 @@
1
+ /*
2
+ * Copyright (C) 2022 The Gravitee team (http://gravitee.io)
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ export {};
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2lvLXBvbGljeS1zdHVkaW8ubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1wb2xpY3ktc3R1ZGlvLWFuZ3VsYXIvc3JjL2xpYi9wb2xpY3ktc3R1ZGlvL2dpby1wb2xpY3ktc3R1ZGlvLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoQykgMjAyMiBUaGUgR3Jhdml0ZWUgdGVhbSAoaHR0cDovL2dyYXZpdGVlLmlvKVxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHsgRmxvdyB9IGZyb20gJy4uL21vZGVscyc7XG5cbi8vIE1vZGVsIHVzZWQgaW50ZXJuYWxseSBieSB0aGUgY29tcG9uZW50IGFuZCBpdCdzIGNoaWxkcmVuXG5leHBvcnQgaW50ZXJmYWNlIEZsb3dWTSBleHRlbmRzIEZsb3cge1xuICBfaWQ6IHN0cmluZztcbiAgX2hhc0NoYW5nZWQ6IGJvb2xlYW47XG4gIF9wYXJlbnRGbG93R3JvdXBOYW1lPzogc3RyaW5nO1xufVxuZXhwb3J0IGludGVyZmFjZSBGbG93R3JvdXBWTSB7XG4gIF9pZDogc3RyaW5nO1xuICBfcGxhbklkPzogc3RyaW5nO1xuICBfaXNQbGFuOiBib29sZWFuO1xuICBuYW1lOiBzdHJpbmc7XG4gIGZsb3dzOiBGbG93Vk1bXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQb2xpY3lEb2N1bWVudGF0aW9uIHtcbiAgY29udGVudDogc3RyaW5nO1xuICBsYW5ndWFnZTogJ01BUktET1dOJyB8ICdBU0NJSURPQyc7XG59XG4iXX0=
@@ -0,0 +1,19 @@
1
+ /*
2
+ * Copyright (C) 2022 The Gravitee team (http://gravitee.io)
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ export * from './lib/models/index-testing';
17
+ export * from './lib/policy-studio/gio-policy-studio.harness';
18
+ export * from './lib/policy-group-studio/gio-policy-group-studio.harness';
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLXRlc3RpbmctYXBpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktcG9saWN5LXN0dWRpby1hbmd1bGFyL3NyYy9wdWJsaWMtdGVzdGluZy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFDSCxjQUFjLDRCQUE0QixDQUFDO0FBRTNDLGNBQWMsK0NBQStDLENBQUM7QUFDOUQsY0FBYywyREFBMkQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKEMpIDIwMjIgVGhlIEdyYXZpdGVlIHRlYW0gKGh0dHA6Ly9ncmF2aXRlZS5pbylcbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvaW5kZXgtdGVzdGluZyc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL3BvbGljeS1zdHVkaW8vZ2lvLXBvbGljeS1zdHVkaW8uaGFybmVzcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9wb2xpY3ktZ3JvdXAtc3R1ZGlvL2dpby1wb2xpY3ktZ3JvdXAtc3R1ZGlvLmhhcm5lc3MnO1xuIl19
@@ -1291,7 +1291,7 @@ class GioPolicyStudioStepFormHarness extends ComponentHarness {
1291
1291
  }
1292
1292
  async getDocumentation() {
1293
1293
  const documentation = await this.locatorFor('.documentation__content > gio-asciidoctor')();
1294
- return documentation.text();
1294
+ return documentation.getAttribute('ng-reflect-content');
1295
1295
  }
1296
1296
  }
1297
1297