@mnaoumov/obsidian-lib 10.11.0 → 11.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (460) hide show
  1. package/README.md +26 -0
  2. package/components/all-windows-status-bar-item-component/package.json +6 -0
  3. package/components/shared-component-pool-component/package.json +6 -0
  4. package/components/worker-component/package.json +6 -0
  5. package/components/worker-pool-component/package.json +6 -0
  6. package/components/workspace-layout-state-component/package.json +6 -0
  7. package/dist/lib/cjs/__merged.cjs +477 -285
  8. package/dist/lib/cjs/__merged.d.cts +26 -10
  9. package/dist/lib/cjs/anchored-suggest.cjs +1 -1
  10. package/dist/lib/cjs/app.cjs +2 -2
  11. package/dist/lib/cjs/async-with-notice.cjs +4 -4
  12. package/dist/lib/cjs/attachment-path.cjs +9 -9
  13. package/dist/lib/cjs/attachment-path.d.cts +3 -3
  14. package/dist/lib/cjs/attachment-unit-folder.cjs +2 -2
  15. package/dist/lib/cjs/backlink-index.cjs +5 -5
  16. package/dist/lib/cjs/backlink.cjs +7 -7
  17. package/dist/lib/cjs/bases-view-registrar.cjs +1 -1
  18. package/dist/lib/cjs/broken-link-candidates.cjs +1 -1
  19. package/dist/lib/cjs/bug-report-diagnostics.cjs +222 -0
  20. package/dist/lib/cjs/bug-report-diagnostics.d.cts +186 -0
  21. package/dist/lib/cjs/bug-report.cjs +38 -12
  22. package/dist/lib/cjs/bug-report.d.cts +65 -0
  23. package/dist/lib/cjs/bulk-operation-progress.cjs +1 -1
  24. package/dist/lib/cjs/bulk-operation.cjs +2 -2
  25. package/dist/lib/cjs/callout.cjs +6 -6
  26. package/dist/lib/cjs/canvas.cjs +11 -9
  27. package/dist/lib/cjs/canvas.d.cts +13 -0
  28. package/dist/lib/cjs/case-insensitive-file-index.cjs +3 -3
  29. package/dist/lib/cjs/code-block-render-handoff.cjs +5 -5
  30. package/dist/lib/cjs/codemirror/editor-mode-extension.cjs +4 -4
  31. package/dist/lib/cjs/codemirror/incremental-parse-state-field.cjs +2 -2
  32. package/dist/lib/cjs/codemirror/index.cjs +7 -7
  33. package/dist/lib/cjs/codemirror/inline-token-widgets.cjs +5 -5
  34. package/dist/lib/cjs/codemirror/markdown-editor-views.cjs +2 -2
  35. package/dist/lib/cjs/codemirror/settings-facet.cjs +1 -1
  36. package/dist/lib/cjs/command-handlers/abstract-file-command-handler.cjs +17 -17
  37. package/dist/lib/cjs/command-handlers/abstract-file-command-handler.d.cts +13 -13
  38. package/dist/lib/cjs/command-handlers/command-handler-component.cjs +2 -2
  39. package/dist/lib/cjs/command-handlers/command-handler.cjs +2 -2
  40. package/dist/lib/cjs/command-handlers/editor-command-handler.cjs +10 -10
  41. package/dist/lib/cjs/command-handlers/editor-command-handler.d.cts +7 -7
  42. package/dist/lib/cjs/command-handlers/file-command-handler.cjs +3 -3
  43. package/dist/lib/cjs/command-handlers/folder-command-handler.cjs +3 -3
  44. package/dist/lib/cjs/command-handlers/global-command-handler.cjs +2 -2
  45. package/dist/lib/cjs/command-handlers/index.cjs +15 -15
  46. package/dist/lib/cjs/command-handlers/open-bug-report-command-handler.cjs +95 -4
  47. package/dist/lib/cjs/command-handlers/open-bug-report-command-handler.d.cts +34 -2
  48. package/dist/lib/cjs/command-handlers/open-demo-vault-command-handler.cjs +2 -2
  49. package/dist/lib/cjs/command-handlers/open-discussion-command-handler.cjs +2 -2
  50. package/dist/lib/cjs/command-handlers/open-feature-request-command-handler.cjs +2 -2
  51. package/dist/lib/cjs/command-handlers/open-git-hub-command-handler.cjs +1 -1
  52. package/dist/lib/cjs/command-handlers/open-settings-command-handler.cjs +2 -2
  53. package/dist/lib/cjs/command-handlers/undo-bulk-operation-command-handler.cjs +2 -2
  54. package/dist/lib/cjs/command-handlers/unlock-active-note-command-handler.cjs +1 -1
  55. package/dist/lib/cjs/community-plugins.cjs +3 -3
  56. package/dist/lib/cjs/components/abort-signal-component.cjs +2 -2
  57. package/dist/lib/cjs/components/all-windows-event-component.cjs +5 -5
  58. package/dist/lib/cjs/components/all-windows-status-bar-item-component.cjs +245 -0
  59. package/dist/lib/cjs/components/all-windows-status-bar-item-component.d.cts +146 -0
  60. package/dist/lib/cjs/components/async-error-handler-component.cjs +5 -5
  61. package/dist/lib/cjs/components/async-events-component.cjs +1 -1
  62. package/dist/lib/cjs/components/bulk-operation-commit-component.cjs +12 -12
  63. package/dist/lib/cjs/components/case-insensitive-file-index-component.cjs +2 -2
  64. package/dist/lib/cjs/components/component-ex.cjs +21 -11
  65. package/dist/lib/cjs/components/component-ex.d.cts +11 -0
  66. package/dist/lib/cjs/components/console-debug-component.cjs +2 -2
  67. package/dist/lib/cjs/components/core-plugin-toggle-component.cjs +2 -2
  68. package/dist/lib/cjs/components/disposable-component.cjs +2 -2
  69. package/dist/lib/cjs/components/embed-extensions-component.cjs +21 -4
  70. package/dist/lib/cjs/components/embed-extensions-component.d.cts +8 -0
  71. package/dist/lib/cjs/components/embeddable-markdown-editor-component.cjs +24 -10
  72. package/dist/lib/cjs/components/embeddable-markdown-editor-component.d.cts +9 -0
  73. package/dist/lib/cjs/components/file-explorer-root-menu-component.cjs +7 -7
  74. package/dist/lib/cjs/components/generate-markdown-link-default-params-component.cjs +2 -2
  75. package/dist/lib/cjs/components/incremental-file-index-component.cjs +4 -4
  76. package/dist/lib/cjs/components/index.cjs +54 -39
  77. package/dist/lib/cjs/components/index.d.cts +5 -0
  78. package/dist/lib/cjs/components/layout-ready-component.cjs +3 -3
  79. package/dist/lib/cjs/components/menu-event-registrar-component.cjs +2 -2
  80. package/dist/lib/cjs/components/monkey-around-component.cjs +3 -3
  81. package/dist/lib/cjs/components/notebook-navigator-menu-event-registrar-component.cjs +5 -5
  82. package/dist/lib/cjs/components/plugin-context-component.cjs +5 -5
  83. package/dist/lib/cjs/components/plugin-gate-component.cjs +69 -36
  84. package/dist/lib/cjs/components/plugin-gate-component.d.cts +36 -13
  85. package/dist/lib/cjs/components/plugin-notice-component.cjs +39 -33
  86. package/dist/lib/cjs/components/plugin-notice-component.d.cts +4 -3
  87. package/dist/lib/cjs/components/plugin-settings-component.cjs +119 -18
  88. package/dist/lib/cjs/components/plugin-settings-component.d.cts +35 -5
  89. package/dist/lib/cjs/components/plugin-settings-tab-component.cjs +2 -2
  90. package/dist/lib/cjs/components/plugin-suggestion-component.cjs +8 -8
  91. package/dist/lib/cjs/components/pointer-position-component.cjs +2 -2
  92. package/dist/lib/cjs/components/reconfigurable-editor-extension-component.cjs +3 -3
  93. package/dist/lib/cjs/components/registry-component.cjs +2 -2
  94. package/dist/lib/cjs/components/release-notes-component.cjs +6 -6
  95. package/dist/lib/cjs/components/rename-delete-handler-component.cjs +25 -25
  96. package/dist/lib/cjs/components/rmdir-guard-component.cjs +2 -2
  97. package/dist/lib/cjs/components/settings-facet-component.cjs +1 -1
  98. package/dist/lib/cjs/components/settings-migration-component.cjs +5 -5
  99. package/dist/lib/cjs/components/shared-component-pool-component.cjs +368 -0
  100. package/dist/lib/cjs/components/shared-component-pool-component.d.cts +129 -0
  101. package/dist/lib/cjs/components/style-sheet-component.cjs +3 -3
  102. package/dist/lib/cjs/components/syntax-highlighting-component.cjs +3 -3
  103. package/dist/lib/cjs/components/templates-language-component.cjs +1 -1
  104. package/dist/lib/cjs/components/worker-component.cjs +363 -0
  105. package/dist/lib/cjs/components/worker-component.d.cts +156 -0
  106. package/dist/lib/cjs/components/worker-pool-component.cjs +185 -0
  107. package/dist/lib/cjs/components/worker-pool-component.d.cts +102 -0
  108. package/dist/lib/cjs/components/workspace-layout-state-component.cjs +495 -0
  109. package/dist/lib/cjs/components/workspace-layout-state-component.d.cts +239 -0
  110. package/dist/lib/cjs/constructors/get-dom-events-handlers-constructor.cjs +5 -5
  111. package/dist/lib/cjs/constructors/index.cjs +1 -1
  112. package/dist/lib/cjs/css-class.cjs +5 -1
  113. package/dist/lib/cjs/css-class.d.cts +16 -0
  114. package/dist/lib/cjs/data-handler.cjs +264 -6
  115. package/dist/lib/cjs/data-handler.d.cts +219 -2
  116. package/dist/lib/cjs/data-stores/data-store-locations.cjs +82 -24
  117. package/dist/lib/cjs/data-stores/data-store-locations.d.cts +15 -0
  118. package/dist/lib/cjs/data-stores/data-store-replica.cjs +33 -5
  119. package/dist/lib/cjs/data-stores/data-store-seeds.cjs +6 -6
  120. package/dist/lib/cjs/data-stores/data-store-seeds.d.cts +2 -2
  121. package/dist/lib/cjs/data-stores/data-store-transport.cjs +81 -8
  122. package/dist/lib/cjs/data-stores/data-store-transport.d.cts +30 -1
  123. package/dist/lib/cjs/data-stores/index.cjs +6 -6
  124. package/dist/lib/cjs/data-stores/local-data-store.cjs +74 -10
  125. package/dist/lib/cjs/data-stores/local-data-store.d.cts +58 -1
  126. package/dist/lib/cjs/data-stores/shared-data-store.cjs +76 -19
  127. package/dist/lib/cjs/data-stores/shared-data-store.d.cts +18 -1
  128. package/dist/lib/cjs/dataview-link.cjs +2 -2
  129. package/dist/lib/cjs/dataview.cjs +27 -7
  130. package/dist/lib/cjs/dataview.d.cts +14 -0
  131. package/dist/lib/cjs/debug.cjs +3 -3
  132. package/dist/lib/cjs/demo-vault-helper.cjs +34 -6
  133. package/dist/lib/cjs/demo-vault-helper.d.cts +6 -2
  134. package/dist/lib/cjs/desktop-bulk-operation-git.cjs +10 -10
  135. package/dist/lib/cjs/desktop-demo-vault-opener.cjs +13 -13
  136. package/dist/lib/cjs/desktop-git-runner.cjs +4 -14
  137. package/dist/lib/cjs/desktop-git-runner.d.cts +8 -2
  138. package/dist/lib/cjs/desktop-operating-system.cjs +1 -1
  139. package/dist/lib/cjs/desktop-request-url-stream.cjs +8 -14
  140. package/dist/lib/cjs/desktop-trusted-input.cjs +2 -2
  141. package/dist/lib/cjs/disposable.cjs +150 -0
  142. package/dist/lib/cjs/disposable.d.cts +39 -0
  143. package/dist/lib/cjs/editor-extension-registrar.cjs +1 -1
  144. package/dist/lib/cjs/editor-suggest-registrar.cjs +2 -2
  145. package/dist/lib/cjs/editor-suggest.cjs +1 -1
  146. package/dist/lib/cjs/editor.cjs +6 -6
  147. package/dist/lib/cjs/events.cjs +2 -2
  148. package/dist/lib/cjs/extensions-registrar.cjs +1 -1
  149. package/dist/lib/cjs/feature-request.cjs +1 -1
  150. package/dist/lib/cjs/file-change.cjs +10 -10
  151. package/dist/lib/cjs/file-explorer.cjs +2 -2
  152. package/dist/lib/cjs/file-manager.cjs +5 -5
  153. package/dist/lib/cjs/file-system.cjs +10 -10
  154. package/dist/lib/cjs/folder-note.cjs +4 -4
  155. package/dist/lib/cjs/frontmatter-formatting.cjs +7 -6
  156. package/dist/lib/cjs/frontmatter-link-cache-with-offsets.cjs +1 -1
  157. package/dist/lib/cjs/frontmatter.cjs +5 -5
  158. package/dist/lib/cjs/generated-during-build.cjs +2 -2
  159. package/dist/lib/cjs/git-rename-history.cjs +1 -1
  160. package/dist/lib/cjs/git-rename-history.d.cts +2 -2
  161. package/dist/lib/cjs/hotkey.cjs +1 -1
  162. package/dist/lib/cjs/hover-link-source-registrar.cjs +1 -1
  163. package/dist/lib/cjs/html-element.cjs +2 -2
  164. package/dist/lib/cjs/i18n/custom-type-options.cjs +1 -1
  165. package/dist/lib/cjs/i18n/default-translations.cjs +1 -1
  166. package/dist/lib/cjs/i18n/i18n.cjs +7 -7
  167. package/dist/lib/cjs/i18n/index.cjs +4 -4
  168. package/dist/lib/cjs/i18n/locales/en.cjs +27 -1
  169. package/dist/lib/cjs/i18n/locales/en.d.cts +26 -0
  170. package/dist/lib/cjs/i18n/locales/index.cjs +2 -2
  171. package/dist/lib/cjs/i18n/locales/translations-map.cjs +1 -1
  172. package/dist/lib/cjs/i18n/locales/translations-map.d.cts +26 -0
  173. package/dist/lib/cjs/index.cjs +147 -126
  174. package/dist/lib/cjs/index.d.cts +7 -0
  175. package/dist/lib/cjs/inline-token-renderer.cjs +2 -2
  176. package/dist/lib/cjs/is-in-obsidian.cjs +1 -1
  177. package/dist/lib/cjs/library-styles.cjs +3 -3
  178. package/dist/lib/cjs/link-and-tag-input-suggest.cjs +2 -2
  179. package/dist/lib/cjs/link.cjs +76 -56
  180. package/dist/lib/cjs/link.d.cts +20 -14
  181. package/dist/lib/cjs/logger.cjs +4 -4
  182. package/dist/lib/cjs/loop.cjs +10 -16
  183. package/dist/lib/cjs/markdown-code-block-processor-registrar.cjs +17 -2
  184. package/dist/lib/cjs/markdown-code-block-processor-registrar.d.cts +7 -0
  185. package/dist/lib/cjs/markdown-code-block-processor.cjs +13 -13
  186. package/dist/lib/cjs/markdown-post-processor-registrar.cjs +2 -2
  187. package/dist/lib/cjs/markdown-view.cjs +191 -3
  188. package/dist/lib/cjs/markdown-view.d.cts +48 -1
  189. package/dist/lib/cjs/markdown.cjs +12 -12
  190. package/dist/lib/cjs/metadata-cache.cjs +23 -23
  191. package/dist/lib/cjs/metadata-cache.d.cts +5 -4
  192. package/dist/lib/cjs/misplaced-attachment.cjs +297 -0
  193. package/dist/lib/cjs/misplaced-attachment.d.cts +228 -0
  194. package/dist/lib/cjs/mobile-app-info.cjs +1 -1
  195. package/dist/lib/cjs/modals/alert.cjs +4 -4
  196. package/dist/lib/cjs/modals/code-block-builder.cjs +7 -7
  197. package/dist/lib/cjs/modals/confirm.cjs +4 -4
  198. package/dist/lib/cjs/modals/copy-text-manually.cjs +181 -0
  199. package/dist/lib/cjs/modals/copy-text-manually.d.cts +38 -0
  200. package/dist/lib/cjs/modals/index.cjs +17 -11
  201. package/dist/lib/cjs/modals/index.d.cts +2 -0
  202. package/dist/lib/cjs/modals/minimizable-modal.cjs +6 -6
  203. package/dist/lib/cjs/modals/modal-command-builder.cjs +3 -3
  204. package/dist/lib/cjs/modals/modal.cjs +3 -3
  205. package/dist/lib/cjs/modals/prompt.cjs +10 -10
  206. package/dist/lib/cjs/modals/prompt.d.cts +1 -1
  207. package/dist/lib/cjs/modals/review-bug-report-diagnostics.cjs +202 -0
  208. package/dist/lib/cjs/modals/review-bug-report-diagnostics.d.cts +30 -0
  209. package/dist/lib/cjs/modals/select-item.cjs +6 -6
  210. package/dist/lib/cjs/modals/select-option.cjs +3 -3
  211. package/dist/lib/cjs/modals/suggest-modal-command-builder.cjs +1 -1
  212. package/dist/lib/cjs/note-priority.cjs +2 -2
  213. package/dist/lib/cjs/notebook-navigator.cjs +12 -2
  214. package/dist/lib/cjs/notebook-navigator.d.cts +6 -0
  215. package/dist/lib/cjs/obsidian-lib-state.cjs +1 -1
  216. package/dist/lib/cjs/obsidian-protocol-handler-registrar.cjs +1 -1
  217. package/dist/lib/cjs/obsidian-settings.cjs +1 -1
  218. package/dist/lib/cjs/obsidian-word-characters.cjs +1 -1
  219. package/dist/lib/cjs/parse-link.cjs +14 -14
  220. package/dist/lib/cjs/path-compatibility.cjs +368 -0
  221. package/dist/lib/cjs/path-compatibility.d.cts +263 -0
  222. package/dist/lib/cjs/path-settings.cjs +3 -3
  223. package/dist/lib/cjs/pdf.cjs +2 -2
  224. package/dist/lib/cjs/plugin/index.cjs +18 -12
  225. package/dist/lib/cjs/plugin/index.d.cts +2 -0
  226. package/dist/lib/cjs/plugin/plugin-api.cjs +21 -12
  227. package/dist/lib/cjs/plugin/plugin-api.d.cts +5 -1
  228. package/dist/lib/cjs/plugin/plugin-async-cleanup.cjs +6 -3
  229. package/dist/lib/cjs/plugin/plugin-async-cleanup.d.cts +5 -0
  230. package/dist/lib/cjs/plugin/plugin-context.cjs +10 -9
  231. package/dist/lib/cjs/plugin/plugin-event-source.cjs +1 -1
  232. package/dist/lib/cjs/plugin/plugin-event-source.d.cts +4 -4
  233. package/dist/lib/cjs/plugin/plugin-install-state.cjs +49 -4
  234. package/dist/lib/cjs/plugin/plugin-install-state.d.cts +30 -0
  235. package/dist/lib/cjs/plugin/plugin-instance.cjs +450 -0
  236. package/dist/lib/cjs/plugin/plugin-instance.d.cts +258 -0
  237. package/dist/lib/cjs/plugin/plugin-lifecycle-events.cjs +1 -1
  238. package/dist/lib/cjs/plugin/plugin-lifecycle-events.d.cts +6 -4
  239. package/dist/lib/cjs/plugin/plugin-settings-tab.cjs +15 -15
  240. package/dist/lib/cjs/plugin/plugin.cjs +133 -34
  241. package/dist/lib/cjs/plugin/plugin.d.cts +35 -5
  242. package/dist/lib/cjs/plugin/settings-migration-api.cjs +1 -1
  243. package/dist/lib/cjs/plugin/third-party-plugin.cjs +231 -0
  244. package/dist/lib/cjs/plugin/third-party-plugin.d.cts +244 -0
  245. package/dist/lib/cjs/plugin-cli-handler-registrar.cjs +2 -2
  246. package/dist/lib/cjs/popovers/field-popover.cjs +4 -4
  247. package/dist/lib/cjs/popovers/index.cjs +3 -3
  248. package/dist/lib/cjs/popovers/popover-anchor.cjs +1 -1
  249. package/dist/lib/cjs/popovers/popover.cjs +5 -5
  250. package/dist/lib/cjs/queue.cjs +8 -8
  251. package/dist/lib/cjs/react/app-context.cjs +3 -3
  252. package/dist/lib/cjs/react/index.cjs +1 -1
  253. package/dist/lib/cjs/reference-definition.cjs +1 -1
  254. package/dist/lib/cjs/reference.cjs +3 -3
  255. package/dist/lib/cjs/release-asset.cjs +5 -5
  256. package/dist/lib/cjs/rendered-markdown.cjs +4 -4
  257. package/dist/lib/cjs/request-url.cjs +4 -4
  258. package/dist/lib/cjs/resource-lock.cjs +46 -42
  259. package/dist/lib/cjs/resource-lock.d.cts +8 -7
  260. package/dist/lib/cjs/resource-url.cjs +3 -3
  261. package/dist/lib/cjs/ribbon-icon-registrar.cjs +1 -1
  262. package/dist/lib/cjs/setting-components/checkbox-component.cjs +3 -3
  263. package/dist/lib/cjs/setting-components/code-highlighter-component.cjs +7 -7
  264. package/dist/lib/cjs/setting-components/date-component.cjs +4 -4
  265. package/dist/lib/cjs/setting-components/date-time-component.cjs +4 -4
  266. package/dist/lib/cjs/setting-components/email-component.cjs +2 -2
  267. package/dist/lib/cjs/setting-components/file-component.cjs +2 -2
  268. package/dist/lib/cjs/setting-components/folder-list-component.cjs +3 -3
  269. package/dist/lib/cjs/setting-components/hotkey-component.cjs +5 -5
  270. package/dist/lib/cjs/setting-components/index.cjs +30 -30
  271. package/dist/lib/cjs/setting-components/list-component.cjs +5 -5
  272. package/dist/lib/cjs/setting-components/month-component.cjs +4 -4
  273. package/dist/lib/cjs/setting-components/multiple-dropdown-component.cjs +3 -3
  274. package/dist/lib/cjs/setting-components/multiple-email-component.cjs +2 -2
  275. package/dist/lib/cjs/setting-components/multiple-file-component.cjs +3 -3
  276. package/dist/lib/cjs/setting-components/multiple-text-component.cjs +9 -6
  277. package/dist/lib/cjs/setting-components/multiple-text-component.d.cts +4 -1
  278. package/dist/lib/cjs/setting-components/number-component.cjs +2 -2
  279. package/dist/lib/cjs/setting-components/password-component.cjs +2 -2
  280. package/dist/lib/cjs/setting-components/setting-component-wrapper.cjs +3 -3
  281. package/dist/lib/cjs/setting-components/tag-list-component.cjs +4 -4
  282. package/dist/lib/cjs/setting-components/telephone-component.cjs +2 -2
  283. package/dist/lib/cjs/setting-components/text-based-component.cjs +1 -1
  284. package/dist/lib/cjs/setting-components/time-component.cjs +3 -3
  285. package/dist/lib/cjs/setting-components/tri-state-checkbox-component.cjs +3 -3
  286. package/dist/lib/cjs/setting-components/typed-dropdown-component.cjs +3 -3
  287. package/dist/lib/cjs/setting-components/typed-multiple-dropdown-component.cjs +4 -4
  288. package/dist/lib/cjs/setting-components/typed-range-text-component.cjs +1 -1
  289. package/dist/lib/cjs/setting-components/typed-text-component.cjs +3 -3
  290. package/dist/lib/cjs/setting-components/url-component.cjs +2 -2
  291. package/dist/lib/cjs/setting-components/validator-component.cjs +4 -4
  292. package/dist/lib/cjs/setting-components/week-component.cjs +4 -4
  293. package/dist/lib/cjs/setting-ex.cjs +26 -26
  294. package/dist/lib/cjs/setting-group-ex.cjs +2 -2
  295. package/dist/lib/cjs/settings-recovery.cjs +217 -0
  296. package/dist/lib/cjs/settings-recovery.d.cts +178 -0
  297. package/dist/lib/cjs/settings-tabs.cjs +5 -5
  298. package/dist/lib/cjs/status-bar-item-registrar.cjs +1 -1
  299. package/dist/lib/cjs/templater.cjs +14 -4
  300. package/dist/lib/cjs/templater.d.cts +6 -0
  301. package/dist/lib/cjs/transformers/duration-transformer.cjs +2 -2
  302. package/dist/lib/cjs/transformers/index.cjs +1 -1
  303. package/dist/lib/cjs/trusted-input.cjs +1 -1
  304. package/dist/lib/cjs/validation.cjs +4 -4
  305. package/dist/lib/cjs/vault-delete.cjs +6 -6
  306. package/dist/lib/cjs/vault-transaction.cjs +5 -5
  307. package/dist/lib/cjs/vault.cjs +12 -12
  308. package/dist/lib/cjs/view-registrar.cjs +1 -1
  309. package/dist/lib/cjs/virtual-file.cjs +16 -14
  310. package/dist/lib/cjs/virtual-file.d.cts +2 -1
  311. package/dist/lib/cjs/wasm.cjs +119 -0
  312. package/dist/lib/cjs/wasm.d.cts +54 -0
  313. package/dist/lib/cjs/worker-protocol.cjs +209 -0
  314. package/dist/lib/cjs/worker-protocol.d.cts +282 -0
  315. package/dist/lib/cjs/workspace.cjs +1 -1
  316. package/dist/lib/esm/__merged.d.mts +26 -10
  317. package/dist/lib/esm/__merged.mjs +215 -5
  318. package/dist/lib/esm/app.mjs +2 -2
  319. package/dist/lib/esm/attachment-path.d.mts +3 -3
  320. package/dist/lib/esm/attachment-path.mjs +2 -2
  321. package/dist/lib/esm/backlink-index.mjs +2 -2
  322. package/dist/lib/esm/bug-report-diagnostics.d.mts +186 -0
  323. package/dist/lib/esm/bug-report-diagnostics.mjs +127 -0
  324. package/dist/lib/esm/bug-report.d.mts +65 -0
  325. package/dist/lib/esm/bug-report.mjs +33 -10
  326. package/dist/lib/esm/canvas.d.mts +13 -0
  327. package/dist/lib/esm/canvas.mjs +6 -5
  328. package/dist/lib/esm/command-handlers/abstract-file-command-handler.d.mts +13 -13
  329. package/dist/lib/esm/command-handlers/abstract-file-command-handler.mjs +14 -14
  330. package/dist/lib/esm/command-handlers/editor-command-handler.d.mts +7 -7
  331. package/dist/lib/esm/command-handlers/editor-command-handler.mjs +8 -8
  332. package/dist/lib/esm/command-handlers/open-bug-report-command-handler.d.mts +34 -2
  333. package/dist/lib/esm/command-handlers/open-bug-report-command-handler.mjs +99 -3
  334. package/dist/lib/esm/components/all-windows-status-bar-item-component.d.mts +146 -0
  335. package/dist/lib/esm/components/all-windows-status-bar-item-component.mjs +154 -0
  336. package/dist/lib/esm/components/component-ex.d.mts +11 -0
  337. package/dist/lib/esm/components/component-ex.mjs +19 -6
  338. package/dist/lib/esm/components/disposable-component.mjs +1 -1
  339. package/dist/lib/esm/components/embed-extensions-component.d.mts +8 -0
  340. package/dist/lib/esm/components/embed-extensions-component.mjs +20 -3
  341. package/dist/lib/esm/components/embeddable-markdown-editor-component.d.mts +9 -0
  342. package/dist/lib/esm/components/embeddable-markdown-editor-component.mjs +16 -2
  343. package/dist/lib/esm/components/index.d.mts +5 -0
  344. package/dist/lib/esm/components/index.mjs +12 -2
  345. package/dist/lib/esm/components/plugin-gate-component.d.mts +36 -13
  346. package/dist/lib/esm/components/plugin-gate-component.mjs +61 -26
  347. package/dist/lib/esm/components/plugin-notice-component.d.mts +4 -3
  348. package/dist/lib/esm/components/plugin-notice-component.mjs +30 -21
  349. package/dist/lib/esm/components/plugin-settings-component.d.mts +35 -5
  350. package/dist/lib/esm/components/plugin-settings-component.mjs +105 -4
  351. package/dist/lib/esm/components/rename-delete-handler-component.mjs +2 -2
  352. package/dist/lib/esm/components/shared-component-pool-component.d.mts +129 -0
  353. package/dist/lib/esm/components/shared-component-pool-component.mjs +280 -0
  354. package/dist/lib/esm/components/worker-component.d.mts +156 -0
  355. package/dist/lib/esm/components/worker-component.mjs +279 -0
  356. package/dist/lib/esm/components/worker-pool-component.d.mts +102 -0
  357. package/dist/lib/esm/components/worker-pool-component.mjs +95 -0
  358. package/dist/lib/esm/components/workspace-layout-state-component.d.mts +239 -0
  359. package/dist/lib/esm/components/workspace-layout-state-component.mjs +404 -0
  360. package/dist/lib/esm/css-class.d.mts +16 -0
  361. package/dist/lib/esm/css-class.mjs +5 -1
  362. package/dist/lib/esm/data-handler.d.mts +219 -2
  363. package/dist/lib/esm/data-handler.mjs +262 -5
  364. package/dist/lib/esm/data-stores/data-store-locations.d.mts +15 -0
  365. package/dist/lib/esm/data-stores/data-store-locations.mjs +80 -22
  366. package/dist/lib/esm/data-stores/data-store-replica.mjs +33 -5
  367. package/dist/lib/esm/data-stores/data-store-seeds.d.mts +2 -2
  368. package/dist/lib/esm/data-stores/data-store-seeds.mjs +4 -4
  369. package/dist/lib/esm/data-stores/data-store-transport.d.mts +30 -1
  370. package/dist/lib/esm/data-stores/data-store-transport.mjs +78 -5
  371. package/dist/lib/esm/data-stores/local-data-store.d.mts +58 -1
  372. package/dist/lib/esm/data-stores/local-data-store.mjs +71 -9
  373. package/dist/lib/esm/data-stores/shared-data-store.d.mts +18 -1
  374. package/dist/lib/esm/data-stores/shared-data-store.mjs +72 -15
  375. package/dist/lib/esm/dataview.d.mts +14 -0
  376. package/dist/lib/esm/dataview.mjs +19 -1
  377. package/dist/lib/esm/demo-vault-helper.d.mts +6 -2
  378. package/dist/lib/esm/demo-vault-helper.mjs +29 -1
  379. package/dist/lib/esm/desktop-demo-vault-opener.mjs +1 -1
  380. package/dist/lib/esm/desktop-git-runner.d.mts +8 -2
  381. package/dist/lib/esm/desktop-git-runner.mjs +3 -3
  382. package/dist/lib/esm/desktop-request-url-stream.mjs +4 -10
  383. package/dist/lib/esm/disposable.d.mts +39 -0
  384. package/dist/lib/esm/disposable.mjs +64 -0
  385. package/dist/lib/esm/file-system.mjs +2 -2
  386. package/dist/lib/esm/frontmatter-formatting.mjs +2 -1
  387. package/dist/lib/esm/generated-during-build.mjs +2 -2
  388. package/dist/lib/esm/git-rename-history.d.mts +2 -2
  389. package/dist/lib/esm/git-rename-history.mjs +1 -1
  390. package/dist/lib/esm/i18n/locales/en.d.mts +26 -0
  391. package/dist/lib/esm/i18n/locales/en.mjs +27 -1
  392. package/dist/lib/esm/i18n/locales/translations-map.d.mts +26 -0
  393. package/dist/lib/esm/index.d.mts +7 -0
  394. package/dist/lib/esm/index.mjs +15 -1
  395. package/dist/lib/esm/link.d.mts +20 -14
  396. package/dist/lib/esm/link.mjs +57 -38
  397. package/dist/lib/esm/loop.mjs +2 -8
  398. package/dist/lib/esm/markdown-code-block-processor-registrar.d.mts +7 -0
  399. package/dist/lib/esm/markdown-code-block-processor-registrar.mjs +16 -1
  400. package/dist/lib/esm/markdown-view.d.mts +48 -1
  401. package/dist/lib/esm/markdown-view.mjs +192 -2
  402. package/dist/lib/esm/metadata-cache.d.mts +5 -4
  403. package/dist/lib/esm/metadata-cache.mjs +6 -6
  404. package/dist/lib/esm/misplaced-attachment.d.mts +228 -0
  405. package/dist/lib/esm/misplaced-attachment.mjs +212 -0
  406. package/dist/lib/esm/modals/copy-text-manually.d.mts +38 -0
  407. package/dist/lib/esm/modals/copy-text-manually.mjs +99 -0
  408. package/dist/lib/esm/modals/index.d.mts +2 -0
  409. package/dist/lib/esm/modals/index.mjs +5 -1
  410. package/dist/lib/esm/modals/prompt.d.mts +1 -1
  411. package/dist/lib/esm/modals/prompt.mjs +1 -1
  412. package/dist/lib/esm/modals/review-bug-report-diagnostics.d.mts +30 -0
  413. package/dist/lib/esm/modals/review-bug-report-diagnostics.mjs +120 -0
  414. package/dist/lib/esm/notebook-navigator.d.mts +6 -0
  415. package/dist/lib/esm/notebook-navigator.mjs +11 -2
  416. package/dist/lib/esm/parse-link.mjs +4 -4
  417. package/dist/lib/esm/path-compatibility.d.mts +263 -0
  418. package/dist/lib/esm/path-compatibility.mjs +277 -0
  419. package/dist/lib/esm/plugin/index.d.mts +2 -0
  420. package/dist/lib/esm/plugin/index.mjs +6 -2
  421. package/dist/lib/esm/plugin/plugin-api.d.mts +5 -1
  422. package/dist/lib/esm/plugin/plugin-api.mjs +13 -4
  423. package/dist/lib/esm/plugin/plugin-async-cleanup.d.mts +5 -0
  424. package/dist/lib/esm/plugin/plugin-async-cleanup.mjs +3 -1
  425. package/dist/lib/esm/plugin/plugin-context.mjs +2 -1
  426. package/dist/lib/esm/plugin/plugin-event-source.d.mts +4 -4
  427. package/dist/lib/esm/plugin/plugin-event-source.mjs +1 -1
  428. package/dist/lib/esm/plugin/plugin-install-state.d.mts +30 -0
  429. package/dist/lib/esm/plugin/plugin-install-state.mjs +44 -1
  430. package/dist/lib/esm/plugin/plugin-instance.d.mts +258 -0
  431. package/dist/lib/esm/plugin/plugin-instance.mjs +367 -0
  432. package/dist/lib/esm/plugin/plugin-lifecycle-events.d.mts +6 -4
  433. package/dist/lib/esm/plugin/plugin-lifecycle-events.mjs +1 -1
  434. package/dist/lib/esm/plugin/plugin.d.mts +35 -5
  435. package/dist/lib/esm/plugin/plugin.mjs +118 -9
  436. package/dist/lib/esm/plugin/third-party-plugin.d.mts +244 -0
  437. package/dist/lib/esm/plugin/third-party-plugin.mjs +147 -0
  438. package/dist/lib/esm/release-asset.mjs +1 -1
  439. package/dist/lib/esm/resource-lock.d.mts +8 -7
  440. package/dist/lib/esm/resource-lock.mjs +31 -26
  441. package/dist/lib/esm/setting-components/multiple-text-component.d.mts +4 -1
  442. package/dist/lib/esm/setting-components/multiple-text-component.mjs +6 -3
  443. package/dist/lib/esm/settings-recovery.d.mts +178 -0
  444. package/dist/lib/esm/settings-recovery.mjs +125 -0
  445. package/dist/lib/esm/settings-tabs.mjs +2 -2
  446. package/dist/lib/esm/templater.d.mts +6 -0
  447. package/dist/lib/esm/templater.mjs +11 -2
  448. package/dist/lib/esm/vault.mjs +1 -1
  449. package/dist/lib/esm/virtual-file.d.mts +2 -1
  450. package/dist/lib/esm/virtual-file.mjs +7 -5
  451. package/dist/lib/esm/wasm.d.mts +54 -0
  452. package/dist/lib/esm/wasm.mjs +30 -0
  453. package/dist/lib/esm/worker-protocol.d.mts +282 -0
  454. package/dist/lib/esm/worker-protocol.mjs +113 -0
  455. package/dist/styles.css +16 -1
  456. package/modals/copy-text-manually/package.json +6 -0
  457. package/modals/review-bug-report-diagnostics/package.json +6 -0
  458. package/package.json +10 -8
  459. package/plugin/plugin-instance/package.json +6 -0
  460. package/plugin/third-party-plugin/package.json +6 -0
