@mnaoumov/obsidian-lib 10.5.0 → 10.6.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 (160) hide show
  1. package/README.md +6 -0
  2. package/codemirror/inline-token-widgets/package.json +6 -0
  3. package/codemirror/settings-facet/package.json +6 -0
  4. package/components/settings-facet-component/package.json +6 -0
  5. package/dist/lib/cjs/__merged.cjs +104 -1
  6. package/dist/lib/cjs/__merged.d.cts +20 -3
  7. package/dist/lib/cjs/anchored-suggest.cjs +232 -0
  8. package/dist/lib/cjs/anchored-suggest.d.cts +116 -0
  9. package/dist/lib/cjs/backlink-index.cjs +44 -8
  10. package/dist/lib/cjs/backlink-index.d.cts +23 -0
  11. package/dist/lib/cjs/bug-report.cjs +4 -2
  12. package/dist/lib/cjs/bug-report.d.cts +1 -1
  13. package/dist/lib/cjs/bulk-operation-progress.cjs +16 -1
  14. package/dist/lib/cjs/bulk-operation-progress.d.cts +22 -0
  15. package/dist/lib/cjs/case-insensitive-file-index.cjs +9 -1
  16. package/dist/lib/cjs/code-block-render-handoff.cjs +272 -0
  17. package/dist/lib/cjs/code-block-render-handoff.d.cts +131 -0
  18. package/dist/lib/cjs/codemirror/index.cjs +7 -1
  19. package/dist/lib/cjs/codemirror/index.d.cts +2 -0
  20. package/dist/lib/cjs/codemirror/inline-token-widgets.cjs +250 -0
  21. package/dist/lib/cjs/codemirror/inline-token-widgets.d.cts +109 -0
  22. package/dist/lib/cjs/codemirror/settings-facet.cjs +132 -0
  23. package/dist/lib/cjs/codemirror/settings-facet.d.cts +19 -0
  24. package/dist/lib/cjs/community-plugins.cjs +19 -2
  25. package/dist/lib/cjs/community-plugins.d.cts +14 -0
  26. package/dist/lib/cjs/components/bulk-operation-commit-component.cjs +5 -2
  27. package/dist/lib/cjs/components/index.cjs +4 -1
  28. package/dist/lib/cjs/components/index.d.cts +1 -0
  29. package/dist/lib/cjs/components/rename-delete-handler-component.cjs +105 -2
  30. package/dist/lib/cjs/components/settings-facet-component.cjs +136 -0
  31. package/dist/lib/cjs/components/settings-facet-component.d.cts +68 -0
  32. package/dist/lib/cjs/css-class.cjs +8 -1
  33. package/dist/lib/cjs/css-class.d.cts +28 -0
  34. package/dist/lib/cjs/desktop-bulk-operation-git.cjs +38 -13
  35. package/dist/lib/cjs/desktop-bulk-operation-git.d.cts +21 -1
  36. package/dist/lib/cjs/desktop-request-url-stream.cjs +258 -0
  37. package/dist/lib/cjs/desktop-request-url-stream.d.cts +22 -0
  38. package/dist/lib/cjs/editor-suggest-registrar.cjs +8 -2
  39. package/dist/lib/cjs/editor-suggest-registrar.d.cts +14 -2
  40. package/dist/lib/cjs/editor-suggest.cjs +198 -0
  41. package/dist/lib/cjs/editor-suggest.d.cts +103 -0
  42. package/dist/lib/cjs/generated-during-build.cjs +2 -2
  43. package/dist/lib/cjs/hotkey.cjs +185 -0
  44. package/dist/lib/cjs/hotkey.d.cts +59 -0
  45. package/dist/lib/cjs/i18n/locales/en.cjs +14 -1
  46. package/dist/lib/cjs/i18n/locales/en.d.cts +13 -0
  47. package/dist/lib/cjs/i18n/locales/translations-map.d.cts +13 -0
  48. package/dist/lib/cjs/index.cjs +31 -1
  49. package/dist/lib/cjs/index.d.cts +10 -0
  50. package/dist/lib/cjs/inline-token-renderer.cjs +145 -0
  51. package/dist/lib/cjs/inline-token-renderer.d.cts +88 -0
  52. package/dist/lib/cjs/link-and-tag-input-suggest.cjs +325 -0
  53. package/dist/lib/cjs/link-and-tag-input-suggest.d.cts +229 -0
  54. package/dist/lib/cjs/markdown-code-block-processor.cjs +13 -1
  55. package/dist/lib/cjs/markdown-code-block-processor.d.cts +18 -0
  56. package/dist/lib/cjs/markdown.cjs +6 -1
  57. package/dist/lib/cjs/markdown.d.cts +10 -1
  58. package/dist/lib/cjs/modals/modal.cjs +8 -5
  59. package/dist/lib/cjs/modals/modal.d.cts +4 -0
  60. package/dist/lib/cjs/plugin/plugin.cjs +5 -2
  61. package/dist/lib/cjs/plugin/plugin.d.cts +2 -0
  62. package/dist/lib/cjs/rendered-markdown.cjs +306 -0
  63. package/dist/lib/cjs/rendered-markdown.d.cts +77 -0
  64. package/dist/lib/cjs/request-url.cjs +523 -0
  65. package/dist/lib/cjs/request-url.d.cts +233 -0
  66. package/dist/lib/cjs/setting-components/folder-list-component.cjs +216 -0
  67. package/dist/lib/cjs/setting-components/folder-list-component.d.cts +73 -0
  68. package/dist/lib/cjs/setting-components/hotkey-component.cjs +260 -0
  69. package/dist/lib/cjs/setting-components/hotkey-component.d.cts +85 -0
  70. package/dist/lib/cjs/setting-components/index.cjs +13 -1
  71. package/dist/lib/cjs/setting-components/index.d.cts +4 -0
  72. package/dist/lib/cjs/setting-components/list-component.cjs +291 -0
  73. package/dist/lib/cjs/setting-components/list-component.d.cts +106 -0
  74. package/dist/lib/cjs/setting-components/tag-list-component.cjs +220 -0
  75. package/dist/lib/cjs/setting-components/tag-list-component.d.cts +82 -0
  76. package/dist/lib/cjs/setting-ex.cjs +51 -1
  77. package/dist/lib/cjs/setting-ex.d.cts +35 -1
  78. package/dist/lib/cjs/settings-tabs.cjs +258 -0
  79. package/dist/lib/cjs/settings-tabs.d.cts +101 -0
  80. package/dist/lib/esm/__merged.d.mts +20 -3
  81. package/dist/lib/esm/__merged.mjs +110 -2
  82. package/dist/lib/esm/anchored-suggest.d.mts +116 -0
  83. package/dist/lib/esm/anchored-suggest.mjs +144 -0
  84. package/dist/lib/esm/backlink-index.d.mts +23 -0
  85. package/dist/lib/esm/backlink-index.mjs +42 -7
  86. package/dist/lib/esm/bug-report.d.mts +1 -1
  87. package/dist/lib/esm/bug-report.mjs +4 -2
  88. package/dist/lib/esm/bulk-operation-progress.d.mts +22 -0
  89. package/dist/lib/esm/bulk-operation-progress.mjs +14 -1
  90. package/dist/lib/esm/case-insensitive-file-index.mjs +9 -1
  91. package/dist/lib/esm/code-block-render-handoff.d.mts +131 -0
  92. package/dist/lib/esm/code-block-render-handoff.mjs +183 -0
  93. package/dist/lib/esm/codemirror/index.d.mts +2 -0
  94. package/dist/lib/esm/codemirror/index.mjs +5 -1
  95. package/dist/lib/esm/codemirror/inline-token-widgets.d.mts +109 -0
  96. package/dist/lib/esm/codemirror/inline-token-widgets.mjs +167 -0
  97. package/dist/lib/esm/codemirror/settings-facet.d.mts +19 -0
  98. package/dist/lib/esm/codemirror/settings-facet.mjs +44 -0
  99. package/dist/lib/esm/community-plugins.d.mts +14 -0
  100. package/dist/lib/esm/community-plugins.mjs +18 -2
  101. package/dist/lib/esm/components/bulk-operation-commit-component.mjs +5 -2
  102. package/dist/lib/esm/components/index.d.mts +1 -0
  103. package/dist/lib/esm/components/index.mjs +3 -1
  104. package/dist/lib/esm/components/rename-delete-handler-component.mjs +105 -2
  105. package/dist/lib/esm/components/settings-facet-component.d.mts +68 -0
  106. package/dist/lib/esm/components/settings-facet-component.mjs +48 -0
  107. package/dist/lib/esm/css-class.d.mts +28 -0
  108. package/dist/lib/esm/css-class.mjs +8 -1
  109. package/dist/lib/esm/desktop-bulk-operation-git.d.mts +21 -1
  110. package/dist/lib/esm/desktop-bulk-operation-git.mjs +38 -13
  111. package/dist/lib/esm/desktop-request-url-stream.d.mts +22 -0
  112. package/dist/lib/esm/desktop-request-url-stream.mjs +170 -0
  113. package/dist/lib/esm/editor-suggest-registrar.d.mts +14 -2
  114. package/dist/lib/esm/editor-suggest-registrar.mjs +8 -2
  115. package/dist/lib/esm/editor-suggest.d.mts +103 -0
  116. package/dist/lib/esm/editor-suggest.mjs +109 -0
  117. package/dist/lib/esm/generated-during-build.mjs +2 -2
  118. package/dist/lib/esm/hotkey.d.mts +59 -0
  119. package/dist/lib/esm/hotkey.mjs +95 -0
  120. package/dist/lib/esm/i18n/locales/en.d.mts +13 -0
  121. package/dist/lib/esm/i18n/locales/en.mjs +14 -1
  122. package/dist/lib/esm/i18n/locales/translations-map.d.mts +13 -0
  123. package/dist/lib/esm/index.d.mts +10 -0
  124. package/dist/lib/esm/index.mjs +21 -1
  125. package/dist/lib/esm/inline-token-renderer.d.mts +88 -0
  126. package/dist/lib/esm/inline-token-renderer.mjs +59 -0
  127. package/dist/lib/esm/link-and-tag-input-suggest.d.mts +229 -0
  128. package/dist/lib/esm/link-and-tag-input-suggest.mjs +239 -0
  129. package/dist/lib/esm/markdown-code-block-processor.d.mts +18 -0
  130. package/dist/lib/esm/markdown-code-block-processor.mjs +16 -1
  131. package/dist/lib/esm/markdown.d.mts +10 -1
  132. package/dist/lib/esm/markdown.mjs +9 -1
  133. package/dist/lib/esm/modals/modal.d.mts +4 -0
  134. package/dist/lib/esm/modals/modal.mjs +8 -5
  135. package/dist/lib/esm/plugin/plugin.d.mts +2 -0
  136. package/dist/lib/esm/plugin/plugin.mjs +5 -2
  137. package/dist/lib/esm/rendered-markdown.d.mts +77 -0
  138. package/dist/lib/esm/rendered-markdown.mjs +219 -0
  139. package/dist/lib/esm/request-url.d.mts +233 -0
  140. package/dist/lib/esm/request-url.mjs +428 -0
  141. package/dist/lib/esm/setting-components/folder-list-component.d.mts +73 -0
  142. package/dist/lib/esm/setting-components/folder-list-component.mjs +131 -0
  143. package/dist/lib/esm/setting-components/hotkey-component.d.mts +85 -0
  144. package/dist/lib/esm/setting-components/hotkey-component.mjs +178 -0
  145. package/dist/lib/esm/setting-components/index.d.mts +4 -0
  146. package/dist/lib/esm/setting-components/index.mjs +9 -1
  147. package/dist/lib/esm/setting-components/list-component.d.mts +106 -0
  148. package/dist/lib/esm/setting-components/list-component.mjs +206 -0
  149. package/dist/lib/esm/setting-components/tag-list-component.d.mts +82 -0
  150. package/dist/lib/esm/setting-components/tag-list-component.mjs +131 -0
  151. package/dist/lib/esm/setting-ex.d.mts +35 -1
  152. package/dist/lib/esm/setting-ex.mjs +51 -1
  153. package/dist/lib/esm/settings-tabs.d.mts +101 -0
  154. package/dist/lib/esm/settings-tabs.mjs +170 -0
  155. package/dist/styles.css +83 -1
  156. package/package.json +3 -3
  157. package/setting-components/folder-list-component/package.json +6 -0
  158. package/setting-components/hotkey-component/package.json +6 -0
  159. package/setting-components/list-component/package.json +6 -0
  160. package/setting-components/tag-list-component/package.json +6 -0
@@ -5,6 +5,7 @@ if you want to view the source, please visit the github repository of this plugi
5
5
 
6
6
  import * as __merged from "./__merged.mjs";
7
7
  import * as active_file_provider from "./active-file-provider.mjs";
8
+ import * as anchored_suggest from "./anchored-suggest.mjs";
8
9
  import * as app from "./app.mjs";
9
10
  import * as async_with_notice from "./async-with-notice.mjs";
10
11
  import * as attachment_path from "./attachment-path.mjs";
@@ -20,6 +21,7 @@ import * as canvas from "./canvas.mjs";
20
21
  import * as case_insensitive_file_index from "./case-insensitive-file-index.mjs";
21
22
  import * as code_block_markdown_information from "./code-block-markdown-information.mjs";
22
23
  import * as code_block_reg_exp from "./code-block-reg-exp.mjs";
24
+ import * as code_block_render_handoff from "./code-block-render-handoff.mjs";
23
25
  import * as codemirror from "./codemirror/index.mjs";
24
26
  import * as command_handlers from "./command-handlers/index.mjs";
25
27
  import * as command_registrar from "./command-registrar.mjs";
@@ -38,9 +40,11 @@ import * as demo_vault_naming from "./demo-vault-naming.mjs";
38
40
  import * as desktop_bulk_operation_git from "./desktop-bulk-operation-git.mjs";
39
41
  import * as desktop_demo_vault_opener from "./desktop-demo-vault-opener.mjs";
40
42
  import * as desktop_operating_system from "./desktop-operating-system.mjs";
43
+ import * as desktop_request_url_stream from "./desktop-request-url-stream.mjs";
41
44
  import * as desktop_trusted_input from "./desktop-trusted-input.mjs";
42
45
  import * as editor_extension_registrar from "./editor-extension-registrar.mjs";
43
46
  import * as editor_suggest_registrar from "./editor-suggest-registrar.mjs";
47
+ import * as editor_suggest from "./editor-suggest.mjs";
44
48
  import * as editor from "./editor.mjs";
45
49
  import * as events from "./events.mjs";
46
50
  import * as extensions_registrar from "./extensions-registrar.mjs";
@@ -53,12 +57,15 @@ import * as frontmatter_formatting from "./frontmatter-formatting.mjs";
53
57
  import * as frontmatter_link_cache_with_offsets from "./frontmatter-link-cache-with-offsets.mjs";
54
58
  import * as frontmatter from "./frontmatter.mjs";
55
59
  import * as generated_during_build from "./generated-during-build.mjs";
