@api-client/ui 0.2.3 → 0.2.4

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 (203) hide show
  1. package/.vscode/settings.json +3 -3
  2. package/build/src/elements/authorization/ui/ApiKeyAuthorization.d.ts +1 -1
  3. package/build/src/elements/authorization/ui/ApiKeyAuthorization.d.ts.map +1 -1
  4. package/build/src/elements/authorization/ui/ApiKeyAuthorization.js +7 -7
  5. package/build/src/elements/authorization/ui/ApiKeyAuthorization.js.map +1 -1
  6. package/build/src/elements/authorization/ui/Authorization.styles.js +4 -4
  7. package/build/src/elements/authorization/ui/Authorization.styles.js.map +1 -1
  8. package/build/src/elements/authorization/ui/BasicAuthorization.d.ts +1 -1
  9. package/build/src/elements/authorization/ui/BasicAuthorization.d.ts.map +1 -1
  10. package/build/src/elements/authorization/ui/BasicAuthorization.js +5 -5
  11. package/build/src/elements/authorization/ui/BasicAuthorization.js.map +1 -1
  12. package/build/src/elements/authorization/ui/BearerAuthorization.d.ts +1 -1
  13. package/build/src/elements/authorization/ui/BearerAuthorization.d.ts.map +1 -1
  14. package/build/src/elements/authorization/ui/BearerAuthorization.js +3 -3
  15. package/build/src/elements/authorization/ui/BearerAuthorization.js.map +1 -1
  16. package/build/src/elements/authorization/ui/NtlmAuthorization.d.ts +1 -1
  17. package/build/src/elements/authorization/ui/NtlmAuthorization.d.ts.map +1 -1
  18. package/build/src/elements/authorization/ui/NtlmAuthorization.js +7 -7
  19. package/build/src/elements/authorization/ui/NtlmAuthorization.js.map +1 -1
  20. package/build/src/elements/authorization/ui/OAuth2Authorization.d.ts +1 -1
  21. package/build/src/elements/authorization/ui/OAuth2Authorization.d.ts.map +1 -1
  22. package/build/src/elements/authorization/ui/OAuth2Authorization.js +32 -27
  23. package/build/src/elements/authorization/ui/OAuth2Authorization.js.map +1 -1
  24. package/build/src/elements/authorization/ui/OidcAuthorization.js +4 -4
  25. package/build/src/elements/authorization/ui/OidcAuthorization.js.map +1 -1
  26. package/build/src/elements/autocomplete/autocomplete-input.d.ts +10 -0
  27. package/build/src/elements/autocomplete/autocomplete-input.d.ts.map +1 -0
  28. package/build/src/{md/text-field/ui-text-field.js → elements/autocomplete/autocomplete-input.js} +9 -9
  29. package/build/src/elements/autocomplete/autocomplete-input.js.map +1 -0
  30. package/build/src/elements/autocomplete/internals/autocomplete.d.ts +209 -0
  31. package/build/src/elements/autocomplete/internals/autocomplete.d.ts.map +1 -0
  32. package/build/src/elements/autocomplete/internals/autocomplete.js +493 -0
  33. package/build/src/elements/autocomplete/internals/autocomplete.js.map +1 -0
  34. package/build/src/elements/autocomplete/internals/autocomplete.styles.d.ts +3 -0
  35. package/build/src/elements/autocomplete/internals/autocomplete.styles.d.ts.map +1 -0
  36. package/build/src/elements/autocomplete/internals/autocomplete.styles.js +25 -0
  37. package/build/src/elements/autocomplete/internals/autocomplete.styles.js.map +1 -0
  38. package/build/src/elements/dialog/internals/DeleteCookieAction.element.d.ts +1 -1
  39. package/build/src/elements/dialog/internals/DeleteCookieAction.element.d.ts.map +1 -1
  40. package/build/src/elements/dialog/internals/DeleteCookieAction.element.js +5 -5
  41. package/build/src/elements/dialog/internals/DeleteCookieAction.element.js.map +1 -1
  42. package/build/src/elements/dialog/internals/Rename.d.ts +1 -1
  43. package/build/src/elements/dialog/internals/Rename.d.ts.map +1 -1
  44. package/build/src/elements/dialog/internals/Rename.js +3 -3
  45. package/build/src/elements/dialog/internals/Rename.js.map +1 -1
  46. package/build/src/elements/dialog/internals/SetCookieAction.element.d.ts +1 -1
  47. package/build/src/elements/dialog/internals/SetCookieAction.element.d.ts.map +1 -1
  48. package/build/src/elements/dialog/internals/SetCookieAction.element.js +9 -9
  49. package/build/src/elements/dialog/internals/SetCookieAction.element.js.map +1 -1
  50. package/build/src/elements/environment/EnvironmentEditor.d.ts +1 -1
  51. package/build/src/elements/environment/EnvironmentEditor.d.ts.map +1 -1
  52. package/build/src/elements/environment/EnvironmentEditor.js +3 -3
  53. package/build/src/elements/environment/EnvironmentEditor.js.map +1 -1
  54. package/build/src/elements/environment/EnvironmentEditor.styles.js +1 -1
  55. package/build/src/elements/environment/EnvironmentEditor.styles.js.map +1 -1
  56. package/build/src/elements/environment/ServerEditor.d.ts +1 -1
  57. package/build/src/elements/environment/ServerEditor.d.ts.map +1 -1
  58. package/build/src/elements/environment/ServerEditor.js +7 -7
  59. package/build/src/elements/environment/ServerEditor.js.map +1 -1
  60. package/build/src/elements/environment/ServerEditor.styles.js +1 -1
  61. package/build/src/elements/environment/ServerEditor.styles.js.map +1 -1
  62. package/build/src/elements/http/BodyMultipartEditor.d.ts.map +1 -1
  63. package/build/src/elements/http/BodyMultipartEditor.js +4 -0
  64. package/build/src/elements/http/BodyMultipartEditor.js.map +1 -1
  65. package/build/src/elements/http/CertificateAdd.element.d.ts +1 -1
  66. package/build/src/elements/http/CertificateAdd.element.d.ts.map +1 -1
  67. package/build/src/elements/http/CertificateAdd.element.js +8 -8
  68. package/build/src/elements/http/CertificateAdd.element.js.map +1 -1
  69. package/build/src/elements/http/CertificateAdd.styles.js +1 -1
  70. package/build/src/elements/http/CertificateAdd.styles.js.map +1 -1
  71. package/build/src/elements/http/HttpAssertions.element.js +3 -3
  72. package/build/src/elements/http/HttpAssertions.element.js.map +1 -1
  73. package/build/src/elements/http/HttpFlows.element.js +3 -3
  74. package/build/src/elements/http/HttpFlows.element.js.map +1 -1
  75. package/build/src/elements/http/HttpFlowsUi.d.ts +1 -1
  76. package/build/src/elements/http/HttpFlowsUi.d.ts.map +1 -1
  77. package/build/src/elements/http/HttpFlowsUi.js +31 -31
  78. package/build/src/elements/http/HttpFlowsUi.js.map +1 -1
  79. package/build/src/elements/http/RequestConfigElement.d.ts +1 -1
  80. package/build/src/elements/http/RequestConfigElement.d.ts.map +1 -1
  81. package/build/src/elements/http/RequestConfigElement.js +7 -7
  82. package/build/src/elements/http/RequestConfigElement.js.map +1 -1
  83. package/build/src/elements/http/UrlParamsForm.d.ts +1 -1
  84. package/build/src/elements/http/UrlParamsForm.d.ts.map +1 -1
  85. package/build/src/elements/http/UrlParamsForm.js +1 -1
  86. package/build/src/elements/http/UrlParamsForm.js.map +1 -1
  87. package/build/src/elements/project/ProjectRunner.d.ts +1 -1
  88. package/build/src/elements/project/ProjectRunner.d.ts.map +1 -1
  89. package/build/src/elements/project/ProjectRunner.js +5 -5
  90. package/build/src/elements/project/ProjectRunner.js.map +1 -1
  91. package/build/src/md/input/Input.d.ts +0 -15
  92. package/build/src/md/input/Input.d.ts.map +1 -1
  93. package/build/src/md/input/Input.js +7 -42
  94. package/build/src/md/input/Input.js.map +1 -1
  95. package/build/src/md/list/internals/List.d.ts +7 -2
  96. package/build/src/md/list/internals/List.d.ts.map +1 -1
  97. package/build/src/md/list/internals/List.js +6 -0
  98. package/build/src/md/list/internals/List.js.map +1 -1
  99. package/build/src/md/list/internals/ListItem.styles.d.ts.map +1 -1
  100. package/build/src/md/list/internals/ListItem.styles.js +8 -0
  101. package/build/src/md/list/internals/ListItem.styles.js.map +1 -1
  102. package/build/src/md/listbox/internals/Listbox.d.ts +2 -2
  103. package/build/src/md/listbox/internals/Listbox.d.ts.map +1 -1
  104. package/build/src/md/listbox/internals/Listbox.js.map +1 -1
  105. package/build/src/md/text-area/internals/TextAreaElement.d.ts.map +1 -1
  106. package/build/src/md/text-area/internals/TextAreaElement.js +0 -5
  107. package/build/src/md/text-area/internals/TextAreaElement.js.map +1 -1
  108. package/build/src/md/text-area/ui-text-area.d.ts.map +1 -1
  109. package/build/src/md/text-area/ui-text-area.js +3 -2
  110. package/build/src/md/text-area/ui-text-area.js.map +1 -1
  111. package/build/src/md/text-field/internals/{TextFieldElement.d.ts → TextField.d.ts} +2 -2
  112. package/build/src/md/text-field/internals/TextField.d.ts.map +1 -0
  113. package/build/src/md/text-field/internals/{TextFieldElement.js → TextField.js} +2 -5
  114. package/build/src/md/text-field/internals/TextField.js.map +1 -0
  115. package/build/src/md/text-field/internals/{TextField.styles.d.ts → common.styles.d.ts} +1 -1
  116. package/build/src/md/text-field/internals/common.styles.d.ts.map +1 -0
  117. package/build/src/md/text-field/internals/{TextField.styles.js → common.styles.js} +8 -94
  118. package/build/src/md/text-field/internals/common.styles.js.map +1 -0
  119. package/build/src/md/text-field/internals/filled.styles.d.ts +3 -0
  120. package/build/src/md/text-field/internals/filled.styles.d.ts.map +1 -0
  121. package/build/src/md/text-field/internals/filled.styles.js +107 -0
  122. package/build/src/md/text-field/internals/filled.styles.js.map +1 -0
  123. package/build/src/md/text-field/internals/outlined.styles.d.ts +3 -0
  124. package/build/src/md/text-field/internals/outlined.styles.d.ts.map +1 -0
  125. package/build/src/md/text-field/internals/outlined.styles.js +43 -0
  126. package/build/src/md/text-field/internals/outlined.styles.js.map +1 -0
  127. package/build/src/md/text-field/ui-filled-text-field.d.ts +11 -0
  128. package/build/src/md/text-field/ui-filled-text-field.d.ts.map +1 -0
  129. package/build/src/md/text-field/ui-filled-text-field.js +28 -0
  130. package/build/src/md/text-field/ui-filled-text-field.js.map +1 -0
  131. package/build/src/md/text-field/ui-outlined-text-field.d.ts +11 -0
  132. package/build/src/md/text-field/ui-outlined-text-field.d.ts.map +1 -0
  133. package/build/src/md/text-field/ui-outlined-text-field.js +28 -0
  134. package/build/src/md/text-field/ui-outlined-text-field.js.map +1 -0
  135. package/build/src/types/input.d.ts +1 -1
  136. package/build/src/types/input.d.ts.map +1 -1
  137. package/build/src/types/input.js.map +1 -1
  138. package/demo/elements/authorization/oauth-authorize.html +4 -4
  139. package/demo/elements/authorization/oauth-authorize.ts +1 -1
  140. package/demo/elements/autocomplete/index.html +24 -0
  141. package/demo/elements/autocomplete/index.ts +123 -0
  142. package/demo/elements/http/body-editor.ts +3 -3
  143. package/demo/elements/index.html +15 -11
  144. package/demo/md/index.html +1 -1
  145. package/demo/md/inputs/input.html +10 -15
  146. package/demo/md/inputs/input.ts +389 -101
  147. package/demo/page.css +4 -0
  148. package/package.json +1 -1
  149. package/src/elements/authorization/ui/ApiKeyAuthorization.ts +7 -7
  150. package/src/elements/authorization/ui/Authorization.styles.ts +4 -4
  151. package/src/elements/authorization/ui/BasicAuthorization.ts +5 -5
  152. package/src/elements/authorization/ui/BearerAuthorization.ts +3 -3
  153. package/src/elements/authorization/ui/NtlmAuthorization.ts +7 -7
  154. package/src/elements/authorization/ui/OAuth2Authorization.ts +32 -27
  155. package/src/elements/authorization/ui/OidcAuthorization.ts +4 -4
  156. package/src/elements/autocomplete/autocomplete-input.ts +14 -0
  157. package/src/elements/autocomplete/internals/autocomplete.styles.ts +25 -0
  158. package/src/elements/autocomplete/internals/autocomplete.ts +490 -0
  159. package/src/elements/dialog/internals/DeleteCookieAction.element.ts +5 -5
  160. package/src/elements/dialog/internals/Rename.ts +3 -3
  161. package/src/elements/dialog/internals/SetCookieAction.element.ts +9 -9
  162. package/src/elements/environment/EnvironmentEditor.styles.ts +1 -1
  163. package/src/elements/environment/EnvironmentEditor.ts +3 -3
  164. package/src/elements/environment/ServerEditor.styles.ts +1 -1
  165. package/src/elements/environment/ServerEditor.ts +7 -7
  166. package/src/elements/http/BodyMultipartEditor.ts +4 -0
  167. package/src/elements/http/CertificateAdd.element.ts +8 -8
  168. package/src/elements/http/CertificateAdd.styles.ts +1 -1
  169. package/src/elements/http/HttpAssertions.element.ts +3 -3
  170. package/src/elements/http/HttpFlows.element.ts +3 -3
  171. package/src/elements/http/HttpFlowsUi.ts +31 -31
  172. package/src/elements/http/RequestConfigElement.ts +7 -7
  173. package/src/elements/http/UrlParamsForm.ts +1 -1
  174. package/src/elements/project/ProjectRunner.ts +5 -5
  175. package/src/md/input/Input.ts +6 -21
  176. package/src/md/list/internals/List.ts +14 -2
  177. package/src/md/list/internals/ListItem.styles.ts +8 -0
  178. package/src/md/listbox/internals/Listbox.ts +2 -2
  179. package/src/md/text-area/internals/TextAreaElement.ts +0 -5
  180. package/src/md/text-area/ui-text-area.ts +3 -2
  181. package/src/md/text-field/internals/{TextFieldElement.ts → TextField.ts} +1 -4
  182. package/src/md/text-field/internals/{TextField.styles.ts → common.styles.ts} +7 -93
  183. package/src/md/text-field/internals/filled.styles.ts +107 -0
  184. package/src/md/text-field/internals/outlined.styles.ts +43 -0
  185. package/src/md/text-field/ui-filled-text-field.ts +16 -0
  186. package/src/md/text-field/ui-outlined-text-field.ts +16 -0
  187. package/src/types/input.ts +0 -1
  188. package/test/elements/authorization/basic-method.test.ts +3 -3
  189. package/test/elements/authorization/bearer-method.test.ts +2 -2
  190. package/test/elements/authorization/ntlm-method.test.ts +4 -4
  191. package/test/elements/autocomplete/autocomplete-input.spec.ts +448 -0
  192. package/test/elements/http/BodyMultipartEditorElement.test.ts +15 -16
  193. package/test/elements/http/CertificateAdd.test.ts +11 -11
  194. package/test/elements/http/HttpAssertions.test.ts +9 -9
  195. package/test/elements/http/HttpFlows.test.ts +4 -4
  196. package/build/src/md/text-field/internals/TextField.styles.d.ts.map +0 -1
  197. package/build/src/md/text-field/internals/TextField.styles.js.map +0 -1
  198. package/build/src/md/text-field/internals/TextFieldElement.d.ts.map +0 -1
  199. package/build/src/md/text-field/internals/TextFieldElement.js.map +0 -1
  200. package/build/src/md/text-field/ui-text-field.d.ts +0 -11
  201. package/build/src/md/text-field/ui-text-field.d.ts.map +0 -1
  202. package/build/src/md/text-field/ui-text-field.js.map +0 -1
  203. package/src/md/text-field/ui-text-field.ts +0 -15
