@mnaoumov/obsidian-lib 10.5.1 → 10.7.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 (189) hide show
  1. package/codemirror/inline-token-widgets/package.json +6 -0
  2. package/codemirror/settings-facet/package.json +6 -0
  3. package/command-handlers/open-discussion-command-handler/package.json +6 -0
  4. package/command-handlers/open-feature-request-command-handler/package.json +6 -0
  5. package/command-handlers/open-git-hub-command-handler/package.json +6 -0
  6. package/components/settings-facet-component/package.json +6 -0
  7. package/components/style-sheet-component/package.json +6 -0
  8. package/dist/lib/cjs/__merged.cjs +137 -1
  9. package/dist/lib/cjs/__merged.d.cts +26 -0
  10. package/dist/lib/cjs/anchored-suggest.cjs +232 -0
  11. package/dist/lib/cjs/anchored-suggest.d.cts +116 -0
  12. package/dist/lib/cjs/broken-link-candidates.cjs +366 -0
  13. package/dist/lib/cjs/broken-link-candidates.d.cts +181 -0
  14. package/dist/lib/cjs/bug-report.cjs +4 -2
  15. package/dist/lib/cjs/bug-report.d.cts +1 -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/command-handlers/index.cjs +10 -1
  25. package/dist/lib/cjs/command-handlers/index.d.cts +3 -0
  26. package/dist/lib/cjs/command-handlers/open-bug-report-command-handler.cjs +9 -12
  27. package/dist/lib/cjs/command-handlers/open-bug-report-command-handler.d.cts +6 -8
  28. package/dist/lib/cjs/command-handlers/open-discussion-command-handler.cjs +127 -0
  29. package/dist/lib/cjs/command-handlers/open-discussion-command-handler.d.cts +45 -0
  30. package/dist/lib/cjs/command-handlers/open-feature-request-command-handler.cjs +119 -0
  31. package/dist/lib/cjs/command-handlers/open-feature-request-command-handler.d.cts +33 -0
  32. package/dist/lib/cjs/command-handlers/open-git-hub-command-handler.cjs +121 -0
  33. package/dist/lib/cjs/command-handlers/open-git-hub-command-handler.d.cts +43 -0
  34. package/dist/lib/cjs/components/index.cjs +7 -1
  35. package/dist/lib/cjs/components/index.d.cts +2 -0
  36. package/dist/lib/cjs/components/settings-facet-component.cjs +136 -0
  37. package/dist/lib/cjs/components/settings-facet-component.d.cts +68 -0
  38. package/dist/lib/cjs/components/style-sheet-component.cjs +198 -0
  39. package/dist/lib/cjs/components/style-sheet-component.d.cts +79 -0
  40. package/dist/lib/cjs/css-class.cjs +8 -1
  41. package/dist/lib/cjs/css-class.d.cts +28 -0
  42. package/dist/lib/cjs/data-stores/data-store-transport.cjs +7 -4
  43. package/dist/lib/cjs/data-stores/data-store-transport.d.cts +1 -1
  44. package/dist/lib/cjs/data-stores/shared-data-store.cjs +1 -1
  45. package/dist/lib/cjs/data-stores/shared-data-store.d.cts +1 -1
  46. package/dist/lib/cjs/desktop-git-runner.cjs +117 -0
  47. package/dist/lib/cjs/desktop-git-runner.d.cts +17 -0
  48. package/dist/lib/cjs/desktop-request-url-stream.cjs +258 -0
  49. package/dist/lib/cjs/desktop-request-url-stream.d.cts +22 -0
  50. package/dist/lib/cjs/editor-suggest-registrar.cjs +8 -2
  51. package/dist/lib/cjs/editor-suggest-registrar.d.cts +14 -2
  52. package/dist/lib/cjs/editor-suggest.cjs +197 -0
  53. package/dist/lib/cjs/editor-suggest.d.cts +103 -0
  54. package/dist/lib/cjs/feature-request.cjs +115 -0
  55. package/dist/lib/cjs/feature-request.d.cts +54 -0
  56. package/dist/lib/cjs/generated-during-build.cjs +2 -2
  57. package/dist/lib/cjs/git-hub-discussion.cjs +101 -0
  58. package/dist/lib/cjs/git-hub-discussion.d.cts +28 -0
  59. package/dist/lib/cjs/git-rename-history.cjs +148 -0
  60. package/dist/lib/cjs/git-rename-history.d.cts +43 -0
  61. package/dist/lib/cjs/hotkey.cjs +185 -0
  62. package/dist/lib/cjs/hotkey.d.cts +59 -0
  63. package/dist/lib/cjs/i18n/locales/en.cjs +13 -1
  64. package/dist/lib/cjs/i18n/locales/en.d.cts +12 -0
  65. package/dist/lib/cjs/i18n/locales/translations-map.d.cts +12 -0
  66. package/dist/lib/cjs/index.cjs +46 -1
  67. package/dist/lib/cjs/index.d.cts +15 -0
  68. package/dist/lib/cjs/inline-token-renderer.cjs +145 -0
  69. package/dist/lib/cjs/inline-token-renderer.d.cts +88 -0
  70. package/dist/lib/cjs/link-and-tag-input-suggest.cjs +325 -0
  71. package/dist/lib/cjs/link-and-tag-input-suggest.d.cts +229 -0
  72. package/dist/lib/cjs/markdown-code-block-processor.cjs +13 -1
  73. package/dist/lib/cjs/markdown-code-block-processor.d.cts +18 -0
  74. package/dist/lib/cjs/markdown.cjs +6 -1
  75. package/dist/lib/cjs/markdown.d.cts +10 -1
  76. package/dist/lib/cjs/rendered-markdown.cjs +306 -0
  77. package/dist/lib/cjs/rendered-markdown.d.cts +77 -0
  78. package/dist/lib/cjs/request-url.cjs +523 -0
  79. package/dist/lib/cjs/request-url.d.cts +233 -0
  80. package/dist/lib/cjs/setting-components/folder-list-component.cjs +216 -0
  81. package/dist/lib/cjs/setting-components/folder-list-component.d.cts +73 -0
  82. package/dist/lib/cjs/setting-components/hotkey-component.cjs +260 -0
  83. package/dist/lib/cjs/setting-components/hotkey-component.d.cts +85 -0
  84. package/dist/lib/cjs/setting-components/index.cjs +13 -1
  85. package/dist/lib/cjs/setting-components/index.d.cts +4 -0
  86. package/dist/lib/cjs/setting-components/list-component.cjs +291 -0
  87. package/dist/lib/cjs/setting-components/list-component.d.cts +106 -0
  88. package/dist/lib/cjs/setting-components/tag-list-component.cjs +220 -0
  89. package/dist/lib/cjs/setting-components/tag-list-component.d.cts +82 -0
  90. package/dist/lib/cjs/setting-ex.cjs +51 -1
  91. package/dist/lib/cjs/setting-ex.d.cts +35 -1
  92. package/dist/lib/cjs/settings-tabs.cjs +258 -0
  93. package/dist/lib/cjs/settings-tabs.d.cts +101 -0
  94. package/dist/lib/cjs/vault.cjs +2 -2
  95. package/dist/lib/cjs/vault.d.cts +3 -1
  96. package/dist/lib/esm/__merged.d.mts +26 -0
  97. package/dist/lib/esm/__merged.mjs +139 -1
  98. package/dist/lib/esm/anchored-suggest.d.mts +116 -0
  99. package/dist/lib/esm/anchored-suggest.mjs +144 -0
  100. package/dist/lib/esm/broken-link-candidates.d.mts +181 -0
  101. package/dist/lib/esm/broken-link-candidates.mjs +275 -0
  102. package/dist/lib/esm/bug-report.d.mts +1 -1
  103. package/dist/lib/esm/bug-report.mjs +4 -2
  104. package/dist/lib/esm/code-block-render-handoff.d.mts +131 -0
  105. package/dist/lib/esm/code-block-render-handoff.mjs +183 -0
  106. package/dist/lib/esm/codemirror/index.d.mts +2 -0
  107. package/dist/lib/esm/codemirror/index.mjs +5 -1
  108. package/dist/lib/esm/codemirror/inline-token-widgets.d.mts +109 -0
  109. package/dist/lib/esm/codemirror/inline-token-widgets.mjs +167 -0
  110. package/dist/lib/esm/codemirror/settings-facet.d.mts +19 -0
  111. package/dist/lib/esm/codemirror/settings-facet.mjs +44 -0
  112. package/dist/lib/esm/command-handlers/index.d.mts +3 -0
  113. package/dist/lib/esm/command-handlers/index.mjs +7 -1
  114. package/dist/lib/esm/command-handlers/open-bug-report-command-handler.d.mts +6 -8
  115. package/dist/lib/esm/command-handlers/open-bug-report-command-handler.mjs +9 -12
  116. package/dist/lib/esm/command-handlers/open-discussion-command-handler.d.mts +45 -0
  117. package/dist/lib/esm/command-handlers/open-discussion-command-handler.mjs +39 -0
  118. package/dist/lib/esm/command-handlers/open-feature-request-command-handler.d.mts +33 -0
  119. package/dist/lib/esm/command-handlers/open-feature-request-command-handler.mjs +31 -0
  120. package/dist/lib/esm/command-handlers/open-git-hub-command-handler.d.mts +43 -0
  121. package/dist/lib/esm/command-handlers/open-git-hub-command-handler.mjs +33 -0
  122. package/dist/lib/esm/components/index.d.mts +2 -0
  123. package/dist/lib/esm/components/index.mjs +5 -1
  124. package/dist/lib/esm/components/settings-facet-component.d.mts +68 -0
  125. package/dist/lib/esm/components/settings-facet-component.mjs +48 -0
  126. package/dist/lib/esm/components/style-sheet-component.d.mts +79 -0
  127. package/dist/lib/esm/components/style-sheet-component.mjs +109 -0
  128. package/dist/lib/esm/css-class.d.mts +28 -0
  129. package/dist/lib/esm/css-class.mjs +8 -1
  130. package/dist/lib/esm/data-stores/data-store-transport.d.mts +1 -1
  131. package/dist/lib/esm/data-stores/data-store-transport.mjs +7 -4
  132. package/dist/lib/esm/data-stores/shared-data-store.d.mts +1 -1
  133. package/dist/lib/esm/data-stores/shared-data-store.mjs +1 -1
  134. package/dist/lib/esm/desktop-git-runner.d.mts +17 -0
  135. package/dist/lib/esm/desktop-git-runner.mjs +19 -0
  136. package/dist/lib/esm/desktop-request-url-stream.d.mts +22 -0
  137. package/dist/lib/esm/desktop-request-url-stream.mjs +170 -0
  138. package/dist/lib/esm/editor-suggest-registrar.d.mts +14 -2
  139. package/dist/lib/esm/editor-suggest-registrar.mjs +8 -2
  140. package/dist/lib/esm/editor-suggest.d.mts +103 -0
  141. package/dist/lib/esm/editor-suggest.mjs +108 -0
  142. package/dist/lib/esm/feature-request.d.mts +54 -0
  143. package/dist/lib/esm/feature-request.mjs +25 -0
  144. package/dist/lib/esm/generated-during-build.mjs +2 -2
  145. package/dist/lib/esm/git-hub-discussion.d.mts +28 -0
  146. package/dist/lib/esm/git-hub-discussion.mjs +13 -0
  147. package/dist/lib/esm/git-rename-history.d.mts +43 -0
  148. package/dist/lib/esm/git-rename-history.mjs +59 -0
  149. package/dist/lib/esm/hotkey.d.mts +59 -0
  150. package/dist/lib/esm/hotkey.mjs +95 -0
  151. package/dist/lib/esm/i18n/locales/en.d.mts +12 -0
  152. package/dist/lib/esm/i18n/locales/en.mjs +13 -1
  153. package/dist/lib/esm/i18n/locales/translations-map.d.mts +12 -0
  154. package/dist/lib/esm/index.d.mts +15 -0
  155. package/dist/lib/esm/index.mjs +31 -1
  156. package/dist/lib/esm/inline-token-renderer.d.mts +88 -0
  157. package/dist/lib/esm/inline-token-renderer.mjs +59 -0
  158. package/dist/lib/esm/link-and-tag-input-suggest.d.mts +229 -0
  159. package/dist/lib/esm/link-and-tag-input-suggest.mjs +239 -0
  160. package/dist/lib/esm/markdown-code-block-processor.d.mts +18 -0
  161. package/dist/lib/esm/markdown-code-block-processor.mjs +16 -1
  162. package/dist/lib/esm/markdown.d.mts +10 -1
  163. package/dist/lib/esm/markdown.mjs +9 -1
  164. package/dist/lib/esm/rendered-markdown.d.mts +77 -0
  165. package/dist/lib/esm/rendered-markdown.mjs +219 -0
  166. package/dist/lib/esm/request-url.d.mts +233 -0
  167. package/dist/lib/esm/request-url.mjs +428 -0
  168. package/dist/lib/esm/setting-components/folder-list-component.d.mts +73 -0
  169. package/dist/lib/esm/setting-components/folder-list-component.mjs +131 -0
  170. package/dist/lib/esm/setting-components/hotkey-component.d.mts +85 -0
  171. package/dist/lib/esm/setting-components/hotkey-component.mjs +178 -0
  172. package/dist/lib/esm/setting-components/index.d.mts +4 -0
  173. package/dist/lib/esm/setting-components/index.mjs +9 -1
  174. package/dist/lib/esm/setting-components/list-component.d.mts +106 -0
  175. package/dist/lib/esm/setting-components/list-component.mjs +206 -0
  176. package/dist/lib/esm/setting-components/tag-list-component.d.mts +82 -0
  177. package/dist/lib/esm/setting-components/tag-list-component.mjs +131 -0
  178. package/dist/lib/esm/setting-ex.d.mts +35 -1
  179. package/dist/lib/esm/setting-ex.mjs +51 -1
  180. package/dist/lib/esm/settings-tabs.d.mts +101 -0
  181. package/dist/lib/esm/settings-tabs.mjs +170 -0
  182. package/dist/lib/esm/vault.d.mts +3 -1
  183. package/dist/lib/esm/vault.mjs +2 -2
  184. package/dist/styles.css +83 -1
  185. package/package.json +2 -2
  186. package/setting-components/folder-list-component/package.json +6 -0
  187. package/setting-components/hotkey-component/package.json +6 -0
  188. package/setting-components/list-component/package.json +6 -0
  189. package/setting-components/tag-list-component/package.json +6 -0
