obsidian-dev-utils 2.16.0 → 2.17.1

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 (120) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/dist/lib/@types/compare-versions.d.ts +1 -1
  3. package/dist/lib/@types.cjs +1 -1
  4. package/dist/lib/@types.d.ts +5 -5
  5. package/dist/lib/Async.cjs +1 -1
  6. package/dist/lib/Async.d.ts +12 -12
  7. package/dist/lib/Blob.cjs +1 -1
  8. package/dist/lib/Blob.d.ts +1 -1
  9. package/dist/lib/CodeGenerator.cjs +1 -1
  10. package/dist/lib/CodeGenerator.d.ts +1 -1
  11. package/dist/lib/DocumentFragment.cjs +1 -1
  12. package/dist/lib/DocumentFragment.d.ts +1 -1
  13. package/dist/lib/Error.cjs +1 -1
  14. package/dist/lib/Error.d.ts +1 -1
  15. package/dist/lib/Fs.cjs +1 -1
  16. package/dist/lib/Fs.d.ts +1 -1
  17. package/dist/lib/JSON.cjs +10 -8
  18. package/dist/lib/JSON.d.ts +28 -14
  19. package/dist/lib/Npm.cjs +11 -9
  20. package/dist/lib/Npm.d.ts +19 -13
  21. package/dist/lib/Object.cjs +1 -1
  22. package/dist/lib/Object.d.ts +3 -3
  23. package/dist/lib/Path.cjs +10 -10
  24. package/dist/lib/Path.d.ts +75 -10
  25. package/dist/lib/RegExp.cjs +1 -1
  26. package/dist/lib/RegExp.d.ts +1 -1
  27. package/dist/lib/Root.cjs +9 -8
  28. package/dist/lib/Root.d.ts +57 -24
  29. package/dist/lib/String.cjs +1 -1
  30. package/dist/lib/String.d.ts +2 -2
  31. package/dist/lib/ValueProvider.cjs +1 -1
  32. package/dist/lib/ValueProvider.d.ts +5 -5
  33. package/dist/lib/bin/ESLint/@types/@guardian__eslint-plugin-tsdoc-required.d.ts +10 -0
  34. package/dist/lib/bin/ESLint/@types/@stylistic__eslint-plugin.d.ts +1 -1
  35. package/dist/lib/bin/ESLint/@types/@typescript-eslint__eslint-plugin.d.ts +1 -1
  36. package/dist/lib/bin/ESLint/@types/@typescript-eslint__parser.d.ts +1 -1
  37. package/dist/lib/bin/ESLint/@types/eslint-plugin-deprecation.d.ts +1 -1
  38. package/dist/lib/bin/ESLint/@types/eslint-plugin-import.d.ts +1 -1
  39. package/dist/lib/bin/ESLint/@types/eslint-plugin-modules-newlines.d.ts +1 -1
  40. package/dist/lib/bin/ESLint/@types/eslint-plugin-verify-tsdoc.d.ts +10 -0
  41. package/dist/lib/bin/ESLint/@types/globals.d.ts +1 -1
  42. package/dist/lib/bin/ESLint/ESLint.cjs +11 -11
  43. package/dist/lib/bin/ESLint/ESLint.d.ts +7 -5
  44. package/dist/lib/bin/ESLint/eslint.config.cjs +1 -1
  45. package/dist/lib/bin/ESLint/eslint.config.d.ts +2 -4
  46. package/dist/lib/bin/ObsidianDevUtilsRepoPaths.cjs +1 -1
  47. package/dist/lib/bin/ObsidianDevUtilsRepoPaths.d.ts +1 -1
  48. package/dist/lib/bin/build.cjs +1 -1
  49. package/dist/lib/bin/build.d.ts +1 -1
  50. package/dist/lib/bin/cli.cjs +1 -1
  51. package/dist/lib/bin/cli.d.ts +1 -1
  52. package/dist/lib/bin/esbuild/Dependency.cjs +1 -1
  53. package/dist/lib/bin/esbuild/Dependency.d.ts +1 -1
  54. package/dist/lib/bin/esbuild/ObsidianPluginBuilder.cjs +7 -6
  55. package/dist/lib/bin/esbuild/ObsidianPluginBuilder.d.ts +21 -9
  56. package/dist/lib/bin/esbuild/copyToObsidianPluginsFolderPlugin.cjs +1 -1
  57. package/dist/lib/bin/esbuild/copyToObsidianPluginsFolderPlugin.d.ts +1 -1
  58. package/dist/lib/bin/esbuild/fixSourceMapsPlugin.cjs +1 -1
  59. package/dist/lib/bin/esbuild/fixSourceMapsPlugin.d.ts +1 -1
  60. package/dist/lib/bin/esbuild/lintPlugin.cjs +1 -1
  61. package/dist/lib/bin/esbuild/lintPlugin.d.ts +1 -1
  62. package/dist/lib/bin/esbuild/preprocessPlugin.cjs +1 -1
  63. package/dist/lib/bin/esbuild/preprocessPlugin.d.ts +2 -2
  64. package/dist/lib/bin/esbuild/renameToCjsPlugin.cjs +1 -1
  65. package/dist/lib/bin/esbuild/renameToCjsPlugin.d.ts +1 -1
  66. package/dist/lib/bin/spellcheck.cjs +1 -1
  67. package/dist/lib/bin/spellcheck.d.ts +1 -1
  68. package/dist/lib/bin/version.cjs +1 -1
  69. package/dist/lib/bin/version.d.ts +1 -1
  70. package/dist/lib/cli.cjs +2 -8
  71. package/dist/lib/cli.d.ts +2 -8
  72. package/dist/lib/obsidian/App.cjs +1 -1
  73. package/dist/lib/obsidian/App.d.ts +1 -1
  74. package/dist/lib/obsidian/AttachmentPath.cjs +1 -1
  75. package/dist/lib/obsidian/AttachmentPath.d.ts +1 -1
  76. package/dist/lib/obsidian/Backlink.cjs +15 -13
  77. package/dist/lib/obsidian/Backlink.d.ts +36 -16
  78. package/dist/lib/obsidian/Callout.cjs +9 -8
  79. package/dist/lib/obsidian/Callout.d.ts +26 -11
  80. package/dist/lib/obsidian/Dataview.cjs +28 -24
  81. package/dist/lib/obsidian/Dataview.d.ts +132 -79
  82. package/dist/lib/obsidian/DataviewLink.cjs +1 -1
  83. package/dist/lib/obsidian/DataviewLink.d.ts +7 -9
  84. package/dist/lib/obsidian/FrontMatter.cjs +1 -1
  85. package/dist/lib/obsidian/FrontMatter.d.ts +15 -18
  86. package/dist/lib/obsidian/Link.cjs +33 -30
  87. package/dist/lib/obsidian/Link.d.ts +93 -41
  88. package/dist/lib/obsidian/MarkdownCodeBlockProcessor.cjs +1 -1
  89. package/dist/lib/obsidian/MarkdownCodeBlockProcessor.d.ts +1 -1
  90. package/dist/lib/obsidian/MetadataCache.cjs +1 -1
  91. package/dist/lib/obsidian/MetadataCache.d.ts +11 -10
  92. package/dist/lib/obsidian/Modal/Alert.cjs +1 -1
  93. package/dist/lib/obsidian/Modal/Alert.d.ts +4 -4
  94. package/dist/lib/obsidian/Modal/Prompt.cjs +8 -7
  95. package/dist/lib/obsidian/Modal/Prompt.d.ts +26 -11
  96. package/dist/lib/obsidian/Modal/SelectItem.cjs +1 -1
  97. package/dist/lib/obsidian/Modal/SelectItem.d.ts +26 -11
  98. package/dist/lib/obsidian/Plugin/ObsidianPluginRepoPaths.cjs +1 -1
  99. package/dist/lib/obsidian/Plugin/ObsidianPluginRepoPaths.d.ts +1 -1
  100. package/dist/lib/obsidian/Plugin/Plugin.cjs +1 -1
  101. package/dist/lib/obsidian/Plugin/Plugin.d.ts +6 -6
  102. package/dist/lib/obsidian/Plugin/PluginBase.cjs +10 -11
  103. package/dist/lib/obsidian/Plugin/PluginBase.d.ts +14 -15
  104. package/dist/lib/obsidian/Plugin/PluginSettings.cjs +1 -1
  105. package/dist/lib/obsidian/Plugin/PluginSettings.d.ts +9 -9
  106. package/dist/lib/obsidian/Plugin/PluginSettingsTabBase.cjs +12 -19
  107. package/dist/lib/obsidian/Plugin/PluginSettingsTabBase.d.ts +27 -22
  108. package/dist/lib/obsidian/ResourceUrl.cjs +1 -1
  109. package/dist/lib/obsidian/ResourceUrl.d.ts +1 -1
  110. package/dist/lib/obsidian/TAbstractFile.cjs +1 -1
  111. package/dist/lib/obsidian/TAbstractFile.d.ts +4 -4
  112. package/dist/lib/obsidian/TFile.cjs +1 -1
  113. package/dist/lib/obsidian/TFile.d.ts +1 -1
  114. package/dist/lib/obsidian/TFolder.cjs +1 -1
  115. package/dist/lib/obsidian/TFolder.d.ts +11 -8
  116. package/dist/lib/obsidian/Vault.cjs +1 -1
  117. package/dist/lib/obsidian/Vault.d.ts +1 -1
  118. package/dist/lib/url.cjs +1 -1
  119. package/dist/lib/url.d.ts +1 -1
  120. package/package.json +7 -4
@@ -1,37 +1,56 @@
1
1
  /**
2
- * @module Backlink
2
+ * @packageDocumentation Backlink
3
3
  * Provides utility functions for working with backlinks.
4
4
  */
5
5
  import { type DataviewInlineApi } from "./Dataview.ts";
6
6
  import { type PathOrAbstractFile } from "./TAbstractFile.ts";
7
7
  import type { PathOrFile } from "./TFile.ts";
8
8
  /**
9
- * Renders delayed backlinks.
10
- *
11
- * @param {Object} options - The options for rendering delayed backlinks.
12
- * @param {DataviewInlineApi} options.dv - The Dataview inline API.
13
- * @param {PathOrFile[]} options.files - The array of files.
14
- * @param {string} [options.title="Backlinks"] - The title for the backlinks.
15
- * @returns {void}
9
+ * Options for rendering delayed backlinks.
16
10
  */
17
- export declare function renderDelayedBacklinks({ dv, files, title }: {
11
+ type RenderDelayedBacklinksOptions = {
12
+ /**
13
+ * The DataviewInlineApi instance.
14
+ */
18
15
  dv: DataviewInlineApi;
16
+ /**
17
+ * An array of PathOrFile.
18
+ */
19
19
  files: PathOrFile[];
20
+ /**
21
+ * The title for the rendered backlinks. Defaults to "Backlinks".
22
+ */
20
23
  title?: string;
21
- }): void;
24
+ };
22
25
  /**
23
- * Renders delayed backlinks for a specific folder.
26
+ * Renders delayed backlinks.
24
27
  *
25
28
  * @param options - The options for rendering delayed backlinks.
26
- * @param options.dv - The DataviewInlineApi instance.
27
- * @param options.folder - The folder path. If not provided, the current file's folder will be used.
28
- * @param options.title - The title for the rendered backlinks. Defaults to "Folder Backlinks".
29
29
  */
30
- export declare function renderDelayedBacklinksForFolder({ dv, folder, title }: {
30
+ export declare function renderDelayedBacklinks(options: RenderDelayedBacklinksOptions): void;
31
+ /**
32
+ * Options for rendering delayed backlinks for a folder.
33
+ */
34
+ type RenderDelayedBacklinksForFolderOptions = {
35
+ /**
36
+ * The DataviewInlineApi instance.
37
+ */
31
38
  dv: DataviewInlineApi;
39
+ /**
40
+ * The folder path. If not provided, the current file's folder will be used.
41
+ */
32
42
  folder?: string;
43
+ /**
44
+ * The title for the rendered backlinks. Defaults to "Folder Backlinks".
45
+ */
33
46
  title?: string;
34
- }): void;
47
+ };
48
+ /**
49
+ * Renders delayed backlinks for a specific folder.
50
+ *
51
+ * @param options - The options for rendering delayed backlinks.
52
+ */
53
+ export declare function renderDelayedBacklinksForFolder(options: RenderDelayedBacklinksForFolderOptions): void;
35
54
  /**
36
55
  * Renders a backlinks table using the provided DataviewInlineApi and optional array of PathOrAbstractFile.
37
56
  *
@@ -40,3 +59,4 @@ export declare function renderDelayedBacklinksForFolder({ dv, folder, title }: {
40
59
  * @returns A Promise that resolves when the backlinks table has been rendered.
41
60
  */
42
61
  export declare function renderBacklinksTable(dv: DataviewInlineApi, pathOrFiles?: PathOrAbstractFile[]): Promise<void>;
62
+ export {};
@@ -53,13 +53,14 @@ function getModifier(mode) {
53
53
  return "";
54
54
  }
55
55
  }
