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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (375) hide show
  1. package/esm2022/gio-asciidoctor/gio-asciidoctor.component.mjs +104 -0
  2. package/esm2022/gio-asciidoctor/gio-asciidoctor.module.mjs +33 -0
  3. package/esm2022/gio-asciidoctor/gio-asciidoctor.service.mjs +48 -0
  4. package/esm2022/gio-asciidoctor/gravitee-ui-particles-angular-gio-asciidoctor.mjs +5 -0
  5. package/esm2022/gio-asciidoctor/public-api.mjs +19 -0
  6. package/esm2022/gio-el/gio-el-editor/gio-el-editor-condition-group/gio-el-editor-condition-group.component.mjs +127 -0
  7. package/esm2022/gio-el/gio-el-editor/gio-el-editor-condition-group/gio-el-editor-condition-group.harness.mjs +158 -0
  8. package/esm2022/gio-el/gio-el-editor/gio-el-editor.component.mjs +131 -0
  9. package/esm2022/gio-el/gio-el-editor/gio-el-editor.harness.mjs +28 -0
  10. package/esm2022/gio-el/gio-el-editor/gio-el-field/gio-el-field.component.mjs +271 -0
  11. package/esm2022/gio-el/gio-el-editor/gio-el-field/gio-el-field.harness.mjs +53 -0
  12. package/esm2022/gio-el/gio-el-editor/gio-el-type/gio-el-editor-type-boolean/gio-el-editor-type-boolean.component.mjs +57 -0
  13. package/esm2022/gio-el/gio-el-editor/gio-el-type/gio-el-editor-type-boolean/gio-el-editor-type-boolean.harness.mjs +31 -0
  14. package/esm2022/gio-el/gio-el-editor/gio-el-type/gio-el-editor-type-date/gio-el-editor-type-date.component.mjs +74 -0
  15. package/esm2022/gio-el/gio-el-editor/gio-el-type/gio-el-editor-type-date/gio-el-editor-type-date.harness.mjs +29 -0
  16. package/esm2022/gio-el/gio-el-editor/gio-el-type/gio-el-editor-type-number/gio-el-editor-type-number.component.mjs +70 -0
  17. package/esm2022/gio-el/gio-el-editor/gio-el-type/gio-el-editor-type-number/gio-el-editor-type-number.harness.mjs +29 -0
  18. package/esm2022/gio-el/gio-el-editor/gio-el-type/gio-el-editor-type-string/gio-el-editor-type-string.component.mjs +73 -0
  19. package/esm2022/gio-el/gio-el-editor/gio-el-type/gio-el-editor-type-string/gio-el-editor-type-string.harness.mjs +29 -0
  20. package/esm2022/gio-el/gio-el-editor/gio-el-type/gio-el-editor-type.harness.mjs +38 -0
  21. package/esm2022/gio-el/gravitee-ui-particles-angular-gio-el.mjs +5 -0
  22. package/esm2022/gio-el/models/Condition.mjs +9 -0
  23. package/esm2022/gio-el/models/ConditionGroup.mjs +7 -0
  24. package/esm2022/gio-el/models/ConditionModel.mjs +17 -0
  25. package/esm2022/gio-el/models/ConditionsModel.mjs +4 -0
  26. package/esm2022/gio-el/models/ExpressionLanguageBuilder.mjs +97 -0
  27. package/esm2022/gio-el/models/Operator.mjs +2 -0
  28. package/esm2022/gio-el/models/public-api.mjs +21 -0
  29. package/esm2022/gio-el/public-api.mjs +19 -0
  30. package/esm2022/gravitee-ui-particles-angular.mjs +5 -0
  31. package/esm2022/lib/gio-avatar/gio-avatar.component.mjs +74 -0
  32. package/esm2022/lib/gio-avatar/gio-avatar.module.mjs +33 -0
  33. package/esm2022/lib/gio-avatar/index.mjs +18 -0
  34. package/esm2022/lib/gio-banner/gio-banner.component.mjs +120 -0
  35. package/esm2022/lib/gio-banner/gio-banner.module.mjs +64 -0
  36. package/esm2022/lib/gio-breadcrumb/gio-breadcrumb-item.directive.mjs +32 -0
  37. package/esm2022/lib/gio-breadcrumb/gio-breadcrumb.component.mjs +32 -0
  38. package/esm2022/lib/gio-breadcrumb/gio-breadcrumb.module.mjs +35 -0
  39. package/esm2022/lib/gio-breadcrumb/index.mjs +19 -0
  40. package/esm2022/lib/gio-card-empty-state/gio-card-empty-state.component.mjs +35 -0
  41. package/esm2022/lib/gio-card-empty-state/gio-card-empty-state.module.mjs +36 -0
  42. package/esm2022/lib/gio-card-empty-state/index.mjs +18 -0
  43. package/esm2022/lib/gio-clipboard/gio-clipboard-copy-icon.component.mjs +67 -0
  44. package/esm2022/lib/gio-clipboard/gio-clipboard-copy-wrapper.component.mjs +71 -0
  45. package/esm2022/lib/gio-clipboard/gio-clipboard.base.component.mjs +64 -0
  46. package/esm2022/lib/gio-clipboard/gio-clipboard.module.mjs +39 -0
  47. package/esm2022/lib/gio-confirm-and-validate-dialog/gio-confirm-and-validate-dialog.component.mjs +61 -0
  48. package/esm2022/lib/gio-confirm-and-validate-dialog/gio-confirm-and-validate-dialog.harness.mjs +40 -0
  49. package/esm2022/lib/gio-confirm-and-validate-dialog/gio-confirm-and-validate-dialog.module.mjs +40 -0
  50. package/esm2022/lib/gio-confirm-dialog/gio-confirm-dialog.component.mjs +54 -0
  51. package/esm2022/lib/gio-confirm-dialog/gio-confirm-dialog.harness.mjs +34 -0
  52. package/esm2022/lib/gio-confirm-dialog/gio-confirm-dialog.module.mjs +36 -0
  53. package/esm2022/lib/gio-dialog/gio-dialog.constant.mjs +21 -0
  54. package/esm2022/lib/gio-el/gio-el-assistant/gio-el-assistant.component.mjs +62 -0
  55. package/esm2022/lib/gio-el/gio-el-prompt/gio-el-prompt.component.mjs +112 -0
  56. package/esm2022/lib/gio-el/gio-el.service.mjs +60 -0
  57. package/esm2022/lib/gio-el/index.mjs +20 -0
  58. package/esm2022/lib/gio-el/models/ElAiPromptState.mjs +23 -0
  59. package/esm2022/lib/gio-el/public-api.mjs +20 -0
  60. package/esm2022/lib/gio-form-cron/gio-form-cron-hint.component.mjs +30 -0
  61. package/esm2022/lib/gio-form-cron/gio-form-cron-label.component.mjs +30 -0
  62. package/esm2022/lib/gio-form-cron/gio-form-cron.adapter.mjs +249 -0
  63. package/esm2022/lib/gio-form-cron/gio-form-cron.component.mjs +211 -0
  64. package/esm2022/lib/gio-form-cron/gio-form-cron.harness.mjs +77 -0
  65. package/esm2022/lib/gio-form-cron/gio-form-cron.module.mjs +69 -0
  66. package/esm2022/lib/gio-form-file-picker/gio-form-file-picker-add-button/gio-form-file-picker-add-button.component.mjs +29 -0
  67. package/esm2022/lib/gio-form-file-picker/gio-form-file-picker-empty/gio-form-file-picker-empty.component.mjs +27 -0
  68. package/esm2022/lib/gio-form-file-picker/gio-form-file-picker-label/gio-form-file-picker-label.component.mjs +26 -0
  69. package/esm2022/lib/gio-form-file-picker/gio-form-file-picker.component.harness.mjs +95 -0
  70. package/esm2022/lib/gio-form-file-picker/gio-form-file-picker.component.mjs +167 -0
  71. package/esm2022/lib/gio-form-file-picker/gio-form-file-picker.model.mjs +23 -0
  72. package/esm2022/lib/gio-form-file-picker/gio-form-file-picker.module.mjs +57 -0
  73. package/esm2022/lib/gio-form-file-picker/index.mjs +23 -0
  74. package/esm2022/lib/gio-form-focus-first-invalid/gio-form-focus-first-invalid-ignore.directive.mjs +31 -0
  75. package/esm2022/lib/gio-form-focus-first-invalid/gio-form-focus-first-invalid.directive.mjs +96 -0
  76. package/esm2022/lib/gio-form-focus-first-invalid/gio-form-focus-first-invalid.module.mjs +32 -0
  77. package/esm2022/lib/gio-form-headers/gio-form-headers-label.component.mjs +30 -0
  78. package/esm2022/lib/gio-form-headers/gio-form-headers.component.mjs +284 -0
  79. package/esm2022/lib/gio-form-headers/gio-form-headers.harness.mjs +73 -0
  80. package/esm2022/lib/gio-form-headers/gio-form-headers.module.mjs +77 -0
  81. package/esm2022/lib/gio-form-json-schema/gio-form-json-schema.component.mjs +209 -0
  82. package/esm2022/lib/gio-form-json-schema/gio-form-json-schema.module.mjs +244 -0
  83. package/esm2022/lib/gio-form-json-schema/gio-formly-json-schema.service.mjs +261 -0
  84. package/esm2022/lib/gio-form-json-schema/model/GioJsonSchema.mjs +17 -0
  85. package/esm2022/lib/gio-form-json-schema/model/GioJsonSchemaContext.mjs +2 -0
  86. package/esm2022/lib/gio-form-json-schema/type-component/array-type.component.mjs +109 -0
  87. package/esm2022/lib/gio-form-json-schema/type-component/code-editor-type.component.mjs +47 -0
  88. package/esm2022/lib/gio-form-json-schema/type-component/cron-type.component.mjs +42 -0
  89. package/esm2022/lib/gio-form-json-schema/type-component/headers-type.component.mjs +108 -0
  90. package/esm2022/lib/gio-form-json-schema/type-component/multischema-type.component.mjs +66 -0
  91. package/esm2022/lib/gio-form-json-schema/type-component/null-type.component.mjs +31 -0
  92. package/esm2022/lib/gio-form-json-schema/type-component/object-type.component.mjs +62 -0
  93. package/esm2022/lib/gio-form-json-schema/type-component/toggle-type.component.mjs +60 -0
  94. package/esm2022/lib/gio-form-json-schema/util/validation-message.util.mjs +38 -0
  95. package/esm2022/lib/gio-form-json-schema/wrappers/gio-banner-extension.mjs +10 -0
  96. package/esm2022/lib/gio-form-json-schema/wrappers/gio-banner-wrapper.component.mjs +28 -0
  97. package/esm2022/lib/gio-form-json-schema/wrappers/gio-el-helper-wrapper.component.mjs +61 -0
  98. package/esm2022/lib/gio-form-json-schema/wrappers/gio-password-eye.component.mjs +74 -0
  99. package/esm2022/lib/gio-form-selection-inline/gio-form-selection-inline-card-content/gio-form-selection-inline-card-content.component.mjs +79 -0
  100. package/esm2022/lib/gio-form-selection-inline/gio-form-selection-inline-card.component.mjs +86 -0
  101. package/esm2022/lib/gio-form-selection-inline/gio-form-selection-inline-card.harness.mjs +44 -0
  102. package/esm2022/lib/gio-form-selection-inline/gio-form-selection-inline.component.mjs +103 -0
  103. package/esm2022/lib/gio-form-selection-inline/gio-form-selection-inline.harness.mjs +65 -0
  104. package/esm2022/lib/gio-form-selection-inline/gio-form-selection-inline.module.mjs +59 -0
  105. package/esm2022/lib/gio-form-selection-inline/public-api.mjs +22 -0
  106. package/esm2022/lib/gio-form-slide-toggle/gio-form-label.directive.mjs +52 -0
  107. package/esm2022/lib/gio-form-slide-toggle/gio-form-slide-toggle.component.mjs +69 -0
  108. package/esm2022/lib/gio-form-slide-toggle/gio-form-slide-toggle.module.mjs +34 -0
  109. package/esm2022/lib/gio-form-tags-input/gio-form-tags-input.component.mjs +316 -0
  110. package/esm2022/lib/gio-form-tags-input/gio-form-tags-input.harness.mjs +82 -0
  111. package/esm2022/lib/gio-form-tags-input/gio-form-tags-input.module.mjs +67 -0
  112. package/esm2022/lib/gio-icons/gio-icons.module.mjs +37 -0
  113. package/esm2022/lib/gio-license/gio-license-dialog/gio-license-dialog.component.mjs +43 -0
  114. package/esm2022/lib/gio-license/gio-license-dialog/gio-license-dialog.module.mjs +37 -0
  115. package/esm2022/lib/gio-license/gio-license.directive.mjs +92 -0
  116. package/esm2022/lib/gio-license/gio-license.module.mjs +35 -0
  117. package/esm2022/lib/gio-license/gio-license.service.mjs +101 -0
  118. package/esm2022/lib/gio-license/gio-license.testing.module.mjs +107 -0
  119. package/esm2022/lib/gio-license-expiration-notification/gio-license-expiration-notification.component.mjs +77 -0
  120. package/esm2022/lib/gio-license-expiration-notification/gio-license-expiration-notification.harness.mjs +44 -0
  121. package/esm2022/lib/gio-license-expiration-notification/gio-license-expiration-notification.module.mjs +36 -0
  122. package/esm2022/lib/gio-loader/gio-loader.component.mjs +27 -0
  123. package/esm2022/lib/gio-loader/gio-loader.module.mjs +34 -0
  124. package/esm2022/lib/gio-mat-config/gio-mat-config.module.mjs +30 -0
  125. package/esm2022/lib/gio-mat-config/index.mjs +17 -0
  126. package/esm2022/lib/gio-monaco-editor/gio-monaco-clipboard-copy.component.mjs +44 -0
  127. package/esm2022/lib/gio-monaco-editor/gio-monaco-editor-form-field.directive.mjs +150 -0
  128. package/esm2022/lib/gio-monaco-editor/gio-monaco-editor.component.mjs +314 -0
  129. package/esm2022/lib/gio-monaco-editor/gio-monaco-editor.harness.mjs +70 -0
  130. package/esm2022/lib/gio-monaco-editor/gio-monaco-editor.module.mjs +60 -0
  131. package/esm2022/lib/gio-monaco-editor/gio-monaco-editor.testing.component.mjs +42 -0
  132. package/esm2022/lib/gio-monaco-editor/models/GioMonacoEditorConfig.mjs +18 -0
  133. package/esm2022/lib/gio-monaco-editor/models/JSONSchemaAutoComplete.mjs +115 -0
  134. package/esm2022/lib/gio-monaco-editor/models/MonacoEditorTheme.mjs +2 -0
  135. package/esm2022/lib/gio-monaco-editor/services/gio-language-el.service.mjs +226 -0
  136. package/esm2022/lib/gio-monaco-editor/services/gio-language-json.service.mjs +72 -0
  137. package/esm2022/lib/gio-monaco-editor/services/gio-monaco-editor.service.mjs +72 -0
  138. package/esm2022/lib/gio-pipe/gio.pipe.module.mjs +32 -0
  139. package/esm2022/lib/gio-pipe/safe.pipe.mjs +53 -0
  140. package/esm2022/lib/gio-popover/gio-popover-trigger.directive.mjs +46 -0
  141. package/esm2022/lib/gio-popover/gio-popover.component.mjs +83 -0
  142. package/esm2022/lib/gio-popover/index.mjs +18 -0
  143. package/esm2022/lib/gio-popover/public-api.mjs +18 -0
  144. package/esm2022/lib/gio-prismjs/gio-prismjs.service.mjs +80 -0
  145. package/esm2022/lib/gio-save-bar/gio-save-bar.component.mjs +142 -0
  146. package/esm2022/lib/gio-save-bar/gio-save-bar.harness.mjs +54 -0
  147. package/esm2022/lib/gio-save-bar/gio-save-bar.module.mjs +35 -0
  148. package/esm2022/lib/oem-theme/gio-menu/gio-menu-footer/gio-menu-footer.component.mjs +26 -0
  149. package/esm2022/lib/oem-theme/gio-menu/gio-menu-header/gio-menu-header.component.mjs +26 -0
  150. package/esm2022/lib/oem-theme/gio-menu/gio-menu-item/gio-menu-item.component.mjs +85 -0
  151. package/esm2022/lib/oem-theme/gio-menu/gio-menu-license-expiration-notification/gio-menu-license-expiration-notification.component.mjs +26 -0
  152. package/esm2022/lib/oem-theme/gio-menu/gio-menu-list/gio-menu-list.component.mjs +26 -0
  153. package/esm2022/lib/oem-theme/gio-menu/gio-menu-search/gio-menu-search.component.mjs +62 -0
  154. package/esm2022/lib/oem-theme/gio-menu/gio-menu-search/gio-menu-search.harness.mjs +41 -0
  155. package/esm2022/lib/oem-theme/gio-menu/gio-menu-search/gio-menu-search.service.mjs +41 -0
  156. package/esm2022/lib/oem-theme/gio-menu/gio-menu-selector/gio-menu-selector.component.mjs +49 -0
  157. package/esm2022/lib/oem-theme/gio-menu/gio-menu-selector/gio-menu-selector.harness.mjs +41 -0
  158. package/esm2022/lib/oem-theme/gio-menu/gio-menu.component.mjs +50 -0
  159. package/esm2022/lib/oem-theme/gio-menu/gio-menu.module.mjs +78 -0
  160. package/esm2022/lib/oem-theme/gio-menu/gio-menu.service.mjs +45 -0
  161. package/esm2022/lib/oem-theme/gio-menu/index.mjs +29 -0
  162. package/esm2022/lib/oem-theme/gio-submenu/gio-submenu-group/gio-submenu-group.component.mjs +34 -0
  163. package/esm2022/lib/oem-theme/gio-submenu/gio-submenu-item/gio-submenu-item.component.mjs +46 -0
  164. package/esm2022/lib/oem-theme/gio-submenu/gio-submenu.component.mjs +112 -0
  165. package/esm2022/lib/oem-theme/gio-submenu/gio-submenu.module.mjs +37 -0
  166. package/esm2022/lib/oem-theme/gio-submenu/index.mjs +20 -0
  167. package/esm2022/lib/oem-theme/gio-top-bar/gio-top-bar-content/gio-top-bar-content.component.mjs +35 -0
  168. package/esm2022/lib/oem-theme/gio-top-bar/gio-top-bar-link/gio-top-bar-link.component.mjs +35 -0
  169. package/esm2022/lib/oem-theme/gio-top-bar/gio-top-bar-link/gio-top-bar-link.module.mjs +35 -0
  170. package/esm2022/lib/oem-theme/gio-top-bar/gio-top-bar-menu/gio-top-bar-menu.component.mjs +26 -0
  171. package/esm2022/lib/oem-theme/gio-top-bar/gio-top-bar-menu/gio-top-bar-menu.module.mjs +33 -0
  172. package/esm2022/lib/oem-theme/gio-top-bar/gio-top-bar.component.mjs +34 -0
  173. package/esm2022/lib/oem-theme/gio-top-bar/gio-top-bar.module.mjs +36 -0
  174. package/esm2022/lib/oem-theme/gio-top-bar/index.mjs +23 -0
  175. package/esm2022/lib/oem-theme/oem-theme.service.mjs +83 -0
  176. package/esm2022/lib/oem-theme/public-api.mjs +20 -0
  177. package/esm2022/lib/public-api.mjs +85 -0
  178. package/esm2022/public-api.mjs +20 -0
  179. package/esm2022/testing/gravitee-ui-particles-angular-testing.mjs +5 -0
  180. package/esm2022/testing/harnesses/div.harness.mjs +42 -0
  181. package/esm2022/testing/harnesses/index.mjs +18 -0
  182. package/esm2022/testing/harnesses/span.harness.mjs +42 -0
  183. package/esm2022/testing/public-api.mjs +17 -0
  184. package/fesm2022/gravitee-ui-particles-angular-gio-asciidoctor.mjs +11 -11
  185. package/fesm2022/gravitee-ui-particles-angular-gio-asciidoctor.mjs.map +1 -1
  186. package/fesm2022/gravitee-ui-particles-angular-gio-el.mjs +80 -74
  187. package/fesm2022/gravitee-ui-particles-angular-gio-el.mjs.map +1 -1
  188. package/fesm2022/gravitee-ui-particles-angular-testing.mjs.map +1 -1
  189. package/fesm2022/gravitee-ui-particles-angular.mjs +568 -637
  190. package/fesm2022/gravitee-ui-particles-angular.mjs.map +1 -1
  191. package/gio-asciidoctor/gio-asciidoctor.component.d.ts +26 -0
  192. package/gio-asciidoctor/gio-asciidoctor.module.d.ts +8 -0
  193. package/gio-asciidoctor/gio-asciidoctor.service.d.ts +14 -0
  194. package/gio-asciidoctor/index.d.ts +5 -49
  195. package/gio-asciidoctor/public-api.d.ts +3 -0
  196. package/gio-el/gio-el-editor/gio-el-editor-condition-group/gio-el-editor-condition-group.component.d.ts +25 -0
  197. package/gio-el/gio-el-editor/gio-el-editor-condition-group/gio-el-editor-condition-group.harness.d.ts +36 -0
  198. package/gio-el/gio-el-editor/gio-el-editor.component.d.ts +25 -0
  199. package/gio-el/gio-el-editor/gio-el-editor.harness.d.ts +7 -0
  200. package/gio-el/gio-el-editor/gio-el-field/gio-el-field.component.d.ts +70 -0
  201. package/gio-el/gio-el-editor/gio-el-field/gio-el-field.harness.d.ts +14 -0
  202. package/gio-el/gio-el-editor/gio-el-type/gio-el-editor-type-boolean/gio-el-editor-type-boolean.component.d.ts +15 -0
  203. package/gio-el/gio-el-editor/gio-el-type/gio-el-editor-type-boolean/gio-el-editor-type-boolean.harness.d.ts +6 -0
  204. package/gio-el/gio-el-editor/gio-el-type/gio-el-editor-type-date/gio-el-editor-type-date.component.d.ts +17 -0
  205. package/gio-el/gio-el-editor/gio-el-type/gio-el-editor-type-date/gio-el-editor-type-date.harness.d.ts +6 -0
  206. package/gio-el/gio-el-editor/gio-el-type/gio-el-editor-type-number/gio-el-editor-type-number.component.d.ts +17 -0
  207. package/gio-el/gio-el-editor/gio-el-type/gio-el-editor-type-number/gio-el-editor-type-number.harness.d.ts +6 -0
  208. package/gio-el/gio-el-editor/gio-el-type/gio-el-editor-type-string/gio-el-editor-type-string.component.d.ts +23 -0
  209. package/gio-el/gio-el-editor/gio-el-type/gio-el-editor-type-string/gio-el-editor-type-string.harness.d.ts +6 -0
  210. package/gio-el/gio-el-editor/gio-el-type/gio-el-editor-type.harness.d.ts +10 -0
  211. package/gio-el/index.d.ts +5 -146
  212. package/gio-el/models/Condition.d.ts +19 -0
  213. package/gio-el/models/ConditionGroup.d.ts +7 -0
  214. package/gio-el/models/ConditionModel.d.ts +32 -0
  215. package/gio-el/models/ConditionsModel.d.ts +8 -0
  216. package/gio-el/models/ExpressionLanguageBuilder.d.ts +12 -0
  217. package/gio-el/models/Operator.d.ts +1 -0
  218. package/gio-el/models/public-api.d.ts +5 -0
  219. package/gio-el/public-api.d.ts +3 -0
  220. package/index.d.ts +3 -1822
  221. package/lib/gio-avatar/gio-avatar.component.d.ts +21 -0
  222. package/lib/gio-avatar/gio-avatar.module.d.ts +8 -0
  223. package/lib/gio-avatar/index.d.ts +2 -0
  224. package/lib/gio-banner/gio-banner.component.d.ts +43 -0
  225. package/lib/gio-banner/gio-banner.module.d.ts +11 -0
  226. package/lib/gio-breadcrumb/gio-breadcrumb-item.directive.d.ts +8 -0
  227. package/lib/gio-breadcrumb/gio-breadcrumb.component.d.ts +8 -0
  228. package/lib/gio-breadcrumb/gio-breadcrumb.module.d.ts +10 -0
  229. package/lib/gio-breadcrumb/index.d.ts +3 -0
  230. package/lib/gio-card-empty-state/gio-card-empty-state.component.d.ts +8 -0
  231. package/lib/gio-card-empty-state/gio-card-empty-state.module.d.ts +11 -0
  232. package/lib/gio-card-empty-state/index.d.ts +2 -0
  233. package/lib/gio-clipboard/gio-clipboard-copy-icon.component.d.ts +6 -0
  234. package/lib/gio-clipboard/gio-clipboard-copy-wrapper.component.d.ts +6 -0
  235. package/lib/gio-clipboard/gio-clipboard.base.component.d.ts +18 -0
  236. package/lib/gio-clipboard/gio-clipboard.module.d.ts +14 -0
  237. package/lib/gio-confirm-and-validate-dialog/gio-confirm-and-validate-dialog.component.d.ts +33 -0
  238. package/lib/gio-confirm-and-validate-dialog/gio-confirm-and-validate-dialog.harness.d.ts +9 -0
  239. package/lib/gio-confirm-and-validate-dialog/gio-confirm-and-validate-dialog.module.d.ts +15 -0
  240. package/lib/gio-confirm-dialog/gio-confirm-dialog.component.d.ts +29 -0
  241. package/lib/gio-confirm-dialog/gio-confirm-dialog.harness.d.ts +8 -0
  242. package/lib/gio-confirm-dialog/gio-confirm-dialog.module.d.ts +11 -0
  243. package/lib/gio-dialog/gio-dialog.constant.d.ts +5 -0
  244. package/lib/gio-el/gio-el-assistant/gio-el-assistant.component.d.ts +7 -0
  245. package/lib/gio-el/gio-el-prompt/gio-el-prompt.component.d.ts +28 -0
  246. package/lib/gio-el/gio-el.service.d.ts +19 -0
  247. package/lib/gio-el/index.d.ts +4 -0
  248. package/lib/gio-el/models/ElAiPromptState.d.ts +15 -0
  249. package/lib/gio-el/public-api.d.ts +4 -0
  250. package/lib/gio-form-cron/gio-form-cron-hint.component.d.ts +5 -0
  251. package/lib/gio-form-cron/gio-form-cron-label.component.d.ts +5 -0
  252. package/lib/gio-form-cron/gio-form-cron.adapter.d.ts +18 -0
  253. package/lib/gio-form-cron/gio-form-cron.component.d.ts +42 -0
  254. package/lib/gio-form-cron/gio-form-cron.harness.d.ts +23 -0
  255. package/lib/gio-form-cron/gio-form-cron.module.d.ts +18 -0
  256. package/lib/gio-form-file-picker/gio-form-file-picker-add-button/gio-form-file-picker-add-button.component.d.ts +5 -0
  257. package/lib/gio-form-file-picker/gio-form-file-picker-empty/gio-form-file-picker-empty.component.d.ts +5 -0
  258. package/lib/gio-form-file-picker/gio-form-file-picker-label/gio-form-file-picker-label.component.d.ts +5 -0
  259. package/lib/gio-form-file-picker/gio-form-file-picker.component.d.ts +43 -0
  260. package/lib/gio-form-file-picker/gio-form-file-picker.component.harness.d.ts +30 -0
  261. package/lib/gio-form-file-picker/gio-form-file-picker.model.d.ts +6 -0
  262. package/lib/gio-form-file-picker/gio-form-file-picker.module.d.ts +16 -0
  263. package/lib/gio-form-file-picker/index.d.ts +7 -0
  264. package/lib/gio-form-focus-first-invalid/gio-form-focus-first-invalid-ignore.directive.d.ts +6 -0
  265. package/lib/gio-form-focus-first-invalid/gio-form-focus-first-invalid.directive.d.ts +22 -0
  266. package/lib/gio-form-focus-first-invalid/gio-form-focus-first-invalid.module.d.ts +8 -0
  267. package/lib/gio-form-headers/gio-form-headers-label.component.d.ts +5 -0
  268. package/lib/gio-form-headers/gio-form-headers.component.d.ts +46 -0
  269. package/lib/gio-form-headers/gio-form-headers.harness.d.ts +39 -0
  270. package/lib/gio-form-headers/gio-form-headers.module.d.ts +20 -0
  271. package/lib/gio-form-json-schema/gio-form-json-schema.component.d.ts +43 -0
  272. package/lib/gio-form-json-schema/gio-form-json-schema.module.d.ts +35 -0
  273. package/lib/gio-form-json-schema/gio-formly-json-schema.service.d.ts +26 -0
  274. package/lib/gio-form-json-schema/model/GioJsonSchema.d.ts +47 -0
  275. package/lib/gio-form-json-schema/model/GioJsonSchemaContext.d.ts +1 -0
  276. package/lib/gio-form-json-schema/type-component/array-type.component.d.ts +10 -0
  277. package/lib/gio-form-json-schema/type-component/code-editor-type.component.d.ts +16 -0
  278. package/lib/gio-form-json-schema/type-component/cron-type.component.d.ts +9 -0
  279. package/lib/gio-form-json-schema/type-component/headers-type.component.d.ts +18 -0
  280. package/lib/gio-form-json-schema/type-component/multischema-type.component.d.ts +13 -0
  281. package/lib/gio-form-json-schema/type-component/null-type.component.d.ts +6 -0
  282. package/lib/gio-form-json-schema/type-component/object-type.component.d.ts +9 -0
  283. package/lib/gio-form-json-schema/type-component/toggle-type.component.d.ts +8 -0
  284. package/lib/gio-form-json-schema/util/validation-message.util.d.ts +15 -0
  285. package/lib/gio-form-json-schema/wrappers/gio-banner-extension.d.ts +2 -0
  286. package/lib/gio-form-json-schema/wrappers/gio-banner-wrapper.component.d.ts +6 -0
  287. package/lib/gio-form-json-schema/wrappers/gio-el-helper-wrapper.component.d.ts +11 -0
  288. package/lib/gio-form-json-schema/wrappers/gio-password-eye.component.d.ts +12 -0
  289. package/lib/gio-form-selection-inline/gio-form-selection-inline-card-content/gio-form-selection-inline-card-content.component.d.ts +15 -0
  290. package/lib/gio-form-selection-inline/gio-form-selection-inline-card.component.d.ts +17 -0
  291. package/lib/gio-form-selection-inline/gio-form-selection-inline-card.harness.d.ts +19 -0
  292. package/lib/gio-form-selection-inline/gio-form-selection-inline.component.d.ts +20 -0
  293. package/lib/gio-form-selection-inline/gio-form-selection-inline.harness.d.ts +26 -0
  294. package/lib/gio-form-selection-inline/gio-form-selection-inline.module.d.ts +14 -0
  295. package/lib/gio-form-selection-inline/public-api.d.ts +6 -0
  296. package/lib/gio-form-slide-toggle/gio-form-label.directive.d.ts +13 -0
  297. package/lib/gio-form-slide-toggle/gio-form-slide-toggle.component.d.ts +15 -0
  298. package/lib/gio-form-slide-toggle/gio-form-slide-toggle.module.d.ts +9 -0
  299. package/lib/gio-form-tags-input/gio-form-tags-input.component.d.ts +95 -0
  300. package/lib/gio-form-tags-input/gio-form-tags-input.harness.d.ts +23 -0
  301. package/lib/gio-form-tags-input/gio-form-tags-input.module.d.ts +16 -0
  302. package/lib/gio-icons/gio-icons.module.d.ts +11 -0
  303. package/lib/gio-license/gio-license-dialog/gio-license-dialog.component.d.ts +16 -0
  304. package/lib/gio-license/gio-license-dialog/gio-license-dialog.module.d.ts +12 -0
  305. package/lib/gio-license/gio-license.directive.d.ts +24 -0
  306. package/lib/gio-license/gio-license.module.d.ts +10 -0
  307. package/lib/gio-license/gio-license.service.d.ts +58 -0
  308. package/lib/gio-license/gio-license.testing.module.d.ts +24 -0
  309. package/lib/gio-license-expiration-notification/gio-license-expiration-notification.component.d.ts +17 -0
  310. package/lib/gio-license-expiration-notification/gio-license-expiration-notification.harness.d.ts +13 -0
  311. package/lib/gio-license-expiration-notification/gio-license-expiration-notification.module.d.ts +11 -0
  312. package/lib/gio-loader/gio-loader.component.d.ts +5 -0
  313. package/lib/gio-loader/gio-loader.module.d.ts +9 -0
  314. package/lib/gio-mat-config/gio-mat-config.module.d.ts +6 -0
  315. package/lib/gio-mat-config/index.d.ts +1 -0
  316. package/lib/gio-monaco-editor/gio-monaco-clipboard-copy.component.d.ts +7 -0
  317. package/lib/gio-monaco-editor/gio-monaco-editor-form-field.directive.d.ts +45 -0
  318. package/lib/gio-monaco-editor/gio-monaco-editor.component.d.ts +67 -0
  319. package/lib/gio-monaco-editor/gio-monaco-editor.harness.d.ts +19 -0
  320. package/lib/gio-monaco-editor/gio-monaco-editor.module.d.ts +20 -0
  321. package/lib/gio-monaco-editor/gio-monaco-editor.testing.component.d.ts +12 -0
  322. package/lib/gio-monaco-editor/models/GioMonacoEditorConfig.d.ts +7 -0
  323. package/lib/gio-monaco-editor/models/JSONSchemaAutoComplete.d.ts +39 -0
  324. package/lib/gio-monaco-editor/models/MonacoEditorTheme.d.ts +1 -0
  325. package/lib/gio-monaco-editor/services/gio-language-el.service.d.ts +18 -0
  326. package/lib/gio-monaco-editor/services/gio-language-json.service.d.ts +18 -0
  327. package/lib/gio-monaco-editor/services/gio-monaco-editor.service.d.ts +19 -0
  328. package/lib/gio-pipe/gio.pipe.module.d.ts +7 -0
  329. package/lib/gio-pipe/safe.pipe.d.ts +10 -0
  330. package/lib/gio-popover/gio-popover-trigger.directive.d.ts +12 -0
  331. package/lib/gio-popover/gio-popover.component.d.ts +15 -0
  332. package/lib/gio-popover/index.d.ts +2 -0
  333. package/lib/gio-popover/public-api.d.ts +2 -0
  334. package/lib/gio-prismjs/gio-prismjs.service.d.ts +14 -0
  335. package/lib/gio-save-bar/gio-save-bar.component.d.ts +30 -0
  336. package/lib/gio-save-bar/gio-save-bar.harness.d.ts +15 -0
  337. package/lib/gio-save-bar/gio-save-bar.module.d.ts +10 -0
  338. package/lib/oem-theme/gio-menu/gio-menu-footer/gio-menu-footer.component.d.ts +5 -0
  339. package/lib/oem-theme/gio-menu/gio-menu-header/gio-menu-header.component.d.ts +5 -0
  340. package/lib/oem-theme/gio-menu/gio-menu-item/gio-menu-item.component.d.ts +19 -0
  341. package/lib/oem-theme/gio-menu/gio-menu-license-expiration-notification/gio-menu-license-expiration-notification.component.d.ts +5 -0
  342. package/lib/oem-theme/gio-menu/gio-menu-list/gio-menu-list.component.d.ts +5 -0
  343. package/lib/oem-theme/gio-menu/gio-menu-search/gio-menu-search.component.d.ts +25 -0
  344. package/lib/oem-theme/gio-menu/gio-menu-search/gio-menu-search.harness.d.ts +10 -0
  345. package/lib/oem-theme/gio-menu/gio-menu-search/gio-menu-search.service.d.ts +9 -0
  346. package/lib/oem-theme/gio-menu/gio-menu-selector/gio-menu-selector.component.d.ts +17 -0
  347. package/lib/oem-theme/gio-menu/gio-menu-selector/gio-menu-selector.harness.d.ts +8 -0
  348. package/lib/oem-theme/gio-menu/gio-menu.component.d.ts +14 -0
  349. package/lib/oem-theme/gio-menu/gio-menu.module.d.ts +21 -0
  350. package/lib/oem-theme/gio-menu/gio-menu.service.d.ts +18 -0
  351. package/lib/oem-theme/gio-menu/index.d.ts +13 -0
  352. package/lib/oem-theme/gio-submenu/gio-submenu-group/gio-submenu-group.component.d.ts +8 -0
  353. package/lib/oem-theme/gio-submenu/gio-submenu-item/gio-submenu-item.component.d.ts +9 -0
  354. package/lib/oem-theme/gio-submenu/gio-submenu.component.d.ts +28 -0
  355. package/lib/oem-theme/gio-submenu/gio-submenu.module.d.ts +12 -0
  356. package/lib/oem-theme/gio-submenu/index.d.ts +4 -0
  357. package/lib/oem-theme/gio-top-bar/gio-top-bar-content/gio-top-bar-content.component.d.ts +8 -0
  358. package/lib/oem-theme/gio-top-bar/gio-top-bar-link/gio-top-bar-link.component.d.ts +7 -0
  359. package/lib/oem-theme/gio-top-bar/gio-top-bar-link/gio-top-bar-link.module.d.ts +10 -0
  360. package/lib/oem-theme/gio-top-bar/gio-top-bar-menu/gio-top-bar-menu.component.d.ts +5 -0
  361. package/lib/oem-theme/gio-top-bar/gio-top-bar-menu/gio-top-bar-menu.module.d.ts +8 -0
  362. package/lib/oem-theme/gio-top-bar/gio-top-bar.component.d.ts +8 -0
  363. package/lib/oem-theme/gio-top-bar/gio-top-bar.module.d.ts +11 -0
  364. package/lib/oem-theme/gio-top-bar/index.d.ts +7 -0
  365. package/lib/oem-theme/oem-theme.service.d.ts +22 -0
  366. package/lib/oem-theme/public-api.d.ts +4 -0
  367. package/lib/public-api.d.ts +66 -0
  368. package/package.json +15 -7
  369. package/public-api.d.ts +1 -0
  370. package/src/scss/gio-mat-theme.scss +1 -2
  371. package/testing/harnesses/div.harness.d.ts +21 -0
  372. package/testing/harnesses/index.d.ts +2 -0
  373. package/testing/harnesses/span.harness.d.ts +21 -0
  374. package/testing/index.d.ts +5 -47
  375. package/testing/public-api.d.ts +1 -0