60
+ import * as hotkey from "./hotkey.mjs";
56
61
  import * as hover_link_source_registrar from "./hover-link-source-registrar.mjs";
57
62
  import * as html_element from "./html-element.mjs";
58
63
  import * as i18n from "./i18n/index.mjs";
64
+ import * as inline_token_renderer from "./inline-token-renderer.mjs";
59
65
  import * as is_in_obsidian from "./is-in-obsidian.mjs";
60
66
  import * as library_styles from "./library-styles.mjs";
61
67
  import * as library from "./library.mjs";
68
+ import * as link_and_tag_input_suggest from "./link-and-tag-input-suggest.mjs";
62
69
  import * as link_name from "./link-name.mjs";
63
70
  import * as link_update_progress from "./link-update-progress.mjs";
64
71
  import * as link from "./link.mjs";
@@ -92,6 +99,8 @@ import * as property_entry from "./property-entry.mjs";
92
99
  import * as queue from "./queue.mjs";
93
100
  import * as react from "./react/index.mjs";
94
101
  import * as reference from "./reference.mjs";
102
+ import * as rendered_markdown from "./rendered-markdown.mjs";
103
+ import * as request_url from "./request-url.mjs";
95
104
  import * as resource_lock from "./resource-lock.mjs";
96
105
  import * as resource_url from "./resource-url.mjs";
97
106
  import * as ribbon_icon_registrar from "./ribbon-icon-registrar.mjs";
@@ -99,6 +108,7 @@ import * as setting_components from "./setting-components/index.mjs";
99
108
  import * as setting_ex from "./setting-ex.mjs";
100
109
  import * as setting_group_ex from "./setting-group-ex.mjs";
101
110
  import * as settings_modal from "./settings-modal.mjs";
111
+ import * as settings_tabs from "./settings-tabs.mjs";
102
112
  import * as status_bar_item_registrar from "./status-bar-item-registrar.mjs";
103
113
  import * as templater from "./templater.mjs";
104
114
  import * as transformers from "./transformers/index.mjs";