@@ -1 +1 @@
1
- {"version":3,"file":"HttpFlowsUi.js","sourceRoot":"","sources":["../../../../src/elements/http/HttpFlowsUi.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n FlowRequestDataEnum,\n FlowResponseDataEnum,\n FlowSourceEnum,\n} from '@api-client/core/models/http-flows/HttpFlows.js'\nimport * as DataSteps from '@api-client/core/models/http-flows/steps/data/index.js'\nimport * as CoreAssertions from '@api-client/core/models/http-flows/steps/assertion/index.js'\nimport * as TransformationSteps from '@api-client/core/models/http-flows/steps/transformation/index.js'\nimport { AmfNamespace } from '@api-client/core/amf/definitions/Namespace.js'\nimport type { ToBeTypes } from '@api-client/core/models/http-flows/steps/assertion/index.js'\nimport { type IHttpStep } from '@api-client/core/models/http-flows/HttpStep.js'\nimport { live } from 'lit/directives/live.js'\nimport { html, nothing, TemplateResult } from 'lit'\nimport { ifDefined } from 'lit/directives/if-defined.js'\nimport ApiElement from '../ApiElement.js'\nimport type UiChip from '../../md/chip/internals/Chip.js'\nimport type Input from '../../md/input/Input.js'\nimport type { UiDialogClosingReason } from '../../md/dialog/internals/Dialog.js'\nimport '../../md/list/ui-list.js'\nimport '../../md/list/ui-list-item.js'\nimport '../../md/dropdown-list/ui-dropdown-list.js'\nimport '../../md/icons/ui-icon.js'\nimport '../../md/icon-button/ui-icon-button.js'\nimport '../../md/text-field/ui-text-field.js'\nimport '../../md/chip/ui-chip.js'\nimport '../../md/dialog/ui-dialog.js'\nimport '../dialog/delete-cookie-action-dialog.js'\nimport '../dialog/set-cookie-action-dialog.js'\n\nexport interface ChipCreateInfo {\n source?: FlowSourceEnum\n data?: FlowRequestDataEnum | FlowResponseDataEnum\n variant?: string\n disabled?: boolean\n title?: string\n}\n\nexport interface StepsTarget {\n steps: IHttpStep[]\n}\n\n/**\n * The base UI class for HTTP flows and assertions\n * since they are practically the same concept.\n */\nexport abstract class HttpFlowsUi extends ApiElement {\n /**\n * A chip that is currently being dragged in the UI.\n */\n protected draggedChip?: UiChip\n\n /**\n * Because of the differences in the model between assertions and flows we need to abstract a method\n * to find an object that contains the `steps` so the logic can operate on it.\n *\n * @param assertionOrActionIndex The index of the assertion or the action in the model.\n */\n protected abstract getStepsTarget(assertionOrActionIndex: number): StepsTarget | undefined\n\n /**\n * A method to read an HttpStep from an event.\n */\n protected abstract stepFromChangeEvent(e: Event): IHttpStep | undefined\n\n /**\n * Checks whether the dragged element has the required content in the data transfer.\n */\n protected isValidDropTarget(dataTransfer?: DataTransfer | null): boolean {\n if (!dataTransfer) {\n return false\n }\n const { types } = dataTransfer\n return types.includes('flow/group') && types.includes('flow/kind')\n }\n\n /**\n * Handles the suggestion chip drag start event.\n */\n protected handleChipDragStart(e: DragEvent): void {\n const { dataTransfer } = e\n if (!dataTransfer) {\n return\n }\n const chip = e.target as UiChip\n const { group, kind, source, data, variant } = chip.dataset\n if (!group || !kind) {\n return\n }\n this.illustrateDraggedChip(chip, dataTransfer)\n dataTransfer.setData('flow/group', group)\n dataTransfer.setData('flow/kind', kind)\n dataTransfer.setData(`flow/${group}`, '')\n dataTransfer.setData(`flow/${kind}`, '')\n if (source) {\n dataTransfer.setData('flow/source', source)\n }\n if (data) {\n dataTransfer.setData('flow/data', data)\n }\n if (variant) {\n dataTransfer.setData('flow/variant', variant)\n }\n chip.blur()\n }\n\n /**\n * Handles the suggestion chip drag end event.\n */\n protected handleChipDragEnd(e: DragEvent): void {\n const { draggedChip } = this\n if (!draggedChip) {\n return\n }\n e.preventDefault()\n draggedChip.parentElement?.removeChild(draggedChip)\n }\n\n /**\n * When interacting with a chip an MD ripple effect is generated.\n * This causes the default drag image to include the surrounding ripple effect and\n * everything around. This makes a copy of the chip and sets it as the drag image.\n *\n * Note, the copy of the chip has to be added to the DOM and be there for some time\n * so the browser render it and set as the image. Because of that the copy is removed\n * with the drop and not immediately.\n */\n protected illustrateDraggedChip(chip: UiChip, dataTransfer: DataTransfer): void {\n const copy = chip.cloneNode(true) as UiChip\n copy.style.position = 'absolute'\n copy.style.top = `-100px`\n this.draggedChip = copy\n document.body.appendChild(copy)\n dataTransfer.setDragImage(copy, 0, 0)\n }\n\n /**\n * Removes all `dragover` classes from elements on the shadow DOM.\n */\n protected resetDragIndices(): void {\n const nodes = (this.shadowRoot as ShadowRoot).querySelectorAll('.dragover')\n Array.from(nodes).forEach((n) => n.classList.remove('dragover'))\n }\n\n /**\n * A handler for the `dragover` event over a valid target.\n * Sets the `dragover` class on the target.\n */\n protected handleTargetDragOver(e: DragEvent): void {\n const { draggedChip } = this\n if (!draggedChip || e.defaultPrevented || !this.isValidDropTarget(e.dataTransfer)) {\n return\n }\n e.preventDefault()\n const dt = e.dataTransfer as DataTransfer\n dt.dropEffect = 'copy'\n const target = e.currentTarget as HTMLElement\n target.classList.add('dragover')\n }\n\n /**\n * A handler for the `dragleave` event over a valid target.\n * Removes the `dragover` class from the target.\n */\n protected handleTargetDragLeave(e: DragEvent): void {\n if (e.defaultPrevented || !this.isValidDropTarget(e.dataTransfer)) {\n return\n }\n const target = e.currentTarget as HTMLElement\n target.classList.remove('dragover')\n }\n\n /**\n * Reads the `data-index` and `data-step-index` from the target of the event\n * and calls the `processDrop()` with read values.\n */\n protected handleDrop(e: DragEvent): void {\n const { dataTransfer } = e\n if (!dataTransfer || e.defaultPrevented || !this.isValidDropTarget(dataTransfer)) {\n return\n }\n e.preventDefault()\n this.resetDragIndices()\n const { index, stepIndex } = (e.target as HTMLElement).dataset\n const assertionOrActionIndex = Number(index)\n if (Number.isNaN(assertionOrActionIndex)) {\n return\n }\n let typedStepIndex: number | undefined\n if (stepIndex) {\n const tmp = Number(stepIndex)\n if (!Number.isNaN(tmp)) {\n typedStepIndex = tmp\n }\n }\n this.processDrop(dataTransfer, assertionOrActionIndex, typedStepIndex)\n }\n\n /**\n * A logic executed when a suggestion chip drop happens on a valid target.\n *\n * @param dataTransfer The event's dataTransfer object\n * @param assertionOrActionIndex Action's or assertion's index where the drop happened.\n * @param stepIndex The detected index of the step. When not set it adds the step at the end.\n */\n protected processDrop(dataTransfer: DataTransfer, assertionOrActionIndex: number, stepIndex?: number): void {\n const group = dataTransfer.getData('flow/group')\n if (!group) {\n return\n }\n if (group === 'data-source') {\n this.processDataSourceDrop(dataTransfer, assertionOrActionIndex, stepIndex)\n } else if (group === 'transformation') {\n this.processTransformationDrop(dataTransfer, assertionOrActionIndex, stepIndex)\n } else if (group === 'assertion') {\n this.processAssertionDrop(dataTransfer, assertionOrActionIndex, stepIndex)\n } else if (group === 'action') {\n this.processActionDrop(dataTransfer, assertionOrActionIndex, stepIndex)\n }\n }\n\n /**\n * Processes dropping of a `data-source` suggestion chip.\n */\n protected processDataSourceDrop(\n dataTransfer: DataTransfer,\n assertionOrActionIndex: number,\n stepIndex?: number\n ): void {\n const target = this.getStepsTarget(assertionOrActionIndex)\n if (!target) {\n return\n }\n this.setupDataSource(target, dataTransfer, stepIndex)\n }\n\n /**\n * Processes dropping of a `transformation` suggestion chip.\n */\n protected processTransformationDrop(\n dataTransfer: DataTransfer,\n assertionOrActionIndex: number,\n stepIndex?: number\n ): void {\n const target = this.getStepsTarget(assertionOrActionIndex)\n if (!target) {\n return\n }\n this.setupTransformation(target, dataTransfer, stepIndex)\n }\n\n /**\n * Processes dropping of a `assertion` suggestion chip.\n */\n protected processAssertionDrop(dataTransfer: DataTransfer, assertionOrActionIndex: number, stepIndex?: number): void {\n const target = this.getStepsTarget(assertionOrActionIndex)\n if (!target) {\n return\n }\n this.setupAssertion(target, dataTransfer, stepIndex)\n }\n\n /**\n * Processes dropping of a `action` suggestion chip.\n */\n protected processActionDrop(dataTransfer: DataTransfer, assertionOrActionIndex: number, stepIndex?: number): void {\n const target = this.getStepsTarget(assertionOrActionIndex)\n if (!target) {\n return\n }\n this.setupAction(target, dataTransfer, stepIndex)\n }\n\n protected setupDataSource(target: StepsTarget, dataTransfer: DataTransfer, stepIndex?: number): void {\n const source = dataTransfer.getData('flow/source') as FlowSourceEnum\n const data = dataTransfer.getData('flow/data') as FlowRequestDataEnum | FlowResponseDataEnum\n const step = new DataSteps.ReadDataSourceStep(source, data).toJSON()\n this.appendStep(step, target, stepIndex)\n }\n\n protected setupTransformation(target: StepsTarget, dataTransfer: DataTransfer, stepIndex?: number): void {\n let step: IHttpStep | undefined\n const kind = dataTransfer.getData('flow/kind')\n if (kind === DataSteps.ReadValueStepKind) {\n step = new DataSteps.ReadValueStep().toJSON()\n } else if (kind === TransformationSteps.AsNumberStepKind) {\n step = new TransformationSteps.AsNumberStep().toJSON()\n } else if (kind === TransformationSteps.RoundStepKind) {\n step = new TransformationSteps.RoundStep().toJSON()\n } else if (kind === TransformationSteps.AsLowerCaseStepKind) {\n step = new TransformationSteps.AsLowerCaseStep().toJSON()\n } else if (kind === TransformationSteps.AsUpperCaseStepKind) {\n step = new TransformationSteps.AsUpperCaseStep().toJSON()\n } else if (kind === TransformationSteps.TrimStepKind) {\n step = new TransformationSteps.TrimStep().toJSON()\n } else if (kind === TransformationSteps.SubstringStepKind) {\n step = new TransformationSteps.SubstringStep().toJSON()\n }\n if (!step) {\n return\n }\n this.appendStep(step, target, stepIndex)\n }\n\n protected setupAssertion(target: StepsTarget, dataTransfer: DataTransfer, stepIndex?: number): void {\n let step: IHttpStep | undefined\n const kind = dataTransfer.getData('flow/kind')\n if (kind === CoreAssertions.EqualAssertionKind) {\n step = new CoreAssertions.EqualAssertion().toJSON()\n } else if (kind === CoreAssertions.NotEqualAssertionKind) {\n step = new CoreAssertions.NotEqualAssertion().toJSON()\n } else if (kind === CoreAssertions.GreaterThanAssertionKind) {\n const instance = new CoreAssertions.GreaterThanAssertion()\n if (dataTransfer.getData('flow/variant') === 'equal') {\n instance.equal = true\n }\n step = instance.toJSON()\n } else if (kind === CoreAssertions.LessThanAssertionKind) {\n const instance = new CoreAssertions.LessThanAssertion()\n if (dataTransfer.getData('flow/variant') === 'equal') {\n instance.equal = true\n }\n step = instance.toJSON()\n } else if (kind === CoreAssertions.IncludesAssertionKind) {\n step = new CoreAssertions.IncludesAssertion().toJSON()\n } else if (kind === CoreAssertions.NotIncludesAssertionKind) {\n step = new CoreAssertions.NotIncludesAssertion().toJSON()\n } else if (kind === CoreAssertions.MatchesAssertionKind) {\n step = new CoreAssertions.MatchesAssertion().toJSON()\n } else if (kind === CoreAssertions.OkAssertionKind) {\n step = new CoreAssertions.OkAssertion().toJSON()\n } else if (kind === CoreAssertions.NotOkAssertionKind) {\n step = new CoreAssertions.NotOkAssertion().toJSON()\n } else if (kind === CoreAssertions.ToBeAssertionKind) {\n step = new CoreAssertions.ToBeAssertion().toJSON()\n } else if (kind === CoreAssertions.NotToBeAssertionKind) {\n step = new CoreAssertions.NotToBeAssertion().toJSON()\n }\n if (!step) {\n return\n }\n this.appendStep(step, target, stepIndex)\n }\n\n protected setupAction(target: StepsTarget, dataTransfer: DataTransfer, stepIndex?: number): void {\n let step: IHttpStep | undefined\n const kind = dataTransfer.getData('flow/kind')\n if (kind === DataSteps.SetCookieStepKind) {\n step = new DataSteps.SetCookieStep().toJSON()\n } else if (kind === DataSteps.SetVariableStepKind) {\n step = new DataSteps.SetVariableStep().toJSON()\n } else if (kind === DataSteps.DeleteCookieStepKind) {\n step = new DataSteps.DeleteCookieStep().toJSON()\n } else if (kind === DataSteps.DeleteVariableStepKind) {\n step = new DataSteps.DeleteVariableStep().toJSON()\n }\n if (!step) {\n return\n }\n this.appendStep(step, target, stepIndex)\n }\n\n protected appendStep(step: IHttpStep, target: StepsTarget, stepIndex?: number): void {\n if (stepIndex === undefined) {\n target.steps.push(step)\n } else if (stepIndex === -1) {\n target.steps.unshift(step)\n } else {\n target.steps.splice(stepIndex, 0, step)\n }\n this.requestUpdate()\n this.notifyChange()\n }\n\n protected removeStep(target: StepsTarget, stepIndex: number): void {\n target.steps.splice(stepIndex, 1)\n this.notifyChange()\n this.requestUpdate()\n }\n\n protected handleSubstringStartChange(e: Event): void {\n const step = this.stepFromChangeEvent(e) as TransformationSteps.ISubstringStep | undefined\n if (!step) {\n return\n }\n const input = e.target as Input\n input.checkValidity()\n step.start = input.valueAsNumber\n this.requestUpdate()\n this.notifyChange()\n }\n\n protected handleSubstringEndChange(e: Event): void {\n const step = this.stepFromChangeEvent(e) as TransformationSteps.ISubstringStep | undefined\n if (!step) {\n return\n }\n const input = e.target as Input\n input.checkValidity()\n step.end = input.valueAsNumber\n this.requestUpdate()\n this.notifyChange()\n }\n\n protected handleRoundPrecisionChange(e: Event): void {\n const step = this.stepFromChangeEvent(e) as TransformationSteps.IRoundStep | undefined\n if (!step) {\n return\n }\n const input = e.target as Input\n input.checkValidity()\n step.precision = input.valueAsNumber\n this.requestUpdate()\n this.notifyChange()\n }\n\n protected handleReadValueStepChange(e: Event): void {\n const step = this.stepFromChangeEvent(e) as DataSteps.IReadValueStep | undefined\n if (!step) {\n return\n }\n const input = e.target as Input\n input.checkValidity()\n step.path = input.value\n this.requestUpdate()\n this.notifyChange()\n }\n\n protected handleGreaterThanAssertionValueChange(e: Event): void {\n const step = this.stepFromChangeEvent(e) as CoreAssertions.IGreaterThanAssertion | undefined\n if (!step) {\n return\n }\n const input = e.target as Input\n input.checkValidity()\n step.value = Number(input.value)\n this.requestUpdate()\n this.notifyChange()\n }\n\n protected handleLessThanAssertionValueChange(e: Event): void {\n const step = this.stepFromChangeEvent(e) as CoreAssertions.ILessThanAssertion | undefined\n if (!step) {\n return\n }\n const input = e.target as Input\n input.checkValidity()\n step.value = Number(input.value)\n this.requestUpdate()\n this.notifyChange()\n }\n\n protected handleIncludesAssertionValueChange(e: Event): void {\n const step = this.stepFromChangeEvent(e) as CoreAssertions.IIncludesAssertion | undefined\n if (!step) {\n return\n }\n const input = e.target as Input\n input.checkValidity()\n step.value = input.value\n this.requestUpdate()\n this.notifyChange()\n }\n\n protected handleToBeAssertionValueChange(e: Event): void {\n const step = this.stepFromChangeEvent(e) as\n | CoreAssertions.IToBeAssertion\n | CoreAssertions.INotToBeAssertion\n | undefined\n if (!step) {\n return\n }\n const input = e.target as Input\n input.checkValidity()\n step.value = input.value as ToBeTypes\n this.requestUpdate()\n this.notifyChange()\n }\n\n protected handleMatchesAssertionValueChange(e: Event): void {\n const step = this.stepFromChangeEvent(e) as CoreAssertions.IMatchesAssertion | undefined\n if (!step) {\n return\n }\n const input = e.target as Input\n step.value = input.value\n this.requestUpdate()\n this.notifyChange()\n }\n\n protected handleEqualAssertionValueChange(e: Event): void {\n const input = e.target as Input\n input.checkValidity()\n const assertionOrActionIndex = Number(input.dataset.assertionIndex)\n const stepIndex = Number(input.dataset.stepIndex)\n if (Number.isNaN(assertionOrActionIndex) || Number.isNaN(stepIndex)) {\n return\n }\n const stepsTarget = this.getStepsTarget(assertionOrActionIndex)\n if (!stepsTarget) {\n return\n }\n const step = stepsTarget.steps[stepIndex] as CoreAssertions.IEqualAssertion | undefined\n if (!step) {\n return\n }\n step.value = input.value\n step.dataType = this.detectInputDataType(stepsTarget.steps.slice(0, stepIndex))\n this.requestUpdate()\n this.notifyChange()\n }\n\n /**\n * Detects the correct data type for the step value based on previous steps.\n *\n * @param steps The steps before the current step\n * @returns The data type for the step in the AMF namespace.\n */\n protected detectInputDataType(steps: IHttpStep[]): string {\n // we reverse the list so we move from the last step.\n const reversed = [...steps].reverse()\n for (const step of reversed) {\n if (step.kind === TransformationSteps.AsNumberStepKind) {\n return AmfNamespace.aml.vocabularies.shapes.number\n }\n if (step.kind === DataSteps.ReadDataSourceStepKind) {\n const typed = step as DataSteps.IReadDataSourceStep\n if (typed.data === FlowResponseDataEnum.status) {\n return AmfNamespace.aml.vocabularies.shapes.number\n }\n }\n }\n return AmfNamespace.w3.xmlSchema.string\n }\n\n protected validateRegexPattern(e: Event): void {\n const input = e.target as Input\n try {\n RegExp(input.value)\n input.setCustomValidity('')\n } catch {\n input.setCustomValidity('Pattern is invalid')\n }\n input.reportValidity()\n }\n\n protected handleVariableNameChange(e: Event): void {\n const step = this.stepFromChangeEvent(e) as DataSteps.ISetVariableStep | DataSteps.IDeleteVariableStep | undefined\n if (!step) {\n return\n }\n const input = e.target as Input\n step.name = input.value\n this.requestUpdate()\n this.notifyChange()\n }\n\n protected handleRemoveStep(e: Event): void {\n const target = e.currentTarget as HTMLElement\n const assertionOrActionIndex = Number(target.dataset.index)\n const stepIndex = Number(target.dataset.stepIndex)\n if (Number.isNaN(assertionOrActionIndex) || Number.isNaN(stepIndex)) {\n return\n }\n const stepsTarget = this.getStepsTarget(assertionOrActionIndex)\n if (!stepsTarget) {\n return\n }\n this.removeStep(stepsTarget, stepIndex)\n }\n\n protected handleConfigureDeleteCookieStep(e: Event): void {\n const info = this.getEventStepLocation(e)\n if (!info) {\n return\n }\n const stepsTarget = this.getStepsTarget(info.actionIndex)\n if (!stepsTarget) {\n return\n }\n const step = stepsTarget.steps[info.stepIndex] as DataSteps.IDeleteCookieStep\n const dialog = document.createElement('delete-cookie-action-dialog')\n dialog.step = step\n dialog.modal = true\n dialog.open = true\n document.body.appendChild(dialog)\n dialog.addEventListener('close', (ev: Event): void => {\n document.parentElement?.removeChild(dialog)\n const typed = ev as CustomEvent<UiDialogClosingReason>\n if (typed.detail.cancelled) {\n return\n }\n const value = typed.detail.value as DataSteps.IDeleteCookieStep\n\n if (!stepsTarget) {\n return\n }\n stepsTarget.steps[info.stepIndex] = value\n this.notifyChange()\n this.requestUpdate()\n })\n }\n\n protected handleConfigureSetCookieStep(e: Event): void {\n const info = this.getEventStepLocation(e)\n if (!info) {\n return\n }\n const stepsTarget = this.getStepsTarget(info.actionIndex)\n if (!stepsTarget) {\n return\n }\n const step = stepsTarget.steps[info.stepIndex] as DataSteps.ISetCookieStep\n const dialog = document.createElement('set-cookie-action-dialog')\n dialog.step = step\n dialog.modal = true\n dialog.open = true\n document.body.appendChild(dialog)\n dialog.addEventListener('close', (ev: Event): void => {\n document.parentElement?.removeChild(dialog)\n const typed = ev as CustomEvent<UiDialogClosingReason>\n if (typed.detail.cancelled) {\n return\n }\n const value = typed.detail.value as DataSteps.ISetCookieStep\n if (!stepsTarget) {\n return\n }\n stepsTarget.steps[info.stepIndex] = value\n this.notifyChange()\n this.requestUpdate()\n })\n }\n\n protected getEventStepLocation(e: Event): { actionIndex: number; stepIndex: number } | undefined {\n const button = e.currentTarget as HTMLElement\n const { index: ai, stepIndex: si } = button.dataset\n const actionIndex = Number(ai)\n const stepIndex = Number(si)\n if (Number.isNaN(actionIndex) || Number.isNaN(stepIndex)) {\n return undefined\n }\n return {\n actionIndex,\n stepIndex,\n }\n }\n\n protected renderBlockChip(label: string, group: string, kind: string, opts: ChipCreateInfo = {}): TemplateResult {\n const { data, disabled, source, variant, title } = opts\n return html`\n <ui-chip\n draggable=\"true\"\n data-group=\"${group}\"\n data-kind=\"${kind}\"\n data-source=\"${ifDefined(source)}\"\n data-data=\"${ifDefined(data)}\"\n data-variant=\"${ifDefined(variant)}\"\n @dragstart=\"${this.handleChipDragStart}\"\n @dragend=\"${this.handleChipDragEnd}\"\n ?disabled=\"${disabled}\"\n title=\"${ifDefined(title)}\"\n >${label}</ui-chip\n >\n `\n }\n\n protected renderDropSpacer(assertionOrActionIndex: number, stepIndex: number): TemplateResult {\n return html`<div\n class=\"drop-target spacer\"\n data-index=\"${assertionOrActionIndex}\"\n data-step-index=\"${stepIndex}\"\n @drop=\"${this.handleDrop}\"\n @dragover=\"${this.handleTargetDragOver}\"\n @dragleave=\"${this.handleTargetDragLeave}\"\n ></div>`\n }\n\n protected renderStepPill(\n label: string,\n assertionOrActionIndex: number,\n stepIndex: number,\n suffix?: TemplateResult\n ): TemplateResult {\n return html`\n <span class=\"step-pill with-icon\">\n ${label} ${suffix || nothing}\n <ui-icon-button\n title=\"Remove\"\n aria-label=\"Deletes this step\"\n @click=\"${this.handleRemoveStep}\"\n data-index=\"${assertionOrActionIndex}\"\n data-step-index=\"${stepIndex}\"\n ><ui-icon icon=\"close\" role=\"presentation\"></ui-icon\n ></ui-icon-button>\n </span>\n `\n }\n\n protected renderSteps(item: StepsTarget, assertionOrActionIndex: number): TemplateResult {\n const content =\n Array.isArray(item.steps) && !!item.steps.length\n ? this.renderStepsList(item.steps, assertionOrActionIndex)\n : this.renderEmptyStep(assertionOrActionIndex)\n return html`\n <div\n class=\"steps\"\n data-index=\"${assertionOrActionIndex}\"\n @drop=\"${this.handleDrop}\"\n @dragover=\"${this.handleTargetDragOver}\"\n @dragleave=\"${this.handleTargetDragLeave}\"\n >\n ${content}\n </div>\n `\n }\n\n protected renderEmptyStep(actionIndex: number): TemplateResult {\n return html`\n <span\n class=\"step-pill empty drop-target space-step-left\"\n data-index=\"${actionIndex}\"\n @drop=\"${this.handleDrop}\"\n @dragover=\"${this.handleTargetDragOver}\"\n >Empty slot</span\n >\n <span\n class=\"drop-info drop-target space-step-left\"\n data-index=\"${actionIndex}\"\n @drop=\"${this.handleDrop}\"\n @dragover=\"${this.handleTargetDragOver}\"\n >Drop an action here</span\n >\n `\n }\n\n protected renderStepsList(steps: IHttpStep[], assertionOrActionIndex: number): TemplateResult[] {\n const items: TemplateResult[] = []\n steps.forEach((item, stepIndex) => {\n const content = this.renderStep(item, assertionOrActionIndex, stepIndex)\n if (content) {\n items.push(html`\n <div class=\"step-unit\">${this.renderDropSpacer(assertionOrActionIndex, stepIndex)} ${content}</div>\n `)\n }\n })\n return items\n }\n\n protected renderStep(item: IHttpStep, assertionOrActionIndex: number, stepIndex: number): TemplateResult | undefined {\n const { kind } = item\n switch (kind) {\n // actions\n case DataSteps.ReadDataSourceStepKind:\n return this.renderReadDataSourceStep(item, assertionOrActionIndex, stepIndex)\n case DataSteps.ReadValueStepKind:\n return this.renderReadValueStep(item as DataSteps.IReadValueStep, assertionOrActionIndex, stepIndex)\n case DataSteps.DeleteCookieStepKind:\n return this.renderDeleteCookieStep(item as DataSteps.IDeleteCookieStep, assertionOrActionIndex, stepIndex)\n case DataSteps.SetCookieStepKind:\n return this.renderSetCookieStep(item as DataSteps.ISetCookieStep, assertionOrActionIndex, stepIndex)\n case DataSteps.SetVariableStepKind:\n return this.renderSetVariableStep(item as DataSteps.ISetVariableStep, assertionOrActionIndex, stepIndex)\n case DataSteps.DeleteVariableStepKind:\n return this.renderDeleteVariableStep(item as DataSteps.IDeleteVariableStep, assertionOrActionIndex, stepIndex)\n\n // transformations\n case TransformationSteps.AsNumberStepKind:\n return this.renderStepPill('As number', assertionOrActionIndex, stepIndex)\n case TransformationSteps.AsLowerCaseStepKind:\n return this.renderStepPill('To lower case', assertionOrActionIndex, stepIndex)\n case TransformationSteps.AsUpperCaseStepKind:\n return this.renderStepPill('To upper case', assertionOrActionIndex, stepIndex)\n case TransformationSteps.TrimStepKind:\n return this.renderStepPill('Trim', assertionOrActionIndex, stepIndex)\n case TransformationSteps.RoundStepKind:\n return this.renderRoundStep(item as TransformationSteps.IRoundStep, assertionOrActionIndex, stepIndex)\n case TransformationSteps.SubstringStepKind:\n return this.renderSubstringStep(item as TransformationSteps.ISubstringStep, assertionOrActionIndex, stepIndex)\n\n // assertions\n case CoreAssertions.EqualAssertionKind:\n return this.renderEqualAssertion(item as CoreAssertions.IEqualAssertion, assertionOrActionIndex, stepIndex)\n case CoreAssertions.NotEqualAssertionKind:\n return this.renderNotEqualAssertion(\n item as CoreAssertions.INotEqualAssertion,\n assertionOrActionIndex,\n stepIndex\n )\n case CoreAssertions.GreaterThanAssertionKind:\n return this.renderGreaterThanAssertion(\n item as CoreAssertions.IGreaterThanAssertion,\n assertionOrActionIndex,\n stepIndex\n )\n case CoreAssertions.LessThanAssertionKind:\n return this.renderLessThanAssertion(\n item as CoreAssertions.ILessThanAssertion,\n assertionOrActionIndex,\n stepIndex\n )\n case CoreAssertions.IncludesAssertionKind:\n return this.renderIncludesAssertion(\n item as CoreAssertions.IIncludesAssertion,\n assertionOrActionIndex,\n stepIndex\n )\n case CoreAssertions.NotIncludesAssertionKind:\n return this.renderNotIncludesAssertion(\n item as CoreAssertions.INotIncludesAssertion,\n assertionOrActionIndex,\n stepIndex\n )\n case CoreAssertions.MatchesAssertionKind:\n return this.renderMatchesAssertion(item as CoreAssertions.IMatchesAssertion, assertionOrActionIndex, stepIndex)\n case CoreAssertions.OkAssertionKind:\n return this.renderStepPill('Is OK', assertionOrActionIndex, stepIndex)\n case CoreAssertions.NotOkAssertionKind:\n return this.renderStepPill('Is not OK', assertionOrActionIndex, stepIndex)\n case CoreAssertions.ToBeAssertionKind:\n return this.renderToBeAssertion(item as CoreAssertions.IToBeAssertion, assertionOrActionIndex, stepIndex)\n case CoreAssertions.NotToBeAssertionKind:\n return this.renderNotToBeAssertion(item as CoreAssertions.INotToBeAssertion, assertionOrActionIndex, stepIndex)\n\n default:\n // eslint-disable-next-line no-console\n console.warn(`Unsupported step`, kind)\n return undefined\n }\n }\n\n protected renderReadDataSourceStep(\n item: DataSteps.IReadDataSourceStep,\n actionIndex: number,\n stepIndex: number\n ): TemplateResult | undefined {\n const { data, source } = item\n if (!data || !source) {\n // invalid configuration\n return undefined\n }\n let label: string | undefined\n if (source === FlowSourceEnum.response) {\n if (data === FlowResponseDataEnum.url) {\n label = 'Response URL'\n } else if (data === FlowResponseDataEnum.headers) {\n label = 'Response headers'\n } else if (data === FlowResponseDataEnum.status) {\n label = 'Status code'\n } else if (data === FlowResponseDataEnum.statusText) {\n label = 'Status message'\n } else if (data === FlowResponseDataEnum.body) {\n label = 'Response body'\n }\n } else if (source === FlowSourceEnum.request) {\n if (data === FlowRequestDataEnum.url) {\n label = 'Request URL'\n } else if (data === FlowRequestDataEnum.headers) {\n label = 'Request headers'\n } else if (data === FlowRequestDataEnum.body) {\n label = 'Request body'\n } else if (data === FlowRequestDataEnum.method) {\n label = 'Request method'\n }\n }\n if (!label) {\n return undefined\n }\n return this.renderStepPill(label, actionIndex, stepIndex)\n }\n\n protected renderReadValueStep(\n item: DataSteps.IReadValueStep,\n assertionOrActionIndex: number,\n stepIndex: number\n ): TemplateResult {\n const pill = this.renderStepPill('Read value', assertionOrActionIndex, stepIndex)\n return html`\n ${pill}\n <ui-text-field\n name=\"value.${assertionOrActionIndex}.${stepIndex}\"\n data-assertion-index=\"${assertionOrActionIndex}\"\n data-step-index=\"${stepIndex}\"\n label=\"Path to value\"\n required\n .value=\"${live(item.path || '')}\"\n class=\"space-step-left\"\n @change=\"${this.handleReadValueStepChange}\"\n ></ui-text-field>\n `\n }\n\n protected renderDeleteCookieStep(\n item: DataSteps.IDeleteCookieStep,\n assertionOrActionIndex: number,\n stepIndex: number\n ): TemplateResult {\n const { name, url } = item\n let label: string\n if (name && url) {\n label = 'by name and URL'\n } else if (name) {\n label = 'by name'\n } else if (url) {\n label = 'by URL'\n } else {\n label = 'all cookies'\n }\n\n const suffix = html`\n <ui-icon-button\n title=\"Configure this step\"\n aria-label=\"Configure this step\"\n data-index=\"${assertionOrActionIndex}\"\n data-step-index=\"${stepIndex}\"\n @click=\"${this.handleConfigureDeleteCookieStep}\"\n ><ui-icon icon=\"tune\" role=\"presentation\"></ui-icon\n ></ui-icon-button>\n `\n const pill = this.renderStepPill(`Delete cookie (${label})`, assertionOrActionIndex, stepIndex, suffix)\n return pill\n }\n\n protected renderSetCookieStep(\n item: DataSteps.ISetCookieStep,\n assertionOrActionIndex: number,\n stepIndex: number\n ): TemplateResult {\n const suffix = html`\n <ui-icon-button\n title=\"Configure this step\"\n aria-label=\"Configure this step\"\n data-index=\"${assertionOrActionIndex}\"\n data-step-index=\"${stepIndex}\"\n @click=\"${this.handleConfigureSetCookieStep}\"\n ><ui-icon icon=\"tune\" role=\"presentation\"></ui-icon\n ></ui-icon-button>\n `\n const pill = this.renderStepPill('Set cookie', assertionOrActionIndex, stepIndex, suffix)\n return pill\n }\n\n protected renderSetVariableStep(\n item: DataSteps.ISetVariableStep,\n assertionOrActionIndex: number,\n stepIndex: number\n ): TemplateResult {\n const { name = '' } = item\n const pill = this.renderStepPill('Set variable', assertionOrActionIndex, stepIndex)\n return html`\n ${pill}\n <ui-text-field\n name=\"variable.${assertionOrActionIndex}.${stepIndex}\"\n data-assertion-index=\"${assertionOrActionIndex}\"\n data-step-index=\"${stepIndex}\"\n label=\"Variable name\"\n required\n .value=\"${live(name)}\"\n @change=\"${this.handleVariableNameChange}\"\n class=\"space-step-left\"\n pattern=\"[a-zA-Z0-9_]+\"\n aria-label=\"Variable name\"\n ></ui-text-field>\n `\n }\n\n protected renderDeleteVariableStep(\n item: DataSteps.IDeleteVariableStep,\n assertionOrActionIndex: number,\n stepIndex: number\n ): TemplateResult {\n const { name = '' } = item\n const pill = this.renderStepPill('Delete variable', assertionOrActionIndex, stepIndex)\n return html`\n ${pill}\n <ui-text-field\n name=\"variable.${assertionOrActionIndex}.${stepIndex}\"\n data-assertion-index=\"${assertionOrActionIndex}\"\n data-step-index=\"${stepIndex}\"\n label=\"Variable name\"\n required\n .value=\"${live(name)}\"\n @change=\"${this.handleVariableNameChange}\"\n class=\"space-step-left\"\n pattern=\"[a-zA-Z0-9_]+\"\n aria-label=\"Variable name\"\n ></ui-text-field>\n `\n }\n\n protected renderRoundStep(\n item: TransformationSteps.IRoundStep,\n assertionOrActionIndex: number,\n stepIndex: number\n ): TemplateResult {\n const pill = this.renderStepPill('Round', assertionOrActionIndex, stepIndex)\n const { precision = 0 } = item\n return html`\n ${pill}\n <ui-text-field\n name=\"precision.${assertionOrActionIndex}.${stepIndex}\"\n data-assertion-index=\"${assertionOrActionIndex}\"\n data-step-index=\"${stepIndex}\"\n label=\"Precision\"\n required\n .value=\"${live(String(precision))}\"\n @change=\"${this.handleRoundPrecisionChange}\"\n class=\"space-step-left number-input\"\n type=\"number\"\n min=\"0\"\n max=\"100\"\n step=\"1\"\n title=\"The number of digits to appear after the decimal point. Should be a value between 0 and 100, inclusive.\"\n ></ui-text-field>\n `\n }\n\n protected renderSubstringStep(\n item: TransformationSteps.ISubstringStep,\n assertionOrActionIndex: number,\n stepIndex: number\n ): TemplateResult {\n const pill = this.renderStepPill('Substring', assertionOrActionIndex, stepIndex)\n const { start = 0, end } = item\n return html`\n ${pill}\n <ui-text-field\n name=\"start.${assertionOrActionIndex}.${stepIndex}\"\n data-assertion-index=\"${assertionOrActionIndex}\"\n data-step-index=\"${stepIndex}\"\n label=\"Start\"\n required\n .value=\"${live(String(start))}\"\n @change=\"${this.handleSubstringStartChange}\"\n class=\"space-step-left number-input\"\n type=\"number\"\n step=\"1\"\n title=\"The index of the first character to include in the returned substring.\"\n ></ui-text-field>\n\n <ui-text-field\n name=\"end.${assertionOrActionIndex}.${stepIndex}\"\n data-assertion-index=\"${assertionOrActionIndex}\"\n data-step-index=\"${stepIndex}\"\n label=\"End\"\n .value=\"${live(end ? String(end) : '')}\"\n @change=\"${this.handleSubstringEndChange}\"\n class=\"space-step-left number-input\"\n type=\"number\"\n step=\"1\"\n title=\"The index of the first character to exclude from the returned substring.\"\n ></ui-text-field>\n `\n }\n\n protected renderEqualAssertion(\n item: CoreAssertions.IEqualAssertion,\n assertionOrActionIndex: number,\n stepIndex: number\n ): TemplateResult {\n return html`\n <ui-text-field\n name=\"equal.${assertionOrActionIndex}.${stepIndex}\"\n data-assertion-index=\"${assertionOrActionIndex}\"\n data-step-index=\"${stepIndex}\"\n data-kind=\"${CoreAssertions.EqualAssertionKind}\"\n label=\"Equal to\"\n required\n .value=\"${live(item.value || '')}\"\n @change=\"${this.handleEqualAssertionValueChange}\"\n >\n <ui-icon-button\n slot=\"suffix\"\n title=\"Remove assertion\"\n aria-label=\"Deletes this assertion\"\n @click=\"${this.handleRemoveStep}\"\n data-index=\"${assertionOrActionIndex}\"\n data-step-index=\"${stepIndex}\"\n ><ui-icon icon=\"close\" role=\"presentation\"></ui-icon\n ></ui-icon-button>\n </ui-text-field>\n `\n }\n\n protected renderNotEqualAssertion(\n item: CoreAssertions.INotEqualAssertion,\n assertionOrActionIndex: number,\n stepIndex: number\n ): TemplateResult {\n return html`\n <ui-text-field\n name=\"not-equal.${assertionOrActionIndex}.${stepIndex}\"\n data-assertion-index=\"${assertionOrActionIndex}\"\n data-step-index=\"${stepIndex}\"\n data-kind=\"${CoreAssertions.NotEqualAssertionKind}\"\n label=\"Not equal to\"\n required\n .value=\"${live(item.value || '')}\"\n @change=\"${this.handleEqualAssertionValueChange}\"\n >\n <ui-icon-button\n slot=\"suffix\"\n title=\"Remove assertion\"\n aria-label=\"Deletes this assertion\"\n @click=\"${this.handleRemoveStep}\"\n data-index=\"${assertionOrActionIndex}\"\n data-step-index=\"${stepIndex}\"\n ><ui-icon icon=\"close\" role=\"presentation\"></ui-icon\n ></ui-icon-button>\n </ui-text-field>\n `\n }\n\n protected renderGreaterThanAssertion(\n item: CoreAssertions.IGreaterThanAssertion,\n assertionOrActionIndex: number,\n stepIndex: number\n ): TemplateResult {\n const { equal, value } = item\n const label = equal ? 'Greater than equal' : 'Greater than'\n const effectiveValue = typeof value === 'number' ? String(value) : ''\n return html`\n <ui-text-field\n name=\"value.${assertionOrActionIndex}.${stepIndex}\"\n data-assertion-index=\"${assertionOrActionIndex}\"\n data-step-index=\"${stepIndex}\"\n data-kind=\"${CoreAssertions.GreaterThanAssertionKind}\"\n data-variant=\"${equal ? 'equal' : ''}\"\n label=\"${label}\"\n required\n .value=\"${live(effectiveValue)}\"\n @change=\"${this.handleGreaterThanAssertionValueChange}\"\n inputMode=\"numeric\"\n >\n <ui-icon-button\n slot=\"suffix\"\n title=\"Remove assertion\"\n aria-label=\"Deletes this assertion\"\n @click=\"${this.handleRemoveStep}\"\n data-index=\"${assertionOrActionIndex}\"\n data-step-index=\"${stepIndex}\"\n ><ui-icon icon=\"close\" role=\"presentation\"></ui-icon\n ></ui-icon-button>\n </ui-text-field>\n `\n }\n\n protected renderLessThanAssertion(\n item: CoreAssertions.ILessThanAssertion,\n assertionOrActionIndex: number,\n stepIndex: number\n ): TemplateResult {\n const { equal, value } = item\n const label = equal ? 'Less than equal' : 'Less than'\n const effectiveValue = typeof value === 'number' ? String(value) : ''\n return html`\n <ui-text-field\n name=\"value.${assertionOrActionIndex}.${stepIndex}\"\n data-assertion-index=\"${assertionOrActionIndex}\"\n data-step-index=\"${stepIndex}\"\n data-kind=\"${CoreAssertions.LessThanAssertionKind}\"\n data-variant=\"${equal ? 'equal' : ''}\"\n label=\"${label}\"\n required\n .value=\"${live(effectiveValue)}\"\n @change=\"${this.handleLessThanAssertionValueChange}\"\n inputMode=\"numeric\"\n >\n <ui-icon-button\n slot=\"suffix\"\n title=\"Remove assertion\"\n aria-label=\"Deletes this assertion\"\n @click=\"${this.handleRemoveStep}\"\n data-index=\"${assertionOrActionIndex}\"\n data-step-index=\"${stepIndex}\"\n ><ui-icon icon=\"close\" role=\"presentation\"></ui-icon\n ></ui-icon-button>\n </ui-text-field>\n `\n }\n\n protected renderIncludesAssertion(\n item: CoreAssertions.IIncludesAssertion,\n assertionOrActionIndex: number,\n stepIndex: number\n ): TemplateResult {\n const { value } = item\n return html`\n <ui-text-field\n name=\"includes.${assertionOrActionIndex}.${stepIndex}\"\n data-assertion-index=\"${assertionOrActionIndex}\"\n data-step-index=\"${stepIndex}\"\n data-kind=\"${CoreAssertions.IncludesAssertionKind}\"\n label=\"Includes value\"\n required\n .value=\"${live(value || '')}\"\n @change=\"${this.handleIncludesAssertionValueChange}\"\n >\n <ui-icon-button\n slot=\"suffix\"\n title=\"Remove assertion\"\n aria-label=\"Deletes this assertion\"\n @click=\"${this.handleRemoveStep}\"\n data-index=\"${assertionOrActionIndex}\"\n data-step-index=\"${stepIndex}\"\n ><ui-icon icon=\"close\" role=\"presentation\"></ui-icon\n ></ui-icon-button>\n </ui-text-field>\n `\n }\n\n protected renderNotIncludesAssertion(\n item: CoreAssertions.INotIncludesAssertion,\n assertionOrActionIndex: number,\n stepIndex: number\n ): TemplateResult {\n const { value } = item\n return html`\n <ui-text-field\n name=\"not-includes.${assertionOrActionIndex}.${stepIndex}\"\n data-assertion-index=\"${assertionOrActionIndex}\"\n data-step-index=\"${stepIndex}\"\n data-kind=\"${CoreAssertions.NotIncludesAssertionKind}\"\n label=\"Not includes value\"\n required\n .value=\"${live(value || '')}\"\n @change=\"${this.handleIncludesAssertionValueChange}\"\n >\n <ui-icon-button\n slot=\"suffix\"\n title=\"Remove assertion\"\n aria-label=\"Deletes this assertion\"\n @click=\"${this.handleRemoveStep}\"\n data-index=\"${assertionOrActionIndex}\"\n data-step-index=\"${stepIndex}\"\n ><ui-icon icon=\"close\" role=\"presentation\"></ui-icon\n ></ui-icon-button>\n </ui-text-field>\n `\n }\n\n protected renderMatchesAssertion(\n item: CoreAssertions.IMatchesAssertion,\n assertionOrActionIndex: number,\n stepIndex: number\n ): TemplateResult {\n const { value } = item\n return html`\n <ui-text-field\n name=\"matches.${assertionOrActionIndex}.${stepIndex}\"\n data-assertion-index=\"${assertionOrActionIndex}\"\n data-step-index=\"${stepIndex}\"\n data-kind=\"${CoreAssertions.MatchesAssertionKind}\"\n label=\"Matches regex\"\n required\n .value=\"${live(value || '')}\"\n @change=\"${this.handleMatchesAssertionValueChange}\"\n @input=\"${this.validateRegexPattern}\"\n invalidText=\"Pattern is invalid\"\n >\n <ui-icon-button\n slot=\"suffix\"\n title=\"Remove assertion\"\n aria-label=\"Deletes this assertion\"\n @click=\"${this.handleRemoveStep}\"\n data-index=\"${assertionOrActionIndex}\"\n data-step-index=\"${stepIndex}\"\n ><ui-icon icon=\"close\" role=\"presentation\"></ui-icon\n ></ui-icon-button>\n </ui-text-field>\n `\n }\n\n protected renderToBeAssertion(\n item: CoreAssertions.IToBeAssertion,\n assertionOrActionIndex: number,\n stepIndex: number\n ): TemplateResult {\n const { value } = item\n const types = Object.values(CoreAssertions.ToBeTypes)\n return html`\n <ui-text-field\n name=\"to-be.${assertionOrActionIndex}.${stepIndex}\"\n data-assertion-index=\"${assertionOrActionIndex}\"\n data-step-index=\"${stepIndex}\"\n data-kind=\"${CoreAssertions.ToBeAssertionKind}\"\n label=\"To be...\"\n required\n .value=\"${live(value || '')}\"\n @change=\"${this.handleToBeAssertionValueChange}\"\n .list=\"${types}\"\n >\n <ui-icon-button\n slot=\"suffix\"\n title=\"Remove assertion\"\n aria-label=\"Deletes this assertion\"\n @click=\"${this.handleRemoveStep}\"\n data-index=\"${assertionOrActionIndex}\"\n data-step-index=\"${stepIndex}\"\n ><ui-icon icon=\"close\" role=\"presentation\"></ui-icon\n ></ui-icon-button>\n </ui-text-field>\n `\n }\n\n protected renderNotToBeAssertion(\n item: CoreAssertions.INotToBeAssertion,\n assertionOrActionIndex: number,\n stepIndex: number\n ): TemplateResult {\n const { value } = item\n const types = Object.values(CoreAssertions.ToBeTypes)\n return html`\n <ui-text-field\n name=\"not-to-be.${assertionOrActionIndex}.${stepIndex}\"\n data-assertion-index=\"${assertionOrActionIndex}\"\n data-step-index=\"${stepIndex}\"\n data-kind=\"${CoreAssertions.NotToBeAssertionKind}\"\n label=\"Not to be...\"\n required\n .value=\"${live(value || '')}\"\n @change=\"${this.handleToBeAssertionValueChange}\"\n .list=\"${types}\"\n >\n <ui-icon-button\n slot=\"suffix\"\n title=\"Remove assertion\"\n aria-label=\"Deletes this assertion\"\n @click=\"${this.handleRemoveStep}\"\n data-index=\"${assertionOrActionIndex}\"\n data-step-index=\"${stepIndex}\"\n ><ui-icon icon=\"close\" role=\"presentation\"></ui-icon\n ></ui-icon-button>\n </ui-text-field>\n `\n }\n\n protected renderResponseDataSourceSuggestions(disabled = false): TemplateResult {\n return html`\n <details class=\"action-group\" open>\n <summary>Data Source</summary>\n <div class=\"group-content\">\n ${this.renderBlockChip('Status code', 'data-source', DataSteps.ReadDataSourceStepKind, {\n source: FlowSourceEnum.response,\n data: FlowResponseDataEnum.status,\n disabled,\n title: 'Reads the response status code and passes it to the next step.',\n })}\n ${this.renderBlockChip('Response headers', 'data-source', DataSteps.ReadDataSourceStepKind, {\n source: FlowSourceEnum.response,\n data: FlowResponseDataEnum.headers,\n disabled,\n title: 'Reads the response headers and passes them to the next step.',\n })}\n ${this.renderBlockChip('Response body', 'data-source', DataSteps.ReadDataSourceStepKind, {\n source: FlowSourceEnum.response,\n data: FlowResponseDataEnum.body,\n disabled,\n title: 'Reads the response body and passes it to the next step.',\n })}\n ${this.renderBlockChip('Status message', 'data-source', DataSteps.ReadDataSourceStepKind, {\n source: FlowSourceEnum.response,\n data: FlowResponseDataEnum.statusText,\n disabled,\n title: 'Reads the response status message and passes it to the next step.',\n })}\n </div>\n </details>\n `\n }\n\n protected renderRequestDataSourceSuggestions(disabled = false): TemplateResult {\n return html`\n <details class=\"action-group\" open>\n <summary>Data Source</summary>\n <div class=\"group-content\">\n ${this.renderBlockChip('Request headers', 'data-source', DataSteps.ReadDataSourceStepKind, {\n source: FlowSourceEnum.request,\n data: FlowRequestDataEnum.headers,\n disabled,\n title: 'Reads the request headers and passes them to the next step.',\n })}\n ${this.renderBlockChip('Request body', 'data-source', DataSteps.ReadDataSourceStepKind, {\n source: FlowSourceEnum.request,\n data: FlowRequestDataEnum.body,\n disabled,\n title: 'Reads the request body and passes it to the next step.',\n })}\n ${this.renderBlockChip('Request method', 'data-source', DataSteps.ReadDataSourceStepKind, {\n source: FlowSourceEnum.request,\n data: FlowRequestDataEnum.method,\n disabled,\n title: 'Reads the request method and passes it to the next step.',\n })}\n </div>\n </details>\n `\n }\n\n protected renderTransformationSuggestions(disabled = false): TemplateResult {\n return html`\n <details class=\"action-group\" open>\n <summary>Transformation</summary>\n <div class=\"group-content\">\n ${this.renderBlockChip('Read value', 'transformation', DataSteps.ReadValueStepKind, {\n disabled,\n title: 'Reads a value from the previous step. Configure the path to the value.',\n })}\n ${this.renderBlockChip('As number', 'transformation', TransformationSteps.AsNumberStepKind, {\n disabled,\n title: 'Transforms the value received from the previous step to a number.',\n })}\n ${this.renderBlockChip('Round', 'transformation', TransformationSteps.RoundStepKind, {\n disabled,\n title: 'Rounds the value received from the previous step with a precision',\n })}\n ${this.renderBlockChip('To lower case', 'transformation', TransformationSteps.AsLowerCaseStepKind, {\n disabled,\n title: 'Transforms the value received from the previous step to a lower case string',\n })}\n ${this.renderBlockChip('To upper case', 'transformation', TransformationSteps.AsUpperCaseStepKind, {\n disabled,\n title: 'Transforms the value received from the previous step to an upper case string',\n })}\n ${this.renderBlockChip('Trim', 'transformation', TransformationSteps.TrimStepKind, {\n disabled,\n title: 'Treats the value received from the previous step as string as trims the whitespace.',\n })}\n ${this.renderBlockChip('Substring', 'transformation', TransformationSteps.SubstringStepKind, {\n disabled,\n title: 'Passes a sub string of the current value to the next step.',\n })}\n </div>\n </details>\n `\n }\n\n protected renderActionSuggestions(disabled = false): TemplateResult {\n return html`\n <details class=\"action-group\" open>\n <summary>Actions</summary>\n <div class=\"group-content\">\n ${this.renderBlockChip('Set cookie', 'action', DataSteps.SetCookieStepKind, {\n disabled,\n title: 'Sets and stores a cookie',\n })}\n ${this.renderBlockChip('Delete cookie', 'action', DataSteps.DeleteCookieStepKind, {\n disabled,\n title: 'Deletes a cookie.',\n })}\n ${this.renderBlockChip('Set variable', 'action', DataSteps.SetVariableStepKind, {\n disabled,\n title: 'Sets a variable during the execution time. It does not store the value.',\n })}\n ${this.renderBlockChip('Unset variable', 'action', DataSteps.DeleteVariableStepKind, {\n disabled,\n title: 'Clears a variable during the execution time. It does not store the value.',\n })}\n </div>\n </details>\n `\n }\n\n protected renderAssertionSuggestions(disabled = false): TemplateResult {\n return html`\n <details class=\"action-group\" open>\n <summary>Assertions</summary>\n <div class=\"group-content\">\n ${this.renderBlockChip('Equal', 'assertion', CoreAssertions.EqualAssertionKind, { disabled })}\n ${this.renderBlockChip('Not equal', 'assertion', CoreAssertions.NotEqualAssertionKind, { disabled })}\n ${this.renderBlockChip('Greater than', 'assertion', CoreAssertions.GreaterThanAssertionKind, { disabled })}\n ${this.renderBlockChip('Greater than equal', 'assertion', CoreAssertions.GreaterThanAssertionKind, {\n disabled,\n variant: 'equal',\n })}\n ${this.renderBlockChip('Less than', 'assertion', CoreAssertions.LessThanAssertionKind, { disabled })}\n ${this.renderBlockChip('Less than equal', 'assertion', CoreAssertions.LessThanAssertionKind, {\n disabled,\n variant: 'equal',\n })}\n ${this.renderBlockChip('Includes', 'assertion', CoreAssertions.IncludesAssertionKind, { disabled })}\n ${this.renderBlockChip('Not includes', 'assertion', CoreAssertions.NotIncludesAssertionKind, { disabled })}\n ${this.renderBlockChip('Matches', 'assertion', CoreAssertions.MatchesAssertionKind, { disabled })}\n ${this.renderBlockChip('OK', 'assertion', CoreAssertions.OkAssertionKind, { disabled })}\n ${this.renderBlockChip('Not OK', 'assertion', CoreAssertions.NotOkAssertionKind, { disabled })}\n ${this.renderBlockChip('To be...', 'assertion', CoreAssertions.ToBeAssertionKind, { disabled })}\n ${this.renderBlockChip('Not to be...', 'assertion', CoreAssertions.NotToBeAssertionKind, { disabled })}\n </div>\n </details>\n `\n }\n}\n"]}
1
+ {"version":3,"file":"HttpFlowsUi.js","sourceRoot":"","sources":["../../../../src/elements/http/HttpFlowsUi.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n FlowRequestDataEnum,\n FlowResponseDataEnum,\n FlowSourceEnum,\n} from '@api-client/core/models/http-flows/HttpFlows.js'\nimport * as DataSteps from '@api-client/core/models/http-flows/steps/data/index.js'\nimport * as CoreAssertions from '@api-client/core/models/http-flows/steps/assertion/index.js'\nimport * as TransformationSteps from '@api-client/core/models/http-flows/steps/transformation/index.js'\nimport { AmfNamespace } from '@api-client/core/amf/definitions/Namespace.js'\nimport type { ToBeTypes } from '@api-client/core/models/http-flows/steps/assertion/index.js'\nimport { type IHttpStep } from '@api-client/core/models/http-flows/HttpStep.js'\nimport { live } from 'lit/directives/live.js'\nimport { html, nothing, TemplateResult } from 'lit'\nimport { ifDefined } from 'lit/directives/if-defined.js'\nimport ApiElement from '../ApiElement.js'\nimport type UiChip from '../../md/chip/internals/Chip.js'\nimport type Input from '../../md/input/Input.js'\nimport type { UiDialogClosingReason } from '../../md/dialog/internals/Dialog.js'\nimport '../../md/list/ui-list.js'\nimport '../../md/list/ui-list-item.js'\nimport '../../md/dropdown-list/ui-dropdown-list.js'\nimport '../../md/icons/ui-icon.js'\nimport '../../md/icon-button/ui-icon-button.js'\nimport '../../md/text-field/ui-filled-text-field.js'\nimport '../../md/chip/ui-chip.js'\nimport '../../md/dialog/ui-dialog.js'\nimport '../dialog/delete-cookie-action-dialog.js'\nimport '../dialog/set-cookie-action-dialog.js'\n\nexport interface ChipCreateInfo {\n source?: FlowSourceEnum\n data?: FlowRequestDataEnum | FlowResponseDataEnum\n variant?: string\n disabled?: boolean\n title?: string\n}\n\nexport interface StepsTarget {\n steps: IHttpStep[]\n}\n\n/**\n * The base UI class for HTTP flows and assertions\n * since they are practically the same concept.\n */\nexport abstract class HttpFlowsUi extends ApiElement {\n /**\n * A chip that is currently being dragged in the UI.\n */\n protected draggedChip?: UiChip\n\n /**\n * Because of the differences in the model between assertions and flows we need to abstract a method\n * to find an object that contains the `steps` so the logic can operate on it.\n *\n * @param assertionOrActionIndex The index of the assertion or the action in the model.\n */\n protected abstract getStepsTarget(assertionOrActionIndex: number): StepsTarget | undefined\n\n /**\n * A method to read an HttpStep from an event.\n */\n protected abstract stepFromChangeEvent(e: Event): IHttpStep | undefined\n\n /**\n * Checks whether the dragged element has the required content in the data transfer.\n */\n protected isValidDropTarget(dataTransfer?: DataTransfer | null): boolean {\n if (!dataTransfer) {\n return false\n }\n const { types } = dataTransfer\n return types.includes('flow/group') && types.includes('flow/kind')\n }\n\n /**\n * Handles the suggestion chip drag start event.\n */\n protected handleChipDragStart(e: DragEvent): void {\n const { dataTransfer } = e\n if (!dataTransfer) {\n return\n }\n const chip = e.target as UiChip\n const { group, kind, source, data, variant } = chip.dataset\n if (!group || !kind) {\n return\n }\n this.illustrateDraggedChip(chip, dataTransfer)\n dataTransfer.setData('flow/group', group)\n dataTransfer.setData('flow/kind', kind)\n dataTransfer.setData(`flow/${group}`, '')\n dataTransfer.setData(`flow/${kind}`, '')\n if (source) {\n dataTransfer.setData('flow/source', source)\n }\n if (data) {\n dataTransfer.setData('flow/data', data)\n }\n if (variant) {\n dataTransfer.setData('flow/variant', variant)\n }\n chip.blur()\n }\n\n /**\n * Handles the suggestion chip drag end event.\n */\n protected handleChipDragEnd(e: DragEvent): void {\n const { draggedChip } = this\n if (!draggedChip) {\n return\n }\n e.preventDefault()\n draggedChip.parentElement?.removeChild(draggedChip)\n }\n\n /**\n * When interacting with a chip an MD ripple effect is generated.\n * This causes the default drag image to include the surrounding ripple effect and\n * everything around. This makes a copy of the chip and sets it as the drag image.\n *\n * Note, the copy of the chip has to be added to the DOM and be there for some time\n * so the browser render it and set as the image. Because of that the copy is removed\n * with the drop and not immediately.\n */\n protected illustrateDraggedChip(chip: UiChip, dataTransfer: DataTransfer): void {\n const copy = chip.cloneNode(true) as UiChip\n copy.style.position = 'absolute'\n copy.style.top = `-100px`\n this.draggedChip = copy\n document.body.appendChild(copy)\n dataTransfer.setDragImage(copy, 0, 0)\n }\n\n /**\n * Removes all `dragover` classes from elements on the shadow DOM.\n */\n protected resetDragIndices(): void {\n const nodes = (this.shadowRoot as ShadowRoot).querySelectorAll('.dragover')\n Array.from(nodes).forEach((n) => n.classList.remove('dragover'))\n }\n\n /**\n * A handler for the `dragover` event over a valid target.\n * Sets the `dragover` class on the target.\n */\n protected handleTargetDragOver(e: DragEvent): void {\n const { draggedChip } = this\n if (!draggedChip || e.defaultPrevented || !this.isValidDropTarget(e.dataTransfer)) {\n return\n }\n e.preventDefault()\n const dt = e.dataTransfer as DataTransfer\n dt.dropEffect = 'copy'\n const target = e.currentTarget as HTMLElement\n target.classList.add('dragover')\n }\n\n /**\n * A handler for the `dragleave` event over a valid target.\n * Removes the `dragover` class from the target.\n */\n protected handleTargetDragLeave(e: DragEvent): void {\n if (e.defaultPrevented || !this.isValidDropTarget(e.dataTransfer)) {\n return\n }\n const target = e.currentTarget as HTMLElement\n target.classList.remove('dragover')\n }\n\n /**\n * Reads the `data-index` and `data-step-index` from the target of the event\n * and calls the `processDrop()` with read values.\n */\n protected handleDrop(e: DragEvent): void {\n const { dataTransfer } = e\n if (!dataTransfer || e.defaultPrevented || !this.isValidDropTarget(dataTransfer)) {\n return\n }\n e.preventDefault()\n this.resetDragIndices()\n const { index, stepIndex } = (e.target as HTMLElement).dataset\n const assertionOrActionIndex = Number(index)\n if (Number.isNaN(assertionOrActionIndex)) {\n return\n }\n let typedStepIndex: number | undefined\n if (stepIndex) {\n const tmp = Number(stepIndex)\n if (!Number.isNaN(tmp)) {\n typedStepIndex = tmp\n }\n }\n this.processDrop(dataTransfer, assertionOrActionIndex, typedStepIndex)\n }\n\n /**\n * A logic executed when a suggestion chip drop happens on a valid target.\n *\n * @param dataTransfer The event's dataTransfer object\n * @param assertionOrActionIndex Action's or assertion's index where the drop happened.\n * @param stepIndex The detected index of the step. When not set it adds the step at the end.\n */\n protected processDrop(dataTransfer: DataTransfer, assertionOrActionIndex: number, stepIndex?: number): void {\n const group = dataTransfer.getData('flow/group')\n if (!group) {\n return\n }\n if (group === 'data-source') {\n this.processDataSourceDrop(dataTransfer, assertionOrActionIndex, stepIndex)\n } else if (group === 'transformation') {\n this.processTransformationDrop(dataTransfer, assertionOrActionIndex, stepIndex)\n } else if (group === 'assertion') {\n this.processAssertionDrop(dataTransfer, assertionOrActionIndex, stepIndex)\n } else if (group === 'action') {\n this.processActionDrop(dataTransfer, assertionOrActionIndex, stepIndex)\n }\n }\n\n /**\n * Processes dropping of a `data-source` suggestion chip.\n */\n protected processDataSourceDrop(\n dataTransfer: DataTransfer,\n assertionOrActionIndex: number,\n stepIndex?: number\n ): void {\n const target = this.getStepsTarget(assertionOrActionIndex)\n if (!target) {\n return\n }\n this.setupDataSource(target, dataTransfer, stepIndex)\n }\n\n /**\n * Processes dropping of a `transformation` suggestion chip.\n */\n protected processTransformationDrop(\n dataTransfer: DataTransfer,\n assertionOrActionIndex: number,\n stepIndex?: number\n ): void {\n const target = this.getStepsTarget(assertionOrActionIndex)\n if (!target) {\n return\n }\n this.setupTransformation(target, dataTransfer, stepIndex)\n }\n\n /**\n * Processes dropping of a `assertion` suggestion chip.\n */\n protected processAssertionDrop(dataTransfer: DataTransfer, assertionOrActionIndex: number, stepIndex?: number): void {\n const target = this.getStepsTarget(assertionOrActionIndex)\n if (!target) {\n return\n }\n this.setupAssertion(target, dataTransfer, stepIndex)\n }\n\n /**\n * Processes dropping of a `action` suggestion chip.\n */\n protected processActionDrop(dataTransfer: DataTransfer, assertionOrActionIndex: number, stepIndex?: number): void {\n const target = this.getStepsTarget(assertionOrActionIndex)\n if (!target) {\n return\n }\n this.setupAction(target, dataTransfer, stepIndex)\n }\n\n protected setupDataSource(target: StepsTarget, dataTransfer: DataTransfer, stepIndex?: number): void {\n const source = dataTransfer.getData('flow/source') as FlowSourceEnum\n const data = dataTransfer.getData('flow/data') as FlowRequestDataEnum | FlowResponseDataEnum\n const step = new DataSteps.ReadDataSourceStep(source, data).toJSON()\n this.appendStep(step, target, stepIndex)\n }\n\n protected setupTransformation(target: StepsTarget, dataTransfer: DataTransfer, stepIndex?: number): void {\n let step: IHttpStep | undefined\n const kind = dataTransfer.getData('flow/kind')\n if (kind === DataSteps.ReadValueStepKind) {\n step = new DataSteps.ReadValueStep().toJSON()\n } else if (kind === TransformationSteps.AsNumberStepKind) {\n step = new TransformationSteps.AsNumberStep().toJSON()\n } else if (kind === TransformationSteps.RoundStepKind) {\n step = new TransformationSteps.RoundStep().toJSON()\n } else if (kind === TransformationSteps.AsLowerCaseStepKind) {\n step = new TransformationSteps.AsLowerCaseStep().toJSON()\n } else if (kind === TransformationSteps.AsUpperCaseStepKind) {\n step = new TransformationSteps.AsUpperCaseStep().toJSON()\n } else if (kind === TransformationSteps.TrimStepKind) {\n step = new TransformationSteps.TrimStep().toJSON()\n } else if (kind === TransformationSteps.SubstringStepKind) {\n step = new TransformationSteps.SubstringStep().toJSON()\n }\n if (!step) {\n return\n }\n this.appendStep(step, target, stepIndex)\n }\n\n protected setupAssertion(target: StepsTarget, dataTransfer: DataTransfer, stepIndex?: number): void {\n let step: IHttpStep | undefined\n const kind = dataTransfer.getData('flow/kind')\n if (kind === CoreAssertions.EqualAssertionKind) {\n step = new CoreAssertions.EqualAssertion().toJSON()\n } else if (kind === CoreAssertions.NotEqualAssertionKind) {\n step = new CoreAssertions.NotEqualAssertion().toJSON()\n } else if (kind === CoreAssertions.GreaterThanAssertionKind) {\n const instance = new CoreAssertions.GreaterThanAssertion()\n if (dataTransfer.getData('flow/variant') === 'equal') {\n instance.equal = true\n }\n step = instance.toJSON()\n } else if (kind === CoreAssertions.LessThanAssertionKind) {\n const instance = new CoreAssertions.LessThanAssertion()\n if (dataTransfer.getData('flow/variant') === 'equal') {\n instance.equal = true\n }\n step = instance.toJSON()\n } else if (kind === CoreAssertions.IncludesAssertionKind) {\n step = new CoreAssertions.IncludesAssertion().toJSON()\n } else if (kind === CoreAssertions.NotIncludesAssertionKind) {\n step = new CoreAssertions.NotIncludesAssertion().toJSON()\n } else if (kind === CoreAssertions.MatchesAssertionKind) {\n step = new CoreAssertions.MatchesAssertion().toJSON()\n } else if (kind === CoreAssertions.OkAssertionKind) {\n step = new CoreAssertions.OkAssertion().toJSON()\n } else if (kind === CoreAssertions.NotOkAssertionKind) {\n step = new CoreAssertions.NotOkAssertion().toJSON()\n } else if (kind === CoreAssertions.ToBeAssertionKind) {\n step = new CoreAssertions.ToBeAssertion().toJSON()\n } else if (kind === CoreAssertions.NotToBeAssertionKind) {\n step = new CoreAssertions.NotToBeAssertion().toJSON()\n }\n if (!step) {\n return\n }\n this.appendStep(step, target, stepIndex)\n }\n\n protected setupAction(target: StepsTarget, dataTransfer: DataTransfer, stepIndex?: number): void {\n let step: IHttpStep | undefined\n const kind = dataTransfer.getData('flow/kind')\n if (kind === DataSteps.SetCookieStepKind) {\n step = new DataSteps.SetCookieStep().toJSON()\n } else if (kind === DataSteps.SetVariableStepKind) {\n step = new DataSteps.SetVariableStep().toJSON()\n } else if (kind === DataSteps.DeleteCookieStepKind) {\n step = new DataSteps.DeleteCookieStep().toJSON()\n } else if (kind === DataSteps.DeleteVariableStepKind) {\n step = new DataSteps.DeleteVariableStep().toJSON()\n }\n if (!step) {\n return\n }\n this.appendStep(step, target, stepIndex)\n }\n\n protected appendStep(step: IHttpStep, target: StepsTarget, stepIndex?: number): void {\n if (stepIndex === undefined) {\n target.steps.push(step)\n } else if (stepIndex === -1) {\n target.steps.unshift(step)\n } else {\n target.steps.splice(stepIndex, 0, step)\n }\n this.requestUpdate()\n this.notifyChange()\n }\n\n protected removeStep(target: StepsTarget, stepIndex: number): void {\n target.steps.splice(stepIndex, 1)\n this.notifyChange()\n this.requestUpdate()\n }\n\n protected handleSubstringStartChange(e: Event): void {\n const step = this.stepFromChangeEvent(e) as TransformationSteps.ISubstringStep | undefined\n if (!step) {\n return\n }\n const input = e.target as Input\n input.checkValidity()\n step.start = input.valueAsNumber\n this.requestUpdate()\n this.notifyChange()\n }\n\n protected handleSubstringEndChange(e: Event): void {\n const step = this.stepFromChangeEvent(e) as TransformationSteps.ISubstringStep | undefined\n if (!step) {\n return\n }\n const input = e.target as Input\n input.checkValidity()\n step.end = input.valueAsNumber\n this.requestUpdate()\n this.notifyChange()\n }\n\n protected handleRoundPrecisionChange(e: Event): void {\n const step = this.stepFromChangeEvent(e) as TransformationSteps.IRoundStep | undefined\n if (!step) {\n return\n }\n const input = e.target as Input\n input.checkValidity()\n step.precision = input.valueAsNumber\n this.requestUpdate()\n this.notifyChange()\n }\n\n protected handleReadValueStepChange(e: Event): void {\n const step = this.stepFromChangeEvent(e) as DataSteps.IReadValueStep | undefined\n if (!step) {\n return\n }\n const input = e.target as Input\n input.checkValidity()\n step.path = input.value\n this.requestUpdate()\n this.notifyChange()\n }\n\n protected handleGreaterThanAssertionValueChange(e: Event): void {\n const step = this.stepFromChangeEvent(e) as CoreAssertions.IGreaterThanAssertion | undefined\n if (!step) {\n return\n }\n const input = e.target as Input\n input.checkValidity()\n step.value = Number(input.value)\n this.requestUpdate()\n this.notifyChange()\n }\n\n protected handleLessThanAssertionValueChange(e: Event): void {\n const step = this.stepFromChangeEvent(e) as CoreAssertions.ILessThanAssertion | undefined\n if (!step) {\n return\n }\n const input = e.target as Input\n input.checkValidity()\n step.value = Number(input.value)\n this.requestUpdate()\n this.notifyChange()\n }\n\n protected handleIncludesAssertionValueChange(e: Event): void {\n const step = this.stepFromChangeEvent(e) as CoreAssertions.IIncludesAssertion | undefined\n if (!step) {\n return\n }\n const input = e.target as Input\n input.checkValidity()\n step.value = input.value\n this.requestUpdate()\n this.notifyChange()\n }\n\n protected handleToBeAssertionValueChange(e: Event): void {\n const step = this.stepFromChangeEvent(e) as\n | CoreAssertions.IToBeAssertion\n | CoreAssertions.INotToBeAssertion\n | undefined\n if (!step) {\n return\n }\n const input = e.target as Input\n input.checkValidity()\n step.value = input.value as ToBeTypes\n this.requestUpdate()\n this.notifyChange()\n }\n\n protected handleMatchesAssertionValueChange(e: Event): void {\n const step = this.stepFromChangeEvent(e) as CoreAssertions.IMatchesAssertion | undefined\n if (!step) {\n return\n }\n const input = e.target as Input\n step.value = input.value\n this.requestUpdate()\n this.notifyChange()\n }\n\n protected handleEqualAssertionValueChange(e: Event): void {\n const input = e.target as Input\n input.checkValidity()\n const assertionOrActionIndex = Number(input.dataset.assertionIndex)\n const stepIndex = Number(input.dataset.stepIndex)\n if (Number.isNaN(assertionOrActionIndex) || Number.isNaN(stepIndex)) {\n return\n }\n const stepsTarget = this.getStepsTarget(assertionOrActionIndex)\n if (!stepsTarget) {\n return\n }\n const step = stepsTarget.steps[stepIndex] as CoreAssertions.IEqualAssertion | undefined\n if (!step) {\n return\n }\n step.value = input.value\n step.dataType = this.detectInputDataType(stepsTarget.steps.slice(0, stepIndex))\n this.requestUpdate()\n this.notifyChange()\n }\n\n /**\n * Detects the correct data type for the step value based on previous steps.\n *\n * @param steps The steps before the current step\n * @returns The data type for the step in the AMF namespace.\n */\n protected detectInputDataType(steps: IHttpStep[]): string {\n // we reverse the list so we move from the last step.\n const reversed = [...steps].reverse()\n for (const step of reversed) {\n if (step.kind === TransformationSteps.AsNumberStepKind) {\n return AmfNamespace.aml.vocabularies.shapes.number\n }\n if (step.kind === DataSteps.ReadDataSourceStepKind) {\n const typed = step as DataSteps.IReadDataSourceStep\n if (typed.data === FlowResponseDataEnum.status) {\n return AmfNamespace.aml.vocabularies.shapes.number\n }\n }\n }\n return AmfNamespace.w3.xmlSchema.string\n }\n\n protected validateRegexPattern(e: Event): void {\n const input = e.target as Input\n try {\n RegExp(input.value)\n input.setCustomValidity('')\n } catch {\n input.setCustomValidity('Pattern is invalid')\n }\n input.reportValidity()\n }\n\n protected handleVariableNameChange(e: Event): void {\n const step = this.stepFromChangeEvent(e) as DataSteps.ISetVariableStep | DataSteps.IDeleteVariableStep | undefined\n if (!step) {\n return\n }\n const input = e.target as Input\n step.name = input.value\n this.requestUpdate()\n this.notifyChange()\n }\n\n protected handleRemoveStep(e: Event): void {\n const target = e.currentTarget as HTMLElement\n const assertionOrActionIndex = Number(target.dataset.index)\n const stepIndex = Number(target.dataset.stepIndex)\n if (Number.isNaN(assertionOrActionIndex) || Number.isNaN(stepIndex)) {\n return\n }\n const stepsTarget = this.getStepsTarget(assertionOrActionIndex)\n if (!stepsTarget) {\n return\n }\n this.removeStep(stepsTarget, stepIndex)\n }\n\n protected handleConfigureDeleteCookieStep(e: Event): void {\n const info = this.getEventStepLocation(e)\n if (!info) {\n return\n }\n const stepsTarget = this.getStepsTarget(info.actionIndex)\n if (!stepsTarget) {\n return\n }\n const step = stepsTarget.steps[info.stepIndex] as DataSteps.IDeleteCookieStep\n const dialog = document.createElement('delete-cookie-action-dialog')\n dialog.step = step\n dialog.modal = true\n dialog.open = true\n document.body.appendChild(dialog)\n dialog.addEventListener('close', (ev: Event): void => {\n document.parentElement?.removeChild(dialog)\n const typed = ev as CustomEvent<UiDialogClosingReason>\n if (typed.detail.cancelled) {\n return\n }\n const value = typed.detail.value as DataSteps.IDeleteCookieStep\n\n if (!stepsTarget) {\n return\n }\n stepsTarget.steps[info.stepIndex] = value\n this.notifyChange()\n this.requestUpdate()\n })\n }\n\n protected handleConfigureSetCookieStep(e: Event): void {\n const info = this.getEventStepLocation(e)\n if (!info) {\n return\n }\n const stepsTarget = this.getStepsTarget(info.actionIndex)\n if (!stepsTarget) {\n return\n }\n const step = stepsTarget.steps[info.stepIndex] as DataSteps.ISetCookieStep\n const dialog = document.createElement('set-cookie-action-dialog')\n dialog.step = step\n dialog.modal = true\n dialog.open = true\n document.body.appendChild(dialog)\n dialog.addEventListener('close', (ev: Event): void => {\n document.parentElement?.removeChild(dialog)\n const typed = ev as CustomEvent<UiDialogClosingReason>\n if (typed.detail.cancelled) {\n return\n }\n const value = typed.detail.value as DataSteps.ISetCookieStep\n if (!stepsTarget) {\n return\n }\n stepsTarget.steps[info.stepIndex] = value\n this.notifyChange()\n this.requestUpdate()\n })\n }\n\n protected getEventStepLocation(e: Event): { actionIndex: number; stepIndex: number } | undefined {\n const button = e.currentTarget as HTMLElement\n const { index: ai, stepIndex: si } = button.dataset\n const actionIndex = Number(ai)\n const stepIndex = Number(si)\n if (Number.isNaN(actionIndex) || Number.isNaN(stepIndex)) {\n return undefined\n }\n return {\n actionIndex,\n stepIndex,\n }\n }\n\n protected renderBlockChip(label: string, group: string, kind: string, opts: ChipCreateInfo = {}): TemplateResult {\n const { data, disabled, source, variant, title } = opts\n return html`\n <ui-chip\n draggable=\"true\"\n data-group=\"${group}\"\n data-kind=\"${kind}\"\n data-source=\"${ifDefined(source)}\"\n data-data=\"${ifDefined(data)}\"\n data-variant=\"${ifDefined(variant)}\"\n @dragstart=\"${this.handleChipDragStart}\"\n @dragend=\"${this.handleChipDragEnd}\"\n ?disabled=\"${disabled}\"\n title=\"${ifDefined(title)}\"\n >${label}</ui-chip\n >\n `\n }\n\n protected renderDropSpacer(assertionOrActionIndex: number, stepIndex: number): TemplateResult {\n return html`<div\n class=\"drop-target spacer\"\n data-index=\"${assertionOrActionIndex}\"\n data-step-index=\"${stepIndex}\"\n @drop=\"${this.handleDrop}\"\n @dragover=\"${this.handleTargetDragOver}\"\n @dragleave=\"${this.handleTargetDragLeave}\"\n ></div>`\n }\n\n protected renderStepPill(\n label: string,\n assertionOrActionIndex: number,\n stepIndex: number,\n suffix?: TemplateResult\n ): TemplateResult {\n return html`\n <span class=\"step-pill with-icon\">\n ${label} ${suffix || nothing}\n <ui-icon-button\n title=\"Remove\"\n aria-label=\"Deletes this step\"\n @click=\"${this.handleRemoveStep}\"\n data-index=\"${assertionOrActionIndex}\"\n data-step-index=\"${stepIndex}\"\n ><ui-icon icon=\"close\" role=\"presentation\"></ui-icon\n ></ui-icon-button>\n </span>\n `\n }\n\n protected renderSteps(item: StepsTarget, assertionOrActionIndex: number): TemplateResult {\n const content =\n Array.isArray(item.steps) && !!item.steps.length\n ? this.renderStepsList(item.steps, assertionOrActionIndex)\n : this.renderEmptyStep(assertionOrActionIndex)\n return html`\n <div\n class=\"steps\"\n data-index=\"${assertionOrActionIndex}\"\n @drop=\"${this.handleDrop}\"\n @dragover=\"${this.handleTargetDragOver}\"\n @dragleave=\"${this.handleTargetDragLeave}\"\n >\n ${content}\n </div>\n `\n }\n\n protected renderEmptyStep(actionIndex: number): TemplateResult {\n return html`\n <span\n class=\"step-pill empty drop-target space-step-left\"\n data-index=\"${actionIndex}\"\n @drop=\"${this.handleDrop}\"\n @dragover=\"${this.handleTargetDragOver}\"\n >Empty slot</span\n >\n <span\n class=\"drop-info drop-target space-step-left\"\n data-index=\"${actionIndex}\"\n @drop=\"${this.handleDrop}\"\n @dragover=\"${this.handleTargetDragOver}\"\n >Drop an action here</span\n >\n `\n }\n\n protected renderStepsList(steps: IHttpStep[], assertionOrActionIndex: number): TemplateResult[] {\n const items: TemplateResult[] = []\n steps.forEach((item, stepIndex) => {\n const content = this.renderStep(item, assertionOrActionIndex, stepIndex)\n if (content) {\n items.push(html`\n <div class=\"step-unit\">${this.renderDropSpacer(assertionOrActionIndex, stepIndex)} ${content}</div>\n `)\n }\n })\n return items\n }\n\n protected renderStep(item: IHttpStep, assertionOrActionIndex: number, stepIndex: number): TemplateResult | undefined {\n const { kind } = item\n switch (kind) {\n // actions\n case DataSteps.ReadDataSourceStepKind:\n return this.renderReadDataSourceStep(item, assertionOrActionIndex, stepIndex)\n case DataSteps.ReadValueStepKind:\n return this.renderReadValueStep(item as DataSteps.IReadValueStep, assertionOrActionIndex, stepIndex)\n case DataSteps.DeleteCookieStepKind:\n return this.renderDeleteCookieStep(item as DataSteps.IDeleteCookieStep, assertionOrActionIndex, stepIndex)\n case DataSteps.SetCookieStepKind:\n return this.renderSetCookieStep(item as DataSteps.ISetCookieStep, assertionOrActionIndex, stepIndex)\n case DataSteps.SetVariableStepKind:\n return this.renderSetVariableStep(item as DataSteps.ISetVariableStep, assertionOrActionIndex, stepIndex)\n case DataSteps.DeleteVariableStepKind:\n return this.renderDeleteVariableStep(item as DataSteps.IDeleteVariableStep, assertionOrActionIndex, stepIndex)\n\n // transformations\n case TransformationSteps.AsNumberStepKind:\n return this.renderStepPill('As number', assertionOrActionIndex, stepIndex)\n case TransformationSteps.AsLowerCaseStepKind:\n return this.renderStepPill('To lower case', assertionOrActionIndex, stepIndex)\n case TransformationSteps.AsUpperCaseStepKind:\n return this.renderStepPill('To upper case', assertionOrActionIndex, stepIndex)\n case TransformationSteps.TrimStepKind:\n return this.renderStepPill('Trim', assertionOrActionIndex, stepIndex)\n case TransformationSteps.RoundStepKind:\n return this.renderRoundStep(item as TransformationSteps.IRoundStep, assertionOrActionIndex, stepIndex)\n case TransformationSteps.SubstringStepKind:\n return this.renderSubstringStep(item as TransformationSteps.ISubstringStep, assertionOrActionIndex, stepIndex)\n\n // assertions\n case CoreAssertions.EqualAssertionKind:\n return this.renderEqualAssertion(item as CoreAssertions.IEqualAssertion, assertionOrActionIndex, stepIndex)\n case CoreAssertions.NotEqualAssertionKind:\n return this.renderNotEqualAssertion(\n item as CoreAssertions.INotEqualAssertion,\n assertionOrActionIndex,\n stepIndex\n )\n case CoreAssertions.GreaterThanAssertionKind:\n return this.renderGreaterThanAssertion(\n item as CoreAssertions.IGreaterThanAssertion,\n assertionOrActionIndex,\n stepIndex\n )\n case CoreAssertions.LessThanAssertionKind:\n return this.renderLessThanAssertion(\n item as CoreAssertions.ILessThanAssertion,\n assertionOrActionIndex,\n stepIndex\n )\n case CoreAssertions.IncludesAssertionKind:\n return this.renderIncludesAssertion(\n item as CoreAssertions.IIncludesAssertion,\n assertionOrActionIndex,\n stepIndex\n )\n case CoreAssertions.NotIncludesAssertionKind:\n return this.renderNotIncludesAssertion(\n item as CoreAssertions.INotIncludesAssertion,\n assertionOrActionIndex,\n stepIndex\n )\n case CoreAssertions.MatchesAssertionKind:\n return this.renderMatchesAssertion(item as CoreAssertions.IMatchesAssertion, assertionOrActionIndex, stepIndex)\n case CoreAssertions.OkAssertionKind:\n return this.renderStepPill('Is OK', assertionOrActionIndex, stepIndex)\n case CoreAssertions.NotOkAssertionKind:\n return this.renderStepPill('Is not OK', assertionOrActionIndex, stepIndex)\n case CoreAssertions.ToBeAssertionKind:\n return this.renderToBeAssertion(item as CoreAssertions.IToBeAssertion, assertionOrActionIndex, stepIndex)\n case CoreAssertions.NotToBeAssertionKind:\n return this.renderNotToBeAssertion(item as CoreAssertions.INotToBeAssertion, assertionOrActionIndex, stepIndex)\n\n default:\n // eslint-disable-next-line no-console\n console.warn(`Unsupported step`, kind)\n return undefined\n }\n }\n\n protected renderReadDataSourceStep(\n item: DataSteps.IReadDataSourceStep,\n actionIndex: number,\n stepIndex: number\n ): TemplateResult | undefined {\n const { data, source } = item\n if (!data || !source) {\n // invalid configuration\n return undefined\n }\n let label: string | undefined\n if (source === FlowSourceEnum.response) {\n if (data === FlowResponseDataEnum.url) {\n label = 'Response URL'\n } else if (data === FlowResponseDataEnum.headers) {\n label = 'Response headers'\n } else if (data === FlowResponseDataEnum.status) {\n label = 'Status code'\n } else if (data === FlowResponseDataEnum.statusText) {\n label = 'Status message'\n } else if (data === FlowResponseDataEnum.body) {\n label = 'Response body'\n }\n } else if (source === FlowSourceEnum.request) {\n if (data === FlowRequestDataEnum.url) {\n label = 'Request URL'\n } else if (data === FlowRequestDataEnum.headers) {\n label = 'Request headers'\n } else if (data === FlowRequestDataEnum.body) {\n label = 'Request body'\n } else if (data === FlowRequestDataEnum.method) {\n label = 'Request method'\n }\n }\n if (!label) {\n return undefined\n }\n return this.renderStepPill(label, actionIndex, stepIndex)\n }\n\n protected renderReadValueStep(\n item: DataSteps.IReadValueStep,\n assertionOrActionIndex: number,\n stepIndex: number\n ): TemplateResult {\n const pill = this.renderStepPill('Read value', assertionOrActionIndex, stepIndex)\n return html`\n ${pill}\n <ui-filled-text-field\n name=\"value.${assertionOrActionIndex}.${stepIndex}\"\n data-assertion-index=\"${assertionOrActionIndex}\"\n data-step-index=\"${stepIndex}\"\n label=\"Path to value\"\n required\n .value=\"${live(item.path || '')}\"\n class=\"space-step-left\"\n @change=\"${this.handleReadValueStepChange}\"\n ></ui-filled-text-field>\n `\n }\n\n protected renderDeleteCookieStep(\n item: DataSteps.IDeleteCookieStep,\n assertionOrActionIndex: number,\n stepIndex: number\n ): TemplateResult {\n const { name, url } = item\n let label: string\n if (name && url) {\n label = 'by name and URL'\n } else if (name) {\n label = 'by name'\n } else if (url) {\n label = 'by URL'\n } else {\n label = 'all cookies'\n }\n\n const suffix = html`\n <ui-icon-button\n title=\"Configure this step\"\n aria-label=\"Configure this step\"\n data-index=\"${assertionOrActionIndex}\"\n data-step-index=\"${stepIndex}\"\n @click=\"${this.handleConfigureDeleteCookieStep}\"\n ><ui-icon icon=\"tune\" role=\"presentation\"></ui-icon\n ></ui-icon-button>\n `\n const pill = this.renderStepPill(`Delete cookie (${label})`, assertionOrActionIndex, stepIndex, suffix)\n return pill\n }\n\n protected renderSetCookieStep(\n item: DataSteps.ISetCookieStep,\n assertionOrActionIndex: number,\n stepIndex: number\n ): TemplateResult {\n const suffix = html`\n <ui-icon-button\n title=\"Configure this step\"\n aria-label=\"Configure this step\"\n data-index=\"${assertionOrActionIndex}\"\n data-step-index=\"${stepIndex}\"\n @click=\"${this.handleConfigureSetCookieStep}\"\n ><ui-icon icon=\"tune\" role=\"presentation\"></ui-icon\n ></ui-icon-button>\n `\n const pill = this.renderStepPill('Set cookie', assertionOrActionIndex, stepIndex, suffix)\n return pill\n }\n\n protected renderSetVariableStep(\n item: DataSteps.ISetVariableStep,\n assertionOrActionIndex: number,\n stepIndex: number\n ): TemplateResult {\n const { name = '' } = item\n const pill = this.renderStepPill('Set variable', assertionOrActionIndex, stepIndex)\n return html`\n ${pill}\n <ui-filled-text-field\n name=\"variable.${assertionOrActionIndex}.${stepIndex}\"\n data-assertion-index=\"${assertionOrActionIndex}\"\n data-step-index=\"${stepIndex}\"\n label=\"Variable name\"\n required\n .value=\"${live(name)}\"\n @change=\"${this.handleVariableNameChange}\"\n class=\"space-step-left\"\n pattern=\"[a-zA-Z0-9_]+\"\n aria-label=\"Variable name\"\n ></ui-filled-text-field>\n `\n }\n\n protected renderDeleteVariableStep(\n item: DataSteps.IDeleteVariableStep,\n assertionOrActionIndex: number,\n stepIndex: number\n ): TemplateResult {\n const { name = '' } = item\n const pill = this.renderStepPill('Delete variable', assertionOrActionIndex, stepIndex)\n return html`\n ${pill}\n <ui-filled-text-field\n name=\"variable.${assertionOrActionIndex}.${stepIndex}\"\n data-assertion-index=\"${assertionOrActionIndex}\"\n data-step-index=\"${stepIndex}\"\n label=\"Variable name\"\n required\n .value=\"${live(name)}\"\n @change=\"${this.handleVariableNameChange}\"\n class=\"space-step-left\"\n pattern=\"[a-zA-Z0-9_]+\"\n aria-label=\"Variable name\"\n ></ui-filled-text-field>\n `\n }\n\n protected renderRoundStep(\n item: TransformationSteps.IRoundStep,\n assertionOrActionIndex: number,\n stepIndex: number\n ): TemplateResult {\n const pill = this.renderStepPill('Round', assertionOrActionIndex, stepIndex)\n const { precision = 0 } = item\n return html`\n ${pill}\n <ui-filled-text-field\n name=\"precision.${assertionOrActionIndex}.${stepIndex}\"\n data-assertion-index=\"${assertionOrActionIndex}\"\n data-step-index=\"${stepIndex}\"\n label=\"Precision\"\n required\n .value=\"${live(String(precision))}\"\n @change=\"${this.handleRoundPrecisionChange}\"\n class=\"space-step-left number-input\"\n type=\"number\"\n min=\"0\"\n max=\"100\"\n step=\"1\"\n title=\"The number of digits to appear after the decimal point. Should be a value between 0 and 100, inclusive.\"\n ></ui-filled-text-field>\n `\n }\n\n protected renderSubstringStep(\n item: TransformationSteps.ISubstringStep,\n assertionOrActionIndex: number,\n stepIndex: number\n ): TemplateResult {\n const pill = this.renderStepPill('Substring', assertionOrActionIndex, stepIndex)\n const { start = 0, end } = item\n return html`\n ${pill}\n <ui-filled-text-field\n name=\"start.${assertionOrActionIndex}.${stepIndex}\"\n data-assertion-index=\"${assertionOrActionIndex}\"\n data-step-index=\"${stepIndex}\"\n label=\"Start\"\n required\n .value=\"${live(String(start))}\"\n @change=\"${this.handleSubstringStartChange}\"\n class=\"space-step-left number-input\"\n type=\"number\"\n step=\"1\"\n title=\"The index of the first character to include in the returned substring.\"\n ></ui-filled-text-field>\n\n <ui-filled-text-field\n name=\"end.${assertionOrActionIndex}.${stepIndex}\"\n data-assertion-index=\"${assertionOrActionIndex}\"\n data-step-index=\"${stepIndex}\"\n label=\"End\"\n .value=\"${live(end ? String(end) : '')}\"\n @change=\"${this.handleSubstringEndChange}\"\n class=\"space-step-left number-input\"\n type=\"number\"\n step=\"1\"\n title=\"The index of the first character to exclude from the returned substring.\"\n ></ui-filled-text-field>\n `\n }\n\n protected renderEqualAssertion(\n item: CoreAssertions.IEqualAssertion,\n assertionOrActionIndex: number,\n stepIndex: number\n ): TemplateResult {\n return html`\n <ui-filled-text-field\n name=\"equal.${assertionOrActionIndex}.${stepIndex}\"\n data-assertion-index=\"${assertionOrActionIndex}\"\n data-step-index=\"${stepIndex}\"\n data-kind=\"${CoreAssertions.EqualAssertionKind}\"\n label=\"Equal to\"\n required\n .value=\"${live(item.value || '')}\"\n @change=\"${this.handleEqualAssertionValueChange}\"\n >\n <ui-icon-button\n slot=\"suffix\"\n title=\"Remove assertion\"\n aria-label=\"Deletes this assertion\"\n @click=\"${this.handleRemoveStep}\"\n data-index=\"${assertionOrActionIndex}\"\n data-step-index=\"${stepIndex}\"\n ><ui-icon icon=\"close\" role=\"presentation\"></ui-icon\n ></ui-icon-button>\n </ui-filled-text-field>\n `\n }\n\n protected renderNotEqualAssertion(\n item: CoreAssertions.INotEqualAssertion,\n assertionOrActionIndex: number,\n stepIndex: number\n ): TemplateResult {\n return html`\n <ui-filled-text-field\n name=\"not-equal.${assertionOrActionIndex}.${stepIndex}\"\n data-assertion-index=\"${assertionOrActionIndex}\"\n data-step-index=\"${stepIndex}\"\n data-kind=\"${CoreAssertions.NotEqualAssertionKind}\"\n label=\"Not equal to\"\n required\n .value=\"${live(item.value || '')}\"\n @change=\"${this.handleEqualAssertionValueChange}\"\n >\n <ui-icon-button\n slot=\"suffix\"\n title=\"Remove assertion\"\n aria-label=\"Deletes this assertion\"\n @click=\"${this.handleRemoveStep}\"\n data-index=\"${assertionOrActionIndex}\"\n data-step-index=\"${stepIndex}\"\n ><ui-icon icon=\"close\" role=\"presentation\"></ui-icon\n ></ui-icon-button>\n </ui-filled-text-field>\n `\n }\n\n protected renderGreaterThanAssertion(\n item: CoreAssertions.IGreaterThanAssertion,\n assertionOrActionIndex: number,\n stepIndex: number\n ): TemplateResult {\n const { equal, value } = item\n const label = equal ? 'Greater than equal' : 'Greater than'\n const effectiveValue = typeof value === 'number' ? String(value) : ''\n return html`\n <ui-filled-text-field\n name=\"value.${assertionOrActionIndex}.${stepIndex}\"\n data-assertion-index=\"${assertionOrActionIndex}\"\n data-step-index=\"${stepIndex}\"\n data-kind=\"${CoreAssertions.GreaterThanAssertionKind}\"\n data-variant=\"${equal ? 'equal' : ''}\"\n label=\"${label}\"\n required\n .value=\"${live(effectiveValue)}\"\n @change=\"${this.handleGreaterThanAssertionValueChange}\"\n inputMode=\"numeric\"\n >\n <ui-icon-button\n slot=\"suffix\"\n title=\"Remove assertion\"\n aria-label=\"Deletes this assertion\"\n @click=\"${this.handleRemoveStep}\"\n data-index=\"${assertionOrActionIndex}\"\n data-step-index=\"${stepIndex}\"\n ><ui-icon icon=\"close\" role=\"presentation\"></ui-icon\n ></ui-icon-button>\n </ui-filled-text-field>\n `\n }\n\n protected renderLessThanAssertion(\n item: CoreAssertions.ILessThanAssertion,\n assertionOrActionIndex: number,\n stepIndex: number\n ): TemplateResult {\n const { equal, value } = item\n const label = equal ? 'Less than equal' : 'Less than'\n const effectiveValue = typeof value === 'number' ? String(value) : ''\n return html`\n <ui-filled-text-field\n name=\"value.${assertionOrActionIndex}.${stepIndex}\"\n data-assertion-index=\"${assertionOrActionIndex}\"\n data-step-index=\"${stepIndex}\"\n data-kind=\"${CoreAssertions.LessThanAssertionKind}\"\n data-variant=\"${equal ? 'equal' : ''}\"\n label=\"${label}\"\n required\n .value=\"${live(effectiveValue)}\"\n @change=\"${this.handleLessThanAssertionValueChange}\"\n inputMode=\"numeric\"\n >\n <ui-icon-button\n slot=\"suffix\"\n title=\"Remove assertion\"\n aria-label=\"Deletes this assertion\"\n @click=\"${this.handleRemoveStep}\"\n data-index=\"${assertionOrActionIndex}\"\n data-step-index=\"${stepIndex}\"\n ><ui-icon icon=\"close\" role=\"presentation\"></ui-icon\n ></ui-icon-button>\n </ui-filled-text-field>\n `\n }\n\n protected renderIncludesAssertion(\n item: CoreAssertions.IIncludesAssertion,\n assertionOrActionIndex: number,\n stepIndex: number\n ): TemplateResult {\n const { value } = item\n return html`\n <ui-filled-text-field\n name=\"includes.${assertionOrActionIndex}.${stepIndex}\"\n data-assertion-index=\"${assertionOrActionIndex}\"\n data-step-index=\"${stepIndex}\"\n data-kind=\"${CoreAssertions.IncludesAssertionKind}\"\n label=\"Includes value\"\n required\n .value=\"${live(value || '')}\"\n @change=\"${this.handleIncludesAssertionValueChange}\"\n >\n <ui-icon-button\n slot=\"suffix\"\n title=\"Remove assertion\"\n aria-label=\"Deletes this assertion\"\n @click=\"${this.handleRemoveStep}\"\n data-index=\"${assertionOrActionIndex}\"\n data-step-index=\"${stepIndex}\"\n ><ui-icon icon=\"close\" role=\"presentation\"></ui-icon\n ></ui-icon-button>\n </ui-filled-text-field>\n `\n }\n\n protected renderNotIncludesAssertion(\n item: CoreAssertions.INotIncludesAssertion,\n assertionOrActionIndex: number,\n stepIndex: number\n ): TemplateResult {\n const { value } = item\n return html`\n <ui-filled-text-field\n name=\"not-includes.${assertionOrActionIndex}.${stepIndex}\"\n data-assertion-index=\"${assertionOrActionIndex}\"\n data-step-index=\"${stepIndex}\"\n data-kind=\"${CoreAssertions.NotIncludesAssertionKind}\"\n label=\"Not includes value\"\n required\n .value=\"${live(value || '')}\"\n @change=\"${this.handleIncludesAssertionValueChange}\"\n >\n <ui-icon-button\n slot=\"suffix\"\n title=\"Remove assertion\"\n aria-label=\"Deletes this assertion\"\n @click=\"${this.handleRemoveStep}\"\n data-index=\"${assertionOrActionIndex}\"\n data-step-index=\"${stepIndex}\"\n ><ui-icon icon=\"close\" role=\"presentation\"></ui-icon\n ></ui-icon-button>\n </ui-filled-text-field>\n `\n }\n\n protected renderMatchesAssertion(\n item: CoreAssertions.IMatchesAssertion,\n assertionOrActionIndex: number,\n stepIndex: number\n ): TemplateResult {\n const { value } = item\n return html`\n <ui-filled-text-field\n name=\"matches.${assertionOrActionIndex}.${stepIndex}\"\n data-assertion-index=\"${assertionOrActionIndex}\"\n data-step-index=\"${stepIndex}\"\n data-kind=\"${CoreAssertions.MatchesAssertionKind}\"\n label=\"Matches regex\"\n required\n .value=\"${live(value || '')}\"\n @change=\"${this.handleMatchesAssertionValueChange}\"\n @input=\"${this.validateRegexPattern}\"\n invalidText=\"Pattern is invalid\"\n >\n <ui-icon-button\n slot=\"suffix\"\n title=\"Remove assertion\"\n aria-label=\"Deletes this assertion\"\n @click=\"${this.handleRemoveStep}\"\n data-index=\"${assertionOrActionIndex}\"\n data-step-index=\"${stepIndex}\"\n ><ui-icon icon=\"close\" role=\"presentation\"></ui-icon\n ></ui-icon-button>\n </ui-filled-text-field>\n `\n }\n\n protected renderToBeAssertion(\n item: CoreAssertions.IToBeAssertion,\n assertionOrActionIndex: number,\n stepIndex: number\n ): TemplateResult {\n const { value } = item\n const types = Object.values(CoreAssertions.ToBeTypes)\n return html`\n <ui-filled-text-field\n name=\"to-be.${assertionOrActionIndex}.${stepIndex}\"\n data-assertion-index=\"${assertionOrActionIndex}\"\n data-step-index=\"${stepIndex}\"\n data-kind=\"${CoreAssertions.ToBeAssertionKind}\"\n label=\"To be...\"\n required\n .value=\"${live(value || '')}\"\n @change=\"${this.handleToBeAssertionValueChange}\"\n .list=\"${types}\"\n >\n <ui-icon-button\n slot=\"suffix\"\n title=\"Remove assertion\"\n aria-label=\"Deletes this assertion\"\n @click=\"${this.handleRemoveStep}\"\n data-index=\"${assertionOrActionIndex}\"\n data-step-index=\"${stepIndex}\"\n ><ui-icon icon=\"close\" role=\"presentation\"></ui-icon\n ></ui-icon-button>\n </ui-filled-text-field>\n `\n }\n\n protected renderNotToBeAssertion(\n item: CoreAssertions.INotToBeAssertion,\n assertionOrActionIndex: number,\n stepIndex: number\n ): TemplateResult {\n const { value } = item\n const types = Object.values(CoreAssertions.ToBeTypes)\n return html`\n <ui-filled-text-field\n name=\"not-to-be.${assertionOrActionIndex}.${stepIndex}\"\n data-assertion-index=\"${assertionOrActionIndex}\"\n data-step-index=\"${stepIndex}\"\n data-kind=\"${CoreAssertions.NotToBeAssertionKind}\"\n label=\"Not to be...\"\n required\n .value=\"${live(value || '')}\"\n @change=\"${this.handleToBeAssertionValueChange}\"\n .list=\"${types}\"\n >\n <ui-icon-button\n slot=\"suffix\"\n title=\"Remove assertion\"\n aria-label=\"Deletes this assertion\"\n @click=\"${this.handleRemoveStep}\"\n data-index=\"${assertionOrActionIndex}\"\n data-step-index=\"${stepIndex}\"\n ><ui-icon icon=\"close\" role=\"presentation\"></ui-icon\n ></ui-icon-button>\n </ui-filled-text-field>\n `\n }\n\n protected renderResponseDataSourceSuggestions(disabled = false): TemplateResult {\n return html`\n <details class=\"action-group\" open>\n <summary>Data Source</summary>\n <div class=\"group-content\">\n ${this.renderBlockChip('Status code', 'data-source', DataSteps.ReadDataSourceStepKind, {\n source: FlowSourceEnum.response,\n data: FlowResponseDataEnum.status,\n disabled,\n title: 'Reads the response status code and passes it to the next step.',\n })}\n ${this.renderBlockChip('Response headers', 'data-source', DataSteps.ReadDataSourceStepKind, {\n source: FlowSourceEnum.response,\n data: FlowResponseDataEnum.headers,\n disabled,\n title: 'Reads the response headers and passes them to the next step.',\n })}\n ${this.renderBlockChip('Response body', 'data-source', DataSteps.ReadDataSourceStepKind, {\n source: FlowSourceEnum.response,\n data: FlowResponseDataEnum.body,\n disabled,\n title: 'Reads the response body and passes it to the next step.',\n })}\n ${this.renderBlockChip('Status message', 'data-source', DataSteps.ReadDataSourceStepKind, {\n source: FlowSourceEnum.response,\n data: FlowResponseDataEnum.statusText,\n disabled,\n title: 'Reads the response status message and passes it to the next step.',\n })}\n </div>\n </details>\n `\n }\n\n protected renderRequestDataSourceSuggestions(disabled = false): TemplateResult {\n return html`\n <details class=\"action-group\" open>\n <summary>Data Source</summary>\n <div class=\"group-content\">\n ${this.renderBlockChip('Request headers', 'data-source', DataSteps.ReadDataSourceStepKind, {\n source: FlowSourceEnum.request,\n data: FlowRequestDataEnum.headers,\n disabled,\n title: 'Reads the request headers and passes them to the next step.',\n })}\n ${this.renderBlockChip('Request body', 'data-source', DataSteps.ReadDataSourceStepKind, {\n source: FlowSourceEnum.request,\n data: FlowRequestDataEnum.body,\n disabled,\n title: 'Reads the request body and passes it to the next step.',\n })}\n ${this.renderBlockChip('Request method', 'data-source', DataSteps.ReadDataSourceStepKind, {\n source: FlowSourceEnum.request,\n data: FlowRequestDataEnum.method,\n disabled,\n title: 'Reads the request method and passes it to the next step.',\n })}\n </div>\n </details>\n `\n }\n\n protected renderTransformationSuggestions(disabled = false): TemplateResult {\n return html`\n <details class=\"action-group\" open>\n <summary>Transformation</summary>\n <div class=\"group-content\">\n ${this.renderBlockChip('Read value', 'transformation', DataSteps.ReadValueStepKind, {\n disabled,\n title: 'Reads a value from the previous step. Configure the path to the value.',\n })}\n ${this.renderBlockChip('As number', 'transformation', TransformationSteps.AsNumberStepKind, {\n disabled,\n title: 'Transforms the value received from the previous step to a number.',\n })}\n ${this.renderBlockChip('Round', 'transformation', TransformationSteps.RoundStepKind, {\n disabled,\n title: 'Rounds the value received from the previous step with a precision',\n })}\n ${this.renderBlockChip('To lower case', 'transformation', TransformationSteps.AsLowerCaseStepKind, {\n disabled,\n title: 'Transforms the value received from the previous step to a lower case string',\n })}\n ${this.renderBlockChip('To upper case', 'transformation', TransformationSteps.AsUpperCaseStepKind, {\n disabled,\n title: 'Transforms the value received from the previous step to an upper case string',\n })}\n ${this.renderBlockChip('Trim', 'transformation', TransformationSteps.TrimStepKind, {\n disabled,\n title: 'Treats the value received from the previous step as string as trims the whitespace.',\n })}\n ${this.renderBlockChip('Substring', 'transformation', TransformationSteps.SubstringStepKind, {\n disabled,\n title: 'Passes a sub string of the current value to the next step.',\n })}\n </div>\n </details>\n `\n }\n\n protected renderActionSuggestions(disabled = false): TemplateResult {\n return html`\n <details class=\"action-group\" open>\n <summary>Actions</summary>\n <div class=\"group-content\">\n ${this.renderBlockChip('Set cookie', 'action', DataSteps.SetCookieStepKind, {\n disabled,\n title: 'Sets and stores a cookie',\n })}\n ${this.renderBlockChip('Delete cookie', 'action', DataSteps.DeleteCookieStepKind, {\n disabled,\n title: 'Deletes a cookie.',\n })}\n ${this.renderBlockChip('Set variable', 'action', DataSteps.SetVariableStepKind, {\n disabled,\n title: 'Sets a variable during the execution time. It does not store the value.',\n })}\n ${this.renderBlockChip('Unset variable', 'action', DataSteps.DeleteVariableStepKind, {\n disabled,\n title: 'Clears a variable during the execution time. It does not store the value.',\n })}\n </div>\n </details>\n `\n }\n\n protected renderAssertionSuggestions(disabled = false): TemplateResult {\n return html`\n <details class=\"action-group\" open>\n <summary>Assertions</summary>\n <div class=\"group-content\">\n ${this.renderBlockChip('Equal', 'assertion', CoreAssertions.EqualAssertionKind, { disabled })}\n ${this.renderBlockChip('Not equal', 'assertion', CoreAssertions.NotEqualAssertionKind, { disabled })}\n ${this.renderBlockChip('Greater than', 'assertion', CoreAssertions.GreaterThanAssertionKind, { disabled })}\n ${this.renderBlockChip('Greater than equal', 'assertion', CoreAssertions.GreaterThanAssertionKind, {\n disabled,\n variant: 'equal',\n })}\n ${this.renderBlockChip('Less than', 'assertion', CoreAssertions.LessThanAssertionKind, { disabled })}\n ${this.renderBlockChip('Less than equal', 'assertion', CoreAssertions.LessThanAssertionKind, {\n disabled,\n variant: 'equal',\n })}\n ${this.renderBlockChip('Includes', 'assertion', CoreAssertions.IncludesAssertionKind, { disabled })}\n ${this.renderBlockChip('Not includes', 'assertion', CoreAssertions.NotIncludesAssertionKind, { disabled })}\n ${this.renderBlockChip('Matches', 'assertion', CoreAssertions.MatchesAssertionKind, { disabled })}\n ${this.renderBlockChip('OK', 'assertion', CoreAssertions.OkAssertionKind, { disabled })}\n ${this.renderBlockChip('Not OK', 'assertion', CoreAssertions.NotOkAssertionKind, { disabled })}\n ${this.renderBlockChip('To be...', 'assertion', CoreAssertions.ToBeAssertionKind, { disabled })}\n ${this.renderBlockChip('Not to be...', 'assertion', CoreAssertions.NotToBeAssertionKind, { disabled })}\n </div>\n </details>\n `\n }\n}\n"]}
@@ -1,7 +1,7 @@
1
1
  import { nothing, TemplateResult } from 'lit';