@@ -0,0 +1,284 @@
1
+ import { Component, forwardRef, HostBinding, Input } from '@angular/core';
2
+ import { UntypedFormArray, UntypedFormControl, UntypedFormGroup, NG_VALIDATORS, NG_VALUE_ACCESSOR, Validators, } from '@angular/forms';
3
+ import { dropRight, isEmpty } from 'lodash';
4
+ import { map, startWith, tap } from 'rxjs/operators';
5
+ import { of } from 'rxjs';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "@angular/cdk/a11y";
8
+ import * as i2 from "@angular/material/input";
9
+ import * as i3 from "@angular/cdk/text-field";
10
+ import * as i4 from "@angular/forms";
11
+ import * as i5 from "@angular/material/icon";
12
+ import * as i6 from "@angular/material/button";
13
+ import * as i7 from "@angular/material/autocomplete";
14
+ import * as i8 from "../gio-el/gio-el-assistant/gio-el-assistant.component";
15
+ import * as i9 from "@angular/common";
16
+ export function isFormHeaderElConfig(value) {
17
+ const validValues = ['key', 'value', 'both', 'neither'];
18
+ return validValues.includes(value);
19
+ }
20
+ const HEADER_NAMES = [
21
+ 'Accept',
22
+ 'Accept-Charset',
23
+ 'Accept-Encoding',
24
+ 'Accept-Language',
25
+ 'Accept-Ranges',
26
+ 'Access-Control-Allow-Credentials',
27
+ 'Access-Control-Allow-Headers',
28
+ 'Access-Control-Allow-Methods',
29
+ 'Access-Control-Allow-Origin',
30
+ 'Access-Control-Expose-Headers',
31
+ 'Access-Control-Max-Age',
32
+ 'Access-Control-Request-Headers',
33
+ 'Access-Control-Request-Method',
34
+ 'Age',
35
+ 'Allow',
36
+ 'Authorization',
37
+ 'Cache-Control',
38
+ 'Connection',
39
+ 'Content-Disposition',
40
+ 'Content-Encoding',
41
+ 'Content-ID',
42
+ 'Content-Language',
43
+ 'Content-Length',
44
+ 'Content-Location',
45
+ 'Content-MD5',
46
+ 'Content-Range',
47
+ 'Content-Type',
48
+ 'Cookie',
49
+ 'Date',
50
+ 'ETag',
51
+ 'Expires',
52
+ 'Expect',
53
+ 'Forwarded',
54
+ 'From',
55
+ 'Host',
56
+ 'If-Match',
57
+ 'If-Modified-Since',
58
+ 'If-None-Match',
59
+ 'If-Unmodified-Since',
60
+ 'Keep-Alive',
61
+ 'Last-Modified',
62
+ 'Location',
63
+ 'Link',
64
+ 'Max-Forwards',
65
+ 'MIME-Version',
66
+ 'Origin',
67
+ 'Pragma',
68
+ 'Proxy-Authenticate',
69
+ 'Proxy-Authorization',
70
+ 'Proxy-Connection',
71
+ 'Range',
72
+ 'Referer',
73
+ 'Retry-After',
74
+ 'Server',
75
+ 'Set-Cookie',
76
+ 'Set-Cookie2',
77
+ 'TE',
78
+ 'Trailer',
79
+ 'Transfer-Encoding',
80
+ 'Upgrade',
81
+ 'User-Agent',
82
+ 'Vary',
83
+ 'Via',
84
+ 'Warning',
85
+ 'WWW-Authenticate',
86
+ 'X-Forwarded-For',
87
+ 'X-Forwarded-Proto',
88
+ 'X-Forwarded-Server',
89
+ 'X-Forwarded-Host',
90
+ 'X-Forwarded-Port',
91
+ 'X-Forwarded-Prefix',
92
+ ];
93
+ export class GioFormHeadersComponent {
94
+ constructor(fm, elRef) {
95
+ this.fm = fm;
96
+ this.elRef = elRef;
97
+ this.headerFieldMapper = {
98
+ keyName: 'key',
99
+ valueName: 'value',
100
+ };
101
+ this.config = {
102
+ elColumns: 'neither',
103
+ };
104
+ this.autocompleteDisabled = false;
105
+ this.headersFormArray = new UntypedFormArray([
106
+ new UntypedFormGroup({
107
+ key: new UntypedFormControl('', Validators.pattern('^\\S*$')),
108
+ value: new UntypedFormControl(''),
109
+ }),
110
+ ]);
111
+ this.disabled = false;
112
+ this.headers = [];
113
+ this._onChange = () => ({});
114
+ this._onTouched = () => ({});
115
+ this.filteredHeaderNames = [];
116
+ this.mainForm = new UntypedFormGroup({
117
+ headers: this.headersFormArray,
118
+ });
119
+ }
120
+ // From ControlValueAccessor interface
121
+ writeValue(value) {
122
+ if (!value) {
123
+ return;
124
+ }
125
+ this.headers = [...(value ?? [])].map((header) => {
126
+ return {
127
+ key: header[this.headerFieldMapper.keyName],
128
+ value: header[this.headerFieldMapper.valueName],
129
+ };
130
+ });
131
+ this.initHeadersForm();
132
+ }
133
+ // From ControlValueAccessor interface
134
+ registerOnChange(fn) {
135
+ if (this.headerFieldMapper) {
136
+ this._onChange = (headers) => fn(this.toHeaders(headers));
137
+ return;
138
+ }
139
+ this._onChange = fn;
140
+ }
141
+ toHeaders(headers) {
142
+ return [...(headers ?? [])].map(header => {
143
+ return {
144
+ [this.headerFieldMapper.keyName]: header.key,
145
+ [this.headerFieldMapper.valueName]: header.value,
146
+ };
147
+ });
148
+ }
149
+ // From ControlValueAccessor interface
150
+ registerOnTouched(fn) {
151
+ this._onTouched = fn;
152
+ }
153
+ // From ControlValueAccessor interface
154
+ setDisabledState(isDisabled) {
155
+ if (isDisabled === this.disabled) {
156
+ // do nothing if the disabled state is not changed
157
+ return;
158
+ }
159
+ this.disabled = isDisabled;
160
+ if (isDisabled) {
161
+ this.headersFormArray.disable({ emitEvent: false });
162
+ this.removeLastHeader();
163
+ return;
164
+ }
165
+ this.headersFormArray.enable({ emitEvent: false });
166
+ this.addEmptyHeader();
167
+ }
168
+ ngOnInit() {
169
+ // When user start to complete last header add new empty one a the end
170
+ this.headersFormArray?.valueChanges
171
+ .pipe(tap(headers => headers.length > 0 && this._onChange(removeLastEmptyHeader(headers))), tap((headers) => {
172
+ if (headers.length > 0 && (headers[headers.length - 1].key !== '' || headers[headers.length - 1].value !== '')) {
173
+ this.addEmptyHeader();
174
+ }
175
+ }))
176
+ .subscribe();
177
+ this.fm.monitor(this.elRef.nativeElement, true).subscribe(() => {
178
+ this._onTouched();
179
+ });
180
+ }
181
+ initHeadersForm() {
182
+ // Clear all previous headers
183
+ this.headersFormArray.clear();
184
+ // Populate headers array from headers
185
+ this.headers.forEach(({ key, value }, headerIndex) => {
186
+ this.headersFormArray.push(new UntypedFormGroup({
187
+ key: this.initKeyFormControl(key, headerIndex),
188
+ value: new UntypedFormControl({ value, disabled: this.disabled }),
189
+ }), {
190
+ emitEvent: false,
191
+ });
192
+ });
193
+ // add one empty header a the end
194
+ this.addEmptyHeader();
195
+ }
196
+ getFilteredHeaderNames(headerIndex, header) {
197
+ if (!this.filteredHeaderNames[headerIndex]) {
198
+ return this.filteredHeaderNames[headerIndex];
199
+ }
200
+ if (header.key != null && header.key != '') {
201
+ this.filteredHeaderNames[headerIndex] = of(header.key).pipe(map(value => this._filter(value)));
202
+ return this.filteredHeaderNames[headerIndex];
203
+ }
204
+ return of(HEADER_NAMES);
205
+ }
206
+ // From Validator interface
207
+ validate(_control) {
208
+ if (this.headersFormArray.invalid) {
209
+ return { invalid: true };
210
+ }
211
+ return null;
212
+ }
213
+ initKeyFormControl(key, headerIndex) {
214
+ const control = new UntypedFormControl({ value: key, disabled: this.disabled }, Validators.pattern('^\\S*$'));
215
+ const filteredKeys = control.valueChanges.pipe(startWith(''), map(value => this._filter(value)));
216
+ this.filteredHeaderNames.splice(headerIndex, 0, filteredKeys);
217
+ return control;
218
+ }
219
+ onDeleteHeader(headerIndex) {
220
+ this._onTouched();
221
+ this.headersFormArray.removeAt(headerIndex);
222
+ }
223
+ addEmptyHeader() {
224
+ if (this.disabled) {
225
+ return;
226
+ }
227
+ this.headersFormArray.push(new UntypedFormGroup({
228
+ key: this.initKeyFormControl('', this.headersFormArray.length),
229
+ value: new UntypedFormControl(''),
230
+ }), { emitEvent: false });
231
+ }
232
+ removeLastHeader() {
233
+ this.headersFormArray.removeAt(this.headersFormArray.length - 1, { emitEvent: false });
234
+ }
235
+ _filter(value) {
236
+ const filterValue = value.toLowerCase();
237
+ return HEADER_NAMES.filter(option => option.toLowerCase().includes(filterValue));
238
+ }
239
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.4", ngImport: i0, type: GioFormHeadersComponent, deps: [{ token: i1.FocusMonitor }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
240
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.4", type: GioFormHeadersComponent, isStandalone: false, selector: "gio-form-headers", inputs: { headerFieldMapper: "headerFieldMapper", config: "config", autocompleteDisabled: "autocompleteDisabled" }, host: { properties: { "class.disabled": "this.disabled" } }, providers: [
241
+ {
242
+ provide: NG_VALUE_ACCESSOR,
243
+ useExisting: forwardRef(() => GioFormHeadersComponent),
244
+ multi: true,
245
+ },
246
+ {
247
+ provide: NG_VALIDATORS,
248
+ useExisting: forwardRef(() => GioFormHeadersComponent),
249
+ multi: true,
250
+ },
251
+ ], ngImport: i0, template: "<!--\n\n Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n-->\n<div class=\"label\"><ng-content select=\"gio-form-headers-label\"></ng-content></div>\n<table class=\"gio-form-headers__table gio-table-light\" [class.disabled]=\"disabled\" [formGroup]=\"mainForm\">\n <thead>\n <tr>\n <th>KEY</th>\n <th>VALUE</th>\n </tr>\n </thead>\n <tbody formArrayName=\"headers\">\n @for (control of headersFormArray.controls; track control; let headerIndex = $index) {\n <tr class=\"gio-form-headers__table__header-row\" [formGroupName]=\"headerIndex\">\n <td class=\"gio-form-headers__table__header-row__td-key\">\n <div class=\"gio-form-headers__table__header-row__td-key__field\">\n <textarea\n formControlName=\"key\"\n matInput\n placeholder=\"Name...\"\n cdkTextareaAutosize\n cdkAutosizeMinRows=\"1\"\n [matAutocomplete]=\"headerNamesAutocomplete\"\n [matAutocompleteDisabled]=\"autocompleteDisabled\"\n ></textarea>\n @if (config?.elColumns === 'key' || config?.elColumns === 'both') {\n <gio-el-assistant />\n }\n </div>\n @if (control.get('key')?.hasError('pattern')) {\n <mat-error>\n Header name must not contain spaces. (RegExp: {{ control.get('key')?.getError('pattern')?.requiredPattern }})\n </mat-error>\n }\n <mat-autocomplete #headerNamesAutocomplete=\"matAutocomplete\">\n @for (headerName of getFilteredHeaderNames(headerIndex, control.value) | async; track headerName) {\n <mat-option [value]=\"headerName\">{{ headerName }}</mat-option>\n }\n </mat-autocomplete>\n </td>\n <td class=\"gio-form-headers__table__header-row__td-value\">\n <div class=\"gio-form-headers__table__header-row__td-value__field\">\n <textarea formControlName=\"value\" matInput placeholder=\"Value...\" cdkTextareaAutosize cdkAutosizeMinRows=\"1\"></textarea>\n @if (config?.elColumns === 'value' || config?.elColumns === 'both') {\n <gio-el-assistant />\n }\n @if (headersFormArray.controls.length - 1 !== headerIndex) {\n <button\n class=\"gio-form-headers__table__header-row__td-value__button\"\n mat-button\n aria-label=\"Delete\"\n (click)=\"onDeleteHeader(headerIndex)\"\n >\n <mat-icon svgIcon=\"gio:cancel\" />\n </button>\n }\n </div>\n </td>\n </tr>\n }\n </tbody>\n</table>\n", styles: ["@charset \"UTF-8\";.gio-top-bar-menu .gio-badge-accent{background-color:var(--gio-oem-palette--active, #ffc2ac);color:var(--gio-oem-palette--active-contrast, #1e1b1b)}:host{display:block;overflow:hidden}.label{font-size:12px;font-weight:400;line-height:16px;font-family:Manrope,sans-serif;letter-spacing:normal;padding-left:10px;color:#8a8383}.label:empty{display:none}.gio-form-headers__table__header-row__td-value__button{display:block}.gio-form-headers__table{width:100%}.gio-form-headers__table__header-row__td-key,.gio-form-headers__table__header-row__td-value{position:relative;width:50%}.gio-form-headers__table__header-row__td-key__field,.gio-form-headers__table__header-row__td-value__field{display:flex;overflow:hidden;width:100%;min-height:32px;flex-direction:row;align-items:baseline;justify-content:center;padding-bottom:0}.gio-form-headers__table__header-row__td-key__field textarea,.gio-form-headers__table__header-row__td-value__field textarea{overflow:auto;width:100%;height:16px;padding:0;border:none;background:transparent;box-shadow:none;outline:none;resize:none;font-size:14px;font-weight:500;line-height:22px;font-family:Manrope,sans-serif;letter-spacing:.4px}.gio-form-headers__table__header-row__td-key__field:focus-within,.gio-form-headers__table__header-row__td-value__field:focus-within{z-index:100;height:auto;background-color:#fff}.gio-form-headers__table__header-row__td-key__field:focus-within *,.gio-form-headers__table__header-row__td-value__field:focus-within *{max-height:none}.gio-form-headers__table__header-row__td-remove{width:32px;height:32px;padding:0}.gio-form-headers__table__header-row:hover .gio-form-headers__table__header-row__td-value__button{z-index:110;background-color:#fff;opacity:.9}:host(.disabled) .label{color:#d2cecd}\n"], dependencies: [{ kind: "directive", type: i2.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "directive", type: i2.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i3.CdkTextareaAutosize, selector: "textarea[cdkTextareaAutosize]", inputs: ["cdkAutosizeMinRows", "cdkAutosizeMaxRows", "cdkTextareaAutosize", "placeholder"], exportAs: ["cdkTextareaAutosize"] }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i4.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "directive", type: i4.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i6.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i7.MatAutocomplete, selector: "mat-autocomplete", inputs: ["aria-label", "aria-labelledby", "displayWith", "autoActiveFirstOption", "autoSelectActiveOption", "requireSelection", "panelWidth", "disableRipple", "class", "hideSingleSelectionIndicator"], outputs: ["optionSelected", "opened", "closed", "optionActivated"], exportAs: ["matAutocomplete"] }, { kind: "component", type: i7.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i7.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { kind: "component", type: i8.GioElAssistantComponent, selector: "gio-el-assistant" }, { kind: "pipe", type: i9.AsyncPipe, name: "async" }] }); }
252
+ }
253
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.4", ngImport: i0, type: GioFormHeadersComponent, decorators: [{
254
+ type: Component,
255
+ args: [{ selector: 'gio-form-headers', providers: [
256
+ {
257
+ provide: NG_VALUE_ACCESSOR,
258
+ useExisting: forwardRef(() => GioFormHeadersComponent),
259
+ multi: true,
260
+ },
261
+ {
262
+ provide: NG_VALIDATORS,
263
+ useExisting: forwardRef(() => GioFormHeadersComponent),
264
+ multi: true,
265
+ },
266
+ ], standalone: false, template: "<!--\n\n Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n-->\n<div class=\"label\"><ng-content select=\"gio-form-headers-label\"></ng-content></div>\n<table class=\"gio-form-headers__table gio-table-light\" [class.disabled]=\"disabled\" [formGroup]=\"mainForm\">\n <thead>\n <tr>\n <th>KEY</th>\n <th>VALUE</th>\n </tr>\n </thead>\n <tbody formArrayName=\"headers\">\n @for (control of headersFormArray.controls; track control; let headerIndex = $index) {\n <tr class=\"gio-form-headers__table__header-row\" [formGroupName]=\"headerIndex\">\n <td class=\"gio-form-headers__table__header-row__td-key\">\n <div class=\"gio-form-headers__table__header-row__td-key__field\">\n <textarea\n formControlName=\"key\"\n matInput\n placeholder=\"Name...\"\n cdkTextareaAutosize\n cdkAutosizeMinRows=\"1\"\n [matAutocomplete]=\"headerNamesAutocomplete\"\n [matAutocompleteDisabled]=\"autocompleteDisabled\"\n ></textarea>\n @if (config?.elColumns === 'key' || config?.elColumns === 'both') {\n <gio-el-assistant />\n }\n </div>\n @if (control.get('key')?.hasError('pattern')) {\n <mat-error>\n Header name must not contain spaces. (RegExp: {{ control.get('key')?.getError('pattern')?.requiredPattern }})\n </mat-error>\n }\n <mat-autocomplete #headerNamesAutocomplete=\"matAutocomplete\">\n @for (headerName of getFilteredHeaderNames(headerIndex, control.value) | async; track headerName) {\n <mat-option [value]=\"headerName\">{{ headerName }}</mat-option>\n }\n </mat-autocomplete>\n </td>\n <td class=\"gio-form-headers__table__header-row__td-value\">\n <div class=\"gio-form-headers__table__header-row__td-value__field\">\n <textarea formControlName=\"value\" matInput placeholder=\"Value...\" cdkTextareaAutosize cdkAutosizeMinRows=\"1\"></textarea>\n @if (config?.elColumns === 'value' || config?.elColumns === 'both') {\n <gio-el-assistant />\n }\n @if (headersFormArray.controls.length - 1 !== headerIndex) {\n <button\n class=\"gio-form-headers__table__header-row__td-value__button\"\n mat-button\n aria-label=\"Delete\"\n (click)=\"onDeleteHeader(headerIndex)\"\n >\n <mat-icon svgIcon=\"gio:cancel\" />\n </button>\n }\n </div>\n </td>\n </tr>\n }\n </tbody>\n</table>\n", styles: ["@charset \"UTF-8\";.gio-top-bar-menu .gio-badge-accent{background-color:var(--gio-oem-palette--active, #ffc2ac);color:var(--gio-oem-palette--active-contrast, #1e1b1b)}:host{display:block;overflow:hidden}.label{font-size:12px;font-weight:400;line-height:16px;font-family:Manrope,sans-serif;letter-spacing:normal;padding-left:10px;color:#8a8383}.label:empty{display:none}.gio-form-headers__table__header-row__td-value__button{display:block}.gio-form-headers__table{width:100%}.gio-form-headers__table__header-row__td-key,.gio-form-headers__table__header-row__td-value{position:relative;width:50%}.gio-form-headers__table__header-row__td-key__field,.gio-form-headers__table__header-row__td-value__field{display:flex;overflow:hidden;width:100%;min-height:32px;flex-direction:row;align-items:baseline;justify-content:center;padding-bottom:0}.gio-form-headers__table__header-row__td-key__field textarea,.gio-form-headers__table__header-row__td-value__field textarea{overflow:auto;width:100%;height:16px;padding:0;border:none;background:transparent;box-shadow:none;outline:none;resize:none;font-size:14px;font-weight:500;line-height:22px;font-family:Manrope,sans-serif;letter-spacing:.4px}.gio-form-headers__table__header-row__td-key__field:focus-within,.gio-form-headers__table__header-row__td-value__field:focus-within{z-index:100;height:auto;background-color:#fff}.gio-form-headers__table__header-row__td-key__field:focus-within *,.gio-form-headers__table__header-row__td-value__field:focus-within *{max-height:none}.gio-form-headers__table__header-row__td-remove{width:32px;height:32px;padding:0}.gio-form-headers__table__header-row:hover .gio-form-headers__table__header-row__td-value__button{z-index:110;background-color:#fff;opacity:.9}:host(.disabled) .label{color:#d2cecd}\n"] }]
267
+ }], ctorParameters: () => [{ type: i1.FocusMonitor }, { type: i0.ElementRef }], propDecorators: { headerFieldMapper: [{
268
+ type: Input
269
+ }], config: [{
270
+ type: Input
271
+ }], autocompleteDisabled: [{
272
+ type: Input
273
+ }], disabled: [{
274
+ type: HostBinding,
275
+ args: ['class.disabled']
276
+ }] } });
277
+ const removeLastEmptyHeader = (headers) => {
278
+ const lastHeader = headers[headers.length - 1];
279
+ if (lastHeader && isEmpty(lastHeader.key) && isEmpty(lastHeader.value)) {
280
+ return dropRight(headers);
281
+ }
282
+ return headers;
283
+ };
284
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2lvLWZvcm0taGVhZGVycy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1wYXJ0aWNsZXMtYW5ndWxhci9zcmMvbGliL2dpby1mb3JtLWhlYWRlcnMvZ2lvLWZvcm0taGVhZGVycy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1wYXJ0aWNsZXMtYW5ndWxhci9zcmMvbGliL2dpby1mb3JtLWhlYWRlcnMvZ2lvLWZvcm0taGVhZGVycy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFpQkEsT0FBTyxFQUFFLFNBQVMsRUFBYyxVQUFVLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUM5RixPQUFPLEVBR0wsZ0JBQWdCLEVBQ2hCLGtCQUFrQixFQUNsQixnQkFBZ0IsRUFDaEIsYUFBYSxFQUNiLGlCQUFpQixFQUdqQixVQUFVLEdBQ1gsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUM1QyxPQUFPLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRCxPQUFPLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7Ozs7OztBQVd0QyxNQUFNLFVBQVUsb0JBQW9CLENBQUMsS0FBYztJQUNqRCxNQUFNLFdBQVcsR0FBRyxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQ3hELE9BQU8sV0FBVyxDQUFDLFFBQVEsQ0FBQyxLQUFlLENBQUMsQ0FBQztBQUMvQyxDQUFDO0FBRUQsTUFBTSxZQUFZLEdBQUc7SUFDbkIsUUFBUTtJQUNSLGdCQUFnQjtJQUNoQixpQkFBaUI7SUFDakIsaUJBQWlCO0lBQ2pCLGVBQWU7SUFDZixrQ0FBa0M7SUFDbEMsOEJBQThCO0lBQzlCLDhCQUE4QjtJQUM5Qiw2QkFBNkI7SUFDN0IsK0JBQStCO0lBQy9CLHdCQUF3QjtJQUN4QixnQ0FBZ0M7SUFDaEMsK0JBQStCO0lBQy9CLEtBQUs7SUFDTCxPQUFPO0lBQ1AsZUFBZTtJQUNmLGVBQWU7SUFDZixZQUFZO0lBQ1oscUJBQXFCO0lBQ3JCLGtCQUFrQjtJQUNsQixZQUFZO0lBQ1osa0JBQWtCO0lBQ2xCLGdCQUFnQjtJQUNoQixrQkFBa0I7SUFDbEIsYUFBYTtJQUNiLGVBQWU7SUFDZixjQUFjO0lBQ2QsUUFBUTtJQUNSLE1BQU07SUFDTixNQUFNO0lBQ04sU0FBUztJQUNULFFBQVE7SUFDUixXQUFXO0lBQ1gsTUFBTTtJQUNOLE1BQU07SUFDTixVQUFVO0lBQ1YsbUJBQW1CO0lBQ25CLGVBQWU7SUFDZixxQkFBcUI7SUFDckIsWUFBWTtJQUNaLGVBQWU7SUFDZixVQUFVO0lBQ1YsTUFBTTtJQUNOLGNBQWM7SUFDZCxjQUFjO0lBQ2QsUUFBUTtJQUNSLFFBQVE7SUFDUixvQkFBb0I7SUFDcEIscUJBQXFCO0lBQ3JCLGtCQUFrQjtJQUNsQixPQUFPO0lBQ1AsU0FBUztJQUNULGFBQWE7SUFDYixRQUFRO0lBQ1IsWUFBWTtJQUNaLGFBQWE7SUFDYixJQUFJO0lBQ0osU0FBUztJQUNULG1CQUFtQjtJQUNuQixTQUFTO0lBQ1QsWUFBWTtJQUNaLE1BQU07SUFDTixLQUFLO0lBQ0wsU0FBUztJQUNULGtCQUFrQjtJQUNsQixpQkFBaUI7SUFDakIsbUJBQW1CO0lBQ25CLG9CQUFvQjtJQUNwQixrQkFBa0I7SUFDbEIsa0JBQWtCO0lBQ2xCLG9CQUFvQjtDQUNyQixDQUFDO0FBb0JGLE1BQU0sT0FBTyx1QkFBdUI7SUFpQ2xDLFlBQ21CLEVBQWdCLEVBQ2hCLEtBQWlCO1FBRGpCLE9BQUUsR0FBRixFQUFFLENBQWM7UUFDaEIsVUFBSyxHQUFMLEtBQUssQ0FBWTtRQWpDN0Isc0JBQWlCLEdBQTBCO1lBQ2hELE9BQU8sRUFBRSxLQUFLO1lBQ2QsU0FBUyxFQUFFLE9BQU87U0FDbkIsQ0FBQztRQUVLLFdBQU0sR0FBbUM7WUFDOUMsU0FBUyxFQUFFLFNBQVM7U0FDckIsQ0FBQztRQUdLLHlCQUFvQixHQUFhLEtBQUssQ0FBQztRQUd2QyxxQkFBZ0IsR0FBRyxJQUFJLGdCQUFnQixDQUFDO1lBQzdDLElBQUksZ0JBQWdCLENBQUM7Z0JBQ25CLEdBQUcsRUFBRSxJQUFJLGtCQUFrQixDQUFDLEVBQUUsRUFBRSxVQUFVLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUM3RCxLQUFLLEVBQUUsSUFBSSxrQkFBa0IsQ0FBQyxFQUFFLENBQUM7YUFDbEMsQ0FBQztTQUNILENBQUMsQ0FBQztRQUdJLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFFaEIsWUFBTyxHQUFhLEVBQUUsQ0FBQztRQUV2QixjQUFTLEdBQXdDLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7UUFFNUQsZUFBVSxHQUFlLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7UUFFcEMsd0JBQW1CLEdBQTJCLEVBQUUsQ0FBQztRQU12RCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksZ0JBQWdCLENBQUM7WUFDbkMsT0FBTyxFQUFFLElBQUksQ0FBQyxnQkFBZ0I7U0FDL0IsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELHNDQUFzQztJQUMvQixVQUFVLENBQUMsS0FBc0M7UUFDdEQsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ1gsT0FBTztRQUNULENBQUM7UUFFRCxJQUFJLENBQUMsT0FBTyxHQUFHLENBQUMsR0FBRyxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQThCLEVBQUUsRUFBRTtZQUN2RSxPQUFPO2dCQUNMLEdBQUcsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQztnQkFDM0MsS0FBSyxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsU0FBUyxDQUFDO2FBQ2hELENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRUQsc0NBQXNDO0lBQy9CLGdCQUFnQixDQUFDLEVBQThCO1FBQ3BELElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDM0IsSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDLE9BQXdCLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7WUFDM0UsT0FBTztRQUNULENBQUM7UUFDRCxJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRU8sU0FBUyxDQUFDLE9BQXdCO1FBQ3hDLE9BQU8sQ0FBQyxHQUFHLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ3ZDLE9BQU87Z0JBQ0wsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLEVBQUUsTUFBTSxDQUFDLEdBQUc7Z0JBQzVDLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxLQUFLO2FBQ2pELENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxzQ0FBc0M7SUFDL0IsaUJBQWlCLENBQUMsRUFBYztRQUNyQyxJQUFJLENBQUMsVUFBVSxHQUFHLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRUQsc0NBQXNDO0lBQy9CLGdCQUFnQixDQUFDLFVBQW1CO1FBQ3pDLElBQUksVUFBVSxLQUFLLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNqQyxrREFBa0Q7WUFDbEQsT0FBTztRQUNULENBQUM7UUFFRCxJQUFJLENBQUMsUUFBUSxHQUFHLFVBQVUsQ0FBQztRQUMzQixJQUFJLFVBQVUsRUFBRSxDQUFDO1lBQ2YsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1lBQ3BELElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBQ3hCLE9BQU87UUFDVCxDQUFDO1FBQ0QsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQ25ELElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRU0sUUFBUTtRQUNiLHNFQUFzRTtRQUN0RSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsWUFBWTthQUNoQyxJQUFJLENBQ0gsR0FBRyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxxQkFBcUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQ3BGLEdBQUcsQ0FBQyxDQUFDLE9BQWlCLEVBQUUsRUFBRTtZQUN4QixJQUFJLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLEVBQUUsSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLEtBQUssRUFBRSxDQUFDLEVBQUUsQ0FBQztnQkFDL0csSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3hCLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FDSDthQUNBLFNBQVMsRUFBRSxDQUFDO1FBRWYsSUFBSSxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUM3RCxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDcEIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU0sZUFBZTtRQUNwQiw2QkFBNkI7UUFDN0IsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssRUFBRSxDQUFDO1FBRTlCLHNDQUFzQztRQUN0QyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFLFdBQVcsRUFBRSxFQUFFO1lBQ25ELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQ3hCLElBQUksZ0JBQWdCLENBQUM7Z0JBQ25CLEdBQUcsRUFBRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsR0FBRyxFQUFFLFdBQVcsQ0FBQztnQkFDOUMsS0FBSyxFQUFFLElBQUksa0JBQWtCLENBQUMsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQzthQUNsRSxDQUFDLEVBQ0Y7Z0JBQ0UsU0FBUyxFQUFFLEtBQUs7YUFDakIsQ0FDRixDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7UUFFSCxpQ0FBaUM7UUFDakMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFTSxzQkFBc0IsQ0FBQyxXQUFtQixFQUFFLE1BQWM7UUFDL0QsSUFBSSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDO1lBQzNDLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQy9DLENBQUM7UUFDRCxJQUFJLE1BQU0sQ0FBQyxHQUFHLElBQUksSUFBSSxJQUFJLE1BQU0sQ0FBQyxHQUFHLElBQUksRUFBRSxFQUFFLENBQUM7WUFDM0MsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFdBQVcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQy9GLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQy9DLENBQUM7UUFDRCxPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUMxQixDQUFDO0lBRUQsMkJBQTJCO0lBQ3BCLFFBQVEsQ0FBQyxRQUF5QjtRQUN2QyxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNsQyxPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDO1FBQzNCLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFTyxrQkFBa0IsQ0FBQyxHQUFXLEVBQUUsV0FBbUI7UUFDekQsTUFBTSxPQUFPLEdBQUcsSUFBSSxrQkFBa0IsQ0FBQyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRSxVQUFVLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFDOUcsTUFBTSxZQUFZLEdBQUcsT0FBTyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQzVDLFNBQVMsQ0FBQyxFQUFFLENBQUMsRUFDYixHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQ2xDLENBQUM7UUFDRixJQUFJLENBQUMsbUJBQW1CLENBQUMsTUFBTSxDQUFDLFdBQVcsRUFBRSxDQUFDLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFDOUQsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVNLGNBQWMsQ0FBQyxXQUFtQjtRQUN2QyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDbEIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRU8sY0FBYztRQUNwQixJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNsQixPQUFPO1FBQ1QsQ0FBQztRQUVELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQ3hCLElBQUksZ0JBQWdCLENBQUM7WUFDbkIsR0FBRyxFQUFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQztZQUM5RCxLQUFLLEVBQUUsSUFBSSxrQkFBa0IsQ0FBQyxFQUFFLENBQUM7U0FDbEMsQ0FBQyxFQUNGLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxDQUNyQixDQUFDO0lBQ0osQ0FBQztJQUVPLGdCQUFnQjtRQUN0QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDekYsQ0FBQztJQUVPLE9BQU8sQ0FBQyxLQUFhO1FBQzNCLE1BQU0sV0FBVyxHQUFHLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUN4QyxPQUFPLFlBQVksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7SUFDbkYsQ0FBQzs4R0EvTFUsdUJBQXVCO2tHQUF2Qix1QkFBdUIsaVBBZHZCO1lBQ1Q7Z0JBQ0UsT0FBTyxFQUFFLGlCQUFpQjtnQkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyx1QkFBdUIsQ0FBQztnQkFDdEQsS0FBSyxFQUFFLElBQUk7YUFDWjtZQUNEO2dCQUNFLE9BQU8sRUFBRSxhQUFhO2dCQUN0QixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLHVCQUF1QixDQUFDO2dCQUN0RCxLQUFLLEVBQUUsSUFBSTthQUNaO1NBQ0YsMEJDeklILHl1R0E0RUE7OzJGRGdFYSx1QkFBdUI7a0JBbEJuQyxTQUFTOytCQUNFLGtCQUFrQixhQUdqQjt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSx3QkFBd0IsQ0FBQzs0QkFDdEQsS0FBSyxFQUFFLElBQUk7eUJBQ1o7d0JBQ0Q7NEJBQ0UsT0FBTyxFQUFFLGFBQWE7NEJBQ3RCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLHdCQUF3QixDQUFDOzRCQUN0RCxLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRixjQUNXLEtBQUs7MEdBSVYsaUJBQWlCO3NCQUR2QixLQUFLO2dCQU1DLE1BQU07c0JBRFosS0FBSztnQkFNQyxvQkFBb0I7c0JBRDFCLEtBQUs7Z0JBWUMsUUFBUTtzQkFEZCxXQUFXO3VCQUFDLGdCQUFnQjs7QUE0Sy9CLE1BQU0scUJBQXFCLEdBQUcsQ0FBQyxPQUFpQixFQUFFLEVBQUU7SUFDbEQsTUFBTSxVQUFVLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFFL0MsSUFBSSxVQUFVLElBQUksT0FBTyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsSUFBSSxPQUFPLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDdkUsT0FBTyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUNELE9BQU8sT0FBTyxDQUFDO0FBQ2pCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKEMpIDIwMTUgVGhlIEdyYXZpdGVlIHRlYW0gKGh0dHA6Ly9ncmF2aXRlZS5pbylcbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7IEZvY3VzTW9uaXRvciB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcbmltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgZm9yd2FyZFJlZiwgSG9zdEJpbmRpbmcsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEFic3RyYWN0Q29udHJvbCxcbiAgQ29udHJvbFZhbHVlQWNjZXNzb3IsXG4gIFVudHlwZWRGb3JtQXJyYXksXG4gIFVudHlwZWRGb3JtQ29udHJvbCxcbiAgVW50eXBlZEZvcm1Hcm91cCxcbiAgTkdfVkFMSURBVE9SUyxcbiAgTkdfVkFMVUVfQUNDRVNTT1IsXG4gIFZhbGlkYXRpb25FcnJvcnMsXG4gIFZhbGlkYXRvcixcbiAgVmFsaWRhdG9ycyxcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgZHJvcFJpZ2h0LCBpc0VtcHR5IH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IG1hcCwgc3RhcnRXaXRoLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBFbENvbHVtbnMsIEdpb1VpVHlwZUNvbmZpZyB9IGZyb20gJy4uL2dpby1mb3JtLWpzb24tc2NoZW1hL21vZGVsL0dpb0pzb25TY2hlbWEnO1xuXG5leHBvcnQgdHlwZSBIZWFkZXIgPSB7IGtleTogc3RyaW5nOyB2YWx1ZTogc3RyaW5nIH07XG5cbmV4cG9ydCB0eXBlIEZvcm1IZWFkZXJGaWVsZE1hcHBlciA9IHtcbiAga2V5TmFtZTogc3RyaW5nO1xuICB2YWx1ZU5hbWU6IHN0cmluZztcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0Zvcm1IZWFkZXJFbENvbmZpZyh2YWx1ZTogdW5rbm93bik6IHZhbHVlIGlzIEVsQ29sdW1ucyB7XG4gIGNvbnN0IHZhbGlkVmFsdWVzID0gWydrZXknLCAndmFsdWUnLCAnYm90aCcsICduZWl0aGVyJ107XG4gIHJldHVybiB2YWxpZFZhbHVlcy5pbmNsdWRlcyh2YWx1ZSBhcyBzdHJpbmcpO1xufVxuXG5jb25zdCBIRUFERVJfTkFNRVMgPSBbXG4gICdBY2NlcHQnLFxuICAnQWNjZXB0LUNoYXJzZXQnLFxuICAnQWNjZXB0LUVuY29kaW5nJyxcbiAgJ0FjY2VwdC1MYW5ndWFnZScsXG4gICdBY2NlcHQtUmFuZ2VzJyxcbiAgJ0FjY2Vzcy1Db250cm9sLUFsbG93LUNyZWRlbnRpYWxzJyxcbiAgJ0FjY2Vzcy1Db250cm9sLUFsbG93LUhlYWRlcnMnLFxuICAnQWNjZXNzLUNvbnRyb2wtQWxsb3ctTWV0aG9kcycsXG4gICdBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW4nLFxuICAnQWNjZXNzLUNvbnRyb2wtRXhwb3NlLUhlYWRlcnMnLFxuICAnQWNjZXNzLUNvbnRyb2wtTWF4LUFnZScsXG4gICdBY2Nlc3MtQ29udHJvbC1SZXF1ZXN0LUhlYWRlcnMnLFxuICAnQWNjZXNzLUNvbnRyb2wtUmVxdWVzdC1NZXRob2QnLFxuICAnQWdlJyxcbiAgJ0FsbG93JyxcbiAgJ0F1dGhvcml6YXRpb24nLFxuICAnQ2FjaGUtQ29udHJvbCcsXG4gICdDb25uZWN0aW9uJyxcbiAgJ0NvbnRlbnQtRGlzcG9zaXRpb24nLFxuICAnQ29udGVudC1FbmNvZGluZycsXG4gICdDb250ZW50LUlEJyxcbiAgJ0NvbnRlbnQtTGFuZ3VhZ2UnLFxuICAnQ29udGVudC1MZW5ndGgnLFxuICAnQ29udGVudC1Mb2NhdGlvbicsXG4gICdDb250ZW50LU1ENScsXG4gICdDb250ZW50LVJhbmdlJyxcbiAgJ0NvbnRlbnQtVHlwZScsXG4gICdDb29raWUnLFxuICAnRGF0ZScsXG4gICdFVGFnJyxcbiAgJ0V4cGlyZXMnLFxuICAnRXhwZWN0JyxcbiAgJ0ZvcndhcmRlZCcsXG4gICdGcm9tJyxcbiAgJ0hvc3QnLFxuICAnSWYtTWF0Y2gnLFxuICAnSWYtTW9kaWZpZWQtU2luY2UnLFxuICAnSWYtTm9uZS1NYXRjaCcsXG4gICdJZi1Vbm1vZGlmaWVkLVNpbmNlJyxcbiAgJ0tlZXAtQWxpdmUnLFxuICAnTGFzdC1Nb2RpZmllZCcsXG4gICdMb2NhdGlvbicsXG4gICdMaW5rJyxcbiAgJ01heC1Gb3J3YXJkcycsXG4gICdNSU1FLVZlcnNpb24nLFxuICAnT3JpZ2luJyxcbiAgJ1ByYWdtYScsXG4gICdQcm94eS1BdXRoZW50aWNhdGUnLFxuICAnUHJveHktQXV0aG9yaXphdGlvbicsXG4gICdQcm94eS1Db25uZWN0aW9uJyxcbiAgJ1JhbmdlJyxcbiAgJ1JlZmVyZXInLFxuICAnUmV0cnktQWZ0ZXInLFxuICAnU2VydmVyJyxcbiAgJ1NldC1Db29raWUnLFxuICAnU2V0LUNvb2tpZTInLFxuICAnVEUnLFxuICAnVHJhaWxlcicsXG4gICdUcmFuc2Zlci1FbmNvZGluZycsXG4gICdVcGdyYWRlJyxcbiAgJ1VzZXItQWdlbnQnLFxuICAnVmFyeScsXG4gICdWaWEnLFxuICAnV2FybmluZycsXG4gICdXV1ctQXV0aGVudGljYXRlJyxcbiAgJ1gtRm9yd2FyZGVkLUZvcicsXG4gICdYLUZvcndhcmRlZC1Qcm90bycsXG4gICdYLUZvcndhcmRlZC1TZXJ2ZXInLFxuICAnWC1Gb3J3YXJkZWQtSG9zdCcsXG4gICdYLUZvcndhcmRlZC1Qb3J0JyxcbiAgJ1gtRm9yd2FyZGVkLVByZWZpeCcsXG5dO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdnaW8tZm9ybS1oZWFkZXJzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2dpby1mb3JtLWhlYWRlcnMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9naW8tZm9ybS1oZWFkZXJzLmNvbXBvbmVudC5zY3NzJ10sXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gR2lvRm9ybUhlYWRlcnNDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxJREFUT1JTLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gR2lvRm9ybUhlYWRlcnNDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgXSxcbiAgc3RhbmRhbG9uZTogZmFsc2UsXG59KVxuZXhwb3J0IGNsYXNzIEdpb0Zvcm1IZWFkZXJzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBDb250cm9sVmFsdWVBY2Nlc3NvciwgVmFsaWRhdG9yIHtcbiAgQElucHV0KClcbiAgcHVibGljIGhlYWRlckZpZWxkTWFwcGVyOiBGb3JtSGVhZGVyRmllbGRNYXBwZXIgPSB7XG4gICAga2V5TmFtZTogJ2tleScsXG4gICAgdmFsdWVOYW1lOiAndmFsdWUnLFxuICB9O1xuICBASW5wdXQoKVxuICBwdWJsaWMgY29uZmlnOiBHaW9VaVR5cGVDb25maWdbJ3VpVHlwZVByb3BzJ10gPSB7XG4gICAgZWxDb2x1bW5zOiAnbmVpdGhlcicsXG4gIH07XG5cbiAgQElucHV0KClcbiAgcHVibGljIGF1dG9jb21wbGV0ZURpc2FibGVkPzogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIHB1YmxpYyBtYWluRm9ybTogVW50eXBlZEZvcm1Hcm91cDtcbiAgcHVibGljIGhlYWRlcnNGb3JtQXJyYXkgPSBuZXcgVW50eXBlZEZvcm1BcnJheShbXG4gICAgbmV3IFVudHlwZWRGb3JtR3JvdXAoe1xuICAgICAga2V5OiBuZXcgVW50eXBlZEZvcm1Db250cm9sKCcnLCBWYWxpZGF0b3JzLnBhdHRlcm4oJ15cXFxcUyokJykpLFxuICAgICAgdmFsdWU6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woJycpLFxuICAgIH0pLFxuICBdKTtcblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmRpc2FibGVkJylcbiAgcHVibGljIGRpc2FibGVkID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSBoZWFkZXJzOiBIZWFkZXJbXSA9IFtdO1xuXG4gIHByaXZhdGUgX29uQ2hhbmdlOiAoX2hlYWRlcnM6IEhlYWRlcltdIHwgbnVsbCkgPT4gdm9pZCA9ICgpID0+ICh7fSk7XG5cbiAgcHJpdmF0ZSBfb25Ub3VjaGVkOiAoKSA9PiB2b2lkID0gKCkgPT4gKHt9KTtcblxuICBwcml2YXRlIGZpbHRlcmVkSGVhZGVyTmFtZXM6IE9ic2VydmFibGU8c3RyaW5nW10+W10gPSBbXTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGZtOiBGb2N1c01vbml0b3IsXG4gICAgcHJpdmF0ZSByZWFkb25seSBlbFJlZjogRWxlbWVudFJlZixcbiAgKSB7XG4gICAgdGhpcy5tYWluRm9ybSA9IG5ldyBVbnR5cGVkRm9ybUdyb3VwKHtcbiAgICAgIGhlYWRlcnM6IHRoaXMuaGVhZGVyc0Zvcm1BcnJheSxcbiAgICB9KTtcbiAgfVxuXG4gIC8vIEZyb20gQ29udHJvbFZhbHVlQWNjZXNzb3IgaW50ZXJmYWNlXG4gIHB1YmxpYyB3cml0ZVZhbHVlKHZhbHVlOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+W10gfCBudWxsKTogdm9pZCB7XG4gICAgaWYgKCF2YWx1ZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuaGVhZGVycyA9IFsuLi4odmFsdWUgPz8gW10pXS5tYXAoKGhlYWRlcjogUmVjb3JkPHN0cmluZywgc3RyaW5nPikgPT4ge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAga2V5OiBoZWFkZXJbdGhpcy5oZWFkZXJGaWVsZE1hcHBlci5rZXlOYW1lXSxcbiAgICAgICAgdmFsdWU6IGhlYWRlclt0aGlzLmhlYWRlckZpZWxkTWFwcGVyLnZhbHVlTmFtZV0sXG4gICAgICB9O1xuICAgIH0pO1xuICAgIHRoaXMuaW5pdEhlYWRlcnNGb3JtKCk7XG4gIH1cblxuICAvLyBGcm9tIENvbnRyb2xWYWx1ZUFjY2Vzc29yIGludGVyZmFjZVxuICBwdWJsaWMgcmVnaXN0ZXJPbkNoYW5nZShmbjogKGhlYWRlcnM6IHVua25vd24pID0+IHZvaWQpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5oZWFkZXJGaWVsZE1hcHBlcikge1xuICAgICAgdGhpcy5fb25DaGFuZ2UgPSAoaGVhZGVyczogSGVhZGVyW10gfCBudWxsKSA9PiBmbih0aGlzLnRvSGVhZGVycyhoZWFkZXJzKSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuX29uQ2hhbmdlID0gZm47XG4gIH1cblxuICBwcml2YXRlIHRvSGVhZGVycyhoZWFkZXJzOiBIZWFkZXJbXSB8IG51bGwpIHtcbiAgICByZXR1cm4gWy4uLihoZWFkZXJzID8/IFtdKV0ubWFwKGhlYWRlciA9PiB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBbdGhpcy5oZWFkZXJGaWVsZE1hcHBlci5rZXlOYW1lXTogaGVhZGVyLmtleSxcbiAgICAgICAgW3RoaXMuaGVhZGVyRmllbGRNYXBwZXIudmFsdWVOYW1lXTogaGVhZGVyLnZhbHVlLFxuICAgICAgfTtcbiAgICB9KTtcbiAgfVxuXG4gIC8vIEZyb20gQ29udHJvbFZhbHVlQWNjZXNzb3IgaW50ZXJmYWNlXG4gIHB1YmxpYyByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMuX29uVG91Y2hlZCA9IGZuO1xuICB9XG5cbiAgLy8gRnJvbSBDb250cm9sVmFsdWVBY2Nlc3NvciBpbnRlcmZhY2VcbiAgcHVibGljIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIGlmIChpc0Rpc2FibGVkID09PSB0aGlzLmRpc2FibGVkKSB7XG4gICAgICAvLyBkbyBub3RoaW5nIGlmIHRoZSBkaXNhYmxlZCBzdGF0ZSBpcyBub3QgY2hhbmdlZFxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICAgIGlmIChpc0Rpc2FibGVkKSB7XG4gICAgICB0aGlzLmhlYWRlcnNGb3JtQXJyYXkuZGlzYWJsZSh7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgICB0aGlzLnJlbW92ZUxhc3RIZWFkZXIoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5oZWFkZXJzRm9ybUFycmF5LmVuYWJsZSh7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgdGhpcy5hZGRFbXB0eUhlYWRlcigpO1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIC8vIFdoZW4gdXNlciBzdGFydCB0byBjb21wbGV0ZSBsYXN0IGhlYWRlciBhZGQgbmV3IGVtcHR5IG9uZSBhIHRoZSBlbmRcbiAgICB0aGlzLmhlYWRlcnNGb3JtQXJyYXk/LnZhbHVlQ2hhbmdlc1xuICAgICAgLnBpcGUoXG4gICAgICAgIHRhcChoZWFkZXJzID0+IGhlYWRlcnMubGVuZ3RoID4gMCAmJiB0aGlzLl9vbkNoYW5nZShyZW1vdmVMYXN0RW1wdHlIZWFkZXIoaGVhZGVycykpKSxcbiAgICAgICAgdGFwKChoZWFkZXJzOiBIZWFkZXJbXSkgPT4ge1xuICAgICAgICAgIGlmIChoZWFkZXJzLmxlbmd0aCA+IDAgJiYgKGhlYWRlcnNbaGVhZGVycy5sZW5ndGggLSAxXS5rZXkgIT09ICcnIHx8IGhlYWRlcnNbaGVhZGVycy5sZW5ndGggLSAxXS52YWx1ZSAhPT0gJycpKSB7XG4gICAgICAgICAgICB0aGlzLmFkZEVtcHR5SGVhZGVyKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcblxuICAgIHRoaXMuZm0ubW9uaXRvcih0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQsIHRydWUpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLl9vblRvdWNoZWQoKTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBpbml0SGVhZGVyc0Zvcm0oKTogdm9pZCB7XG4gICAgLy8gQ2xlYXIgYWxsIHByZXZpb3VzIGhlYWRlcnNcbiAgICB0aGlzLmhlYWRlcnNGb3JtQXJyYXkuY2xlYXIoKTtcblxuICAgIC8vIFBvcHVsYXRlIGhlYWRlcnMgYXJyYXkgZnJvbSBoZWFkZXJzXG4gICAgdGhpcy5oZWFkZXJzLmZvckVhY2goKHsga2V5LCB2YWx1ZSB9LCBoZWFkZXJJbmRleCkgPT4ge1xuICAgICAgdGhpcy5oZWFkZXJzRm9ybUFycmF5LnB1c2goXG4gICAgICAgIG5ldyBVbnR5cGVkRm9ybUdyb3VwKHtcbiAgICAgICAgICBrZXk6IHRoaXMuaW5pdEtleUZvcm1Db250cm9sKGtleSwgaGVhZGVySW5kZXgpLFxuICAgICAgICAgIHZhbHVlOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKHsgdmFsdWUsIGRpc2FibGVkOiB0aGlzLmRpc2FibGVkIH0pLFxuICAgICAgICB9KSxcbiAgICAgICAge1xuICAgICAgICAgIGVtaXRFdmVudDogZmFsc2UsXG4gICAgICAgIH0sXG4gICAgICApO1xuICAgIH0pO1xuXG4gICAgLy8gYWRkIG9uZSBlbXB0eSBoZWFkZXIgYSB0aGUgZW5kXG4gICAgdGhpcy5hZGRFbXB0eUhlYWRlcigpO1xuICB9XG5cbiAgcHVibGljIGdldEZpbHRlcmVkSGVhZGVyTmFtZXMoaGVhZGVySW5kZXg6IG51bWJlciwgaGVhZGVyOiBIZWFkZXIpOiBPYnNlcnZhYmxlPHN0cmluZ1tdPiB7XG4gICAgaWYgKCF0aGlzLmZpbHRlcmVkSGVhZGVyTmFtZXNbaGVhZGVySW5kZXhdKSB7XG4gICAgICByZXR1cm4gdGhpcy5maWx0ZXJlZEhlYWRlck5hbWVzW2hlYWRlckluZGV4XTtcbiAgICB9XG4gICAgaWYgKGhlYWRlci5rZXkgIT0gbnVsbCAmJiBoZWFkZXIua2V5ICE9ICcnKSB7XG4gICAgICB0aGlzLmZpbHRlcmVkSGVhZGVyTmFtZXNbaGVhZGVySW5kZXhdID0gb2YoaGVhZGVyLmtleSkucGlwZShtYXAodmFsdWUgPT4gdGhpcy5fZmlsdGVyKHZhbHVlKSkpO1xuICAgICAgcmV0dXJuIHRoaXMuZmlsdGVyZWRIZWFkZXJOYW1lc1toZWFkZXJJbmRleF07XG4gICAgfVxuICAgIHJldHVybiBvZihIRUFERVJfTkFNRVMpO1xuICB9XG5cbiAgLy8gRnJvbSBWYWxpZGF0b3IgaW50ZXJmYWNlXG4gIHB1YmxpYyB2YWxpZGF0ZShfY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xuICAgIGlmICh0aGlzLmhlYWRlcnNGb3JtQXJyYXkuaW52YWxpZCkge1xuICAgICAgcmV0dXJuIHsgaW52YWxpZDogdHJ1ZSB9O1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdEtleUZvcm1Db250cm9sKGtleTogc3RyaW5nLCBoZWFkZXJJbmRleDogbnVtYmVyKSB7XG4gICAgY29uc3QgY29udHJvbCA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woeyB2YWx1ZToga2V5LCBkaXNhYmxlZDogdGhpcy5kaXNhYmxlZCB9LCBWYWxpZGF0b3JzLnBhdHRlcm4oJ15cXFxcUyokJykpO1xuICAgIGNvbnN0IGZpbHRlcmVkS2V5cyA9IGNvbnRyb2wudmFsdWVDaGFuZ2VzLnBpcGUoXG4gICAgICBzdGFydFdpdGgoJycpLFxuICAgICAgbWFwKHZhbHVlID0+IHRoaXMuX2ZpbHRlcih2YWx1ZSkpLFxuICAgICk7XG4gICAgdGhpcy5maWx0ZXJlZEhlYWRlck5hbWVzLnNwbGljZShoZWFkZXJJbmRleCwgMCwgZmlsdGVyZWRLZXlzKTtcbiAgICByZXR1cm4gY29udHJvbDtcbiAgfVxuXG4gIHB1YmxpYyBvbkRlbGV0ZUhlYWRlcihoZWFkZXJJbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy5fb25Ub3VjaGVkKCk7XG4gICAgdGhpcy5oZWFkZXJzRm9ybUFycmF5LnJlbW92ZUF0KGhlYWRlckluZGV4KTtcbiAgfVxuXG4gIHByaXZhdGUgYWRkRW1wdHlIZWFkZXIoKSB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmhlYWRlcnNGb3JtQXJyYXkucHVzaChcbiAgICAgIG5ldyBVbnR5cGVkRm9ybUdyb3VwKHtcbiAgICAgICAga2V5OiB0aGlzLmluaXRLZXlGb3JtQ29udHJvbCgnJywgdGhpcy5oZWFkZXJzRm9ybUFycmF5Lmxlbmd0aCksXG4gICAgICAgIHZhbHVlOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKCcnKSxcbiAgICAgIH0pLFxuICAgICAgeyBlbWl0RXZlbnQ6IGZhbHNlIH0sXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVtb3ZlTGFzdEhlYWRlcigpIHtcbiAgICB0aGlzLmhlYWRlcnNGb3JtQXJyYXkucmVtb3ZlQXQodGhpcy5oZWFkZXJzRm9ybUFycmF5Lmxlbmd0aCAtIDEsIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX2ZpbHRlcih2YWx1ZTogc3RyaW5nKTogc3RyaW5nW10ge1xuICAgIGNvbnN0IGZpbHRlclZhbHVlID0gdmFsdWUudG9Mb3dlckNhc2UoKTtcbiAgICByZXR1cm4gSEVBREVSX05BTUVTLmZpbHRlcihvcHRpb24gPT4gb3B0aW9uLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoZmlsdGVyVmFsdWUpKTtcbiAgfVxufVxuXG5jb25zdCByZW1vdmVMYXN0RW1wdHlIZWFkZXIgPSAoaGVhZGVyczogSGVhZGVyW10pID0+IHtcbiAgY29uc3QgbGFzdEhlYWRlciA9IGhlYWRlcnNbaGVhZGVycy5sZW5ndGggLSAxXTtcblxuICBpZiAobGFzdEhlYWRlciAmJiBpc0VtcHR5KGxhc3RIZWFkZXIua2V5KSAmJiBpc0VtcHR5KGxhc3RIZWFkZXIudmFsdWUpKSB7XG4gICAgcmV0dXJuIGRyb3BSaWdodChoZWFkZXJzKTtcbiAgfVxuICByZXR1cm4gaGVhZGVycztcbn07XG4iLCI8IS0tXG5cbiAgICBDb3B5cmlnaHQgKEMpIDIwMTUgVGhlIEdyYXZpdGVlIHRlYW0gKGh0dHA6Ly9ncmF2aXRlZS5pbylcblxuICAgIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gICAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICAgIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuXG4gICAgICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcblxuICAgIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAgICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gICAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICAgIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuXG4tLT5cbjxkaXYgY2xhc3M9XCJsYWJlbFwiPjxuZy1jb250ZW50IHNlbGVjdD1cImdpby1mb3JtLWhlYWRlcnMtbGFiZWxcIj48L25nLWNvbnRlbnQ+PC9kaXY+XG48dGFibGUgY2xhc3M9XCJnaW8tZm9ybS1oZWFkZXJzX190YWJsZSBnaW8tdGFibGUtbGlnaHRcIiBbY2xhc3MuZGlzYWJsZWRdPVwiZGlzYWJsZWRcIiBbZm9ybUdyb3VwXT1cIm1haW5Gb3JtXCI+XG4gIDx0aGVhZD5cbiAgICA8dHI+XG4gICAgICA8dGg+S0VZPC90aD5cbiAgICAgIDx0aD5WQUxVRTwvdGg+XG4gICAgPC90cj5cbiAgPC90aGVhZD5cbiAgPHRib2R5IGZvcm1BcnJheU5hbWU9XCJoZWFkZXJzXCI+XG4gICAgQGZvciAoY29udHJvbCBvZiBoZWFkZXJzRm9ybUFycmF5LmNvbnRyb2xzOyB0cmFjayBjb250cm9sOyBsZXQgaGVhZGVySW5kZXggPSAkaW5kZXgpIHtcbiAgICAgIDx0ciBjbGFzcz1cImdpby1mb3JtLWhlYWRlcnNfX3RhYmxlX19oZWFkZXItcm93XCIgW2Zvcm1Hcm91cE5hbWVdPVwiaGVhZGVySW5kZXhcIj5cbiAgICAgICAgPHRkIGNsYXNzPVwiZ2lvLWZvcm0taGVhZGVyc19fdGFibGVfX2hlYWRlci1yb3dfX3RkLWtleVwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJnaW8tZm9ybS1oZWFkZXJzX190YWJsZV9faGVhZGVyLXJvd19fdGQta2V5X19maWVsZFwiPlxuICAgICAgICAgICAgPHRleHRhcmVhXG4gICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImtleVwiXG4gICAgICAgICAgICAgIG1hdElucHV0XG4gICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiTmFtZS4uLlwiXG4gICAgICAgICAgICAgIGNka1RleHRhcmVhQXV0b3NpemVcbiAgICAgICAgICAgICAgY2RrQXV0b3NpemVNaW5Sb3dzPVwiMVwiXG4gICAgICAgICAgICAgIFttYXRBdXRvY29tcGxldGVdPVwiaGVhZGVyTmFtZXNBdXRvY29tcGxldGVcIlxuICAgICAgICAgICAgICBbbWF0QXV0b2NvbXBsZXRlRGlzYWJsZWRdPVwiYXV0b2NvbXBsZXRlRGlzYWJsZWRcIlxuICAgICAgICAgICAgPjwvdGV4dGFyZWE+XG4gICAgICAgICAgICBAaWYgKGNvbmZpZz8uZWxDb2x1bW5zID09PSAna2V5JyB8fCBjb25maWc/LmVsQ29sdW1ucyA9PT0gJ2JvdGgnKSB7XG4gICAgICAgICAgICAgIDxnaW8tZWwtYXNzaXN0YW50IC8+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgQGlmIChjb250cm9sLmdldCgna2V5Jyk/Lmhhc0Vycm9yKCdwYXR0ZXJuJykpIHtcbiAgICAgICAgICAgIDxtYXQtZXJyb3I+XG4gICAgICAgICAgICAgIEhlYWRlciBuYW1lIG11c3Qgbm90IGNvbnRhaW4gc3BhY2VzLiAoUmVnRXhwOiB7eyBjb250cm9sLmdldCgna2V5Jyk/LmdldEVycm9yKCdwYXR0ZXJuJyk/LnJlcXVpcmVkUGF0dGVybiB9fSlcbiAgICAgICAgICAgIDwvbWF0LWVycm9yPlxuICAgICAgICAgIH1cbiAgICAgICAgICA8bWF0LWF1dG9jb21wbGV0ZSAjaGVhZGVyTmFtZXNBdXRvY29tcGxldGU9XCJtYXRBdXRvY29tcGxldGVcIj5cbiAgICAgICAgICAgIEBmb3IgKGhlYWRlck5hbWUgb2YgZ2V0RmlsdGVyZWRIZWFkZXJOYW1lcyhoZWFkZXJJbmRleCwgY29udHJvbC52YWx1ZSkgfCBhc3luYzsgdHJhY2sgaGVhZGVyTmFtZSkge1xuICAgICAgICAgICAgICA8bWF0LW9wdGlvbiBbdmFsdWVdPVwiaGVhZGVyTmFtZVwiPnt7IGhlYWRlck5hbWUgfX08L21hdC1vcHRpb24+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC9tYXQtYXV0b2NvbXBsZXRlPlxuICAgICAgICA8L3RkPlxuICAgICAgICA8dGQgY2xhc3M9XCJnaW8tZm9ybS1oZWFkZXJzX190YWJsZV9faGVhZGVyLXJvd19fdGQtdmFsdWVcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ2lvLWZvcm0taGVhZGVyc19fdGFibGVfX2hlYWRlci1yb3dfX3RkLXZhbHVlX19maWVsZFwiPlxuICAgICAgICAgICAgPHRleHRhcmVhIGZvcm1Db250cm9sTmFtZT1cInZhbHVlXCIgbWF0SW5wdXQgcGxhY2Vob2xkZXI9XCJWYWx1ZS4uLlwiIGNka1RleHRhcmVhQXV0b3NpemUgY2RrQXV0b3NpemVNaW5Sb3dzPVwiMVwiPjwvdGV4dGFyZWE+XG4gICAgICAgICAgICBAaWYgKGNvbmZpZz8uZWxDb2x1bW5zID09PSAndmFsdWUnIHx8IGNvbmZpZz8uZWxDb2x1bW5zID09PSAnYm90aCcpIHtcbiAgICAgICAgICAgICAgPGdpby1lbC1hc3Npc3RhbnQgLz5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBpZiAoaGVhZGVyc0Zvcm1BcnJheS5jb250cm9scy5sZW5ndGggLSAxICE9PSBoZWFkZXJJbmRleCkge1xuICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJnaW8tZm9ybS1oZWFkZXJzX190YWJsZV9faGVhZGVyLXJvd19fdGQtdmFsdWVfX2J1dHRvblwiXG4gICAgICAgICAgICAgICAgbWF0LWJ1dHRvblxuICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJEZWxldGVcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJvbkRlbGV0ZUhlYWRlcihoZWFkZXJJbmRleClcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPG1hdC1pY29uIHN2Z0ljb249XCJnaW86Y2FuY2VsXCIgLz5cbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvdGQ+XG4gICAgICA8L3RyPlxuICAgIH1cbiAgPC90Ym9keT5cbjwvdGFibGU+XG4iXX0=
@@ -0,0 +1,73 @@
1
+ /*
2
+ * Copyright (C) 2015 The Gravitee team (http://gravitee.io)
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ import { ComponentHarness, HarnessPredicate, parallel } from '@angular/cdk/testing';
17
+ import { MatButtonHarness } from '@angular/material/button/testing';
18
+ import { MatInputHarness } from '@angular/material/input/testing';
19
+ import { MatAutocompleteHarness } from '@angular/material/autocomplete/testing';
20
+ export class GioFormHeadersHarness extends ComponentHarness {
21
+ constructor() {
22
+ super(...arguments);
23
+ this.getHeaderRowsElement = this.locatorForAll('tr.gio-form-headers__table__header-row');
24
+ this.getHeaderRowInputKey = (rowIndex) => this.locatorFor(MatInputHarness.with({ ancestor: `[ng-reflect-name="${rowIndex}"]`, selector: '[formControlName=key]' }));
25
+ this.getHeaderRowInputKeyAutocomplete = (rowIndex) => this.locatorFor(MatAutocompleteHarness.with({ ancestor: `tr[ng-reflect-name="${rowIndex}"]` }));
26
+ this.getHeaderRowInputValue = (rowIndex) => this.locatorFor(MatInputHarness.with({ ancestor: `tr[ng-reflect-name="${rowIndex}"]`, selector: '[formControlName=value]' }));
27
+ this.getHeaderRowRemoveButton = (rowIndex) => this.locatorForOptional(MatButtonHarness.with({ ancestor: `tr[ng-reflect-name="${rowIndex}"]`, selector: '[aria-label="Delete"]' }));
28
+ }
29
+ static { this.hostSelector = 'gio-form-headers'; }
30
+ /**
31
+ * Gets a `HarnessPredicate` that can be used to search for a `GioFormColorInputHarness` that meets
32
+ * certain criteria.
33
+ *
34
+ * @param options Options for filtering which input instances are considered a match.
35
+ * @return a `HarnessPredicate` configured with the given options.
36
+ */
37
+ static with(options = {}) {
38
+ return new HarnessPredicate(GioFormHeadersHarness, options);
39
+ }
40
+ async getHeaderRows() {
41
+ const rows = await this.getHeaderRowsElement();
42
+ return Promise.all(rows.map(async (_, rowIndex) => ({
43
+ keyInput: await this.getHeaderRowInputKey(rowIndex)(),
44
+ keyAutocomplete: await this.getHeaderRowInputKeyAutocomplete(rowIndex)(),
45
+ valueInput: await this.getHeaderRowInputValue(rowIndex)(),
46
+ removeButton: await this.getHeaderRowRemoveButton(rowIndex)(),
47
+ })));
48
+ }
49
+ async getLastHeaderRow() {
50
+ const rows = await this.getHeaderRowsElement();
51
+ return {
52
+ keyInput: await this.getHeaderRowInputKey(rows.length - 1)(),
53
+ valueInput: await this.getHeaderRowInputValue(rows.length - 1)(),
54
+ };
55
+ }
56
+ async addHeader({ key, value }) {
57
+ const { keyInput, valueInput } = await this.getLastHeaderRow();
58
+ await keyInput.setValue(key);
59
+ await valueInput.setValue(value);
60
+ }
61
+ async isDisabled() {
62
+ return (await this.host()).hasClass('disabled');
63
+ }
64
+ async getValue() {
65
+ const rows = await this.getHeaderRows();
66
+ if (!(await this.isDisabled())) {
67
+ // Remove last empty value
68
+ rows.pop();
69
+ }
70
+ return parallel(() => rows.map(async (r) => ({ key: await r.keyInput.getValue(), value: await r.valueInput.getValue() })));
71
+ }
72
+ }
73
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2lvLWZvcm0taGVhZGVycy5oYXJuZXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktcGFydGljbGVzLWFuZ3VsYXIvc3JjL2xpYi9naW8tZm9ybS1oZWFkZXJzL2dpby1mb3JtLWhlYWRlcnMuaGFybmVzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUVILE9BQU8sRUFBc0MsZ0JBQWdCLEVBQUUsZ0JBQWdCLEVBQUUsUUFBUSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDeEgsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDcEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBRWhGLE1BQU0sT0FBTyxxQkFBc0IsU0FBUSxnQkFBZ0I7SUFBM0Q7O1FBY1UseUJBQW9CLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyx3Q0FBd0MsQ0FBQyxDQUFDO1FBRXBGLHlCQUFvQixHQUFHLENBQUMsUUFBZ0IsRUFBbUMsRUFBRSxDQUNuRixJQUFJLENBQUMsVUFBVSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsRUFBRSxRQUFRLEVBQUUscUJBQXFCLFFBQVEsSUFBSSxFQUFFLFFBQVEsRUFBRSx1QkFBdUIsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUVwSCxxQ0FBZ0MsR0FBRyxDQUFDLFFBQWdCLEVBQTBDLEVBQUUsQ0FDdEcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsRUFBRSxRQUFRLEVBQUUsdUJBQXVCLFFBQVEsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBRTFGLDJCQUFzQixHQUFHLENBQUMsUUFBZ0IsRUFBbUMsRUFBRSxDQUNyRixJQUFJLENBQUMsVUFBVSxDQUFDLGVBQWUsQ0FBQyxJQUFJ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LFVBQVUsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChDKSAyMDE1IFRoZSBHcmF2aXRlZSB0ZWFtIChodHRwOi8vZ3Jhdml0ZWUuaW8pXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQgeyBBc3luY0ZhY3RvcnlGbiwgQmFzZUhhcm5lc3NGaWx0ZXJzLCBDb21wb25lbnRIYXJuZXNzLCBIYXJuZXNzUHJlZGljYXRlLCBwYXJhbGxlbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay90ZXN0aW5nJztcbmltcG9ydCB7IE1hdEJ1dHRvbkhhcm5lc3MgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24vdGVzdGluZyc7XG5pbXBvcnQgeyBNYXRJbnB1dEhhcm5lc3MgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dC90ZXN0aW5nJztcbmltcG9ydCB7IE1hdEF1dG9jb21wbGV0ZUhhcm5lc3MgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9hdXRvY29tcGxldGUvdGVzdGluZyc7XG5cbmV4cG9ydCBjbGFzcyBHaW9Gb3JtSGVhZGVyc0hhcm5lc3MgZXh0ZW5kcyBDb21wb25lbnRIYXJuZXNzIHtcbiAgcHVibGljIHN0YXRpYyBob3N0U2VsZWN0b3IgPSAnZ2lvLWZvcm0taGVhZGVycyc7XG5cbiAgLyoqXG4gICAqIEdldHMgYSBgSGFybmVzc1ByZWRpY2F0ZWAgdGhhdCBjYW4gYmUgdXNlZCB0byBzZWFyY2ggZm9yIGEgYEdpb0Zvcm1Db2xvcklucHV0SGFybmVzc2AgdGhhdCBtZWV0c1xuICAgKiBjZXJ0YWluIGNyaXRlcmlhLlxuICAgKlxuICAgKiBAcGFyYW0gb3B0aW9ucyBPcHRpb25zIGZvciBmaWx0ZXJpbmcgd2hpY2ggaW5wdXQgaW5zdGFuY2VzIGFyZSBjb25zaWRlcmVkIGEgbWF0Y2guXG4gICAqIEByZXR1cm4gYSBgSGFybmVzc1ByZWRpY2F0ZWAgY29uZmlndXJlZCB3aXRoIHRoZSBnaXZlbiBvcHRpb25zLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyB3aXRoKG9wdGlvbnM6IEJhc2VIYXJuZXNzRmlsdGVycyA9IHt9KTogSGFybmVzc1ByZWRpY2F0ZTxHaW9Gb3JtSGVhZGVyc0hhcm5lc3M+IHtcbiAgICByZXR1cm4gbmV3IEhhcm5lc3NQcmVkaWNhdGUoR2lvRm9ybUhlYWRlcnNIYXJuZXNzLCBvcHRpb25zKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0SGVhZGVyUm93c0VsZW1lbnQgPSB0aGlzLmxvY2F0b3JGb3JBbGwoJ3RyLmdpby1mb3JtLWhlYWRlcnNfX3RhYmxlX19oZWFkZXItcm93Jyk7XG5cbiAgcHJpdmF0ZSBnZXRIZWFkZXJSb3dJbnB1dEtleSA9IChyb3dJbmRleDogbnVtYmVyKTogQXN5bmNGYWN0b3J5Rm48TWF0SW5wdXRIYXJuZXNzPiA9PlxuICAgIHRoaXMubG9jYXRvckZvcihNYXRJbnB1dEhhcm5lc3Mud2l0aCh7IGFuY2VzdG9yOiBgW25nLXJlZmxlY3QtbmFtZT1cIiR7cm93SW5kZXh9XCJdYCwgc2VsZWN0b3I6ICdbZm9ybUNvbnRyb2xOYW1lPWtleV0nIH0pKTtcblxuICBwcml2YXRlIGdldEhlYWRlclJvd0lucHV0S2V5QXV0b2NvbXBsZXRlID0gKHJvd0luZGV4OiBudW1iZXIpOiBBc3luY0ZhY3RvcnlGbjxNYXRBdXRvY29tcGxldGVIYXJuZXNzPiA9PlxuICAgIHRoaXMubG9jYXRvckZvcihNYXRBdXRvY29tcGxldGVIYXJuZXNzLndpdGgoeyBhbmNlc3RvcjogYHRyW25nLXJlZmxlY3QtbmFtZT1cIiR7cm93SW5kZXh9XCJdYCB9KSk7XG5cbiAgcHJpdmF0ZSBnZXRIZWFkZXJSb3dJbnB1dFZhbHVlID0gKHJvd0luZGV4OiBudW1iZXIpOiBBc3luY0ZhY3RvcnlGbjxNYXRJbnB1dEhhcm5lc3M+ID0+XG4gICAgdGhpcy5sb2NhdG9yRm9yKE1hdElucHV0SGFybmVzcy53aXRoKHsgYW5jZXN0b3I6IGB0cltuZy1yZWZsZWN0LW5hbWU9XCIke3Jvd0luZGV4fVwiXWAsIHNlbGVjdG9yOiAnW2Zvcm1Db250cm9sTmFtZT12YWx1ZV0nIH0pKTtcblxuICBwcml2YXRlIGdldEhlYWRlclJvd1JlbW92ZUJ1dHRvbiA9IChyb3dJbmRleDogbnVtYmVyKTogQXN5bmNGYWN0b3J5Rm48TWF0QnV0dG9uSGFybmVzcyB8IG51bGw+ID0+XG4gICAgdGhpcy5sb2NhdG9yRm9yT3B0aW9uYWwoTWF0QnV0dG9uSGFybmVzcy53aXRoKHsgYW5jZXN0b3I6IGB0cltuZy1yZWZsZWN0LW5hbWU9XCIke3Jvd0luZGV4fVwiXWAsIHNlbGVjdG9yOiAnW2FyaWEtbGFiZWw9XCJEZWxldGVcIl0nIH0pKTtcblxuICBwdWJsaWMgYXN5bmMgZ2V0SGVhZGVyUm93cygpOiBQcm9taXNlPFxuICAgIHtcbiAgICAgIGtleUlucHV0OiBNYXRJbnB1dEhhcm5lc3M7XG4gICAgICBrZXlBdXRvY29tcGxldGU6IE1hdEF1dG9jb21wbGV0ZUhhcm5lc3M7XG4gICAgICB2YWx1ZUlucHV0OiBNYXRJbnB1dEhhcm5lc3M7XG4gICAgICByZW1vdmVCdXR0b246IE1hdEJ1dHRvbkhhcm5lc3MgfCBudWxsO1xuICAgIH1bXVxuICA+IHtcbiAgICBjb25zdCByb3dzID0gYXdhaXQgdGhpcy5nZXRIZWFkZXJSb3dzRWxlbWVudCgpO1xuXG4gICAgcmV0dXJuIFByb21pc2UuYWxsKFxuICAgICAgcm93cy5tYXAoYXN5bmMgKF8sIHJvd0luZGV4KSA9PiAoe1xuICAgICAgICBrZXlJbnB1dDogYXdhaXQgdGhpcy5nZXRIZWFkZXJSb3dJbnB1dEtleShyb3dJbmRleCkoKSxcbiAgICAgICAga2V5QXV0b2NvbXBsZXRlOiBhd2FpdCB0aGlzLmdldEhlYWRlclJvd0lucHV0S2V5QXV0b2NvbXBsZXRlKHJvd0luZGV4KSgpLFxuICAgICAgICB2YWx1ZUlucHV0OiBhd2FpdCB0aGlzLmdldEhlYWRlclJvd0lucHV0VmFsdWUocm93SW5kZXgpKCksXG4gICAgICAgIHJlbW92ZUJ1dHRvbjogYXdhaXQgdGhpcy5nZXRIZWFkZXJSb3dSZW1vdmVCdXR0b24ocm93SW5kZXgpKCksXG4gICAgICB9KSksXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBnZXRMYXN0SGVhZGVyUm93KCk6IFByb21pc2U8eyBrZXlJbnB1dDogTWF0SW5wdXRIYXJuZXNzOyB2YWx1ZUlucHV0OiBNYXRJbnB1dEhhcm5lc3MgfT4ge1xuICAgIGNvbnN0IHJvd3MgPSBhd2FpdCB0aGlzLmdldEhlYWRlclJvd3NFbGVtZW50KCk7XG5cbiAgICByZXR1cm4ge1xuICAgICAga2V5SW5wdXQ6IGF3YWl0IHRoaXMuZ2V0SGVhZGVyUm93SW5wdXRLZXkocm93cy5sZW5ndGggLSAxKSgpLFxuICAgICAgdmFsdWVJbnB1dDogYXdhaXQgdGhpcy5nZXRIZWFkZXJSb3dJbnB1dFZhbHVlKHJvd3MubGVuZ3RoIC0gMSkoKSxcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGFkZEhlYWRlcih7IGtleSwgdmFsdWUgfTogeyBrZXk6IHN0cmluZzsgdmFsdWU6IHN0cmluZyB9KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgeyBrZXlJbnB1dCwgdmFsdWVJbnB1dCB9ID0gYXdhaXQgdGhpcy5nZXRMYXN0SGVhZGVyUm93KCk7XG5cbiAgICBhd2FpdCBrZXlJbnB1dC5zZXRWYWx1ZShrZXkpO1xuICAgIGF3YWl0IHZhbHVlSW5wdXQuc2V0VmFsdWUodmFsdWUpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGlzRGlzYWJsZWQoKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIChhd2FpdCB0aGlzLmhvc3QoKSkuaGFzQ2xhc3MoJ2Rpc2FibGVkJyk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZ2V0VmFsdWUoKTogUHJvbWlzZTx7IGtleTogc3RyaW5nOyB2YWx1ZTogc3RyaW5nIH1bXT4ge1xuICAgIGNvbnN0IHJvd3MgPSBhd2FpdCB0aGlzLmdldEhlYWRlclJvd3MoKTtcblxuICAgIGlmICghKGF3YWl0IHRoaXMuaXNEaXNhYmxlZCgpKSkge1xuICAgICAgLy8gUmVtb3ZlIGxhc3QgZW1wdHkgdmFsdWVcbiAgICAgIHJvd3MucG9wKCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHBhcmFsbGVsKCgpID0+IHJvd3MubWFwKGFzeW5jIHIgPT4gKHsga2V5OiBhd2FpdCByLmtleUlucHV0LmdldFZhbHVlKCksIHZhbHVlOiBhd2FpdCByLnZhbHVlSW5wdXQuZ2V0VmFsdWUoKSB9KSkpO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,77 @@
1
+ /*
2
+ * Copyright (C) 2015 The Gravitee team (http://gravitee.io)
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ import { CommonModule } from '@angular/common';
17
+ import { NgModule } from '@angular/core';
18
+ import { ReactiveFormsModule } from '@angular/forms';
19
+ import { MatButtonModule } from '@angular/material/button';
20
+ import { MatFormFieldModule } from '@angular/material/form-field';
21
+ import { MatInputModule } from '@angular/material/input';
22
+ import { MatAutocompleteModule } from '@angular/material/autocomplete';
23
+ import { MatOptionModule } from '@angular/material/core';
24
+ import { GioIconsModule } from '../gio-icons/gio-icons.module';
25
+ import { GioElAssistantComponent, GioElPromptComponent } from '../gio-el';
26
+ import { GioPopoverComponent, PopoverTriggerDirective } from '../gio-popover';
27
+ import { GioFormHeadersComponent } from './gio-form-headers.component';
28
+ import { GioFormHeadersLabelComponent } from './gio-form-headers-label.component';
29
+ import * as i0 from "@angular/core";
30
+ export class GioFormHeadersModule {
31
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.4", ngImport: i0, type: GioFormHeadersModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
32
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.4", ngImport: i0, type: GioFormHeadersModule, declarations: [GioFormHeadersComponent, GioFormHeadersLabelComponent], imports: [CommonModule,
33
+ MatInputModule,
34
+ MatFormFieldModule,
35
+ ReactiveFormsModule,
36
+ GioIconsModule,
37
+ MatButtonModule,
38
+ MatAutocompleteModule,
39
+ MatOptionModule,
40
+ GioElPromptComponent,
41
+ GioPopoverComponent,
42
+ PopoverTriggerDirective,
43
+ GioElAssistantComponent], exports: [GioFormHeadersComponent, GioFormHeadersLabelComponent] }); }
44
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.4", ngImport: i0, type: GioFormHeadersModule, imports: [CommonModule,
45
+ MatInputModule,
46
+ MatFormFieldModule,
47
+ ReactiveFormsModule,
48
+ GioIconsModule,
49
+ MatButtonModule,
50
+ MatAutocompleteModule,
51
+ MatOptionModule,
52
+ GioElPromptComponent,
53
+ GioPopoverComponent,
54
+ GioElAssistantComponent] }); }
55
+ }
56
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.4", ngImport: i0, type: GioFormHeadersModule, decorators: [{
57
+ type: NgModule,
58
+ args: [{
59
+ imports: [
60
+ CommonModule,
61
+ MatInputModule,
62
+ MatFormFieldModule,
63
+ ReactiveFormsModule,
64
+ GioIconsModule,
65
+ MatButtonModule,
66
+ MatAutocompleteModule,
67
+ MatOptionModule,
68
+ GioElPromptComponent,
69
+ GioPopoverComponent,
70
+ PopoverTriggerDirective,
71
+ GioElAssistantComponent,
72
+ ],
73
+ declarations: [GioFormHeadersComponent, GioFormHeadersLabelComponent],
74
+ exports: [GioFormHeadersComponent, GioFormHeadersLabelComponent],
75
+ }]
76
+ }] });
77
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2lvLWZvcm0taGVhZGVycy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1wYXJ0aWNsZXMtYW5ndWxhci9zcmMvbGliL2dpby1mb3JtLWhlYWRlcnMvZ2lvLWZvcm0taGVhZGVycy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFDSCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUV6RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDL0QsT0FBTyxFQUFFLHVCQUF1QixFQUFFLG9CQUFvQixFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTlFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDOztBQW9CbEYsTUFBTSxPQUFPLG9CQUFvQjs4R0FBcEIsb0JBQW9COytHQUFwQixvQkFBb0IsaUJBSGhCLHVCQUF1QixFQUFFLDRCQUE0QixhQWJsRSxZQUFZO1lBQ1osY0FBYztZQUNkLGtCQUFrQjtZQUNsQixtQkFBbUI7WUFDbkIsY0FBYztZQUNkLGVBQWU7WUFDZixxQkFBcUI7WUFDckIsZUFBZTtZQUNmLG9CQUFvQjtZQUNwQixtQkFBbUI7WUFDbkIsdUJBQXVCO1lBQ3ZCLHVCQUF1QixhQUdmLHVCQUF1QixFQUFFLDRCQUE0QjsrR0FFcEQsb0JBQW9CLFlBaEI3QixZQUFZO1lBQ1osY0FBYztZQUNkLGtCQUFrQjtZQUNsQixtQkFBbUI7WUFDbkIsY0FBYztZQUNkLGVBQWU7WUFDZixxQkFBcUI7WUFDckIsZUFBZTtZQUNmLG9CQUFvQjtZQUNwQixtQkFBbUI7WUFFbkIsdUJBQXVCOzsyRkFLZCxvQkFBb0I7a0JBbEJoQyxRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLGNBQWM7d0JBQ2Qsa0JBQWtCO3dCQUNsQixtQkFBbUI7d0JBQ25CLGNBQWM7d0JBQ2QsZUFBZTt3QkFDZixxQkFBcUI7d0JBQ3JCLGVBQWU7d0JBQ2Ysb0JBQW9CO3dCQUNwQixtQkFBbUI7d0JBQ25CLHVCQUF1Qjt3QkFDdkIsdUJBQXVCO3FCQUN4QjtvQkFDRCxZQUFZLEVBQUUsQ0FBQyx1QkFBdUIsRUFBRSw0QkFBNEIsQ0FBQztvQkFDckUsT0FBTyxFQUFFLENBQUMsdUJBQXVCLEVBQUUsNEJBQTRCLENBQUM7aUJBQ2pFIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoQykgMjAxNSBUaGUgR3Jhdml0ZWUgdGVhbSAoaHR0cDovL2dyYXZpdGVlLmlvKVxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBNYXRGb3JtRmllbGRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcbmltcG9ydCB7IE1hdElucHV0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xuaW1wb3J0IHsgTWF0QXV0b2NvbXBsZXRlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYXV0b2NvbXBsZXRlJztcbmltcG9ydCB7IE1hdE9wdGlvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuXG5pbXBvcnQgeyBHaW9JY29uc01vZHVsZSB9IGZyb20gJy4uL2dpby1pY29ucy9naW8taWNvbnMubW9kdWxlJztcbmltcG9ydCB7IEdpb0VsQXNzaXN0YW50Q29tcG9uZW50LCBHaW9FbFByb21wdENvbXBvbmVudCB9IGZyb20gJy4uL2dpby1lbCc7XG5pbXBvcnQgeyBHaW9Qb3BvdmVyQ29tcG9uZW50LCBQb3BvdmVyVHJpZ2dlckRpcmVjdGl2ZSB9IGZyb20gJy4uL2dpby1wb3BvdmVyJztcblxuaW1wb3J0IHsgR2lvRm9ybUhlYWRlcnNDb21wb25lbnQgfSBmcm9tICcuL2dpby1mb3JtLWhlYWRlcnMuY29tcG9uZW50JztcbmltcG9ydCB7IEdpb0Zvcm1IZWFkZXJzTGFiZWxDb21wb25lbnQgfSBmcm9tICcuL2dpby1mb3JtLWhlYWRlcnMtbGFiZWwuY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBNYXRJbnB1dE1vZHVsZSxcbiAgICBNYXRGb3JtRmllbGRNb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBHaW9JY29uc01vZHVsZSxcbiAgICBNYXRCdXR0b25Nb2R1bGUsXG4gICAgTWF0QXV0b2NvbXBsZXRlTW9kdWxlLFxuICAgIE1hdE9wdGlvbk1vZHVsZSxcbiAgICBHaW9FbFByb21wdENvbXBvbmVudCxcbiAgICBHaW9Qb3BvdmVyQ29tcG9uZW50LFxuICAgIFBvcG92ZXJUcmlnZ2VyRGlyZWN0aXZlLFxuICAgIEdpb0VsQXNzaXN0YW50Q29tcG9uZW50LFxuICBdLFxuICBkZWNsYXJhdGlvbnM6IFtHaW9Gb3JtSGVhZGVyc0NvbXBvbmVudCwgR2lvRm9ybUhlYWRlcnNMYWJlbENvbXBvbmVudF0sXG4gIGV4cG9ydHM6IFtHaW9Gb3JtSGVhZGVyc0NvbXBvbmVudCwgR2lvRm9ybUhlYWRlcnNMYWJlbENvbXBvbmVudF0sXG59KVxuZXhwb3J0IGNsYXNzIEdpb0Zvcm1IZWFkZXJzTW9kdWxlIHt9XG4iXX0=