@@ -0,0 +1,212 @@
1
+ /*
2
+ THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
3
+ if you want to view the source, please visit the github repository of this plugin
4
+ */
5
+ (function () {
6
+ function ensureBrowserProcess() {
7
+ const browserProcess = {
8
+ browser: true,
9
+ cwd() {
10
+ return "/";
11
+ },
12
+ env: {},
13
+ platform: "android"
14
+ };
15
+ const existingProcess = globalThis.process;
16
+ if (!existingProcess) {
17
+ globalThis.process = browserProcess;
18
+ return;
19
+ }
20
+ if (existingProcess.versions?.node) {
21
+ return;
22
+ }
23
+ const existingProcessRecord = existingProcess;
24
+ for (const [key, value] of Object.entries(browserProcess)) {
25
+ existingProcessRecord[key] ??= value;
26
+ }
27
+ existingProcessRecord["browser"] = true;
28
+ }
29
+
30
+ ensureBrowserProcess();
31
+ })();
32
+
33
+ import {
34
+ getDataAdapterEx,
35
+ parentFolderPath
36
+ } from "@obsidian-typings/obsidian-public-latest/implementations";
37
+ import {
38
+ AttachmentPathContext,
39
+ getAttachmentFolderPathForAttachment
40
+ } from "./attachment-path.mjs";
41
+ import { isNote } from "./file-system.mjs";
42
+ var ExternalAttachmentLinkMode = /* @__PURE__ */ ((ExternalAttachmentLinkMode2) => {
43
+ ExternalAttachmentLinkMode2["Ignore"] = "Ignore";
44
+ ExternalAttachmentLinkMode2["Report"] = "Report";
45
+ ExternalAttachmentLinkMode2["ReportUnowned"] = "ReportUnowned";
46
+ return ExternalAttachmentLinkMode2;
47
+ })(ExternalAttachmentLinkMode || {});
48
+ class MisplacedAttachmentIndex extends Map {
49
+ /**
50
+ * Creates an empty index.
51
+ *
52
+ * @param mode - Which external references {@link MisplacedAttachmentIndex.getReported} returns.
53
+ */
54
+ constructor(mode = "Report" /* Report */) {
55
+ super();
56
+ this.mode = mode;
57
+ }
58
+ mode;
59
+ properNotePathsByAttachment = /* @__PURE__ */ new Map();
60
+ userNotePathsByAttachment = /* @__PURE__ */ new Map();
61
+ /**
62
+ * Records a reference to an attachment outside the referencing note's folder.
63
+ *
64
+ * @param notePath - The referencing note's vault-relative path.
65
+ * @param entry - The reference and the folder the note wants the attachment in.
66
+ */
67
+ add(notePath, entry) {
68
+ let entries = this.get(notePath);
69
+ if (!entries) {
70
+ entries = [];
71
+ this.set(notePath, entries);
72
+ }
73
+ entries.push(entry);
74
+ this.addUser(entry.attachmentPath, notePath);
75
+ }
76
+ /**
77
+ * Records that a note references an attachment, wherever the attachment sits.
78
+ *
79
+ * @param attachmentPath - The attachment's vault-relative path.
80
+ * @param notePath - The referencing note's vault-relative path.
81
+ */
82
+ addUser(attachmentPath, notePath) {
83
+ addToSetMap(this.userNotePathsByAttachment, attachmentPath, notePath);
84
+ }
85
+ /**
86
+ * The notes that use an attachment besides the given one, its proper notes first, each group in walk order.
87
+ *
88
+ * @param attachmentPath - The attachment's vault-relative path.
89
+ * @param notePath - The note to leave out: the one whose reference is being reported.
90
+ * @returns The other notes' paths.
91
+ */
92
+ getOtherUserNotePaths(attachmentPath, notePath) {
93
+ const properNotePaths = this.getProperNotePaths(attachmentPath);
94
+ const userNotePaths = [...this.userNotePathsByAttachment.get(attachmentPath) ?? []];
95
+ return [...properNotePaths, ...userNotePaths.filter((path) => !properNotePaths.includes(path))].filter((path) => path !== notePath);
96
+ }
97
+ /**
98
+ * The proper notes of an attachment: the notes that reference it and whose own folder holds it, in walk order.
99
+ *
100
+ * @param attachmentPath - The attachment's vault-relative path.
101
+ * @returns The proper notes' paths, empty when the attachment has none.
102
+ */
103
+ getProperNotePaths(attachmentPath) {
104
+ return [...this.properNotePathsByAttachment.get(attachmentPath) ?? []];
105
+ }
106
+ /**
107
+ * The entries to report, after the mode is applied, grouped by note, with a note left out once none of its
108
+ * entries survive.
109
+ *
110
+ * @returns The entries to report.
111
+ */
112
+ getReported() {
113
+ const reported = /* @__PURE__ */ new Map();
114
+ if (this.mode === "Ignore" /* Ignore */) {
115
+ return reported;
116
+ }
117
+ for (const [notePath, entries] of this) {
118
+ const surviving = this.mode === "ReportUnowned" /* ReportUnowned */ ? entries.filter((entry) => !this.properNotePathsByAttachment.has(entry.attachmentPath)) : entries;
119
+ if (surviving.length > 0) {
120
+ reported.set(notePath, surviving);
121
+ }
122
+ }
123
+ return reported;
124
+ }
125
+ /**
126
+ * Whether a note is a proper note of an attachment: it references it, and its own folder holds it.
127
+ *
128
+ * @param attachmentPath - The attachment's vault-relative path.
129
+ * @param notePath - The note's vault-relative path.
130
+ * @returns `true` when the note's own attachment folder holds the attachment.
131
+ */
132
+ isProperNote(attachmentPath, notePath) {
133
+ return this.properNotePathsByAttachment.get(attachmentPath)?.has(notePath) ?? false;
134
+ }
135
+ /**
136
+ * Records that an attachment sits in the folder configured for a note that references it, which makes that
137
+ * note its proper note.
138
+ *
139
+ * @param attachmentPath - The attachment's vault-relative path.
140
+ * @param notePath - The referencing note whose folder holds it.
141
+ */
142
+ markHomed(attachmentPath, notePath) {
143
+ addToSetMap(this.properNotePathsByAttachment, attachmentPath, notePath);
144
+ this.addUser(attachmentPath, notePath);
145
+ }
146
+ }
147
+ async function getAttachmentPlacement(params) {
148
+ const { app, attachmentFile, notePath } = params;
149
+ const properAttachmentFolderPath = await getAttachmentFolderPathForAttachment({
150
+ app,
151
+ attachmentPathOrFile: attachmentFile,
152
+ context: AttachmentPathContext.Unknown,
153
+ notePathOrFile: notePath
154
+ });
155
+ const isInsensitive = getDataAdapterEx(app).insensitive;
156
+ return {
157
+ isInProperFolder: fold(parentFolderPath(attachmentFile.path)) === fold(properAttachmentFolderPath),
158
+ properAttachmentFolderPath
159
+ };
160
+ function fold(value) {
161
+ return isInsensitive ? value.toLowerCase() : value;
162
+ }
163
+ }
164
+ async function recordAttachmentPlacement(params) {
165
+ const {
166
+ app,
167
+ attachmentFile,
168
+ index,
169
+ isPathIgnored = isNone,
170
+ isSharedAttachmentPath = isNone,
171
+ isTreatedAsAttachment = isNone,
172
+ notePath,
173
+ reference
174
+ } = params;
175
+ if (index.mode === "Ignore" /* Ignore */) {
176
+ return;
177
+ }
178
+ if (isNote(attachmentFile) && !isTreatedAsAttachment(attachmentFile.path)) {
179
+ return;
180
+ }
181
+ if (isPathIgnored(attachmentFile.path) || isSharedAttachmentPath(attachmentFile.path)) {
182
+ return;
183
+ }
184
+ const placement = await getAttachmentPlacement({ app, attachmentFile, notePath });
185
+ if (placement.isInProperFolder) {
186
+ index.markHomed(attachmentFile.path, notePath);
187
+ return;
188
+ }
189
+ index.add(notePath, {
190
+ attachmentPath: attachmentFile.path,
191
+ properAttachmentFolderPath: placement.properAttachmentFolderPath,
192
+ reference
193
+ });
194
+ }
195
+ function addToSetMap(map, key, value) {
196
+ let set = map.get(key);
197
+ if (!set) {
198
+ set = /* @__PURE__ */ new Set();
199
+ map.set(key, set);
200
+ }
201
+ set.add(value);
202
+ }
203
+ function isNone() {
204
+ return false;
205
+ }
206
+ export {
207
+ ExternalAttachmentLinkMode,
208
+ MisplacedAttachmentIndex,
209
+ getAttachmentPlacement,
210
+ recordAttachmentPlacement
211
+ };
212
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9taXNwbGFjZWQtYXR0YWNobWVudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBmaWxlXG4gKlxuICogV2hldGhlciBhbiBhdHRhY2htZW50IHNpdHMgb3V0c2lkZSB0aGUgYXR0YWNobWVudCBmb2xkZXIgb2YgdGhlIG5vdGVzIHRoYXQgdXNlIGl0LCBhbmQgd2hpY2ggbm90ZXMgYXJlIGl0c1xuICogcHJvcGVyIGhvbWUuXG4gKlxuICogVHdvIHRoaW5ncyBoZXJlIGFyZSBlYXN5IHRvIGdldCB3cm9uZzpcbiAqXG4gKiAtICoqVGhlIGp1ZGdlbWVudCBpcyBhYm91dCB0aGUgRk9MREVSLCBub3QgdGhlIHBhdGguKiogYGdldEF0dGFjaG1lbnRGaWxlUGF0aGAgYW5zd2VycyBhYm91dCB0aGUgcHJvcGVyXG4gKiAgIHBhdGgsIGZvbGRlciBhbmQgdGVtcGxhdGVkIGJhc2UgbmFtZSBib3RoLCBzbyBqdWRnaW5nIG9uIGl0IHJhdyBmbGFncyBldmVyeSBhdHRhY2htZW50IHdob3NlIE5BTUUgZG9lcyBub3RcbiAqICAgbWF0Y2ggYSByZW5hbWUgdGVtcGxhdGUuIFRoYXQgaXMgYSBkaWZmZXJlbnQgZGVmZWN0LiBTbyB0aGUgY29tcGFyaXNvbiBpcyBmb2xkZXIgYWdhaW5zdCBmb2xkZXIsIHRocm91Z2hcbiAqICAgYGdldEF0dGFjaG1lbnRGb2xkZXJQYXRoRm9yQXR0YWNobWVudGAsIHdoaWNoIGFsc28gc2tpcHMgdGhlIG5hbWUgZ2VuZXJhdGlvbiB0aGF0IGRvbWluYXRlcyB0aGUgY29zdCBvZlxuICogICB0aGUgcXVlc3Rpb24gd2hlbiBgQ3VzdG9tIEF0dGFjaG1lbnQgTG9jYXRpb25gIGFuc3dlcnMgaXQuXG4gKiAtICoqVGhlIHByb3BlciBmb2xkZXIgaXMgYXNrZWQgZm9yIHRoZSBSRUFMIGF0dGFjaG1lbnQsIG5ldmVyIGEgZHVtbXkuKiogQSBmb2xkZXIgdGVtcGxhdGUgbWF5IHJlYWQgdGhlXG4gKiAgIGF0dGFjaG1lbnQncyBvd24gbmFtZSwgZXh0ZW5zaW9uIG9yIHN0YXRzLCBzbyBgZ2V0QXR0YWNobWVudEZvbGRlclBhdGhgJ3MgZHVtbXktZmlsZSByb3V0ZSBjYW4gYW5zd2VyXG4gKiAgIGFib3V0IGEgZmlsZSB0aGF0IGRvZXMgbm90IGV4aXN0LlxuICpcbiAqIEEgcmVmZXJlbmNlIGlzIGp1ZGdlZCBmcm9tIHRoZSBub3RlIHRoYXQgbWFrZXMgaXQ6IGBBLm1kYCBsaW5raW5nIGBCL2ltYWdlLnBuZ2AsIHdoaWNoIHNpdHMgaW4gYEIubWRgJ3MgZm9sZGVyLFxuICogaXMgQSBsaW5raW5nIGFuIEVYVEVSTkFMIGF0dGFjaG1lbnQsIGV2ZW4gd2hlbiBCIHVzZXMgaXQgdG9vLiBXaGV0aGVyIHN1Y2ggYSByZWZlcmVuY2UgaXMgd29ydGggcmVwb3J0aW5nIGRlcGVuZHNcbiAqIG9uIHdoZXRoZXIgdGhlIGF0dGFjaG1lbnQgaGFzIGEgcHJvcGVyIG5vdGUgYW55d2hlcmUsIHdoaWNoIGlzIGtub3duIG9ubHkgYWZ0ZXIgZXZlcnkgbm90ZSBoYXMgYmVlbiBqdWRnZWQsIHNvXG4gKiB7QGxpbmsgTWlzcGxhY2VkQXR0YWNobWVudEluZGV4fSBjb2xsZWN0cyB0aGUgdmVyZGljdHMgYW5kIHtAbGluayBNaXNwbGFjZWRBdHRhY2htZW50SW5kZXguZ2V0UmVwb3J0ZWR9IGFwcGxpZXNcbiAqIHRoZSB7QGxpbmsgRXh0ZXJuYWxBdHRhY2htZW50TGlua01vZGV9IGF0IHRoZSBlbmQuXG4gKlxuICogUmVuZGVyaW5nIGlzIHRoZSBjYWxsZXInczogdGhpcyBtb2R1bGUgb25seSBqdWRnZXMgYW5kIGNvbGxlY3RzLlxuICovXG5cbmltcG9ydCB0eXBlIHtcbiAgQXBwLFxuICBSZWZlcmVuY2UsXG4gIFRGaWxlXG59IGZyb20gJ29ic2lkaWFuJztcblxuaW1wb3J0IHtcbiAgZ2V0RGF0YUFkYXB0ZXJFeCxcbiAgcGFyZW50Rm9sZGVyUGF0aFxufSBmcm9tICdAb2JzaWRpYW4tdHlwaW5ncy9vYnNpZGlhbi1wdWJsaWMtbGF0ZXN0L2ltcGxlbWVudGF0aW9ucyc7XG5cbmltcG9ydCB7XG4gIEF0dGFjaG1lbnRQYXRoQ29udGV4dCxcbiAgZ2V0QXR0YWNobWVudEZvbGRlclBhdGhGb3JBdHRhY2htZW50XG59IGZyb20gJy4vYXR0YWNobWVudC1wYXRoLnRzJztcbmltcG9ydCB7IGlzTm90ZSB9IGZyb20gJy4vZmlsZS1zeXN0ZW0udHMnO1xuXG4vKipcbiAqIFdoaWNoIHJlZmVyZW5jZXMgdG8gYW4gYXR0YWNobWVudCBvdXRzaWRlIHRoZSByZWZlcmVuY2luZyBub3RlJ3MgYXR0YWNobWVudCBmb2xkZXIgYXJlIHJlcG9ydGVkLlxuICovXG5leHBvcnQgZW51bSBFeHRlcm5hbEF0dGFjaG1lbnRMaW5rTW9kZSB7XG4gIC8qKlxuICAgKiBOZXZlciByZXBvcnQgb25lOiBub3RoaW5nIGlzIGp1ZGdlZCBhdCBhbGwuXG4gICAqL1xuICBJZ25vcmUgPSAnSWdub3JlJyxcblxuICAvKipcbiAgICogUmVwb3J0IGV2ZXJ5IHN1Y2ggcmVmZXJlbmNlLCBpbmNsdWRpbmcgb25lIHRvIGFuIGF0dGFjaG1lbnQgZmlsZWQgaW4gdGhlIGZvbGRlciBvZiBhbm90aGVyIG5vdGUgdGhhdFxuICAgKiByZWZlcmVuY2VzIGl0IHRvby5cbiAgICovXG4gIFJlcG9ydCA9ICdSZXBvcnQnLFxuXG4gIC8qKlxuICAgKiBSZXBvcnQgc3VjaCBhIHJlZmVyZW5jZSBvbmx5IHdoZW4gbm8gbm90ZSB0aGF0IHJlZmVyZW5jZXMgdGhlIGF0dGFjaG1lbnQgaGFzIGl0IGluIGl0cyBvd24gZm9sZGVyLlxuICAgKi9cbiAgUmVwb3J0VW5vd25lZCA9ICdSZXBvcnRVbm93bmVkJ1xufVxuXG4vKipcbiAqIFRoZSBmb2xkZXIgYW4gYXR0YWNobWVudCBzaXRzIGluLCBqdWRnZWQgYWdhaW5zdCB0aGUgZm9sZGVyIG9uZSBub3RlJ3MgY29uZmlndXJhdGlvbiBwdXRzIGl0cyBhdHRhY2htZW50cyBpbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBdHRhY2htZW50UGxhY2VtZW50IHtcbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIGF0dGFjaG1lbnQgc2l0cyBpbiB7QGxpbmsgQXR0YWNobWVudFBsYWNlbWVudC5wcm9wZXJBdHRhY2htZW50Rm9sZGVyUGF0aH0sIGNvbXBhcmVkIHRoZSB3YXkgdGhlXG4gICAqIHZhdWx0J3MgYWRhcHRlciBjb21wYXJlcyBuYW1lcyAoY2FzZS1mb2xkZWQgb24gYSBjYXNlLWluc2Vuc2l0aXZlIGFkYXB0ZXIpLlxuICAgKi9cbiAgcmVhZG9ubHkgaXNJblByb3BlckZvbGRlcjogYm9vbGVhbjtcblxuICAvKipcbiAgICogVGhlIHZhdWx0LXJlbGF0aXZlIGZvbGRlciB0aGUgbm90ZSdzIGNvbmZpZ3VyYXRpb24gcHV0cyB0aGlzIGF0dGFjaG1lbnQgaW4sIGAvYCBmb3IgdGhlIHZhdWx0IHJvb3QuXG4gICAqL1xuICByZWFkb25seSBwcm9wZXJBdHRhY2htZW50Rm9sZGVyUGF0aDogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIHtAbGluayBnZXRBdHRhY2htZW50UGxhY2VtZW50fS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHZXRBdHRhY2htZW50UGxhY2VtZW50UGFyYW1zIHtcbiAgLyoqXG4gICAqIFRoZSBPYnNpZGlhbiBhcHAgaW5zdGFuY2UuXG4gICAqL1xuICByZWFkb25seSBhcHA6IEFwcDtcblxuICAvKipcbiAgICogVGhlIGF0dGFjaG1lbnQgdG8ganVkZ2UuXG4gICAqL1xuICByZWFkb25seSBhdHRhY2htZW50RmlsZTogVEZpbGU7XG5cbiAgLyoqXG4gICAqIFRoZSB2YXVsdC1yZWxhdGl2ZSBwYXRoIG9mIHRoZSBub3RlIHdob3NlIGNvbmZpZ3VyYXRpb24gdGhlIGF0dGFjaG1lbnQgaXMganVkZ2VkIGFnYWluc3QuXG4gICAqL1xuICByZWFkb25seSBub3RlUGF0aDogc3RyaW5nO1xufVxuXG4vKipcbiAqIE9uZSByZWZlcmVuY2UgdG8gYW4gYXR0YWNobWVudCBvdXRzaWRlIHRoZSBhdHRhY2htZW50IGZvbGRlciBvZiB0aGUgbm90ZSB0aGF0IG1ha2VzIGl0LlxuICpcbiAqIFRoZSBzYW1lIGF0dGFjaG1lbnQgcmVmZXJlbmNlZCBmcm9tIHR3byBub3RlcyBpcyB0d28gZW50cmllcywgYmVjYXVzZSB0aGUgdHdvIG5vdGVzIGNhbiBjb25maWd1cmUgZGlmZmVyZW50XG4gKiBhdHRhY2htZW50IGZvbGRlcnMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTWlzcGxhY2VkQXR0YWNobWVudEVudHJ5IHtcbiAgLyoqXG4gICAqIFRoZSBhdHRhY2htZW50J3MgY3VycmVudCB2YXVsdC1yZWxhdGl2ZSBwYXRoLlxuICAgKi9cbiAgcmVhZG9ubHkgYXR0YWNobWVudFBhdGg6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHZhdWx0LXJlbGF0aXZlIGZvbGRlciB0aGUgcmVmZXJlbmNpbmcgbm90ZSdzIGNvbmZpZ3VyYXRpb24gcHV0cyB0aGUgYXR0YWNobWVudCBpbi5cbiAgICovXG4gIHJlYWRvbmx5IHByb3BlckF0dGFjaG1lbnRGb2xkZXJQYXRoOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSByZWZlcmVuY2UgdGhhdCByZWFjaGVzIHRoZSBhdHRhY2htZW50LlxuICAgKi9cbiAgcmVhZG9ubHkgcmVmZXJlbmNlOiBSZWZlcmVuY2U7XG59XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3Ige0BsaW5rIHJlY29yZEF0dGFjaG1lbnRQbGFjZW1lbnR9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlY29yZEF0dGFjaG1lbnRQbGFjZW1lbnRQYXJhbXMge1xuICAvKipcbiAgICogVGhlIE9ic2lkaWFuIGFwcCBpbnN0YW5jZS5cbiAgICovXG4gIHJlYWRvbmx5IGFwcDogQXBwO1xuXG4gIC8qKlxuICAgKiBUaGUgZmlsZSB0aGUgcmVmZXJlbmNlIHJlc29sdmVkIHRvLiBQYXNzIG9ubHkgcmVmZXJlbmNlcyB0aGF0IHJlc29sdmVkOiBhbiB1bnJlc29sdmVkIG9uZSBpcyBhIGJyb2tlbiBsaW5rLFxuICAgKiBub3QgYSBtaXNwbGFjZWQgYXR0YWNobWVudC5cbiAgICovXG4gIHJlYWRvbmx5IGF0dGFjaG1lbnRGaWxlOiBURmlsZTtcblxuICAvKipcbiAgICogVGhlIGluZGV4IHRoZSB2ZXJkaWN0IGlzIHJlY29yZGVkIGluLlxuICAgKi9cbiAgcmVhZG9ubHkgaW5kZXg6IE1pc3BsYWNlZEF0dGFjaG1lbnRJbmRleDtcblxuICAvKipcbiAgICogV2hldGhlciBhIHBhdGggaXMgbmV2ZXIganVkZ2VkLCBmb3IgZXhhbXBsZSBiZWNhdXNlIHRoZSB1c2VyIGV4Y2x1ZGVkIGl0LiBEZWZhdWx0cyB0byBqdWRnaW5nIGV2ZXJ5IHBhdGguXG4gICAqL1xuICByZWFkb25seSBpc1BhdGhJZ25vcmVkPzogKHBhdGg6IHN0cmluZykgPT4gYm9vbGVhbjtcblxuICAvKipcbiAgICogV2hldGhlciBhIHBhdGggbGllcyBpbiBhIHNoYXJlZCBhdHRhY2htZW50IGxvY2F0aW9uLCB3aGljaCBpcyBhbnlib2R5J3MgZm9sZGVyLCBzbyBubyByZWZlcmVuY2UgaW50byBpdCBpc1xuICAgKiBleHRlcm5hbC4gRGVmYXVsdHMgdG8gbm8gc2hhcmVkIGxvY2F0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgaXNTaGFyZWRBdHRhY2htZW50UGF0aD86IChwYXRoOiBzdHJpbmcpID0+IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgYSBub3RlIGlzIHRyZWF0ZWQgYXMgYW4gYXR0YWNobWVudCAoYW4gYC5leGNhbGlkcmF3Lm1kYCBmaWxlLCBzYXkpLCBhbmQgc28ganVkZ2VkIGhlcmUuIERlZmF1bHRzIHRvXG4gICAqIG5vIG5vdGUgYmVpbmcgb25lLlxuICAgKi9cbiAgcmVhZG9ubHkgaXNUcmVhdGVkQXNBdHRhY2htZW50PzogKHBhdGg6IHN0cmluZykgPT4gYm9vbGVhbjtcblxuICAvKipcbiAgICogVGhlIHZhdWx0LXJlbGF0aXZlIHBhdGggb2YgdGhlIG5vdGUgdGhhdCBtYWtlcyB0aGUgcmVmZXJlbmNlLlxuICAgKi9cbiAgcmVhZG9ubHkgbm90ZVBhdGg6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHJlZmVyZW5jZSwga2VwdCBpbiB0aGUgZW50cnkgc28gYSByZXBvcnQgY2FuIG5hbWUgaXRzIGxpbmUgb3IgZnJvbnRtYXR0ZXIga2V5LlxuICAgKi9cbiAgcmVhZG9ubHkgcmVmZXJlbmNlOiBSZWZlcmVuY2U7XG59XG5cbi8qKlxuICogVGhlIHZlcmRpY3RzIG9mIGEgd2FsayBvdmVyIGV2ZXJ5IHJlZmVyZW5jZSB0byBhbiBhdHRhY2htZW50LCBncm91cGVkIGJ5IHRoZSBub3RlIHRoYXQgbWFrZXMgdGhlIHJlZmVyZW5jZS5cbiAqXG4gKiBJdCBrZWVwcyBldmVyeSBleHRlcm5hbCByZWZlcmVuY2UsIGV2ZXJ5IG5vdGUgdGhhdCB1c2VzIGVhY2ggYXR0YWNobWVudCwgYW5kIGVhY2ggYXR0YWNobWVudCdzIHByb3BlciBub3RlczpcbiAqIHRoZSBub3RlcyB0aGF0IHJlZmVyZW5jZSBpdCBhbmQgd2hvc2Ugb3duIGZvbGRlciBob2xkcyBpdC4gV2hpY2ggZW50cmllcyBjb3VudCBhcyByZXBvcnRlZCBkZXBlbmRzIG9uIHRoZVxuICoge0BsaW5rIEV4dGVybmFsQXR0YWNobWVudExpbmtNb2RlfSBhbmQgb24gdGhlIHByb3BlciBub3Rlcywgd2hpY2ggYXJlIGtub3duIG9ubHkgb25jZSB0aGUgd2hvbGUgdmF1bHQgaGFzIGJlZW5cbiAqIHdhbGtlZCwgc28gYXNrIHtAbGluayBNaXNwbGFjZWRBdHRhY2htZW50SW5kZXguZ2V0UmVwb3J0ZWR9IGFmdGVyIHRoZSB3YWxrLlxuICovXG5leHBvcnQgY2xhc3MgTWlzcGxhY2VkQXR0YWNobWVudEluZGV4IGV4dGVuZHMgTWFwPHN0cmluZywgTWlzcGxhY2VkQXR0YWNobWVudEVudHJ5W10+IHtcbiAgcHJpdmF0ZSByZWFkb25seSBwcm9wZXJOb3RlUGF0aHNCeUF0dGFjaG1lbnQgPSBuZXcgTWFwPHN0cmluZywgU2V0PHN0cmluZz4+KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgdXNlck5vdGVQYXRoc0J5QXR0YWNobWVudCA9IG5ldyBNYXA8c3RyaW5nLCBTZXQ8c3RyaW5nPj4oKTtcblxuICAvKipcbiAgICogQ3JlYXRlcyBhbiBlbXB0eSBpbmRleC5cbiAgICpcbiAgICogQHBhcmFtIG1vZGUgLSBXaGljaCBleHRlcm5hbCByZWZlcmVuY2VzIHtAbGluayBNaXNwbGFjZWRBdHRhY2htZW50SW5kZXguZ2V0UmVwb3J0ZWR9IHJldHVybnMuXG4gICAqL1xuICBwdWJsaWMgY29uc3RydWN0b3IocHVibGljIHJlYWRvbmx5IG1vZGUgPSBFeHRlcm5hbEF0dGFjaG1lbnRMaW5rTW9kZS5SZXBvcnQpIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlY29yZHMgYSByZWZlcmVuY2UgdG8gYW4gYXR0YWNobWVudCBvdXRzaWRlIHRoZSByZWZlcmVuY2luZyBub3RlJ3MgZm9sZGVyLlxuICAgKlxuICAgKiBAcGFyYW0gbm90ZVBhdGggLSBUaGUgcmVmZXJlbmNpbmcgbm90ZSdzIHZhdWx0LXJlbGF0aXZlIHBhdGguXG4gICAqIEBwYXJhbSBlbnRyeSAtIFRoZSByZWZlcmVuY2UgYW5kIHRoZSBmb2xkZXIgdGhlIG5vdGUgd2FudHMgdGhlIGF0dGFjaG1lbnQgaW4uXG4gICAqL1xuICBwdWJsaWMgYWRkKG5vdGVQYXRoOiBzdHJpbmcsIGVudHJ5OiBNaXNwbGFjZWRBdHRhY2htZW50RW50cnkpOiB2b2lkIHtcbiAgICBsZXQgZW50cmllcyA9IHRoaXMuZ2V0KG5vdGVQYXRoKTtcbiAgICBpZiAoIWVudHJpZXMpIHtcbiAgICAgIGVudHJpZXMgPSBbXTtcbiAgICAgIHRoaXMuc2V0KG5vdGVQYXRoLCBlbnRyaWVzKTtcbiAgICB9XG4gICAgZW50cmllcy5wdXNoKGVudHJ5KTtcbiAgICB0aGlzLmFkZFVzZXIoZW50cnkuYXR0YWNobWVudFBhdGgsIG5vdGVQYXRoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWNvcmRzIHRoYXQgYSBub3RlIHJlZmVyZW5jZXMgYW4gYXR0YWNobWVudCwgd2hlcmV2ZXIgdGhlIGF0dGFjaG1lbnQgc2l0cy5cbiAgICpcbiAgICogQHBhcmFtIGF0dGFjaG1lbnRQYXRoIC0gVGhlIGF0dGFjaG1lbnQncyB2YXVsdC1yZWxhdGl2ZSBwYXRoLlxuICAgKiBAcGFyYW0gbm90ZVBhdGggLSBUaGUgcmVmZXJlbmNpbmcgbm90ZSdzIHZhdWx0LXJlbGF0aXZlIHBhdGguXG4gICAqL1xuICBwdWJsaWMgYWRkVXNlcihhdHRhY2htZW50UGF0aDogc3RyaW5nLCBub3RlUGF0aDogc3RyaW5nKTogdm9pZCB7XG4gICAgYWRkVG9TZXRNYXAodGhpcy51c2VyTm90ZVBhdGhzQnlBdHRhY2htZW50LCBhdHRhY2htZW50UGF0aCwgbm90ZVBhdGgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBub3RlcyB0aGF0IHVzZSBhbiBhdHRhY2htZW50IGJlc2lkZXMgdGhlIGdpdmVuIG9uZSwgaXRzIHByb3BlciBub3RlcyBmaXJzdCwgZWFjaCBncm91cCBpbiB3YWxrIG9yZGVyLlxuICAgKlxuICAgKiBAcGFyYW0gYXR0YWNobWVudFBhdGggLSBUaGUgYXR0YWNobWVudCdzIHZhdWx0LXJlbGF0aXZlIHBhdGguXG4gICAqIEBwYXJhbSBub3RlUGF0aCAtIFRoZSBub3RlIHRvIGxlYXZlIG91dDogdGhlIG9uZSB3aG9zZSByZWZlcmVuY2UgaXMgYmVpbmcgcmVwb3J0ZWQuXG4gICAqIEByZXR1cm5zIFRoZSBvdGhlciBub3RlcycgcGF0aHMuXG4gICAqL1xuICBwdWJsaWMgZ2V0T3RoZXJVc2VyTm90ZVBhdGhzKGF0dGFjaG1lbnRQYXRoOiBzdHJpbmcsIG5vdGVQYXRoOiBzdHJpbmcpOiBzdHJpbmdbXSB7XG4gICAgY29uc3QgcHJvcGVyTm90ZVBhdGhzID0gdGhpcy5nZXRQcm9wZXJOb3RlUGF0aHMoYXR0YWNobWVudFBhdGgpO1xuICAgIGNvbnN0IHVzZXJOb3RlUGF0aHMgPSBbLi4udGhpcy51c2VyTm90ZVBhdGhzQnlBdHRhY2htZW50LmdldChhdHRhY2htZW50UGF0aCkgPz8gW11dO1xuICAgIHJldHVybiBbLi4ucHJvcGVyTm90ZVBhdGhzLCAuLi51c2VyTm90ZVBhdGhzLmZpbHRlcigocGF0aCkgPT4gIXByb3Blck5vdGVQYXRocy5pbmNsdWRlcyhwYXRoKSldLmZpbHRlcigocGF0aCkgPT4gcGF0aCAhPT0gbm90ZVBhdGgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBwcm9wZXIgbm90ZXMgb2YgYW4gYXR0YWNobWVudDogdGhlIG5vdGVzIHRoYXQgcmVmZXJlbmNlIGl0IGFuZCB3aG9zZSBvd24gZm9sZGVyIGhvbGRzIGl0LCBpbiB3YWxrIG9yZGVyLlxuICAgKlxuICAgKiBAcGFyYW0gYXR0YWNobWVudFBhdGggLSBUaGUgYXR0YWNobWVudCdzIHZhdWx0LXJlbGF0aXZlIHBhdGguXG4gICAqIEByZXR1cm5zIFRoZSBwcm9wZXIgbm90ZXMnIHBhdGhzLCBlbXB0eSB3aGVuIHRoZSBhdHRhY2htZW50IGhhcyBub25lLlxuICAgKi9cbiAgcHVibGljIGdldFByb3Blck5vdGVQYXRocyhhdHRhY2htZW50UGF0aDogc3RyaW5nKTogc3RyaW5nW10ge1xuICAgIHJldHVybiBbLi4udGhpcy5wcm9wZXJOb3RlUGF0aHNCeUF0dGFjaG1lbnQuZ2V0KGF0dGFjaG1lbnRQYXRoKSA/PyBbXV07XG4gIH1cblxuICAvKipcbiAgICogVGhlIGVudHJpZXMgdG8gcmVwb3J0LCBhZnRlciB0aGUgbW9kZSBpcyBhcHBsaWVkLCBncm91cGVkIGJ5IG5vdGUsIHdpdGggYSBub3RlIGxlZnQgb3V0IG9uY2Ugbm9uZSBvZiBpdHNcbiAgICogZW50cmllcyBzdXJ2aXZlLlxuICAgKlxuICAgKiBAcmV0dXJucyBUaGUgZW50cmllcyB0byByZXBvcnQuXG4gICAqL1xuICBwdWJsaWMgZ2V0UmVwb3J0ZWQoKTogTWFwPHN0cmluZywgTWlzcGxhY2VkQXR0YWNobWVudEVudHJ5W10+IHtcbiAgICBjb25zdCByZXBvcnRlZCA9IG5ldyBNYXA8c3RyaW5nLCBNaXNwbGFjZWRBdHRhY2htZW50RW50cnlbXT4oKTtcbiAgICBpZiAodGhpcy5tb2RlID09PSBFeHRlcm5hbEF0dGFjaG1lbnRMaW5rTW9kZS5JZ25vcmUpIHtcbiAgICAgIHJldHVybiByZXBvcnRlZDtcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IFtub3RlUGF0aCwgZW50cmllc10gb2YgdGhpcykge1xuICAgICAgY29uc3Qgc3Vydml2aW5nID0gdGhpcy5tb2RlID09PSBFeHRlcm5hbEF0dGFjaG1lbnRMaW5rTW9kZS5SZXBvcnRVbm93bmVkXG4gICAgICAgID8gZW50cmllcy5maWx0ZXIoKGVudHJ5KSA9PiAhdGhpcy5wcm9wZXJOb3RlUGF0aHNCeUF0dGFjaG1lbnQuaGFzKGVudHJ5LmF0dGFjaG1lbnRQYXRoKSlcbiAgICAgICAgOiBlbnRyaWVzO1xuICAgICAgaWYgKHN1cnZpdmluZy5sZW5ndGggPiAwKSB7XG4gICAgICAgIHJlcG9ydGVkLnNldChub3RlUGF0aCwgc3Vydml2aW5nKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHJlcG9ydGVkO1xuICB9XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgYSBub3RlIGlzIGEgcHJvcGVyIG5vdGUgb2YgYW4gYXR0YWNobWVudDogaXQgcmVmZXJlbmNlcyBpdCwgYW5kIGl0cyBvd24gZm9sZGVyIGhvbGRzIGl0LlxuICAgKlxuICAgKiBAcGFyYW0gYXR0YWNobWVudFBhdGggLSBUaGUgYXR0YWNobWVudCdzIHZhdWx0LXJlbGF0aXZlIHBhdGguXG4gICAqIEBwYXJhbSBub3RlUGF0aCAtIFRoZSBub3RlJ3MgdmF1bHQtcmVsYXRpdmUgcGF0aC5cbiAgICogQHJldHVybnMgYHRydWVgIHdoZW4gdGhlIG5vdGUncyBvd24gYXR0YWNobWVudCBmb2xkZXIgaG9sZHMgdGhlIGF0dGFjaG1lbnQuXG4gICAqL1xuICBwdWJsaWMgaXNQcm9wZXJOb3RlKGF0dGFjaG1lbnRQYXRoOiBzdHJpbmcsIG5vdGVQYXRoOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5wcm9wZXJOb3RlUGF0aHNCeUF0dGFjaG1lbnQuZ2V0KGF0dGFjaG1lbnRQYXRoKT8uaGFzKG5vdGVQYXRoKSA/PyBmYWxzZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWNvcmRzIHRoYXQgYW4gYXR0YWNobWVudCBzaXRzIGluIHRoZSBmb2xkZXIgY29uZmlndXJlZCBmb3IgYSBub3RlIHRoYXQgcmVmZXJlbmNlcyBpdCwgd2hpY2ggbWFrZXMgdGhhdFxuICAgKiBub3RlIGl0cyBwcm9wZXIgbm90ZS5cbiAgICpcbiAgICogQHBhcmFtIGF0dGFjaG1lbnRQYXRoIC0gVGhlIGF0dGFjaG1lbnQncyB2YXVsdC1yZWxhdGl2ZSBwYXRoLlxuICAgKiBAcGFyYW0gbm90ZVBhdGggLSBUaGUgcmVmZXJlbmNpbmcgbm90ZSB3aG9zZSBmb2xkZXIgaG9sZHMgaXQuXG4gICAqL1xuICBwdWJsaWMgbWFya0hvbWVkKGF0dGFjaG1lbnRQYXRoOiBzdHJpbmcsIG5vdGVQYXRoOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBhZGRUb1NldE1hcCh0aGlzLnByb3Blck5vdGVQYXRoc0J5QXR0YWNobWVudCwgYXR0YWNobWVudFBhdGgsIG5vdGVQYXRoKTtcbiAgICB0aGlzLmFkZFVzZXIoYXR0YWNobWVudFBhdGgsIG5vdGVQYXRoKTtcbiAgfVxufVxuXG4vKipcbiAqIEp1ZGdlcyB3aGVyZSBhbiBhdHRhY2htZW50IHNpdHMgYWdhaW5zdCB0aGUgYXR0YWNobWVudCBmb2xkZXIgb2Ygb25lIG5vdGUuXG4gKlxuICogQXNrcyB0aGUgYXR0YWNobWVudC1wYXRoIHNlYW0gb25jZSwgZm9sZGVyLW9ubHksIGZvciB0aGUgUkVBTCBhdHRhY2htZW50LCBzbyBhIGBDdXN0b20gQXR0YWNobWVudCBMb2NhdGlvbmBcbiAqIGZvbGRlciB0ZW1wbGF0ZSB0aGF0IHJlYWRzIHRoZSBhdHRhY2htZW50J3Mgb3duIG5hbWUgaXMgaG9ub3VyZWQgYW5kIG5vIG5hbWUgaXMgZ2VuZXJhdGVkLlxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgYXR0YWNobWVudCBhbmQgdGhlIG5vdGUuXG4gKiBAcmV0dXJucyBUaGUgbm90ZSdzIHByb3BlciBmb2xkZXIgZm9yIHRoZSBhdHRhY2htZW50LCBhbmQgd2hldGhlciB0aGUgYXR0YWNobWVudCBpcyBpbiBpdC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldEF0dGFjaG1lbnRQbGFjZW1lbnQocGFyYW1zOiBHZXRBdHRhY2htZW50UGxhY2VtZW50UGFyYW1zKTogUHJvbWlzZTxBdHRhY2htZW50UGxhY2VtZW50PiB7XG4gIGNvbnN0IHsgYXBwLCBhdHRhY2htZW50RmlsZSwgbm90ZVBhdGggfSA9IHBhcmFtcztcbiAgY29uc3QgcHJvcGVyQXR0YWNobWVudEZvbGRlclBhdGggPSBhd2FpdCBnZXRBdHRhY2htZW50Rm9sZGVyUGF0aEZvckF0dGFjaG1lbnQoe1xuICAgIGFwcCxcbiAgICBhdHRhY2htZW50UGF0aE9yRmlsZTogYXR0YWNobWVudEZpbGUsXG4gICAgY29udGV4dDogQXR0YWNobWVudFBhdGhDb250ZXh0LlVua25vd24sXG4gICAgbm90ZVBhdGhPckZpbGU6IG5vdGVQYXRoXG4gIH0pO1xuXG4gIC8vIEZvbGQgYXMgYGlzQXRQcm9wZXJBdHRhY2htZW50UGF0aGAgZG9lcywgc28gYSBjYXNlLWluc2Vuc2l0aXZlIGFkYXB0ZXIgZG9lcyBub3QgcmVwb3J0IGEgZm9sZGVyIHRoYXQgZGlmZmVyc1xuICAvLyBvbmx5IGluIGNhc2UuXG4gIGNvbnN0IGlzSW5zZW5zaXRpdmUgPSBnZXREYXRhQWRhcHRlckV4KGFwcCkuaW5zZW5zaXRpdmU7XG4gIHJldHVybiB7XG4gICAgaXNJblByb3BlckZvbGRlcjogZm9sZChwYXJlbnRGb2xkZXJQYXRoKGF0dGFjaG1lbnRGaWxlLnBhdGgpKSA9PT0gZm9sZChwcm9wZXJBdHRhY2htZW50Rm9sZGVyUGF0aCksXG4gICAgcHJvcGVyQXR0YWNobWVudEZvbGRlclBhdGhcbiAgfTtcblxuICBmdW5jdGlvbiBmb2xkKHZhbHVlOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBpc0luc2Vuc2l0aXZlID8gdmFsdWUudG9Mb3dlckNhc2UoKSA6IHZhbHVlO1xuICB9XG59XG5cbi8qKlxuICogSnVkZ2VzIG9uZSByZXNvbHZlZCByZWZlcmVuY2UgYW5kIHJlY29yZHMgdGhlIHZlcmRpY3QgaW4gdGhlIGluZGV4LlxuICpcbiAqIFJlY29yZHMgbm90aGluZyB1bmRlciB7QGxpbmsgRXh0ZXJuYWxBdHRhY2htZW50TGlua01vZGUuSWdub3JlfSwgZm9yIGEgbm90ZSB0aGF0IGlzIG5vdCB0cmVhdGVkIGFzIGFuXG4gKiBhdHRhY2htZW50LCBhbmQgZm9yIGFuIGlnbm9yZWQgb3Igc2hhcmVkIHBhdGguIE90aGVyd2lzZSB0aGUgcmVmZXJlbmNpbmcgbm90ZSBiZWNvbWVzIGEgcHJvcGVyIG5vdGUgb2YgdGhlXG4gKiBhdHRhY2htZW50IHdoZW4gaXRzIGZvbGRlciBob2xkcyBpdCwgYW5kIHRoZSByZWZlcmVuY2UgYmVjb21lcyBhbiBlbnRyeSB3aGVuIGl0IGRvZXMgbm90LlxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgcmVmZXJlbmNlLCBpdHMgbm90ZSwgaXRzIHRhcmdldCBhbmQgdGhlIGluZGV4LlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyBvbmNlIHRoZSB2ZXJkaWN0IGlzIHJlY29yZGVkLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcmVjb3JkQXR0YWNobWVudFBsYWNlbWVudChwYXJhbXM6IFJlY29yZEF0dGFjaG1lbnRQbGFjZW1lbnRQYXJhbXMpOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3Qge1xuICAgIGFwcCxcbiAgICBhdHRhY2htZW50RmlsZSxcbiAgICBpbmRleCxcbiAgICBpc1BhdGhJZ25vcmVkID0gaXNOb25lLFxuICAgIGlzU2hhcmVkQXR0YWNobWVudFBhdGggPSBpc05vbmUsXG4gICAgaXNUcmVhdGVkQXNBdHRhY2htZW50ID0gaXNOb25lLFxuICAgIG5vdGVQYXRoLFxuICAgIHJlZmVyZW5jZVxuICB9ID0gcGFyYW1zO1xuXG4gIGlmIChpbmRleC5tb2RlID09PSBFeHRlcm5hbEF0dGFjaG1lbnRMaW5rTW9kZS5JZ25vcmUpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBpZiAoaXNOb3RlKGF0dGFjaG1lbnRGaWxlKSAmJiAhaXNUcmVhdGVkQXNBdHRhY2htZW50KGF0dGFjaG1lbnRGaWxlLnBhdGgpKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgaWYgKGlzUGF0aElnbm9yZWQoYXR0YWNobWVudEZpbGUucGF0aCkgfHwgaXNTaGFyZWRBdHRhY2htZW50UGF0aChhdHRhY2htZW50RmlsZS5wYXRoKSkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnN0IHBsYWNlbWVudCA9IGF3YWl0IGdldEF0dGFjaG1lbnRQbGFjZW1lbnQoeyBhcHAsIGF0dGFjaG1lbnRGaWxlLCBub3RlUGF0aCB9KTtcblxuICBpZiAocGxhY2VtZW50LmlzSW5Qcm9wZXJGb2xkZXIpIHtcbiAgICBpbmRleC5tYXJrSG9tZWQoYXR0YWNobWVudEZpbGUucGF0aCwgbm90ZVBhdGgpO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGluZGV4LmFkZChub3RlUGF0aCwge1xuICAgIGF0dGFjaG1lbnRQYXRoOiBhdHRhY2htZW50RmlsZS5wYXRoLFxuICAgIHByb3BlckF0dGFjaG1lbnRGb2xkZXJQYXRoOiBwbGFjZW1lbnQucHJvcGVyQXR0YWNobWVudEZvbGRlclBhdGgsXG4gICAgcmVmZXJlbmNlXG4gIH0pO1xufVxuXG5mdW5jdGlvbiBhZGRUb1NldE1hcChtYXA6IE1hcDxzdHJpbmcsIFNldDxzdHJpbmc+Piwga2V5OiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgbGV0IHNldCA9IG1hcC5nZXQoa2V5KTtcbiAgaWYgKCFzZXQpIHtcbiAgICBzZXQgPSBuZXcgU2V0PHN0cmluZz4oKTtcbiAgICBtYXAuc2V0KGtleSwgc2V0KTtcbiAgfVxuICBzZXQuYWRkKHZhbHVlKTtcbn1cblxuZnVuY3Rpb24gaXNOb25lKCk6IGJvb2xlYW4ge1xuICByZXR1cm4gZmFsc2U7XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBZ0NBO0FBQUEsRUFDRTtBQUFBLEVBQ0E7QUFBQSxPQUNLO0FBRVA7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFDUCxTQUFTLGNBQWM7QUFLaEIsSUFBSyw2QkFBTCxrQkFBS0EsZ0NBQUw7QUFJTCxFQUFBQSw0QkFBQSxZQUFTO0FBTVQsRUFBQUEsNEJBQUEsWUFBUztBQUtULEVBQUFBLDRCQUFBLG1CQUFnQjtBQWZOLFNBQUFBO0FBQUEsR0FBQTtBQXFJTCxNQUFNLGlDQUFpQyxJQUF3QztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQVM3RSxZQUE0QixPQUFPLHVCQUFtQztBQUMzRSxVQUFNO0FBRDJCO0FBQUEsRUFFbkM7QUFBQSxFQUZtQztBQUFBLEVBUmxCLDhCQUE4QixvQkFBSSxJQUF5QjtBQUFBLEVBQzNELDRCQUE0QixvQkFBSSxJQUF5QjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBaUJuRSxJQUFJLFVBQWtCLE9BQXVDO0FBQ2xFLFFBQUksVUFBVSxLQUFLLElBQUksUUFBUTtBQUMvQixRQUFJLENBQUMsU0FBUztBQUNaLGdCQUFVLENBQUM7QUFDWCxXQUFLLElBQUksVUFBVSxPQUFPO0FBQUEsSUFDNUI7QUFDQSxZQUFRLEtBQUssS0FBSztBQUNsQixTQUFLLFFBQVEsTUFBTSxnQkFBZ0IsUUFBUTtBQUFBLEVBQzdDO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFRTyxRQUFRLGdCQUF3QixVQUF3QjtBQUM3RCxnQkFBWSxLQUFLLDJCQUEyQixnQkFBZ0IsUUFBUTtBQUFBLEVBQ3RFO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQVNPLHNCQUFzQixnQkFBd0IsVUFBNEI7QUFDL0UsVUFBTSxrQkFBa0IsS0FBSyxtQkFBbUIsY0FBYztBQUM5RCxVQUFNLGdCQUFnQixDQUFDLEdBQUcsS0FBSywwQkFBMEIsSUFBSSxjQUFjLEtBQUssQ0FBQyxDQUFDO0FBQ2xGLFdBQU8sQ0FBQyxHQUFHLGlCQUFpQixHQUFHLGNBQWMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxnQkFBZ0IsU0FBUyxJQUFJLENBQUMsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxTQUFTLFNBQVMsUUFBUTtBQUFBLEVBQ3BJO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFRTyxtQkFBbUIsZ0JBQWtDO0FBQzFELFdBQU8sQ0FBQyxHQUFHLEtBQUssNEJBQTRCLElBQUksY0FBYyxLQUFLLENBQUMsQ0FBQztBQUFBLEVBQ3ZFO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFRTyxjQUF1RDtBQUM1RCxVQUFNLFdBQVcsb0JBQUksSUFBd0M7QUFDN0QsUUFBSSxLQUFLLFNBQVMsdUJBQW1DO0FBQ25ELGFBQU87QUFBQSxJQUNUO0FBRUEsZUFBVyxDQUFDLFVBQVUsT0FBTyxLQUFLLE1BQU07QUFDdEMsWUFBTSxZQUFZLEtBQUssU0FBUyxzQ0FDNUIsUUFBUSxPQUFPLENBQUMsVUFBVSxDQUFDLEtBQUssNEJBQTRCLElBQUksTUFBTSxjQUFjLENBQUMsSUFDckY7QUFDSixVQUFJLFVBQVUsU0FBUyxHQUFHO0FBQ3hCLGlCQUFTLElBQUksVUFBVSxTQUFTO0FBQUEsTUFDbEM7QUFBQSxJQUNGO0FBQ0EsV0FBTztBQUFBLEVBQ1Q7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBU08sYUFBYSxnQkFBd0IsVUFBMkI7QUFDckUsV0FBTyxLQUFLLDRCQUE0QixJQUFJLGNBQWMsR0FBRyxJQUFJLFFBQVEsS0FBSztBQUFBLEVBQ2hGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQVNPLFVBQVUsZ0JBQXdCLFVBQXdCO0FBQy9ELGdCQUFZLEtBQUssNkJBQTZCLGdCQUFnQixRQUFRO0FBQ3RFLFNBQUssUUFBUSxnQkFBZ0IsUUFBUTtBQUFBLEVBQ3ZDO0FBQ0Y7QUFXQSxlQUFzQix1QkFBdUIsUUFBb0U7QUFDL0csUUFBTSxFQUFFLEtBQUssZ0JBQWdCLFNBQVMsSUFBSTtBQUMxQyxRQUFNLDZCQUE2QixNQUFNLHFDQUFxQztBQUFBLElBQzVFO0FBQUEsSUFDQSxzQkFBc0I7QUFBQSxJQUN0QixTQUFTLHNCQUFzQjtBQUFBLElBQy9CLGdCQUFnQjtBQUFBLEVBQ2xCLENBQUM7QUFJRCxRQUFNLGdCQUFnQixpQkFBaUIsR0FBRyxFQUFFO0FBQzVDLFNBQU87QUFBQSxJQUNMLGtCQUFrQixLQUFLLGlCQUFpQixlQUFlLElBQUksQ0FBQyxNQUFNLEtBQUssMEJBQTBCO0FBQUEsSUFDakc7QUFBQSxFQUNGO0FBRUEsV0FBUyxLQUFLLE9BQXVCO0FBQ25DLFdBQU8sZ0JBQWdCLE1BQU0sWUFBWSxJQUFJO0FBQUEsRUFDL0M7QUFDRjtBQVlBLGVBQXNCLDBCQUEwQixRQUF3RDtBQUN0RyxRQUFNO0FBQUEsSUFDSjtBQUFBLElBQ0E7QUFBQSxJQUNBO0FBQUEsSUFDQSxnQkFBZ0I7QUFBQSxJQUNoQix5QkFBeUI7QUFBQSxJQUN6Qix3QkFBd0I7QUFBQSxJQUN4QjtBQUFBLElBQ0E7QUFBQSxFQUNGLElBQUk7QUFFSixNQUFJLE1BQU0sU0FBUyx1QkFBbUM7QUFDcEQ7QUFBQSxFQUNGO0FBRUEsTUFBSSxPQUFPLGNBQWMsS0FBSyxDQUFDLHNCQUFzQixlQUFlLElBQUksR0FBRztBQUN6RTtBQUFBLEVBQ0Y7QUFFQSxNQUFJLGNBQWMsZUFBZSxJQUFJLEtBQUssdUJBQXVCLGVBQWUsSUFBSSxHQUFHO0FBQ3JGO0FBQUEsRUFDRjtBQUVBLFFBQU0sWUFBWSxNQUFNLHVCQUF1QixFQUFFLEtBQUssZ0JBQWdCLFNBQVMsQ0FBQztBQUVoRixNQUFJLFVBQVUsa0JBQWtCO0FBQzlCLFVBQU0sVUFBVSxlQUFlLE1BQU0sUUFBUTtBQUM3QztBQUFBLEVBQ0Y7QUFFQSxRQUFNLElBQUksVUFBVTtBQUFBLElBQ2xCLGdCQUFnQixlQUFlO0FBQUEsSUFDL0IsNEJBQTRCLFVBQVU7QUFBQSxJQUN0QztBQUFBLEVBQ0YsQ0FBQztBQUNIO0FBRUEsU0FBUyxZQUFZLEtBQStCLEtBQWEsT0FBcUI7QUFDcEYsTUFBSSxNQUFNLElBQUksSUFBSSxHQUFHO0FBQ3JCLE1BQUksQ0FBQyxLQUFLO0FBQ1IsVUFBTSxvQkFBSSxJQUFZO0FBQ3RCLFFBQUksSUFBSSxLQUFLLEdBQUc7QUFBQSxFQUNsQjtBQUNBLE1BQUksSUFBSSxLQUFLO0FBQ2Y7QUFFQSxTQUFTLFNBQWtCO0FBQ3pCLFNBQU87QUFDVDsiLCJuYW1lcyI6WyJFeHRlcm5hbEF0dGFjaG1lbnRMaW5rTW9kZSJdfQ==
@@ -0,0 +1,38 @@
1
+ /// <reference path="../library-references.d.mts" />
2
+ /**
3
+ * @file
4
+ *
5
+ * A modal that shows a text for the user to copy by hand, for when writing it to the clipboard failed.
6
+ */
7
+ import type { ModalParamsBase } from './modal.mjs';
8
+ /**
9
+ * Parameters for {@link copyTextManually}.
10
+ */
11
+ export interface CopyTextManuallyParams extends ModalParamsBase {
12
+ /**
13
+ * What the user is asked to do with the text.
14
+ */
15
+ readonly message: string;
16
+ /**
17
+ * A text for the button that continues.
18
+ */
19
+ readonly okButtonText?: string;
20
+ /**
21
+ * The text to copy.
22
+ */
23
+ readonly text: string;
24
+ /**
25
+ * A title of the modal.
26
+ *
27
+ * @default `''`
28
+ */
29
+ readonly title?: string;
30
+ }
31
+ /**
32
+ * Shows a read-only text, selected when focused, for the user to copy by hand, with a button that
33
+ * continues and one that cancels.
34
+ *
35
+ * @param params - The parameters.
36
+ * @returns A {@link Promise} that resolves with whether the user continued.
37
+ */
38
+ export declare function copyTextManually(params: CopyTextManuallyParams): Promise<boolean>;
@@ -0,0 +1,99 @@
1
+ /*
2
+ THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
3
+ if you want to view the source, please visit the github repository of this plugin
4
+ */
5
+ (function () {
6
+ function ensureBrowserProcess() {
7
+ const browserProcess = {
8
+ browser: true,
9
+ cwd() {
10
+ return "/";
11
+ },
12
+ env: {},
13
+ platform: "android"
14
+ };
15
+ const existingProcess = globalThis.process;
16
+ if (!existingProcess) {
17
+ globalThis.process = browserProcess;
18
+ return;
19
+ }
20
+ if (existingProcess.versions?.node) {
21
+ return;
22
+ }
23
+ const existingProcessRecord = existingProcess;
24
+ for (const [key, value] of Object.entries(browserProcess)) {
25
+ existingProcessRecord[key] ??= value;
26
+ }
27
+ existingProcessRecord["browser"] = true;
28
+ }
29
+
30
+ ensureBrowserProcess();
31
+ })();
32
+
33
+ import {
34
+ ButtonComponent,
35
+ TextAreaComponent
36
+ } from "obsidian";
37
+ import { CssClass } from "../css-class.mjs";
38
+ import { t } from "../i18n/i18n.mjs";
39
+ import {
40
+ ModalBase,
41
+ showModal
42
+ } from "./modal.mjs";
43
+ const TEXT_AREA_ROWS = 12;
44
+ class CopyTextManuallyModal extends ModalBase {
45
+ isConfirmed = false;
46
+ message;
47
+ okButtonText;
48
+ text;
49
+ title;
50
+ constructor(params) {
51
+ super(params);
52
+ this.addCssClasses(CssClass.CopyTextManuallyModal);
53
+ this.message = params.message;
54
+ this.okButtonText = params.okButtonText ?? t(($) => $.obsidianLib.buttons.ok);
55
+ this.text = params.text;
56
+ this.title = params.title ?? "";
57
+ }
58
+ onClose() {
59
+ this.promiseResolve(this.isConfirmed);
60
+ }
61
+ onOpen() {
62
+ this.titleEl.setText(this.title);
63
+ this.contentEl.createEl("p", { text: this.message });
64
+ const textArea = new TextAreaComponent(this.contentEl);
65
+ textArea.setValue(this.text);
66
+ textArea.inputEl.readOnly = true;
67
+ textArea.inputEl.rows = TEXT_AREA_ROWS;
68
+ textArea.inputEl.addClass(CssClass.CopyTextManuallyText);
69
+ textArea.inputEl.addEventListener("focus", () => {
70
+ textArea.inputEl.select();
71
+ });
72
+ const buttonContainerEl = this.contentEl.createDiv({ cls: "modal-button-container" });
73
+ const okButton = new ButtonComponent(buttonContainerEl);
74
+ okButton.setButtonText(this.okButtonText);
75
+ okButton.setCta();
76
+ okButton.onClick(() => {
77
+ this.isConfirmed = true;
78
+ this.close();
79
+ });
80
+ okButton.setClass(CssClass.OkButton);
81
+ const cancelButton = new ButtonComponent(buttonContainerEl);
82
+ cancelButton.setButtonText(t(($) => $.obsidianLib.buttons.cancel));
83
+ cancelButton.onClick(this.close.bind(this));
84
+ cancelButton.setClass(CssClass.CancelButton);
85
+ textArea.inputEl.focus();
86
+ }
87
+ }
88
+ async function copyTextManually(params) {
89
+ return await showModal(
90
+ (promiseResolve) => new CopyTextManuallyModal({
91
+ ...params,
92
+ promiseResolve
93
+ })
94
+ );
95
+ }
96
+ export {
97
+ copyTextManually
98
+ };
99
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9tb2RhbHMvY29weS10ZXh0LW1hbnVhbGx5LnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBBIG1vZGFsIHRoYXQgc2hvd3MgYSB0ZXh0IGZvciB0aGUgdXNlciB0byBjb3B5IGJ5IGhhbmQsIGZvciB3aGVuIHdyaXRpbmcgaXQgdG8gdGhlIGNsaXBib2FyZCBmYWlsZWQuXG4gKi9cblxuaW1wb3J0IHtcbiAgQnV0dG9uQ29tcG9uZW50LFxuICBUZXh0QXJlYUNvbXBvbmVudFxufSBmcm9tICdvYnNpZGlhbic7XG5cbmltcG9ydCB0eXBlIHtcbiAgTW9kYWxCYXNlQ29uc3RydWN0b3JQYXJhbXMsXG4gIE1vZGFsUGFyYW1zQmFzZVxufSBmcm9tICcuL21vZGFsLnRzJztcblxuaW1wb3J0IHsgQ3NzQ2xhc3MgfSBmcm9tICcuLi9jc3MtY2xhc3MudHMnO1xuaW1wb3J0IHsgdCB9IGZyb20gJy4uL2kxOG4vaTE4bi50cyc7XG5pbXBvcnQge1xuICBNb2RhbEJhc2UsXG4gIHNob3dNb2RhbFxufSBmcm9tICcuL21vZGFsLnRzJztcblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciB7QGxpbmsgY29weVRleHRNYW51YWxseX0uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29weVRleHRNYW51YWxseVBhcmFtcyBleHRlbmRzIE1vZGFsUGFyYW1zQmFzZSB7XG4gIC8qKlxuICAgKiBXaGF0IHRoZSB1c2VyIGlzIGFza2VkIHRvIGRvIHdpdGggdGhlIHRleHQuXG4gICAqL1xuICByZWFkb25seSBtZXNzYWdlOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEEgdGV4dCBmb3IgdGhlIGJ1dHRvbiB0aGF0IGNvbnRpbnVlcy5cbiAgICovXG4gIHJlYWRvbmx5IG9rQnV0dG9uVGV4dD86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHRleHQgdG8gY29weS5cbiAgICovXG4gIHJlYWRvbmx5IHRleHQ6IHN0cmluZztcblxuICAvKipcbiAgICogQSB0aXRsZSBvZiB0aGUgbW9kYWwuXG4gICAqXG4gICAqIEBkZWZhdWx0IGAnJ2BcbiAgICovXG4gIHJlYWRvbmx5IHRpdGxlPzogc3RyaW5nO1xufVxuXG5jb25zdCBURVhUX0FSRUFfUk9XUyA9IDEyO1xuXG50eXBlIENvcHlUZXh0TWFudWFsbHlNb2RhbENvbnN0cnVjdG9yUGFyYW1zID0gQ29weVRleHRNYW51YWxseVBhcmFtcyAmIE1vZGFsQmFzZUNvbnN0cnVjdG9yUGFyYW1zPGJvb2xlYW4+O1xuXG5jbGFzcyBDb3B5VGV4dE1hbnVhbGx5TW9kYWwgZXh0ZW5kcyBNb2RhbEJhc2U8Ym9vbGVhbj4ge1xuICBwcml2YXRlIGlzQ29uZmlybWVkID0gZmFsc2U7XG4gIHByaXZhdGUgcmVhZG9ubHkgbWVzc2FnZTogc3RyaW5nO1xuICBwcml2YXRlIHJlYWRvbmx5IG9rQnV0dG9uVGV4dDogc3RyaW5nO1xuICBwcml2YXRlIHJlYWRvbmx5IHRleHQ6IHN0cmluZztcbiAgcHJpdmF0ZSByZWFkb25seSB0aXRsZTogc3RyaW5nO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihwYXJhbXM6IENvcHlUZXh0TWFudWFsbHlNb2RhbENvbnN0cnVjdG9yUGFyYW1zKSB7XG4gICAgc3VwZXIocGFyYW1zKTtcbiAgICB0aGlzLmFkZENzc0NsYXNzZXMoQ3NzQ2xhc3MuQ29weVRleHRNYW51YWxseU1vZGFsKTtcbiAgICB0aGlzLm1lc3NhZ2UgPSBwYXJhbXMubWVzc2FnZTtcbiAgICB0aGlzLm9rQnV0dG9uVGV4dCA9IHBhcmFtcy5va0J1dHRvblRleHQgPz8gdCgoJCkgPT4gJC5vYnNpZGlhbkxpYi5idXR0b25zLm9rKTtcbiAgICB0aGlzLnRleHQgPSBwYXJhbXMudGV4dDtcbiAgICB0aGlzLnRpdGxlID0gcGFyYW1zLnRpdGxlID8/ICcnO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIG9uQ2xvc2UoKTogdm9pZCB7XG4gICAgdGhpcy5wcm9taXNlUmVzb2x2ZSh0aGlzLmlzQ29uZmlybWVkKTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBvbk9wZW4oKTogdm9pZCB7XG4gICAgdGhpcy50aXRsZUVsLnNldFRleHQodGhpcy50aXRsZSk7XG4gICAgdGhpcy5jb250ZW50RWwuY3JlYXRlRWwoJ3AnLCB7IHRleHQ6IHRoaXMubWVzc2FnZSB9KTtcblxuICAgIGNvbnN0IHRleHRBcmVhID0gbmV3IFRleHRBcmVhQ29tcG9uZW50KHRoaXMuY29udGVudEVsKTtcbiAgICB0ZXh0QXJlYS5zZXRWYWx1ZSh0aGlzLnRleHQpO1xuICAgIHRleHRBcmVhLmlucHV0RWwucmVhZE9ubHkgPSB0cnVlO1xuICAgIHRleHRBcmVhLmlucHV0RWwucm93cyA9IFRFWFRfQVJFQV9ST1dTO1xuICAgIHRleHRBcmVhLmlucHV0RWwuYWRkQ2xhc3MoQ3NzQ2xhc3MuQ29weVRleHRNYW51YWxseVRleHQpO1xuICAgIHRleHRBcmVhLmlucHV0RWwuYWRkRXZlbnRMaXN0ZW5lcignZm9jdXMnLCAoKSA9PiB7XG4gICAgICB0ZXh0QXJlYS5pbnB1dEVsLnNlbGVjdCgpO1xuICAgIH0pO1xuXG4gICAgY29uc3QgYnV0dG9uQ29udGFpbmVyRWwgPSB0aGlzLmNvbnRlbnRFbC5jcmVhdGVEaXYoeyBjbHM6ICdtb2RhbC1idXR0b24tY29udGFpbmVyJyB9KTtcbiAgICBjb25zdCBva0J1dHRvbiA9IG5ldyBCdXR0b25Db21wb25lbnQoYnV0dG9uQ29udGFpbmVyRWwpO1xuICAgIG9rQnV0dG9uLnNldEJ1dHRvblRleHQodGhpcy5va0J1dHRvblRleHQpO1xuICAgIG9rQnV0dG9uLnNldEN0YSgpO1xuICAgIG9rQnV0dG9uLm9uQ2xpY2soKCkgPT4ge1xuICAgICAgdGhpcy5pc0NvbmZpcm1lZCA9IHRydWU7XG4gICAgICB0aGlzLmNsb3NlKCk7XG4gICAgfSk7XG4gICAgb2tCdXR0b24uc2V0Q2xhc3MoQ3NzQ2xhc3MuT2tCdXR0b24pO1xuXG4gICAgY29uc3QgY2FuY2VsQnV0dG9uID0gbmV3IEJ1dHRvbkNvbXBvbmVudChidXR0b25Db250YWluZXJFbCk7XG4gICAgY2FuY2VsQnV0dG9uLnNldEJ1dHRvblRleHQodCgoJCkgPT4gJC5vYnNpZGlhbkxpYi5idXR0b25zLmNhbmNlbCkpO1xuICAgIGNhbmNlbEJ1dHRvbi5vbkNsaWNrKHRoaXMuY2xvc2UuYmluZCh0aGlzKSk7XG4gICAgY2FuY2VsQnV0dG9uLnNldENsYXNzKENzc0NsYXNzLkNhbmNlbEJ1dHRvbik7XG5cbiAgICB0ZXh0QXJlYS5pbnB1dEVsLmZvY3VzKCk7XG4gIH1cbn1cblxuLyoqXG4gKiBTaG93cyBhIHJlYWQtb25seSB0ZXh0LCBzZWxlY3RlZCB3aGVuIGZvY3VzZWQsIGZvciB0aGUgdXNlciB0byBjb3B5IGJ5IGhhbmQsIHdpdGggYSBidXR0b24gdGhhdFxuICogY29udGludWVzIGFuZCBvbmUgdGhhdCBjYW5jZWxzLlxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgcGFyYW1ldGVycy5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgd2l0aCB3aGV0aGVyIHRoZSB1c2VyIGNvbnRpbnVlZC5cbiAqL1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHVuaWNvcm4vY29uc2lzdGVudC1ib29sZWFuLW5hbWUgLS0gYGJvb2xlYW5gIGdpdmVzIGJldHRlciBEWCB0aGFuIGVudW0sIGFzIGluIGBjb25maXJtYC5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBjb3B5VGV4dE1hbnVhbGx5KHBhcmFtczogQ29weVRleHRNYW51YWxseVBhcmFtcyk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICByZXR1cm4gYXdhaXQgc2hvd01vZGFsPGJvb2xlYW4+KChwcm9taXNlUmVzb2x2ZSkgPT5cbiAgICBuZXcgQ29weVRleHRNYW51YWxseU1vZGFsKHtcbiAgICAgIC4uLnBhcmFtcyxcbiAgICAgIHByb21pc2VSZXNvbHZlXG4gICAgfSlcbiAgKTtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFNQTtBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsT0FDSztBQU9QLFNBQVMsZ0JBQWdCO0FBQ3pCLFNBQVMsU0FBUztBQUNsQjtBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsT0FDSztBQTZCUCxNQUFNLGlCQUFpQjtBQUl2QixNQUFNLDhCQUE4QixVQUFtQjtBQUFBLEVBQzdDLGNBQWM7QUFBQSxFQUNMO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFFVixZQUFZLFFBQWdEO0FBQ2pFLFVBQU0sTUFBTTtBQUNaLFNBQUssY0FBYyxTQUFTLHFCQUFxQjtBQUNqRCxTQUFLLFVBQVUsT0FBTztBQUN0QixTQUFLLGVBQWUsT0FBTyxnQkFBZ0IsRUFBRSxDQUFDLE1BQU0sRUFBRSxZQUFZLFFBQVEsRUFBRTtBQUM1RSxTQUFLLE9BQU8sT0FBTztBQUNuQixTQUFLLFFBQVEsT0FBTyxTQUFTO0FBQUEsRUFDL0I7QUFBQSxFQUVnQixVQUFnQjtBQUM5QixTQUFLLGVBQWUsS0FBSyxXQUFXO0FBQUEsRUFDdEM7QUFBQSxFQUVnQixTQUFlO0FBQzdCLFNBQUssUUFBUSxRQUFRLEtBQUssS0FBSztBQUMvQixTQUFLLFVBQVUsU0FBUyxLQUFLLEVBQUUsTUFBTSxLQUFLLFFBQVEsQ0FBQztBQUVuRCxVQUFNLFdBQVcsSUFBSSxrQkFBa0IsS0FBSyxTQUFTO0FBQ3JELGFBQVMsU0FBUyxLQUFLLElBQUk7QUFDM0IsYUFBUyxRQUFRLFdBQVc7QUFDNUIsYUFBUyxRQUFRLE9BQU87QUFDeEIsYUFBUyxRQUFRLFNBQVMsU0FBUyxvQkFBb0I7QUFDdkQsYUFBUyxRQUFRLGlCQUFpQixTQUFTLE1BQU07QUFDL0MsZUFBUyxRQUFRLE9BQU87QUFBQSxJQUMxQixDQUFDO0FBRUQsVUFBTSxvQkFBb0IsS0FBSyxVQUFVLFVBQVUsRUFBRSxLQUFLLHlCQUF5QixDQUFDO0FBQ3BGLFVBQU0sV0FBVyxJQUFJLGdCQUFnQixpQkFBaUI7QUFDdEQsYUFBUyxjQUFjLEtBQUssWUFBWTtBQUN4QyxhQUFTLE9BQU87QUFDaEIsYUFBUyxRQUFRLE1BQU07QUFDckIsV0FBSyxjQUFjO0FBQ25CLFdBQUssTUFBTTtBQUFBLElBQ2IsQ0FBQztBQUNELGFBQVMsU0FBUyxTQUFTLFFBQVE7QUFFbkMsVUFBTSxlQUFlLElBQUksZ0JBQWdCLGlCQUFpQjtBQUMxRCxpQkFBYSxjQUFjLEVBQUUsQ0FBQyxNQUFNLEVBQUUsWUFBWSxRQUFRLE1BQU0sQ0FBQztBQUNqRSxpQkFBYSxRQUFRLEtBQUssTUFBTSxLQUFLLElBQUksQ0FBQztBQUMxQyxpQkFBYSxTQUFTLFNBQVMsWUFBWTtBQUUzQyxhQUFTLFFBQVEsTUFBTTtBQUFBLEVBQ3pCO0FBQ0Y7QUFVQSxlQUFzQixpQkFBaUIsUUFBa0Q7QUFDdkYsU0FBTyxNQUFNO0FBQUEsSUFBbUIsQ0FBQyxtQkFDL0IsSUFBSSxzQkFBc0I7QUFBQSxNQUN4QixHQUFHO0FBQUEsTUFDSDtBQUFBLElBQ0YsQ0FBQztBQUFBLEVBQ0g7QUFDRjsiLCJuYW1lcyI6W119
@@ -2,10 +2,12 @@
2
2
  export * as 'alert' from './alert.mjs';