56
- function renderCallout({
57
- dv,
58
- type = "NOTE",
59
- mode = 1 /* FoldableCollapsed */,
60
- header = "",
61
- contentProvider = ""
62
- }) {
56
+ function renderCallout(options) {
57
+ const {
58
+ dv,
59
+ type = "NOTE",
60
+ mode = 1 /* FoldableCollapsed */,
61
+ header = "",
62
+ contentProvider = ""
63
+ } = options;
63
64
  const modifier = getModifier(mode);
64
65
  const callout = dv.paragraph(`> [!${type}]${modifier} ${header}
65
66
  >
@@ -97,4 +98,4 @@ function wrapForCallout(content) {
97
98
  renderCallout,
98
99
  wrapForCallout
99
100
  });
100
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL29ic2lkaWFuL0NhbGxvdXQudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbInZhciBfX2ltcG9ydF9tZXRhX3VybCA9IGdsb2JhbFRoaXNbXCJpbXBvcnQubWV0YS51cmxcIl0gPz8gKCgpPT5yZXF1aXJlKFwibm9kZTp1cmxcIikucGF0aFRvRmlsZVVSTChfX2ZpbGVuYW1lKSkoKTtcbnZhciBfX3Byb2Nlc3MgPSBnbG9iYWxUaGlzW1wicHJvY2Vzc1wiXSA/PyB7XG4gIFwiY3dkXCI6ICgpPT5cIi9cIixcbiAgXCJlbnZcIjoge30sXG4gIFwicGxhdGZvcm1cIjogXCJhbmRyb2lkXCJcbn07XG4vKipcbiAqIEBtb2R1bGUgQ2FsbG91dFxuICogVGhpcyBtb2R1bGUgcHJvdmlkZXMgdXRpbGl0eSBmdW5jdGlvbnMgZm9yIHJlbmRlcmluZyBjYWxsb3V0cyBpbiBEYXRhdmlldy5cbiAqL1xuXG5cbmltcG9ydCB7IGludm9rZUFzeW5jU2FmZWx5IH0gZnJvbSBcIi4uL0FzeW5jLnRzXCI7XG5cbmltcG9ydCB7XG4gIGdldFJlbmRlcmVkQ29udGFpbmVyLFxuICB0eXBlIERhdGF2aWV3SW5saW5lQXBpLFxufSBmcm9tIFwiLi9EYXRhdmlldy50c1wiO1xuXG5pbXBvcnQge1xuICByZXNvbHZlVmFsdWUsXG4gIHR5cGUgVmFsdWVQcm92aWRlclxufSBmcm9tIFwiLi4vVmFsdWVQcm92aWRlci50c1wiO1xuXG4vKipcbiAqIEVudW0gcmVwcmVzZW50aW5nIHRoZSBtb2RlIG9mIGEgY2FsbG91dC5cbiAqL1xuZXhwb3J0IGVudW0gQ2FsbG91dE1vZGUge1xuICAvKiogRGVmYXVsdCBtb2RlLCB3aXRoIG5vIHNwZWNpYWwgYmVoYXZpb3IuICovXG4gIERlZmF1bHQsXG5cbiAgLyoqIEZvbGRhYmxlIG1vZGUgd2l0aCB0aGUgY2FsbG91dCBjb2xsYXBzZWQuICovXG4gIEZvbGRhYmxlQ29sbGFwc2VkLFxuXG4gIC8qKiBGb2xkYWJsZSBtb2RlIHdpdGggdGhlIGNhbGxvdXQgZXhwYW5kZWQuICovXG4gIEZvbGRhYmxlRXhwYW5kZWRcbn1cblxuLyoqXG4gKiBSZXR1cm5zIHRoZSBtb2RpZmllciBzdHJpbmcgYmFzZWQgb24gdGhlIGNhbGxvdXQgbW9kZS5cbiAqXG4gKiBAcGFyYW0gbW9kZSAtIFRoZSBtb2RlIG9mIHRoZSBjYWxsb3V0LlxuICogQHJldHVybnMgVGhlIGNvcnJlc3BvbmRpbmcgbW9kaWZpZXIgc3RyaW5nLlxuICovXG5mdW5jdGlvbiBnZXRNb2RpZmllcihtb2RlOiBDYWxsb3V0TW9kZSk6IHN0cmluZyB7XG4gIHN3aXRjaCAobW9kZSkge1xuICAgIGNhc2UgQ2FsbG91dE1vZGUuRm9sZGFibGVDb2xsYXBzZWQ6XG4gICAgICByZXR1cm4gXCItXCI7XG4gICAgY2FzZSBDYWxsb3V0TW9kZS5Gb2xkYWJsZUV4cGFuZGVkOlxuICAgICAgcmV0dXJuIFwiK1wiO1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gXCJcIjtcbiAgfVxufVxuXG4vKipcbiAqIFJlbmRlcnMgYSBjYWxsb3V0IGJsb2NrIGluIERhdGF2aWV3LlxuICpcbiAqIEBwYXJhbSBkdiAtIFRoZSBEYXRhdmlld0lubGluZUFwaSBpbnN0YW5jZS5cbiAqIEBwYXJhbSB0eXBlIC0gVGhlIHR5cGUgb2YgdGhlIGNhbGxvdXQsIGRlZmF1bHQgaXMgYFwiTk9URVwiYC5cbiAqIEBwYXJhbSBtb2RlIC0gVGhlIGNhbGxvdXQgbW9kZSwgZGVmYXVsdCBpcyBgQ2FsbG91dE1vZGUuRm9sZGFibGVDb2xsYXBzZWRgLlxuICogQHBhcmFtIGhlYWRlciAtIFRoZSBoZWFkZXIgdGV4dCBvZiB0aGUgY2FsbG91dCwgZGVmYXVsdCBpcyBhbiBlbXB0eSBzdHJpbmcuXG4gKiBAcGFyYW0gY29udGVudFByb3ZpZGVyIC0gQW4gb3B0aW9uYWwgcHJvdmlkZXIgZm9yIHRoZSBjb250ZW50LCB3aGljaCBjYW4gYmUgZWl0aGVyIGEgc3RyaW5nIG9yIGEgTm9kZS5cbiAqIEBwYXJhbSBjb250ZW50UmVuZGVyZXIgLSBBbiBvcHRpb25hbCBmdW5jdGlvbiB0byByZW5kZXIgdGhlIGNvbnRlbnQgYXN5bmNocm9ub3VzbHkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZW5kZXJDYWxsb3V0KHtcbiAgZHYsXG4gIHR5cGUgPSBcIk5PVEVcIixcbiAgbW9kZSA9IENhbGxvdXRNb2RlLkZvbGRhYmxlQ29sbGFwc2VkLFxuICBoZWFkZXIgPSBcIlwiLFxuICBjb250ZW50UHJvdmlkZXIgPSBcIlwiXG59OiB7XG4gIGR2OiBEYXRhdmlld0lubGluZUFwaSxcbiAgdHlwZT86IHN0cmluZyxcbiAgbW9kZT86IENhbGxvdXRNb2RlLFxuICBoZWFkZXI/OiBzdHJpbmcsXG4gIGNvbnRlbnRQcm92aWRlcj86IFZhbHVlUHJvdmlkZXI8c3RyaW5nIHwgTm9kZSB8IHZvaWQ+XG59KTogdm9pZCB7XG4gIGNvbnN0IG1vZGlmaWVyID0gZ2V0TW9kaWZpZXIobW9kZSk7XG4gIGNvbnN0IGNhbGxvdXQgPSBkdi5wYXJhZ3JhcGgoYD4gWyEke3R5cGV9XSR7bW9kaWZpZXJ9ICR7aGVhZGVyfVxcbj5cXG4+IDxkaXYgY2xhc3M9XCJjb250ZW50XCI+PC9kaXY+YCk7XG4gIGNvbnN0IGNvbnRlbnREaXYgPSBjYWxsb3V0LnF1ZXJ5U2VsZWN0b3I8SFRNTERpdkVsZW1lbnQ+KFwiLmNvbnRlbnRcIikhO1xuICBkdi5wYXJhZ3JhcGgoXCJMb2FkaW5nLi4uIFx1MjNGM1wiLCB7IGNvbnRhaW5lcjogY29udGVudERpdiB9KTtcblxuICBjb25zdCBvYnNlcnZlciA9IG5ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcigoZW50cmllczogSW50ZXJzZWN0aW9uT2JzZXJ2ZXJFbnRyeVtdKSA9PiB7XG4gICAgZm9yIChjb25zdCBlbnRyeSBvZiBlbnRyaWVzKSB7XG4gICAgICBpZiAoZW50cnkuaXNJbnRlcnNlY3RpbmcpIHtcbiAgICAgICAgb2JzZXJ2ZXIudW5vYnNlcnZlKGVudHJ5LnRhcmdldCk7XG4gICAgICAgIGludm9rZUFzeW5jU2FmZWx5KGxvYWRDb250ZW50KCkpO1xuICAgICAgfVxuICAgIH1cbiAgfSk7XG4gIG9ic2VydmVyLm9ic2VydmUoY29udGVudERpdik7XG5cbiAgYXN5bmMgZnVuY3Rpb24gbG9hZENvbnRlbnQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgc2xlZXAoNTApO1xuICAgIGxldCBjb250ZW50OiBzdHJpbmcgfCBOb2RlIHwgdm9pZDtcblxuICAgIGNvbnN0IHBhcmFncmFwaCA9IGF3YWl0IGdldFJlbmRlcmVkQ29udGFpbmVyKGR2LCBhc3luYygpID0+IHtcbiAgICAgIGNvbnRlbnQgPSBhd2FpdCByZXNvbHZlVmFsdWUoY29udGVudFByb3ZpZGVyKTtcbiAgICB9KTtcblxuICAgIGNvbnRlbnQgPz89IHBhcmFncmFwaDtcblxuICAgIGNvbnRlbnREaXYuZW1wdHkoKTtcbiAgICBkdi5wYXJhZ3JhcGgoY29udGVudCwgeyBjb250YWluZXI6IGNvbnRlbnREaXYgfSk7XG4gIH1cbn1cblxuLyoqXG4gKiBXcmFwcyB0aGUgcHJvdmlkZWQgY29udGVudCBpbiBibG9ja3F1b3RlIHN5bnRheCBmb3IgYSBjYWxsb3V0LlxuICpcbiAqIEBwYXJhbSBjb250ZW50IC0gVGhlIGNvbnRlbnQgdG8gd3JhcC5cbiAqIEByZXR1cm5zIFRoZSBjb250ZW50IHdyYXBwZWQgaW4gYmxvY2txdW90ZSBzeW50YXguXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB3cmFwRm9yQ2FsbG91dChjb250ZW50OiBzdHJpbmcpOiBzdHJpbmcge1xuICBjb25zdCBsaW5lcyA9IGNvbnRlbnQuc3BsaXQoXCJcXG5cIik7XG4gIGNvbnN0IHByZWZpeGVkTGluZXMgPSBsaW5lcy5tYXAoKGxpbmUpID0+IGA+ICR7bGluZX1gKTtcbiAgcmV0dXJuIHByZWZpeGVkTGluZXMuam9pbihcIlxcblwiKTtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFZQSxtQkFBa0M7QUFFbEMsc0JBR087QUFFUCwyQkFHTztBQXRCUCxJQUFJLG9CQUFvQixXQUFXLGlCQUFpQixNQUFNLE1BQUksUUFBUSxVQUFVLEVBQUUsY0FBYyxVQUFVLEdBQUc7QUFDN0csSUFBSSxZQUFZLFdBQVcsU0FBUyxLQUFLO0FBQUEsRUFDdkMsT0FBTyxNQUFJO0FBQUEsRUFDWCxPQUFPLENBQUM7QUFBQSxFQUNSLFlBQVk7QUFDZDtBQXNCTyxJQUFLLGNBQUwsa0JBQUtBLGlCQUFMO0FBRUwsRUFBQUEsMEJBQUE7QUFHQSxFQUFBQSwwQkFBQTtBQUdBLEVBQUFBLDBCQUFBO0FBUlUsU0FBQUE7QUFBQSxHQUFBO0FBaUJaLFNBQVMsWUFBWSxNQUEyQjtBQUM5QyxVQUFRLE1BQU07QUFBQSxJQUNaLEtBQUs7QUFDSCxhQUFPO0FBQUEsSUFDVCxLQUFLO0FBQ0gsYUFBTztBQUFBLElBQ1Q7QUFDRSxhQUFPO0FBQUEsRUFDWDtBQUNGO0FBWU8sU0FBUyxjQUFjO0FBQUEsRUFDNUI7QUFBQSxFQUNBLE9BQU87QUFBQSxFQUNQLE9BQU87QUFBQSxFQUNQLFNBQVM7QUFBQSxFQUNULGtCQUFrQjtBQUNwQixHQU1TO0FBQ1AsUUFBTSxXQUFXLFlBQVksSUFBSTtBQUNqQyxRQUFNLFVBQVUsR0FBRyxVQUFVLE9BQU8sSUFBSSxJQUFJLFFBQVEsSUFBSSxNQUFNO0FBQUE7QUFBQSw4QkFBb0M7QUFDbEcsUUFBTSxhQUFhLFFBQVEsY0FBOEIsVUFBVTtBQUNuRSxLQUFHLFVBQVUscUJBQWdCLEVBQUUsV0FBVyxXQUFXLENBQUM7QUFFdEQsUUFBTSxXQUFXLElBQUkscUJBQXFCLENBQUMsWUFBeUM7QUFDbEYsZUFBVyxTQUFTLFNBQVM7QUFDM0IsVUFBSSxNQUFNLGdCQUFnQjtBQUN4QixpQkFBUyxVQUFVLE1BQU0sTUFBTTtBQUMvQiw0Q0FBa0IsWUFBWSxDQUFDO0FBQUEsTUFDakM7QUFBQSxJQUNGO0FBQUEsRUFDRixDQUFDO0FBQ0QsV0FBUyxRQUFRLFVBQVU7QUFFM0IsaUJBQWUsY0FBNkI7QUFDMUMsVUFBTSxNQUFNLEVBQUU7QUFDZCxRQUFJO0FBRUosVUFBTSxZQUFZLFVBQU0sc0NBQXFCLElBQUksWUFBVztBQUMxRCxnQkFBVSxVQUFNLG1DQUFhLGVBQWU7QUFBQSxJQUM5QyxDQUFDO0FBRUQsZ0JBQVk7QUFFWixlQUFXLE1BQU07QUFDakIsT0FBRyxVQUFVLFNBQVMsRUFBRSxXQUFXLFdBQVcsQ0FBQztBQUFBLEVBQ2pEO0FBQ0Y7QUFRTyxTQUFTLGVBQWUsU0FBeUI7QUFDdEQsUUFBTSxRQUFRLFFBQVEsTUFBTSxJQUFJO0FBQ2hDLFFBQU0sZ0JBQWdCLE1BQU0sSUFBSSxDQUFDLFNBQVMsS0FBSyxJQUFJLEVBQUU7QUFDckQsU0FBTyxjQUFjLEtBQUssSUFBSTtBQUNoQzsiLAogICJuYW1lcyI6IFsiQ2FsbG91dE1vZGUiXQp9Cg==
101
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL29ic2lkaWFuL0NhbGxvdXQudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbInZhciBfX2ltcG9ydF9tZXRhX3VybCA9IGdsb2JhbFRoaXNbXCJpbXBvcnQubWV0YS51cmxcIl0gPz8gKCgpPT5yZXF1aXJlKFwibm9kZTp1cmxcIikucGF0aFRvRmlsZVVSTChfX2ZpbGVuYW1lKSkoKTtcbnZhciBfX3Byb2Nlc3MgPSBnbG9iYWxUaGlzW1wicHJvY2Vzc1wiXSA/PyB7XG4gIFwiY3dkXCI6ICgpPT5cIi9cIixcbiAgXCJlbnZcIjoge30sXG4gIFwicGxhdGZvcm1cIjogXCJhbmRyb2lkXCJcbn07XG4vKipcbiAqIEBwYWNrYWdlRG9jdW1lbnRhdGlvbiBDYWxsb3V0XG4gKiBUaGlzIG1vZHVsZSBwcm92aWRlcyB1dGlsaXR5IGZ1bmN0aW9ucyBmb3IgcmVuZGVyaW5nIGNhbGxvdXRzIGluIERhdGF2aWV3LlxuICovXG5cblxuaW1wb3J0IHsgaW52b2tlQXN5bmNTYWZlbHkgfSBmcm9tIFwiLi4vQXN5bmMudHNcIjtcblxuaW1wb3J0IHtcbiAgZ2V0UmVuZGVyZWRDb250YWluZXIsXG4gIHR5cGUgRGF0YXZpZXdJbmxpbmVBcGksXG59IGZyb20gXCIuL0RhdGF2aWV3LnRzXCI7XG5cbmltcG9ydCB7XG4gIHJlc29sdmVWYWx1ZSxcbiAgdHlwZSBWYWx1ZVByb3ZpZGVyXG59IGZyb20gXCIuLi9WYWx1ZVByb3ZpZGVyLnRzXCI7XG5cbi8qKlxuICogRW51bSByZXByZXNlbnRpbmcgdGhlIG1vZGUgb2YgYSBjYWxsb3V0LlxuICovXG5leHBvcnQgZW51bSBDYWxsb3V0TW9kZSB7XG4gIC8qKiBEZWZhdWx0IG1vZGUsIHdpdGggbm8gc3BlY2lhbCBiZWhhdmlvci4gKi9cbiAgRGVmYXVsdCxcblxuICAvKiogRm9sZGFibGUgbW9kZSB3aXRoIHRoZSBjYWxsb3V0IGNvbGxhcHNlZC4gKi9cbiAgRm9sZGFibGVDb2xsYXBzZWQsXG5cbiAgLyoqIEZvbGRhYmxlIG1vZGUgd2l0aCB0aGUgY2FsbG91dCBleHBhbmRlZC4gKi9cbiAgRm9sZGFibGVFeHBhbmRlZFxufVxuXG4vKipcbiAqIFJldHVybnMgdGhlIG1vZGlmaWVyIHN0cmluZyBiYXNlZCBvbiB0aGUgY2FsbG91dCBtb2RlLlxuICpcbiAqIEBwYXJhbSBtb2RlIC0gVGhlIG1vZGUgb2YgdGhlIGNhbGxvdXQuXG4gKiBAcmV0dXJucyBUaGUgY29ycmVzcG9uZGluZyBtb2RpZmllciBzdHJpbmcuXG4gKi9cbmZ1bmN0aW9uIGdldE1vZGlmaWVyKG1vZGU6IENhbGxvdXRNb2RlKTogc3RyaW5nIHtcbiAgc3dpdGNoIChtb2RlKSB7XG4gICAgY2FzZSBDYWxsb3V0TW9kZS5Gb2xkYWJsZUNvbGxhcHNlZDpcbiAgICAgIHJldHVybiBcIi1cIjtcbiAgICBjYXNlIENhbGxvdXRNb2RlLkZvbGRhYmxlRXhwYW5kZWQ6XG4gICAgICByZXR1cm4gXCIrXCI7XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiBcIlwiO1xuICB9XG59XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgcmVuZGVyaW5nIGEgY2FsbG91dCBibG9jayBpbiBEYXRhdmlldy5cbiAqL1xudHlwZSBSZW5kZXJDYWxsb3V0T3B0aW9ucyA9IHtcbiAgLyoqXG4gICAqIFRoZSBEYXRhdmlld0lubGluZUFwaSBpbnN0YW5jZS5cbiAgICovXG4gIGR2OiBEYXRhdmlld0lubGluZUFwaTtcblxuICAvKipcbiAgICogVGhlIHR5cGUgb2YgdGhlIGNhbGxvdXQsIGRlZmF1bHQgaXMgYFwiTk9URVwiYC5cbiAgICovXG4gIHR5cGU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBjYWxsb3V0IG1vZGUsIGRlZmF1bHQgaXMgYENhbGxvdXRNb2RlLkZvbGRhYmxlQ29sbGFwc2VkYC5cbiAgICovXG4gIG1vZGU/OiBDYWxsb3V0TW9kZTtcblxuICAvKipcbiAgICogVGhlIGhlYWRlciB0ZXh0IG9mIHRoZSBjYWxsb3V0LCBkZWZhdWx0IGlzIGFuIGVtcHR5IHN0cmluZy5cbiAgICovXG4gIGhlYWRlcj86IHN0cmluZztcblxuICAvKipcbiAgICogQW4gb3B0aW9uYWwgcHJvdmlkZXIgZm9yIHRoZSBjb250ZW50LCB3aGljaCBjYW4gYmUgZWl0aGVyIGEgc3RyaW5nIG9yIGEgTm9kZS5cbiAgICovXG4gIGNvbnRlbnRQcm92aWRlcj86IFZhbHVlUHJvdmlkZXI8c3RyaW5nIHwgTm9kZSB8IHZvaWQ+O1xufTtcblxuLyoqXG4gKiBSZW5kZXJzIGEgY2FsbG91dCBibG9jayBpbiBEYXRhdmlldy5cbiAqXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSBvcHRpb25zIGZvciByZW5kZXJpbmcgdGhlIGNhbGxvdXQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZW5kZXJDYWxsb3V0KG9wdGlvbnM6IFJlbmRlckNhbGxvdXRPcHRpb25zKTogdm9pZCB7XG4gIGNvbnN0IHtcbiAgICBkdixcbiAgICB0eXBlID0gXCJOT1RFXCIsXG4gICAgbW9kZSA9IENhbGxvdXRNb2RlLkZvbGRhYmxlQ29sbGFwc2VkLFxuICAgIGhlYWRlciA9IFwiXCIsXG4gICAgY29udGVudFByb3ZpZGVyID0gXCJcIlxuICB9ID0gb3B0aW9ucztcbiAgY29uc3QgbW9kaWZpZXIgPSBnZXRNb2RpZmllcihtb2RlKTtcbiAgY29uc3QgY2FsbG91dCA9IGR2LnBhcmFncmFwaChgPiBbISR7dHlwZX1dJHttb2RpZmllcn0gJHtoZWFkZXJ9XFxuPlxcbj4gPGRpdiBjbGFzcz1cImNvbnRlbnRcIj48L2Rpdj5gKTtcbiAgY29uc3QgY29udGVudERpdiA9IGNhbGxvdXQucXVlcnlTZWxlY3RvcjxIVE1MRGl2RWxlbWVudD4oXCIuY29udGVudFwiKSE7XG4gIGR2LnBhcmFncmFwaChcIkxvYWRpbmcuLi4gXHUyM0YzXCIsIHsgY29udGFpbmVyOiBjb250ZW50RGl2IH0pO1xuXG4gIGNvbnN0IG9ic2VydmVyID0gbmV3IEludGVyc2VjdGlvbk9ic2VydmVyKChlbnRyaWVzOiBJbnRlcnNlY3Rpb25PYnNlcnZlckVudHJ5W10pID0+IHtcbiAgICBmb3IgKGNvbnN0IGVudHJ5IG9mIGVudHJpZXMpIHtcbiAgICAgIGlmIChlbnRyeS5pc0ludGVyc2VjdGluZykge1xuICAgICAgICBvYnNlcnZlci51bm9ic2VydmUoZW50cnkudGFyZ2V0KTtcbiAgICAgICAgaW52b2tlQXN5bmNTYWZlbHkobG9hZENvbnRlbnQoKSk7XG4gICAgICB9XG4gICAgfVxuICB9KTtcbiAgb2JzZXJ2ZXIub2JzZXJ2ZShjb250ZW50RGl2KTtcblxuICBhc3luYyBmdW5jdGlvbiBsb2FkQ29udGVudCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCBzbGVlcCg1MCk7XG4gICAgbGV0IGNvbnRlbnQ6IHN0cmluZyB8IE5vZGUgfCB2b2lkO1xuXG4gICAgY29uc3QgcGFyYWdyYXBoID0gYXdhaXQgZ2V0UmVuZGVyZWRDb250YWluZXIoZHYsIGFzeW5jKCkgPT4ge1xuICAgICAgY29udGVudCA9IGF3YWl0IHJlc29sdmVWYWx1ZShjb250ZW50UHJvdmlkZXIpO1xuICAgIH0pO1xuXG4gICAgY29udGVudCA/Pz0gcGFyYWdyYXBoO1xuXG4gICAgY29udGVudERpdi5lbXB0eSgpO1xuICAgIGR2LnBhcmFncmFwaChjb250ZW50LCB7IGNvbnRhaW5lcjogY29udGVudERpdiB9KTtcbiAgfVxufVxuXG4vKipcbiAqIFdyYXBzIHRoZSBwcm92aWRlZCBjb250ZW50IGluIGJsb2NrcXVvdGUgc3ludGF4IGZvciBhIGNhbGxvdXQuXG4gKlxuICogQHBhcmFtIGNvbnRlbnQgLSBUaGUgY29udGVudCB0byB3cmFwLlxuICogQHJldHVybnMgVGhlIGNvbnRlbnQgd3JhcHBlZCBpbiBibG9ja3F1b3RlIHN5bnRheC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHdyYXBGb3JDYWxsb3V0KGNvbnRlbnQ6IHN0cmluZyk6IHN0cmluZyB7XG4gIGNvbnN0IGxpbmVzID0gY29udGVudC5zcGxpdChcIlxcblwiKTtcbiAgY29uc3QgcHJlZml4ZWRMaW5lcyA9IGxpbmVzLm1hcCgobGluZSkgPT4gYD4gJHtsaW5lfWApO1xuICByZXR1cm4gcHJlZml4ZWRMaW5lcy5qb2luKFwiXFxuXCIpO1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVlBLG1CQUFrQztBQUVsQyxzQkFHTztBQUVQLDJCQUdPO0FBdEJQLElBQUksb0JBQW9CLFdBQVcsaUJBQWlCLE1BQU0sTUFBSSxRQUFRLFVBQVUsRUFBRSxjQUFjLFVBQVUsR0FBRztBQUM3RyxJQUFJLFlBQVksV0FBVyxTQUFTLEtBQUs7QUFBQSxFQUN2QyxPQUFPLE1BQUk7QUFBQSxFQUNYLE9BQU8sQ0FBQztBQUFBLEVBQ1IsWUFBWTtBQUNkO0FBc0JPLElBQUssY0FBTCxrQkFBS0EsaUJBQUw7QUFFTCxFQUFBQSwwQkFBQTtBQUdBLEVBQUFBLDBCQUFBO0FBR0EsRUFBQUEsMEJBQUE7QUFSVSxTQUFBQTtBQUFBLEdBQUE7QUFpQlosU0FBUyxZQUFZLE1BQTJCO0FBQzlDLFVBQVEsTUFBTTtBQUFBLElBQ1osS0FBSztBQUNILGFBQU87QUFBQSxJQUNULEtBQUs7QUFDSCxhQUFPO0FBQUEsSUFDVDtBQUNFLGFBQU87QUFBQSxFQUNYO0FBQ0Y7QUFxQ08sU0FBUyxjQUFjLFNBQXFDO0FBQ2pFLFFBQU07QUFBQSxJQUNKO0FBQUEsSUFDQSxPQUFPO0FBQUEsSUFDUCxPQUFPO0FBQUEsSUFDUCxTQUFTO0FBQUEsSUFDVCxrQkFBa0I7QUFBQSxFQUNwQixJQUFJO0FBQ0osUUFBTSxXQUFXLFlBQVksSUFBSTtBQUNqQyxRQUFNLFVBQVUsR0FBRyxVQUFVLE9BQU8sSUFBSSxJQUFJLFFBQVEsSUFBSSxNQUFNO0FBQUE7QUFBQSw4QkFBb0M7QUFDbEcsUUFBTSxhQUFhLFFBQVEsY0FBOEIsVUFBVTtBQUNuRSxLQUFHLFVBQVUscUJBQWdCLEVBQUUsV0FBVyxXQUFXLENBQUM7QUFFdEQsUUFBTSxXQUFXLElBQUkscUJBQXFCLENBQUMsWUFBeUM7QUFDbEYsZUFBVyxTQUFTLFNBQVM7QUFDM0IsVUFBSSxNQUFNLGdCQUFnQjtBQUN4QixpQkFBUyxVQUFVLE1BQU0sTUFBTTtBQUMvQiw0Q0FBa0IsWUFBWSxDQUFDO0FBQUEsTUFDakM7QUFBQSxJQUNGO0FBQUEsRUFDRixDQUFDO0FBQ0QsV0FBUyxRQUFRLFVBQVU7QUFFM0IsaUJBQWUsY0FBNkI7QUFDMUMsVUFBTSxNQUFNLEVBQUU7QUFDZCxRQUFJO0FBRUosVUFBTSxZQUFZLFVBQU0sc0NBQXFCLElBQUksWUFBVztBQUMxRCxnQkFBVSxVQUFNLG1DQUFhLGVBQWU7QUFBQSxJQUM5QyxDQUFDO0FBRUQsZ0JBQVk7QUFFWixlQUFXLE1BQU07QUFDakIsT0FBRyxVQUFVLFNBQVMsRUFBRSxXQUFXLFdBQVcsQ0FBQztBQUFBLEVBQ2pEO0FBQ0Y7QUFRTyxTQUFTLGVBQWUsU0FBeUI7QUFDdEQsUUFBTSxRQUFRLFFBQVEsTUFBTSxJQUFJO0FBQ2hDLFFBQU0sZ0JBQWdCLE1BQU0sSUFBSSxDQUFDLFNBQVMsS0FBSyxJQUFJLEVBQUU7QUFDckQsU0FBTyxjQUFjLEtBQUssSUFBSTtBQUNoQzsiLAogICJuYW1lcyI6IFsiQ2FsbG91dE1vZGUiXQp9Cg==
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @module Callout
2
+ * @packageDocumentation Callout
3
3
  * This module provides utility functions for rendering callouts in Dataview.
4
4
  */
5
5
  import { type DataviewInlineApi } from "./Dataview.ts";
@@ -16,22 +16,36 @@ export declare enum CalloutMode {
16
16
  FoldableExpanded = 2
17
17
  }
18
18
  /**
19
- * Renders a callout block in Dataview.
20
- *
21
- * @param dv - The DataviewInlineApi instance.
22
- * @param type - The type of the callout, default is `"NOTE"`.
23
- * @param mode - The callout mode, default is `CalloutMode.FoldableCollapsed`.
24
- * @param header - The header text of the callout, default is an empty string.
25
- * @param contentProvider - An optional provider for the content, which can be either a string or a Node.
26
- * @param contentRenderer - An optional function to render the content asynchronously.
19
+ * Options for rendering a callout block in Dataview.
27
20
  */
28
- export declare function renderCallout({ dv, type, mode, header, contentProvider }: {
21
+ type RenderCalloutOptions = {
22
+ /**
23
+ * The DataviewInlineApi instance.
24
+ */
29
25
  dv: DataviewInlineApi;
26
+ /**
27
+ * The type of the callout, default is `"NOTE"`.
28
+ */
30
29
  type?: string;
30
+ /**
31
+ * The callout mode, default is `CalloutMode.FoldableCollapsed`.
32
+ */
31
33
  mode?: CalloutMode;
34
+ /**
35
+ * The header text of the callout, default is an empty string.
36
+ */
32
37
  header?: string;
38
+ /**
39
+ * An optional provider for the content, which can be either a string or a Node.
40
+ */
33
41
  contentProvider?: ValueProvider<string | Node | void>;
34
- }): void;
42
+ };
43
+ /**
44
+ * Renders a callout block in Dataview.
45
+ *
46
+ * @param options - The options for rendering the callout.
47
+ */
48
+ export declare function renderCallout(options: RenderCalloutOptions): void;
35
49
  /**
36
50
  * Wraps the provided content in blockquote syntax for a callout.
37
51
  *
@@ -39,3 +53,4 @@ export declare function renderCallout({ dv, type, mode, header, contentProvider
39
53
  * @returns The content wrapped in blockquote syntax.
40
54
  */
41
55
  export declare function wrapForCallout(content: string): string;
56
+ export {};
@@ -71,11 +71,12 @@ const paginationCss = `
71
71
  margin: 0 5px;
72
72
  }
73
73
  `;
74
- async function renderPaginatedList({
75
- dv,
76
- rows,
77
- itemsPerPageOptions = [10, 20, 50, 100]
78
- }) {
74
+ async function renderPaginatedList(options) {
75
+ const {
76
+ dv,
77
+ rows,
78
+ itemsPerPageOptions = [10, 20, 50, 100]
79
+ } = options;
79
80
  await renderPaginated({
80
81
  dv,
81
82
  rows,
@@ -85,12 +86,13 @@ async function renderPaginatedList({
85
86
  }
86
87
  });
87
88
  }
88
- async function renderPaginatedTable({
89
- dv,
90
- headers,
91
- rows,
92
- itemsPerPageOptions = [10, 20, 50, 100]
93
- }) {
89
+ async function renderPaginatedTable(options) {
90
+ const {
91
+ dv,
92
+ headers,
93
+ rows,
94
+ itemsPerPageOptions = [10, 20, 50, 100]
95
+ } = options;
94
96
  await renderPaginated({
95
97
  dv,
96
98
  rows,
@@ -100,12 +102,13 @@ async function renderPaginatedTable({
100
102
  }
101
103
  });
102
104
  }
103
- async function renderPaginated({
104
- dv,
105
- rows,
106
- itemsPerPageOptions = [10, 20, 50, 100],
107
- renderer
108
- }) {
105
+ async function renderPaginated(options) {
106
+ const {
107
+ dv,
108
+ rows,
109
+ itemsPerPageOptions = [10, 20, 50, 100],
110
+ renderer
111
+ } = options;
109
112
  if (rows.length === 0) {
110
113
  dv.paragraph("No items found");
111
114
  return;
@@ -202,12 +205,13 @@ async function getRenderedContainer(dv, renderer) {
202
205
  }
203
206
  return tempContainer;
204
207
  }
205
- function renderIframe({
206
- dv,
207
- relativePathOrFile,
208
- width = "100%",
209
- height = "600px"
210
- }) {
208
+ function renderIframe(options) {
209
+ const {
210
+ dv,
211
+ relativePathOrFile,
212
+ width = "100%",
213
+ height = "600px"
214
+ } = options;
211
215
  dv.el("iframe", "", {
212
216
  attr: {
213
217
  src: (0, import_ResourceUrl.relativePathToResourceUrl)(dv.app, (0, import_TAbstractFile.getPath)(relativePathOrFile), dv.current().file.path),
@@ -235,4 +239,4 @@ ${resultFence}`);
235
239
  renderPaginatedList,
236
240
  renderPaginatedTable
237
241
  });