2
2
  import ApiElement from '../ApiElement.js';
3
3
  import '../../md/switch/ui-switch.js';
4
- import '../../md/text-field/ui-text-field.js';
4
+ import '../../md/text-field/ui-filled-text-field.js';
5
5
  /**
6
6
  * @fires change - when the configuration object changed.
7
7
  */
@@ -1 +1 @@
1
- {"version":3,"file":"RequestConfigElement.d.ts","sourceRoot":"","sources":["../../../../src/elements/http/RequestConfigElement.ts"],"names":[],"mappings":"AACA,OAAO,EAAQ,OAAO,EAAE,cAAc,EAAE,MAAM,KAAK,CAAA;AAGnD,OAAO,UAAU,MAAM,kBAAkB,CAAA;AAGzC,OAAO,8BAA8B,CAAA;AACrC,OAAO,sCAAsC,CAAA;AAE7C;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,oBAAqB,SAAQ,UAAU;IAC1D;;OAEG;IACyB,QAAQ,CAAC,MAAM,oEAA+B;IAE1E,SAAS,CAAC,mBAAmB,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI;IAO7C,SAAS,CAAC,qBAAqB,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI;IAM/C,SAAS,CAAC,mBAAmB,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI;IAM7C,SAAS,CAAC,0BAA0B,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI;IAMpD,SAAS,CAAC,oBAAoB,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI;IAO9C,SAAS,CAAC,mBAAmB,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI;IAwB7C,SAAS,CAAC,4BAA4B,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI;IAmBtD,SAAS,CAAC,yBAAyB,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI;cAmBhC,MAAM,IAAI,cAAc;IAS3C,SAAS,CAAC,gBAAgB,IAAI,cAAc;IAO5C,SAAS,CAAC,kBAAkB,IAAI,cAAc;IAiB9C,SAAS,CAAC,qBAAqB,IAAI,cAAc,GAAG,OAAO,OAAO;IAoBlE,SAAS,CAAC,mBAAmB,IAAI,cAAc,GAAG,OAAO,OAAO;IAqBhE,SAAS,CAAC,4BAA4B,IAAI,cAAc,GAAG,OAAO,OAAO;IAiBzE,SAAS,CAAC,yBAAyB,IAAI,cAAc,GAAG,OAAO,OAAO;IAiBtE,SAAS,CAAC,gCAAgC,IAAI,cAAc,GAAG,OAAO,OAAO;IAoB7E,SAAS,CAAC,gCAAgC,IAAI,cAAc,GAAG,OAAO,OAAO;IAoB7E,SAAS,CAAC,0BAA0B,IAAI,cAAc,GAAG,OAAO,OAAO;CAqBxE"}
1
+ {"version":3,"file":"RequestConfigElement.d.ts","sourceRoot":"","sources":["../../../../src/elements/http/RequestConfigElement.ts"],"names":[],"mappings":"AACA,OAAO,EAAQ,OAAO,EAAE,cAAc,EAAE,MAAM,KAAK,CAAA;AAGnD,OAAO,UAAU,MAAM,kBAAkB,CAAA;AAGzC,OAAO,8BAA8B,CAAA;AACrC,OAAO,6CAA6C,CAAA;AAEpD;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,oBAAqB,SAAQ,UAAU;IAC1D;;OAEG;IACyB,QAAQ,CAAC,MAAM,oEAA+B;IAE1E,SAAS,CAAC,mBAAmB,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI;IAO7C,SAAS,CAAC,qBAAqB,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI;IAM/C,SAAS,CAAC,mBAAmB,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI;IAM7C,SAAS,CAAC,0BAA0B,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI;IAMpD,SAAS,CAAC,oBAAoB,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI;IAO9C,SAAS,CAAC,mBAAmB,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI;IAwB7C,SAAS,CAAC,4BAA4B,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI;IAmBtD,SAAS,CAAC,yBAAyB,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI;cAmBhC,MAAM,IAAI,cAAc;IAS3C,SAAS,CAAC,gBAAgB,IAAI,cAAc;IAO5C,SAAS,CAAC,kBAAkB,IAAI,cAAc;IAiB9C,SAAS,CAAC,qBAAqB,IAAI,cAAc,GAAG,OAAO,OAAO;IAoBlE,SAAS,CAAC,mBAAmB,IAAI,cAAc,GAAG,OAAO,OAAO;IAqBhE,SAAS,CAAC,4BAA4B,IAAI,cAAc,GAAG,OAAO,OAAO;IAiBzE,SAAS,CAAC,yBAAyB,IAAI,cAAc,GAAG,OAAO,OAAO;IAiBtE,SAAS,CAAC,gCAAgC,IAAI,cAAc,GAAG,OAAO,OAAO;IAoB7E,SAAS,CAAC,gCAAgC,IAAI,cAAc,GAAG,OAAO,OAAO;IAoB7E,SAAS,CAAC,0BAA0B,IAAI,cAAc,GAAG,OAAO,OAAO;CAqBxE"}
@@ -5,7 +5,7 @@ import { property } from 'lit/decorators.js';
5
5
  import { live } from 'lit/directives/live.js';