3
3
  export * as 'code-block-builder' from './code-block-builder.mjs';
4
4
  export * as 'confirm' from './confirm.mjs';
5
+ export * as 'copy-text-manually' from './copy-text-manually.mjs';
5
6
  export * as 'minimizable-modal' from './minimizable-modal.mjs';
6
7
  export * as 'modal-command-builder' from './modal-command-builder.mjs';
7
8
  export * as 'modal' from './modal.mjs';
8
9
  export * as 'prompt' from './prompt.mjs';
10
+ export * as 'review-bug-report-diagnostics' from './review-bug-report-diagnostics.mjs';
9
11
  export * as 'select-item' from './select-item.mjs';
10
12
  export * as 'select-option' from './select-option.mjs';
11
13
  export * as 'suggest-modal-command-builder' from './suggest-modal-command-builder.mjs';
@@ -6,10 +6,12 @@ if you want to view the source, please visit the github repository of this plugi
6
6
  import * as alert from "./alert.mjs";
7
7
  import * as code_block_builder from "./code-block-builder.mjs";
8
8
  import * as confirm from "./confirm.mjs";
9
+ import * as copy_text_manually from "./copy-text-manually.mjs";
9
10
  import * as minimizable_modal from "./minimizable-modal.mjs";
10
11
  import * as modal_command_builder from "./modal-command-builder.mjs";