238
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL29ic2lkaWFuL0RhdGF2aWV3LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJ2YXIgX19pbXBvcnRfbWV0YV91cmwgPSBnbG9iYWxUaGlzW1wiaW1wb3J0Lm1ldGEudXJsXCJdID8/ICgoKT0+cmVxdWlyZShcIm5vZGU6dXJsXCIpLnBhdGhUb0ZpbGVVUkwoX19maWxlbmFtZSkpKCk7XG52YXIgX19wcm9jZXNzID0gZ2xvYmFsVGhpc1tcInByb2Nlc3NcIl0gPz8ge1xuICBcImN3ZFwiOiAoKT0+XCIvXCIsXG4gIFwiZW52XCI6IHt9LFxuICBcInBsYXRmb3JtXCI6IFwiYW5kcm9pZFwiXG59O1xuLyoqXG4gKiBAbW9kdWxlIERhdGF2aWV3XG4gKiBUaGlzIG1vZHVsZSBwcm92aWRlcyB1dGlsaXR5IGZ1bmN0aW9ucyBmb3Igd29ya2luZyB3aXRoIERhdGF2aWV3IGluIE9ic2lkaWFuLlxuICovXG5cbmltcG9ydCBcIi4uL0B0eXBlcy9jb21wYXJlLXZlcnNpb25zLmQudHNcIjtcblxuaW1wb3J0IHR5cGUgeyBEYXRhdmlld0lubGluZUFwaSBhcyBEYXRhdmlld0lubGluZUFwaU9yaWdpbmFsIH0gZnJvbSBcIi4vQHR5cGVzL0RhdGF2aWV3L2FwaS9pbmxpbmUtYXBpLmQudHNcIjtcbmltcG9ydCB0eXBlIHtcbiAgRGF0YUFycmF5LFxuICBEYXRhdmlld0FwaSxcbiAgRGF0ZVRpbWUsXG4gIExpbmssXG4gIFNNYXJrZG93blBhZ2Vcbn0gZnJvbSBcIi4vQHR5cGVzL0RhdGF2aWV3L2luZGV4LmQudHNcIjtcblxuaW1wb3J0IHtcbiAgY29udmVydEFzeW5jVG9TeW5jLFxuICB0eXBlIE1heWJlUHJvbWlzZVxufSBmcm9tIFwiLi4vQXN5bmMudHNcIjtcbmltcG9ydCB7IHJlbGF0aXZlUGF0aFRvUmVzb3VyY2VVcmwgfSBmcm9tIFwiLi4vb2JzaWRpYW4vUmVzb3VyY2VVcmwudHNcIjtcbmltcG9ydCB7IGVycm9yVG9TdHJpbmcgfSBmcm9tIFwiLi4vRXJyb3IudHNcIjtcbmltcG9ydCB0eXBlIHsgUGF0aE9yRmlsZSB9IGZyb20gXCIuL1RGaWxlLnRzXCI7XG5pbXBvcnQgeyBnZXRQYXRoIH0gZnJvbSBcIi4vVEFic3RyYWN0RmlsZS50c1wiO1xuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIC8qKlxuICAgKiBUaGUgRGF0YXZpZXdBUEkgb2JqZWN0IHJlcHJlc2VudHMgdGhlIEFQSSBmb3IgaW50ZXJhY3Rpbmcgd2l0aCBEYXRhdmlldyBpbiBPYnNpZGlhbi5cbiAgICpcbiAgICogQHZhciB7RGF0YXZpZXdBcGkgfCB1bmRlZmluZWR9XG4gICAqL1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdmFyXG4gIHZhciBEYXRhdmlld0FQSTogRGF0YXZpZXdBcGkgfCB1bmRlZmluZWQ7XG59XG5cbmV4cG9ydCB0eXBlIHtcbiAgRGF0ZVRpbWUsXG4gIExpbmtcbn07XG5cbi8qKlxuICogRXh0ZW5kcyB0aGUgYERhdGF2aWV3SW5saW5lQXBpT3JpZ2luYWxgIGludGVyZmFjZSB0byBwcm92aWRlIGFkZGl0aW9uYWwgbWV0aG9kcyBmb3IgaW50ZXJhY3Rpbmcgd2l0aCBEYXRhdmlldy5cbiAqXG4gKiBAaW50ZXJmYWNlIERhdGF2aWV3SW5saW5lQXBpXG4gKiBAZXh0ZW5kcyB7RGF0YXZpZXdJbmxpbmVBcGlPcmlnaW5hbH1cbiAqXG4gKiBAbWV0aG9kIGN1cnJlbnRcbiAqIEBwYXJhbSB7U01hcmtkb3duUGFnZX0gW0N1c3RvbVBhZ2VdIC0gQSBjdXN0b20gcGFnZSB0eXBlIHRoYXQgZXh0ZW5kcyB0aGUgZGVmYXVsdCBTTWFya2Rvd25QYWdlLlxuICogQHJldHVybnMge1BhZ2U8Q3VzdG9tUGFnZT59IFRoZSBjdXJyZW50IHBhZ2UuXG4gKlxuICogQG1ldGhvZCBhcnJheVxuICogQHBhcmFtIHtUW119IGFyciAtIEFuIGFycmF5IG9mIGl0ZW1zLlxuICogQHJldHVybnMge0RhdGFBcnJheTxUPn0gQSBEYXRhQXJyYXkgY29udGFpbmluZyB0aGUgcHJvdmlkZWQgaXRlbXMuXG4gKlxuICogQG1ldGhvZCBwYWdlc1xuICogQHBhcmFtIHtzdHJpbmd9IFtxdWVyeV0gLSBBIHF1ZXJ5IHN0cmluZyB0byBmaWx0ZXIgdGhlIHBhZ2VzLlxuICogQHJldHVybnMge0RhdGFBcnJheTxQYWdlPEN1c3RvbVBhZ2U+Pn0gQSBEYXRhQXJyYXkgY29udGFpbmluZyB0aGUgcGFnZXMuXG4gKlxuICogQG1ldGhvZCBwYXJhZ3JhcGhcbiAqIEBwYXJhbSB7dW5rbm93bn0gdGV4dCAtIFRoZSB0ZXh0IGNvbnRlbnQgb2YgdGhlIHBhcmFncmFwaC5cbiAqIEBwYXJhbSB7RG9tRWxlbWVudEluZm8gJiB7IGNvbnRhaW5lcj86IEhUTUxFbGVtZW50IH19IFtvcHRpb25zXSAtIEFkZGl0aW9uYWwgb3B0aW9ucyBmb3IgdGhlIHBhcmFncmFwaC5cbiAqIEByZXR1cm5zIHtIVE1MUGFyYWdyYXBoRWxlbWVudH0gVGhlIGNyZWF0ZWQgcGFyYWdyYXBoIGVsZW1lbnQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGF0YXZpZXdJbmxpbmVBcGkgZXh0ZW5kcyBEYXRhdmlld0lubGluZUFwaU9yaWdpbmFsIHtcbiAgY3VycmVudDxDdXN0b21QYWdlID0gU01hcmtkb3duUGFnZT4oKTogUGFnZTxDdXN0b21QYWdlPjtcbiAgYXJyYXk8VD4oYXJyOiBUW10pOiBEYXRhQXJyYXk8VD47XG4gIHBhZ2VzPEN1c3RvbVBhZ2UgPSBTTWFya2Rvd25QYWdlPihxdWVyeT86IHN0cmluZyk6IERhdGFBcnJheTxQYWdlPEN1c3RvbVBhZ2U+PjtcbiAgcGFyYWdyYXBoKHRleHQ6IHVua25vd24sIG9wdGlvbnM/OiBEb21FbGVtZW50SW5mbyAmIHsgY29udGFpbmVyPzogSFRNTEVsZW1lbnQgfSk6IEhUTUxQYXJhZ3JhcGhFbGVtZW50O1xufVxuXG4vKipcbiAqIFJlbG9hZHMgdGhlIGN1cnJlbnQgZmlsZSBjYWNoZSB1c2luZyB0aGUgRGF0YXZpZXcgQVBJLlxuICpcbiAqIEBhc3luY1xuICogQGZ1bmN0aW9uIHJlbG9hZEN1cnJlbnRGaWxlQ2FjaGVcbiAqIEBwYXJhbSB7RGF0YXZpZXdJbmxpbmVBcGl9IGR2IC0gVGhlIERhdGF2aWV3SW5saW5lQXBpIGluc3RhbmNlLlxuICogQHJldHVybnMge1Byb21pc2U8dm9pZD59IEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIGNhY2hlIGlzIHJlbG9hZGVkLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcmVsb2FkQ3VycmVudEZpbGVDYWNoZShkdjogRGF0YXZpZXdJbmxpbmVBcGkpOiBQcm9taXNlPHZvaWQ+IHtcbiAgYXdhaXQgRGF0YXZpZXdBUEk/LmluZGV4LnJlbG9hZChkdi5hcHAudmF1bHQuZ2V0RmlsZUJ5UGF0aChkdi5jdXJyZW50KCkuZmlsZS5wYXRoKSEpO1xufVxuXG5leHBvcnQgdHlwZSBQYWdlPFQgPSBTTWFya2Rvd25QYWdlPiA9IFNNYXJrZG93blBhZ2UgJiBUO1xuXG50eXBlIFBhZ2VGaWxlID0gUGFnZVtcImZpbGVcIl07XG5leHBvcnQgdHlwZSBQYWdlRmlsZXMgPSBEYXRhQXJyYXk8UGFnZUZpbGU+IHwgUGFnZUZpbGVbXTtcblxuY29uc3QgcGFnaW5hdGlvbkNzcyA9IGBcbi5wYWdpbmF0aW9uIC5wYWdlLWxpbmsuZGlzYWJsZWQge1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgY29sb3I6IGdyYXk7XG59XG5cbi5wYWdpbmF0aW9uIC5wYWdlLWxpbmsge1xuICBtYXJnaW46IDAgNXB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgY29sb3I6IGJsdWU7XG59XG5cbi5wYWdpbmF0aW9uIC5wYWdlLWxpbms6aG92ZXI6bm90KC5kaXNhYmxlZCkge1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbn1cbi5wYWdpbmF0aW9uIC5wYWdlLWxpbmsuY3VycmVudCB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbn1cblxuLnBhZ2luYXRpb24gc2VsZWN0LFxuLnBhZ2luYXRpb24gaW5wdXQge1xuICBtYXJnaW46IDAgNXB4O1xufVxuYDtcblxudHlwZSBBcnJheU9yRGF0YUFycmF5PFQ+ID0gVFtdIHwgRGF0YUFycmF5PFQ+O1xuXG4vKipcbiAqIFJlbmRlcnMgYSBwYWdpbmF0ZWQgbGlzdCB1c2luZyB0aGUgcHJvdmlkZWQgRGF0YXZpZXdJbmxpbmVBcGkgaW5zdGFuY2UuXG4gKlxuICogQGFzeW5jXG4gKiBAZnVuY3Rpb24gcmVuZGVyUGFnaW5hdGVkTGlzdFxuICogQHRlbXBsYXRlIFRcbiAqIEBwYXJhbSB7RGF0YXZpZXdJbmxpbmVBcGl9IGR2IC0gVGhlIERhdGF2aWV3SW5saW5lQXBpIGluc3RhbmNlLlxuICogQHBhcmFtIHtBcnJheU9yRGF0YUFycmF5PFQ+fSByb3dzIC0gVGhlIGxpc3Qgb2YgaXRlbXMgdG8gcGFnaW5hdGUuXG4gKiBAcGFyYW0ge251bWJlcltdfSBbaXRlbXNQZXJQYWdlT3B0aW9ucz1bMTAsIDIwLCA1MCwgMTAwXV0gLSBPcHRpb25zIGZvciBpdGVtcyBwZXIgcGFnZS5cbiAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fSBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBsaXN0IGlzIHJlbmRlcmVkLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcmVuZGVyUGFnaW5hdGVkTGlzdDxUPih7XG4gIGR2LFxuICByb3dzLFxuICBpdGVtc1BlclBhZ2VPcHRpb25zID0gWzEwLCAyMCwgNTAsIDEwMF1cbn06IHtcbiAgZHY6IERhdGF2aWV3SW5saW5lQXBpLFxuICByb3dzOiBBcnJheU9yRGF0YUFycmF5PFQ+LFxuICBpdGVtc1BlclBhZ2VPcHRpb25zPzogbnVtYmVyW11cbn0pOiBQcm9taXNlPHZvaWQ+IHtcbiAgYXdhaXQgcmVuZGVyUGFnaW5hdGVkKHtcbiAgICBkdixcbiAgICByb3dzLFxuICAgIGl0ZW1zUGVyUGFnZU9wdGlvbnMsXG4gICAgcmVuZGVyZXI6IGFzeW5jIChyb3dzOiBBcnJheU9yRGF0YUFycmF5PFQ+KTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gICAgICBhd2FpdCBkdi5saXN0KHJvd3MpO1xuICAgIH1cbiAgfSk7XG59XG5cbi8qKlxuICogUmVuZGVycyBhIHBhZ2luYXRlZCB0YWJsZSB1c2luZyB0aGUgcHJvdmlkZWQgRGF0YXZpZXdJbmxpbmVBcGkgaW5zdGFuY2UuXG4gKlxuICogQGFzeW5jXG4gKiBAZnVuY3Rpb24gcmVuZGVyUGFnaW5hdGVkVGFibGVcbiAqIEB0ZW1wbGF0ZSBUXG4gKiBAcGFyYW0ge0RhdGF2aWV3SW5saW5lQXBpfSBkdiAtIFRoZSBEYXRhdmlld0lubGluZUFwaSBpbnN0YW5jZS5cbiAqIEBwYXJhbSB7c3RyaW5nW119IGhlYWRlcnMgLSBUaGUgaGVhZGVycyBvZiB0aGUgdGFibGUuXG4gKiBAcGFyYW0ge0FycmF5T3JEYXRhQXJyYXk8VD59IHJvd3MgLSBUaGUgcm93cyBvZiB0aGUgdGFibGUgdG8gcGFnaW5hdGUuXG4gKiBAcGFyYW0ge251bWJlcltdfSBbaXRlbXNQZXJQYWdlT3B0aW9ucz1bMTAsIDIwLCA1MCwgMTAwXV0gLSBPcHRpb25zIGZvciBpdGVtcyBwZXIgcGFnZS5cbiAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fSBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aGVuIHRoZSB0YWJsZSBpcyByZW5kZXJlZC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlbmRlclBhZ2luYXRlZFRhYmxlPFQgZXh0ZW5kcyB1bmtub3duW10+KHtcbiAgZHYsXG4gIGhlYWRlcnMsXG4gIHJvd3MsXG4gIGl0ZW1zUGVyUGFnZU9wdGlvbnMgPSBbMTAsIDIwLCA1MCwgMTAwXVxufToge1xuICBkdjogRGF0YXZpZXdJbmxpbmVBcGksXG4gIGhlYWRlcnM6IHN0cmluZ1tdLFxuICByb3dzOiBBcnJheU9yRGF0YUFycmF5PFQ+LFxuICBpdGVtc1BlclBhZ2VPcHRpb25zPzogbnVtYmVyW11cbn0pOiBQcm9taXNlPHZvaWQ+IHtcbiAgYXdhaXQgcmVuZGVyUGFnaW5hdGVkKHtcbiAgICBkdixcbiAgICByb3dzLFxuICAgIGl0ZW1zUGVyUGFnZU9wdGlvbnMsXG4gICAgcmVuZGVyZXI6IGFzeW5jIChyb3dzOiBBcnJheU9yRGF0YUFycmF5PFQ+KTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gICAgICBhd2FpdCBkdi50YWJsZShoZWFkZXJzLCByb3dzKTtcbiAgICB9XG4gIH0pO1xufVxuXG4vKipcbiAqIEhlbHBlciBmdW5jdGlvbiB0byByZW5kZXIgcGFnaW5hdGVkIGNvbnRlbnQgdXNpbmcgdGhlIHNwZWNpZmllZCByZW5kZXJlci5cbiAqXG4gKiBAYXN5bmNcbiAqIEB0ZW1wbGF0ZSBUXG4gKiBAZnVuY3Rpb24gcmVuZGVyUGFnaW5hdGVkXG4gKiBAcGFyYW0ge0RhdGF2aWV3SW5saW5lQXBpfSBkdiAtIFRoZSBEYXRhdmlld0lubGluZUFwaSBpbnN0YW5jZS5cbiAqIEBwYXJhbSB7QXJyYXlPckRhdGFBcnJheTxUPn0gcm93cyAtIFRoZSByb3dzIHRvIHBhZ2luYXRlLlxuICogQHBhcmFtIHtudW1iZXJbXX0gaXRlbXNQZXJQYWdlT3B0aW9ucyAtIE9wdGlvbnMgZm9yIGl0ZW1zIHBlciBwYWdlLlxuICogQHBhcmFtIHtmdW5jdGlvbihBcnJheU9yRGF0YUFycmF5PFQ+KTogTWF5YmVQcm9taXNlPHZvaWQ+fSByZW5kZXJlciAtIFRoZSByZW5kZXJlciBmdW5jdGlvbiB0byBkaXNwbGF5IHRoZSBwYWdpbmF0ZWQgY29udGVudC5cbiAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fSBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBjb250ZW50IGlzIHJlbmRlcmVkLlxuICovXG5hc3luYyBmdW5jdGlvbiByZW5kZXJQYWdpbmF0ZWQ8VD4oe1xuICBkdixcbiAgcm93cyxcbiAgaXRlbXNQZXJQYWdlT3B0aW9ucyA9IFsxMCwgMjAsIDUwLCAxMDBdLFxuICByZW5kZXJlclxufToge1xuICBkdjogRGF0YXZpZXdJbmxpbmVBcGksXG4gIHJvd3M6IEFycmF5T3JEYXRhQXJyYXk8VD4sXG4gIGl0ZW1zUGVyUGFnZU9wdGlvbnM6IG51bWJlcltdLFxuICByZW5kZXJlcjogKHJvd3M6IEFycmF5T3JEYXRhQXJyYXk8VD4pID0+IE1heWJlUHJvbWlzZTx2b2lkPlxufSk6IFByb21pc2U8dm9pZD4ge1xuICBpZiAocm93cy5sZW5ndGggPT09IDApIHtcbiAgICBkdi5wYXJhZ3JhcGgoXCJObyBpdGVtcyBmb3VuZFwiKTtcbiAgICByZXR1cm47XG4gIH1cbiAgY29uc3QgY29udGFpbmVyID0gZHYuY29udGFpbmVyO1xuICBsZXQgaXRlbXNQZXJQYWdlID0gaXRlbXNQZXJQYWdlT3B0aW9uc1swXSE7XG4gIGxldCB0b3RhbFBhZ2VzID0gTWF0aC5jZWlsKHJvd3MubGVuZ3RoIC8gaXRlbXNQZXJQYWdlKTtcbiAgYXdhaXQgcmVuZGVyUGFnZSgxKTtcblxuICBmdW5jdGlvbiBjcmVhdGVQYWdpbmF0aW9uQ29udHJvbHMocGFnZU51bWJlcjogbnVtYmVyKTogdm9pZCB7XG4gICAgY29uc3QgcGFnaW5hdGlvbkRpdiA9IGNvbnRhaW5lci5jcmVhdGVFbChcImRpdlwiLCB7IGNsczogXCJwYWdpbmF0aW9uXCIgfSk7XG4gICAgY29uc3QgcGFnaW5hdGlvblJvdzFEaXYgPSBwYWdpbmF0aW9uRGl2LmNyZWF0ZURpdigpO1xuXG4gICAgY3JlYXRlUGFnZUxpbmsoXCJGaXJzdFwiLCAxLCBwYWdlTnVtYmVyID09PSAxKTtcbiAgICBjcmVhdGVQYWdlTGluayhcIlByZXZcIiwgcGFnZU51bWJlciAtIDEsIHBhZ2VOdW1iZXIgPT09IDEpO1xuXG4gICAgaWYgKHBhZ2VOdW1iZXIgPiAzKSB7XG4gICAgICBwYWdpbmF0aW9uUm93MURpdi5jcmVhdGVFbChcInNwYW5cIiwgeyB0ZXh0OiBcIi4uLlwiIH0pO1xuICAgIH1cblxuICAgIGZvciAobGV0IGkgPSBNYXRoLm1heCgxLCBwYWdlTnVtYmVyIC0gMik7IGkgPD0gTWF0aC5taW4odG90YWxQYWdlcywgcGFnZU51bWJlciArIDIpOyBpKyspIHtcbiAgICAgIGNvbnN0IHBhZ2VMaW5rID0gY3JlYXRlUGFnZUxpbmsoaS50b1N0cmluZygpLCBpLCBpID09PSBwYWdlTnVtYmVyKTtcbiAgICAgIGlmIChpID09PSBwYWdlTnVtYmVyKSB7XG4gICAgICAgIHBhZ2VMaW5rLmFkZENsYXNzKFwiY3VycmVudFwiKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAocGFnZU51bWJlciA8IHRvdGFsUGFnZXMgLSAyKSB7XG4gICAgICBwYWdpbmF0aW9uUm93MURpdi5jcmVhdGVFbChcInNwYW5cIiwgeyB0ZXh0OiBcIi4uLlwiIH0pO1xuICAgIH1cblxuICAgIGNyZWF0ZVBhZ2VMaW5rKFwiTmV4dFwiLCBwYWdlTnVtYmVyICsgMSwgcGFnZU51bWJlciA9PT0gdG90YWxQYWdlcyk7XG4gICAgY3JlYXRlUGFnZUxpbmsoXCJMYXN0XCIsIHRvdGFsUGFnZXMsIHBhZ2VOdW1iZXIgPT09IHRvdGFsUGFnZXMpO1xuXG4gICAgY29uc3QgcGFnaW5hdGlvblJvdzJEaXYgPSBwYWdpbmF0aW9uRGl2LmNyZWF0ZURpdigpO1xuXG4gICAgcGFnaW5hdGlvblJvdzJEaXYuY3JlYXRlRWwoXCJzcGFuXCIsIHsgdGV4dDogXCIgSXRlbXMgcGVyIHBhZ2U6IFwiIH0pO1xuXG4gICAgY29uc3QgaXRlbXNQZXJQYWdlU2VsZWN0ID0gcGFnaW5hdGlvblJvdzJEaXYuY3JlYXRlRWwoXCJzZWxlY3RcIik7XG4gICAgaXRlbXNQZXJQYWdlT3B0aW9ucy5mb3JFYWNoKChvcHRpb246IG51bWJlcik6IHZvaWQgPT4ge1xuICAgICAgaXRlbXNQZXJQYWdlU2VsZWN0LmNyZWF0ZUVsKFwib3B0aW9uXCIsIHsgdGV4dDogb3B0aW9uLnRvU3RyaW5nKCksIHZhbHVlOiBvcHRpb24udG9TdHJpbmcoKSB9KTtcbiAgICB9KTtcbiAgICBpdGVtc1BlclBhZ2VTZWxlY3QudmFsdWUgPSBpdGVtc1BlclBhZ2UudG9TdHJpbmcoKTtcbiAgICBpdGVtc1BlclBhZ2VTZWxlY3QuYWRkRXZlbnRMaXN0ZW5lcihcImNoYW5nZVwiLCBjb252ZXJ0QXN5bmNUb1N5bmMoYXN5bmMgKCk6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgICAgaXRlbXNQZXJQYWdlID0gcGFyc2VJbnQoaXRlbXNQZXJQYWdlU2VsZWN0LnZhbHVlKTtcbiAgICAgIHRvdGFsUGFnZXMgPSBNYXRoLmNlaWwocm93cy5sZW5ndGggLyBpdGVtc1BlclBhZ2UpO1xuICAgICAgYXdhaXQgcmVuZGVyUGFnZSgxKTtcbiAgICB9KSk7XG5cbiAgICBwYWdpbmF0aW9uUm93MkRpdi5jcmVhdGVFbChcInNwYW5cIiwgeyB0ZXh0OiBcIiAgSnVtcCB0byBwYWdlOiBcIiB9KTtcblxuICAgIGNvbnN0IGp1bXBUb1BhZ2VJbnB1dCA9IHBhZ2luYXRpb25Sb3cyRGl2LmNyZWF0ZUVsKFwiaW5wdXRcIiwgeyB0eXBlOiBcIm51bWJlclwiLCBhdHRyOiB7IG1pbjogMSwgbWF4OiB0b3RhbFBhZ2VzIH0gfSk7XG4gICAganVtcFRvUGFnZUlucHV0LmFkZEV2ZW50TGlzdGVuZXIoXCJrZXlkb3duXCIsIGNvbnZlcnRBc3luY1RvU3luYyhhc3luYyAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICAgIGlmIChldmVudC5rZXkgPT09IFwiRW50ZXJcIikge1xuICAgICAgICBjb25zdCBwYWdlID0gcGFyc2VJbnQoanVtcFRvUGFnZUlucHV0LnZhbHVlKTtcbiAgICAgICAgaWYgKHBhZ2UgPj0gMSAmJiBwYWdlIDw9IHRvdGFsUGFnZXMpIHtcbiAgICAgICAgICBhd2FpdCByZW5kZXJQYWdlKHBhZ2UpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSkpO1xuXG4gICAgcGFnaW5hdGlvblJvdzJEaXYuY3JlYXRlRWwoXCJzcGFuXCIsIHsgdGV4dDogYCAgUGFnZSAke3BhZ2VOdW1iZXJ9IG9mICR7dG90YWxQYWdlc30sIFRvdGFsIGl0ZW1zOiAke3Jvd3MubGVuZ3RofWAgfSk7XG5cbiAgICBmdW5jdGlvbiBjcmVhdGVQYWdlTGluayh0ZXh0OiBzdHJpbmcsIHBhZ2VOdW1iZXI6IG51bWJlciwgZGlzYWJsZWQgPSBmYWxzZSk6IEhUTUxBbmNob3JFbGVtZW50IHtcbiAgICAgIGNvbnN0IGxpbmsgPSBwYWdpbmF0aW9uUm93MURpdi5jcmVhdGVFbChcImFcIiwgeyBjbHM6IFwicGFnZS1saW5rXCIsIHRleHQ6IHRleHQsIGhyZWY6IGAjJHtwYWdlTnVtYmVyfWAgfSk7XG4gICAgICBpZiAoZGlzYWJsZWQpIHtcbiAgICAgICAgbGluay5hZGRDbGFzcyhcImRpc2FibGVkXCIpO1xuICAgICAgICBsaW5rLm9uY2xpY2sgPSAoZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkID0+IGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBsaW5rLmFkZEV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLCBjb252ZXJ0QXN5bmNUb1N5bmMoYXN5bmMgKGV2ZW50OiBNb3VzZUV2ZW50KTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICBhd2FpdCByZW5kZXJQYWdlKHBhZ2VOdW1iZXIpO1xuICAgICAgICB9KSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gbGluaztcbiAgICB9XG4gIH1cblxuICBhc3luYyBmdW5jdGlvbiByZW5kZXJQYWdlKHBhZ2VOdW1iZXI6IG51bWJlcik6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnRhaW5lci5lbXB0eSgpO1xuICAgIGNvbnRhaW5lci5jcmVhdGVFbChcInN0eWxlXCIsIHsgdGV4dDogcGFnaW5hdGlvbkNzcyB9KTtcblxuICAgIGNvbnN0IHN0YXJ0SW5kZXggPSAocGFnZU51bWJlciAtIDEpICogaXRlbXNQZXJQYWdlO1xuICAgIGNvbnN0IGVuZEluZGV4ID0gc3RhcnRJbmRleCArIGl0ZW1zUGVyUGFnZTtcbiAgICBjb25zdCByb3dzRm9yQ3VycmVudFBhZ2UgPSByb3dzLnNsaWNlKHN0YXJ0SW5kZXgsIGVuZEluZGV4KTtcblxuICAgIGNvbnN0IG9sZENvbnRhaW5lciA9IGR2LmNvbnRhaW5lcjtcblxuICAgIGR2LmNvbnRhaW5lciA9IGNvbnRhaW5lcjtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgcmVuZGVyZXIocm93c0ZvckN1cnJlbnRQYWdlKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBkdi5wYXJhZ3JhcGgoXCJcdTI3NENcIiArIGVycm9yVG9TdHJpbmcoZSkpO1xuICAgIH0gZmluYWxseSB7XG4gICAgICBkdi5jb250YWluZXIgPSBvbGRDb250YWluZXI7XG4gICAgfVxuXG4gICAgY3JlYXRlUGFnaW5hdGlvbkNvbnRyb2xzKHBhZ2VOdW1iZXIpO1xuICB9XG59XG5cbi8qKlxuICogUmVuZGVycyB0aGUgY29udGVudCB1c2luZyB0aGUgcHJvdmlkZWQgcmVuZGVyZXIgZnVuY3Rpb24gaW4gYSB0ZW1wb3JhcnkgY29udGFpbmVyLFxuICogYW5kIHRoZW4gcmV0dXJucyB0aGUgY29udGFpbmVyLlxuICpcbiAqIEBhc3luY1xuICogQGZ1bmN0aW9uIGdldFJlbmRlcmVkQ29udGFpbmVyXG4gKiBAcGFyYW0ge0RhdGF2aWV3SW5saW5lQXBpfSBkdiAtIFRoZSBEYXRhdmlld0lubGluZUFwaSBpbnN0YW5jZS5cbiAqIEBwYXJhbSB7KCkgPT4gTWF5YmVQcm9taXNlPHZvaWQ+fSByZW5kZXJlciAtIFRoZSBmdW5jdGlvbiByZXNwb25zaWJsZSBmb3IgcmVuZGVyaW5nIHRoZSBjb250ZW50LlxuICogQHJldHVybnMge1Byb21pc2U8SFRNTFBhcmFncmFwaEVsZW1lbnQ+fSBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB0byB0aGUgSFRNTCBwYXJhZ3JhcGggZWxlbWVudFxuICogdGhhdCB3YXMgdXNlZCBhcyB0aGUgdGVtcG9yYXJ5IGNvbnRhaW5lci5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldFJlbmRlcmVkQ29udGFpbmVyKGR2OiBEYXRhdmlld0lubGluZUFwaSwgcmVuZGVyZXI6ICgpID0+IE1heWJlUHJvbWlzZTx2b2lkPik6IFByb21pc2U8SFRNTFBhcmFncmFwaEVsZW1lbnQ+IHtcbiAgY29uc3QgdGVtcENvbnRhaW5lciA9IGR2LnBhcmFncmFwaChcIlwiKTtcbiAgZHYuY29udGFpbmVyID0gdGVtcENvbnRhaW5lcjtcbiAgZHYuY29udGFpbmVyLmVtcHR5KCk7XG5cbiAgdHJ5IHtcbiAgICBhd2FpdCByZW5kZXJlcigpO1xuICB9IGNhdGNoIChlKSB7XG4gICAgZHYucGFyYWdyYXBoKFwiXHUyNzRDXCIgKyBlcnJvclRvU3RyaW5nKGUpKTtcbiAgfSBmaW5hbGx5IHtcbiAgICBkdi5jb250YWluZXIgPSB0ZW1wQ29udGFpbmVyLnBhcmVudEVsZW1lbnQhO1xuICAgIHRlbXBDb250YWluZXIucmVtb3ZlKCk7XG4gIH1cblxuICByZXR1cm4gdGVtcENvbnRhaW5lcjtcbn1cblxuLyoqXG4gKiBSZW5kZXJzIGFuIGlmcmFtZSBpbiB0aGUgRGF0YXZpZXcgY29udGFpbmVyIHdpdGggdGhlIHNwZWNpZmllZCByZWxhdGl2ZSBwYXRoLCB3aWR0aCwgYW5kIGhlaWdodC5cbiAqXG4gKiBAZnVuY3Rpb24gcmVuZGVySWZyYW1lXG4gKiBAcGFyYW0ge0RhdGF2aWV3SW5saW5lQXBpfSBkdiAtIFRoZSBEYXRhdmlld0lubGluZUFwaSBpbnN0YW5jZS5cbiAqIEBwYXJhbSB7UGF0aE9yRmlsZX0gcmVsYXRpdmVQYXRoIC0gVGhlIHJlbGF0aXZlIHBhdGggdG8gdGhlIHJlc291cmNlIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgaWZyYW1lLlxuICogQHBhcmFtIHtzdHJpbmd9IFt3aWR0aD1cIjEwMCVcIl0gLSBUaGUgd2lkdGggb2YgdGhlIGlmcmFtZS4gRGVmYXVsdHMgdG8gXCIxMDAlXCIuXG4gKiBAcGFyYW0ge3N0cmluZ30gW2hlaWdodD1cIjYwMHB4XCJdIC0gVGhlIGhlaWdodCBvZiB0aGUgaWZyYW1lLiBEZWZhdWx0cyB0byBcIjYwMHB4XCIuXG4gKiBAcmV0dXJucyB7dm9pZH0gVGhpcyBmdW5jdGlvbiBkb2VzIG5vdCByZXR1cm4gYSB2YWx1ZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlbmRlcklmcmFtZSh7XG4gIGR2LFxuICByZWxhdGl2ZVBhdGhPckZpbGUsXG4gIHdpZHRoID0gXCIxMDAlXCIsXG4gIGhlaWdodCA9IFwiNjAwcHhcIlxufToge1xuICBkdjogRGF0YXZpZXdJbmxpbmVBcGksXG4gIHJlbGF0aXZlUGF0aE9yRmlsZTogUGF0aE9yRmlsZSxcbiAgd2lkdGg6IHN0cmluZyxcbiAgaGVpZ2h0OiBzdHJpbmdcbn0pOiB2b2lkIHtcbiAgZHYuZWwoXCJpZnJhbWVcIiwgXCJcIiwge1xuICAgIGF0dHI6IHtcbiAgICAgIHNyYzogcmVsYXRpdmVQYXRoVG9SZXNvdXJjZVVybChkdi5hcHAsIGdldFBhdGgocmVsYXRpdmVQYXRoT3JGaWxlKSwgZHYuY3VycmVudCgpLmZpbGUucGF0aCksXG4gICAgICB3aWR0aCxcbiAgICAgIGhlaWdodFxuICAgIH1cbiAgfSk7XG59XG5cbi8qKlxuICogSW5zZXJ0cyBhIGNvZGUgYmxvY2sgaW50byB0aGUgc3BlY2lmaWVkIERhdGF2aWV3IGluc3RhbmNlIHVzaW5nIHRoZSBwcm92aWRlZCBsYW5ndWFnZSBhbmQgY29kZS5cbiAqXG4gKiBAZnVuY3Rpb24gaW5zZXJ0Q29kZUJsb2NrXG4gKiBAcGFyYW0ge0RhdGF2aWV3SW5saW5lQXBpfSBkdiAtIFRoZSBEYXRhdmlld0lubGluZUFwaSBpbnN0YW5jZSB0byBpbnNlcnQgdGhlIGNvZGUgYmxvY2sgaW50by5cbiAqIEBwYXJhbSB7c3RyaW5nfSBsYW5ndWFnZSAtIFRoZSBsYW5ndWFnZSBpZGVudGlmaWVyIGZvciB0aGUgY29kZSBibG9jay5cbiAqIEBwYXJhbSB7c3RyaW5nfSBjb2RlIC0gVGhlIGNvZGUgY29udGVudCB0byBiZSBpbnNlcnRlZCBpbnRvIHRoZSBjb2RlIGJsb2NrLlxuICogQHJldHVybnMge3ZvaWR9IFRoaXMgZnVuY3Rpb24gZG9lcyBub3QgcmV0dXJuIGEgdmFsdWUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpbnNlcnRDb2RlQmxvY2soZHY6IERhdGF2aWV3SW5saW5lQXBpLCBsYW5ndWFnZTogc3RyaW5nLCBjb2RlOiBzdHJpbmcpOiB2b2lkIHtcbiAgY29uc3QgZmVuY2VNYXRjaGVzID0gY29kZS5tYXRjaEFsbCgvXmB7Myx9L2dtKTtcbiAgY29uc3QgZmVuY2VMZW5ndGhzID0gQXJyYXkuZnJvbShmZW5jZU1hdGNoZXMpLm1hcCgoZmVuY2VNYXRjaCkgPT4gZmVuY2VNYXRjaFswXS5sZW5ndGgpO1xuICBjb25zdCBtYXhGZW5jZUxlbmd0aCA9IE1hdGgubWF4KDAsIC4uLmZlbmNlTGVuZ3Rocyk7XG4gIGNvbnN0IHJlc3VsdEZlbmNlTGVuZ3RoID0gTWF0aC5tYXgoMywgbWF4RmVuY2VMZW5ndGggKyAxKTtcbiAgY29uc3QgcmVzdWx0RmVuY2UgPSBcImBcIi5yZXBlYXQocmVzdWx0RmVuY2VMZW5ndGgpO1xuXG4gIGR2LnBhcmFncmFwaChgJHtyZXN1bHRGZW5jZX0ke2xhbmd1YWdlfVxuJHtjb2RlfVxuJHtyZXN1bHRGZW5jZX1gKTtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFXQSxnQ0FBTztBQVdQLG1CQUdPO0FBQ1AseUJBQTBDO0FBQzFDLG1CQUE4QjtBQUU5QiwyQkFBd0I7QUE3QnhCLElBQUksb0JBQW9CLFdBQVcsaUJBQWlCLE1BQU0sTUFBSSxRQUFRLFVBQVUsRUFBRSxjQUFjLFVBQVUsR0FBRztBQUM3RyxJQUFJLFlBQVksV0FBVyxTQUFTLEtBQUs7QUFBQSxFQUN2QyxPQUFPLE1BQUk7QUFBQSxFQUNYLE9BQU8sQ0FBQztBQUFBLEVBQ1IsWUFBWTtBQUNkO0FBK0VBLGVBQXNCLHVCQUF1QixJQUFzQztBQUNqRixRQUFN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QUNUO0FBQUEsRUFDRjtBQUVBLGlCQUFlLFdBQVcsWUFBbUM7QUFDM0QsY0FBVSxNQUFNO0FBQ2hCLGNBQVUsU0FBUyxTQUFTLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFbkQsVUFBTSxjQUFjLGFBQWEsS0FBSztBQUN0QyxVQUFNLFdBQVcsYUFBYTtBQUM5QixVQUFNLHFCQUFxQixLQUFLLE1BQU0sWUFBWSxRQUFRO0FBRTFELFVBQU0sZUFBZSxHQUFHO0FBRXhCLE9BQUcsWUFBWTtBQUNmLFFBQUk7QUFDRixZQUFNLFNBQVMsa0JBQWtCO0FBQUEsSUFDbkMsU0FBUyxHQUFHO0FBQ1YsU0FBRyxVQUFVLGVBQU0sNEJBQWMsQ0FBQyxDQUFDO0FBQUEsSUFDckMsVUFBRTtBQUNBLFNBQUcsWUFBWTtBQUFBLElBQ2pCO0FBRUEsNkJBQXlCLFVBQVU7QUFBQSxFQUNyQztBQUNGO0FBYUEsZUFBc0IscUJBQXFCLElBQXVCLFVBQW1FO0FBQ25JLFFBQU0sZ0JBQWdCLEdBQUcsVUFBVSxFQUFFO0FBQ3JDLEtBQUcsWUFBWTtBQUNmLEtBQUcsVUFBVSxNQUFNO0FBRW5CLE1BQUk7QUFDRixVQUFNLFNBQVM7QUFBQSxFQUNqQixTQUFTLEdBQUc7QUFDVixPQUFHLFVBQVUsZUFBTSw0QkFBYyxDQUFDLENBQUM7QUFBQSxFQUNyQyxVQUFFO0FBQ0EsT0FBRyxZQUFZLGNBQWM7QUFDN0Isa0JBQWMsT0FBTztBQUFBLEVBQ3ZCO0FBRUEsU0FBTztBQUNUO0FBWU8sU0FBUyxhQUFhO0FBQUEsRUFDM0I7QUFBQSxFQUNBO0FBQUEsRUFDQSxRQUFRO0FBQUEsRUFDUixTQUFTO0FBQ1gsR0FLUztBQUNQLEtBQUcsR0FBRyxVQUFVLElBQUk7QUFBQSxJQUNsQixNQUFNO0FBQUEsTUFDSixTQUFLLDhDQUEwQixHQUFHLFNBQUssOEJBQVEsa0JBQWtCLEdBQUcsR0FBRyxRQUFRLEVBQUUsS0FBSyxJQUFJO0FBQUEsTUFDMUY7QUFBQSxNQUNBO0FBQUEsSUFDRjtBQUFBLEVBQ0YsQ0FBQztBQUNIO0FBV08sU0FBUyxnQkFBZ0IsSUFBdUIsVUFBa0IsTUFBb0I7QUFDM0YsUUFBTSxlQUFlLEtBQUssU0FBUyxVQUFVO0FBQzdDLFFBQU0sZUFBZSxNQUFNLEtBQUssWUFBWSxFQUFFLElBQUksQ0FBQyxlQUFlLFdBQVcsQ0FBQyxFQUFFLE1BQU07QUFDdEYsUUFBTSxpQkFBaUIsS0FBSyxJQUFJLEdBQUcsR0FBRyxZQUFZO0FBQ2xELFFBQU0sb0JBQW9CLEtBQUssSUFBSSxHQUFHLGlCQUFpQixDQUFDO0FBQ3hELFFBQU0sY0FBYyxJQUFJLE9BQU8saUJBQWlCO0FBRWhELEtBQUcsVUFBVSxHQUFHLFdBQVcsR0FBRyxRQUFRO0FBQUEsRUFDdEMsSUFBSTtBQUFBLEVBQ0osV0FBVyxFQUFFO0FBQ2Y7IiwKICAibmFtZXMiOiBbInJvd3MiLCAicGFnZU51bWJlciJdCn0K
242
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL29ic2lkaWFuL0RhdGF2aWV3LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJ2YXIgX19pbXBvcnRfbWV0YV91cmwgPSBnbG9iYWxUaGlzW1wiaW1wb3J0Lm1ldGEudXJsXCJdID8/ICgoKT0+cmVxdWlyZShcIm5vZGU6dXJsXCIpLnBhdGhUb0ZpbGVVUkwoX19maWxlbmFtZSkpKCk7XG52YXIgX19wcm9jZXNzID0gZ2xvYmFsVGhpc1tcInByb2Nlc3NcIl0gPz8ge1xuICBcImN3ZFwiOiAoKT0+XCIvXCIsXG4gIFwiZW52XCI6IHt9LFxuICBcInBsYXRmb3JtXCI6IFwiYW5kcm9pZFwiXG59O1xuLyoqXG4gKiBAcGFja2FnZURvY3VtZW50YXRpb24gRGF0YXZpZXdcbiAqIFRoaXMgbW9kdWxlIHByb3ZpZGVzIHV0aWxpdHkgZnVuY3Rpb25zIGZvciB3b3JraW5nIHdpdGggRGF0YXZpZXcgaW4gT2JzaWRpYW4uXG4gKi9cblxuaW1wb3J0IFwiLi4vQHR5cGVzL2NvbXBhcmUtdmVyc2lvbnMuZC50c1wiO1xuXG5pbXBvcnQgdHlwZSB7IERhdGF2aWV3SW5saW5lQXBpIGFzIERhdGF2aWV3SW5saW5lQXBpT3JpZ2luYWwgfSBmcm9tIFwiLi9AdHlwZXMvRGF0YXZpZXcvYXBpL2lubGluZS1hcGkuZC50c1wiO1xuaW1wb3J0IHR5cGUge1xuICBEYXRhQXJyYXksXG4gIERhdGF2aWV3QXBpLFxuICBTTWFya2Rvd25QYWdlXG59IGZyb20gXCIuL0B0eXBlcy9EYXRhdmlldy9pbmRleC5kLnRzXCI7XG5cbi8qKlxuICogRXhwb3J0IERhdGVUaW1lIGFuZCBMaW5rIHR5cGVzIGZyb20gdGhlIERhdGF2aWV3IEFQSS5cbiAqL1xuZXhwb3J0IHR5cGUge1xuICBEYXRlVGltZSxcbiAgTGlua1xufSBmcm9tIFwiLi9AdHlwZXMvRGF0YXZpZXcvaW5kZXguZC50c1wiO1xuXG5pbXBvcnQge1xuICBjb252ZXJ0QXN5bmNUb1N5bmMsXG4gIHR5cGUgTWF5YmVQcm9taXNlXG59IGZyb20gXCIuLi9Bc3luYy50c1wiO1xuaW1wb3J0IHsgcmVsYXRpdmVQYXRoVG9SZXNvdXJjZVVybCB9IGZyb20gXCIuLi9vYnNpZGlhbi9SZXNvdXJjZVVybC50c1wiO1xuaW1wb3J0IHsgZXJyb3JUb1N0cmluZyB9IGZyb20gXCIuLi9FcnJvci50c1wiO1xuaW1wb3J0IHR5cGUgeyBQYXRoT3JGaWxlIH0gZnJvbSBcIi4vVEZpbGUudHNcIjtcbmltcG9ydCB7IGdldFBhdGggfSBmcm9tIFwiLi9UQWJzdHJhY3RGaWxlLnRzXCI7XG5pbXBvcnQgdHlwZSB7IENvbWJpbmVkRnJvbnRNYXR0ZXIgfSBmcm9tIFwiLi9Gcm9udE1hdHRlci50c1wiO1xuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIC8qKlxuICAgKiBUaGUgRGF0YXZpZXdBUEkgb2JqZWN0IHJlcHJlc2VudHMgdGhlIEFQSSBmb3IgaW50ZXJhY3Rpbmcgd2l0aCBEYXRhdmlldyBpbiBPYnNpZGlhbi5cbiAgICovXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby12YXJcbiAgdmFyIERhdGF2aWV3QVBJOiBEYXRhdmlld0FwaSB8IHVuZGVmaW5lZDtcbn1cblxuLyoqXG4gKiBEb21FbGVtZW50SW5mbyB3aXRoIGFuIG9wdGlvbmFsIGNvbnRhaW5lci5cbiAqL1xudHlwZSBEb21FbGVtZW50SW5mb1dpdGhDb250YWluZXIgPSBEb21FbGVtZW50SW5mbyAmIHsgY29udGFpbmVyPzogSFRNTEVsZW1lbnQgfTtcblxuLyoqXG4gKiBFeHRlbmRlZCBpbnRlcmZhY2UgZm9yIHRoZSBEYXRhdmlldyBJbmxpbmUgQVBJLCBwcm92aWRpbmcgYWRkaXRpb25hbCBtZXRob2RzIGZvciBjdXN0b20gcGFnZSB0eXBlcyBhbmQgYXJyYXkgaGFuZGxpbmcuXG4gKlxuICogQHR5cGVQYXJhbSBDdXN0b21QYWdlIC0gVGhlIHR5cGUgb2YgdGhlIGN1c3RvbSBwYWdlLiBEZWZhdWx0cyB0byBgU01hcmtkb3duUGFnZWAuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGF0YXZpZXdJbmxpbmVBcGkgZXh0ZW5kcyBEYXRhdmlld0lubGluZUFwaU9yaWdpbmFsIHtcbiAgLyoqXG4gICAqIFJldHJpZXZlcyB0aGUgY3VycmVudCBwYWdlLCB3aXRoIGFuIG9wdGlvbmFsIGN1c3RvbSBwYWdlIHR5cGUuXG4gICAqXG4gICAqIEB0eXBlUGFyYW0gQ3VzdG9tUGFnZSAtIFRoZSB0eXBlIG9mIHRoZSBjdXN0b20gcGFnZS4gRGVmYXVsdHMgdG8gYFNNYXJrZG93blBhZ2VgLlxuICAgKiBAcmV0dXJucyBUaGUgY3VycmVudCBwYWdlLlxuICAgKi9cbiAgY3VycmVudDxDdXN0b21Gcm9udE1hdHRlciA9IHVua25vd24+KCk6IENvbWJpbmVkUGFnZTxDdXN0b21Gcm9udE1hdHRlcj47XG5cbiAgLyoqXG4gICAqIFdyYXBzIGFuIGFycmF5IG9mIGl0ZW1zIGludG8gYSBgRGF0YUFycmF5YCBvYmplY3QuXG4gICAqXG4gICAqIEB0eXBlUGFyYW0gVCAtIFRoZSB0eXBlIG9mIHRoZSBpdGVtcyBpbiB0aGUgYXJyYXkuXG4gICAqIEBwYXJhbSBhcnIgLSBUaGUgYXJyYXkgb2YgaXRlbXMgdG8gd3JhcC5cbiAgICogQHJldHVybnMgQSBgRGF0YUFycmF5YCBjb250YWluaW5nIHRoZSBpdGVtcy5cbiAgICovXG4gIGFycmF5PFQ+KGFycjogVFtdKTogRGF0YUFycmF5PFQ+O1xuXG4gIC8qKlxuICAgKiBSZXRyaWV2ZXMgcGFnZXMgYmFzZWQgb24gYW4gb3B0aW9uYWwgcXVlcnksIHdpdGggYW4gb3B0aW9uYWwgY3VzdG9tIHBhZ2UgdHlwZS5cbiAgICpcbiAgICogQHR5cGVQYXJhbSBDdXN0b21QYWdlIC0gVGhlIHR5cGUgb2YgdGhlIGN1c3RvbSBwYWdlLiBEZWZhdWx0cyB0byBgU01hcmtkb3duUGFnZWAuXG4gICAqIEBwYXJhbSBxdWVyeSAtIEFuIG9wdGlvbmFsIHN0cmluZyBxdWVyeSB0byBmaWx0ZXIgdGhlIHBhZ2VzLlxuICAgKiBAcmV0dXJucyBBIGBEYXRhQXJyYXlgIG9mIHBhZ2VzIG1hdGNoaW5nIHRoZSBxdWVyeS5cbiAgICovXG4gIHBhZ2VzPEN1c3RvbUZyb250TWF0dGVyID0gdW5rbm93bj4ocXVlcnk/OiBzdHJpbmcpOiBEYXRhQXJyYXk8Q29tYmluZWRQYWdlPEN1c3RvbUZyb250TWF0dGVyPj47XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBwYXJhZ3JhcGggSFRNTCBlbGVtZW50IHdpdGggdGhlIHByb3ZpZGVkIHRleHQgYW5kIG9wdGlvbmFsIERPTSBlbGVtZW50IG9wdGlvbnMuXG4gICAqXG4gICAqIEBwYXJhbSB0ZXh0IC0gVGhlIGNvbnRlbnQgb2YgdGhlIHBhcmFncmFwaC5cbiAgICogQHBhcmFtIG9wdGlvbnMgLSBPcHRpb25hbCBET00gZWxlbWVudCBvcHRpb25zLCBpbmNsdWRpbmcgYW4gb3B0aW9uYWwgY29udGFpbmVyLlxuICAgKiBAcmV0dXJucyBUaGUgY3JlYXRlZCBIVE1MIHBhcmFncmFwaCBlbGVtZW50LlxuICAgKi9cbiAgcGFyYWdyYXBoKFxuICAgIHRleHQ6IHVua25vd24sXG4gICAgb3B0aW9ucz86IERvbUVsZW1lbnRJbmZvV2l0aENvbnRhaW5lclxuICApOiBIVE1MUGFyYWdyYXBoRWxlbWVudDtcbn1cblxuLyoqXG4gKiBSZWxvYWRzIHRoZSBjdXJyZW50IGZpbGUgY2FjaGUgdXNpbmcgdGhlIERhdGF2aWV3IEFQSS5cbiAqXG4gKiBAcGFyYW0gZHYgLSBUaGUgRGF0YXZpZXdJbmxpbmVBcGkgaW5zdGFuY2UuXG4gKiBAcmV0dXJucyBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBjYWNoZSBpcyByZWxvYWRlZC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlbG9hZEN1cnJlbnRGaWxlQ2FjaGUoZHY6IERhdGF2aWV3SW5saW5lQXBpKTogUHJvbWlzZTx2b2lkPiB7XG4gIGF3YWl0IERhdGF2aWV3QVBJPy5pbmRleC5yZWxvYWQoZHYuYXBwLnZhdWx0LmdldEZpbGVCeVBhdGgoZHYuY3VycmVudCgpLmZpbGUucGF0aCkhKTtcbn1cblxuLyoqXG4gKiBUaGUgY29tYmluZWQgcGFnZSB0eXBlLCB3aGljaCBpbmNsdWRlcyB0aGUgZnJvbnQgbWF0dGVyIGFuZCB0aGUgU01hcmtkb3duUGFnZS5cbiAqL1xuZXhwb3J0IHR5cGUgQ29tYmluZWRQYWdlPEN1c3RvbUZyb250TWF0dGVyID0gdW5rbm93bj4gPSBTTWFya2Rvd25QYWdlICYgQ29tYmluZWRGcm9udE1hdHRlcjxDdXN0b21Gcm9udE1hdHRlcj47XG5cbnR5cGUgUGFnZUZpbGUgPSBTTWFya2Rvd25QYWdlW1wiZmlsZVwiXTtcblxuXG4vKipcbiAqIExpc3Qgb2YgcGFnZSBmaWxlcy5cbiAqL1xuZXhwb3J0IHR5cGUgUGFnZUZpbGVzID0gQXJyYXlPckRhdGFBcnJheTxQYWdlRmlsZT47XG5cbmNvbnN0IHBhZ2luYXRpb25Dc3MgPSBgXG4ucGFnaW5hdGlvbiAucGFnZS1saW5rLmRpc2FibGVkIHtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIGNvbG9yOiBncmF5O1xufVxuXG4ucGFnaW5hdGlvbiAucGFnZS1saW5rIHtcbiAgbWFyZ2luOiAwIDVweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGNvbG9yOiBibHVlO1xufVxuXG4ucGFnaW5hdGlvbiAucGFnZS1saW5rOmhvdmVyOm5vdCguZGlzYWJsZWQpIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG59XG4ucGFnaW5hdGlvbiAucGFnZS1saW5rLmN1cnJlbnQge1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG59XG5cbi5wYWdpbmF0aW9uIHNlbGVjdCxcbi5wYWdpbmF0aW9uIGlucHV0IHtcbiAgbWFyZ2luOiAwIDVweDtcbn1cbmA7XG5cbnR5cGUgQXJyYXlPckRhdGFBcnJheTxUPiA9IFRbXSB8IERhdGFBcnJheTxUPjtcblxuLyoqXG4gKiBPcHRpb25zIGZvciByZW5kZXJpbmcgYSBwYWdpbmF0ZWQgbGlzdCB1c2luZyB0aGUgRGF0YXZpZXcgQVBJLlxuICovXG50eXBlIFJlbmRlclBhZ2luYXRlZExpc3RPcHRpb25zPFQ+ID0ge1xuICAvKipcbiAgICogVGhlIERhdGF2aWV3SW5saW5lQXBpIGluc3RhbmNlLlxuICAgKi9cbiAgZHY6IERhdGF2aWV3SW5saW5lQXBpO1xuXG4gIC8qKlxuICAgKiBUaGUgbGlzdCBvZiBpdGVtcyB0byBwYWdpbmF0ZS5cbiAgICovXG4gIHJvd3M6IEFycmF5T3JEYXRhQXJyYXk8VD47XG5cbiAgLyoqXG4gICAqIE9wdGlvbnMgZm9yIGl0ZW1zIHBlciBwYWdlLiBEZWZhdWx0cyB0byBgWzEwLCAyMCwgNTAsIDEwMF1gLlxuICAgKi9cbiAgaXRlbXNQZXJQYWdlT3B0aW9ucz86IG51bWJlcltdO1xufTtcblxuLyoqXG4gKiBSZW5kZXJzIGEgcGFnaW5hdGVkIGxpc3QgdXNpbmcgdGhlIHByb3ZpZGVkIERhdGF2aWV3SW5saW5lQXBpIGluc3RhbmNlLlxuICpcbiAqIEB0eXBlUGFyYW0gVCAtIFRoZSB0eXBlIG9mIGl0ZW1zIGluIHRoZSBsaXN0LlxuICpcbiAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIG9wdGlvbnMgZm9yIHJlbmRlcmluZyB0aGUgcGFnaW5hdGVkIGxpc3QuXG4gKlxuICogQHJldHVybnMgQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgbGlzdCBpcyByZW5kZXJlZC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlbmRlclBhZ2luYXRlZExpc3Q8VD4ob3B0aW9uczogUmVuZGVyUGFnaW5hdGVkTGlzdE9wdGlvbnM8VD4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3Qge1xuICAgIGR2LFxuICAgIHJvd3MsXG4gICAgaXRlbXNQZXJQYWdlT3B0aW9ucyA9IFsxMCwgMjAsIDUwLCAxMDBdXG4gIH0gPSBvcHRpb25zO1xuICBhd2FpdCByZW5kZXJQYWdpbmF0ZWQoe1xuICAgIGR2LFxuICAgIHJvd3MsXG4gICAgaXRlbXNQZXJQYWdlT3B0aW9ucyxcbiAgICByZW5kZXJlcjogYXN5bmMgKHJvd3M6IEFycmF5T3JEYXRhQXJyYXk8VD4pOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICAgIGF3YWl0IGR2Lmxpc3Qocm93cyk7XG4gICAgfVxuICB9KTtcbn1cblxuLyoqXG4gKiBPcHRpb25zIGZvciByZW5kZXJpbmcgYSBwYWdpbmF0ZWQgdGFibGUgdXNpbmcgdGhlIERhdGF2aWV3IEFQSS5cbiAqL1xudHlwZSBSZW5kZXJQYWdpbmF0ZWRUYWJsZU9wdGlvbnM8VD4gPSB7XG4gIC8qKlxuICAgKiBUaGUgRGF0YXZpZXdJbmxpbmVBcGkgaW5zdGFuY2UuXG4gICAqL1xuICBkdjogRGF0YXZpZXdJbmxpbmVBcGk7XG5cbiAgLyoqXG4gICAqIFRoZSBoZWFkZXJzIG9mIHRoZSB0YWJsZS5cbiAgICovXG4gIGhlYWRlcnM6IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBUaGUgcm93cyBvZiB0aGUgdGFibGUgdG8gcGFnaW5hdGUuXG4gICAqL1xuICByb3dzOiBBcnJheU9yRGF0YUFycmF5PFQ+O1xuXG4gIC8qKlxuICAgKiBPcHRpb25zIGZvciBpdGVtcyBwZXIgcGFnZS4gRGVmYXVsdHMgdG8gYFsxMCwgMjAsIDUwLCAxMDBdYC5cbiAgICovXG4gIGl0ZW1zUGVyUGFnZU9wdGlvbnM/OiBudW1iZXJbXTtcbn07XG5cbi8qKlxuICogUmVuZGVycyBhIHBhZ2luYXRlZCB0YWJsZSB1c2luZyB0aGUgcHJvdmlkZWQgRGF0YXZpZXdJbmxpbmVBcGkgaW5zdGFuY2UuXG4gKlxuICogQHR5cGVQYXJhbSBUIC0gVGhlIHR5cGUgb2YgaXRlbXMgaW4gdGhlIHRhYmxlIHJvd3MuXG4gKlxuICogQHBhcmFtIG9wdGlvbnMgLSBUaGUgb3B0aW9ucyBmb3IgcmVuZGVyaW5nIHRoZSBwYWdpbmF0ZWQgdGFibGUuXG4gKlxuICogQHJldHVybnMgQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgdGFibGUgaXMgcmVuZGVyZWQuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiByZW5kZXJQYWdpbmF0ZWRUYWJsZTxUIGV4dGVuZHMgdW5rbm93bltdPihvcHRpb25zOiBSZW5kZXJQYWdpbmF0ZWRUYWJsZU9wdGlvbnM8VD4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3Qge1xuICAgIGR2LFxuICAgIGhlYWRlcnMsXG4gICAgcm93cyxcbiAgICBpdGVtc1BlclBhZ2VPcHRpb25zID0gWzEwLCAyMCwgNTAsIDEwMF1cbiAgfSA9IG9wdGlvbnM7XG4gIGF3YWl0IHJlbmRlclBhZ2luYXRlZCh7XG4gICAgZHYsXG4gICAgcm93cyxcbiAgICBpdGVtc1BlclBhZ2VPcHRpb25zLFxuICAgIHJlbmRlcmVyOiBhc3luYyAocm93czogQXJyYXlPckRhdGFBcnJheTxUPik6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgICAgYXdhaXQgZHYudGFibGUoaGVhZGVycywgcm93cyk7XG4gICAgfVxuICB9KTtcbn1cblxuLyoqXG4gKiBPcHRpb25zIGZvciByZW5kZXJpbmcgYSBwYWdpbmF0ZWQgZWxlbWVudCB1c2luZyB0aGUgRGF0YXZpZXcgQVBJLlxuICovXG50eXBlIFJlbmRlclBhZ2luYXRlZE9wdGlvbnM8VD4gPSB7XG4gIC8qKlxuICAgKiBUaGUgRGF0YXZpZXdJbmxpbmVBcGkgaW5zdGFuY2UuXG4gICAqL1xuICBkdjogRGF0YXZpZXdJbmxpbmVBcGk7XG5cbiAgLyoqXG4gICAqIFRoZSByb3dzIHRvIHBhZ2luYXRlLlxuICAgKi9cbiAgcm93czogQXJyYXlPckRhdGFBcnJheTxUPjtcblxuICAvKipcbiAgICogT3B0aW9ucyBmb3IgaXRlbXMgcGVyIHBhZ2UuXG4gICAqL1xuICBpdGVtc1BlclBhZ2VPcHRpb25zOiBudW1iZXJbXTtcblxuICAvKipcbiAgICogVGhlIHJlbmRlcmVyIGZ1bmN0aW9uIHRvIGRpc3BsYXkgdGhlIHBhZ2luYXRlZCBjb250ZW50LlxuICAgKiBAcGFyYW0gcm93cyAtIFRoZSByb3dzIHRvIHJlbmRlci5cbiAgICogQHJldHVybnMgQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgY29udGVudCBpcyByZW5kZXJlZC5cbiAgICovXG4gIHJlbmRlcmVyOiAocm93czogQXJyYXlPckRhdGFBcnJheTxUPikgPT4gTWF5YmVQcm9taXNlPHZvaWQ+O1xufTtcblxuLyoqXG4gKiBIZWxwZXIgZnVuY3Rpb24gdG8gcmVuZGVyIHBhZ2luYXRlZCBjb250ZW50IHVzaW5nIHRoZSBzcGVjaWZpZWQgcmVuZGVyZXIuXG4gKlxuICogQHR5cGVQYXJhbSBUIC0gVGhlIHR5cGUgb2YgaXRlbXMgdG8gcGFnaW5hdGUuXG4gKlxuICogQHBhcmFtIG9wdGlvbnMgLSBUaGUgb3B0aW9ucyBmb3IgcmVuZGVyaW5nIHRoZSBwYWdpbmF0ZWQgY29udGVudC5cbiAqXG4gKiBAcmV0dXJucyBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBjb250ZW50IGlzIHJlbmRlcmVkLlxuICovXG5hc3luYyBmdW5jdGlvbiByZW5kZXJQYWdpbmF0ZWQ8VD4ob3B0aW9uczogUmVuZGVyUGFnaW5hdGVkT3B0aW9uczxUPik6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCB7XG4gICAgZHYsXG4gICAgcm93cyxcbiAgICBpdGVtc1BlclBhZ2VPcHRpb25zID0gWzEwLCAyMCwgNTAsIDEwMF0sXG4gICAgcmVuZGVyZXJcbiAgfSA9IG9wdGlvbnM7XG4gIGlmIChyb3dzLmxlbmd0aCA9PT0gMCkge1xuICAgIGR2LnBhcmFncmFwaChcIk5vIGl0ZW1zIGZvdW5kXCIpO1xuICAgIHJldHVybjtcbiAgfVxuICBjb25zdCBjb250YWluZXIgPSBkdi5jb250YWluZXI7XG4gIGxldCBpdGVtc1BlclBhZ2UgPSBpdGVtc1BlclBhZ2VPcHRpb25zWzBdITtcbiAgbGV0IHRvdGFsUGFnZXMgPSBNYXRoLmNlaWwocm93cy5sZW5ndGggLyBpdGVtc1BlclBhZ2UpO1xuICBhd2FpdCByZW5kZXJQYWdlKDEpO1xuXG4gIGZ1bmN0aW9uIGNyZWF0ZVBhZ2luYXRpb25Db250cm9scyhwYWdlTnVtYmVyOiBudW1iZXIpOiB2b2lkIHtcbiAgICBjb25zdCBwYWdpbmF0aW9uRGl2ID0gY29udGFpbmVyLmNyZWF0ZUVsKFwiZGl2XCIsIHsgY2xzOiBcInBhZ2luYXRpb25cIiB9KTtcbiAgICBjb25zdCBwYWdpbmF0aW9uUm93MURpdiA9IHBhZ2luYXRpb25EaXYuY3JlYXRlRGl2KCk7XG5cbiAgICBjcmVhdGVQYWdlTGluayhcIkZpcnN0XCIsIDEsIHBhZ2VOdW1iZXIgPT09IDEpO1xuICAgIGNyZWF0ZVBhZ2VMaW5rKFwiUHJldlwiLCBwYWdlTnVtYmVyIC0gMSwgcGFnZU51bWJlciA9PT0gMSk7XG5cbiAgICBpZiAocGFnZU51bWJlciA+IDMpIHtcbiAgICAgIHBhZ2luYXRpb25Sb3cxRGl2LmNyZWF0ZUVsKFwic3BhblwiLCB7IHRleHQ6IFwiLi4uXCIgfSk7XG4gICAgfVxuXG4gICAgZm9yIChsZXQgaSA9IE1hdGgubWF4KDEsIHBhZ2VOdW1iZXIgLSAyKTsgaSA8PSBNYXRoLm1pbih0b3RhbFBhZ2VzLCBwYWdlTnVtYmVyICsgMik7IGkrKykge1xuICAgICAgY29uc3QgcGFnZUxpbmsgPSBjcmVhdGVQYWdlTGluayhpLnRvU3RyaW5nKCksIGksIGkgPT09IHBhZ2VOdW1iZXIpO1xuICAgICAgaWYgKGkgPT09IHBhZ2VOdW1iZXIpIHtcbiAgICAgICAgcGFnZUxpbmsuYWRkQ2xhc3MoXCJjdXJyZW50XCIpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChwYWdlTnVtYmVyIDwgdG90YWxQYWdlcyAtIDIpIHtcbiAgICAgIHBhZ2luYXRpb25Sb3cxRGl2LmNyZWF0ZUVsKFwic3BhblwiLCB7IHRleHQ6IFwiLi4uXCIgfSk7XG4gICAgfVxuXG4gICAgY3JlYXRlUGFnZUxpbmsoXCJOZXh0XCIsIHBhZ2VOdW1iZXIgKyAxLCBwYWdlTnVtYmVyID09PSB0b3RhbFBhZ2VzKTtcbiAgICBjcmVhdGVQYWdlTGluayhcIkxhc3RcIiwgdG90YWxQYWdlcywgcGFnZU51bWJlciA9PT0gdG90YWxQYWdlcyk7XG5cbiAgICBjb25zdCBwYWdpbmF0aW9uUm93MkRpdiA9IHBhZ2luYXRpb25EaXYuY3JlYXRlRGl2KCk7XG5cbiAgICBwYWdpbmF0aW9uUm93MkRpdi5jcmVhdGVFbChcInNwYW5cIiwgeyB0ZXh0OiBcIiBJdGVtcyBwZXIgcGFnZTogXCIgfSk7XG5cbiAgICBjb25zdCBpdGVtc1BlclBhZ2VTZWxlY3QgPSBwYWdpbmF0aW9uUm93MkRpdi5jcmVhdGVFbChcInNlbGVjdFwiKTtcbiAgICBpdGVtc1BlclBhZ2VPcHRpb25zLmZvckVhY2goKG9wdGlvbjogbnVtYmVyKTogdm9pZCA9PiB7XG4gICAgICBpdGVtc1BlclBhZ2VTZWxlY3QuY3JlYXRlRWwoXCJvcHRpb25cIiwgeyB0ZXh0OiBvcHRpb24udG9TdHJpbmcoKSwgdmFsdWU6IG9wdGlvbi50b1N0cmluZygpIH0pO1xuICAgIH0pO1xuICAgIGl0ZW1zUGVyUGFnZVNlbGVjdC52YWx1ZSA9IGl0ZW1zUGVyUGFnZS50b1N0cmluZygpO1xuICAgIGl0ZW1zUGVyUGFnZVNlbGVjdC5hZGRFdmVudExpc3RlbmVyKFwiY2hhbmdlXCIsIGNvbnZlcnRBc3luY1RvU3luYyhhc3luYyAoKTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gICAgICBpdGVtc1BlclBhZ2UgPSBwYXJzZUludChpdGVtc1BlclBhZ2VTZWxlY3QudmFsdWUpO1xuICAgICAgdG90YWxQYWdlcyA9IE1hdGguY2VpbChyb3dzLmxlbmd0aCAvIGl0ZW1zUGVyUGFnZSk7XG4gICAgICBhd2FpdCByZW5kZXJQYWdlKDEpO1xuICAgIH0pKTtcblxuICAgIHBhZ2luYXRpb25Sb3cyRGl2LmNyZWF0ZUVsKFwic3BhblwiLCB7IHRleHQ6IFwiICBKdW1wIHRvIHBhZ2U6IFwiIH0pO1xuXG4gICAgY29uc3QganVtcFRvUGFnZUlucHV0ID0gcGFnaW5hdGlvblJvdzJEaXYuY3JlYXRlRWwoXCJpbnB1dFwiLCB7IHR5cGU6IFwibnVtYmVyXCIsIGF0dHI6IHsgbWluOiAxLCBtYXg6IHRvdGFsUGFnZXMgfSB9KTtcbiAgICBqdW1wVG9QYWdlSW5wdXQuYWRkRXZlbnRMaXN0ZW5lcihcImtleWRvd25cIiwgY29udmVydEFzeW5jVG9TeW5jKGFzeW5jIChldmVudDogS2V5Ym9hcmRFdmVudCk6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgICAgaWYgKGV2ZW50LmtleSA9PT0gXCJFbnRlclwiKSB7XG4gICAgICAgIGNvbnN0IHBhZ2UgPSBwYXJzZUludChqdW1wVG9QYWdlSW5wdXQudmFsdWUpO1xuICAgICAgICBpZiAocGFnZSA+PSAxICYmIHBhZ2UgPD0gdG90YWxQYWdlcykge1xuICAgICAgICAgIGF3YWl0IHJlbmRlclBhZ2UocGFnZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KSk7XG5cbiAgICBwYWdpbmF0aW9uUm93MkRpdi5jcmVhdGVFbChcInNwYW5cIiwgeyB0ZXh0OiBgICBQYWdlICR7cGFnZU51bWJlcn0gb2YgJHt0b3RhbFBhZ2VzfSwgVG90YWwgaXRlbXM6ICR7cm93cy5sZW5ndGh9YCB9KTtcblxuICAgIGZ1bmN0aW9uIGNyZWF0ZVBhZ2VMaW5rKHRleHQ6IHN0cmluZywgcGFnZU51bWJlcjogbnVtYmVyLCBkaXNhYmxlZCA9IGZhbHNlKTogSFRNTEFuY2hvckVsZW1lbnQge1xuICAgICAgY29uc3QgbGluayA9IHBhZ2luYXRpb25Sb3cxRGl2LmNyZWF0ZUVsKFwiYVwiLCB7IGNsczogXCJwYWdlLWxpbmtcIiwgdGV4dDogdGV4dCwgaHJlZjogYCMke3BhZ2VOdW1iZXJ9YCB9KTtcbiAgICAgIGlmIChkaXNhYmxlZCkge1xuICAgICAgICBsaW5rLmFkZENsYXNzKFwiZGlzYWJsZWRcIik7XG4gICAgICAgIGxpbmsub25jbGljayA9IChldmVudDogTW91c2VFdmVudCk6IHZvaWQgPT4gZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGxpbmsuYWRkRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsIGNvbnZlcnRBc3luY1RvU3luYyhhc3luYyAoZXZlbnQ6IE1vdXNlRXZlbnQpOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgIGF3YWl0IHJlbmRlclBhZ2UocGFnZU51bWJlcik7XG4gICAgICAgIH0pKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBsaW5rO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGZ1bmN0aW9uIHJlbmRlclBhZ2UocGFnZU51bWJlcjogbnVtYmVyKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29udGFpbmVyLmVtcHR5KCk7XG4gICAgY29udGFpbmVyLmNyZWF0ZUVsKFwic3R5bGVcIiwgeyB0ZXh0OiBwYWdpbmF0aW9uQ3NzIH0pO1xuXG4gICAgY29uc3Qgc3RhcnRJbmRleCA9IChwYWdlTnVtYmVyIC0gMSkgKiBpdGVtc1BlclBhZ2U7XG4gICAgY29uc3QgZW5kSW5kZXggPSBzdGFydEluZGV4ICsgaXRlbXNQZXJQYWdlO1xuICAgIGNvbnN0IHJvd3NGb3JDdXJyZW50UGFnZSA9IHJvd3Muc2xpY2Uoc3RhcnRJbmRleCwgZW5kSW5kZXgpO1xuXG4gICAgY29uc3Qgb2xkQ29udGFpbmVyID0gZHYuY29udGFpbmVyO1xuXG4gICAgZHYuY29udGFpbmVyID0gY29udGFpbmVyO1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCByZW5kZXJlcihyb3dzRm9yQ3VycmVudFBhZ2UpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGR2LnBhcmFncmFwaChcIlx1Mjc0Q1wiICsgZXJyb3JUb1N0cmluZyhlKSk7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIGR2LmNvbnRhaW5lciA9IG9sZENvbnRhaW5lcjtcbiAgICB9XG5cbiAgICBjcmVhdGVQYWdpbmF0aW9uQ29udHJvbHMocGFnZU51bWJlcik7XG4gIH1cbn1cblxuLyoqXG4gKiBSZW5kZXJzIHRoZSBjb250ZW50IHVzaW5nIHRoZSBwcm92aWRlZCByZW5kZXJlciBmdW5jdGlvbiBpbiBhIHRlbXBvcmFyeSBjb250YWluZXIsXG4gKiBhbmQgdGhlbiByZXR1cm5zIHRoZSBjb250YWluZXIuXG4gKlxuICogQHBhcmFtIGR2IC0gVGhlIERhdGF2aWV3SW5saW5lQXBpIGluc3RhbmNlLlxuICogQHBhcmFtIHJlbmRlcmVyIC0gVGhlIGZ1bmN0aW9uIHJlc3BvbnNpYmxlIGZvciByZW5kZXJpbmcgdGhlIGNvbnRlbnQuXG4gKiBAcmV0dXJucyBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB0byB0aGUgSFRNTCBwYXJhZ3JhcGggZWxlbWVudFxuICogdGhhdCB3YXMgdXNlZCBhcyB0aGUgdGVtcG9yYXJ5IGNvbnRhaW5lci5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldFJlbmRlcmVkQ29udGFpbmVyKGR2OiBEYXRhdmlld0lubGluZUFwaSwgcmVuZGVyZXI6ICgpID0+IE1heWJlUHJvbWlzZTx2b2lkPik6IFByb21pc2U8SFRNTFBhcmFncmFwaEVsZW1lbnQ+IHtcbiAgY29uc3QgdGVtcENvbnRhaW5lciA9IGR2LnBhcmFncmFwaChcIlwiKTtcbiAgZHYuY29udGFpbmVyID0gdGVtcENvbnRhaW5lcjtcbiAgZHYuY29udGFpbmVyLmVtcHR5KCk7XG5cbiAgdHJ5IHtcbiAgICBhd2FpdCByZW5kZXJlcigpO1xuICB9IGNhdGNoIChlKSB7XG4gICAgZHYucGFyYWdyYXBoKFwiXHUyNzRDXCIgKyBlcnJvclRvU3RyaW5nKGUpKTtcbiAgfSBmaW5hbGx5IHtcbiAgICBkdi5jb250YWluZXIgPSB0ZW1wQ29udGFpbmVyLnBhcmVudEVsZW1lbnQhO1xuICAgIHRlbXBDb250YWluZXIucmVtb3ZlKCk7XG4gIH1cblxuICByZXR1cm4gdGVtcENvbnRhaW5lcjtcbn1cblxuLyoqXG4gKiBPcHRpb25zIGZvciByZW5kZXJpbmcgYW4gaWZyYW1lIGluIHRoZSBEYXRhdmlldyBjb250YWluZXIuXG4gKi9cbnR5cGUgUmVuZGVySWZyYW1lT3B0aW9ucyA9IHtcbiAgLyoqXG4gICAqIFRoZSBEYXRhdmlld0lubGluZUFwaSBpbnN0YW5jZS5cbiAgICovXG4gIGR2OiBEYXRhdmlld0lubGluZUFwaTtcblxuICAvKipcbiAgICogVGhlIHJlbGF0aXZlIHBhdGggdG8gdGhlIHJlc291cmNlIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgaWZyYW1lLlxuICAgKi9cbiAgcmVsYXRpdmVQYXRoT3JGaWxlOiBQYXRoT3JGaWxlO1xuXG4gIC8qKlxuICAgKiBUaGUgd2lkdGggb2YgdGhlIGlmcmFtZS5cbiAgICovXG4gIHdpZHRoOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBoZWlnaHQgb2YgdGhlIGlmcmFtZS5cbiAgICovXG4gIGhlaWdodDogc3RyaW5nO1xufTtcblxuLyoqXG4gKiBSZW5kZXJzIGFuIGlmcmFtZSBpbiB0aGUgRGF0YXZpZXcgY29udGFpbmVyIHdpdGggdGhlIHNwZWNpZmllZCByZWxhdGl2ZSBwYXRoLCB3aWR0aCwgYW5kIGhlaWdodC5cbiAqXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSBvcHRpb25zIGZvciByZW5kZXJpbmcgdGhlIGlmcmFtZS5cbiAqXG4gKiBAcmV0dXJucyBUaGlzIGZ1bmN0aW9uIGRvZXMgbm90IHJldHVybiBhIHZhbHVlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVuZGVySWZyYW1lKG9wdGlvbnM6IFJlbmRlcklmcmFtZU9wdGlvbnMpOiB2b2lkIHtcbiAgY29uc3Qge1xuICAgIGR2LFxuICAgIHJlbGF0aXZlUGF0aE9yRmlsZSxcbiAgICB3aWR0aCA9IFwiMTAwJVwiLFxuICAgIGhlaWdodCA9IFwiNjAwcHhcIlxuICB9ID0gb3B0aW9ucztcbiAgZHYuZWwoXCJpZnJhbWVcIiwgXCJcIiwge1xuICAgIGF0dHI6IHtcbiAgICAgIHNyYzogcmVsYXRpdmVQYXRoVG9SZXNvdXJjZVVybChkdi5hcHAsIGdldFBhdGgocmVsYXRpdmVQYXRoT3JGaWxlKSwgZHYuY3VycmVudCgpLmZpbGUucGF0aCksXG4gICAgICB3aWR0aCxcbiAgICAgIGhlaWdodFxuICAgIH1cbiAgfSk7XG59XG5cbi8qKlxuICogSW5zZXJ0cyBhIGNvZGUgYmxvY2sgaW50byB0aGUgc3BlY2lmaWVkIERhdGF2aWV3IGluc3RhbmNlIHVzaW5nIHRoZSBwcm92aWRlZCBsYW5ndWFnZSBhbmQgY29kZS5cbiAqXG4gKiBAcGFyYW0gZHYgLSBUaGUgRGF0YXZpZXdJbmxpbmVBcGkgaW5zdGFuY2UgdG8gaW5zZXJ0IHRoZSBjb2RlIGJsb2NrIGludG8uXG4gKiBAcGFyYW0gbGFuZ3VhZ2UgLSBUaGUgbGFuZ3VhZ2UgaWRlbnRpZmllciBmb3IgdGhlIGNvZGUgYmxvY2suXG4gKiBAcGFyYW0gY29kZSAtIFRoZSBjb2RlIGNvbnRlbnQgdG8gYmUgaW5zZXJ0ZWQgaW50byB0aGUgY29kZSBibG9jay5cbiAqIEByZXR1cm5zIFRoaXMgZnVuY3Rpb24gZG9lcyBub3QgcmV0dXJuIGEgdmFsdWUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpbnNlcnRDb2RlQmxvY2soZHY6IERhdGF2aWV3SW5saW5lQXBpLCBsYW5ndWFnZTogc3RyaW5nLCBjb2RlOiBzdHJpbmcpOiB2b2lkIHtcbiAgY29uc3QgZmVuY2VNYXRjaGVzID0gY29kZS5tYXRjaEFsbCgvXmB7Myx9L2dtKTtcbiAgY29uc3QgZmVuY2VMZW5ndGhzID0gQXJyYXkuZnJvbShmZW5jZU1hdGNoZXMpLm1hcCgoZmVuY2VNYXRjaCkgPT4gZmVuY2VNYXRjaFswXS5sZW5ndGgpO1xuICBjb25zdCBtYXhGZW5jZUxlbmd0aCA9IE1hdGgubWF4KDAsIC4uLmZlbmNlTGVuZ3Rocyk7XG4gIGNvbnN0IHJlc3VsdEZlbmNlTGVuZ3RoID0gTWF0aC5tYXgoMywgbWF4RmVuY2VMZW5ndGggKyAxKTtcbiAgY29uc3QgcmVzdWx0RmVuY2UgPSBcImBcIi5yZXBlYXQocmVzdWx0RmVuY2VMZW5ndGgpO1xuXG4gIGR2LnBhcmFncmFwaChgJHtyZXN1bHRGZW5jZX0ke2xhbmd1YWdlfVxuJHtjb2RlfVxuJHtyZXN1bHRGZW5jZX1gKTtcbn1cbiJdLAogICJt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
@@ -1,134 +1,187 @@
1
1
  /**
2
- * @module Dataview
2
+ * @packageDocumentation Dataview
3
3
  * This module provides utility functions for working with Dataview in Obsidian.
4
4
  */