@@ -112,6 +122,7 @@ import * as workspace from "./workspace.mjs";
112
122
  export {
113
123
  __merged,
114
124
  active_file_provider as "active-file-provider",
125
+ anchored_suggest as "anchored-suggest",
115
126
  app,
116
127
  async_with_notice as "async-with-notice",
117
128
  attachment_path as "attachment-path",
@@ -127,6 +138,7 @@ export {
127
138
  case_insensitive_file_index as "case-insensitive-file-index",
128
139
  code_block_markdown_information as "code-block-markdown-information",
129
140
  code_block_reg_exp as "code-block-reg-exp",
141
+ code_block_render_handoff as "code-block-render-handoff",
130
142
  codemirror,
131
143
  command_handlers as "command-handlers",
132
144
  command_registrar as "command-registrar",
@@ -145,9 +157,11 @@ export {
145
157
  desktop_bulk_operation_git as "desktop-bulk-operation-git",
146
158
  desktop_demo_vault_opener as "desktop-demo-vault-opener",
147
159
  desktop_operating_system as "desktop-operating-system",
160
+ desktop_request_url_stream as "desktop-request-url-stream",
148
161
  desktop_trusted_input as "desktop-trusted-input",
149
162
  editor,
150
163
  editor_extension_registrar as "editor-extension-registrar",
164
+ editor_suggest as "editor-suggest",
151
165
  editor_suggest_registrar as "editor-suggest-registrar",
152
166
  events,
153
167
  extensions_registrar as "extensions-registrar",
@@ -160,13 +174,16 @@ export {
160
174
  frontmatter_formatting as "frontmatter-formatting",
161
175
  frontmatter_link_cache_with_offsets as "frontmatter-link-cache-with-offsets",
162
176
  generated_during_build as "generated-during-build",
177
+ hotkey,
163
178
  hover_link_source_registrar as "hover-link-source-registrar",
164
179
  html_element as "html-element",
165
180
  i18n,
181
+ inline_token_renderer as "inline-token-renderer",
166
182
  is_in_obsidian as "is-in-obsidian",
167
183
  library,
168
184
  library_styles as "library-styles",
169
185
  link,
186
+ link_and_tag_input_suggest as "link-and-tag-input-suggest",
170
187
  link_name as "link-name",
171
188
  link_update_progress as "link-update-progress",
172
189
  logger,
@@ -199,6 +216,8 @@ export {
199
216
  queue,
200
217
  react,
201
218
  reference,
219
+ rendered_markdown as "rendered-markdown",
220
+ request_url as "request-url",
202
221
  resource_lock as "resource-lock",
203
222
  resource_url as "resource-url",
204
223
  ribbon_icon_registrar as "ribbon-icon-registrar",
@@ -206,6 +225,7 @@ export {
206
225
  setting_ex as "setting-ex",
207
226
  setting_group_ex as "setting-group-ex",
208
227
  settings_modal as "settings-modal",
228
+ settings_tabs as "settings-tabs",
209
229
  status_bar_item_registrar as "status-bar-item-registrar",
210
230
  templater,
211
231
  transformers,
@@ -217,4 +237,4 @@ export {
217
237
  view_registrar as "view-registrar",
218
238
  workspace
219
239
  };
220
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2luZGV4LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKiBUSElTIElTIEEgR0VORVJBVEVEL0JVTkRMRUQgRklMRSBCWSBCVUlMRCBTQ1JJUFQgKi9cblxuZXhwb3J0ICogYXMgJ19fbWVyZ2VkJyBmcm9tICcuL19fbWVyZ2VkLnRzJztcbmV4cG9ydCAqIGFzICdhY3RpdmUtZmlsZS1wcm92aWRlcicgZnJvbSAnLi9hY3RpdmUtZmlsZS1wcm92aWRlci50cyc7XG5leHBvcnQgKiBhcyAnYXBwJyBmcm9tICcuL2FwcC50cyc7XG5leHBvcnQgKiBhcyAnYXN5bmMtd2l0aC1ub3RpY2UnIGZyb20gJy4vYXN5bmMtd2l0aC1ub3RpY2UudHMnO1xuZXhwb3J0ICogYXMgJ2F0dGFjaG1lbnQtcGF0aCcgZnJvbSAnLi9hdHRhY2htZW50LXBhdGgudHMnO1xuZXhwb3J0ICogYXMgJ2F0dGFjaG1lbnQtdW5pdC1mb2xkZXInIGZyb20gJy4vYXR0YWNobWVudC11bml0LWZvbGRlci50cyc7XG5leHBvcnQgKiBhcyAnYmFja2xpbmstaW5kZXgnIGZyb20gJy4vYmFja2xpbmstaW5kZXgudHMnO1xuZXhwb3J0ICogYXMgJ2JhY2tsaW5rJyBmcm9tICcuL2JhY2tsaW5rLnRzJztcbmV4cG9ydCAqIGFzICdiYXNlcy12aWV3LXJlZ2lzdHJhcicgZnJvbSAnLi9iYXNlcy12aWV3LXJlZ2lzdHJhci50cyc7XG5leHBvcnQgKiBhcyAnYnVnLXJlcG9ydCcgZnJvbSAnLi9idWctcmVwb3J0LnRzJztcbmV4cG9ydCAqIGFzICdidWxrLW9wZXJhdGlvbi1wcm9ncmVzcycgZnJvbSAnLi9idWxrLW9wZXJhdGlvbi1wcm9ncmVzcy50cyc7XG5leHBvcnQgKiBhcyAnYnVsay1vcGVyYXRpb24nIGZyb20gJy4vYnVsay1vcGVyYXRpb24udHMnO1xuZXhwb3J0ICogYXMgJ2NhbGxvdXQnIGZyb20gJy4vY2FsbG91dC50cyc7XG5leHBvcnQgKiBhcyAnY2FudmFzJyBmcm9tICcuL2NhbnZhcy50cyc7XG5leHBvcnQgKiBhcyAnY2FzZS1pbnNlbnNpdGl2ZS1maWxlLWluZGV4JyBmcm9tICcuL2Nhc2UtaW5zZW5zaXRpdmUtZmlsZS1pbmRleC50cyc7XG5leHBvcnQgKiBhcyAnY29kZS1ibG9jay1tYXJrZG93bi1pbmZvcm1hdGlvbicgZnJvbSAnLi9jb2RlLWJsb2NrLW1hcmtkb3duLWluZm9ybWF0aW9uLnRzJztcbmV4cG9ydCAqIGFzICdjb2RlLWJsb2NrLXJlZy1leHAnIGZyb20gJy4vY29kZS1ibG9jay1yZWctZXhwLnRzJztcbmV4cG9ydCAqIGFzICdjb2RlbWlycm9yJyBmcm9tICcuL2NvZGVtaXJyb3IvaW5kZXgudHMnO1xuZXhwb3J0ICogYXMgJ2NvbW1hbmQtaGFuZGxlcnMnIGZyb20gJy4vY29tbWFuZC1oYW5kbGVycy9pbmRleC50cyc7XG5leHBvcnQgKiBhcyAnY29tbWFuZC1yZWdpc3RyYXInIGZyb20gJy4vY29tbWFuZC1yZWdpc3RyYXIudHMnO1xuZXhwb3J0ICogYXMgJ2NvbW11bml0eS1wbHVnaW5zJyBmcm9tICcuL2NvbW11bml0eS1wbHVnaW5zLnRzJztcbmV4cG9ydCAqIGFzICdjb21wb25lbnRzJyBmcm9tICcuL2NvbXBvbmVudHMvaW5kZXgudHMnO1xuZXhwb3J0ICogYXMgJ2NvbnN0cnVjdG9ycycgZnJvbSAnLi9jb25zdHJ1Y3RvcnMvaW5kZXgudHMnO1xuZXhwb3J0ICogYXMgJ2Nzcy1jbGFzcycgZnJvbSAnLi9jc3MtY2xhc3MudHMnO1xuZXhwb3J0ICogYXMgJ2RhdGEtaGFuZGxlcicgZnJvbSAnLi9kYXRhLWhhbmRsZXIudHMnO1xuZXhwb3J0ICogYXMgJ2RhdGEtc3RvcmVzJyBmcm9tICcuL2RhdGEtc3RvcmVzL2luZGV4LnRzJztcbmV4cG9ydCAqIGFzICdkYXRhdmlldy1saW5rJyBmcm9tICcuL2RhdGF2aWV3LWxpbmsudHMnO1xuZXhwb3J0ICogYXMgJ2RhdGF2aWV3JyBmcm9tICcuL2RhdGF2aWV3LnRzJztcbmV4cG9ydCAqIGFzICdkZWJ1ZycgZnJvbSAnLi9kZWJ1Zy50cyc7XG5leHBvcnQgKiBhcyAnZGVtby12YXVsdC1oZWxwZXItc2V0dGluZ3MnIGZyb20gJy4vZGVtby12YXVsdC1oZWxwZXItc2V0dGluZ3MudHMnO1xuZXhwb3J0ICogYXMgJ2RlbW8tdmF1bHQtaGVscGVyJyBmcm9tICcuL2RlbW8tdmF1bHQtaGVscGVyLnRzJztcbmV4cG9ydCAqIGFzICdkZW1vLXZhdWx0LW5hbWluZycgZnJvbSAnLi9kZW1vLXZhdWx0LW5hbWluZy50cyc7XG5leHBvcnQgKiBhcyAnZGVza3RvcC1idWxrLW9wZXJhdGlvbi1naXQnIGZyb20gJy4vZGVza3RvcC1idWxrLW9wZXJhdGlvbi1naXQudHMnO1xuZXhwb3J0ICogYXMgJ2Rlc2t0b3AtZGVtby12YXVsdC1vcGVuZXInIGZyb20gJy4vZGVza3RvcC1kZW1vLXZhdWx0LW9wZW5lci50cyc7XG5leHBvcnQgKiBhcyAnZGVza3RvcC1vcGVyYXRpbmctc3lzdGVtJyBmcm9tICcuL2Rlc2t0b3Atb3BlcmF0aW5nLXN5c3RlbS50cyc7XG5leHBvcnQgKiBhcyAnZGVza3RvcC10cnVzdGVkLWlucHV0JyBmcm9tICcuL2Rlc2t0b3AtdHJ1c3RlZC1pbnB1dC50cyc7XG5leHBvcnQgKiBhcyAnZWRpdG9yLWV4dGVuc2lvbi1yZWdpc3RyYXInIGZyb20gJy4vZWRpdG9yLWV4dGVuc2lvbi1yZWdpc3RyYXIudHMnO1xuZXhwb3J0ICogYXMgJ2VkaXRvci1zdWdnZXN0LXJlZ2lzdHJhcicgZnJvbSAnLi9lZGl0b3Itc3VnZ2VzdC1yZWdpc3RyYXIudHMnO1xuZXhwb3J0ICogYXMgJ2VkaXRvcicgZnJvbSAnLi9lZGl0b3IudHMnO1xuZXhwb3J0ICogYXMgJ2V2ZW50cycgZnJvbSAnLi9ldmVudHMudHMnO1xuZXhwb3J0ICogYXMgJ2V4dGVuc2lvbnMtcmVnaXN0cmFyJyBmcm9tICcuL2V4dGVuc2lvbnMtcmVnaXN0cmFyLnRzJztcbmV4cG9ydCAqIGFzICdmaWxlLWNoYW5nZScgZnJvbSAnLi9maWxlLWNoYW5nZS50cyc7XG5leHBvcnQgKiBhcyAnZmlsZS1leHBsb3JlcicgZnJvbSAnLi9maWxlLWV4cGxvcmVyLnRzJztcbmV4cG9ydCAqIGFzICdmaWxlLW1hbmFnZXInIGZyb20gJy4vZmlsZS1tYW5hZ2VyLnRzJztcbmV4cG9ydCAqIGFzICdmaWxlLXN5c3RlbScgZnJvbSAnLi9maWxlLXN5c3RlbS50cyc7XG5leHBvcnQgKiBhcyAnZm9sZGVyLW5vdGUnIGZyb20gJy4vZm9sZGVyLW5vdGUudHMnO1xuZXhwb3J0ICogYXMgJ2Zyb250bWF0dGVyLWZvcm1hdHRpbmcnIGZyb20gJy4vZnJvbnRtYXR0ZXItZm9ybWF0dGluZy50cyc7XG5leHBvcnQgKiBhcyAnZnJvbnRtYXR0ZXItbGluay1jYWNoZS13aXRoLW9mZnNldHMnIGZyb20gJy4vZnJvbnRtYXR0ZXItbGluay1jYWNoZS13aXRoLW9mZnNldHMudHMnO1xuZXhwb3J0ICogYXMgJ2Zyb250bWF0dGVyJyBmcm9tICcuL2Zyb250bWF0dGVyLnRzJztcbmV4cG9ydCAqIGFzICdnZW5lcmF0ZWQtZHVyaW5nLWJ1aWxkJyBmcm9tICcuL2dlbmVyYXRlZC1kdXJpbmctYnVpbGQudHMnO1xuZXhwb3J0ICogYXMgJ2hvdmVyLWxpbmstc291cmNlLXJlZ2lzdHJhcicgZnJvbSAnLi9ob3Zlci1saW5rLXNvdXJjZS1yZWdpc3RyYXIudHMnO1xuZXhwb3J0ICogYXMgJ2h0bWwtZWxlbWVudCcgZnJvbSAnLi9odG1sLWVsZW1lbnQudHMnO1xuZXhwb3J0ICogYXMgJ2kxOG4nIGZyb20gJy4vaTE4bi9pbmRleC50cyc7XG5leHBvcnQgKiBhcyAnaXMtaW4tb2JzaWRpYW4nIGZyb20gJy4vaXMtaW4tb2JzaWRpYW4udHMnO1xuZXhwb3J0ICogYXMgJ2xpYnJhcnktc3R5bGVzJyBmcm9tICcuL2xpYnJhcnktc3R5bGVzLnRzJztcbmV4cG9ydCAqIGFzICdsaWJyYXJ5JyBmcm9tICcuL2xpYnJhcnkudHMnO1xuZXhwb3J0ICogYXMgJ2xpbmstbmFtZScgZnJvbSAnLi9saW5rLW5hbWUudHMnO1xuZXhwb3J0ICogYXMgJ2xpbmstdXBkYXRlLXByb2dyZXNzJyBmcm9tICcuL2xpbmstdXBkYXRlLXByb2dyZXNzLnRzJztcbmV4cG9ydCAqIGFzICdsaW5rJyBmcm9tICcuL2xpbmsudHMnO1xuZXhwb3J0ICogYXMgJ2xvZ2dlcicgZnJvbSAnLi9sb2dnZXIudHMnO1xuZXhwb3J0ICogYXMgJ2xvb3AnIGZyb20gJy4vbG9vcC50cyc7XG5leHBvcnQgKiBhcyAnbWFya2Rvd24tY29kZS1ibG9jay1wcm9jZXNzb3ItcmVnaXN0cmFyJyBmcm9tICcuL21hcmtkb3duLWNvZGUtYmxvY2stcHJvY2Vzc29yLXJlZ2lzdHJhci50cyc7XG5leHBvcnQgKiBhcyAnbWFya2Rvd24tY29kZS1ibG9jay1wcm9jZXNzb3InIGZyb20gJy4vbWFya2Rvd24tY29kZS1ibG9jay1wcm9jZXNzb3IudHMnO1xuZXhwb3J0ICogYXMgJ21hcmtkb3duLXBvc3QtcHJvY2Vzc29yLXJlZ2lzdHJhcicgZnJvbSAnLi9tYXJrZG93bi1wb3N0LXByb2Nlc3Nvci1yZWdpc3RyYXIudHMnO1xuZXhwb3J0ICogYXMgJ21hcmtkb3duLXZpZXcnIGZyb20gJy4vbWFya2Rvd24tdmlldy50cyc7XG5leHBvcnQgKiBhcyAnbWFya2Rvd24nIGZyb20gJy4vbWFya2Rvd24udHMnO1xuZXhwb3J0ICogYXMgJ21lbnUtZXZlbnQtcmVnaXN0cmFyJyBmcm9tICcuL21lbnUtZXZlbnQtcmVnaXN0cmFyLnRzJztcbmV4cG9ydCAqIGFzICdtZW51JyBmcm9tICcuL21lbnUudHMnO1xuZXhwb3J0ICogYXMgJ21ldGFkYXRhLWNhY2hlJyBmcm9tICcuL21ldGFkYXRhLWNhY2hlLnRzJztcbmV4cG9ydCAqIGFzICdtb2JpbGUtYXBwLWluZm8nIGZyb20gJy4vbW9iaWxlLWFwcC1pbmZvLnRzJztcbmV4cG9ydCAqIGFzICdtb2JpbGUtdHJ1c3RlZC1pbnB1dCcgZnJvbSAnLi9tb2JpbGUtdHJ1c3RlZC1pbnB1dC50cyc7XG5leHBvcnQgKiBhcyAnbW9kYWxzJyBmcm9tICcuL21vZGFscy9pbmRleC50cyc7XG5leHBvcnQgKiBhcyAnbm90ZS1wcmlvcml0eScgZnJvbSAnLi9ub3RlLXByaW9yaXR5LnRzJztcbmV4cG9ydCAqIGFzICdub3RlYm9vay1uYXZpZ2F0b3InIGZyb20gJy4vbm90ZWJvb2stbmF2aWdhdG9yLnRzJztcbmV4cG9ydCAqIGFzICdvYnNpZGlhbi1saWItc3RhdGUnIGZyb20gJy4vb2JzaWRpYW4tbGliLXN0YXRlLnRzJztcbmV4cG9ydCAqIGFzICdvYnNpZGlhbi1wcm90b2NvbC1oYW5kbGVyLXJlZ2lzdHJhcicgZnJvbSAnLi9vYnNpZGlhbi1wcm90b2NvbC1oYW5kbGVyLXJlZ2lzdHJhci50cyc7XG5leHBvcnQgKiBhcyAnb2JzaWRpYW4tc2V0dGluZ3MnIGZyb20gJy4vb2JzaWRpYW4tc2V0dGluZ3MudHMnO1xuZXhwb3J0ICogYXMgJ29ic2lkaWFuLXdvcmQtY2hhcmFjdGVycycgZnJvbSAnLi9vYnNpZGlhbi13b3JkLWNoYXJhY3RlcnMudHMnO1xuZXhwb3J0ICogYXMgJ3BhcnNlLWxpbmsnIGZyb20gJy4vcGFyc2UtbGluay50cyc7XG5leHBvcnQgKiBhcyAncGF0aC1zZXR0aW5ncycgZnJvbSAnLi9wYXRoLXNldHRpbmdzLnRzJztcbmV4cG9ydCAqIGFzICdwZGYnIGZyb20gJy4vcGRmLnRzJztcbmV4cG9ydCAqIGFzICdwbHVnaW4nIGZyb20gJy4vcGx1Z2luL2luZGV4LnRzJztcbmV4cG9ydCAqIGFzICdwbHVnaW4tY2xpLWhhbmRsZXItcmVnaXN0cmFyJyBmcm9tICcuL3BsdWdpbi1jbGktaGFuZGxlci1yZWdpc3RyYXIudHMnO1xuZXhwb3J0ICogYXMgJ3BvcG92ZXJzJyBmcm9tICcuL3BvcG92ZXJzL2luZGV4LnRzJztcbmV4cG9ydCAqIGFzICdwb3NpdGlvbicgZnJvbSAnLi9wb3NpdGlvbi50cyc7XG5leHBvcnQgKiBhcyAncHJvcGVydHktZW50cnknIGZyb20gJy4vcHJvcGVydHktZW50cnkudHMnO1xuZXhwb3J0ICogYXMgJ3F1ZXVlJyBmcm9tICcuL3F1ZXVlLnRzJztcbmV4cG9ydCAqIGFzICdyZWFjdCcgZnJvbSAnLi9yZWFjdC9pbmRleC50cyc7XG5leHBvcnQgKiBhcyAncmVmZXJlbmNlJyBmcm9tICcuL3JlZmVyZW5jZS50cyc7XG5leHBvcnQgKiBhcyAncmVzb3VyY2UtbG9jaycgZnJvbSAnLi9yZXNvdXJjZS1sb2NrLnRzJztcbmV4cG9ydCAqIGFzICdyZXNvdXJjZS11cmwnIGZyb20gJy4vcmVzb3VyY2UtdXJsLnRzJztcbmV4cG9ydCAqIGFzICdyaWJib24taWNvbi1yZWdpc3RyYXInIGZyb20gJy4vcmliYm9uLWljb24tcmVnaXN0cmFyLnRzJztcbmV4cG9ydCAqIGFzICdzZXR0aW5nLWNvbXBvbmVudHMnIGZyb20gJy4vc2V0dGluZy1jb21wb25lbnRzL2luZGV4LnRzJztcbmV4cG9ydCAqIGFzICdzZXR0aW5nLWV4JyBmcm9tICcuL3NldHRpbmctZXgudHMnO1xuZXhwb3J0ICogYXMgJ3NldHRpbmctZ3JvdXAtZXgnIGZyb20gJy4vc2V0dGluZy1ncm91cC1leC50cyc7XG5leHBvcnQgKiBhcyAnc2V0dGluZ3MtbW9kYWwnIGZyb20gJy4vc2V0dGluZ3MtbW9kYWwudHMnO1xuZXhwb3J0ICogYXMgJ3N0YXR1cy1iYXItaXRlbS1yZWdpc3RyYXInIGZyb20gJy4vc3RhdHVzLWJhci1pdGVtLXJlZ2lzdHJhci50cyc7XG5leHBvcnQgKiBhcyAndGVtcGxhdGVyJyBmcm9tICcuL3RlbXBsYXRlci50cyc7XG5leHBvcnQgKiBhcyAndHJhbnNmb3JtZXJzJyBmcm9tICcuL3RyYW5zZm9ybWVycy9pbmRleC50cyc7XG5leHBvcnQgKiBhcyAndHJ1c3RlZC1pbnB1dCcgZnJvbSAnLi90cnVzdGVkLWlucHV0LnRzJztcbmV4cG9ydCAqIGFzICd2YWxpZGF0aW9uJyBmcm9tICcuL3ZhbGlkYXRpb24udHMnO1xuZXhwb3J0ICogYXMgJ3ZhdWx0LWRlbGV0ZScgZnJvbSAnLi92YXVsdC1kZWxldGUudHMnO1xuZXhwb3J0ICogYXMgJ3ZhdWx0LXRyYW5zYWN0aW9uJyBmcm9tICcuL3ZhdWx0LXRyYW5zYWN0aW9uLnRzJztcbmV4cG9ydCAqIGFzICd2YXVsdCcgZnJvbSAnLi92YXVsdC50cyc7XG5leHBvcnQgKiBhcyAndmlldy1yZWdpc3RyYXInIGZyb20gJy4vdmlldy1yZWdpc3RyYXIudHMnO1xuZXhwb3J0ICogYXMgJ3dvcmtzcGFjZScgZnJvbSAnLi93b3Jrc3BhY2UudHMnO1xuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7QUFFQSxZQUFZLGNBQWdCO0FBQzVCLFlBQVlBLDBCQUE0QjtBQUN4QyxZQUFZLFNBQVc7QUFDdkIsWUFBWUMsdUJBQXlCO0FBQ3JDLFlBQVlDLHFCQUF1QjtBQUNuQyxZQUFZQyw0QkFBOEI7QUFDMUMsWUFBWUMsb0JBQXNCO0FBQ2xDLFlBQVksY0FBZ0I7QUFDNUIsWUFBWUMsMEJBQTRCO0FBQ3hDLFlBQVlDLGdCQUFrQjtBQUM5QixZQUFZQyw2QkFBK0I7QUFDM0MsWUFBWUMsb0JBQXNCO0FBQ2xDLFlBQVksYUFBZTtBQUMzQixZQUFZLFlBQWM7QUFDMUIsWUFBWUMsaUNBQW1DO0FBQy9DLFlBQVlDLHFDQUF1QztBQUNuRCxZQUFZQyx3QkFBMEI7QUFDdEMsWUFBWSxnQkFBa0I7QUFDOUIsWUFBWUMsc0JBQXdCO0FBQ3BDLFlBQVlDLHVCQUF5QjtBQUNyQyxZQUFZQyx1QkFBeUI7QUFDckMsWUFBWSxnQkFBa0I7QUFDOUIsWUFBWSxrQkFBb0I7QUFDaEMsWUFBWUMsZUFBaUI7QUFDN0IsWUFBWUMsa0JBQW9CO0FBQ2hDLFlBQVlDLGlCQUFtQjtBQUMvQixZQUFZQyxtQkFBcUI7QUFDakMsWUFBWSxjQUFnQjtBQUM1QixZQUFZLFdBQWE7QUFDekIsWUFBWUMsZ0NBQWtDO0FBQzlDLFlBQVlDLHVCQUF5QjtBQUNyQyxZQUFZQyx1QkFBeUI7QUFDckMsWUFBWUMsZ0NBQWtDO0FBQzlDLFlBQVlDLCtCQUFpQztBQUM3QyxZQUFZQyw4QkFBZ0M7QUFDNUMsWUFBWUMsMkJBQTZCO0FBQ3pDLFlBQVlDLGdDQUFrQztBQUM5QyxZQUFZQyw4QkFBZ0M7QUFDNUMsWUFBWSxZQUFjO0FBQzFCLFlBQVksWUFBYztBQUMxQixZQUFZQywwQkFBNEI7QUFDeEMsWUFBWUMsaUJBQW1CO0FBQy9CLFlBQVlDLG1CQUFxQjtBQUNqQyxZQUFZQyxrQkFBb0I7QUFDaEMsWUFBWUMsaUJBQW1CO0FBQy9CLFlBQVlDLGlCQUFtQjtBQUMvQixZQUFZQyw0QkFBOEI7QUFDMUMsWUFBWUMseUNBQTJDO0FBQ3ZELFlBQVksaUJBQW1CO0FBQy9CLFlBQVlDLDRCQUE4QjtBQUMxQyxZQUFZQyxpQ0FBbUM7QUFDL0MsWUFBWUMsa0JBQW9CO0FBQ2hDLFlBQVksVUFBWTtBQUN4QixZQUFZQyxvQkFBc0I7QUFDbEMsWUFBWUMsb0JBQXNCO0FBQ2xDLFlBQVksYUFBZTtBQUMzQixZQUFZQyxlQUFpQjtBQUM3QixZQUFZQywwQkFBNEI7QUFDeEMsWUFBWSxVQUFZO0FBQ3hCLFlBQVksWUFBYztBQUMxQixZQUFZLFVBQVk7QUFDeEIsWUFBWUMsNkNBQStDO0FBQzNELFlBQVlDLG1DQUFxQztBQUNqRCxZQUFZQyx1Q0FBeUM7QUFDckQsWUFBWUMsbUJBQXFCO0FBQ2pDLFlBQVksY0FBZ0I7QUFDNUIsWUFBWUMsMEJBQTRCO0FBQ3hDLFlBQVksVUFBWTtBQUN4QixZQUFZQyxvQkFBc0I7QUFDbEMsWUFBWUMscUJBQXVCO0FBQ25DLFlBQVlDLDBCQUE0QjtBQUN4QyxZQUFZLFlBQWM7QUFDMUIsWUFBWUMsbUJBQXFCO0FBQ2pDLFlBQVlDLHdCQUEwQjtBQUN0QyxZQUFZQyx3QkFBMEI7QUFDdEMsWUFBWUMseUNBQTJDO0FBQ3ZELFlBQVlDLHVCQUF5QjtBQUNyQyxZQUFZQyw4QkFBZ0M7QUFDNUMsWUFBWUMsZ0JBQWtCO0FBQzlCLFlBQVlDLG1CQUFxQjtBQUNqQyxZQUFZLFNBQVc7QUFDdkIsWUFBWSxZQUFjO0FBQzFCLFlBQVlDLGtDQUFvQztBQUNoRCxZQUFZLGNBQWdCO0FBQzVCLFlBQVksY0FBZ0I7QUFDNUIsWUFBWUMsb0JBQXNCO0FBQ2xDLFlBQVksV0FBYTtBQUN6QixZQUFZLFdBQWE7QUFDekIsWUFBWSxlQUFpQjtBQUM3QixZQUFZQyxtQkFBcUI7QUFDakMsWUFBWUMsa0JBQW9CO0FBQ2hDLFlBQVlDLDJCQUE2QjtBQUN6QyxZQUFZQyx3QkFBMEI7QUFDdEMsWUFBWUMsZ0JBQWtCO0FBQzlCLFlBQVlDLHNCQUF3QjtBQUNwQyxZQUFZQyxvQkFBc0I7QUFDbEMsWUFBWUMsK0JBQWlDO0FBQzdDLFlBQVksZUFBaUI7QUFDN0IsWUFBWSxrQkFBb0I7QUFDaEMsWUFBWUMsbUJBQXFCO0FBQ2pDLFlBQVksZ0JBQWtCO0FBQzlCLFlBQVlDLGtCQUFvQjtBQUNoQyxZQUFZQyx1QkFBeUI7QUFDckMsWUFBWSxXQUFhO0FBQ3pCLFlBQVlDLG9CQUFzQjtBQUNsQyxZQUFZLGVBQWlCOyIsCiAgIm5hbWVzIjogWyJhY3RpdmUtZmlsZS1wcm92aWRlciIsICJhc3luYy13aXRoLW5vdGljZSIsICJhdHRhY2htZW50LXBhdGgiLCAiYXR0YWNobWVudC11bml0LWZvbGRlciIsICJiYWNrbGluay1pbmRleCIsICJiYXNlcy12aWV3LXJlZ2lzdHJhciIsICJidWctcmVwb3J0IiwgImJ1bGstb3BlcmF0aW9uLXByb2dyZXNzIiwgImJ1bGstb3BlcmF0aW9uIiwgImNhc2UtaW5zZW5zaXRpdmUtZmlsZS1pbmRleCIsICJjb2RlLWJsb2NrLW1hcmtkb3duLWluZm9ybWF0aW9uIiwgImNvZGUtYmxvY2stcmVnLWV4cCIsICJjb21tYW5kLWhhbmRsZXJzIiwgImNvbW1hbmQtcmVnaXN0cmFyIiwgImNvbW11bml0eS1wbHVnaW5zIiwgImNzcy1jbGFzcyIsICJkYXRhLWhhbmRsZXIiLCAiZGF0YS1zdG9yZXMiLCAiZGF0YXZpZXctbGluayIsICJkZW1vLXZhdWx0LWhlbHBlci1zZXR0aW5ncyIsICJkZW1vLXZhdWx0LWhlbHBlciIsICJkZW1vLXZhdWx0LW5hbWluZyIsICJkZXNrdG9wLWJ1bGstb3BlcmF0aW9uLWdpdCIsICJkZXNrdG9wLWRlbW8tdmF1bHQtb3BlbmVyIiwgImRlc2t0b3Atb3BlcmF0aW5nLXN5c3RlbSIsICJkZXNrdG9wLXRydXN0ZWQtaW5wdXQiLCAiZWRpdG9yLWV4dGVuc2lvbi1yZWdpc3RyYXIiLCAiZWRpdG9yLXN1Z2dlc3QtcmVnaXN0cmFyIiwgImV4dGVuc2lvbnMtcmVnaXN0cmFyIiwgImZpbGUtY2hhbmdlIiwgImZpbGUtZXhwbG9yZXIiLCAiZmlsZS1tYW5hZ2VyIiwgImZpbGUtc3lzdGVtIiwgImZvbGRlci1ub3RlIiwgImZyb250bWF0dGVyLWZvcm1hdHRpbmciLCAiZnJvbnRtYXR0ZXItbGluay1jYWNoZS13aXRoLW9mZnNldHMiLCAiZ2VuZXJhdGVkLWR1cmluZy1idWlsZCIsICJob3Zlci1saW5rLXNvdXJjZS1yZWdpc3RyYXIiLCAiaHRtbC1lbGVtZW50IiwgImlzLWluLW9ic2lkaWFuIiwgImxpYnJhcnktc3R5bGVzIiwgImxpbmstbmFtZSIsICJsaW5rLXVwZGF0ZS1wcm9ncmVzcyIsICJtYXJrZG93bi1jb2RlLWJsb2NrLXByb2Nlc3Nvci1yZWdpc3RyYXIiLCAibWFya2Rvd24tY29kZS1ibG9jay1wcm9jZXNzb3IiLCAibWFya2Rvd24tcG9zdC1wcm9jZXNzb3ItcmVnaXN0cmFyIiwgIm1hcmtkb3duLXZpZXciLCAibWVudS1ldmVudC1yZWdpc3RyYXIiLCAibWV0YWRhdGEtY2FjaGUiLCAibW9iaWxlLWFwcC1pbmZvIiwgIm1vYmlsZS10cnVzdGVkLWlucHV0IiwgIm5vdGUtcHJpb3JpdHkiLCAibm90ZWJvb2stbmF2aWdhdG9yIiwgIm9ic2lkaWFuLWxpYi1zdGF0ZSIsICJvYnNpZGlhbi1wcm90b2NvbC1oYW5kbGVyLXJlZ2lzdHJhciIsICJvYnNpZGlhbi1zZXR0aW5ncyIsICJvYnNpZGlhbi13b3JkLWNoYXJhY3RlcnMiLCAicGFyc2UtbGluayIsICJwYXRoLXNldHRpbmdzIiwgInBsdWdpbi1jbGktaGFuZGxlci1yZWdpc3RyYXIiLCAicHJvcGVydHktZW50cnkiLCAicmVzb3VyY2UtbG9jayIsICJyZXNvdXJjZS11cmwiLCAicmliYm9uLWljb24tcmVnaXN0cmFyIiwgInNldHRpbmctY29tcG9uZW50cyIsICJzZXR0aW5nLWV4IiwgInNldHRpbmctZ3JvdXAtZXgiLCAic2V0dGluZ3MtbW9kYWwiLCAic3RhdHVzLWJhci1pdGVtLXJlZ2lzdHJhciIsICJ0cnVzdGVkLWlucHV0IiwgInZhdWx0LWRlbGV0ZSIsICJ2YXVsdC10cmFuc2FjdGlvbiIsICJ2aWV3LXJlZ2lzdHJhciJdCn0K
240
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2luZGV4LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKiBUSElTIElTIEEgR0VORVJBVEVEL0JVTkRMRUQgRklMRSBCWSBCVUlMRCBTQ1JJUFQgKi9cblxuZXhwb3J0ICogYXMgJ19fbWVyZ2VkJyBmcm9tICcuL19fbWVyZ2VkLnRzJztcbmV4cG9ydCAqIGFzICdhY3RpdmUtZmlsZS1wcm92aWRlcicgZnJvbSAnLi9hY3RpdmUtZmlsZS1wcm92aWRlci50cyc7XG5leHBvcnQgKiBhcyAnYW5jaG9yZWQtc3VnZ2VzdCcgZnJvbSAnLi9hbmNob3JlZC1zdWdnZXN0LnRzJztcbmV4cG9ydCAqIGFzICdhcHAnIGZyb20gJy4vYXBwLnRzJztcbmV4cG9ydCAqIGFzICdhc3luYy13aXRoLW5vdGljZScgZnJvbSAnLi9hc3luYy13aXRoLW5vdGljZS50cyc7XG5leHBvcnQgKiBhcyAnYXR0YWNobWVudC1wYXRoJyBmcm9tICcuL2F0dGFjaG1lbnQtcGF0aC50cyc7XG5leHBvcnQgKiBhcyAnYXR0YWNobWVudC11bml0LWZvbGRlcicgZnJvbSAnLi9hdHRhY2htZW50LXVuaXQtZm9sZGVyLnRzJztcbmV4cG9ydCAqIGFzICdiYWNrbGluay1pbmRleCcgZnJvbSAnLi9iYWNrbGluay1pbmRleC50cyc7XG5leHBvcnQgKiBhcyAnYmFja2xpbmsnIGZyb20gJy4vYmFja2xpbmsudHMnO1xuZXhwb3J0ICogYXMgJ2Jhc2VzLXZpZXctcmVnaXN0cmFyJyBmcm9tICcuL2Jhc2VzLXZpZXctcmVnaXN0cmFyLnRzJztcbmV4cG9ydCAqIGFzICdidWctcmVwb3J0JyBmcm9tICcuL2J1Zy1yZXBvcnQudHMnO1xuZXhwb3J0ICogYXMgJ2J1bGstb3BlcmF0aW9uLXByb2dyZXNzJyBmcm9tICcuL2J1bGstb3BlcmF0aW9uLXByb2dyZXNzLnRzJztcbmV4cG9ydCAqIGFzICdidWxrLW9wZXJhdGlvbicgZnJvbSAnLi9idWxrLW9wZXJhdGlvbi50cyc7XG5leHBvcnQgKiBhcyAnY2FsbG91dCcgZnJvbSAnLi9jYWxsb3V0LnRzJztcbmV4cG9ydCAqIGFzICdjYW52YXMnIGZyb20gJy4vY2FudmFzLnRzJztcbmV4cG9ydCAqIGFzICdjYXNlLWluc2Vuc2l0aXZlLWZpbGUtaW5kZXgnIGZyb20gJy4vY2FzZS1pbnNlbnNpdGl2ZS1maWxlLWluZGV4LnRzJztcbmV4cG9ydCAqIGFzICdjb2RlLWJsb2NrLW1hcmtkb3duLWluZm9ybWF0aW9uJyBmcm9tICcuL2NvZGUtYmxvY2stbWFya2Rvd24taW5mb3JtYXRpb24udHMnO1xuZXhwb3J0ICogYXMgJ2NvZGUtYmxvY2stcmVnLWV4cCcgZnJvbSAnLi9jb2RlLWJsb2NrLXJlZy1leHAudHMnO1xuZXhwb3J0ICogYXMgJ2NvZGUtYmxvY2stcmVuZGVyLWhhbmRvZmYnIGZyb20gJy4vY29kZS1ibG9jay1yZW5kZXItaGFuZG9mZi50cyc7XG5leHBvcnQgKiBhcyAnY29kZW1pcnJvcicgZnJvbSAnLi9jb2RlbWlycm9yL2luZGV4LnRzJztcbmV4cG9ydCAqIGFzICdjb21tYW5kLWhhbmRsZXJzJyBmcm9tICcuL2NvbW1hbmQtaGFuZGxlcnMvaW5kZXgudHMnO1xuZXhwb3J0ICogYXMgJ2NvbW1hbmQtcmVnaXN0cmFyJyBmcm9tICcuL2NvbW1hbmQtcmVnaXN0cmFyLnRzJztcbmV4cG9ydCAqIGFzICdjb21tdW5pdHktcGx1Z2lucycgZnJvbSAnLi9jb21tdW5pdHktcGx1Z2lucy50cyc7XG5leHBvcnQgKiBhcyAnY29tcG9uZW50cycgZnJvbSAnLi9jb21wb25lbnRzL2luZGV4LnRzJztcbmV4cG9ydCAqIGFzICdjb25zdHJ1Y3RvcnMnIGZyb20gJy4vY29uc3RydWN0b3JzL2luZGV4LnRzJztcbmV4cG9ydCAqIGFzICdjc3MtY2xhc3MnIGZyb20gJy4vY3NzLWNsYXNzLnRzJztcbmV4cG9ydCAqIGFzICdkYXRhLWhhbmRsZXInIGZyb20gJy4vZGF0YS1oYW5kbGVyLnRzJztcbmV4cG9ydCAqIGFzICdkYXRhLXN0b3JlcycgZnJvbSAnLi9kYXRhLXN0b3Jlcy9pbmRleC50cyc7XG5leHBvcnQgKiBhcyAnZGF0YXZpZXctbGluaycgZnJvbSAnLi9kYXRhdmlldy1saW5rLnRzJztcbmV4cG9ydCAqIGFzICdkYXRhdmlldycgZnJvbSAnLi9kYXRhdmlldy50cyc7XG5leHBvcnQgKiBhcyAnZGVidWcnIGZyb20gJy4vZGVidWcudHMnO1xuZXhwb3J0ICogYXMgJ2RlbW8tdmF1bHQtaGVscGVyLXNldHRpbmdzJyBmcm9tICcuL2RlbW8tdmF1bHQtaGVscGVyLXNldHRpbmdzLnRzJztcbmV4cG9ydCAqIGFzICdkZW1vLXZhdWx0LWhlbHBlcicgZnJvbSAnLi9kZW1vLXZhdWx0LWhlbHBlci50cyc7XG5leHBvcnQgKiBhcyAnZGVtby12YXVsdC1uYW1pbmcnIGZyb20gJy4vZGVtby12YXVsdC1uYW1pbmcudHMnO1xuZXhwb3J0ICogYXMgJ2Rlc2t0b3AtYnVsay1vcGVyYXRpb24tZ2l0JyBmcm9tICcuL2Rlc2t0b3AtYnVsay1vcGVyYXRpb24tZ2l0LnRzJztcbmV4cG9ydCAqIGFzICdkZXNrdG9wLWRlbW8tdmF1bHQtb3BlbmVyJyBmcm9tICcuL2Rlc2t0b3AtZGVtby12YXVsdC1vcGVuZXIudHMnO1xuZXhwb3J0ICogYXMgJ2Rlc2t0b3Atb3BlcmF0aW5nLXN5c3RlbScgZnJvbSAnLi9kZXNrdG9wLW9wZXJhdGluZy1zeXN0ZW0udHMnO1xuZXhwb3J0ICogYXMgJ2Rlc2t0b3AtcmVxdWVzdC11cmwtc3RyZWFtJyBmcm9tICcuL2Rlc2t0b3AtcmVxdWVzdC11cmwtc3RyZWFtLnRzJztcbmV4cG9ydCAqIGFzICdkZXNrdG9wLXRydXN0ZWQtaW5wdXQnIGZyb20gJy4vZGVza3RvcC10cnVzdGVkLWlucHV0LnRzJztcbmV4cG9ydCAqIGFzICdlZGl0b3ItZXh0ZW5zaW9uLXJlZ2lzdHJhcicgZnJvbSAnLi9lZGl0b3ItZXh0ZW5zaW9uLXJlZ2lzdHJhci50cyc7XG5leHBvcnQgKiBhcyAnZWRpdG9yLXN1Z2dlc3QtcmVnaXN0cmFyJyBmcm9tICcuL2VkaXRvci1zdWdnZXN0LXJlZ2lzdHJhci50cyc7XG5leHBvcnQgKiBhcyAnZWRpdG9yLXN1Z2dlc3QnIGZyb20gJy4vZWRpdG9yLXN1Z2dlc3QudHMnO1xuZXhwb3J0ICogYXMgJ2VkaXRvcicgZnJvbSAnLi9lZGl0b3IudHMnO1xuZXhwb3J0ICogYXMgJ2V2ZW50cycgZnJvbSAnLi9ldmVudHMudHMnO1xuZXhwb3J0ICogYXMgJ2V4dGVuc2lvbnMtcmVnaXN0cmFyJyBmcm9tICcuL2V4dGVuc2lvbnMtcmVnaXN0cmFyLnRzJztcbmV4cG9ydCAqIGFzICdmaWxlLWNoYW5nZScgZnJvbSAnLi9maWxlLWNoYW5nZS50cyc7XG5leHBvcnQgKiBhcyAnZmlsZS1leHBsb3JlcicgZnJvbSAnLi9maWxlLWV4cGxvcmVyLnRzJztcbmV4cG9ydCAqIGFzICdmaWxlLW1hbmFnZXInIGZyb20gJy4vZmlsZS1tYW5hZ2VyLnRzJztcbmV4cG9ydCAqIGFzICdmaWxlLXN5c3RlbScgZnJvbSAnLi9maWxlLXN5c3RlbS50cyc7XG5leHBvcnQgKiBhcyAnZm9sZGVyLW5vdGUnIGZyb20gJy4vZm9sZGVyLW5vdGUudHMnO1xuZXhwb3J0ICogYXMgJ2Zyb250bWF0dGVyLWZvcm1hdHRpbmcnIGZyb20gJy4vZnJvbnRtYXR0ZXItZm9ybWF0dGluZy50cyc7XG5leHBvcnQgKiBhcyAnZnJvbnRtYXR0ZXItbGluay1jYWNoZS13aXRoLW9mZnNldHMnIGZyb20gJy4vZnJvbnRtYXR0ZXItbGluay1jYWNoZS13aXRoLW9mZnNldHMudHMnO1xuZXhwb3J0ICogYXMgJ2Zyb250bWF0dGVyJyBmcm9tICcuL2Zyb250bWF0dGVyLnRzJztcbmV4cG9ydCAqIGFzICdnZW5lcmF0ZWQtZHVyaW5nLWJ1aWxkJyBmcm9tICcuL2dlbmVyYXRlZC1kdXJpbmctYnVpbGQudHMnO1xuZXhwb3J0ICogYXMgJ2hvdGtleScgZnJvbSAnLi9ob3RrZXkudHMnO1xuZXhwb3J0ICogYXMgJ2hvdmVyLWxpbmstc291cmNlLXJlZ2lzdHJhcicgZnJvbSAnLi9ob3Zlci1saW5rLXNvdXJjZS1yZWdpc3RyYXIudHMnO1xuZXhwb3J0ICogYXMgJ2h0bWwtZWxlbWVudCcgZnJvbSAnLi9odG1sLWVsZW1lbnQudHMnO1xuZXhwb3J0ICogYXMgJ2kxOG4nIGZyb20gJy4vaTE4bi9pbmRleC50cyc7XG5leHBvcnQgKiBhcyAnaW5saW5lLXRva2VuLXJlbmRlcmVyJyBmcm9tICcuL2lubGluZS10b2tlbi1yZW5kZXJlci50cyc7XG5leHBvcnQgKiBhcyAnaXMtaW4tb2JzaWRpYW4nIGZyb20gJy4vaXMtaW4tb2JzaWRpYW4udHMnO1xuZXhwb3J0ICogYXMgJ2xpYnJhcnktc3R5bGVzJyBmcm9tICcuL2xpYnJhcnktc3R5bGVzLnRzJztcbmV4cG9ydCAqIGFzICdsaWJyYXJ5JyBmcm9tICcuL2xpYnJhcnkudHMnO1xuZXhwb3J0ICogYXMgJ2xpbmstYW5kLXRhZy1pbnB1dC1zdWdnZXN0JyBmcm9tICcuL2xpbmstYW5kLXRhZy1pbnB1dC1zdWdnZXN0LnRzJztcbmV4cG9ydCAqIGFzICdsaW5rLW5hbWUnIGZyb20gJy4vbGluay1uYW1lLnRzJztcbmV4cG9ydCAqIGFzICdsaW5rLXVwZGF0ZS1wcm9ncmVzcycgZnJvbSAnLi9saW5rLXVwZGF0ZS1wcm9ncmVzcy50cyc7XG5leHBvcnQgKiBhcyAnbGluaycgZnJvbSAnLi9saW5rLnRzJztcbmV4cG9ydCAqIGFzICdsb2dnZXInIGZyb20gJy4vbG9nZ2VyLnRzJztcbmV4cG9ydCAqIGFzICdsb29wJyBmcm9tICcuL2xvb3AudHMnO1xuZXhwb3J0ICogYXMgJ21hcmtkb3duLWNvZGUtYmxvY2stcHJvY2Vzc29yLXJlZ2lzdHJhcicgZnJvbSAnLi9tYXJrZG93bi1jb2RlLWJsb2NrLXByb2Nlc3Nvci1yZWdpc3RyYXIudHMnO1xuZXhwb3J0ICogYXMgJ21hcmtkb3duLWNvZGUtYmxvY2stcHJvY2Vzc29yJyBmcm9tICcuL21hcmtkb3duLWNvZGUtYmxvY2stcHJvY2Vzc29yLnRzJztcbmV4cG9ydCAqIGFzICdtYXJrZG93bi1wb3N0LXByb2Nlc3Nvci1yZWdpc3RyYXInIGZyb20gJy4vbWFya2Rvd24tcG9zdC1wcm9jZXNzb3ItcmVnaXN0cmFyLnRzJztcbmV4cG9ydCAqIGFzICdtYXJrZG93bi12aWV3JyBmcm9tICcuL21hcmtkb3duLXZpZXcudHMnO1xuZXhwb3J0ICogYXMgJ21hcmtkb3duJyBmcm9tICcuL21hcmtkb3duLnRzJztcbmV4cG9ydCAqIGFzICdtZW51LWV2ZW50LXJlZ2lzdHJhcicgZnJvbSAnLi9tZW51LWV2ZW50LXJlZ2lzdHJhci50cyc7XG5leHBvcnQgKiBhcyAnbWVudScgZnJvbSAnLi9tZW51LnRzJztcbmV4cG9ydCAqIGFzICdtZXRhZGF0YS1jYWNoZScgZnJvbSAnLi9tZXRhZGF0YS1jYWNoZS50cyc7XG5leHBvcnQgKiBhcyAnbW9iaWxlLWFwcC1pbmZvJyBmcm9tICcuL21vYmlsZS1hcHAtaW5mby50cyc7XG5leHBvcnQgKiBhcyAnbW9iaWxlLXRydXN0ZWQtaW5wdXQnIGZyb20gJy4vbW9iaWxlLXRydXN0ZWQtaW5wdXQudHMnO1xuZXhwb3J0ICogYXMgJ21vZGFscycgZnJvbSAnLi9tb2RhbHMvaW5kZXgudHMnO1xuZXhwb3J0ICogYXMgJ25vdGUtcHJpb3JpdHknIGZyb20gJy4vbm90ZS1wcmlvcml0eS50cyc7XG5leHBvcnQgKiBhcyAnbm90ZWJvb2stbmF2aWdhdG9yJyBmcm9tICcuL25vdGVib29rLW5hdmlnYXRvci50cyc7XG5leHBvcnQgKiBhcyAnb2JzaWRpYW4tbGliLXN0YXRlJyBmcm9tICcuL29ic2lkaWFuLWxpYi1zdGF0ZS50cyc7XG5leHBvcnQgKiBhcyAnb2JzaWRpYW4tcHJvdG9jb2wtaGFuZGxlci1yZWdpc3RyYXInIGZyb20gJy4vb2JzaWRpYW4tcHJvdG9jb2wtaGFuZGxlci1yZWdpc3RyYXIudHMnO1xuZXhwb3J0ICogYXMgJ29ic2lkaWFuLXNldHRpbmdzJyBmcm9tICcuL29ic2lkaWFuLXNldHRpbmdzLnRzJztcbmV4cG9ydCAqIGFzICdvYnNpZGlhbi13b3JkLWNoYXJhY3RlcnMnIGZyb20gJy4vb2JzaWRpYW4td29yZC1jaGFyYWN0ZXJzLnRzJztcbmV4cG9ydCAqIGFzICdwYXJzZS1saW5rJyBmcm9tICcuL3BhcnNlLWxpbmsudHMnO1xuZXhwb3J0ICogYXMgJ3BhdGgtc2V0dGluZ3MnIGZyb20gJy4vcGF0aC1zZXR0aW5ncy50cyc7XG5leHBvcnQgKiBhcyAncGRmJyBmcm9tICcuL3BkZi50cyc7XG5leHBvcnQgKiBhcyAncGx1Z2luJyBmcm9tICcuL3BsdWdpbi9pbmRleC50cyc7XG5leHBvcnQgKiBhcyAncGx1Z2luLWNsaS1oYW5kbGVyLXJlZ2lzdHJhcicgZnJvbSAnLi9wbHVnaW4tY2xpLWhhbmRsZXItcmVnaXN0cmFyLnRzJztcbmV4cG9ydCAqIGFzICdwb3BvdmVycycgZnJvbSAnLi9wb3BvdmVycy9pbmRleC50cyc7XG5leHBvcnQgKiBhcyAncG9zaXRpb24nIGZyb20gJy4vcG9zaXRpb24udHMnO1xuZXhwb3J0ICogYXMgJ3Byb3BlcnR5LWVudHJ5JyBmcm9tICcuL3Byb3BlcnR5LWVudHJ5LnRzJztcbmV4cG9ydCAqIGFzICdxdWV1ZScgZnJvbSAnLi9xdWV1ZS50cyc7XG5leHBvcnQgKiBhcyAncmVhY3QnIGZyb20gJy4vcmVhY3QvaW5kZXgudHMnO1xuZXhwb3J0ICogYXMgJ3JlZmVyZW5jZScgZnJvbSAnLi9yZWZlcmVuY2UudHMnO1xuZXhwb3J0ICogYXMgJ3JlbmRlcmVkLW1hcmtkb3duJyBmcm9tICcuL3JlbmRlcmVkLW1hcmtkb3duLnRzJztcbmV4cG9ydCAqIGFzICdyZXF1ZXN0LXVybCcgZnJvbSAnLi9yZXF1ZXN0LXVybC50cyc7XG5leHBvcnQgKiBhcyAncmVzb3VyY2UtbG9jaycgZnJvbSAnLi9yZXNvdXJjZS1sb2NrLnRzJztcbmV4cG9ydCAqIGFzICdyZXNvdXJjZS11cmwnIGZyb20gJy4vcmVzb3VyY2UtdXJsLnRzJztcbmV4cG9ydCAqIGFzICdyaWJib24taWNvbi1yZWdpc3RyYXInIGZyb20gJy4vcmliYm9uLWljb24tcmVnaXN0cmFyLnRzJztcbmV4cG9ydCAqIGFzICdzZXR0aW5nLWNvbXBvbmVudHMnIGZyb20gJy4vc2V0dGluZy1jb21wb25lbnRzL2luZGV4LnRzJztcbmV4cG9ydCAqIGFzICdzZXR0aW5nLWV4JyBmcm9tICcuL3NldHRpbmctZXgudHMnO1xuZXhwb3J0ICogYXMgJ3NldHRpbmctZ3JvdXAtZXgnIGZyb20gJy4vc2V0dGluZy1ncm91cC1leC50cyc7XG5leHBvcnQgKiBhcyAnc2V0dGluZ3MtbW9kYWwnIGZyb20gJy4vc2V0dGluZ3MtbW9kYWwudHMnO1xuZXhwb3J0ICogYXMgJ3NldHRpbmdzLXRhYnMnIGZyb20gJy4vc2V0dGluZ3MtdGFicy50cyc7XG5leHBvcnQgKiBhcyAnc3RhdHVzLWJhci1pdGVtLXJlZ2lzdHJhcicgZnJvbSAnLi9zdGF0dXMtYmFyLWl0ZW0tcmVnaXN0cmFyLnRzJztcbmV4cG9ydCAqIGFzICd0ZW1wbGF0ZXInIGZyb20gJy4vdGVtcGxhdGVyLnRzJztcbmV4cG9ydCAqIGFzICd0cmFuc2Zvcm1lcnMnIGZyb20gJy4vdHJhbnNmb3JtZXJzL2luZGV4LnRzJztcbmV4cG9ydCAqIGFzICd0cnVzdGVkLWlucHV0JyBmcm9tICcuL3RydXN0ZWQtaW5wdXQudHMnO1xuZXhwb3J0ICogYXMgJ3ZhbGlkYXRpb24nIGZyb20gJy4vdmFsaWRhdGlvbi50cyc7XG5leHBvcnQgKiBhcyAndmF1bHQtZGVsZXRlJyBmcm9tICcuL3ZhdWx0LWRlbGV0ZS50cyc7XG5leHBvcnQgKiBhcyAndmF1bHQtdHJhbnNhY3Rpb24nIGZyb20gJy4vdmF1bHQtdHJhbnNhY3Rpb24udHMnO1xuZXhwb3J0ICogYXMgJ3ZhdWx0JyBmcm9tICcuL3ZhdWx0LnRzJztcbmV4cG9ydCAqIGFzICd2aWV3LXJlZ2lzdHJhcicgZnJvbSAnLi92aWV3LXJlZ2lzdHJhci50cyc7XG5leHBvcnQgKiBhcyAnd29ya3NwYWNlJyBmcm9tICcuL3dvcmtzcGFjZS50cyc7XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7OztBQUVBLFlBQVksY0FBZ0I7QUFDNUIsWUFBWUEsMEJBQTRCO0FBQ3hDLFlBQVlDLHNCQUF3QjtBQUNwQyxZQUFZLFNBQVc7QUFDdkIsWUFBWUMsdUJBQXlCO0FBQ3JDLFlBQVlDLHFCQUF1QjtBQUNuQyxZQUFZQyw0QkFBOEI7QUFDMUMsWUFBWUMsb0JBQXNCO0FBQ2xDLFlBQVksY0FBZ0I7QUFDNUIsWUFBWUMsMEJBQTRCO0FBQ3hDLFlBQVlDLGdCQUFrQjtBQUM5QixZQUFZQyw2QkFBK0I7QUFDM0MsWUFBWUMsb0JBQXNCO0FBQ2xDLFlBQVksYUFBZTtBQUMzQixZQUFZLFlBQWM7QUFDMUIsWUFBWUMsaUNBQW1DO0FBQy9DLFlBQVlDLHFDQUF1QztBQUNuRCxZQUFZQyx3QkFBMEI7QUFDdEMsWUFBWUMsK0JBQWlDO0FBQzdDLFlBQVksZ0JBQWtCO0FBQzlCLFlBQVlDLHNCQUF3QjtBQUNwQyxZQUFZQyx1QkFBeUI7QUFDckMsWUFBWUMsdUJBQXlCO0FBQ3JDLFlBQVksZ0JBQWtCO0FBQzlCLFlBQVksa0JBQW9CO0FBQ2hDLFlBQVlDLGVBQWlCO0FBQzdCLFlBQVlDLGtCQUFvQjtBQUNoQyxZQUFZQyxpQkFBbUI7QUFDL0IsWUFBWUMsbUJBQXFCO0FBQ2pDLFlBQVksY0FBZ0I7QUFDNUIsWUFBWSxXQUFhO0FBQ3pCLFlBQVlDLGdDQUFrQztBQUM5QyxZQUFZQyx1QkFBeUI7QUFDckMsWUFBWUMsdUJBQXlCO0FBQ3JDLFlBQVlDLGdDQUFrQztBQUM5QyxZQUFZQywrQkFBaUM7QUFDN0MsWUFBWUMsOEJBQWdDO0FBQzVDLFlBQVlDLGdDQUFrQztBQUM5QyxZQUFZQywyQkFBNkI7QUFDekMsWUFBWUMsZ0NBQWtDO0FBQzlDLFlBQVlDLDhCQUFnQztBQUM1QyxZQUFZQyxvQkFBc0I7QUFDbEMsWUFBWSxZQUFjO0FBQzFCLFlBQVksWUFBYztBQUMxQixZQUFZQywwQkFBNEI7QUFDeEMsWUFBWUMsaUJBQW1CO0FBQy9CLFlBQVlDLG1CQUFxQjtBQUNqQyxZQUFZQyxrQkFBb0I7QUFDaEMsWUFBWUMsaUJBQW1CO0FBQy9CLFlBQVlDLGlCQUFtQjtBQUMvQixZQUFZQyw0QkFBOEI7QUFDMUMsWUFBWUMseUNBQTJDO0FBQ3ZELFlBQVksaUJBQW1CO0FBQy9CLFlBQVlDLDRCQUE4QjtBQUMxQyxZQUFZLFlBQWM7QUFDMUIsWUFBWUMsaUNBQW1DO0FBQy9DLFlBQVlDLGtCQUFvQjtBQUNoQyxZQUFZLFVBQVk7QUFDeEIsWUFBWUMsMkJBQTZCO0FBQ3pDLFlBQVlDLG9CQUFzQjtBQUNsQyxZQUFZQyxvQkFBc0I7QUFDbEMsWUFBWSxhQUFlO0FBQzNCLFlBQVlDLGdDQUFrQztBQUM5QyxZQUFZQyxlQUFpQjtBQUM3QixZQUFZQywwQkFBNEI7QUFDeEMsWUFBWSxVQUFZO0FBQ3hCLFlBQVksWUFBYztBQUMxQixZQUFZLFVBQVk7QUFDeEIsWUFBWUMsNkNBQStDO0FBQzNELFlBQVlDLG1DQUFxQztBQUNqRCxZQUFZQyx1Q0FBeUM7QUFDckQsWUFBWUMsbUJBQXFCO0FBQ2pDLFlBQVksY0FBZ0I7QUFDNUIsWUFBWUMsMEJBQTRCO0FBQ3hDLFlBQVksVUFBWTtBQUN4QixZQUFZQyxvQkFBc0I7QUFDbEMsWUFBWUMscUJBQXVCO0FBQ25DLFlBQVlDLDBCQUE0QjtBQUN4QyxZQUFZLFlBQWM7QUFDMUIsWUFBWUMsbUJBQXFCO0FBQ2pDLFlBQVlDLHdCQUEwQjtBQUN0QyxZQUFZQyx3QkFBMEI7QUFDdEMsWUFBWUMseUNBQTJDO0FBQ3ZELFlBQVlDLHVCQUF5QjtBQUNyQyxZQUFZQyw4QkFBZ0M7QUFDNUMsWUFBWUMsZ0JBQWtCO0FBQzlCLFlBQVlDLG1CQUFxQjtBQUNqQyxZQUFZLFNBQVc7QUFDdkIsWUFBWSxZQUFjO0FBQzFCLFlBQVlDLGtDQUFvQztBQUNoRCxZQUFZLGNBQWdCO0FBQzVCLFlBQVksY0FBZ0I7QUFDNUIsWUFBWUMsb0JBQXNCO0FBQ2xDLFlBQVksV0FBYTtBQUN6QixZQUFZLFdBQWE7QUFDekIsWUFBWSxlQUFpQjtBQUM3QixZQUFZQyx1QkFBeUI7QUFDckMsWUFBWUMsaUJBQW1CO0FBQy9CLFlBQVlDLG1CQUFxQjtBQUNqQyxZQUFZQyxrQkFBb0I7QUFDaEMsWUFBWUMsMkJBQTZCO0FBQ3pDLFlBQVlDLHdCQUEwQjtBQUN0QyxZQUFZQyxnQkFBa0I7QUFDOUIsWUFBWUMsc0JBQXdCO0FBQ3BDLFlBQVlDLG9CQUFzQjtBQUNsQyxZQUFZQyxtQkFBcUI7QUFDakMsWUFBWUMsK0JBQWlDO0FBQzdDLFlBQVksZUFBaUI7QUFDN0IsWUFBWSxrQkFBb0I7QUFDaEMsWUFBWUMsbUJBQXFCO0FBQ2pDLFlBQVksZ0JBQWtCO0FBQzlCLFlBQVlDLGtCQUFvQjtBQUNoQyxZQUFZQyx1QkFBeUI7QUFDckMsWUFBWSxXQUFhO0FBQ3pCLFlBQVlDLG9CQUFzQjtBQUNsQyxZQUFZLGVBQWlCOyIsCiAgIm5hbWVzIjogWyJhY3RpdmUtZmlsZS1wcm92aWRlciIsICJhbmNob3JlZC1zdWdnZXN0IiwgImFzeW5jLXdpdGgtbm90aWNlIiwgImF0dGFjaG1lbnQtcGF0aCIsICJhdHRhY2htZW50LXVuaXQtZm9sZGVyIiwgImJhY2tsaW5rLWluZGV4IiwgImJhc2VzLXZpZXctcmVnaXN0cmFyIiwgImJ1Zy1yZXBvcnQiLCAiYnVsay1vcGVyYXRpb24tcHJvZ3Jlc3MiLCAiYnVsay1vcGVyYXRpb24iLCAiY2FzZS1pbnNlbnNpdGl2ZS1maWxlLWluZGV4IiwgImNvZGUtYmxvY2stbWFya2Rvd24taW5mb3JtYXRpb24iLCAiY29kZS1ibG9jay1yZWctZXhwIiwgImNvZGUtYmxvY2stcmVuZGVyLWhhbmRvZmYiLCAiY29tbWFuZC1oYW5kbGVycyIsICJjb21tYW5kLXJlZ2lzdHJhciIsICJjb21tdW5pdHktcGx1Z2lucyIsICJjc3MtY2xhc3MiLCAiZGF0YS1oYW5kbGVyIiwgImRhdGEtc3RvcmVzIiwgImRhdGF2aWV3LWxpbmsiLCAiZGVtby12YXVsdC1oZWxwZXItc2V0dGluZ3MiLCAiZGVtby12YXVsdC1oZWxwZXIiLCAiZGVtby12YXVsdC1uYW1pbmciLCAiZGVza3RvcC1idWxrLW9wZXJhdGlvbi1naXQiLCAiZGVza3RvcC1kZW1vLXZhdWx0LW9wZW5lciIsICJkZXNrdG9wLW9wZXJhdGluZy1zeXN0ZW0iLCAiZGVza3RvcC1yZXF1ZXN0LXVybC1zdHJlYW0iLCAiZGVza3RvcC10cnVzdGVkLWlucHV0IiwgImVkaXRvci1leHRlbnNpb24tcmVnaXN0cmFyIiwgImVkaXRvci1zdWdnZXN0LXJlZ2lzdHJhciIsICJlZGl0b3Itc3VnZ2VzdCIsICJleHRlbnNpb25zLXJlZ2lzdHJhciIsICJmaWxlLWNoYW5nZSIsICJmaWxlLWV4cGxvcmVyIiwgImZpbGUtbWFuYWdlciIsICJmaWxlLXN5c3RlbSIsICJmb2xkZXItbm90ZSIsICJmcm9udG1hdHRlci1mb3JtYXR0aW5nIiwgImZyb250bWF0dGVyLWxpbmstY2FjaGUtd2l0aC1vZmZzZXRzIiwgImdlbmVyYXRlZC1kdXJpbmctYnVpbGQiLCAiaG92ZXItbGluay1zb3VyY2UtcmVnaXN0cmFyIiwgImh0bWwtZWxlbWVudCIsICJpbmxpbmUtdG9rZW4tcmVuZGVyZXIiLCAiaXMtaW4tb2JzaWRpYW4iLCAibGlicmFyeS1zdHlsZXMiLCAibGluay1hbmQtdGFnLWlucHV0LXN1Z2dlc3QiLCAibGluay1uYW1lIiwgImxpbmstdXBkYXRlLXByb2dyZXNzIiwgIm1hcmtkb3duLWNvZGUtYmxvY2stcHJvY2Vzc29yLXJlZ2lzdHJhciIsICJtYXJrZG93bi1jb2RlLWJsb2NrLXByb2Nlc3NvciIsICJtYXJrZG93bi1wb3N0LXByb2Nlc3Nvci1yZWdpc3RyYXIiLCAibWFya2Rvd24tdmlldyIsICJtZW51LWV2ZW50LXJlZ2lzdHJhciIsICJtZXRhZGF0YS1jYWNoZSIsICJtb2JpbGUtYXBwLWluZm8iLCAibW9iaWxlLXRydXN0ZWQtaW5wdXQiLCAibm90ZS1wcmlvcml0eSIsICJub3RlYm9vay1uYXZpZ2F0b3IiLCAib2JzaWRpYW4tbGliLXN0YXRlIiwgIm9ic2lkaWFuLXByb3RvY29sLWhhbmRsZXItcmVnaXN0cmFyIiwgIm9ic2lkaWFuLXNldHRpbmdzIiwgIm9ic2lkaWFuLXdvcmQtY2hhcmFjdGVycyIsICJwYXJzZS1saW5rIiwgInBhdGgtc2V0dGluZ3MiLCAicGx1Z2luLWNsaS1oYW5kbGVyLXJlZ2lzdHJhciIsICJwcm9wZXJ0eS1lbnRyeSIsICJyZW5kZXJlZC1tYXJrZG93biIsICJyZXF1ZXN0LXVybCIsICJyZXNvdXJjZS1sb2NrIiwgInJlc291cmNlLXVybCIsICJyaWJib24taWNvbi1yZWdpc3RyYXIiLCAic2V0dGluZy1jb21wb25lbnRzIiwgInNldHRpbmctZXgiLCAic2V0dGluZy1ncm91cC1leCIsICJzZXR0aW5ncy1tb2RhbCIsICJzZXR0aW5ncy10YWJzIiwgInN0YXR1cy1iYXItaXRlbS1yZWdpc3RyYXIiLCAidHJ1c3RlZC1pbnB1dCIsICJ2YXVsdC1kZWxldGUiLCAidmF1bHQtdHJhbnNhY3Rpb24iLCAidmlldy1yZWdpc3RyYXIiXQp9Cg==
@@ -0,0 +1,88 @@
1
+ /// <reference path="./library-references.d.mts" />
2
+ /// <reference lib="dom" />
3
+ /**
4
+ * @file
5
+ *
6
+ * One definition of an inline token that renders in both Reading view and Live Preview.
7
+ *
8
+ * A token is a regular expression and a render function. {@link registerInlineTokenRenderer} registers a Markdown
9
+ * post processor that renders every match found in the rendered text, and an editor extension that replaces every
10
+ * match with a widget in Live Preview, both calling the same function, so the two views cannot drift apart.
11
+ *
12
+ * The Reading-view half walks text nodes only, so a token is never matched across an element boundary, and it skips
13
+ * text inside the elements `skipSelector` names (code by default). The editor half matches each line's source text,
14
+ * Markdown markup included; see `shouldDecorate` to skip code there.
15
+ */
16
+ import type { MarkdownPostProcessorContext } from 'obsidian';
17
+ import type { CreateInlineTokenWidgetsExtensionParams, InlineTokenRenderFunction } from './codemirror/inline-token-widgets.mjs';
18
+ import type { EditorExtensionRegistrar } from './editor-extension-registrar.mjs';
19
+ import type { MarkdownPostProcessorRegistrar } from './markdown-post-processor-registrar.mjs';
20
+ /**
21
+ * The default selector of the elements whose text is never matched in Reading view.
22
+ */
23
+ export declare const DEFAULT_INLINE_TOKEN_SKIP_SELECTOR = "code, pre";
24
+ /**
25
+ * Parameters for {@link createInlineTokenPostProcessor}.
26
+ */
27
+ export interface CreateInlineTokenPostProcessorParams {
28
+ /**
29
+ * The regular expression a token matches. The `g` flag is added when missing.
30
+ */
31
+ readonly regExp: RegExp;
32
+ /**
33
+ * Renders a token into its element.
34
+ */
35
+ readonly render: InlineTokenRenderFunction;
36
+ /**
37
+ * The selector of the elements whose text is never matched.
38
+ *
39
+ * @default {@link DEFAULT_INLINE_TOKEN_SKIP_SELECTOR}
40
+ */
41
+ readonly skipSelector?: string;
42
+ }
43
+ /**
44
+ * Parameters for {@link registerInlineTokenRenderer}.
45
+ */
46
+ export interface RegisterInlineTokenRendererParams extends CreateInlineTokenPostProcessorParams, CreateInlineTokenWidgetsExtensionParams {
47
+ /**
48
+ * The registrar the editor extension is registered through.
49
+ */
50
+ readonly editorExtensionRegistrar: EditorExtensionRegistrar;
51
+ /**
52
+ * The registrar the Reading-view post processor is registered through.
53
+ */
54
+ readonly markdownPostProcessorRegistrar: MarkdownPostProcessorRegistrar;
55
+ /**
56
+ * The sort order of the post processor.
57
+ *
58
+ * @default `0`
59
+ */
60
+ readonly sortOrder?: number;
61
+ }
62
+ /**
63
+ * Creates a Markdown post processor that renders every match of a regular expression found in the rendered text.
64
+ *
65
+ * @param params - The post processor parameters.
66
+ * @returns The post processor.
67
+ */
68
+ export declare function createInlineTokenPostProcessor(params: CreateInlineTokenPostProcessorParams): (element: HTMLElement, context: Pick<MarkdownPostProcessorContext, 'sourcePath'>) => void;
69
+ /**
70
+ * Registers an inline token in both Reading view and Live Preview, from one definition.
71
+ *
72
+ * Obsidian ties both registrations to the plugin's lifetime and offers no way to remove either earlier.
73
+ *
74
+ * @param params - The registration parameters.
75
+ *
76
+ * @example
77
+ * ```ts
78
+ * registerInlineTokenRenderer({
79
+ * editorExtensionRegistrar: new PluginEditorExtensionRegistrar(this),
80
+ * markdownPostProcessorRegistrar: new PluginMarkdownPostProcessorRegistrar(this),
81
+ * regExp: /:([a-z]+):/,
82
+ * render({ containerEl, match }) {
83
+ * containerEl.setText(EMOJI[match[1] ?? ''] ?? match[0]);
84
+ * }
85
+ * });
86
+ * ```
87
+ */
88
+ export declare function registerInlineTokenRenderer(params: RegisterInlineTokenRendererParams): void;
@@ -0,0 +1,59 @@
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
+
6
+ import {
7
+ createInlineTokenWidgetsExtension,
8
+ execAll,
9
+ toGlobalRegExp
10
+ } from "./codemirror/inline-token-widgets.mjs";
11
+ import { CssClass } from "./css-class.mjs";
12
+ const DEFAULT_INLINE_TOKEN_SKIP_SELECTOR = "code, pre";
13
+ function createInlineTokenPostProcessor(params) {
14
+ const regExp = toGlobalRegExp(params.regExp);
15
+ const skipSelector = params.skipSelector ?? DEFAULT_INLINE_TOKEN_SKIP_SELECTOR;
16
+ return (element, context) => {
17
+ const doc = element.ownerDocument;
18
+ const walker = doc.createTreeWalker(element, NodeFilter.SHOW_TEXT);
19
+ const textNodes = [];
20
+ for (let node = walker.nextNode(); node !== null; node = walker.nextNode()) {
21
+ textNodes.push(node);
22
+ }
23
+ for (const textNode of textNodes) {
24
+ if (textNode.parentElement?.closest(skipSelector)) {
25
+ continue;
26
+ }
27
+ const text = textNode.data;
28
+ const matches = execAll(regExp, text);
29
+ if (matches.length === 0) {
30
+ continue;
31
+ }
32
+ const fragment = doc.win.createFragment();
33
+ let lastIndex = 0;
34
+ for (const match of matches) {
35
+ fragment.append(text.slice(lastIndex, match.index));
36
+ const containerEl = doc.win.createSpan();
37
+ containerEl.classList.add(CssClass.LibraryName, CssClass.InlineToken);
38
+ params.render({ containerEl, match, sourcePath: context.sourcePath });
39
+ fragment.append(containerEl);
40
+ lastIndex = match.index + match[0].length;
41
+ }
42
+ fragment.append(text.slice(lastIndex));
43
+ textNode.replaceWith(fragment);
44
+ }
45
+ };
46
+ }
47
+ function registerInlineTokenRenderer(params) {
48
+ params.markdownPostProcessorRegistrar.registerMarkdownPostProcessor({
49
+ postProcessor: createInlineTokenPostProcessor(params),
50
+ ...params.sortOrder !== void 0 && { sortOrder: params.sortOrder }
51
+ });
52
+ params.editorExtensionRegistrar.registerEditorExtension(createInlineTokenWidgetsExtension(params));
53
+ }
54
+ export {
55
+ DEFAULT_INLINE_TOKEN_SKIP_SELECTOR,
56
+ createInlineTokenPostProcessor,
57
+ registerInlineTokenRenderer
58
+ };
59
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2lubGluZS10b2tlbi1yZW5kZXJlci50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIE9uZSBkZWZpbml0aW9uIG9mIGFuIGlubGluZSB0b2tlbiB0aGF0IHJlbmRlcnMgaW4gYm90aCBSZWFkaW5nIHZpZXcgYW5kIExpdmUgUHJldmlldy5cbiAqXG4gKiBBIHRva2VuIGlzIGEgcmVndWxhciBleHByZXNzaW9uIGFuZCBhIHJlbmRlciBmdW5jdGlvbi4ge0BsaW5rIHJlZ2lzdGVySW5saW5lVG9rZW5SZW5kZXJlcn0gcmVnaXN0ZXJzIGEgTWFya2Rvd25cbiAqIHBvc3QgcHJvY2Vzc29yIHRoYXQgcmVuZGVycyBldmVyeSBtYXRjaCBmb3VuZCBpbiB0aGUgcmVuZGVyZWQgdGV4dCwgYW5kIGFuIGVkaXRvciBleHRlbnNpb24gdGhhdCByZXBsYWNlcyBldmVyeVxuICogbWF0Y2ggd2l0aCBhIHdpZGdldCBpbiBMaXZlIFByZXZpZXcsIGJvdGggY2FsbGluZyB0aGUgc2FtZSBmdW5jdGlvbiwgc28gdGhlIHR3byB2aWV3cyBjYW5ub3QgZHJpZnQgYXBhcnQuXG4gKlxuICogVGhlIFJlYWRpbmctdmlldyBoYWxmIHdhbGtzIHRleHQgbm9kZXMgb25seSwgc28gYSB0b2tlbiBpcyBuZXZlciBtYXRjaGVkIGFjcm9zcyBhbiBlbGVtZW50IGJvdW5kYXJ5LCBhbmQgaXQgc2tpcHNcbiAqIHRleHQgaW5zaWRlIHRoZSBlbGVtZW50cyBgc2tpcFNlbGVjdG9yYCBuYW1lcyAoY29kZSBieSBkZWZhdWx0KS4gVGhlIGVkaXRvciBoYWxmIG1hdGNoZXMgZWFjaCBsaW5lJ3Mgc291cmNlIHRleHQsXG4gKiBNYXJrZG93biBtYXJrdXAgaW5jbHVkZWQ7IHNlZSBgc2hvdWxkRGVjb3JhdGVgIHRvIHNraXAgY29kZSB0aGVyZS5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IE1hcmtkb3duUG9zdFByb2Nlc3NvckNvbnRleHQgfSBmcm9tICdvYnNpZGlhbic7XG5cbmltcG9ydCB0eXBlIHtcbiAgQ3JlYXRlSW5saW5lVG9rZW5XaWRnZXRzRXh0ZW5zaW9uUGFyYW1zLFxuICBJbmxpbmVUb2tlblJlbmRlckZ1bmN0aW9uXG59IGZyb20gJy4vY29kZW1pcnJvci9pbmxpbmUtdG9rZW4td2lkZ2V0cy50cyc7XG5pbXBvcnQgdHlwZSB7IEVkaXRvckV4dGVuc2lvblJlZ2lzdHJhciB9IGZyb20gJy4vZWRpdG9yLWV4dGVuc2lvbi1yZWdpc3RyYXIudHMnO1xuaW1wb3J0IHR5cGUgeyBNYXJrZG93blBvc3RQcm9jZXNzb3JSZWdpc3RyYXIgfSBmcm9tICcuL21hcmtkb3duLXBvc3QtcHJvY2Vzc29yLXJlZ2lzdHJhci50cyc7XG5cbmltcG9ydCB7XG4gIGNyZWF0ZUlubGluZVRva2VuV2lkZ2V0c0V4dGVuc2lvbixcbiAgZXhlY0FsbCxcbiAgdG9HbG9iYWxSZWdFeHBcbn0gZnJvbSAnLi9jb2RlbWlycm9yL2lubGluZS10b2tlbi13aWRnZXRzLnRzJztcbmltcG9ydCB7IENzc0NsYXNzIH0gZnJvbSAnLi9jc3MtY2xhc3MudHMnO1xuXG4vKipcbiAqIFRoZSBkZWZhdWx0IHNlbGVjdG9yIG9mIHRoZSBlbGVtZW50cyB3aG9zZSB0ZXh0IGlzIG5ldmVyIG1hdGNoZWQgaW4gUmVhZGluZyB2aWV3LlxuICovXG5leHBvcnQgY29uc3QgREVGQVVMVF9JTkxJTkVfVE9LRU5fU0tJUF9TRUxFQ1RPUiA9ICdjb2RlLCBwcmUnO1xuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIHtAbGluayBjcmVhdGVJbmxpbmVUb2tlblBvc3RQcm9jZXNzb3J9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENyZWF0ZUlubGluZVRva2VuUG9zdFByb2Nlc3NvclBhcmFtcyB7XG4gIC8qKlxuICAgKiBUaGUgcmVndWxhciBleHByZXNzaW9uIGEgdG9rZW4gbWF0Y2hlcy4gVGhlIGBnYCBmbGFnIGlzIGFkZGVkIHdoZW4gbWlzc2luZy5cbiAgICovXG4gIHJlYWRvbmx5IHJlZ0V4cDogUmVnRXhwO1xuXG4gIC8qKlxuICAgKiBSZW5kZXJzIGEgdG9rZW4gaW50byBpdHMgZWxlbWVudC5cbiAgICovXG4gIHJlYWRvbmx5IHJlbmRlcjogSW5saW5lVG9rZW5SZW5kZXJGdW5jdGlvbjtcblxuICAvKipcbiAgICogVGhlIHNlbGVjdG9yIG9mIHRoZSBlbGVtZW50cyB3aG9zZSB0ZXh0IGlzIG5ldmVyIG1hdGNoZWQuXG4gICAqXG4gICAqIEBkZWZhdWx0IHtAbGluayBERUZBVUxUX0lOTElORV9UT0tFTl9TS0lQX1NFTEVDVE9SfVxuICAgKi9cbiAgcmVhZG9ubHkgc2tpcFNlbGVjdG9yPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIHtAbGluayByZWdpc3RlcklubGluZVRva2VuUmVuZGVyZXJ9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlZ2lzdGVySW5saW5lVG9rZW5SZW5kZXJlclBhcmFtcyBleHRlbmRzIENyZWF0ZUlubGluZVRva2VuUG9zdFByb2Nlc3NvclBhcmFtcywgQ3JlYXRlSW5saW5lVG9rZW5XaWRnZXRzRXh0ZW5zaW9uUGFyYW1zIHtcbiAgLyoqXG4gICAqIFRoZSByZWdpc3RyYXIgdGhlIGVkaXRvciBleHRlbnNpb24gaXMgcmVnaXN0ZXJlZCB0aHJvdWdoLlxuICAgKi9cbiAgcmVhZG9ubHkgZWRpdG9yRXh0ZW5zaW9uUmVnaXN0cmFyOiBFZGl0b3JFeHRlbnNpb25SZWdpc3RyYXI7XG5cbiAgLyoqXG4gICAqIFRoZSByZWdpc3RyYXIgdGhlIFJlYWRpbmctdmlldyBwb3N0IHByb2Nlc3NvciBpcyByZWdpc3RlcmVkIHRocm91Z2guXG4gICAqL1xuICByZWFkb25seSBtYXJrZG93blBvc3RQcm9jZXNzb3JSZWdpc3RyYXI6IE1hcmtkb3duUG9zdFByb2Nlc3NvclJlZ2lzdHJhcjtcblxuICAvKipcbiAgICogVGhlIHNvcnQgb3JkZXIgb2YgdGhlIHBvc3QgcHJvY2Vzc29yLlxuICAgKlxuICAgKiBAZGVmYXVsdCBgMGBcbiAgICovXG4gIHJlYWRvbmx5IHNvcnRPcmRlcj86IG51bWJlcjtcbn1cblxuLyoqXG4gKiBDcmVhdGVzIGEgTWFya2Rvd24gcG9zdCBwcm9jZXNzb3IgdGhhdCByZW5kZXJzIGV2ZXJ5IG1hdGNoIG9mIGEgcmVndWxhciBleHByZXNzaW9uIGZvdW5kIGluIHRoZSByZW5kZXJlZCB0ZXh0LlxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgcG9zdCBwcm9jZXNzb3IgcGFyYW1ldGVycy5cbiAqIEByZXR1cm5zIFRoZSBwb3N0IHByb2Nlc3Nvci5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUlubGluZVRva2VuUG9zdFByb2Nlc3NvcihcbiAgcGFyYW1zOiBDcmVhdGVJbmxpbmVUb2tlblBvc3RQcm9jZXNzb3JQYXJhbXNcbik6IChlbGVtZW50OiBIVE1MRWxlbWVudCwgY29udGV4dDogUGljazxNYXJrZG93blBvc3RQcm9jZXNzb3JDb250ZXh0LCAnc291cmNlUGF0aCc+KSA9PiB2b2lkIHtcbiAgY29uc3QgcmVnRXhwID0gdG9HbG9iYWxSZWdFeHAocGFyYW1zLnJlZ0V4cCk7XG4gIGNvbnN0IHNraXBTZWxlY3RvciA9IHBhcmFtcy5za2lwU2VsZWN0b3IgPz8gREVGQVVMVF9JTkxJTkVfVE9LRU5fU0tJUF9TRUxFQ1RPUjtcblxuICByZXR1cm4gKGVsZW1lbnQsIGNvbnRleHQpID0+IHtcbiAgICBjb25zdCBkb2MgPSBlbGVtZW50Lm93bmVyRG9jdW1lbnQ7XG4gICAgY29uc3Qgd2Fsa2VyID0gZG9jLmNyZWF0ZVRyZWVXYWxrZXIoZWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX1RFWFQpO1xuICAgIGNvbnN0IHRleHROb2RlczogVGV4dFtdID0gW107XG4gICAgZm9yIChsZXQgbm9kZSA9IHdhbGtlci5uZXh0Tm9kZSgpOyBub2RlICE9PSBudWxsOyBub2RlID0gd2Fsa2VyLm5leHROb2RlKCkpIHtcbiAgICAgIHRleHROb2Rlcy5wdXNoKG5vZGUgYXMgVGV4dCk7XG4gICAgfVxuXG4gICAgZm9yIChjb25zdCB0ZXh0Tm9kZSBvZiB0ZXh0Tm9kZXMpIHtcbiAgICAgIGlmICh0ZXh0Tm9kZS5wYXJlbnRFbGVtZW50Py5jbG9zZXN0KHNraXBTZWxlY3RvcikpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICBjb25zdCB0ZXh0ID0gdGV4dE5vZGUuZGF0YTtcbiAgICAgIGNvbnN0IG1hdGNoZXMgPSBleGVjQWxsKHJlZ0V4cCwgdGV4dCk7XG4gICAgICBpZiAobWF0Y2hlcy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGZyYWdtZW50ID0gZG9jLndpbi5jcmVhdGVGcmFnbWVudCgpO1xuICAgICAgbGV0IGxhc3RJbmRleCA9IDA7XG4gICAgICBmb3IgKGNvbnN0IG1hdGNoIG9mIG1hdGNoZXMpIHtcbiAgICAgICAgZnJhZ21lbnQuYXBwZW5kKHRleHQuc2xpY2UobGFzdEluZGV4LCBtYXRjaC5pbmRleCkpO1xuICAgICAgICBjb25zdCBjb250YWluZXJFbCA9IGRvYy53aW4uY3JlYXRlU3BhbigpO1xuICAgICAgICBjb250YWluZXJFbC5jbGFzc0xpc3QuYWRkKENzc0NsYXNzLkxpYnJhcnlOYW1lLCBDc3NDbGFzcy5JbmxpbmVUb2tlbik7XG4gICAgICAgIHBhcmFtcy5yZW5kZXIoeyBjb250YWluZXJFbCwgbWF0Y2gsIHNvdXJjZVBhdGg6IGNvbnRleHQuc291cmNlUGF0aCB9KTtcbiAgICAgICAgZnJhZ21lbnQuYXBwZW5kKGNvbnRhaW5lckVsKTtcbiAgICAgICAgbGFzdEluZGV4ID0gbWF0Y2guaW5kZXggKyBtYXRjaFswXS5sZW5ndGg7XG4gICAgICB9XG4gICAgICBmcmFnbWVudC5hcHBlbmQodGV4dC5zbGljZShsYXN0SW5kZXgpKTtcbiAgICAgIHRleHROb2RlLnJlcGxhY2VXaXRoKGZyYWdtZW50KTtcbiAgICB9XG4gIH07XG59XG5cbi8qKlxuICogUmVnaXN0ZXJzIGFuIGlubGluZSB0b2tlbiBpbiBib3RoIFJlYWRpbmcgdmlldyBhbmQgTGl2ZSBQcmV2aWV3LCBmcm9tIG9uZSBkZWZpbml0aW9uLlxuICpcbiAqIE9ic2lkaWFuIHRpZXMgYm90aCByZWdpc3RyYXRpb25zIHRvIHRoZSBwbHVnaW4ncyBsaWZldGltZSBhbmQgb2ZmZXJzIG5vIHdheSB0byByZW1vdmUgZWl0aGVyIGVhcmxpZXIuXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSByZWdpc3RyYXRpb24gcGFyYW1ldGVycy5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHNcbiAqIHJlZ2lzdGVySW5saW5lVG9rZW5SZW5kZXJlcih7XG4gKiAgIGVkaXRvckV4dGVuc2lvblJlZ2lzdHJhcjogbmV3IFBsdWdpbkVkaXRvckV4dGVuc2lvblJlZ2lzdHJhcih0aGlzKSxcbiAqICAgbWFya2Rvd25Qb3N0UHJvY2Vzc29yUmVnaXN0cmFyOiBuZXcgUGx1Z2luTWFya2Rvd25Qb3N0UHJvY2Vzc29yUmVnaXN0cmFyKHRoaXMpLFxuICogICByZWdFeHA6IC86KFthLXpdKyk6LyxcbiAqICAgcmVuZGVyKHsgY29udGFpbmVyRWwsIG1hdGNoIH0pIHtcbiAqICAgICBjb250YWluZXJFbC5zZXRUZXh0KEVNT0pJW21hdGNoWzFdID8/ICcnXSA/PyBtYXRjaFswXSk7XG4gKiAgIH1cbiAqIH0pO1xuICogYGBgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZWdpc3RlcklubGluZVRva2VuUmVuZGVyZXIocGFyYW1zOiBSZWdpc3RlcklubGluZVRva2VuUmVuZGVyZXJQYXJhbXMpOiB2b2lkIHtcbiAgcGFyYW1zLm1hcmtkb3duUG9zdFByb2Nlc3NvclJlZ2lzdHJhci5yZWdpc3Rlck1hcmtkb3duUG9zdFByb2Nlc3Nvcih7XG4gICAgcG9zdFByb2Nlc3NvcjogY3JlYXRlSW5saW5lVG9rZW5Qb3N0UHJvY2Vzc29yKHBhcmFtcyksXG4gICAgLi4uKHBhcmFtcy5zb3J0T3JkZXIgIT09IHVuZGVmaW5lZCAmJiB7IHNvcnRPcmRlcjogcGFyYW1zLnNvcnRPcmRlciB9KVxuICB9KTtcbiAgcGFyYW1zLmVkaXRvckV4dGVuc2lvblJlZ2lzdHJhci5yZWdpc3RlckVkaXRvckV4dGVuc2lvbihjcmVhdGVJbmxpbmVUb2tlbldpZGdldHNFeHRlbnNpb24ocGFyYW1zKSk7XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7OztBQXVCQTtBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFDUCxTQUFTLGdCQUFnQjtBQUtsQixNQUFNLHFDQUFxQztBQW9EM0MsU0FBUywrQkFDZCxRQUMyRjtBQUMzRixRQUFNLFNBQVMsZUFBZSxPQUFPLE1BQU07QUFDM0MsUUFBTSxlQUFlLE9BQU8sZ0JBQWdCO0FBRTVDLFNBQU8sQ0FBQyxTQUFTLFlBQVk7QUFDM0IsVUFBTSxNQUFNLFFBQVE7QUFDcEIsVUFBTSxTQUFTLElBQUksaUJBQWlCLFNBQVMsV0FBVyxTQUFTO0FBQ2pFLFVBQU0sWUFBb0IsQ0FBQztBQUMzQixhQUFTLE9BQU8sT0FBTyxTQUFTLEdBQUcsU0FBUyxNQUFNLE9BQU8sT0FBTyxTQUFTLEdBQUc7QUFDMUUsZ0JBQVUsS0FBSyxJQUFZO0FBQUEsSUFDN0I7QUFFQSxlQUFXLFlBQVksV0FBVztBQUNoQyxVQUFJLFNBQVMsZUFBZSxRQUFRLFlBQVksR0FBRztBQUNqRDtBQUFBLE1BQ0Y7QUFDQSxZQUFNLE9BQU8sU0FBUztBQUN0QixZQUFNLFVBQVUsUUFBUSxRQUFRLElBQUk7QUFDcEMsVUFBSSxRQUFRLFdBQVcsR0FBRztBQUN4QjtBQUFBLE1BQ0Y7QUFFQSxZQUFNLFdBQVcsSUFBSSxJQUFJLGVBQWU7QUFDeEMsVUFBSSxZQUFZO0FBQ2hCLGlCQUFXLFNBQVMsU0FBUztBQUMzQixpQkFBUyxPQUFPLEtBQUssTUFBTSxXQUFXLE1BQU0sS0FBSyxDQUFDO0FBQ2xELGNBQU0sY0FBYyxJQUFJLElBQUksV0FBVztBQUN2QyxvQkFBWSxVQUFVLElBQUksU0FBUyxhQUFhLFNBQVMsV0FBVztBQUNwRSxlQUFPLE9BQU8sRUFBRSxhQUFhLE9BQU8sWUFBWSxRQUFRLFdBQVcsQ0FBQztBQUNwRSxpQkFBUyxPQUFPLFdBQVc7QUFDM0Isb0JBQVksTUFBTSxRQUFRLE1BQU0sQ0FBQyxFQUFFO0FBQUEsTUFDckM7QUFDQSxlQUFTLE9BQU8sS0FBSyxNQUFNLFNBQVMsQ0FBQztBQUNyQyxlQUFTLFlBQVksUUFBUTtBQUFBLElBQy9CO0FBQUEsRUFDRjtBQUNGO0FBcUJPLFNBQVMsNEJBQTRCLFFBQWlEO0FBQzNGLFNBQU8sK0JBQStCLDhCQUE4QjtBQUFBLElBQ2xFLGVBQWUsK0JBQStCLE1BQU07QUFBQSxJQUNwRCxHQUFJLE9BQU8sY0FBYyxVQUFhLEVBQUUsV0FBVyxPQUFPLFVBQVU7QUFBQSxFQUN0RSxDQUFDO0FBQ0QsU0FBTyx5QkFBeUIsd0JBQXdCLGtDQUFrQyxNQUFNLENBQUM7QUFDbkc7IiwKICAibmFtZXMiOiBbXQp9Cg==
@@ -0,0 +1,229 @@
1
+ /// <reference path="./library-references.d.mts" />
2
+ /// <reference lib="dom" />
3
+ /**
4
+ * @file
5
+ *
6
+ * Completes `[[` links and `#` tags at the caret of any `<input>` or `<textarea>`, the way the editor does.
7
+ */
8
+ import type { App, TFile } from 'obsidian';
9
+ import { AbstractInputSuggest } from 'obsidian';
10
+ /**
11
+ * What a completion trigger completes.
12
+ */
13
+ export declare enum LinkAndTagCompletionKind {
14
+ /**
15
+ * A `[[` wikilink to a vault file.
16
+ */
17
+ Link = "link",
18
+ /**
19
+ * A `#` tag.
20
+ */
21
+ Tag = "tag"
22
+ }
23
+ /**
24
+ * A completion trigger found before the caret.
25
+ */
26
+ export interface LinkAndTagCompletionTrigger {
27
+ /**
28
+ * The offset of the caret, where the query ends.
29
+ */
30
+ readonly end: number;
31
+ /**
32
+ * What the trigger completes.
33
+ */
34
+ readonly kind: LinkAndTagCompletionKind;
35
+ /**
36
+ * The text typed after the trigger characters.
37
+ */
38
+ readonly query: string;
39
+ /**
40
+ * The offset of the trigger characters: the first `[` of `[[`, or the `#`.
41
+ */
42
+ readonly start: number;
43
+ }
44
+ /**
45
+ * Parameters of {@link LinkAndTagInputSuggest}.
46
+ */
47
+ export interface LinkAndTagInputSuggestConstructorParams {
48
+ /**
49
+ * The Obsidian app instance.
50
+ */
51
+ readonly app: App;
52
+ /**
53
+ * The element to complete in.
54
+ */
55
+ readonly inputEl: HTMLInputElement | HTMLTextAreaElement;
56
+ /**
57
+ * Whether `[[` completes links. Defaults to `true`.
58
+ */
59
+ readonly shouldSuggestLinks?: boolean;
60
+ /**
61
+ * Whether `#` completes tags. Defaults to `true`.
62
+ */
63
+ readonly shouldSuggestTags?: boolean;
64
+ /**
65
+ * The path that inserted links are relative to. Defaults to the vault root.
66
+ */
67
+ readonly sourcePath?: string;
68
+ }
69
+ /**
70
+ * A suggestion of {@link LinkAndTagInputSuggest}.
71
+ */
72
+ export type LinkAndTagSuggestion = LinkSuggestion | TagSuggestion;
73
+ /**
74
+ * A suggested link.
75
+ */
76
+ export interface LinkSuggestion {
77
+ /**
78
+ * The file the link points to.
79
+ */
80
+ readonly file: TFile;
81
+ /**
82
+ * The kind of the suggestion.
83
+ */
84
+ readonly kind: LinkAndTagCompletionKind.Link;
85
+ /**
86
+ * The link text inserted between `[[` and `]]`.
87
+ */
88
+ readonly linktext: string;
89
+ }
90
+ /**
91
+ * A suggested tag.
92
+ */
93
+ export interface TagSuggestion {
94
+ /**
95
+ * How many tag occurrences the vault holds.
96
+ */
97
+ readonly count: number;
98
+ /**
99
+ * The kind of the suggestion.
100
+ */
101
+ readonly kind: LinkAndTagCompletionKind.Tag;
102
+ /**
103
+ * The tag, without its `#`.
104
+ */
105
+ readonly tag: string;
106
+ }
107
+ /**
108
+ * Parameters for {@link getVaultTagSuggestions}.
109
+ */
110
+ export interface GetVaultTagSuggestionsParams {
111
+ /**
112
+ * The Obsidian app.
113
+ */
114
+ readonly app: App;
115
+ /**
116
+ * The text typed, without the `#`.
117
+ */
118
+ readonly query: string;
119
+ }
120
+ /**
121
+ * Completes `[[` links and `#` tags inside any `<input>` or `<textarea>`.
122
+ *
123
+ * Obsidian's {@link AbstractInputSuggest} treats the whole value as the query and replaces it on selection. This one
124
+ * reads the trigger before the caret and replaces only that, so it works inside free text such as a template or a
125
+ * description setting, and it accepts a `<textarea>` too.
126
+ *
127
+ * ```ts
128
+ * new Setting(containerEl).addTextArea((textArea) => {
129
+ * new LinkAndTagInputSuggest({ app: this.app, inputEl: textArea.inputEl });
130
+ * });
131
+ * ```
132
+ */
133
+ export declare class LinkAndTagInputSuggest extends AbstractInputSuggest<LinkAndTagSuggestion> {
134
+ /**
135
+ * The element the suggest completes in.
136
+ */
137
+ protected readonly inputEl: HTMLInputElement | HTMLTextAreaElement;
138
+ /**
139
+ * Whether `[[` completes links.
140
+ */
141
+ protected readonly shouldSuggestLinks: boolean;
142
+ /**
143
+ * Whether `#` completes tags.
144
+ */
145
+ protected readonly shouldSuggestTags: boolean;
146
+ /**
147
+ * The path that inserted links are relative to.
148
+ */
149
+ protected readonly sourcePath: string;
150
+ /**
151
+ * Creates the suggest and attaches it to the element.
152
+ *
153
+ * @param params - The parameters.
154
+ */
155
+ constructor(params: LinkAndTagInputSuggestConstructorParams);
156
+ /**
157
+ * Gets the value of the element.
158
+ *
159
+ * @returns The value.
160
+ */
161
+ getValue(): string;
162
+ /**
163
+ * Renders a suggestion.
164
+ *
165
+ * @param suggestion - The suggestion.
166
+ * @param el - The element to render into.
167
+ */
168
+ renderSuggestion(suggestion: LinkAndTagSuggestion, el: HTMLElement): void;
169
+ /**
170
+ * Inserts the suggestion in place of the trigger, moves the caret after it and dispatches an `input` event, so a
171
+ * component listening on the element sees the change.
172
+ *
173
+ * @param suggestion - The suggestion.
174
+ * @param $event - The event that selected it.
175
+ */
176
+ selectSuggestion(suggestion: LinkAndTagSuggestion, $event: KeyboardEvent | MouseEvent): void;
177
+ /**
178
+ * Sets the value of the element.
179
+ *
180
+ * @param value - The value.
181
+ */
182
+ setValue(value: string): void;
183
+ /**
184
+ * Gets the link suggestions for a query.
185
+ *
186
+ * @param query - The text typed after `[[`.
187
+ * @returns The suggestions, best match first.
188
+ */
189
+ protected getLinkSuggestions(query: string): LinkSuggestion[];
190
+ /**
191
+ * Gets the suggestions for the trigger before the caret. The query Obsidian passes is the whole value, so it is
192
+ * ignored.
193
+ *
194
+ * @returns The suggestions.
195
+ */
196
+ protected getSuggestions(): LinkAndTagSuggestion[];
197
+ /**
198
+ * Gets the tag suggestions for a query, from the tags of every note.
199
+ *
200
+ * @param query - The text typed after `#`.
201
+ * @returns The suggestions, best match first, then the most used.
202
+ */
203
+ protected getTagSuggestions(query: string): TagSuggestion[];
204
+ /**
205
+ * Gets the enabled trigger before the caret.
206
+ *
207
+ * @returns The trigger, or `null`.
208
+ */
209
+ protected getTrigger(): LinkAndTagCompletionTrigger | null;
210
+ }
211
+ /**
212
+ * Finds the `[[` link or `#` tag being typed before the caret.
213
+ *
214
+ * A link trigger is an unclosed `[[` on the caret's line with no `|` after it, so an alias being typed is left alone. A
215
+ * tag trigger is a `#` at the start of the text or after whitespace, followed only by tag characters.
216
+ *
217
+ * @param text - The text of the element.
218
+ * @param caret - The offset of the caret.
219
+ * @returns The trigger, or `null` when the caret is not in one.
220
+ */
221
+ export declare function getLinkAndTagCompletionTrigger(text: string, caret: number): LinkAndTagCompletionTrigger | null;
222
+ /**
223
+ * Gets the tags of every note matching a query, as {@link LinkAndTagInputSuggest} and {@link TagListComponent}
224
+ * suggest them.
225
+ *
226
+ * @param params - The parameters.
227
+ * @returns The suggestions, best match first, then the most used.
228
+ */
229
+ export declare function getVaultTagSuggestions(params: GetVaultTagSuggestionsParams): TagSuggestion[];