11
12
  import * as modal from "./modal.mjs";
12
13
  import * as prompt from "./prompt.mjs";
14
+ import * as review_bug_report_diagnostics from "./review-bug-report-diagnostics.mjs";
13
15
  import * as select_item from "./select-item.mjs";
14
16
  import * as select_option from "./select-option.mjs";
15
17
  import * as suggest_modal_command_builder from "./suggest-modal-command-builder.mjs";
@@ -17,12 +19,14 @@ export {
17
19
  alert,
18
20
  code_block_builder as "code-block-builder",
19
21
  confirm,
22
+ copy_text_manually as "copy-text-manually",
20
23
  minimizable_modal as "minimizable-modal",
21
24
  modal,
22
25
  modal_command_builder as "modal-command-builder",
23
26
  prompt,
27
+ review_bug_report_diagnostics as "review-bug-report-diagnostics",
24
28
  select_item as "select-item",
25
29
  select_option as "select-option",
26
30
  suggest_modal_command_builder as "suggest-modal-command-builder"
27
31
  };
28
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL21vZGFscy9pbmRleC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyogVEhJUyBJUyBBIEdFTkVSQVRFRC9CVU5ETEVEIEZJTEUgQlkgQlVJTEQgU0NSSVBUICovXG5cbmV4cG9ydCAqIGFzICdhbGVydCcgZnJvbSAnLi9hbGVydC50cyc7XG5leHBvcnQgKiBhcyAnY29kZS1ibG9jay1idWlsZGVyJyBmcm9tICcuL2NvZGUtYmxvY2stYnVpbGRlci50cyc7XG5leHBvcnQgKiBhcyAnY29uZmlybScgZnJvbSAnLi9jb25maXJtLnRzJztcbmV4cG9ydCAqIGFzICdtaW5pbWl6YWJsZS1tb2RhbCcgZnJvbSAnLi9taW5pbWl6YWJsZS1tb2RhbC50cyc7XG5leHBvcnQgKiBhcyAnbW9kYWwtY29tbWFuZC1idWlsZGVyJyBmcm9tICcuL21vZGFsLWNvbW1hbmQtYnVpbGRlci50cyc7XG5leHBvcnQgKiBhcyAnbW9kYWwnIGZyb20gJy4vbW9kYWwudHMnO1xuZXhwb3J0ICogYXMgJ3Byb21wdCcgZnJvbSAnLi9wcm9tcHQudHMnO1xuZXhwb3J0ICogYXMgJ3NlbGVjdC1pdGVtJyBmcm9tICcuL3NlbGVjdC1pdGVtLnRzJztcbmV4cG9ydCAqIGFzICdzZWxlY3Qtb3B0aW9uJyBmcm9tICcuL3NlbGVjdC1vcHRpb24udHMnO1xuZXhwb3J0ICogYXMgJ3N1Z2dlc3QtbW9kYWwtY29tbWFuZC1idWlsZGVyJyBmcm9tICcuL3N1Z2dlc3QtbW9kYWwtY29tbWFuZC1idWlsZGVyLnRzJztcbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7O0FBRUEsWUFBWSxXQUFhO0FBQ3pCLFlBQVlBLHdCQUEwQjtBQUN0QyxZQUFZLGFBQWU7QUFDM0IsWUFBWUMsdUJBQXlCO0FBQ3JDLFlBQVlDLDJCQUE2QjtBQUN6QyxZQUFZLFdBQWE7QUFDekIsWUFBWSxZQUFjO0FBQzFCLFlBQVlDLGlCQUFtQjtBQUMvQixZQUFZQyxtQkFBcUI7QUFDakMsWUFBWUMsbUNBQXFDOyIsCiAgIm5hbWVzIjogWyJjb2RlLWJsb2NrLWJ1aWxkZXIiLCAibWluaW1pemFibGUtbW9kYWwiLCAibW9kYWwtY29tbWFuZC1idWlsZGVyIiwgInNlbGVjdC1pdGVtIiwgInNlbGVjdC1vcHRpb24iLCAic3VnZ2VzdC1tb2RhbC1jb21tYW5kLWJ1aWxkZXIiXQp9Cg==
32
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL21vZGFscy9pbmRleC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyogVEhJUyBJUyBBIEdFTkVSQVRFRC9CVU5ETEVEIEZJTEUgQlkgQlVJTEQgU0NSSVBUICovXG5cbmV4cG9ydCAqIGFzICdhbGVydCcgZnJvbSAnLi9hbGVydC50cyc7XG5leHBvcnQgKiBhcyAnY29kZS1ibG9jay1idWlsZGVyJyBmcm9tICcuL2NvZGUtYmxvY2stYnVpbGRlci50cyc7XG5leHBvcnQgKiBhcyAnY29uZmlybScgZnJvbSAnLi9jb25maXJtLnRzJztcbmV4cG9ydCAqIGFzICdjb3B5LXRleHQtbWFudWFsbHknIGZyb20gJy4vY29weS10ZXh0LW1hbnVhbGx5LnRzJztcbmV4cG9ydCAqIGFzICdtaW5pbWl6YWJsZS1tb2RhbCcgZnJvbSAnLi9taW5pbWl6YWJsZS1tb2RhbC50cyc7XG5leHBvcnQgKiBhcyAnbW9kYWwtY29tbWFuZC1idWlsZGVyJyBmcm9tICcuL21vZGFsLWNvbW1hbmQtYnVpbGRlci50cyc7XG5leHBvcnQgKiBhcyAnbW9kYWwnIGZyb20gJy4vbW9kYWwudHMnO1xuZXhwb3J0ICogYXMgJ3Byb21wdCcgZnJvbSAnLi9wcm9tcHQudHMnO1xuZXhwb3J0ICogYXMgJ3Jldmlldy1idWctcmVwb3J0LWRpYWdub3N0aWNzJyBmcm9tICcuL3Jldmlldy1idWctcmVwb3J0LWRpYWdub3N0aWNzLnRzJztcbmV4cG9ydCAqIGFzICdzZWxlY3QtaXRlbScgZnJvbSAnLi9zZWxlY3QtaXRlbS50cyc7XG5leHBvcnQgKiBhcyAnc2VsZWN0LW9wdGlvbicgZnJvbSAnLi9zZWxlY3Qtb3B0aW9uLnRzJztcbmV4cG9ydCAqIGFzICdzdWdnZXN0LW1vZGFsLWNvbW1hbmQtYnVpbGRlcicgZnJvbSAnLi9zdWdnZXN0LW1vZGFsLWNvbW1hbmQtYnVpbGRlci50cyc7XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7OztBQUVBLFlBQVksV0FBYTtBQUN6QixZQUFZQSx3QkFBMEI7QUFDdEMsWUFBWSxhQUFlO0FBQzNCLFlBQVlDLHdCQUEwQjtBQUN0QyxZQUFZQyx1QkFBeUI7QUFDckMsWUFBWUMsMkJBQTZCO0FBQ3pDLFlBQVksV0FBYTtBQUN6QixZQUFZLFlBQWM7QUFDMUIsWUFBWUMsbUNBQXFDO0FBQ2pELFlBQVlDLGlCQUFtQjtBQUMvQixZQUFZQyxtQkFBcUI7QUFDakMsWUFBWUMsbUNBQXFDOyIsCiAgIm5hbWVzIjogWyJjb2RlLWJsb2NrLWJ1aWxkZXIiLCAiY29weS10ZXh0LW1hbnVhbGx5IiwgIm1pbmltaXphYmxlLW1vZGFsIiwgIm1vZGFsLWNvbW1hbmQtYnVpbGRlciIsICJyZXZpZXctYnVnLXJlcG9ydC1kaWFnbm9zdGljcyIsICJzZWxlY3QtaXRlbSIsICJzZWxlY3Qtb3B0aW9uIiwgInN1Z2dlc3QtbW9kYWwtY29tbWFuZC1idWlsZGVyIl0KfQo=
@@ -73,7 +73,7 @@ export interface PromptParams extends ModalParamsBase {
73
73
  * @param value - The input value to validate.
74
74
  * @returns an error message if the value is invalid, or `null` if the value is valid.
75
75
  */
76
- readonly valueValidator?: (value: string) => Promisable<MaybeReturn<string>>;
76
+ readonly valueValidator?: (value: string) => Promisable<MaybeReturn<null | string>>;
77
77
  }