5
5
  import "../@types/compare-versions.d.ts";
6
6
  import type { DataviewInlineApi as DataviewInlineApiOriginal } from "./@types/Dataview/api/inline-api.d.ts";
7
- import type { DataArray, DataviewApi, DateTime, Link, SMarkdownPage } from "./@types/Dataview/index.d.ts";
7
+ import type { DataArray, DataviewApi, SMarkdownPage } from "./@types/Dataview/index.d.ts";
8
+ /**
9
+ * Export DateTime and Link types from the Dataview API.
10
+ */
11
+ export type { DateTime, Link } from "./@types/Dataview/index.d.ts";
8
12
  import { type MaybePromise } from "../Async.ts";
9
13
  import type { PathOrFile } from "./TFile.ts";
14
+ import type { CombinedFrontMatter } from "./FrontMatter.ts";
10
15
  declare global {
11
16
  /**
12
17
  * The DataviewAPI object represents the API for interacting with Dataview in Obsidian.
13
- *
14
- * @var {DataviewApi | undefined}
15
18
  */
16
19
  var DataviewAPI: DataviewApi | undefined;
17
20
  }
18
- export type { DateTime, Link };
19
21
  /**
20
- * Extends the `DataviewInlineApiOriginal` interface to provide additional methods for interacting with Dataview.
21
- *
22
- * @interface DataviewInlineApi
23
- * @extends {DataviewInlineApiOriginal}
24
- *
25
- * @method current
26
- * @param {SMarkdownPage} [CustomPage] - A custom page type that extends the default SMarkdownPage.
27
- * @returns {Page<CustomPage>} The current page.
28
- *
29
- * @method array
30
- * @param {T[]} arr - An array of items.
31
- * @returns {DataArray<T>} A DataArray containing the provided items.
32
- *
33
- * @method pages
34
- * @param {string} [query] - A query string to filter the pages.
35
- * @returns {DataArray<Page<CustomPage>>} A DataArray containing the pages.
22
+ * DomElementInfo with an optional container.
23
+ */
24
+ type DomElementInfoWithContainer = DomElementInfo & {
25
+ container?: HTMLElement;
26
+ };
27
+ /**
28
+ * Extended interface for the Dataview Inline API, providing additional methods for custom page types and array handling.
36
29
  *
37
- * @method paragraph
38
- * @param {unknown} text - The text content of the paragraph.
39
- * @param {DomElementInfo & { container?: HTMLElement }} [options] - Additional options for the paragraph.
40
- * @returns {HTMLParagraphElement} The created paragraph element.
30
+ * @typeParam CustomPage - The type of the custom page. Defaults to `SMarkdownPage`.
41
31
  */