@@ -0,0 +1,28 @@
1
+ /// <reference path="./library-references.d.cts" />
2
+ /**
3
+ * @file
4
+ *
5
+ * Links to GitHub's new-discussion page.
6
+ */
7
+ /**
8
+ * Parameters for {@link getGitHubDiscussionUrl}.
9
+ */
10
+ export interface GetGitHubDiscussionUrlParams {
11
+ /**
12
+ * The category slug, such as `q-a` or `ideas`. The repository must have this category.
13
+ *
14
+ * @default `'q-a'`
15
+ */
16
+ readonly category?: string;
17
+ /**
18
+ * The repository, as `owner/name`.
19
+ */
20
+ readonly gitHubRepo: string;
21
+ }
22
+ /**
23
+ * Gets a new-discussion URL with a category selected. Callers must enable Discussions in the repository.
24
+ *
25
+ * @param params - The parameters.
26
+ * @returns The link.
27
+ */
28
+ export declare function getGitHubDiscussionUrl(params: GetGitHubDiscussionUrlParams): string;
@@ -0,0 +1,148 @@
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 patchObsidianRequire() {
6
+ const originalRequire = require;
7
+ if (!originalRequire || originalRequire.__isPatched) {
8
+ return;
9
+ }
10
+ require = Object.assign(
11
+ (id) => requirePatched(id),
12
+ originalRequire,
13
+ {
14
+ __isPatched: true
15
+ }
16
+ );
17
+ function extractDefault($module) {
18
+ return $module && $module.__esModule && "default" in $module ? $module.default : $module;
19
+ }
20
+ const OBSIDIAN_BUILT_IN_MODULE_NAMES = /* @__PURE__ */ new Set([
21
+ "@codemirror/autocomplete",
22
+ "@codemirror/collab",
23
+ "@codemirror/commands",
24
+ "@codemirror/language",
25
+ "@codemirror/lint",
26
+ "@codemirror/search",
27
+ "@codemirror/state",
28
+ "@codemirror/text",
29
+ "@codemirror/view",
30
+ "@lezer/common",
31
+ "@lezer/highlight",
32
+ "@lezer/lr",
33
+ "obsidian"
34
+ ]);
35
+ const DEPRECATED_OBSIDIAN_BUILT_IN_MODULE_NAMES = /* @__PURE__ */ new Set([
36
+ "@codemirror/closebrackets",
37
+ "@codemirror/comment",
38
+ "@codemirror/fold",
39
+ "@codemirror/gutter",
40
+ "@codemirror/highlight",
41
+ "@codemirror/history",
42
+ "@codemirror/matchbrackets",
43
+ "@codemirror/panel",
44
+ "@codemirror/rangeset",
45
+ "@codemirror/rectangular-selection",
46
+ "@codemirror/stream-parser",
47
+ "@codemirror/tooltip"
48
+ ]);
49
+ function requirePatched(id) {
50
+ if (OBSIDIAN_BUILT_IN_MODULE_NAMES.has(id) || DEPRECATED_OBSIDIAN_BUILT_IN_MODULE_NAMES.has(id)) {
51
+ return originalRequire?.(id);
52
+ }
53
+ const app = globalThis.app;
54
+ if (app?.isMobile) {
55
+ if (id === "process" || id === "node:process") {
56
+ console.debug(`The most likely you can safely ignore this error. Module not found: ${id}. Fake process object is returned instead.`);
57
+ return process;
58
+ }
59
+ } else {
60
+ const $module = originalRequire?.(id);
61
+ if ($module) {
62
+ return extractDefault($module);
63
+ }
64
+ }
65
+ console.debug(`The most likely you can safely ignore this error. Module not found: ${id}. Empty object is returned instead.`);
66
+ return {};
67
+ }
68
+ })();
69
+
70
+ "use strict";
71
+ var __defProp = Object.defineProperty;
72
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
73
+ var __getOwnPropNames = Object.getOwnPropertyNames;
74
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
75
+ var __export = (target, all) => {
76
+ for (var name in all)
77
+ __defProp(target, name, { get: all[name], enumerable: true });
78
+ };
79
+ var __copyProps = (to, from, except, desc) => {
80
+ if (from && typeof from === "object" || typeof from === "function") {
81
+ for (let key of __getOwnPropNames(from))
82
+ if (!__hasOwnProp.call(to, key) && key !== except)
83
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
84
+ }
85
+ return to;
86
+ };
87
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
88
+ var git_rename_history_exports = {};
89
+ __export(git_rename_history_exports, {
90
+ loadGitRenames: () => loadGitRenames,
91
+ parseGitRenameLog: () => parseGitRenameLog
92
+ });
93
+ module.exports = __toCommonJS(git_rename_history_exports);
94
+ const RENAME_STATUS_REGEXP = /^R\d*$/;
95
+ async function loadGitRenames(params) {
96
+ try {
97
+ const showPrefixOutput = await params.runGit(["rev-parse", "--show-prefix"]);
98
+ const vaultPrefix = showPrefixOutput.trim();
99
+ const log = await params.runGit(["-c", "core.quotePath=false", "log", "-z", "--diff-filter=R", "-M", "--name-status", "--format=%h"]);
100
+ return parseGitRenameLog(log, vaultPrefix);
101
+ } catch {
102
+ return /* @__PURE__ */ new Map();
103
+ }
104
+ }
105
+ function parseGitRenameLog(log, vaultPrefix) {
106
+ const tokens = log.split("\0").map((token) => token.replace(/^\n+/, ""));
107
+ const renames = [];
108
+ let commit = "";
109
+ let index = 0;
110
+ function readToken() {
111
+ return tokens[index++] ?? "";
112
+ }
113
+ while (index < tokens.length) {
114
+ const token = readToken();
115
+ if (RENAME_STATUS_REGEXP.test(token)) {
116
+ const oldPath = readToken();
117
+ const newPath = readToken();
118
+ if (oldPath.startsWith(vaultPrefix) && newPath.startsWith(vaultPrefix)) {
119
+ renames.push({ commit, newPath: newPath.slice(vaultPrefix.length), oldPath: oldPath.slice(vaultPrefix.length) });
120
+ }
121
+ } else if (token) {
122
+ commit = token;
123
+ }
124
+ }
125
+ const nextByPath = /* @__PURE__ */ new Map();
126
+ for (const rename of renames.reverse()) {
127
+ nextByPath.set(rename.oldPath, { commit: rename.commit, newPath: rename.newPath });
128
+ }
129
+ const result = /* @__PURE__ */ new Map();
130
+ for (const [oldPath, firstRename] of nextByPath) {
131
+ let rename = firstRename;
132
+ const visitedPaths = /* @__PURE__ */ new Set([oldPath]);
133
+ let next = nextByPath.get(rename.newPath);
134
+ while (next && !visitedPaths.has(rename.newPath)) {
135
+ visitedPaths.add(rename.newPath);
136
+ rename = next;
137
+ next = nextByPath.get(rename.newPath);
138
+ }
139
+ result.set(oldPath, rename);
140
+ }
141
+ return result;
142
+ }
143
+ // Annotate the CommonJS export names for ESM import in node:
144
+ 0 && (module.exports = {
145
+ loadGitRenames,
146
+ parseGitRenameLog
147
+ });
148
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9naXQtcmVuYW1lLWhpc3RvcnkudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIFRoZSByZW5hbWVzIGEgdmF1bHQncyBnaXQgaGlzdG9yeSByZWNvcmRzLCB0aGUgc3Ryb25nZXN0IGV2aWRlbmNlIG9mIHdoZXJlIGEgbWlzc2luZyBsaW5rIHRhcmdldCB3ZW50LlxuICpcbiAqIENyb3NzLXBsYXRmb3JtOiBpdCBvbmx5IHBhcnNlcy4gUnVubmluZyBgZ2l0YCBiZWxvbmdzIHRvIGBkZXNrdG9wLWdpdC1ydW5uZXIudHNgLCB3aG9zZSBOb2RlIGltcG9ydHMgYXJlXG4gKiBkZWZlcnJlZCB1bnRpbCBhIGNvbW1hbmQgcnVucy4gQ2FsbCB0aGF0IHJ1bm5lciBvbmx5IGJlaGluZCBgUGxhdGZvcm0uaXNEZXNrdG9wQXBwYC5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IEdpdFJlbmFtZSB9IGZyb20gJy4vYnJva2VuLWxpbmstY2FuZGlkYXRlcy50cyc7XG5cbi8qKlxuICogUnVucyBgZ2l0YCB3aXRoIHRoZSBnaXZlbiBhcmd1bWVudHMgaW4gdGhlIHZhdWx0J3MgZm9sZGVyLlxuICpcbiAqIEBwYXJhbSBhcmd1bWVudHNfIC0gVGhlIGFyZ3VtZW50cy5cbiAqIEByZXR1cm5zIFRoZSBjb21tYW5kJ3Mgc3RhbmRhcmQgb3V0cHV0LlxuICovXG5leHBvcnQgdHlwZSBHaXRSdW5uZXIgPSAoYXJndW1lbnRzXzogcmVhZG9ubHkgc3RyaW5nW10pID0+IFByb21pc2U8c3RyaW5nPjtcblxuLyoqXG4gKiBUaGUgcGFyYW1ldGVycyBmb3Ige0BsaW5rIGxvYWRHaXRSZW5hbWVzfS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBMb2FkR2l0UmVuYW1lc1BhcmFtcyB7XG4gIC8qKlxuICAgKiBSdW5zIGBnaXRgIGluIHRoZSB2YXVsdCdzIGZvbGRlci5cbiAgICovXG4gIHJlYWRvbmx5IHJ1bkdpdDogR2l0UnVubmVyO1xufVxuXG5pbnRlcmZhY2UgUmVjb3JkZWRSZW5hbWUgZXh0ZW5kcyBHaXRSZW5hbWUge1xuICByZWFkb25seSBvbGRQYXRoOiBzdHJpbmc7XG59XG5cbmNvbnN0IFJFTkFNRV9TVEFUVVNfUkVHRVhQID0gL15SXFxkKiQvO1xuXG4vKipcbiAqIFJlYWRzIGV2ZXJ5IHJlbmFtZSBpbiB0aGUgZ2l0IGhpc3Rvcnkgb2YgdGhlIHJlcG9zaXRvcnkgdGhlIHZhdWx0IGxpdmVzIGluLlxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgcGFyYW1ldGVycy5cbiAqIEByZXR1cm5zIEVhY2ggb2xkIHZhdWx0IHBhdGggdG8gdGhlIHBhdGggaXQgZW5kZWQgdXAgYXQ7IGVtcHR5IHdoZW4gdGhlIHZhdWx0IGlzIG5vdCBpbiBhIGdpdCByZXBvc2l0b3J5IG9yXG4gKiBgZ2l0YCBjYW5ub3QgcnVuLCBiZWNhdXNlIG1pc3NpbmcgZXZpZGVuY2UgaXMgbm90IGFuIGVycm9yLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gbG9hZEdpdFJlbmFtZXMocGFyYW1zOiBMb2FkR2l0UmVuYW1lc1BhcmFtcyk6IFByb21pc2U8TWFwPHN0cmluZywgR2l0UmVuYW1lPj4ge1xuICB0cnkge1xuICAgIGNvbnN0IHNob3dQcmVmaXhPdXRwdXQgPSBhd2FpdCBwYXJhbXMucnVuR2l0KFsncmV2LXBhcnNlJywgJy0tc2hvdy1wcmVmaXgnXSk7XG4gICAgY29uc3QgdmF1bHRQcmVmaXggPSBzaG93UHJlZml4T3V0cHV0LnRyaW0oKTtcbiAgICBjb25zdCBsb2cgPSBhd2FpdCBwYXJhbXMucnVuR2l0KFsnLWMnLCAnY29yZS5xdW90ZVBhdGg9ZmFsc2UnLCAnbG9nJywgJy16JywgJy0tZGlmZi1maWx0ZXI9UicsICctTScsICctLW5hbWUtc3RhdHVzJywgJy0tZm9ybWF0PSVoJ10pO1xuICAgIHJldHVybiBwYXJzZUdpdFJlbmFtZUxvZyhsb2csIHZhdWx0UHJlZml4KTtcbiAgfSBjYXRjaCB7XG4gICAgcmV0dXJuIG5ldyBNYXAoKTtcbiAgfVxufVxuXG4vKipcbiAqIFBhcnNlcyB0aGUgb3V0cHV0IG9mIGBnaXQgbG9nIC16IC0tZGlmZi1maWx0ZXI9UiAtTSAtLW5hbWUtc3RhdHVzIC0tZm9ybWF0PSVoYC5cbiAqXG4gKiBAcGFyYW0gbG9nIC0gVGhlIG91dHB1dCwgbmV3ZXN0IGNvbW1pdCBmaXJzdC5cbiAqIEBwYXJhbSB2YXVsdFByZWZpeCAtIFRoZSB2YXVsdCdzIGZvbGRlciB3aXRoaW4gdGhlIHJlcG9zaXRvcnksIGFzIGBnaXQgcmV2LXBhcnNlIC0tc2hvdy1wcmVmaXhgIHByaW50cyBpdDpcbiAqIGAnJ2Agb3IgYSBwYXRoIGVuZGluZyBpbiBgL2AuIFJlbmFtZXMgb3V0c2lkZSBpdCBhcmUgZHJvcHBlZCwgYW5kIGl0IGlzIHN0cmlwcGVkIGZyb20gdGhlIHJlc3QuXG4gKiBAcmV0dXJucyBFYWNoIG9sZCB2YXVsdCBwYXRoIHRvIHRoZSBwYXRoIGl0IGVuZGVkIHVwIGF0LCBmb2xsb3dpbmcgYSBjaGFpbiBvZiByZW5hbWVzIHRvIGl0cyBlbmQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZUdpdFJlbmFtZUxvZyhsb2c6IHN0cmluZywgdmF1bHRQcmVmaXg6IHN0cmluZyk6IE1hcDxzdHJpbmcsIEdpdFJlbmFtZT4ge1xuICBjb25zdCB0b2tlbnMgPSBsb2cuc3BsaXQoJ1xcMCcpLm1hcCgodG9rZW4pID0+IHRva2VuLnJlcGxhY2UoL15cXG4rLywgJycpKTtcbiAgY29uc3QgcmVuYW1lczogUmVjb3JkZWRSZW5hbWVbXSA9IFtdO1xuICBsZXQgY29tbWl0ID0gJyc7XG5cbiAgbGV0IGluZGV4ID0gMDtcbiAgZnVuY3Rpb24gcmVhZFRva2VuKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRva2Vuc1tpbmRleCsrXSA/PyAnJztcbiAgfVxuXG4gIHdoaWxlIChpbmRleCA8IHRva2Vucy5sZW5ndGgpIHtcbiAgICBjb25zdCB0b2tlbiA9IHJlYWRUb2tlbigpO1xuICAgIGlmIChSRU5BTUVfU1RBVFVTX1JFR0VYUC50ZXN0KHRva2VuKSkge1xuICAgICAgY29uc3Qgb2xkUGF0aCA9IHJlYWRUb2tlbigpO1xuICAgICAgY29uc3QgbmV3UGF0aCA9IHJlYWRUb2tlbigpO1xuICAgICAgaWYgKG9sZFBhdGguc3RhcnRzV2l0aCh2YXVsdFByZWZpeCkgJiYgbmV3UGF0aC5zdGFydHNXaXRoKHZhdWx0UHJlZml4KSkge1xuICAgICAgICByZW5hbWVzLnB1c2goeyBjb21taXQsIG5ld1BhdGg6IG5ld1BhdGguc2xpY2UodmF1bHRQcmVmaXgubGVuZ3RoKSwgb2xkUGF0aDogb2xkUGF0aC5zbGljZSh2YXVsdFByZWZpeC5sZW5ndGgpIH0pO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAodG9rZW4pIHtcbiAgICAgIGNvbW1pdCA9IHRva2VuO1xuICAgIH1cbiAgfVxuXG4gIC8vIE9sZGVzdCBmaXJzdCwgc28gYSBsYXRlciByZW5hbWUgb2YgdGhlIHNhbWUgcGF0aCBvdmVycmlkZXMgYW4gZWFybGllciBvbmUuXG4gIGNvbnN0IG5leHRCeVBhdGggPSBuZXcgTWFwPHN0cmluZywgR2l0UmVuYW1lPigpO1xuICBmb3IgKGNvbnN0IHJlbmFtZSBvZiByZW5hbWVzLnJldmVyc2UoKSkge1xuICAgIG5leHRCeVBhdGguc2V0KHJlbmFtZS5vbGRQYXRoLCB7IGNvbW1pdDogcmVuYW1lLmNvbW1pdCwgbmV3UGF0aDogcmVuYW1lLm5ld1BhdGggfSk7XG4gIH1cblxuICBjb25zdCByZXN1bHQgPSBuZXcgTWFwPHN0cmluZywgR2l0UmVuYW1lPigpO1xuICBmb3IgKGNvbnN0IFtvbGRQYXRoLCBmaXJzdFJlbmFtZV0gb2YgbmV4dEJ5UGF0aCkge1xuICAgIGxldCByZW5hbWUgPSBmaXJzdFJlbmFtZTtcbiAgICBjb25zdCB2aXNpdGVkUGF0aHMgPSBuZXcgU2V0KFtvbGRQYXRoXSk7XG4gICAgbGV0IG5leHQgPSBuZXh0QnlQYXRoLmdldChyZW5hbWUubmV3UGF0aCk7XG4gICAgd2hpbGUgKG5leHQgJiYgIXZpc2l0ZWRQYXRocy5oYXMocmVuYW1lLm5ld1BhdGgpKSB7XG4gICAgICB2aXNpdGVkUGF0aHMuYWRkKHJlbmFtZS5uZXdQYXRoKTtcbiAgICAgIHJlbmFtZSA9IG5leHQ7XG4gICAgICBuZXh0ID0gbmV4dEJ5UGF0aC5nZXQocmVuYW1lLm5ld1BhdGgpO1xuICAgIH1cbiAgICByZXN1bHQuc2V0KG9sZFBhdGgsIHJlbmFtZSk7XG4gIH1cblxuICByZXR1cm4gcmVzdWx0O1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFpQ0EsTUFBTSx1QkFBdUI7QUFTN0IsZUFBc0IsZUFBZSxRQUErRDtBQUNsRyxNQUFJO0FBQ0YsVUFBTSxtQkFBbUIsTUFBTSxPQUFPLE9BQU8sQ0FBQyxhQUFhLGVBQWUsQ0FBQztBQUMzRSxVQUFNLGNBQWMsaUJBQWlCLEtBQUs7QUFDMUMsVUFBTSxNQUFNLE1BQU0sT0FBTyxPQUFPLENBQUMsTUFBTSx3QkFBd0IsT0FBTyxNQUFNLG1CQUFtQixNQUFNLGlCQUFpQixhQUFhLENBQUM7QUFDcEksV0FBTyxrQkFBa0IsS0FBSyxXQUFXO0FBQUEsRUFDM0MsUUFBUTtBQUNOLFdBQU8sb0JBQUksSUFBSTtBQUFBLEVBQ2pCO0FBQ0Y7QUFVTyxTQUFTLGtCQUFrQixLQUFhLGFBQTZDO0FBQzFGLFFBQU0sU0FBUyxJQUFJLE1BQU0sSUFBSSxFQUFFLElBQUksQ0FBQyxVQUFVLE1BQU0sUUFBUSxRQUFRLEVBQUUsQ0FBQztBQUN2RSxRQUFNLFVBQTRCLENBQUM7QUFDbkMsTUFBSSxTQUFTO0FBRWIsTUFBSSxRQUFRO0FBQ1osV0FBUyxZQUFvQjtBQUMzQixXQUFPLE9BQU8sT0FBTyxLQUFLO0FBQUEsRUFDNUI7QUFFQSxTQUFPLFFBQVEsT0FBTyxRQUFRO0FBQzVCLFVBQU0sUUFBUSxVQUFVO0FBQ3hCLFFBQUkscUJBQXFCLEtBQUssS0FBSyxHQUFHO0FBQ3BDLFlBQU0sVUFBVSxVQUFVO0FBQzFCLFlBQU0sVUFBVSxVQUFVO0FBQzFCLFVBQUksUUFBUSxXQUFXLFdBQVcsS0FBSyxRQUFRLFdBQVcsV0FBVyxHQUFHO0FBQ3RFLGdCQUFRLEtBQUssRUFBRSxRQUFRLFNBQVMsUUFBUSxNQUFNLFlBQVksTUFBTSxHQUFHLFNBQVMsUUFBUSxNQUFNLFlBQVksTUFBTSxFQUFFLENBQUM7QUFBQSxNQUNqSDtBQUFBLElBQ0YsV0FBVyxPQUFPO0FBQ2hCLGVBQVM7QUFBQSxJQUNYO0FBQUEsRUFDRjtBQUdBLFFBQU0sYUFBYSxvQkFBSSxJQUF1QjtBQUM5QyxhQUFXLFVBQVUsUUFBUSxRQUFRLEdBQUc7QUFDdEMsZUFBVyxJQUFJLE9BQU8sU0FBUyxFQUFFLFFBQVEsT0FBTyxRQUFRLFNBQVMsT0FBTyxRQUFRLENBQUM7QUFBQSxFQUNuRjtBQUVBLFFBQU0sU0FBUyxvQkFBSSxJQUF1QjtBQUMxQyxhQUFXLENBQUMsU0FBUyxXQUFXLEtBQUssWUFBWTtBQUMvQyxRQUFJLFNBQVM7QUFDYixVQUFNLGVBQWUsb0JBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQztBQUN0QyxRQUFJLE9BQU8sV0FBVyxJQUFJLE9BQU8sT0FBTztBQUN4QyxXQUFPLFFBQVEsQ0FBQyxhQUFhLElBQUksT0FBTyxPQUFPLEdBQUc7QUFDaEQsbUJBQWEsSUFBSSxPQUFPLE9BQU87QUFDL0IsZUFBUztBQUNULGFBQU8sV0FBVyxJQUFJLE9BQU8sT0FBTztBQUFBLElBQ3RDO0FBQ0EsV0FBTyxJQUFJLFNBQVMsTUFBTTtBQUFBLEVBQzVCO0FBRUEsU0FBTztBQUNUOyIsIm5hbWVzIjpbXX0=
@@ -0,0 +1,43 @@
1
+ /// <reference path="./library-references.d.cts" />
2
+ /**
3
+ * @file
4
+ *
5
+ * The renames a vault's git history records, the strongest evidence of where a missing link target went.
6
+ *
7
+ * Cross-platform: it only parses. Running `git` belongs to `desktop-git-runner.ts`, whose Node imports are
8
+ * deferred until a command runs. Call that runner only behind `Platform.isDesktopApp`.
9
+ */
10
+ import type { GitRename } from './broken-link-candidates.cjs';
11
+ /**
12
+ * Runs `git` with the given arguments in the vault's folder.
13
+ *
14
+ * @param arguments_ - The arguments.
15
+ * @returns The command's standard output.
16
+ */
17
+ export type GitRunner = (arguments_: readonly string[]) => Promise<string>;
18
+ /**
19
+ * The parameters for {@link loadGitRenames}.
20
+ */
21
+ export interface LoadGitRenamesParams {
22
+ /**
23
+ * Runs `git` in the vault's folder.
24
+ */
25
+ readonly runGit: GitRunner;
26
+ }
27
+ /**
28
+ * Reads every rename in the git history of the repository the vault lives in.
29
+ *
30
+ * @param params - The parameters.
31
+ * @returns Each old vault path to the path it ended up at; empty when the vault is not in a git repository or
32
+ * `git` cannot run, because missing evidence is not an error.
33
+ */
34
+ export declare function loadGitRenames(params: LoadGitRenamesParams): Promise<Map<string, GitRename>>;
35
+ /**
36
+ * Parses the output of `git log -z --diff-filter=R -M --name-status --format=%h`.
37
+ *
38
+ * @param log - The output, newest commit first.
39
+ * @param vaultPrefix - The vault's folder within the repository, as `git rev-parse --show-prefix` prints it:
40
+ * `''` or a path ending in `/`. Renames outside it are dropped, and it is stripped from the rest.
41
+ * @returns Each old vault path to the path it ended up at, following a chain of renames to its end.
42
+ */
43
+ export declare function parseGitRenameLog(log: string, vaultPrefix: string): Map<string, GitRename>;
@@ -0,0 +1,185 @@
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
+ (function patchObsidianRequire() {
33
+ const originalRequire = require;
34
+ if (!originalRequire || originalRequire.__isPatched) {
35
+ return;
36
+ }
37
+ require = Object.assign(
38
+ (id) => requirePatched(id),
39
+ originalRequire,
40
+ {
41
+ __isPatched: true
42
+ }
43
+ );
44
+ function extractDefault($module) {
45
+ return $module && $module.__esModule && "default" in $module ? $module.default : $module;
46
+ }
47
+ const OBSIDIAN_BUILT_IN_MODULE_NAMES = /* @__PURE__ */ new Set([
48
+ "@codemirror/autocomplete",
49
+ "@codemirror/collab",
50
+ "@codemirror/commands",
51
+ "@codemirror/language",
52
+ "@codemirror/lint",
53
+ "@codemirror/search",
54
+ "@codemirror/state",
55
+ "@codemirror/text",
56
+ "@codemirror/view",
57
+ "@lezer/common",
58
+ "@lezer/highlight",
59
+ "@lezer/lr",
60
+ "obsidian"
61
+ ]);
62
+ const DEPRECATED_OBSIDIAN_BUILT_IN_MODULE_NAMES = /* @__PURE__ */ new Set([
63
+ "@codemirror/closebrackets",
64
+ "@codemirror/comment",
65
+ "@codemirror/fold",
66
+ "@codemirror/gutter",
67
+ "@codemirror/highlight",
68
+ "@codemirror/history",
69
+ "@codemirror/matchbrackets",
70
+ "@codemirror/panel",
71
+ "@codemirror/rangeset",
72
+ "@codemirror/rectangular-selection",
73
+ "@codemirror/stream-parser",
74
+ "@codemirror/tooltip"
75
+ ]);
76
+ function requirePatched(id) {
77
+ if (OBSIDIAN_BUILT_IN_MODULE_NAMES.has(id) || DEPRECATED_OBSIDIAN_BUILT_IN_MODULE_NAMES.has(id)) {
78
+ return originalRequire?.(id);
79
+ }
80
+ const app = globalThis.app;
81
+ if (app?.isMobile) {
82
+ if (id === "process" || id === "node:process") {
83
+ console.debug(`The most likely you can safely ignore this error. Module not found: ${id}. Fake process object is returned instead.`);
84
+ return process;
85
+ }
86
+ } else {
87
+ const $module = originalRequire?.(id);
88
+ if ($module) {
89
+ return extractDefault($module);
90
+ }
91
+ }
92
+ console.debug(`The most likely you can safely ignore this error. Module not found: ${id}. Empty object is returned instead.`);
93
+ return {};
94
+ }
95
+ })();
96
+
97
+ "use strict";
98
+ var __defProp = Object.defineProperty;
99
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
100
+ var __getOwnPropNames = Object.getOwnPropertyNames;
101
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
102
+ var __export = (target, all) => {
103
+ for (var name in all)
104
+ __defProp(target, name, { get: all[name], enumerable: true });
105
+ };
106
+ var __copyProps = (to, from, except, desc) => {
107
+ if (from && typeof from === "object" || typeof from === "function") {
108
+ for (let key of __getOwnPropNames(from))
109
+ if (!__hasOwnProp.call(to, key) && key !== except)
110
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
111
+ }
112
+ return to;
113
+ };
114
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
115
+ var hotkey_exports = {};
116
+ __export(hotkey_exports, {
117
+ formatHotkey: () => formatHotkey,
118
+ getHotkeyFromKeyboardEvent: () => getHotkeyFromKeyboardEvent,
119
+ isSameHotkey: () => isSameHotkey
120
+ });
121
+ module.exports = __toCommonJS(hotkey_exports);
122
+ var import_obsidian = require('obsidian');
123
+ const MODIFIER_KEYS = /* @__PURE__ */ new Set(["Alt", "AltGraph", "Control", "Meta", "OS", "Shift"]);
124
+ const CODE_KEY_REG_EXP = /^(?:Key(?<letter>[A-Z])|Digit(?<digit>\d))$/;
125
+ const MAC_MODIFIER_NAMES = [
126
+ ["Mod", "\u2318"],
127
+ ["Ctrl", "\u2303"],
128
+ ["Meta", "\u2318"],
129
+ ["Alt", "\u2325"],
130
+ ["Shift", "\u21E7"]
131
+ ];
132
+ const OTHER_MODIFIER_NAMES = [
133
+ ["Mod", "Ctrl"],
134
+ ["Ctrl", "Ctrl"],
135
+ ["Meta", "Win"],
136
+ ["Alt", "Alt"],
137
+ ["Shift", "Shift"]
138
+ ];
139
+ const KEY_DISPLAY_NAMES = {
140
+ " ": "Space",
141
+ "ArrowDown": "\u2193",
142
+ "ArrowLeft": "\u2190",
143
+ "ArrowRight": "\u2192",
144
+ "ArrowUp": "\u2191"
145
+ };
146
+ function formatHotkey(params) {
147
+ const isMacOS = params.isMacOS ?? import_obsidian.Platform.isMacOS;
148
+ const modifierNames = isMacOS ? MAC_MODIFIER_NAMES : OTHER_MODIFIER_NAMES;
149
+ const parts = modifierNames.filter(([modifier]) => params.hotkey.modifiers.includes(modifier)).map(([, name]) => name);
150
+ parts.push(KEY_DISPLAY_NAMES[params.hotkey.key] ?? params.hotkey.key);
151
+ return parts.join(isMacOS ? "" : " + ");
152
+ }
153
+ function getHotkeyFromKeyboardEvent(params) {
154
+ const keyboardEvent = params.event;
155
+ if (MODIFIER_KEYS.has(keyboardEvent.key)) {
156
+ return null;
157
+ }
158
+ const isMacOS = params.isMacOS ?? import_obsidian.Platform.isMacOS;
159
+ const modifiers = [];
160
+ if (isMacOS ? keyboardEvent.metaKey : keyboardEvent.ctrlKey) {
161
+ modifiers.push("Mod");
162
+ }
163
+ if (isMacOS ? keyboardEvent.ctrlKey : keyboardEvent.metaKey) {
164
+ modifiers.push(isMacOS ? "Ctrl" : "Meta");
165
+ }
166
+ if (keyboardEvent.altKey) {
167
+ modifiers.push("Alt");
168
+ }
169
+ if (keyboardEvent.shiftKey) {
170
+ modifiers.push("Shift");
171
+ }
172
+ const codeGroups = CODE_KEY_REG_EXP.exec(keyboardEvent.code)?.groups;
173
+ const key = codeGroups?.["letter"] ?? codeGroups?.["digit"] ?? (keyboardEvent.key.length === 1 ? keyboardEvent.key.toUpperCase() : keyboardEvent.key);
174
+ return { key, modifiers };
175
+ }
176
+ function isSameHotkey(hotkey1, hotkey2) {
177
+ return hotkey1.key.toUpperCase() === hotkey2.key.toUpperCase() && hotkey1.modifiers.length === hotkey2.modifiers.length && hotkey1.modifiers.every((modifier) => hotkey2.modifiers.includes(modifier));
178
+ }
179
+ // Annotate the CommonJS export names for ESM import in node:
180
+ 0 && (module.exports = {
181
+ formatHotkey,
182
+ getHotkeyFromKeyboardEvent,
183
+ isSameHotkey
184
+ });
185
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9ob3RrZXkudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIFJlYWRzIGEge0BsaW5rIEhvdGtleX0gZnJvbSBhIGtleSBwcmVzcyBhbmQgZm9ybWF0cyBvbmUgZm9yIGRpc3BsYXkuXG4gKi9cblxuaW1wb3J0IHR5cGUge1xuICBIb3RrZXksXG4gIE1vZGlmaWVyXG59IGZyb20gJ29ic2lkaWFuJztcblxuaW1wb3J0IHsgUGxhdGZvcm0gfSBmcm9tICdvYnNpZGlhbic7XG5cbmNvbnN0IE1PRElGSUVSX0tFWVMgPSBuZXcgU2V0KFsnQWx0JywgJ0FsdEdyYXBoJywgJ0NvbnRyb2wnLCAnTWV0YScsICdPUycsICdTaGlmdCddKTtcbmNvbnN0IENPREVfS0VZX1JFR19FWFAgPSAvXig/OktleSg/PGxldHRlcj5bQS1aXSl8RGlnaXQoPzxkaWdpdD5cXGQpKSQvO1xuXG50eXBlIE1vZGlmaWVyTmFtZSA9IHJlYWRvbmx5IFtNb2RpZmllciwgc3RyaW5nXTtcblxuLy8gQm90aCBsaXN0cyBob2xkIHRoZSBtb2RpZmllcnMgaW4gZGlzcGxheSBvcmRlci5cbmNvbnN0IE1BQ19NT0RJRklFUl9OQU1FUzogcmVhZG9ubHkgTW9kaWZpZXJOYW1lW10gPSBbXG4gIFsnTW9kJywgJ+KMmCddLFxuICBbJ0N0cmwnLCAn4oyDJ10sXG4gIFsnTWV0YScsICfijJgnXSxcbiAgWydBbHQnLCAn4oylJ10sXG4gIFsnU2hpZnQnLCAn4oenJ11cbl07XG5cbmNvbnN0IE9USEVSX01PRElGSUVSX05BTUVTOiByZWFkb25seSBNb2RpZmllck5hbWVbXSA9IFtcbiAgWydNb2QnLCAnQ3RybCddLFxuICBbJ0N0cmwnLCAnQ3RybCddLFxuICBbJ01ldGEnLCAnV2luJ10sXG4gIFsnQWx0JywgJ0FsdCddLFxuICBbJ1NoaWZ0JywgJ1NoaWZ0J11cbl07XG5cbmNvbnN0IEtFWV9ESVNQTEFZX05BTUVTOiBSZWFkb25seTxSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PiA9IHtcbiAgJyAnOiAnU3BhY2UnLFxuICAnQXJyb3dEb3duJzogJ+KGkycsXG4gICdBcnJvd0xlZnQnOiAn4oaQJyxcbiAgJ0Fycm93UmlnaHQnOiAn4oaSJyxcbiAgJ0Fycm93VXAnOiAn4oaRJ1xufTtcblxuLyoqXG4gKiBQYXJhbWV0ZXJzIG9mIHtAbGluayBmb3JtYXRIb3RrZXl9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEZvcm1hdEhvdGtleVBhcmFtcyB7XG4gIC8qKlxuICAgKiBUaGUgaG90a2V5IHRvIGZvcm1hdC5cbiAgICovXG4gIHJlYWRvbmx5IGhvdGtleTogSG90a2V5O1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGZvcm1hdCBpdCB0aGUgbWFjT1Mgd2F5LCB3aXRoIG1vZGlmaWVyIHN5bWJvbHMgYW5kIG5vIHNlcGFyYXRvci4gRGVmYXVsdHMgdG8gYFBsYXRmb3JtLmlzTWFjT1NgLlxuICAgKi9cbiAgcmVhZG9ubHkgaXNNYWNPUz86IGJvb2xlYW47XG59XG5cbi8qKlxuICogUGFyYW1ldGVycyBvZiB7QGxpbmsgZ2V0SG90a2V5RnJvbUtleWJvYXJkRXZlbnR9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdldEhvdGtleUZyb21LZXlib2FyZEV2ZW50UGFyYW1zIHtcbiAgLyoqXG4gICAqIFRoZSBrZXkgcHJlc3MuXG4gICAqL1xuICByZWFkb25seSBldmVudDogS2V5Ym9hcmRFdmVudDtcblxuICAvKipcbiAgICogV2hldGhlciB0aGUgcGxhdGZvcm0gaXMgbWFjT1MsIHdoZXJlIGBNb2RgIGlzIHRoZSBDb21tYW5kIGtleSByYXRoZXIgdGhhbiBDdHJsLiBEZWZhdWx0cyB0byBgUGxhdGZvcm0uaXNNYWNPU2AuXG4gICAqL1xuICByZWFkb25seSBpc01hY09TPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBGb3JtYXRzIGEgaG90a2V5IHRoZSB3YXkgT2JzaWRpYW4ncyBob3RrZXkgc2V0dGluZ3Mgc2hvdyBpdDogYEN0cmwgKyBTaGlmdCArIFBgLCBvciBg4oyY4oenUGAgb24gbWFjT1MuXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSBwYXJhbWV0ZXJzLlxuICogQHJldHVybnMgVGhlIGRpc3BsYXkgc3RyaW5nLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0SG90a2V5KHBhcmFtczogRm9ybWF0SG90a2V5UGFyYW1zKTogc3RyaW5nIHtcbiAgY29uc3QgaXNNYWNPUyA9IHBhcmFtcy5pc01hY09TID8/IFBsYXRmb3JtLmlzTWFjT1M7XG4gIGNvbnN0IG1vZGlmaWVyTmFtZXMgPSBpc01hY09TID8gTUFDX01PRElGSUVSX05BTUVTIDogT1RIRVJfTU9ESUZJRVJfTkFNRVM7XG4gIGNvbnN0IHBhcnRzID0gbW9kaWZpZXJOYW1lcy5maWx0ZXIoKFttb2RpZmllcl0pID0+IHBhcmFtcy5ob3RrZXkubW9kaWZpZXJzLmluY2x1ZGVzKG1vZGlmaWVyKSkubWFwKChbLCBuYW1lXSkgPT4gbmFtZSk7XG4gIHBhcnRzLnB1c2goS0VZX0RJU1BMQVlfTkFNRVNbcGFyYW1zLmhvdGtleS5rZXldID8/IHBhcmFtcy5ob3RrZXkua2V5KTtcbiAgcmV0dXJuIHBhcnRzLmpvaW4oaXNNYWNPUyA/ICcnIDogJyArICcpO1xufVxuXG4vKipcbiAqIFJlYWRzIHRoZSBob3RrZXkgYSBrZXkgcHJlc3MgbWFrZXMsIGluIHRoZSBzaGFwZSBPYnNpZGlhbiBzdG9yZXMgaW4gYGhvdGtleXMuanNvbmAuXG4gKlxuICogVGhlIEN0cmwga2V5IHJlYWRzIGFzIGBNb2RgIGV2ZXJ5d2hlcmUgYnV0IG1hY09TLCBhbmQgdGhlIENvbW1hbmQga2V5IGFzIGBNb2RgIG9uIG1hY09TLiBMZXR0ZXJzIGFuZCBkaWdpdHMgY29tZSBmcm9tXG4gKiB0aGUgcGh5c2ljYWwga2V5LCBzbyBTaGlmdCBvciBhIGtleWJvYXJkIGxheW91dCBkb2VzIG5vdCBjaGFuZ2UgdGhlbS5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIHBhcmFtZXRlcnMuXG4gKiBAcmV0dXJucyBUaGUgaG90a2V5LCBvciBgbnVsbGAgd2hlbiBvbmx5IGEgbW9kaWZpZXIga2V5IHdhcyBwcmVzc2VkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0SG90a2V5RnJvbUtleWJvYXJkRXZlbnQocGFyYW1zOiBHZXRIb3RrZXlGcm9tS2V5Ym9hcmRFdmVudFBhcmFtcyk6IEhvdGtleSB8IG51bGwge1xuICBjb25zdCBrZXlib2FyZEV2ZW50ID0gcGFyYW1zLmV2ZW50O1xuICBpZiAoTU9ESUZJRVJfS0VZUy5oYXMoa2V5Ym9hcmRFdmVudC5rZXkpKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBjb25zdCBpc01hY09TID0gcGFyYW1zLmlzTWFjT1MgPz8gUGxhdGZvcm0uaXNNYWNPUztcbiAgY29uc3QgbW9kaWZpZXJzOiBNb2RpZmllcltdID0gW107XG4gIGlmIChpc01hY09TID8ga2V5Ym9hcmRFdmVudC5tZXRhS2V5IDoga2V5Ym9hcmRFdmVudC5jdHJsS2V5KSB7XG4gICAgbW9kaWZpZXJzLnB1c2goJ01vZCcpO1xuICB9XG4gIGlmIChpc01hY09TID8ga2V5Ym9hcmRFdmVudC5jdHJsS2V5IDoga2V5Ym9hcmRFdmVudC5tZXRhS2V5KSB7XG4gICAgbW9kaWZpZXJzLnB1c2goaXNNYWNPUyA/ICdDdHJsJyA6ICdNZXRhJyk7XG4gIH1cbiAgaWYgKGtleWJvYXJkRXZlbnQuYWx0S2V5KSB7XG4gICAgbW9kaWZpZXJzLnB1c2goJ0FsdCcpO1xuICB9XG4gIGlmIChrZXlib2FyZEV2ZW50LnNoaWZ0S2V5KSB7XG4gICAgbW9kaWZpZXJzLnB1c2goJ1NoaWZ0Jyk7XG4gIH1cblxuICBjb25zdCBjb2RlR3JvdXBzID0gQ09ERV9LRVlfUkVHX0VYUC5leGVjKGtleWJvYXJkRXZlbnQuY29kZSk/Lmdyb3VwcztcbiAgY29uc3Qga2V5ID0gY29kZUdyb3Vwcz8uWydsZXR0ZXInXSA/PyBjb2RlR3JvdXBzPy5bJ2RpZ2l0J10gPz8gKGtleWJvYXJkRXZlbnQua2V5Lmxlbmd0aCA9PT0gMSA/IGtleWJvYXJkRXZlbnQua2V5LnRvVXBwZXJDYXNlKCkgOiBrZXlib2FyZEV2ZW50LmtleSk7XG4gIHJldHVybiB7IGtleSwgbW9kaWZpZXJzIH07XG59XG5cbi8qKlxuICogQ2hlY2tzIHdoZXRoZXIgdHdvIGhvdGtleXMgYXJlIHRoZSBzYW1lIGtleSBjb21iaW5hdGlvbiwgd2hhdGV2ZXIgb3JkZXIgdGhlaXIgbW9kaWZpZXJzIGFyZSBsaXN0ZWQgaW4uXG4gKlxuICogQHBhcmFtIGhvdGtleTEgLSBUaGUgZmlyc3QgaG90a2V5LlxuICogQHBhcmFtIGhvdGtleTIgLSBUaGUgc2Vjb25kIGhvdGtleS5cbiAqIEByZXR1cm5zIFdoZXRoZXIgdGhleSBhcmUgZXF1YWwuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1NhbWVIb3RrZXkoaG90a2V5MTogSG90a2V5LCBob3RrZXkyOiBIb3RrZXkpOiBib29sZWFuIHtcbiAgcmV0dXJuIGhvdGtleTEua2V5LnRvVXBwZXJDYXNlKCkgPT09IGhvdGtleTIua2V5LnRvVXBwZXJDYXNlKClcbiAgICAmJiBob3RrZXkxLm1vZGlmaWVycy5sZW5ndGggPT09IGhvdGtleTIubW9kaWZpZXJzLmxlbmd0aFxuICAgICYmIGhvdGtleTEubW9kaWZpZXJzLmV2ZXJ5KChtb2RpZmllcikgPT4gaG90a2V5Mi5tb2RpZmllcnMuaW5jbHVkZXMobW9kaWZpZXIpKTtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFXQSxzQkFBeUI7QUFFekIsTUFBTSxnQkFBZ0Isb0JBQUksSUFBSSxDQUFDLE9BQU8sWUFBWSxXQUFXLFFBQVEsTUFBTSxPQUFPLENBQUM7QUFDbkYsTUFBTSxtQkFBbUI7QUFLekIsTUFBTSxxQkFBOEM7QUFBQSxFQUNsRCxDQUFDLE9BQU8sUUFBRztBQUFBLEVBQ1gsQ0FBQyxRQUFRLFFBQUc7QUFBQSxFQUNaLENBQUMsUUFBUSxRQUFHO0FBQUEsRUFDWixDQUFDLE9BQU8sUUFBRztBQUFBLEVBQ1gsQ0FBQyxTQUFTLFFBQUc7QUFDZjtBQUVBLE1BQU0sdUJBQWdEO0FBQUEsRUFDcEQsQ0FBQyxPQUFPLE1BQU07QUFBQSxFQUNkLENBQUMsUUFBUSxNQUFNO0FBQUEsRUFDZixDQUFDLFFBQVEsS0FBSztBQUFBLEVBQ2QsQ0FBQyxPQUFPLEtBQUs7QUFBQSxFQUNiLENBQUMsU0FBUyxPQUFPO0FBQ25CO0FBRUEsTUFBTSxvQkFBc0Q7QUFBQSxFQUMxRCxLQUFLO0FBQUEsRUFDTCxhQUFhO0FBQUEsRUFDYixhQUFhO0FBQUEsRUFDYixjQUFjO0FBQUEsRUFDZCxXQUFXO0FBQ2I7QUFzQ08sU0FBUyxhQUFhLFFBQW9DO0FBQy9ELFFBQU0sVUFBVSxPQUFPLFdBQVcseUJBQVM7QUFDM0MsUUFBTSxnQkFBZ0IsVUFBVSxxQkFBcUI7QUFDckQsUUFBTSxRQUFRLGNBQWMsT0FBTyxDQUFDLENBQUMsUUFBUSxNQUFNLE9BQU8sT0FBTyxVQUFVLFNBQVMsUUFBUSxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsRUFBRSxJQUFJLE1BQU0sSUFBSTtBQUNySCxRQUFNLEtBQUssa0JBQWtCLE9BQU8sT0FBTyxHQUFHLEtBQUssT0FBTyxPQUFPLEdBQUc7QUFDcEUsU0FBTyxNQUFNLEtBQUssVUFBVSxLQUFLLEtBQUs7QUFDeEM7QUFXTyxTQUFTLDJCQUEyQixRQUF5RDtBQUNsRyxRQUFNLGdCQUFnQixPQUFPO0FBQzdCLE1BQUksY0FBYyxJQUFJLGNBQWMsR0FBRyxHQUFHO0FBQ3hDLFdBQU87QUFBQSxFQUNUO0FBRUEsUUFBTSxVQUFVLE9BQU8sV0FBVyx5QkFBUztBQUMzQyxRQUFNLFlBQXdCLENBQUM7QUFDL0IsTUFBSSxVQUFVLGNBQWMsVUFBVSxjQUFjLFNBQVM7QUFDM0QsY0FBVSxLQUFLLEtBQUs7QUFBQSxFQUN0QjtBQUNBLE1BQUksVUFBVSxjQUFjLFVBQVUsY0FBYyxTQUFTO0FBQzNELGNBQVUsS0FBSyxVQUFVLFNBQVMsTUFBTTtBQUFBLEVBQzFDO0FBQ0EsTUFBSSxjQUFjLFFBQVE7QUFDeEIsY0FBVSxLQUFLLEtBQUs7QUFBQSxFQUN0QjtBQUNBLE1BQUksY0FBYyxVQUFVO0FBQzFCLGNBQVUsS0FBSyxPQUFPO0FBQUEsRUFDeEI7QUFFQSxRQUFNLGFBQWEsaUJBQWlCLEtBQUssY0FBYyxJQUFJLEdBQUc7QUFDOUQsUUFBTSxNQUFNLGFBQWEsUUFBUSxLQUFLLGFBQWEsT0FBTyxNQUFNLGNBQWMsSUFBSSxXQUFXLElBQUksY0FBYyxJQUFJLFlBQVksSUFBSSxjQUFjO0FBQ2pKLFNBQU8sRUFBRSxLQUFLLFVBQVU7QUFDMUI7QUFTTyxTQUFTLGFBQWEsU0FBaUIsU0FBMEI7QUFDdEUsU0FBTyxRQUFRLElBQUksWUFBWSxNQUFNLFFBQVEsSUFBSSxZQUFZLEtBQ3hELFFBQVEsVUFBVSxXQUFXLFFBQVEsVUFBVSxVQUMvQyxRQUFRLFVBQVUsTUFBTSxDQUFDLGFBQWEsUUFBUSxVQUFVLFNBQVMsUUFBUSxDQUFDO0FBQ2pGOyIsIm5hbWVzIjpbXX0=
@@ -0,0 +1,59 @@
1
+ /// <reference path="./library-references.d.cts" />
2
+ /// <reference lib="dom" />
3
+ /**
4
+ * @file
5
+ *
6
+ * Reads a {@link Hotkey} from a key press and formats one for display.
7
+ */
8
+ import type { Hotkey } from 'obsidian' with { 'resolution-mode': 'import' };
9
+ /**
10
+ * Parameters of {@link formatHotkey}.
11
+ */
12
+ export interface FormatHotkeyParams {
13
+ /**
14
+ * The hotkey to format.
15
+ */
16
+ readonly hotkey: Hotkey;
17
+ /**
18
+ * Whether to format it the macOS way, with modifier symbols and no separator. Defaults to `Platform.isMacOS`.
19
+ */
20
+ readonly isMacOS?: boolean;
21
+ }
22
+ /**
23
+ * Parameters of {@link getHotkeyFromKeyboardEvent}.
24
+ */
25
+ export interface GetHotkeyFromKeyboardEventParams {
26
+ /**
27
+ * The key press.
28
+ */
29
+ readonly event: KeyboardEvent;
30
+ /**
31
+ * Whether the platform is macOS, where `Mod` is the Command key rather than Ctrl. Defaults to `Platform.isMacOS`.
32
+ */
33
+ readonly isMacOS?: boolean;
34
+ }
35
+ /**
36
+ * Formats a hotkey the way Obsidian's hotkey settings show it: `Ctrl + Shift + P`, or `⌘⇧P` on macOS.
37
+ *
38
+ * @param params - The parameters.
39
+ * @returns The display string.
40
+ */
41
+ export declare function formatHotkey(params: FormatHotkeyParams): string;
42
+ /**
43
+ * Reads the hotkey a key press makes, in the shape Obsidian stores in `hotkeys.json`.
44
+ *
45
+ * The Ctrl key reads as `Mod` everywhere but macOS, and the Command key as `Mod` on macOS. Letters and digits come from
46
+ * the physical key, so Shift or a keyboard layout does not change them.
47
+ *
48
+ * @param params - The parameters.
49
+ * @returns The hotkey, or `null` when only a modifier key was pressed.
50
+ */
51
+ export declare function getHotkeyFromKeyboardEvent(params: GetHotkeyFromKeyboardEventParams): Hotkey | null;
52
+ /**
53
+ * Checks whether two hotkeys are the same key combination, whatever order their modifiers are listed in.
54
+ *
55
+ * @param hotkey1 - The first hotkey.
56
+ * @param hotkey2 - The second hotkey.
57
+ * @returns Whether they are equal.
58
+ */
59
+ export declare function isSameHotkey(hotkey1: Hotkey, hotkey2: Hotkey): boolean;
@@ -121,6 +121,18 @@ const en = {
121
121
  jumpToPage: "Jump to page:",
122
122
  pageHeader: "Page {{pageNumber, number}} of {{totalPages, number}}, Total items: {{totalItems, number}}"
123
123
  },