78
78
  /**
79
79
  * Displays a prompt modal in Obsidian to get user input.
@@ -156,4 +156,4 @@ async function prompt(params) {
156
156
  export {
157
157
  prompt
158
158
  };
159
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9tb2RhbHMvcHJvbXB0LnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBVdGlsaXR5IGZvciBkaXNwbGF5aW5nIGEgcHJvbXB0IG1vZGFsIGluIE9ic2lkaWFuLlxuICpcbiAqIFRoaXMgbW9kdWxlIGV4cG9ydHMgYSBmdW5jdGlvbiB0byBkaXNwbGF5IGEgbW9kYWwgdGhhdCBwcm9tcHRzIHRoZSB1c2VyIGZvciBpbnB1dC4gVGhlIG1vZGFsIGluY2x1ZGVzIFwiT0tcIiBhbmQgXCJDYW5jZWxcIiBidXR0b25zLlxuICovXG5cbmltcG9ydCB0eXBlIHsgTWF5YmVSZXR1cm4gfSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvdHlwZSc7XG5pbXBvcnQgdHlwZSB7IFByb21pc2FibGUgfSBmcm9tICd0eXBlLWZlc3QnO1xuXG5pbXBvcnQge1xuICBjb252ZXJ0QXN5bmNUb1N5bmMsXG4gIGludm9rZUFzeW5jU2FmZWx5XG59IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi9hc3luYyc7XG5pbXBvcnQgeyBub29wIH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL2Z1bmN0aW9uJztcbmltcG9ydCB7IG5vcm1hbGl6ZU9wdGlvbmFsUHJvcGVydGllcyB9IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi9vYmplY3QtdXRpbHMnO1xuaW1wb3J0IHtcbiAgQnV0dG9uQ29tcG9uZW50LFxuICBUZXh0Q29tcG9uZW50XG59IGZyb20gJ29ic2lkaWFuJztcblxuaW1wb3J0IHR5cGUge1xuICBNb2RhbENvbW1hbmRCdWlsZGVyLFxuICBNb2RhbENvbW1hbmRCdWlsZGVyQnVpbGRPcHRpb25zLFxuICBNb2RhbENvbW1hbmRzUmVuZGVyTW9kZVxufSBmcm9tICcuL21vZGFsLWNvbW1hbmQtYnVpbGRlci50cyc7XG5pbXBvcnQgdHlwZSB7XG4gIE1vZGFsQmFzZUNvbnN0cnVjdG9yUGFyYW1zLFxuICBNb2RhbFBhcmFtc0Jhc2Vcbn0gZnJvbSAnLi9tb2RhbC50cyc7XG5cbmltcG9ydCB7IENzc0NsYXNzIH0gZnJvbSAnLi4vY3NzLWNsYXNzLnRzJztcbmltcG9ydCB7IGFwcGx5U3BlbGxjaGVja01vZGUgfSBmcm9tICcuLi9odG1sLWVsZW1lbnQudHMnO1xuaW1wb3J0IHsgdCB9IGZyb20gJy4uL2kxOG4vaTE4bi50cyc7XG5pbXBvcnQgeyBTcGVsbGNoZWNrTW9kZSB9IGZyb20gJy4uL29ic2lkaWFuLXNldHRpbmdzLnRzJztcbmltcG9ydCB7XG4gIE1vZGFsQmFzZSxcbiAgc2hvd01vZGFsXG59IGZyb20gJy4vbW9kYWwudHMnO1xuXG4vKipcbiAqIE9wdGlvbnMgZm9yIHtAbGluayBwcm9tcHR9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFByb21wdFBhcmFtcyBleHRlbmRzIE1vZGFsUGFyYW1zQmFzZSB7XG4gIC8qKlxuICAgKiBBIHRleHQgZm9yIHRoZSBcIkNhbmNlbFwiIGJ1dHRvbi5cbiAgICovXG4gIHJlYWRvbmx5IGNhbmNlbEJ1dHRvblRleHQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEV4dHJhIGNvbnRyb2xzIOKAlCBjaGVja2JveGVzLCBkcm9wZG93bnMgYW5kIGtleWJvYXJkIHNob3J0Y3V0cyDigJQgcmVuZGVyZWQgYXMgYSBzdHJpcCBhbG9uZyB0aGUgYm90dG9tXG4gICAqIG9mIHRoZSBtb2RhbCwgc28gYSBjYWxsZXIgZ2V0cyBhIHRleHQgaW5wdXQgcGx1cyBvcHRpb25zIHdpdGggbm8gYmVzcG9rZSBtb2RhbCBvZiBpdHMgb3duLlxuICAgKlxuICAgKiBIYW5kIGl0IGEgY29uZmlndXJlZCB7QGxpbmsgTW9kYWxDb21tYW5kQnVpbGRlcn07IHRoZSBtb2RhbCBidWlsZHMgaXQuIFRoZSBzdHJpcCBpcyByZW5kZXJlZCBhZnRlclxuICAgKiB0aGUgYnV0dG9ucywgc28gaXQgc2l0cyBhbG9uZyB0aGUgYm90dG9tIGVkZ2Ugd2hlcmUgYSBgU3VnZ2VzdE1vZGFsYCdzIGluc3RydWN0aW9uIGJhciBzaXRzLlxuICAgKi9cbiAgcmVhZG9ubHkgY29tbWFuZEJ1aWxkZXI/OiBNb2RhbENvbW1hbmRCdWlsZGVyO1xuXG4gIC8qKlxuICAgKiBUaGUgd2F5IHtAbGluayBQcm9tcHRQYXJhbXMuY29tbWFuZEJ1aWxkZXJ9J3MgY29udHJvbHMgYXJlIHJlbmRlcmVkLlxuICAgKlxuICAgKiBAZGVmYXVsdCBgTW9kYWxDb21tYW5kc1JlbmRlck1vZGUuSW5zdHJ1Y3Rpb25zYFxuICAgKi9cbiAgcmVhZG9ubHkgY29tbWFuZHNSZW5kZXJNb2RlPzogTW9kYWxDb21tYW5kc1JlbmRlck1vZGU7XG5cbiAgLyoqXG4gICAqIEEgZGVmYXVsdCB2YWx1ZSB0byBwcmUtZmlsbCB0aGUgaW5wdXQgZmllbGQuXG4gICAqXG4gICAqIEBkZWZhdWx0IGAnJ2BcbiAgICovXG4gIHJlYWRvbmx5IGRlZmF1bHRWYWx1ZT86IHN0cmluZztcblxuICAvKipcbiAgICogQSB0ZXh0IGZvciB0aGUgXCJPS1wiIGJ1dHRvbi5cbiAgICovXG4gIHJlYWRvbmx5IG9rQnV0dG9uVGV4dD86IHN0cmluZztcblxuICAvKipcbiAgICogQSBwbGFjZWhvbGRlciB0ZXh0IGZvciB0aGUgaW5wdXQgZmllbGQuXG4gICAqXG4gICAqIEBkZWZhdWx0IGAnJ2BcbiAgICovXG4gIHJlYWRvbmx5IHBsYWNlaG9sZGVyPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbW9kZSBkZWNpZGluZyB3aGV0aGVyIHRoZSBpbnB1dCBpcyBzcGVsbC1jaGVja2VkLlxuICAgKlxuICAgKiBUaGUgZGVmYXVsdCBpcyB3aGF0IHRoaXMgbW9kYWwgaGFzIGFsd2F5cyBkb25lLCBzbyBwYXNzaW5nIG5vdGhpbmcgY2hhbmdlcyBub3RoaW5nOiB0aGUgaW5wdXQgZm9sbG93c1xuICAgKiBgRWRpdG9yID4gU3BlbGxjaGVja2AsIGxpa2UgT2JzaWRpYW4ncyBvd24gbmFtZS1lbnRyeSBzdXJmYWNlcy4gUGFzcyB7QGxpbmsgU3BlbGxjaGVja01vZGUuT2ZmfSBmb3IgYVxuICAgKiBib3ggdGhhdCBpcyByZWFsbHkgYSBzZWFyY2ggZmllbGQsIG9yIHtAbGluayBTcGVsbGNoZWNrTW9kZS5BbHdheXNPbn0gdG8gc3BlbGwtY2hlY2sgaXQgd2hhdGV2ZXIgdGhlXG4gICAqIHZhdWx0IHNldHRpbmcgc2F5cy5cbiAgICpcbiAgICogQGRlZmF1bHQgYFNwZWxsY2hlY2tNb2RlLkZvbGxvd09ic2lkaWFuU2V0dGluZ2BcbiAgICovXG4gIHJlYWRvbmx5IHNwZWxsY2hlY2tNb2RlPzogU3BlbGxjaGVja01vZGU7XG5cbiAgLyoqXG4gICAqIEEgdGl0bGUgb2YgdGhlIG1vZGFsLlxuICAgKlxuICAgKiBAZGVmYXVsdCBgJydgXG4gICAqL1xuICByZWFkb25seSB0aXRsZT86IERvY3VtZW50RnJhZ21lbnQgfCBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEEgZnVuY3Rpb24gdG8gdmFsaWRhdGUgdGhlIGlucHV0IHZhbHVlLlxuICAgKlxuICAgKiBAcGFyYW0gdmFsdWUgLSBUaGUgaW5wdXQgdmFsdWUgdG8gdmFsaWRhdGUuXG4gICAqIEByZXR1cm5zIGFuIGVycm9yIG1lc3NhZ2UgaWYgdGhlIHZhbHVlIGlzIGludmFsaWQsIG9yIGBudWxsYCBpZiB0aGUgdmFsdWUgaXMgdmFsaWQuXG4gICAqL1xuICByZWFkb25seSB2YWx1ZVZhbGlkYXRvcj86ICh2YWx1ZTogc3RyaW5nKSA9PiBQcm9taXNhYmxlPE1heWJlUmV0dXJuPHN0cmluZz4+O1xufVxuXG50eXBlIFByb21wdE1vZGFsQ29uc3RydWN0b3JQYXJhbXMgPSBNb2RhbEJhc2VDb25zdHJ1Y3RvclBhcmFtczxudWxsIHwgc3RyaW5nPiAmIFByb21wdFBhcmFtcztcblxuY2xhc3MgUHJvbXB0TW9kYWwgZXh0ZW5kcyBNb2RhbEJhc2U8bnVsbCB8IHN0cmluZz4ge1xuICBwcml2YXRlIHJlYWRvbmx5IGNhbmNlbEJ1dHRvblRleHQ6IHN0cmluZztcbiAgcHJpdmF0ZSByZWFkb25seSBjb21tYW5kQnVpbGRlcjogTW9kYWxDb21tYW5kQnVpbGRlciB8IG51bGw7XG4gIHByaXZhdGUgcmVhZG9ubHkgY29tbWFuZHNSZW5kZXJNb2RlOiBNb2RhbENvbW1hbmRzUmVuZGVyTW9kZSB8IHVuZGVmaW5lZDtcbiAgcHJpdmF0ZSBpc09rQ2xpY2tlZCA9IGZhbHNlO1xuICBwcml2YXRlIGlzVG91Y2hlZCA9IGZhbHNlO1xuICBwcml2YXRlIHJlYWRvbmx5IG9rQnV0dG9uVGV4dDogc3RyaW5nO1xuICBwcml2YXRlIHJlYWRvbmx5IHBsYWNlaG9sZGVyOiBzdHJpbmc7XG4gIHByaXZhdGUgcmVhZG9ubHkgc3BlbGxjaGVja01vZGU6IFNwZWxsY2hlY2tNb2RlO1xuICBwcml2YXRlIHJlYWRvbmx5IHRpdGxlOiBEb2N1bWVudEZyYWdtZW50IHwgc3RyaW5nO1xuICBwcml2YXRlIHZhbHVlOiBzdHJpbmc7XG4gIHByaXZhdGUgcmVhZG9ubHkgdmFsdWVWYWxpZGF0b3I6ICh2YWx1ZTogc3RyaW5nKSA9PiBQcm9taXNhYmxlPE1heWJlUmV0dXJuPHN0cmluZz4+O1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihwYXJhbXM6IFByb21wdE1vZGFsQ29uc3RydWN0b3JQYXJhbXMpIHtcbiAgICBzdXBlcihwYXJhbXMpO1xuICAgIHRoaXMuYWRkQ3NzQ2xhc3NlcyhDc3NDbGFzcy5Qcm9tcHRNb2RhbCk7XG4gICAgdGhpcy5jYW5jZWxCdXR0b25UZXh0ID0gcGFyYW1zLmNhbmNlbEJ1dHRvblRleHQgPz8gdCgoJCkgPT4gJC5vYnNpZGlhbkxpYi5idXR0b25zLmNhbmNlbCk7XG4gICAgdGhpcy5jb21tYW5kQnVpbGRlciA9IHBhcmFtcy5jb21tYW5kQnVpbGRlciA/PyBudWxsO1xuICAgIHRoaXMuY29tbWFuZHNSZW5kZXJNb2RlID0gcGFyYW1zLmNvbW1hbmRzUmVuZGVyTW9kZTtcbiAgICB0aGlzLm9rQnV0dG9uVGV4dCA9IHBhcmFtcy5va0J1dHRvblRleHQgPz8gdCgoJCkgPT4gJC5vYnNpZGlhbkxpYi5idXR0b25zLm9rKTtcbiAgICB0aGlzLnBsYWNlaG9sZGVyID0gcGFyYW1zLnBsYWNlaG9sZGVyID8/ICcnO1xuICAgIHRoaXMuc3BlbGxjaGVja01vZGUgPSBwYXJhbXMuc3BlbGxjaGVja01vZGUgPz8gU3BlbGxjaGVja01vZGUuRm9sbG93T2JzaWRpYW5TZXR0aW5nO1xuICAgIHRoaXMudGl0bGUgPSBwYXJhbXMudGl0bGUgPz8gJyc7XG4gICAgdGhpcy52YWx1ZVZhbGlkYXRvciA9IHBhcmFtcy52YWx1ZVZhbGlkYXRvciA/PyBub29wO1xuICAgIHRoaXMudmFsdWUgPSBwYXJhbXMuZGVmYXVsdFZhbHVlID8/ICcnO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIG9uQ2xvc2UoKTogdm9pZCB7XG4gICAgdGhpcy5wcm9taXNlUmVzb2x2ZSh0aGlzLmlzT2tDbGlja2VkID8gdGhpcy52YWx1ZSA6IG51bGwpO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIG9uT3BlbigpOiB2b2lkIHtcbiAgICB0aGlzLnRpdGxlRWwuc2V0VGV4dCh0aGlzLnRpdGxlKTtcbiAgICBjb25zdCB0ZXh0Q29tcG9uZW50ID0gbmV3IFRleHRDb21wb25lbnQodGhpcy5jb250ZW50RWwpO1xuICAgIGNvbnN0IGlucHV0RWwgPSB0ZXh0Q29tcG9uZW50LmlucHV0RWw7XG4gICAgLy8gYEFic3RyYWN0VGV4dENvbXBvbmVudGAgZm9yY2VzIGBzcGVsbGNoZWNrPVwiZmFsc2VcImAgb24gZXZlcnkgdGV4dCBjb21wb25lbnQsIHNvIHRoZSBtb2RlIGhhcyB0byBiZSBhcHBsaWVkIGhlcmUuXG4gICAgLy8gT2JzaWRpYW4ncyBvd24gZmlsZSBleHBsb3JlciByZWFkcyB0aGUgc2FtZSBjb25maWcgd2hlbiBpdCBzdGFydHMgYW4gaW5saW5lIHJlbmFtZS5cbiAgICBhcHBseVNwZWxsY2hlY2tNb2RlKHtcbiAgICAgIGFwcDogdGhpcy5hcHAsXG4gICAgICBlbGVtZW50OiBpbnB1dEVsLFxuICAgICAgc3BlbGxjaGVja01vZGU6IHRoaXMuc3BlbGxjaGVja01vZGVcbiAgICB9KTtcblxuICAgIGNvbnN0IHZhbGlkYXRlID0gYXN5bmMgKHNob3VsZFJlcG9ydDogYm9vbGVhbik6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgICAgY29uc3QgZXJyb3JNZXNzYWdlID0gYXdhaXQgdGhpcy52YWx1ZVZhbGlkYXRvcihpbnB1dEVsLnZhbHVlKSBhcyBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgICBpbnB1dEVsLnNldEN1c3RvbVZhbGlkaXR5KGVycm9yTWVzc2FnZSA/PyAnJyk7XG4gICAgICBpZiAoc2hvdWxkUmVwb3J0KSB7XG4gICAgICAgIGlucHV0RWwucmVwb3J0VmFsaWRpdHkoKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlSW5wdXQgPSBhc3luYyAoKTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gICAgICB0aGlzLm1hcmtUb3VjaGVkKGlucHV0RWwpO1xuICAgICAgYXdhaXQgdmFsaWRhdGUodHJ1ZSk7XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZUZvY3VzID0gYXN5bmMgKCk6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgICAgYXdhaXQgdmFsaWRhdGUodGhpcy5pc1RvdWNoZWQpO1xuICAgIH07XG5cbiAgICB0ZXh0Q29tcG9uZW50LnNldFZhbHVlKHRoaXMudmFsdWUpO1xuICAgIHRleHRDb21wb25lbnQuaW5wdXRFbC5zZWxlY3QoKTtcbiAgICB0ZXh0Q29tcG9uZW50LnNldFBsYWNlaG9sZGVyKHRoaXMucGxhY2Vob2xkZXIpO1xuICAgIGlucHV0RWwuYWRkQ2xhc3MoQ3NzQ2xhc3MuVGV4dEJveCk7XG4gICAgLy8gVGhlIG1vZGFsIG9wZW5zIGludmFsaWQgYnkgZGVzaWduIChzZWUgYmVsb3cpLCBzbyB0aGUgaW52YWxpZCBzdHlsaW5nIGlzIGRlZmVycmVkIHVudGlsIHRvdWNoZWQuXG4gICAgaW5wdXRFbC5hZGRDbGFzcyhDc3NDbGFzcy5VbnRvdWNoZWQpO1xuICAgIHRleHRDb21wb25lbnQub25DaGFuZ2UoKG5ld1ZhbHVlKSA9PiB7XG4gICAgICB0aGlzLnZhbHVlID0gbmV3VmFsdWU7XG4gICAgfSk7XG4gICAgaW5wdXRFbC5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJywgKCRldmVudDogS2V5Ym9hcmRFdmVudCkgPT4ge1xuICAgICAgaWYgKCRldmVudC5rZXkgPT09ICdFbnRlcicpIHtcbiAgICAgICAgdGhpcy5oYW5kbGVPaygkZXZlbnQsIHRleHRDb21wb25lbnQpO1xuICAgICAgfSBlbHNlIGlmICgkZXZlbnQua2V5ID09PSAnRXNjYXBlJykge1xuICAgICAgICB0aGlzLmNsb3NlKCk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgaW5wdXRFbC5hZGRFdmVudExpc3RlbmVyKCdpbnB1dCcsIGNvbnZlcnRBc3luY1RvU3luYyhoYW5kbGVJbnB1dCkpO1xuICAgIGlucHV0RWwuYWRkRXZlbnRMaXN0ZW5lcignZm9jdXMnLCBjb252ZXJ0QXN5bmNUb1N5bmMoaGFuZGxlRm9jdXMpKTtcbiAgICAvLyBUaGUgbW9kYWwgbXVzdCBzdGFydCBvdXQgaW52YWxpZCBzbyBPSyByZWZ1c2VzLCBidXQgdGhlIHZhbGlkaXR5IGlzIG5vdCByZXBvcnRlZCB1bnRpbCB0aGUgdXNlciB0eXBlcyBvciBzdWJtaXRzLlxuICAgIGludm9rZUFzeW5jU2FmZWx5KCgpID0+IHZhbGlkYXRlKGZhbHNlKSk7XG4gICAgY29uc3Qgb2tCdXR0b24gPSBuZXcgQnV0dG9uQ29tcG9uZW50KHRoaXMuY29udGVudEVsKTtcbiAgICBva0J1dHRvbi5zZXRCdXR0b25UZXh0KHRoaXMub2tCdXR0b25UZXh0KTtcbiAgICBva0J1dHRvbi5zZXRDdGEoKTtcbiAgICBva0J1dHRvbi5vbkNsaWNrKCgkZXZlbnQpID0+IHtcbiAgICAgIHRoaXMuaGFuZGxlT2soJGV2ZW50LCB0ZXh0Q29tcG9uZW50KTtcbiAgICB9KTtcbiAgICBva0J1dHRvbi5zZXRDbGFzcyhDc3NDbGFzcy5Pa0J1dHRvbik7XG4gICAgY29uc3QgY2FuY2VsQnV0dG9uID0gbmV3IEJ1dHRvbkNvbXBvbmVudCh0aGlzLmNvbnRlbnRFbCk7XG4gICAgY2FuY2VsQnV0dG9uLnNldEJ1dHRvblRleHQodGhpcy5jYW5jZWxCdXR0b25UZXh0KTtcbiAgICBjYW5jZWxCdXR0b24ub25DbGljayh0aGlzLmNsb3NlLmJpbmQodGhpcykpO1xuICAgIGNhbmNlbEJ1dHRvbi5zZXRDbGFzcyhDc3NDbGFzcy5DYW5jZWxCdXR0b24pO1xuXG4gICAgLy8gQnVpbHQgbGFzdCBzbyB0aGUgc3RyaXAgbGFuZHMgYWxvbmcgdGhlIG1vZGFsJ3MgYm90dG9tIGVkZ2UsIHdoZXJlIGEgYFN1Z2dlc3RNb2RhbGAncyBpbnN0cnVjdGlvblxuICAgIC8vIGJhciBzaXRzLlxuICAgIHRoaXMuY29tbWFuZEJ1aWxkZXI/LmJ1aWxkKHRoaXMsIG5vcm1hbGl6ZU9wdGlvbmFsUHJvcGVydGllczxNb2RhbENvbW1hbmRCdWlsZGVyQnVpbGRPcHRpb25zPih7IHJlbmRlck1vZGU6IHRoaXMuY29tbWFuZHNSZW5kZXJNb2RlIH0pKTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlT2soJGV2ZW50OiBFdmVudCwgdGV4dENvbXBvbmVudDogVGV4dENvbXBvbmVudCk6IHZvaWQge1xuICAgICRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGlmICghdGV4dENvbXBvbmVudC5pbnB1dEVsLmNoZWNrVmFsaWRpdHkoKSkge1xuICAgICAgdGhpcy5tYXJrVG91Y2hlZCh0ZXh0Q29tcG9uZW50LmlucHV0RWwpO1xuICAgICAgdGV4dENvbXBvbmVudC5pbnB1dEVsLnJlcG9ydFZhbGlkaXR5KCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5pc09rQ2xpY2tlZCA9IHRydWU7XG4gICAgdGhpcy5jbG9zZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBtYXJrVG91Y2hlZChpbnB1dEVsOiBIVE1MSW5wdXRFbGVtZW50KTogdm9pZCB7XG4gICAgdGhpcy5pc1RvdWNoZWQgPSB0cnVlO1xuICAgIGlucHV0RWwucmVtb3ZlQ2xhc3MoQ3NzQ2xhc3MuVW50b3VjaGVkKTtcbiAgfVxufVxuXG4vKipcbiAqIERpc3BsYXlzIGEgcHJvbXB0IG1vZGFsIGluIE9ic2lkaWFuIHRvIGdldCB1c2VyIGlucHV0LlxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgcGFyYW1ldGVycyBmb3IgdGhlIHByb21wdCBtb2RhbC5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgd2l0aCB0aGUgdXNlciBpbnB1dCBvciBgbnVsbGAgaWYgdGhlIHByb21wdCB3YXMgY2FuY2VsbGVkLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcHJvbXB0KHBhcmFtczogUHJvbXB0UGFyYW1zKTogUHJvbWlzZTxudWxsIHwgc3RyaW5nPiB7XG4gIHJldHVybiBhd2FpdCBzaG93TW9kYWw8bnVsbCB8IHN0cmluZz4oKHByb21pc2VSZXNvbHZlKSA9PlxuICAgIG5ldyBQcm9tcHRNb2RhbCh7XG4gICAgICAuLi5wYXJhbXMsXG4gICAgICBwcm9taXNlUmVzb2x2ZVxuICAgIH0pXG4gICk7XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBV0E7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFDUCxTQUFTLFlBQVk7QUFDckIsU0FBUyxtQ0FBbUM7QUFDNUM7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFZUCxTQUFTLGdCQUFnQjtBQUN6QixTQUFTLDJCQUEyQjtBQUNwQyxTQUFTLFNBQVM7QUFDbEIsU0FBUyxzQkFBc0I7QUFDL0I7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUE0RVAsTUFBTSxvQkFBb0IsVUFBeUI7QUFBQSxFQUNoQztBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDVCxjQUFjO0FBQUEsRUFDZCxZQUFZO0FBQUEsRUFDSDtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ1Q7QUFB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
159
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9tb2RhbHMvcHJvbXB0LnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBVdGlsaXR5IGZvciBkaXNwbGF5aW5nIGEgcHJvbXB0IG1vZGFsIGluIE9ic2lkaWFuLlxuICpcbiAqIFRoaXMgbW9kdWxlIGV4cG9ydHMgYSBmdW5jdGlvbiB0byBkaXNwbGF5IGEgbW9kYWwgdGhhdCBwcm9tcHRzIHRoZSB1c2VyIGZvciBpbnB1dC4gVGhlIG1vZGFsIGluY2x1ZGVzIFwiT0tcIiBhbmQgXCJDYW5jZWxcIiBidXR0b25zLlxuICovXG5cbmltcG9ydCB0eXBlIHsgTWF5YmVSZXR1cm4gfSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvdHlwZSc7XG5pbXBvcnQgdHlwZSB7IFByb21pc2FibGUgfSBmcm9tICd0eXBlLWZlc3QnO1xuXG5pbXBvcnQge1xuICBjb252ZXJ0QXN5bmNUb1N5bmMsXG4gIGludm9rZUFzeW5jU2FmZWx5XG59IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi9hc3luYyc7XG5pbXBvcnQgeyBub29wIH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL2Z1bmN0aW9uJztcbmltcG9ydCB7IG5vcm1hbGl6ZU9wdGlvbmFsUHJvcGVydGllcyB9IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi9vYmplY3QtdXRpbHMnO1xuaW1wb3J0IHtcbiAgQnV0dG9uQ29tcG9uZW50LFxuICBUZXh0Q29tcG9uZW50XG59IGZyb20gJ29ic2lkaWFuJztcblxuaW1wb3J0IHR5cGUge1xuICBNb2RhbENvbW1hbmRCdWlsZGVyLFxuICBNb2RhbENvbW1hbmRCdWlsZGVyQnVpbGRPcHRpb25zLFxuICBNb2RhbENvbW1hbmRzUmVuZGVyTW9kZVxufSBmcm9tICcuL21vZGFsLWNvbW1hbmQtYnVpbGRlci50cyc7XG5pbXBvcnQgdHlwZSB7XG4gIE1vZGFsQmFzZUNvbnN0cnVjdG9yUGFyYW1zLFxuICBNb2RhbFBhcmFtc0Jhc2Vcbn0gZnJvbSAnLi9tb2RhbC50cyc7XG5cbmltcG9ydCB7IENzc0NsYXNzIH0gZnJvbSAnLi4vY3NzLWNsYXNzLnRzJztcbmltcG9ydCB7IGFwcGx5U3BlbGxjaGVja01vZGUgfSBmcm9tICcuLi9odG1sLWVsZW1lbnQudHMnO1xuaW1wb3J0IHsgdCB9IGZyb20gJy4uL2kxOG4vaTE4bi50cyc7XG5pbXBvcnQgeyBTcGVsbGNoZWNrTW9kZSB9IGZyb20gJy4uL29ic2lkaWFuLXNldHRpbmdzLnRzJztcbmltcG9ydCB7XG4gIE1vZGFsQmFzZSxcbiAgc2hvd01vZGFsXG59IGZyb20gJy4vbW9kYWwudHMnO1xuXG4vKipcbiAqIE9wdGlvbnMgZm9yIHtAbGluayBwcm9tcHR9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFByb21wdFBhcmFtcyBleHRlbmRzIE1vZGFsUGFyYW1zQmFzZSB7XG4gIC8qKlxuICAgKiBBIHRleHQgZm9yIHRoZSBcIkNhbmNlbFwiIGJ1dHRvbi5cbiAgICovXG4gIHJlYWRvbmx5IGNhbmNlbEJ1dHRvblRleHQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEV4dHJhIGNvbnRyb2xzIOKAlCBjaGVja2JveGVzLCBkcm9wZG93bnMgYW5kIGtleWJvYXJkIHNob3J0Y3V0cyDigJQgcmVuZGVyZWQgYXMgYSBzdHJpcCBhbG9uZyB0aGUgYm90dG9tXG4gICAqIG9mIHRoZSBtb2RhbCwgc28gYSBjYWxsZXIgZ2V0cyBhIHRleHQgaW5wdXQgcGx1cyBvcHRpb25zIHdpdGggbm8gYmVzcG9rZSBtb2RhbCBvZiBpdHMgb3duLlxuICAgKlxuICAgKiBIYW5kIGl0IGEgY29uZmlndXJlZCB7QGxpbmsgTW9kYWxDb21tYW5kQnVpbGRlcn07IHRoZSBtb2RhbCBidWlsZHMgaXQuIFRoZSBzdHJpcCBpcyByZW5kZXJlZCBhZnRlclxuICAgKiB0aGUgYnV0dG9ucywgc28gaXQgc2l0cyBhbG9uZyB0aGUgYm90dG9tIGVkZ2Ugd2hlcmUgYSBgU3VnZ2VzdE1vZGFsYCdzIGluc3RydWN0aW9uIGJhciBzaXRzLlxuICAgKi9cbiAgcmVhZG9ubHkgY29tbWFuZEJ1aWxkZXI/OiBNb2RhbENvbW1hbmRCdWlsZGVyO1xuXG4gIC8qKlxuICAgKiBUaGUgd2F5IHtAbGluayBQcm9tcHRQYXJhbXMuY29tbWFuZEJ1aWxkZXJ9J3MgY29udHJvbHMgYXJlIHJlbmRlcmVkLlxuICAgKlxuICAgKiBAZGVmYXVsdCBgTW9kYWxDb21tYW5kc1JlbmRlck1vZGUuSW5zdHJ1Y3Rpb25zYFxuICAgKi9cbiAgcmVhZG9ubHkgY29tbWFuZHNSZW5kZXJNb2RlPzogTW9kYWxDb21tYW5kc1JlbmRlck1vZGU7XG5cbiAgLyoqXG4gICAqIEEgZGVmYXVsdCB2YWx1ZSB0byBwcmUtZmlsbCB0aGUgaW5wdXQgZmllbGQuXG4gICAqXG4gICAqIEBkZWZhdWx0IGAnJ2BcbiAgICovXG4gIHJlYWRvbmx5IGRlZmF1bHRWYWx1ZT86IHN0cmluZztcblxuICAvKipcbiAgICogQSB0ZXh0IGZvciB0aGUgXCJPS1wiIGJ1dHRvbi5cbiAgICovXG4gIHJlYWRvbmx5IG9rQnV0dG9uVGV4dD86IHN0cmluZztcblxuICAvKipcbiAgICogQSBwbGFjZWhvbGRlciB0ZXh0IGZvciB0aGUgaW5wdXQgZmllbGQuXG4gICAqXG4gICAqIEBkZWZhdWx0IGAnJ2BcbiAgICovXG4gIHJlYWRvbmx5IHBsYWNlaG9sZGVyPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbW9kZSBkZWNpZGluZyB3aGV0aGVyIHRoZSBpbnB1dCBpcyBzcGVsbC1jaGVja2VkLlxuICAgKlxuICAgKiBUaGUgZGVmYXVsdCBpcyB3aGF0IHRoaXMgbW9kYWwgaGFzIGFsd2F5cyBkb25lLCBzbyBwYXNzaW5nIG5vdGhpbmcgY2hhbmdlcyBub3RoaW5nOiB0aGUgaW5wdXQgZm9sbG93c1xuICAgKiBgRWRpdG9yID4gU3BlbGxjaGVja2AsIGxpa2UgT2JzaWRpYW4ncyBvd24gbmFtZS1lbnRyeSBzdXJmYWNlcy4gUGFzcyB7QGxpbmsgU3BlbGxjaGVja01vZGUuT2ZmfSBmb3IgYVxuICAgKiBib3ggdGhhdCBpcyByZWFsbHkgYSBzZWFyY2ggZmllbGQsIG9yIHtAbGluayBTcGVsbGNoZWNrTW9kZS5BbHdheXNPbn0gdG8gc3BlbGwtY2hlY2sgaXQgd2hhdGV2ZXIgdGhlXG4gICAqIHZhdWx0IHNldHRpbmcgc2F5cy5cbiAgICpcbiAgICogQGRlZmF1bHQgYFNwZWxsY2hlY2tNb2RlLkZvbGxvd09ic2lkaWFuU2V0dGluZ2BcbiAgICovXG4gIHJlYWRvbmx5IHNwZWxsY2hlY2tNb2RlPzogU3BlbGxjaGVja01vZGU7XG5cbiAgLyoqXG4gICAqIEEgdGl0bGUgb2YgdGhlIG1vZGFsLlxuICAgKlxuICAgKiBAZGVmYXVsdCBgJydgXG4gICAqL1xuICByZWFkb25seSB0aXRsZT86IERvY3VtZW50RnJhZ21lbnQgfCBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEEgZnVuY3Rpb24gdG8gdmFsaWRhdGUgdGhlIGlucHV0IHZhbHVlLlxuICAgKlxuICAgKiBAcGFyYW0gdmFsdWUgLSBUaGUgaW5wdXQgdmFsdWUgdG8gdmFsaWRhdGUuXG4gICAqIEByZXR1cm5zIGFuIGVycm9yIG1lc3NhZ2UgaWYgdGhlIHZhbHVlIGlzIGludmFsaWQsIG9yIGBudWxsYCBpZiB0aGUgdmFsdWUgaXMgdmFsaWQuXG4gICAqL1xuICByZWFkb25seSB2YWx1ZVZhbGlkYXRvcj86ICh2YWx1ZTogc3RyaW5nKSA9PiBQcm9taXNhYmxlPE1heWJlUmV0dXJuPG51bGwgfCBzdHJpbmc+Pjtcbn1cblxudHlwZSBQcm9tcHRNb2RhbENvbnN0cnVjdG9yUGFyYW1zID0gTW9kYWxCYXNlQ29uc3RydWN0b3JQYXJhbXM8bnVsbCB8IHN0cmluZz4gJiBQcm9tcHRQYXJhbXM7XG5cbmNsYXNzIFByb21wdE1vZGFsIGV4dGVuZHMgTW9kYWxCYXNlPG51bGwgfCBzdHJpbmc+IHtcbiAgcHJpdmF0ZSByZWFkb25seSBjYW5jZWxCdXR0b25UZXh0OiBzdHJpbmc7XG4gIHByaXZhdGUgcmVhZG9ubHkgY29tbWFuZEJ1aWxkZXI6IE1vZGFsQ29tbWFuZEJ1aWxkZXIgfCBudWxsO1xuICBwcml2YXRlIHJlYWRvbmx5IGNvbW1hbmRzUmVuZGVyTW9kZTogTW9kYWxDb21tYW5kc1JlbmRlck1vZGUgfCB1bmRlZmluZWQ7XG4gIHByaXZhdGUgaXNPa0NsaWNrZWQgPSBmYWxzZTtcbiAgcHJpdmF0ZSBpc1RvdWNoZWQgPSBmYWxzZTtcbiAgcHJpdmF0ZSByZWFkb25seSBva0J1dHRvblRleHQ6IHN0cmluZztcbiAgcHJpdmF0ZSByZWFkb25seSBwbGFjZWhvbGRlcjogc3RyaW5nO1xuICBwcml2YXRlIHJlYWRvbmx5IHNwZWxsY2hlY2tNb2RlOiBTcGVsbGNoZWNrTW9kZTtcbiAgcHJpdmF0ZSByZWFkb25seSB0aXRsZTogRG9jdW1lbnRGcmFnbWVudCB8IHN0cmluZztcbiAgcHJpdmF0ZSB2YWx1ZTogc3RyaW5nO1xuICBwcml2YXRlIHJlYWRvbmx5IHZhbHVlVmFsaWRhdG9yOiAodmFsdWU6IHN0cmluZykgPT4gUHJvbWlzYWJsZTxNYXliZVJldHVybjxudWxsIHwgc3RyaW5nPj47XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKHBhcmFtczogUHJvbXB0TW9kYWxDb25zdHJ1Y3RvclBhcmFtcykge1xuICAgIHN1cGVyKHBhcmFtcyk7XG4gICAgdGhpcy5hZGRDc3NDbGFzc2VzKENzc0NsYXNzLlByb21wdE1vZGFsKTtcbiAgICB0aGlzLmNhbmNlbEJ1dHRvblRleHQgPSBwYXJhbXMuY2FuY2VsQnV0dG9uVGV4dCA/PyB0KCgkKSA9PiAkLm9ic2lkaWFuTGliLmJ1dHRvbnMuY2FuY2VsKTtcbiAgICB0aGlzLmNvbW1hbmRCdWlsZGVyID0gcGFyYW1zLmNvbW1hbmRCdWlsZGVyID8/IG51bGw7XG4gICAgdGhpcy5jb21tYW5kc1JlbmRlck1vZGUgPSBwYXJhbXMuY29tbWFuZHNSZW5kZXJNb2RlO1xuICAgIHRoaXMub2tCdXR0b25UZXh0ID0gcGFyYW1zLm9rQnV0dG9uVGV4dCA/PyB0KCgkKSA9PiAkLm9ic2lkaWFuTGliLmJ1dHRvbnMub2spO1xuICAgIHRoaXMucGxhY2Vob2xkZXIgPSBwYXJhbXMucGxhY2Vob2xkZXIgPz8gJyc7XG4gICAgdGhpcy5zcGVsbGNoZWNrTW9kZSA9IHBhcmFtcy5zcGVsbGNoZWNrTW9kZSA/PyBTcGVsbGNoZWNrTW9kZS5Gb2xsb3dPYnNpZGlhblNldHRpbmc7XG4gICAgdGhpcy50aXRsZSA9IHBhcmFtcy50aXRsZSA/PyAnJztcbiAgICB0aGlzLnZhbHVlVmFsaWRhdG9yID0gcGFyYW1zLnZhbHVlVmFsaWRhdG9yID8/IG5vb3A7XG4gICAgdGhpcy52YWx1ZSA9IHBhcmFtcy5kZWZhdWx0VmFsdWUgPz8gJyc7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgb25DbG9zZSgpOiB2b2lkIHtcbiAgICB0aGlzLnByb21pc2VSZXNvbHZlKHRoaXMuaXNPa0NsaWNrZWQgPyB0aGlzLnZhbHVlIDogbnVsbCk7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgb25PcGVuKCk6IHZvaWQge1xuICAgIHRoaXMudGl0bGVFbC5zZXRUZXh0KHRoaXMudGl0bGUpO1xuICAgIGNvbnN0IHRleHRDb21wb25lbnQgPSBuZXcgVGV4dENvbXBvbmVudCh0aGlzLmNvbnRlbnRFbCk7XG4gICAgY29uc3QgaW5wdXRFbCA9IHRleHRDb21wb25lbnQuaW5wdXRFbDtcbiAgICAvLyBgQWJzdHJhY3RUZXh0Q29tcG9uZW50YCBmb3JjZXMgYHNwZWxsY2hlY2s9XCJmYWxzZVwiYCBvbiBldmVyeSB0ZXh0IGNvbXBvbmVudCwgc28gdGhlIG1vZGUgaGFzIHRvIGJlIGFwcGxpZWQgaGVyZS5cbiAgICAvLyBPYnNpZGlhbidzIG93biBmaWxlIGV4cGxvcmVyIHJlYWRzIHRoZSBzYW1lIGNvbmZpZyB3aGVuIGl0IHN0YXJ0cyBhbiBpbmxpbmUgcmVuYW1lLlxuICAgIGFwcGx5U3BlbGxjaGVja01vZGUoe1xuICAgICAgYXBwOiB0aGlzLmFwcCxcbiAgICAgIGVsZW1lbnQ6IGlucHV0RWwsXG4gICAgICBzcGVsbGNoZWNrTW9kZTogdGhpcy5zcGVsbGNoZWNrTW9kZVxuICAgIH0pO1xuXG4gICAgY29uc3QgdmFsaWRhdGUgPSBhc3luYyAoc2hvdWxkUmVwb3J0OiBib29sZWFuKTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gICAgICBjb25zdCBlcnJvck1lc3NhZ2UgPSBhd2FpdCB0aGlzLnZhbHVlVmFsaWRhdG9yKGlucHV0RWwudmFsdWUpIGFzIG51bGwgfCBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgICBpbnB1dEVsLnNldEN1c3RvbVZhbGlkaXR5KGVycm9yTWVzc2FnZSA/PyAnJyk7XG4gICAgICBpZiAoc2hvdWxkUmVwb3J0KSB7XG4gICAgICAgIGlucHV0RWwucmVwb3J0VmFsaWRpdHkoKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlSW5wdXQgPSBhc3luYyAoKTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gICAgICB0aGlzLm1hcmtUb3VjaGVkKGlucHV0RWwpO1xuICAgICAgYXdhaXQgdmFsaWRhdGUodHJ1ZSk7XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZUZvY3VzID0gYXN5bmMgKCk6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgICAgYXdhaXQgdmFsaWRhdGUodGhpcy5pc1RvdWNoZWQpO1xuICAgIH07XG5cbiAgICB0ZXh0Q29tcG9uZW50LnNldFZhbHVlKHRoaXMudmFsdWUpO1xuICAgIHRleHRDb21wb25lbnQuaW5wdXRFbC5zZWxlY3QoKTtcbiAgICB0ZXh0Q29tcG9uZW50LnNldFBsYWNlaG9sZGVyKHRoaXMucGxhY2Vob2xkZXIpO1xuICAgIGlucHV0RWwuYWRkQ2xhc3MoQ3NzQ2xhc3MuVGV4dEJveCk7XG4gICAgLy8gVGhlIG1vZGFsIG9wZW5zIGludmFsaWQgYnkgZGVzaWduIChzZWUgYmVsb3cpLCBzbyB0aGUgaW52YWxpZCBzdHlsaW5nIGlzIGRlZmVycmVkIHVudGlsIHRvdWNoZWQuXG4gICAgaW5wdXRFbC5hZGRDbGFzcyhDc3NDbGFzcy5VbnRvdWNoZWQpO1xuICAgIHRleHRDb21wb25lbnQub25DaGFuZ2UoKG5ld1ZhbHVlKSA9PiB7XG4gICAgICB0aGlzLnZhbHVlID0gbmV3VmFsdWU7XG4gICAgfSk7XG4gICAgaW5wdXRFbC5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJywgKCRldmVudDogS2V5Ym9hcmRFdmVudCkgPT4ge1xuICAgICAgaWYgKCRldmVudC5rZXkgPT09ICdFbnRlcicpIHtcbiAgICAgICAgdGhpcy5oYW5kbGVPaygkZXZlbnQsIHRleHRDb21wb25lbnQpO1xuICAgICAgfSBlbHNlIGlmICgkZXZlbnQua2V5ID09PSAnRXNjYXBlJykge1xuICAgICAgICB0aGlzLmNsb3NlKCk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgaW5wdXRFbC5hZGRFdmVudExpc3RlbmVyKCdpbnB1dCcsIGNvbnZlcnRBc3luY1RvU3luYyhoYW5kbGVJbnB1dCkpO1xuICAgIGlucHV0RWwuYWRkRXZlbnRMaXN0ZW5lcignZm9jdXMnLCBjb252ZXJ0QXN5bmNUb1N5bmMoaGFuZGxlRm9jdXMpKTtcbiAgICAvLyBUaGUgbW9kYWwgbXVzdCBzdGFydCBvdXQgaW52YWxpZCBzbyBPSyByZWZ1c2VzLCBidXQgdGhlIHZhbGlkaXR5IGlzIG5vdCByZXBvcnRlZCB1bnRpbCB0aGUgdXNlciB0eXBlcyBvciBzdWJtaXRzLlxuICAgIGludm9rZUFzeW5jU2FmZWx5KCgpID0+IHZhbGlkYXRlKGZhbHNlKSk7XG4gICAgY29uc3Qgb2tCdXR0b24gPSBuZXcgQnV0dG9uQ29tcG9uZW50KHRoaXMuY29udGVudEVsKTtcbiAgICBva0J1dHRvbi5zZXRCdXR0b25UZXh0KHRoaXMub2tCdXR0b25UZXh0KTtcbiAgICBva0J1dHRvbi5zZXRDdGEoKTtcbiAgICBva0J1dHRvbi5vbkNsaWNrKCgkZXZlbnQpID0+IHtcbiAgICAgIHRoaXMuaGFuZGxlT2soJGV2ZW50LCB0ZXh0Q29tcG9uZW50KTtcbiAgICB9KTtcbiAgICBva0J1dHRvbi5zZXRDbGFzcyhDc3NDbGFzcy5Pa0J1dHRvbik7XG4gICAgY29uc3QgY2FuY2VsQnV0dG9uID0gbmV3IEJ1dHRvbkNvbXBvbmVudCh0aGlzLmNvbnRlbnRFbCk7XG4gICAgY2FuY2VsQnV0dG9uLnNldEJ1dHRvblRleHQodGhpcy5jYW5jZWxCdXR0b25UZXh0KTtcbiAgICBjYW5jZWxCdXR0b24ub25DbGljayh0aGlzLmNsb3NlLmJpbmQodGhpcykpO1xuICAgIGNhbmNlbEJ1dHRvbi5zZXRDbGFzcyhDc3NDbGFzcy5DYW5jZWxCdXR0b24pO1xuXG4gICAgLy8gQnVpbHQgbGFzdCBzbyB0aGUgc3RyaXAgbGFuZHMgYWxvbmcgdGhlIG1vZGFsJ3MgYm90dG9tIGVkZ2UsIHdoZXJlIGEgYFN1Z2dlc3RNb2RhbGAncyBpbnN0cnVjdGlvblxuICAgIC8vIGJhciBzaXRzLlxuICAgIHRoaXMuY29tbWFuZEJ1aWxkZXI/LmJ1aWxkKHRoaXMsIG5vcm1hbGl6ZU9wdGlvbmFsUHJvcGVydGllczxNb2RhbENvbW1hbmRCdWlsZGVyQnVpbGRPcHRpb25zPih7IHJlbmRlck1vZGU6IHRoaXMuY29tbWFuZHNSZW5kZXJNb2RlIH0pKTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlT2soJGV2ZW50OiBFdmVudCwgdGV4dENvbXBvbmVudDogVGV4dENvbXBvbmVudCk6IHZvaWQge1xuICAgICRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGlmICghdGV4dENvbXBvbmVudC5pbnB1dEVsLmNoZWNrVmFsaWRpdHkoKSkge1xuICAgICAgdGhpcy5tYXJrVG91Y2hlZCh0ZXh0Q29tcG9uZW50LmlucHV0RWwpO1xuICAgICAgdGV4dENvbXBvbmVudC5pbnB1dEVsLnJlcG9ydFZhbGlkaXR5KCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5pc09rQ2xpY2tlZCA9IHRydWU7XG4gICAgdGhpcy5jbG9zZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBtYXJrVG91Y2hlZChpbnB1dEVsOiBIVE1MSW5wdXRFbGVtZW50KTogdm9pZCB7XG4gICAgdGhpcy5pc1RvdWNoZWQgPSB0cnVlO1xuICAgIGlucHV0RWwucmVtb3ZlQ2xhc3MoQ3NzQ2xhc3MuVW50b3VjaGVkKTtcbiAgfVxufVxuXG4vKipcbiAqIERpc3BsYXlzIGEgcHJvbXB0IG1vZGFsIGluIE9ic2lkaWFuIHRvIGdldCB1c2VyIGlucHV0LlxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgcGFyYW1ldGVycyBmb3IgdGhlIHByb21wdCBtb2RhbC5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgd2l0aCB0aGUgdXNlciBpbnB1dCBvciBgbnVsbGAgaWYgdGhlIHByb21wdCB3YXMgY2FuY2VsbGVkLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcHJvbXB0KHBhcmFtczogUHJvbXB0UGFyYW1zKTogUHJvbWlzZTxudWxsIHwgc3RyaW5nPiB7XG4gIHJldHVybiBhd2FpdCBzaG93TW9kYWw8bnVsbCB8IHN0cmluZz4oKHByb21pc2VSZXNvbHZlKSA9PlxuICAgIG5ldyBQcm9tcHRNb2RhbCh7XG4gICAgICAuLi5wYXJhbXMsXG4gICAgICBwcm9taXNlUmVzb2x2ZVxuICAgIH0pXG4gICk7XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBV0E7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFDUCxTQUFTLFlBQVk7QUFDckIsU0FBUyxtQ0FBbUM7QUFDNUM7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFZUCxTQUFTLGdCQUFnQjtBQUN6QixTQUFTLDJCQUEyQjtBQUNwQyxTQUFTLFNBQVM7QUFDbEIsU0FBUyxzQkFBc0I7QUFDL0I7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUE0RVAsTUFBTSxvQkFBb0IsVUFBeUI7QUFBQSxFQUNoQztBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDVCxjQUFjO0FBQUEsRUFDZCxZQUFZO0FBQUEsRUFDSDtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FB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
@@ -0,0 +1,30 @@
1
+ /// <reference path="../library-references.d.mts" />
2
+ /**
3
+ * @file
4
+ *
5
+ * A modal where the user reviews, and chooses, the diagnostics a bug report will carry, before anything
6
+ * leaves Obsidian.
7
+ */
8
+ import type { BugReportDiagnosticSection } from '../bug-report-diagnostics.mjs';
9
+ import type { ModalParamsBase } from './modal.mjs';
10
+ /**
11
+ * Parameters for {@link reviewBugReportDiagnostics}.
12
+ */
13
+ export interface ReviewBugReportDiagnosticsParams extends ModalParamsBase {
14
+ /**
15
+ * The text the report always carries, shown first in the preview, such as the formatted environment.
16
+ */
17
+ readonly alwaysIncludedText?: string;
18
+ /**
19
+ * The sections the user may include. A potentially private section starts excluded.
20
+ */
21
+ readonly sections: readonly BugReportDiagnosticSection[];
22
+ }
23
+ /**
24
+ * Shows the user the diagnostics a bug report can carry, with a switch per section and a preview of the
25
+ * exact text, and lets them continue or cancel. A potentially private section starts switched off.
26
+ *
27
+ * @param params - The parameters.
28
+ * @returns The sections the user chose, in their original order, or `null` when the user cancelled.
29
+ */
30
+ export declare function reviewBugReportDiagnostics(params: ReviewBugReportDiagnosticsParams): Promise<null | readonly BugReportDiagnosticSection[]>;