42
32
  export interface DataviewInlineApi extends DataviewInlineApiOriginal {
43
- current<CustomPage = SMarkdownPage>(): Page<CustomPage>;
33
+ /**
34
+ * Retrieves the current page, with an optional custom page type.
35
+ *
36
+ * @typeParam CustomPage - The type of the custom page. Defaults to `SMarkdownPage`.
37
+ * @returns The current page.
38
+ */
39
+ current<CustomFrontMatter = unknown>(): CombinedPage<CustomFrontMatter>;
40
+ /**
41
+ * Wraps an array of items into a `DataArray` object.
42
+ *
43
+ * @typeParam T - The type of the items in the array.
44
+ * @param arr - The array of items to wrap.
45
+ * @returns A `DataArray` containing the items.
46
+ */
44
47
  array<T>(arr: T[]): DataArray<T>;
45
- pages<CustomPage = SMarkdownPage>(query?: string): DataArray<Page<CustomPage>>;
46
- paragraph(text: unknown, options?: DomElementInfo & {
47
- container?: HTMLElement;
48
- }): HTMLParagraphElement;
48
+ /**
49
+ * Retrieves pages based on an optional query, with an optional custom page type.
50
+ *
51
+ * @typeParam CustomPage - The type of the custom page. Defaults to `SMarkdownPage`.
52
+ * @param query - An optional string query to filter the pages.
53
+ * @returns A `DataArray` of pages matching the query.
54
+ */
55
+ pages<CustomFrontMatter = unknown>(query?: string): DataArray<CombinedPage<CustomFrontMatter>>;
56
+ /**
57
+ * Creates a paragraph HTML element with the provided text and optional DOM element options.
58
+ *
59
+ * @param text - The content of the paragraph.
60
+ * @param options - Optional DOM element options, including an optional container.
61
+ * @returns The created HTML paragraph element.
62
+ */
63
+ paragraph(text: unknown, options?: DomElementInfoWithContainer): HTMLParagraphElement;
49
64
  }