124
+ hotkey: {
125
+ clear: "Clear hotkey",
126
+ notSet: "Not set",
127
+ pressHotkey: "Press a hotkey..."
128
+ },
129
+ list: {
130
+ add: "Add",
131
+ empty: "No items",
132
+ moveDown: "Move down",
133
+ moveUp: "Move up",
134
+ remove: "Remove"
135
+ },
124
136
  menu: {
125
137
  copy: "Copy"
126
138
  },
@@ -201,4 +213,4 @@ const en = {
201
213
  0 && (module.exports = {
202
214
  en
203
215
  });
204
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9pMThuL2xvY2FsZXMvZW4udHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIFRoaXMgZmlsZSBkZWZpbmVzIHRoZSBFbmdsaXNoIHRyYW5zbGF0aW9ucyBmb3IgdGhlIGBpMThuYCBtb2R1bGUuXG4gKi9cblxuLyoqXG4gKiBUaGUgRW5nbGlzaCB0cmFuc2xhdGlvbnMuXG4gKi9cbmV4cG9ydCBjb25zdCBlbiA9IHtcbiAgb2JzaWRpYW5MaWI6IHtcbiAgICBhc3luY1dpdGhOb3RpY2U6IHtcbiAgICAgIG1pbGxpc2Vjb25kczogJ21pbGxpc2Vjb25kcy4uLicsXG4gICAgICBvcGVyYXRpb246ICdPcGVyYXRpb24nLFxuICAgICAgcnVubmluZ0ZvcjogJ1J1bm5pbmcgZm9yJyxcbiAgICAgIHRlcm1pbmF0ZU9wZXJhdGlvbjogJ1lvdSBjYW4gdGVybWluYXRlIHRoZSBvcGVyYXRpb24gYnkgY2xpY2tpbmcgdGhlIGJ1dHRvbiBiZWxvdywgYnV0IGJlIGF3YXJlIGl0IG1pZ2h0IGxlYXZlIHRoZSB2YXVsdCBpbiBhbiBpbmNvbnNpc3RlbnQgc3RhdGUuJyxcbiAgICAgIHRpbWVkT3V0OiAnVGhlIG9wZXJhdGlvbiB0aW1lZCBvdXQgYWZ0ZXIge3tkdXJhdGlvbiwgbnVtYmVyfX0gbWlsbGlzZWNvbmRzLidcbiAgICB9LFxuICAgIGJ1bGtPcGVyYXRpb246IHtcbiAgICAgIG5vT3BlcmF0aW9uczogJ05vIGJ1bGsgb3BlcmF0aW9uIG9mIHRoaXMgcGx1Z2luIHdhcyBmb3VuZCBpbiB0aGUgdmF1bHQgcmVwb3NpdG9yeS4nLFxuICAgICAgbm90QWN0aXZlOiAnQnVsayBvcGVyYXRpb24gY29tbWl0cyBhcmUgb2ZmLCBvciB0aGUgdmF1bHQgaXMgbm90IGluIGEgZ2l0IHJlcG9zaXRvcnkuJyxcbiAgICAgIHJlY292ZXJlZEludGVycnVwdGVkOiAnQSBidWxrIG9wZXJhdGlvbiB3YXMgaW50ZXJydXB0ZWQuIEl0cyBjaGFuZ2VzIHdlcmUgY29tbWl0dGVkIGFzIHt7b3BlcmF0aW9uSWR9fSBpbnRlcnJ1cHRlZC4nLFxuICAgICAgcmVzdW1lZEFmdGVyUmVjb3Zlcnk6ICdUaGUgbG9jayBvZiB7e3JlY292ZXJlZE9wZXJhdGlvbklkfX0gd2VudCBzdGFsZSB3aGlsZSBpdCByYW4sIHNvIGl0cyBjaGFuZ2VzIHNvIGZhciB3ZXJlIGNvbW1pdHRlZCBhcyB7e3JlY292ZXJlZE9wZXJhdGlvbklkfX0gaW50ZXJydXB0ZWQsIGFuZCB0aGUgcmVzdCBhcyB7e29wZXJhdGlvbklkfX0uIFVuZG9pbmcgdGhlIHdob2xlIG9wZXJhdGlvbiB0YWtlcyByZXZlcnRpbmcgYm90aC4nLFxuICAgICAgcmV2ZXJ0Q29uZmxpY3Q6ICdSZXZlcnRpbmcge3tvcGVyYXRpb25JZH19IHN0b3BwZWQgb24gYSBjb25mbGljdC4gVGhlIHZhdWx0IHJlcG9zaXRvcnkgaXMgbGVmdCBtaWQtcmV2ZXJ0OiByZXNvbHZlIHRoZSBjb25mbGljdHMsIHRoZW4gcnVuIGdpdCByZXZlcnQgLS1jb250aW51ZSwgb3IgZ2l0IHJldmVydCAtLWFib3J0IHRvIGdpdmUgdXAuJyxcbiAgICAgIHJldmVydGVkOiAnUmV2ZXJ0ZWQge3tvcGVyYXRpb25JZH19LicsXG4gICAgICByZXZlcnRGYWlsZWQ6ICdGYWlsZWQgdG8gcmV2ZXJ0IHt7b3BlcmF0aW9uSWR9fToge3tlcnJvcn19JyxcbiAgICAgIHNlbGVjdE9wZXJhdGlvbjogJ1NlbGVjdCBhIGJ1bGsgb3BlcmF0aW9uIHRvIHVuZG8nXG4gICAgfSxcbiAgICBidXR0b25zOiB7XG4gICAgICBjYW5jZWw6ICdDYW5jZWwnLFxuICAgICAgb2s6ICdPSydcbiAgICB9LFxuICAgIGNhbGxvdXQ6IHtcbiAgICAgIGxvYWRDb250ZW50OiAnTG9hZCBjb250ZW50IGZvciBjYWxsb3V0J1xuICAgIH0sXG4gICAgZGF0YXZpZXc6IHtcbiAgICAgIGl0ZW1zUGVyUGFnZTogJ0l0ZW1zIHBlciBwYWdlOicsXG4gICAgICBqdW1wVG9QYWdlOiAnSnVtcCB0byBwYWdlOicsXG4gICAgICBwYWdlSGVhZGVyOiAnUGFnZSB7e3BhZ2VOdW1iZXIsIG51bWJlcn19IG9mIHt7dG90YWxQYWdlcywgbnVtYmVyfX0sIFRvdGFsIGl0ZW1zOiB7e3RvdGFsSXRlbXMsIG51bWJlcn19J1xuICAgIH0sXG4gICAgbWVudToge1xuICAgICAgY29weTogJ0NvcHknXG4gICAgfSxcbiAgICBtZXRhZGF0YUNhY2hlOiB7XG4gICAgICBnZXRCYWNrbGlua3NGb3JGaWxlUGF0aDogJ0dldCBiYWNrbGlua3MgZm9yIHt7ZmlsZVBhdGh9fSdcbiAgICB9LFxuICAgIG5vdGljZXM6IHtcbiAgICAgIGF0dGFjaG1lbnRJc1N0aWxsVXNlZDogJ0F0dGFjaG1lbnQge3thdHRhY2htZW50UGF0aH19IGlzIHN0aWxsIHVzZWQgYnkgb3RoZXIgbm90ZXMuIEl0IHdpbGwgbm90IGJlIGRlbGV0ZWQuJyxcbiAgICAgIGF0dGFjaG1lbnRSZXNjdWVkOiAnQXR0YWNobWVudCB7e2F0dGFjaG1lbnRQYXRofX0gaXMgc3RpbGwgdXNlZCBieSBvdGhlciBub3Rlcy4gSXQgd2FzIG1vdmVkIHRvIHt7bmV3QXR0YWNobWVudFBhdGh9fS4nLFxuICAgICAgY2xvc2VBcmlhTGFiZWw6ICdDbG9zZScsXG4gICAgICBmYWlsZWRUb09wZW5Vcmw6ICdGYWlsZWQgdG8gb3BlbiB7e3VybH19JyxcbiAgICAgIHVuaGFuZGxlZEVycm9yOiAnQW4gdW5oYW5kbGVkIGVycm9yIG9jY3VycmVkLiBQbGVhc2UgY2hlY2sgdGhlIGNvbnNvbGUgZm9yIG1vcmUgaW5mb3JtYXRpb24uJ1xuICAgIH0sXG4gICAgcGF0aFNldHRpbmdzOiB7XG4gICAgICBpbnZhbGlkR2xvYjogJ0ludmFsaWQgZ2xvYiBwYXR0ZXJuOiB7e2dsb2J9fSAoe3tyZWFzb259fSknLFxuICAgICAgaW52YWxpZFJlZ3VsYXJFeHByZXNzaW9uOiAnSW52YWxpZCByZWd1bGFyIGV4cHJlc3Npb246IHt7cmVnRXhwfX0gKHt7cmVhc29ufX0pJyxcbiAgICAgIHRyYWlsaW5nRXNjYXBlOiAnaXQgZW5kcyB3aXRoIGFuIHVuZXNjYXBlZCBcXFxcJyxcbiAgICAgIHVuY2xvc2VkQ2hhcmFjdGVyQ2xhc3M6ICdhIFsgY2hhcmFjdGVyIGNsYXNzIGlzIG5ldmVyIGNsb3NlZCB3aXRoIF0nXG4gICAgfSxcbiAgICBwbHVnaW5Db25mbGljdDoge1xuICAgICAgYmxvY2tlZE5vdGljZTogJ3t7cGx1Z2luTmFtZX19IGRvZXMgbm90aGluZyB3aGlsZSB7e2NvbmZsaWN0aW5nUGx1Z2luTmFtZX19IGlzIGVuYWJsZWQuIFVwZGF0ZSBvciBkaXNhYmxlIGl0IHRvIGNvbnRpbnVlLicsXG4gICAgICBjb25mbGljdEFwcGVhcmVkTm90aWNlOiAne3tjb25mbGljdGluZ1BsdWdpbk5hbWV9fSBpcyBub3cgZW5hYmxlZCwgc28ge3twbHVnaW5OYW1lfX0gaGFzIHN0b3BwZWQgd29ya2luZy4gVXBkYXRlIG9yIGRpc2FibGUgaXQgdG8gcmVzdW1lLicsXG4gICAgICBkaXNhYmxlOiAnRGlzYWJsZSB7e2NvbmZsaWN0aW5nUGx1Z2luTmFtZX19JyxcbiAgICAgIHNldHRpbmdzSGVhZGluZzogJ0NvbmZsaWN0aW5nIHBsdWdpbicsXG4gICAgICB3YXJuaW5nTm90aWNlOiAne3twbHVnaW5OYW1lfX0gYW5kIHt7Y29uZmxpY3RpbmdQbHVnaW5OYW1lfX0gb3ZlcmxhcCwgYW5kIGJvdGggYXJlIHJ1bm5pbmcuJ1xuICAgIH0sXG4gICAgcGx1Z2luRGVwZW5kZW5jeToge1xuICAgICAgYWxyZWFkeVVwVG9EYXRlOiAne3tkZXBlbmRlbmN5UGx1Z2luTmFtZX19IGlzIGFscmVhZHkgYXQgaXRzIGxhdGVzdCByZWxlYXNlLiB7e3BsdWdpbk5hbWV9fSBuZWVkcyBhIHZlcnNpb24gdGhhdCBoYXMgbm90IGJlZW4gcmVsZWFzZWQgeWV0LicsXG4gICAgICBibG9ja2VkTm90aWNlOiAne3twbHVnaW5OYW1lfX0gZG9lcyBub3RoaW5nIHVudGlsIHt7ZGVwZW5kZW5jeVBsdWdpbk5hbWV9fSBpcyBpbnN0YWxsZWQgYW5kIGVuYWJsZWQuJyxcbiAgICAgIGRlcGVuZGVuY3lMb3N0Tm90aWNlOiAne3tkZXBlbmRlbmN5UGx1Z2luTmFtZX19IGlzIG5vIGxvbmdlciBhdmFpbGFibGUsIHNvIHt7cGx1Z2luTmFtZX19IGhhcyBzdG9wcGVkIHdvcmtpbmcuIEJyaW5nIGl0IGJhY2sgdG8gcmVzdW1lLicsXG4gICAgICBub1JlYWRhYmxlQXBpTm90aWNlOiAne3tkZXBlbmRlbmN5UGx1Z2luTmFtZX19IGlzIGVuYWJsZWQgYnV0IHB1Ymxpc2hlcyBubyBBUEkge3twbHVnaW5OYW1lfX0gY2FuIHJlYWQsIHNvIHt7cGx1Z2luTmFtZX19IGRvZXMgbm90aGluZy4gVXBkYXRlIHt7ZGVwZW5kZW5jeVBsdWdpbk5hbWV9fSB0byByZXN1bWUuJyxcbiAgICAgIG9wZW5EZXBlbmRlbmN5U2V0dGluZ3M6ICdPcGVuIHt7ZGVwZW5kZW5jeVBsdWdpbk5hbWV9fSBzZXR0aW5ncycsXG4gICAgICBzZXR0aW5nc0hlYWRpbmc6ICdSZXF1aXJlZCBwbHVnaW4gbWlzc2luZycsXG4gICAgICB1cGRhdGU6ICdVcGRhdGUge3tkZXBlbmRlbmN5UGx1Z2luTmFtZX19JyxcbiAgICAgIHVwZGF0ZWQ6ICd7e2RlcGVuZGVuY3lQbHVnaW5OYW1lfX0gaXMgdXBkYXRlZC4nLFxuICAgICAgdXBkYXRlRmFpbGVkOiAnRmFpbGVkIHRvIHVwZGF0ZSB7e2RlcGVuZGVuY3lQbHVnaW5OYW1lfX0uIENoZWNrIHRoZSBjb25zb2xlIGZvciBtb3JlIGluZm9ybWF0aW9uLicsXG4gICAgICB2ZXJzaW9uTWlzbWF0Y2hOb3RpY2U6ICd7e3BsdWdpbk5hbWV9fSBuZWVkcyBhIG5ld2VyIHZlcnNpb24gb2Yge3tkZXBlbmRlbmN5UGx1Z2luTmFtZX19LiBVcGRhdGUgaXQgdG8gcmVzdW1lLidcbiAgICB9LFxuICAgIHBsdWdpblN1Z2dlc3Rpb246IHtcbiAgICAgIGVuYWJsZTogJ0VuYWJsZScsXG4gICAgICBpbnN0YWxsOiAnSW5zdGFsbCBhbmQgZW5hYmxlJyxcbiAgICAgIGluc3RhbGxlZDogJ3t7cGx1Z2luTmFtZX19IGlzIGluc3RhbGxlZCBhbmQgZW5hYmxlZC4nLFxuICAgICAgaW5zdGFsbEZhaWxlZDogJ0ZhaWxlZCB0byBpbnN0YWxsIHt7cGx1Z2luTmFtZX19LiBDaGVjayB0aGUgY29uc29sZSBmb3IgbW9yZSBpbmZvcm1hdGlvbi4nLFxuICAgICAgbm90Tm93OiAnTm90IG5vdydcbiAgICB9LFxuICAgIHF1ZXVlOiB7XG4gICAgICBmbHVzaFF1ZXVlOiAnRmx1c2ggcXVldWUnXG4gICAgfSxcbiAgICByZWxlYXNlTm90ZXM6IHtcbiAgICAgIHRpdGxlOiAne3twbHVnaW5OYW1lfX0gcmVsZWFzZSBub3RlcydcbiAgICB9LFxuICAgIHJlbmFtZURlbGV0ZUhhbmRsZXI6IHtcbiAgICAgIGhhbmRsZURlbGV0ZTogJ0hhbmRsZSBkZWxldGU6IHt7ZmlsZVBhdGh9fScsXG4gICAgICBoYW5kbGVPcnBoYW5lZFJlbmFtZXM6ICdIYW5kbGUgb3JwaGFuZWQgcmVuYW1lcycsXG4gICAgICBoYW5kbGVSZW5hbWU6ICdIYW5kbGUgcmVuYW1lOiB7e29sZFBhdGh9fSAtPiB7e25ld1BhdGh9fScsXG4gICAgICB1cGRhdGVkTGlua3M6ICdVcGRhdGVkIHt7bGlua3NDb3VudCwgbnVtYmVyfX0gbGlua3MgaW4ge3tmaWxlc0NvdW50LCBudW1iZXJ9fSBmaWxlcy4nXG4gICAgfSxcbiAgICByZXNvdXJjZUxvY2s6IHtcbiAgICAgIGxvY2tlZEJ5VG9vbHRpcDogJ0xvY2tlZCBieScsXG4gICAgICBsb2NrZWROb3RlVG9vbHRpcDogJ1RoaXMgbm90ZSBpcyBsb2NrZWQgd2hpbGUgYW4gb3BlcmF0aW9uIGlzIGluIHByb2dyZXNzLicsXG4gICAgICB1bmxvY2tDb25maXJtTWVzc2FnZTogJ1RoaXMgd2lsbCBjYW5jZWwgdGhlIG9wZXJhdGlvbihzKSBjdXJyZW50bHkgaG9sZGluZyBhIGxvY2sgb24gdGhpcyBub3RlIGFuZCBtYXkgbGVhdmUgdGhlIHZhdWx0IGluIGFuIGluY29uc2lzdGVudCBzdGF0ZS4gVGhlIG5vdGUgaXMgbG9ja2VkIGJ5OicsXG4gICAgICB1bmxvY2tDb25maXJtVGl0bGU6ICdVbmxvY2sgbm90ZT8nLFxuICAgICAgdW5sb2NrTWVudUl0ZW06ICdVbmxvY2snXG4gICAgfSxcbiAgICB2YWxpZGF0aW9uOiB7XG4gICAgICBjb250cm9sQ2hhcmFjdGVyOiAne3tuYW1lfX0gY29udGFpbnMgYSBjb250cm9sIGNoYXJhY3Rlci4nLFxuICAgICAgZW1wdHlOYW1lOiAnVGhlIG5hbWUgaXMgZW1wdHkuJyxcbiAgICAgIHRyYWlsaW5nQ2hhcmFjdGVyczogJ3t7bmFtZX19IGVuZHMgd2l0aCBhIGRvdCBvciBhIHNwYWNlLCB3aGljaCBXaW5kb3dzIHJlbW92ZXMuJyxcbiAgICAgIHVuc2FmZUNoYXJhY3RlcnM6ICd7e25hbWV9fSBjb250YWlucyBjaGFyYWN0ZXJzIHRoYXQgYXJlIG5vdCBhbGxvd2VkOiB7e2NoYXJhY3RlcnN9fScsXG4gICAgICB3aW5kb3dzUmVzZXJ2ZWROYW1lOiAne3tuYW1lfX0gaXMgYSBkZXZpY2UgbmFtZSBXaW5kb3dzIHJlc2VydmVzLCBzbyB0aGUgZmlsZSBjYW5ub3QgZXhpc3Qgb24gV2luZG93cy4nXG4gICAgfSxcbiAgICB2YXVsdDoge1xuICAgICAgcHJvY2Vzc0ZpbGU6ICdQcm9jZXNzIGZpbGUge3tmaWxlUGF0aH19J1xuICAgIH1cbiAgfVxufSBhcyBjb25zdDtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVNPLE1BQU0sS0FBSztBQUFBLEVBQ2hCLGFBQWE7QUFBQSxJQUNYLGlCQUFpQjtBQUFBLE1BQ2YsY0FBYztBQUFBLE1BQ2QsV0FBVztBQUFBLE1BQ1gs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
216
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9pMThuL2xvY2FsZXMvZW4udHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIFRoaXMgZmlsZSBkZWZpbmVzIHRoZSBFbmdsaXNoIHRyYW5zbGF0aW9ucyBmb3IgdGhlIGBpMThuYCBtb2R1bGUuXG4gKi9cblxuLyoqXG4gKiBUaGUgRW5nbGlzaCB0cmFuc2xhdGlvbnMuXG4gKi9cbmV4cG9ydCBjb25zdCBlbiA9IHtcbiAgb2JzaWRpYW5MaWI6IHtcbiAgICBhc3luY1dpdGhOb3RpY2U6IHtcbiAgICAgIG1pbGxpc2Vjb25kczogJ21pbGxpc2Vjb25kcy4uLicsXG4gICAgICBvcGVyYXRpb246ICdPcGVyYXRpb24nLFxuICAgICAgcnVubmluZ0ZvcjogJ1J1bm5pbmcgZm9yJyxcbiAgICAgIHRlcm1pbmF0ZU9wZXJhdGlvbjogJ1lvdSBjYW4gdGVybWluYXRlIHRoZSBvcGVyYXRpb24gYnkgY2xpY2tpbmcgdGhlIGJ1dHRvbiBiZWxvdywgYnV0IGJlIGF3YXJlIGl0IG1pZ2h0IGxlYXZlIHRoZSB2YXVsdCBpbiBhbiBpbmNvbnNpc3RlbnQgc3RhdGUuJyxcbiAgICAgIHRpbWVkT3V0OiAnVGhlIG9wZXJhdGlvbiB0aW1lZCBvdXQgYWZ0ZXIge3tkdXJhdGlvbiwgbnVtYmVyfX0gbWlsbGlzZWNvbmRzLidcbiAgICB9LFxuICAgIGJ1bGtPcGVyYXRpb246IHtcbiAgICAgIG5vT3BlcmF0aW9uczogJ05vIGJ1bGsgb3BlcmF0aW9uIG9mIHRoaXMgcGx1Z2luIHdhcyBmb3VuZCBpbiB0aGUgdmF1bHQgcmVwb3NpdG9yeS4nLFxuICAgICAgbm90QWN0aXZlOiAnQnVsayBvcGVyYXRpb24gY29tbWl0cyBhcmUgb2ZmLCBvciB0aGUgdmF1bHQgaXMgbm90IGluIGEgZ2l0IHJlcG9zaXRvcnkuJyxcbiAgICAgIHJlY292ZXJlZEludGVycnVwdGVkOiAnQSBidWxrIG9wZXJhdGlvbiB3YXMgaW50ZXJydXB0ZWQuIEl0cyBjaGFuZ2VzIHdlcmUgY29tbWl0dGVkIGFzIHt7b3BlcmF0aW9uSWR9fSBpbnRlcnJ1cHRlZC4nLFxuICAgICAgcmVzdW1lZEFmdGVyUmVjb3Zlcnk6ICdUaGUgbG9jayBvZiB7e3JlY292ZXJlZE9wZXJhdGlvbklkfX0gd2VudCBzdGFsZSB3aGlsZSBpdCByYW4sIHNvIGl0cyBjaGFuZ2VzIHNvIGZhciB3ZXJlIGNvbW1pdHRlZCBhcyB7e3JlY292ZXJlZE9wZXJhdGlvbklkfX0gaW50ZXJydXB0ZWQsIGFuZCB0aGUgcmVzdCBhcyB7e29wZXJhdGlvbklkfX0uIFVuZG9pbmcgdGhlIHdob2xlIG9wZXJhdGlvbiB0YWtlcyByZXZlcnRpbmcgYm90aC4nLFxuICAgICAgcmV2ZXJ0Q29uZmxpY3Q6ICdSZXZlcnRpbmcge3tvcGVyYXRpb25JZH19IHN0b3BwZWQgb24gYSBjb25mbGljdC4gVGhlIHZhdWx0IHJlcG9zaXRvcnkgaXMgbGVmdCBtaWQtcmV2ZXJ0OiByZXNvbHZlIHRoZSBjb25mbGljdHMsIHRoZW4gcnVuIGdpdCByZXZlcnQgLS1jb250aW51ZSwgb3IgZ2l0IHJldmVydCAtLWFib3J0IHRvIGdpdmUgdXAuJyxcbiAgICAgIHJldmVydGVkOiAnUmV2ZXJ0ZWQge3tvcGVyYXRpb25JZH19LicsXG4gICAgICByZXZlcnRGYWlsZWQ6ICdGYWlsZWQgdG8gcmV2ZXJ0IHt7b3BlcmF0aW9uSWR9fToge3tlcnJvcn19JyxcbiAgICAgIHNlbGVjdE9wZXJhdGlvbjogJ1NlbGVjdCBhIGJ1bGsgb3BlcmF0aW9uIHRvIHVuZG8nXG4gICAgfSxcbiAgICBidXR0b25zOiB7XG4gICAgICBjYW5jZWw6ICdDYW5jZWwnLFxuICAgICAgb2s6ICdPSydcbiAgICB9LFxuICAgIGNhbGxvdXQ6IHtcbiAgICAgIGxvYWRDb250ZW50OiAnTG9hZCBjb250ZW50IGZvciBjYWxsb3V0J1xuICAgIH0sXG4gICAgZGF0YXZpZXc6IHtcbiAgICAgIGl0ZW1zUGVyUGFnZTogJ0l0ZW1zIHBlciBwYWdlOicsXG4gICAgICBqdW1wVG9QYWdlOiAnSnVtcCB0byBwYWdlOicsXG4gICAgICBwYWdlSGVhZGVyOiAnUGFnZSB7e3BhZ2VOdW1iZXIsIG51bWJlcn19IG9mIHt7dG90YWxQYWdlcywgbnVtYmVyfX0sIFRvdGFsIGl0ZW1zOiB7e3RvdGFsSXRlbXMsIG51bWJlcn19J1xuICAgIH0sXG4gICAgaG90a2V5OiB7XG4gICAgICBjbGVhcjogJ0NsZWFyIGhvdGtleScsXG4gICAgICBub3RTZXQ6ICdOb3Qgc2V0JyxcbiAgICAgIHByZXNzSG90a2V5OiAnUHJlc3MgYSBob3RrZXkuLi4nXG4gICAgfSxcbiAgICBsaXN0OiB7XG4gICAgICBhZGQ6ICdBZGQnLFxuICAgICAgZW1wdHk6ICdObyBpdGVtcycsXG4gICAgICBtb3ZlRG93bjogJ01vdmUgZG93bicsXG4gICAgICBtb3ZlVXA6ICdNb3ZlIHVwJyxcbiAgICAgIHJlbW92ZTogJ1JlbW92ZSdcbiAgICB9LFxuICAgIG1lbnU6IHtcbiAgICAgIGNvcHk6ICdDb3B5J1xuICAgIH0sXG4gICAgbWV0YWRhdGFDYWNoZToge1xuICAgICAgZ2V0QmFja2xpbmtzRm9yRmlsZVBhdGg6ICdHZXQgYmFja2xpbmtzIGZvciB7e2ZpbGVQYXRofX0nXG4gICAgfSxcbiAgICBub3RpY2VzOiB7XG4gICAgICBhdHRhY2htZW50SXNTdGlsbFVzZWQ6ICdBdHRhY2htZW50IHt7YXR0YWNobWVudFBhdGh9fSBpcyBzdGlsbCB1c2VkIGJ5IG90aGVyIG5vdGVzLiBJdCB3aWxsIG5vdCBiZSBkZWxldGVkLicsXG4gICAgICBhdHRhY2htZW50UmVzY3VlZDogJ0F0dGFjaG1lbnQge3thdHRhY2htZW50UGF0aH19IGlzIHN0aWxsIHVzZWQgYnkgb3RoZXIgbm90ZXMuIEl0IHdhcyBtb3ZlZCB0byB7e25ld0F0dGFjaG1lbnRQYXRofX0uJyxcbiAgICAgIGNsb3NlQXJpYUxhYmVsOiAnQ2xvc2UnLFxuICAgICAgZmFpbGVkVG9PcGVuVXJsOiAnRmFpbGVkIHRvIG9wZW4ge3t1cmx9fScsXG4gICAgICB1bmhhbmRsZWRFcnJvcjogJ0FuIHVuaGFuZGxlZCBlcnJvciBvY2N1cnJlZC4gUGxlYXNlIGNoZWNrIHRoZSBjb25zb2xlIGZvciBtb3JlIGluZm9ybWF0aW9uLidcbiAgICB9LFxuICAgIHBhdGhTZXR0aW5nczoge1xuICAgICAgaW52YWxpZEdsb2I6ICdJbnZhbGlkIGdsb2IgcGF0dGVybjoge3tnbG9ifX0gKHt7cmVhc29ufX0pJyxcbiAgICAgIGludmFsaWRSZWd1bGFyRXhwcmVzc2lvbjogJ0ludmFsaWQgcmVndWxhciBleHByZXNzaW9uOiB7e3JlZ0V4cH19ICh7e3JlYXNvbn19KScsXG4gICAgICB0cmFpbGluZ0VzY2FwZTogJ2l0IGVuZHMgd2l0aCBhbiB1bmVzY2FwZWQgXFxcXCcsXG4gICAgICB1bmNsb3NlZENoYXJhY3RlckNsYXNzOiAnYSBbIGNoYXJhY3RlciBjbGFzcyBpcyBuZXZlciBjbG9zZWQgd2l0aCBdJ1xuICAgIH0sXG4gICAgcGx1Z2luQ29uZmxpY3Q6IHtcbiAgICAgIGJsb2NrZWROb3RpY2U6ICd7e3BsdWdpbk5hbWV9fSBkb2VzIG5vdGhpbmcgd2hpbGUge3tjb25mbGljdGluZ1BsdWdpbk5hbWV9fSBpcyBlbmFibGVkLiBVcGRhdGUgb3IgZGlzYWJsZSBpdCB0byBjb250aW51ZS4nLFxuICAgICAgY29uZmxpY3RBcHBlYXJlZE5vdGljZTogJ3t7Y29uZmxpY3RpbmdQbHVnaW5OYW1lfX0gaXMgbm93IGVuYWJsZWQsIHNvIHt7cGx1Z2luTmFtZX19IGhhcyBzdG9wcGVkIHdvcmtpbmcuIFVwZGF0ZSBvciBkaXNhYmxlIGl0IHRvIHJlc3VtZS4nLFxuICAgICAgZGlzYWJsZTogJ0Rpc2FibGUge3tjb25mbGljdGluZ1BsdWdpbk5hbWV9fScsXG4gICAgICBzZXR0aW5nc0hlYWRpbmc6ICdDb25mbGljdGluZyBwbHVnaW4nLFxuICAgICAgd2FybmluZ05vdGljZTogJ3t7cGx1Z2luTmFtZX19IGFuZCB7e2NvbmZsaWN0aW5nUGx1Z2luTmFtZX19IG92ZXJsYXAsIGFuZCBib3RoIGFyZSBydW5uaW5nLidcbiAgICB9LFxuICAgIHBsdWdpbkRlcGVuZGVuY3k6IHtcbiAgICAgIGFscmVhZHlVcFRvRGF0ZTogJ3t7ZGVwZW5kZW5jeVBsdWdpbk5hbWV9fSBpcyBhbHJlYWR5IGF0IGl0cyBsYXRlc3QgcmVsZWFzZS4ge3twbHVnaW5OYW1lfX0gbmVlZHMgYSB2ZXJzaW9uIHRoYXQgaGFzIG5vdCBiZWVuIHJlbGVhc2VkIHlldC4nLFxuICAgICAgYmxvY2tlZE5vdGljZTogJ3t7cGx1Z2luTmFtZX19IGRvZXMgbm90aGluZyB1bnRpbCB7e2RlcGVuZGVuY3lQbHVnaW5OYW1lfX0gaXMgaW5zdGFsbGVkIGFuZCBlbmFibGVkLicsXG4gICAgICBkZXBlbmRlbmN5TG9zdE5vdGljZTogJ3t7ZGVwZW5kZW5jeVBsdWdpbk5hbWV9fSBpcyBubyBsb25nZXIgYXZhaWxhYmxlLCBzbyB7e3BsdWdpbk5hbWV9fSBoYXMgc3RvcHBlZCB3b3JraW5nLiBCcmluZyBpdCBiYWNrIHRvIHJlc3VtZS4nLFxuICAgICAgbm9SZWFkYWJsZUFwaU5vdGljZTogJ3t7ZGVwZW5kZW5jeVBsdWdpbk5hbWV9fSBpcyBlbmFibGVkIGJ1dCBwdWJsaXNoZXMgbm8gQVBJIHt7cGx1Z2luTmFtZX19IGNhbiByZWFkLCBzbyB7e3BsdWdpbk5hbWV9fSBkb2VzIG5vdGhpbmcuIFVwZGF0ZSB7e2RlcGVuZGVuY3lQbHVnaW5OYW1lfX0gdG8gcmVzdW1lLicsXG4gICAgICBvcGVuRGVwZW5kZW5jeVNldHRpbmdzOiAnT3BlbiB7e2RlcGVuZGVuY3lQbHVnaW5OYW1lfX0gc2V0dGluZ3MnLFxuICAgICAgc2V0dGluZ3NIZWFkaW5nOiAnUmVxdWlyZWQgcGx1Z2luIG1pc3NpbmcnLFxuICAgICAgdXBkYXRlOiAnVXBkYXRlIHt7ZGVwZW5kZW5jeVBsdWdpbk5hbWV9fScsXG4gICAgICB1cGRhdGVkOiAne3tkZXBlbmRlbmN5UGx1Z2luTmFtZX19IGlzIHVwZGF0ZWQuJyxcbiAgICAgIHVwZGF0ZUZhaWxlZDogJ0ZhaWxlZCB0byB1cGRhdGUge3tkZXBlbmRlbmN5UGx1Z2luTmFtZX19LiBDaGVjayB0aGUgY29uc29sZSBmb3IgbW9yZSBpbmZvcm1hdGlvbi4nLFxuICAgICAgdmVyc2lvbk1pc21hdGNoTm90aWNlOiAne3twbHVnaW5OYW1lfX0gbmVlZHMgYSBuZXdlciB2ZXJzaW9uIG9mIHt7ZGVwZW5kZW5jeVBsdWdpbk5hbWV9fS4gVXBkYXRlIGl0IHRvIHJlc3VtZS4nXG4gICAgfSxcbiAgICBwbHVnaW5TdWdnZXN0aW9uOiB7XG4gICAgICBlbmFibGU6ICdFbmFibGUnLFxuICAgICAgaW5zdGFsbDogJ0luc3RhbGwgYW5kIGVuYWJsZScsXG4gICAgICBpbnN0YWxsZWQ6ICd7e3BsdWdpbk5hbWV9fSBpcyBpbnN0YWxsZWQgYW5kIGVuYWJsZWQuJyxcbiAgICAgIGluc3RhbGxGYWlsZWQ6ICdGYWlsZWQgdG8gaW5zdGFsbCB7e3BsdWdpbk5hbWV9fS4gQ2hlY2sgdGhlIGNvbnNvbGUgZm9yIG1vcmUgaW5mb3JtYXRpb24uJyxcbiAgICAgIG5vdE5vdzogJ05vdCBub3cnXG4gICAgfSxcbiAgICBxdWV1ZToge1xuICAgICAgZmx1c2hRdWV1ZTogJ0ZsdXNoIHF1ZXVlJ1xuICAgIH0sXG4gICAgcmVsZWFzZU5vdGVzOiB7XG4gICAgICB0aXRsZTogJ3t7cGx1Z2luTmFtZX19IHJlbGVhc2Ugbm90ZXMnXG4gICAgfSxcbiAgICByZW5hbWVEZWxldGVIYW5kbGVyOiB7XG4gICAgICBoYW5kbGVEZWxldGU6ICdIYW5kbGUgZGVsZXRlOiB7e2ZpbGVQYXRofX0nLFxuICAgICAgaGFuZGxlT3JwaGFuZWRSZW5hbWVzOiAnSGFuZGxlIG9ycGhhbmVkIHJlbmFtZXMnLFxuICAgICAgaGFuZGxlUmVuYW1lOiAnSGFuZGxlIHJlbmFtZToge3tvbGRQYXRofX0gLT4ge3tuZXdQYXRofX0nLFxuICAgICAgdXBkYXRlZExpbmtzOiAnVXBkYXRlZCB7e2xpbmtzQ291bnQsIG51bWJlcn19IGxpbmtzIGluIHt7ZmlsZXNDb3VudCwgbnVtYmVyfX0gZmlsZXMuJ1xuICAgIH0sXG4gICAgcmVzb3VyY2VMb2NrOiB7XG4gICAgICBsb2NrZWRCeVRvb2x0aXA6ICdMb2NrZWQgYnknLFxuICAgICAgbG9ja2VkTm90ZVRvb2x0aXA6ICdUaGlzIG5vdGUgaXMgbG9ja2VkIHdoaWxlIGFuIG9wZXJhdGlvbiBpcyBpbiBwcm9ncmVzcy4nLFxuICAgICAgdW5sb2NrQ29uZmlybU1lc3NhZ2U6ICdUaGlzIHdpbGwgY2FuY2VsIHRoZSBvcGVyYXRpb24ocykgY3VycmVudGx5IGhvbGRpbmcgYSBsb2NrIG9uIHRoaXMgbm90ZSBhbmQgbWF5IGxlYXZlIHRoZSB2YXVsdCBpbiBhbiBpbmNvbnNpc3RlbnQgc3RhdGUuIFRoZSBub3RlIGlzIGxvY2tlZCBieTonLFxuICAgICAgdW5sb2NrQ29uZmlybVRpdGxlOiAnVW5sb2NrIG5vdGU/JyxcbiAgICAgIHVubG9ja01lbnVJdGVtOiAnVW5sb2NrJ1xuICAgIH0sXG4gICAgdmFsaWRhdGlvbjoge1xuICAgICAgY29udHJvbENoYXJhY3RlcjogJ3t7bmFtZX19IGNvbnRhaW5zIGEgY29udHJvbCBjaGFyYWN0ZXIuJyxcbiAgICAgIGVtcHR5TmFtZTogJ1RoZSBuYW1lIGlzIGVtcHR5LicsXG4gICAgICB0cmFpbGluZ0NoYXJhY3RlcnM6ICd7e25hbWV9fSBlbmRzIHdpdGggYSBkb3Qgb3IgYSBzcGFjZSwgd2hpY2ggV2luZG93cyByZW1vdmVzLicsXG4gICAgICB1bnNhZmVDaGFyYWN0ZXJzOiAne3tuYW1lfX0gY29udGFpbnMgY2hhcmFjdGVycyB0aGF0IGFyZSBub3QgYWxsb3dlZDoge3tjaGFyYWN0ZXJzfX0nLFxuICAgICAgd2luZG93c1Jlc2VydmVkTmFtZTogJ3t7bmFtZX19IGlzIGEgZGV2aWNlIG5hbWUgV2luZG93cyByZXNlcnZlcywgc28gdGhlIGZpbGUgY2Fubm90IGV4aXN0IG9uIFdpbmRvd3MuJ1xuICAgIH0sXG4gICAgdmF1bHQ6IHtcbiAgICAgIHByb2Nlc3NGaWxlOiAnUHJv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
@@ -38,6 +38,18 @@ export declare const en: {
38
38
  readonly jumpToPage: "Jump to page:";
39
39
  readonly pageHeader: "Page {{pageNumber, number}} of {{totalPages, number}}, Total items: {{totalItems, number}}";
40
40
  };
41
+ readonly hotkey: {
42
+ readonly clear: "Clear hotkey";
43
+ readonly notSet: "Not set";
44
+ readonly pressHotkey: "Press a hotkey...";
45
+ };
46
+ readonly list: {
47
+ readonly add: "Add";
48
+ readonly empty: "No items";
49
+ readonly moveDown: "Move down";
50
+ readonly moveUp: "Move up";
51
+ readonly remove: "Remove";
52
+ };
41
53
  readonly menu: {
42
54
  readonly copy: "Copy";
43
55
  };
@@ -41,6 +41,18 @@ declare const translationsMapImpl: {
41
41
  readonly jumpToPage: "Jump to page:";
42
42
  readonly pageHeader: "Page {{pageNumber, number}} of {{totalPages, number}}, Total items: {{totalItems, number}}";
43
43
  };
44
+ readonly hotkey: {
45
+ readonly clear: "Clear hotkey";
46
+ readonly notSet: "Not set";
47
+ readonly pressHotkey: "Press a hotkey...";
48
+ };
49
+ readonly list: {
50
+ readonly add: "Add";
51
+ readonly empty: "No items";
52
+ readonly moveDown: "Move down";
53
+ readonly moveUp: "Move up";
54
+ readonly remove: "Remove";
55
+ };
44
56
  readonly menu: {
45
57
  readonly copy: "Copy";
46
58
  };