6
6
  import ApiElement from '../ApiElement.js';
7
7
  import '../../md/switch/ui-switch.js';
8
- import '../../md/text-field/ui-text-field.js';
8
+ import '../../md/text-field/ui-filled-text-field.js';
9
9
  let RequestConfigElement = (() => {
10
10
  let _classSuper = ApiElement;
11
11
  let _config_decorators;
@@ -170,7 +170,7 @@ let RequestConfigElement = (() => {
170
170
  const value = typeof timeout === 'number' ? String(timeout) : '';
171
171
  return html `
172
172
  <div class="form-row">
173
- <ui-text-field
173
+ <ui-filled-text-field
174
174
  name="timeout"
175
175
  label="Request timeout"
176
176
  .value="${live(value)}"
@@ -178,7 +178,7 @@ let RequestConfigElement = (() => {
178
178
  supportingText="0 for no timeout, clear for default."
179
179
  inputMode="numeric"
180
180
  invalidText="Enter a positive integer or zero."
181
- ></ui-text-field>
181
+ ></ui-filled-text-field>
182
182
  </div>
183
183
  `;
184
184
  }
@@ -189,12 +189,12 @@ let RequestConfigElement = (() => {
189
189
  }
190
190
  return html `
191
191
  <div class="form-row">
192
- <ui-text-field
192
+ <ui-filled-text-field
193
193
  name="defaultUserAgent"
194
194
  label="Default user agent"
195
195
  .value="${live(defaultUserAgent)}"
196
196
  @change="${this.handleDefaultUserAgentChange}"
197
- ></ui-text-field>
197
+ ></ui-filled-text-field>
198
198
  </div>
199
199
  `;
200
200
  }
@@ -205,12 +205,12 @@ let RequestConfigElement = (() => {
205
205
  }
206
206
  return html `
207
207
  <div class="form-row">
208
- <ui-text-field
208
+ <ui-filled-text-field
209
209
  name="defaultAccept"
210
210
  label="Default accept"
211
211
  .value="${live(defaultAccept)}"
212
212
  @change="${this.handleDefaultAcceptChange}"
213
- ></ui-text-field>
213
+ ></ui-filled-text-field>
214
214
  </div>
215
215
  `;
216
216
  }
@@ -1 +1 @@
1
- {"version":3,"file":"RequestConfigElement.js","sourceRoot":"","sources":["../../../../src/elements/http/RequestConfigElement.ts"],"names":[],"mappings":"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","sourcesContent":["import { RequestConfig } from '@api-client/core/models/RequestConfig.js'\nimport { html, nothing, TemplateResult } from 'lit'\nimport { property } from 'lit/decorators.js'\nimport { live } from 'lit/directives/live.js'\nimport ApiElement from '../ApiElement.js'\nimport type SwitchElement from '../../md/switch/internals/SwitchElement.js'\nimport type Input from '../../md/input/Input.js'\nimport '../../md/switch/ui-switch.js'\nimport '../../md/text-field/ui-text-field.js'\n\n/**\n * @fires change - when the configuration object changed.\n */\nexport default class RequestConfigElement extends ApiElement {\n /**\n * HTTP request configuration for the transport.\n */\n @property({ type: Object }) accessor config = new RequestConfig().toJSON()\n\n protected handleEnabledToggle(e: Event): void {\n const node = e.currentTarget as SwitchElement\n this.config.enabled = !!node.checked\n this.notifyChange()\n this.requestUpdate()\n }\n\n protected handleFollowRedirects(e: Event): void {\n const node = e.currentTarget as SwitchElement\n this.config.followRedirects = node.checked\n this.notifyChange()\n }\n\n protected handleIgnoreCookies(e: Event): void {\n const node = e.currentTarget as SwitchElement\n this.config.ignoreSessionCookies = node.checked\n this.notifyChange()\n }\n\n protected handleValidateCertificates(e: Event): void {\n const node = e.currentTarget as SwitchElement\n this.config.validateCertificates = node.checked\n this.notifyChange()\n }\n\n protected handleDefaultHeaders(e: Event): void {\n const node = e.currentTarget as SwitchElement\n this.config.defaultHeaders = node.checked\n this.notifyChange()\n this.requestUpdate()\n }\n\n protected handleTimeoutChange(e: Event): void {\n const input = e.target as Input\n const raw = input.value.trim()\n if (!raw) {\n delete this.config.timeout\n this.requestUpdate()\n } else {\n const num = Number(raw)\n if (Number.isNaN(num)) {\n input.setCustomValidity('Invalid input.')\n input.checkValidity()\n return\n }\n if (this.config.timeout === num) {\n return\n }\n this.config.timeout = num\n }\n input.setCustomValidity('')\n input.checkValidity()\n this.notifyChange()\n this.requestUpdate()\n }\n\n protected handleDefaultUserAgentChange(e: Event): void {\n const input = e.target as Input\n const raw = input.value.trim()\n if (!raw) {\n if (!this.config.defaultUserAgent) {\n this.requestUpdate()\n return\n }\n delete this.config.defaultUserAgent\n this.requestUpdate()\n } else {\n if (this.config.defaultUserAgent === raw) {\n return\n }\n this.config.defaultUserAgent = raw\n }\n this.notifyChange()\n }\n\n protected handleDefaultAcceptChange(e: Event): void {\n const input = e.target as Input\n const raw = input.value.trim()\n if (!raw) {\n if (!this.config.defaultAccept) {\n this.requestUpdate()\n return\n }\n delete this.config.defaultAccept\n this.requestUpdate()\n } else {\n if (this.config.defaultAccept === raw) {\n return\n }\n this.config.defaultAccept = raw\n }\n this.notifyChange()\n }\n\n protected override render(): TemplateResult {\n return html`\n ${this.renderPanelTitle()} ${this.renderEnableSwitch()} ${this.renderRedirectsConfig()}\n ${this.renderIgnoreSessionCookiesConfig()} ${this.renderValidateCertificatesConfig()}\n ${this.renderDefaultHeadersConfig()} ${this.renderDefaultUserAgentConfig()} ${this.renderDefaultAcceptConfig()}\n ${this.renderTimeoutConfig()}\n `\n }\n\n protected renderPanelTitle(): TemplateResult {\n return html`\n <div class=\"title-medium\">Request options</div>\n <p class=\"body-medium\">This overrides other configurations defined in the application.</p>\n `\n }\n\n protected renderEnableSwitch(): TemplateResult {\n const { enabled = false } = this.config\n return html`\n <div class=\"form-row\">\n <ui-switch\n name=\"enabled\"\n .checked=\"${enabled}\"\n @change=\"${this.handleEnabledToggle}\"\n title=\"Toggle options enabled\"\n aria-label=\"Toggle options enabled\"\n id=\"enable\"\n ></ui-switch>\n <label class=\"label-large\" for=\"enable\"> Enable custom request options </label>\n </div>\n `\n }\n\n protected renderRedirectsConfig(): TemplateResult | typeof nothing {\n const { enabled = false, followRedirects = false } = this.config\n if (!enabled) {\n return nothing\n }\n return html`\n <div class=\"form-row\">\n <ui-switch\n name=\"followRedirects\"\n id=\"followRedirects\"\n .checked=\"${followRedirects}\"\n @change=\"${this.handleFollowRedirects}\"\n title=\"Toggle follow redirects\"\n aria-label=\"Toggle follow redirects\"\n ></ui-switch>\n <label class=\"label-large\" for=\"followRedirects\"> Follow redirects </label>\n </div>\n `\n }\n\n protected renderTimeoutConfig(): TemplateResult | typeof nothing {\n const { enabled = false, timeout = 90 } = this.config\n if (!enabled) {\n return nothing\n }\n const value = typeof timeout === 'number' ? String(timeout) : ''\n return html`\n <div class=\"form-row\">\n <ui-text-field\n name=\"timeout\"\n label=\"Request timeout\"\n .value=\"${live(value)}\"\n @change=\"${this.handleTimeoutChange}\"\n supportingText=\"0 for no timeout, clear for default.\"\n inputMode=\"numeric\"\n invalidText=\"Enter a positive integer or zero.\"\n ></ui-text-field>\n </div>\n `\n }\n\n protected renderDefaultUserAgentConfig(): TemplateResult | typeof nothing {\n const { enabled = false, defaultUserAgent = 'api-client', defaultHeaders = false } = this.config\n if (!enabled || !defaultHeaders) {\n return nothing\n }\n return html`\n <div class=\"form-row\">\n <ui-text-field\n name=\"defaultUserAgent\"\n label=\"Default user agent\"\n .value=\"${live(defaultUserAgent)}\"\n @change=\"${this.handleDefaultUserAgentChange}\"\n ></ui-text-field>\n </div>\n `\n }\n\n protected renderDefaultAcceptConfig(): TemplateResult | typeof nothing {\n const { enabled = false, defaultAccept = '*/*', defaultHeaders = false } = this.config\n if (!enabled || !defaultHeaders) {\n return nothing\n }\n return html`\n <div class=\"form-row\">\n <ui-text-field\n name=\"defaultAccept\"\n label=\"Default accept\"\n .value=\"${live(defaultAccept)}\"\n @change=\"${this.handleDefaultAcceptChange}\"\n ></ui-text-field>\n </div>\n `\n }\n\n protected renderIgnoreSessionCookiesConfig(): TemplateResult | typeof nothing {\n const { enabled = false, ignoreSessionCookies = false } = this.config\n if (!enabled) {\n return nothing\n }\n return html`\n <div class=\"form-row\">\n <ui-switch\n name=\"ignoreSessionCookies\"\n id=\"ignoreSessionCookies\"\n .checked=\"${ignoreSessionCookies}\"\n @change=\"${this.handleIgnoreCookies}\"\n title=\"Toggle ignore cookies\"\n aria-label=\"Toggle ignore cookies\"\n ></ui-switch>\n <label class=\"label-large\" for=\"ignoreSessionCookies\"> Ignore cookies </label>\n </div>\n `\n }\n\n protected renderValidateCertificatesConfig(): TemplateResult | typeof nothing {\n const { enabled = false, validateCertificates = false } = this.config\n if (!enabled) {\n return nothing\n }\n return html`\n <div class=\"form-row\">\n <ui-switch\n name=\"validateCertificates\"\n id=\"validateCertificates\"\n .checked=\"${validateCertificates}\"\n @change=\"${this.handleValidateCertificates}\"\n title=\"Toggle validate certificates\"\n aria-label=\"Toggle validate certificates\"\n ></ui-switch>\n <label class=\"label-large\" for=\"validateCertificates\"> Validate certificates </label>\n </div>\n `\n }\n\n protected renderDefaultHeadersConfig(): TemplateResult | typeof nothing {\n const { enabled = false, defaultHeaders = false } = this.config\n if (!enabled) {\n return nothing\n }\n return html`\n <div class=\"form-row\">\n <ui-switch\n name=\"defaultHeaders\"\n id=\"defaultHeaders\"\n .checked=\"${defaultHeaders}\"\n @change=\"${this.handleDefaultHeaders}\"\n title=\"Toggle validate certificates\"\n aria-label=\"Toggle validate certificates\"\n ></ui-switch>\n <label class=\"label-large\" for=\"defaultHeaders\">\n Add default headers to the request (accept and user agent)\n </label>\n </div>\n `\n }\n}\n"]}
1
+ {"version":3,"file":"RequestConfigElement.js","sourceRoot":"","sources":["../../../../src/elements/http/RequestConfigElement.ts"],"names":[],"mappings":"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","sourcesContent":["import { RequestConfig } from '@api-client/core/models/RequestConfig.js'\nimport { html, nothing, TemplateResult } from 'lit'\nimport { property } from 'lit/decorators.js'\nimport { live } from 'lit/directives/live.js'\nimport ApiElement from '../ApiElement.js'\nimport type SwitchElement from '../../md/switch/internals/SwitchElement.js'\nimport type Input from '../../md/input/Input.js'\nimport '../../md/switch/ui-switch.js'\nimport '../../md/text-field/ui-filled-text-field.js'\n\n/**\n * @fires change - when the configuration object changed.\n */\nexport default class RequestConfigElement extends ApiElement {\n /**\n * HTTP request configuration for the transport.\n */\n @property({ type: Object }) accessor config = new RequestConfig().toJSON()\n\n protected handleEnabledToggle(e: Event): void {\n const node = e.currentTarget as SwitchElement\n this.config.enabled = !!node.checked\n this.notifyChange()\n this.requestUpdate()\n }\n\n protected handleFollowRedirects(e: Event): void {\n const node = e.currentTarget as SwitchElement\n this.config.followRedirects = node.checked\n this.notifyChange()\n }\n\n protected handleIgnoreCookies(e: Event): void {\n const node = e.currentTarget as SwitchElement\n this.config.ignoreSessionCookies = node.checked\n this.notifyChange()\n }\n\n protected handleValidateCertificates(e: Event): void {\n const node = e.currentTarget as SwitchElement\n this.config.validateCertificates = node.checked\n this.notifyChange()\n }\n\n protected handleDefaultHeaders(e: Event): void {\n const node = e.currentTarget as SwitchElement\n this.config.defaultHeaders = node.checked\n this.notifyChange()\n this.requestUpdate()\n }\n\n protected handleTimeoutChange(e: Event): void {\n const input = e.target as Input\n const raw = input.value.trim()\n if (!raw) {\n delete this.config.timeout\n this.requestUpdate()\n } else {\n const num = Number(raw)\n if (Number.isNaN(num)) {\n input.setCustomValidity('Invalid input.')\n input.checkValidity()\n return\n }\n if (this.config.timeout === num) {\n return\n }\n this.config.timeout = num\n }\n input.setCustomValidity('')\n input.checkValidity()\n this.notifyChange()\n this.requestUpdate()\n }\n\n protected handleDefaultUserAgentChange(e: Event): void {\n const input = e.target as Input\n const raw = input.value.trim()\n if (!raw) {\n if (!this.config.defaultUserAgent) {\n this.requestUpdate()\n return\n }\n delete this.config.defaultUserAgent\n this.requestUpdate()\n } else {\n if (this.config.defaultUserAgent === raw) {\n return\n }\n this.config.defaultUserAgent = raw\n }\n this.notifyChange()\n }\n\n protected handleDefaultAcceptChange(e: Event): void {\n const input = e.target as Input\n const raw = input.value.trim()\n if (!raw) {\n if (!this.config.defaultAccept) {\n this.requestUpdate()\n return\n }\n delete this.config.defaultAccept\n this.requestUpdate()\n } else {\n if (this.config.defaultAccept === raw) {\n return\n }\n this.config.defaultAccept = raw\n }\n this.notifyChange()\n }\n\n protected override render(): TemplateResult {\n return html`\n ${this.renderPanelTitle()} ${this.renderEnableSwitch()} ${this.renderRedirectsConfig()}\n ${this.renderIgnoreSessionCookiesConfig()} ${this.renderValidateCertificatesConfig()}\n ${this.renderDefaultHeadersConfig()} ${this.renderDefaultUserAgentConfig()} ${this.renderDefaultAcceptConfig()}\n ${this.renderTimeoutConfig()}\n `\n }\n\n protected renderPanelTitle(): TemplateResult {\n return html`\n <div class=\"title-medium\">Request options</div>\n <p class=\"body-medium\">This overrides other configurations defined in the application.</p>\n `\n }\n\n protected renderEnableSwitch(): TemplateResult {\n const { enabled = false } = this.config\n return html`\n <div class=\"form-row\">\n <ui-switch\n name=\"enabled\"\n .checked=\"${enabled}\"\n @change=\"${this.handleEnabledToggle}\"\n title=\"Toggle options enabled\"\n aria-label=\"Toggle options enabled\"\n id=\"enable\"\n ></ui-switch>\n <label class=\"label-large\" for=\"enable\"> Enable custom request options </label>\n </div>\n `\n }\n\n protected renderRedirectsConfig(): TemplateResult | typeof nothing {\n const { enabled = false, followRedirects = false } = this.config\n if (!enabled) {\n return nothing\n }\n return html`\n <div class=\"form-row\">\n <ui-switch\n name=\"followRedirects\"\n id=\"followRedirects\"\n .checked=\"${followRedirects}\"\n @change=\"${this.handleFollowRedirects}\"\n title=\"Toggle follow redirects\"\n aria-label=\"Toggle follow redirects\"\n ></ui-switch>\n <label class=\"label-large\" for=\"followRedirects\"> Follow redirects </label>\n </div>\n `\n }\n\n protected renderTimeoutConfig(): TemplateResult | typeof nothing {\n const { enabled = false, timeout = 90 } = this.config\n if (!enabled) {\n return nothing\n }\n const value = typeof timeout === 'number' ? String(timeout) : ''\n return html`\n <div class=\"form-row\">\n <ui-filled-text-field\n name=\"timeout\"\n label=\"Request timeout\"\n .value=\"${live(value)}\"\n @change=\"${this.handleTimeoutChange}\"\n supportingText=\"0 for no timeout, clear for default.\"\n inputMode=\"numeric\"\n invalidText=\"Enter a positive integer or zero.\"\n ></ui-filled-text-field>\n </div>\n `\n }\n\n protected renderDefaultUserAgentConfig(): TemplateResult | typeof nothing {\n const { enabled = false, defaultUserAgent = 'api-client', defaultHeaders = false } = this.config\n if (!enabled || !defaultHeaders) {\n return nothing\n }\n return html`\n <div class=\"form-row\">\n <ui-filled-text-field\n name=\"defaultUserAgent\"\n label=\"Default user agent\"\n .value=\"${live(defaultUserAgent)}\"\n @change=\"${this.handleDefaultUserAgentChange}\"\n ></ui-filled-text-field>\n </div>\n `\n }\n\n protected renderDefaultAcceptConfig(): TemplateResult | typeof nothing {\n const { enabled = false, defaultAccept = '*/*', defaultHeaders = false } = this.config\n if (!enabled || !defaultHeaders) {\n return nothing\n }\n return html`\n <div class=\"form-row\">\n <ui-filled-text-field\n name=\"defaultAccept\"\n label=\"Default accept\"\n .value=\"${live(defaultAccept)}\"\n @change=\"${this.handleDefaultAcceptChange}\"\n ></ui-filled-text-field>\n </div>\n `\n }\n\n protected renderIgnoreSessionCookiesConfig(): TemplateResult | typeof nothing {\n const { enabled = false, ignoreSessionCookies = false } = this.config\n if (!enabled) {\n return nothing\n }\n return html`\n <div class=\"form-row\">\n <ui-switch\n name=\"ignoreSessionCookies\"\n id=\"ignoreSessionCookies\"\n .checked=\"${ignoreSessionCookies}\"\n @change=\"${this.handleIgnoreCookies}\"\n title=\"Toggle ignore cookies\"\n aria-label=\"Toggle ignore cookies\"\n ></ui-switch>\n <label class=\"label-large\" for=\"ignoreSessionCookies\"> Ignore cookies </label>\n </div>\n `\n }\n\n protected renderValidateCertificatesConfig(): TemplateResult | typeof nothing {\n const { enabled = false, validateCertificates = false } = this.config\n if (!enabled) {\n return nothing\n }\n return html`\n <div class=\"form-row\">\n <ui-switch\n name=\"validateCertificates\"\n id=\"validateCertificates\"\n .checked=\"${validateCertificates}\"\n @change=\"${this.handleValidateCertificates}\"\n title=\"Toggle validate certificates\"\n aria-label=\"Toggle validate certificates\"\n ></ui-switch>\n <label class=\"label-large\" for=\"validateCertificates\"> Validate certificates </label>\n </div>\n `\n }\n\n protected renderDefaultHeadersConfig(): TemplateResult | typeof nothing {\n const { enabled = false, defaultHeaders = false } = this.config\n if (!enabled) {\n return nothing\n }\n return html`\n <div class=\"form-row\">\n <ui-switch\n name=\"defaultHeaders\"\n id=\"defaultHeaders\"\n .checked=\"${defaultHeaders}\"\n @change=\"${this.handleDefaultHeaders}\"\n title=\"Toggle validate certificates\"\n aria-label=\"Toggle validate certificates\"\n ></ui-switch>\n <label class=\"label-large\" for=\"defaultHeaders\">\n Add default headers to the request (accept and user agent)\n </label>\n </div>\n `\n }\n}\n"]}