50
65
  /**
51
66
  * Reloads the current file cache using the Dataview API.
52
67
  *
53
- * @async
54
- * @function reloadCurrentFileCache
55
- * @param {DataviewInlineApi} dv - The DataviewInlineApi instance.
56
- * @returns {Promise<void>} A promise that resolves when the cache is reloaded.
68
+ * @param dv - The DataviewInlineApi instance.
69
+ * @returns A promise that resolves when the cache is reloaded.
57
70
  */
58
71
  export declare function reloadCurrentFileCache(dv: DataviewInlineApi): Promise<void>;
59
- export type Page<T = SMarkdownPage> = SMarkdownPage & T;
60
- type PageFile = Page["file"];
61
- export type PageFiles = DataArray<PageFile> | PageFile[];
72
+ /**
73
+ * The combined page type, which includes the front matter and the SMarkdownPage.
74
+ */
75
+ export type CombinedPage<CustomFrontMatter = unknown> = SMarkdownPage & CombinedFrontMatter<CustomFrontMatter>;
76
+ type PageFile = SMarkdownPage["file"];
77
+ /**
78
+ * List of page files.
79
+ */
80
+ export type PageFiles = ArrayOrDataArray<PageFile>;
62
81
  type ArrayOrDataArray<T> = T[] | DataArray<T>;
63
82
  /**
64
- * Renders a paginated list using the provided DataviewInlineApi instance.
65
- *
66
- * @async
67
- * @function renderPaginatedList
68
- * @template T
69
- * @param {DataviewInlineApi} dv - The DataviewInlineApi instance.
70
- * @param {ArrayOrDataArray<T>} rows - The list of items to paginate.
71
- * @param {number[]} [itemsPerPageOptions=[10, 20, 50, 100]] - Options for items per page.
72
- * @returns {Promise<void>} A promise that resolves when the list is rendered.
83
+ * Options for rendering a paginated list using the Dataview API.
73
84
  */
74
- export declare function renderPaginatedList<T>({ dv, rows, itemsPerPageOptions }: {
85
+ type RenderPaginatedListOptions<T> = {
86
+ /**
87
+ * The DataviewInlineApi instance.
88
+ */
75
89
  dv: DataviewInlineApi;
90
+ /**
91
+ * The list of items to paginate.
92
+ */
76
93
  rows: ArrayOrDataArray<T>;
94
+ /**
95
+ * Options for items per page. Defaults to `[10, 20, 50, 100]`.
96
+ */
77
97
  itemsPerPageOptions?: number[];
78
- }): Promise<void>;
98
+ };
79
99
  /**
80
- * Renders a paginated table using the provided DataviewInlineApi instance.
100
+ * Renders a paginated list using the provided DataviewInlineApi instance.
101
+ *
102
+ * @typeParam T - The type of items in the list.
103
+ *
104
+ * @param options - The options for rendering the paginated list.
81
105
  *
82
- * @async
83
- * @function renderPaginatedTable
84
- * @template T
85
- * @param {DataviewInlineApi} dv - The DataviewInlineApi instance.
86
- * @param {string[]} headers - The headers of the table.
87
- * @param {ArrayOrDataArray<T>} rows - The rows of the table to paginate.
88
- * @param {number[]} [itemsPerPageOptions=[10, 20, 50, 100]] - Options for items per page.
89
- * @returns {Promise<void>} A promise that resolves when the table is rendered.
106
+ * @returns A promise that resolves when the list is rendered.
107
+ */
108
+ export declare function renderPaginatedList<T>(options: RenderPaginatedListOptions<T>): Promise<void>;
109
+ /**
110
+ * Options for rendering a paginated table using the Dataview API.
90
111
  */
91
- export declare function renderPaginatedTable<T extends unknown[]>({ dv, headers, rows, itemsPerPageOptions }: {
112
+ type RenderPaginatedTableOptions<T> = {
113
+ /**
114
+ * The DataviewInlineApi instance.
115
+ */
92
116
  dv: DataviewInlineApi;
117
+ /**
118
+ * The headers of the table.
119
+ */
93
120
  headers: string[];
121
+ /**
122
+ * The rows of the table to paginate.
123
+ */
94
124
  rows: ArrayOrDataArray<T>;
125
+ /**
126
+ * Options for items per page. Defaults to `[10, 20, 50, 100]`.
127
+ */
95
128
  itemsPerPageOptions?: number[];
96
- }): Promise<void>;
129
+ };
130
+ /**
131
+ * Renders a paginated table using the provided DataviewInlineApi instance.
132
+ *
133
+ * @typeParam T - The type of items in the table rows.
134
+ *
135
+ * @param options - The options for rendering the paginated table.
136
+ *
137
+ * @returns A promise that resolves when the table is rendered.
138
+ */
139
+ export declare function renderPaginatedTable<T extends unknown[]>(options: RenderPaginatedTableOptions<T>): Promise<void>;
97
140
  /**
98
141
  * Renders the content using the provided renderer function in a temporary container,
99
142
  * and then returns the container.
100
143
  *
101
- * @async
102
- * @function getRenderedContainer
103
- * @param {DataviewInlineApi} dv - The DataviewInlineApi instance.
104
- * @param {() => MaybePromise<void>} renderer - The function responsible for rendering the content.
105
- * @returns {Promise<HTMLParagraphElement>} A promise that resolves to the HTML paragraph element
144
+ * @param dv - The DataviewInlineApi instance.
145
+ * @param renderer - The function responsible for rendering the content.
146
+ * @returns A promise that resolves to the HTML paragraph element
106
147
  * that was used as the temporary container.
107
148
  */
108
149
  export declare function getRenderedContainer(dv: DataviewInlineApi, renderer: () => MaybePromise<void>): Promise<HTMLParagraphElement>;
109
150
  /**
110
- * Renders an iframe in the Dataview container with the specified relative path, width, and height.
111
- *
112
- * @function renderIframe
113
- * @param {DataviewInlineApi} dv - The DataviewInlineApi instance.
114
- * @param {PathOrFile} relativePath - The relative path to the resource to be displayed in the iframe.
115
- * @param {string} [width="100%"] - The width of the iframe. Defaults to "100%".
116
- * @param {string} [height="600px"] - The height of the iframe. Defaults to "600px".
117
- * @returns {void} This function does not return a value.
151
+ * Options for rendering an iframe in the Dataview container.
118
152
  */
119
- export declare function renderIframe({ dv, relativePathOrFile, width, height }: {
153
+ type RenderIframeOptions = {
154
+ /**
155
+ * The DataviewInlineApi instance.
156
+ */
120
157
  dv: DataviewInlineApi;
158
+ /**
159
+ * The relative path to the resource to be displayed in the iframe.
160
+ */
121
161
  relativePathOrFile: PathOrFile;
162
+ /**
163
+ * The width of the iframe.
164
+ */
122
165
  width: string;
166
+ /**
167
+ * The height of the iframe.
168
+ */
123
169
  height: string;
124
- }): void;
170
+ };
171
+ /**
172
+ * Renders an iframe in the Dataview container with the specified relative path, width, and height.
173
+ *
174
+ * @param options - The options for rendering the iframe.
175
+ *
176
+ * @returns This function does not return a value.
177
+ */
178
+ export declare function renderIframe(options: RenderIframeOptions): void;
125
179
  /**
126
180
  * Inserts a code block into the specified Dataview instance using the provided language and code.
127
181
  *
128
- * @function insertCodeBlock
129
- * @param {DataviewInlineApi} dv - The DataviewInlineApi instance to insert the code block into.
130
- * @param {string} language - The language identifier for the code block.
131
- * @param {string} code - The code content to be inserted into the code block.
132
- * @returns {void} This function does not return a value.
182
+ * @param dv - The DataviewInlineApi instance to insert the code block into.
183
+ * @param language - The language identifier for the code block.
184
+ * @param code - The code content to be inserted into the code block.
185
+ * @returns This function does not return a value.
133
186
  */
134
187
  export declare function insertCodeBlock(dv: DataviewInlineApi, language: string, code: string): void;