obsidian-dev-utils 1.7.7 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +10 -0
- package/dist/lib/@types/compare-versions.d.ts +37 -0
- package/dist/lib/JSON.cjs +2 -5
- package/dist/lib/Npm.cjs +1 -1
- package/dist/lib/Npm.d.ts +1 -0
- package/dist/lib/Root.cjs +4 -13
- package/dist/lib/Root.d.ts +0 -9
- package/dist/lib/_dependencies.cjs +49643 -0
- package/dist/lib/_dependencies.d.ts +6 -0
- package/dist/lib/bin/ESLint/@types/@stylistic__eslint-plugin.d.ts +16 -0
- package/dist/lib/bin/ESLint/@types/@typescript-eslint__eslint-plugin.d.ts +27 -0
- package/dist/lib/bin/ESLint/@types/@typescript-eslint__parser.d.ts +16 -0
- package/dist/lib/bin/ESLint/@types/eslint-plugin-deprecation.d.ts +17 -0
- package/dist/lib/bin/ESLint/@types/eslint-plugin-import.d.ts +15 -0
- package/dist/lib/bin/ESLint/@types/eslint-plugin-modules-newlines.d.ts +15 -0
- package/dist/lib/bin/ESLint/@types/globals.d.ts +22 -0
- package/dist/lib/bin/ESLint/ESLint.cjs +5 -6
- package/dist/lib/bin/ESLint/eslint.config.cjs +4 -2
- package/dist/lib/bin/ObsidianDevUtilsRepoPaths.cjs +2 -1
- package/dist/lib/bin/ObsidianDevUtilsRepoPaths.d.ts +2 -0
- package/dist/lib/bin/cli.cjs +2 -2
- package/dist/lib/bin/esbuild/Dependency.cjs +125 -0
- package/dist/lib/bin/esbuild/Dependency.d.ts +18 -0
- package/dist/lib/bin/esbuild/ObsidianPluginBuilder.cjs +1 -1
- package/dist/lib/bin/esbuild/index.cjs +4 -1
- package/dist/lib/bin/esbuild/index.d.ts +1 -0
- package/dist/lib/bin/esbuild/renameToCjsPlugin.cjs +15 -3
- package/dist/lib/bin/esbuild/renameToCjsPlugin.d.ts +2 -1
- package/dist/lib/bin/spellcheck.cjs +3 -4
- package/dist/lib/bin/version.cjs +13 -1
- package/dist/lib/obsidian/@types/Dataview/api/data-array.d.ts +134 -0
- package/dist/lib/obsidian/@types/Dataview/api/extensions.d.ts +15 -0
- package/dist/lib/obsidian/@types/Dataview/api/inline-api.d.ts +165 -0
- package/dist/lib/obsidian/@types/Dataview/api/plugin-api.d.ts +192 -0
- package/dist/lib/obsidian/@types/Dataview/api/result.d.ts +38 -0
- package/dist/lib/obsidian/@types/Dataview/data-import/common.d.ts +3 -0
- package/dist/lib/obsidian/@types/Dataview/data-import/csv.d.ts +3 -0
- package/dist/lib/obsidian/@types/Dataview/data-import/inline-field.d.ts +42 -0
- package/dist/lib/obsidian/@types/Dataview/data-import/markdown-file.d.ts +36 -0
- package/dist/lib/obsidian/@types/Dataview/data-import/persister.d.ts +32 -0
- package/dist/lib/obsidian/@types/Dataview/data-import/web-worker/import-entry.d.ts +1 -0
- package/dist/lib/obsidian/@types/Dataview/data-import/web-worker/import-impl.d.ts +3 -0
- package/dist/lib/obsidian/@types/Dataview/data-import/web-worker/import-manager.d.ts +32 -0
- package/dist/lib/obsidian/@types/Dataview/data-index/index.d.ts +179 -0
- package/dist/lib/obsidian/@types/Dataview/data-index/resolver.d.ts +20 -0
- package/dist/lib/obsidian/@types/Dataview/data-index/source.d.ts +71 -0
- package/dist/lib/obsidian/@types/Dataview/data-model/markdown.d.ts +109 -0
- package/dist/lib/obsidian/@types/Dataview/data-model/serialized/markdown.d.ts +103 -0
- package/dist/lib/obsidian/@types/Dataview/data-model/transferable.d.ts +7 -0
- package/dist/lib/obsidian/@types/Dataview/data-model/value.d.ts +148 -0
- package/dist/lib/obsidian/@types/Dataview/expression/binaryop.d.ts +29 -0
- package/dist/lib/obsidian/@types/Dataview/expression/context.d.ts +43 -0
- package/dist/lib/obsidian/@types/Dataview/expression/field.d.ts +82 -0
- package/dist/lib/obsidian/@types/Dataview/expression/functions.d.ts +137 -0
- package/dist/lib/obsidian/@types/Dataview/expression/parse.d.ts +143 -0
- package/dist/lib/obsidian/@types/Dataview/index.d.ts +21 -0
- package/dist/lib/obsidian/@types/Dataview/main.d.ts +44 -0
- package/dist/lib/obsidian/@types/Dataview/query/engine.d.ts +87 -0
- package/dist/lib/obsidian/@types/Dataview/query/parse.d.ts +31 -0
- package/dist/lib/obsidian/@types/Dataview/query/query.d.ts +95 -0
- package/dist/lib/obsidian/@types/Dataview/settings.d.ts +60 -0
- package/dist/lib/obsidian/@types/Dataview/typings/obsidian-ex.d.ts +28 -0
- package/dist/lib/obsidian/@types/Dataview/typings/workers.d.ts +4 -0
- package/dist/lib/obsidian/@types/Dataview/ui/export/markdown.d.ts +9 -0
- package/dist/lib/obsidian/@types/Dataview/ui/lp-render.d.ts +24 -0
- package/dist/lib/obsidian/@types/Dataview/ui/markdown.d.ts +73 -0
- package/dist/lib/obsidian/@types/Dataview/ui/refreshable-view.d.ts +15 -0
- package/dist/lib/obsidian/@types/Dataview/ui/render.d.ts +12 -0
- package/dist/lib/obsidian/@types/Dataview/ui/views/calendar-view.d.ts +17 -0
- package/dist/lib/obsidian/@types/Dataview/ui/views/inline-field-live-preview.d.ts +29 -0
- package/dist/lib/obsidian/@types/Dataview/ui/views/inline-view.d.ts +19 -0
- package/dist/lib/obsidian/@types/Dataview/ui/views/js-view.d.ts +23 -0
- package/dist/lib/obsidian/@types/Dataview/ui/views/list-view.d.ts +25 -0
- package/dist/lib/obsidian/@types/Dataview/ui/views/table-view.d.ts +28 -0
- package/dist/lib/obsidian/@types/Dataview/ui/views/task-view.d.ts +39 -0
- package/dist/lib/obsidian/@types/Dataview/util/hash.d.ts +1 -0
- package/dist/lib/obsidian/@types/Dataview/util/locale.d.ts +2 -0
- package/dist/lib/obsidian/@types/Dataview/util/media.d.ts +6 -0
- package/dist/lib/obsidian/@types/Dataview/util/normalize.d.ts +41 -0
- package/dist/lib/obsidian/Dataview.cjs +1 -1
- package/dist/lib/obsidian/Dataview.d.ts +2 -2
- package/package.json +156 -14
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { Decoration, DecorationSet, EditorView, ViewPlugin, ViewUpdate } from "@codemirror/view";
|
|
2
|
+
import type { EditorSelection, Range } from "@codemirror/state";
|
|
3
|
+
import type { DataviewSettings } from "../settings.d.ts";
|
|
4
|
+
import type { FullIndex } from "../data-index/index.d.ts";
|
|
5
|
+
import type { App, Component, TFile } from "obsidian";
|
|
6
|
+
import type { DataviewApi } from "../api/plugin-api.d.ts";
|
|
7
|
+
import type { SyntaxNode } from "@lezer/common";
|
|
8
|
+
export declare function selectionAndRangeOverlap(selection: EditorSelection, rangeFrom: number, rangeTo: number): boolean;
|
|
9
|
+
export declare function inlinePlugin(app: App, index: FullIndex, settings: DataviewSettings, api: DataviewApi): ViewPlugin<{
|
|
10
|
+
decorations: DecorationSet;
|
|
11
|
+
component: Component;
|
|
12
|
+
update(update: ViewUpdate): void;
|
|
13
|
+
updateTree(view: EditorView): void;
|
|
14
|
+
removeDeco(node: SyntaxNode): void;
|
|
15
|
+
addDeco(node: SyntaxNode, view: EditorView): void;
|
|
16
|
+
renderNode(view: EditorView, node: SyntaxNode): {
|
|
17
|
+
render: boolean;
|
|
18
|
+
isQuery: boolean;
|
|
19
|
+
};
|
|
20
|
+
isInlineQuery(view: EditorView, start: number, end: number): boolean;
|
|
21
|
+
inlineRender(view: EditorView): DecorationSet | undefined;
|
|
22
|
+
renderWidget(node: SyntaxNode, view: EditorView, currentFile: TFile): Range<Decoration> | undefined;
|
|
23
|
+
destroy(): void;
|
|
24
|
+
}>;
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/** Provides core preact / rendering utilities for all view types. */
|
|
2
|
+
import type { App, MarkdownRenderChild } from "obsidian";
|
|
3
|
+
import type { h, ComponentChildren } from "preact";
|
|
4
|
+
import type { Component } from "obsidian";
|
|
5
|
+
import type { DataviewSettings } from "../settings.d.ts";
|
|
6
|
+
import type { FullIndex } from "../data-index/index.d.ts";
|
|
7
|
+
import type { Literal } from "../data-model/value.d.ts";
|
|
8
|
+
import React from "preact/compat";
|
|
9
|
+
export type MarkdownProps = {
|
|
10
|
+
contents: string;
|
|
11
|
+
sourcePath: string;
|
|
12
|
+
};
|
|
13
|
+
export type MarkdownContext = {
|
|
14
|
+
component: Component;
|
|
15
|
+
};
|
|
16
|
+
/** Context need to create dataviews. */
|
|
17
|
+
export type DataviewInit = {
|
|
18
|
+
app: App;
|
|
19
|
+
index: FullIndex;
|
|
20
|
+
settings: DataviewSettings;
|
|
21
|
+
container: HTMLElement;
|
|
22
|
+
};
|
|
23
|
+
/** Shared context for dataview views and objects. */
|
|
24
|
+
export type DataviewContexts = DataviewInit & {
|
|
25
|
+
component: Component;
|
|
26
|
+
};
|
|
27
|
+
export declare const DataviewContext: React.Context<DataviewContexts>;
|
|
28
|
+
/** Hacky preact component which wraps Obsidian's markdown renderer into a neat component. */
|
|
29
|
+
export declare function RawMarkdown({ content, sourcePath, inline, style, cls, onClick, }: {
|
|
30
|
+
content: string;
|
|
31
|
+
sourcePath: string;
|
|
32
|
+
inline?: boolean;
|
|
33
|
+
style?: string;
|
|
34
|
+
cls?: string;
|
|
35
|
+
onClick?: (e: preact.JSX.TargetedMouseEvent<HTMLElement>) => void;
|
|
36
|
+
}): h.JSX.Element;
|
|
37
|
+
/** Hacky preact component which wraps Obsidian's markdown renderer into a neat component. */
|
|
38
|
+
export declare const Markdown: typeof RawMarkdown;
|
|
39
|
+
/** Embeds an HTML element in the react DOM. */
|
|
40
|
+
export declare function RawEmbedHtml({ element }: {
|
|
41
|
+
element: HTMLElement;
|
|
42
|
+
}): h.JSX.Element;
|
|
43
|
+
/** Embeds an HTML element in the react DOM. */
|
|
44
|
+
export declare const EmbedHtml: typeof RawEmbedHtml;
|
|
45
|
+
/** Intelligently render an arbitrary literal value. */
|
|
46
|
+
export declare function RawLit({ value, sourcePath, inline, depth, }: {
|
|
47
|
+
value: Literal | undefined;
|
|
48
|
+
sourcePath: string;
|
|
49
|
+
inline?: boolean;
|
|
50
|
+
depth?: number;
|
|
51
|
+
}): h.JSX.Element;
|
|
52
|
+
/** Intelligently render an arbitrary literal value. */
|
|
53
|
+
export declare const Lit: typeof RawLit;
|
|
54
|
+
/** Render a simple nice looking error box in a code style. */
|
|
55
|
+
export declare function ErrorPre(props: {
|
|
56
|
+
children: ComponentChildren;
|
|
57
|
+
}, {}: {}): h.JSX.Element;
|
|
58
|
+
/** Render a pretty centered error message in a box. */
|
|
59
|
+
export declare function ErrorMessage({ message }: {
|
|
60
|
+
message: string;
|
|
61
|
+
}): h.JSX.Element;
|
|
62
|
+
/**
|
|
63
|
+
* Complex convenience hook which calls `compute` every time the index updates, updating the current state.
|
|
64
|
+
*/
|
|
65
|
+
export declare function useIndexBackedState<T>(container: HTMLElement, app: App, settings: DataviewSettings, index: FullIndex, initial: T, compute: () => Promise<T>): T;
|
|
66
|
+
/** A trivial wrapper which allows a react component to live for the duration of a `MarkdownRenderChild`. */
|
|
67
|
+
export declare class ReactRenderer extends MarkdownRenderChild {
|
|
68
|
+
init: DataviewInit;
|
|
69
|
+
element: h.JSX.Element;
|
|
70
|
+
constructor(init: DataviewInit, element: h.JSX.Element);
|
|
71
|
+
onload(): void;
|
|
72
|
+
onunload(): void;
|
|
73
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { FullIndex } from "../data-index/index.d.ts";
|
|
2
|
+
import type { App, MarkdownRenderChild } from "obsidian";
|
|
3
|
+
import type { DataviewSettings } from "../settings.d.ts";
|
|
4
|
+
/** Generic code for embedded Dataviews. */
|
|
5
|
+
export declare abstract class DataviewRefreshableRenderer extends MarkdownRenderChild {
|
|
6
|
+
container: HTMLElement;
|
|
7
|
+
index: FullIndex;
|
|
8
|
+
app: App;
|
|
9
|
+
settings: DataviewSettings;
|
|
10
|
+
private lastReload;
|
|
11
|
+
constructor(container: HTMLElement, index: FullIndex, app: App, settings: DataviewSettings);
|
|
12
|
+
abstract render(): Promise<void>;
|
|
13
|
+
onload(): void;
|
|
14
|
+
maybeRefresh: () => void;
|
|
15
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { App, Component } from "obsidian";
|
|
2
|
+
import type { QuerySettings } from "../settings.d.ts";
|
|
3
|
+
import type { Literal } from "../data-model/value.d.ts";
|
|
4
|
+
/** Render simple fields compactly, removing wrapping content like paragraph and span. */
|
|
5
|
+
export declare function renderCompactMarkdown(app: App, markdown: string, container: HTMLElement, sourcePath: string, component: Component, isInlineFieldLivePreview?: boolean): Promise<void>;
|
|
6
|
+
/** Render a pre block with an error in it; returns the element to allow for dynamic updating. */
|
|
7
|
+
export declare function renderErrorPre(container: HTMLElement, error: string): HTMLElement;
|
|
8
|
+
/** Render a static codeblock. */
|
|
9
|
+
export declare function renderCodeBlock(container: HTMLElement, source: string, language?: string): HTMLElement;
|
|
10
|
+
export type ValueRenderContext = "root" | "list";
|
|
11
|
+
/** Prettily render a value into a container with the given settings. */
|
|
12
|
+
export declare function renderValue(app: App, field: Literal, container: HTMLElement, originFile: string, component: Component, settings: QuerySettings, expandList?: boolean, context?: ValueRenderContext, depth?: number, isInlineFieldLivePreview?: boolean): Promise<void>;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { FullIndex } from "../../data-index/index.d.ts";
|
|
2
|
+
import type { App } from "obsidian";
|
|
3
|
+
import type { Query } from "../../query/query.d.ts";
|
|
4
|
+
import type { DataviewSettings } from "../../settings.d.ts";
|
|
5
|
+
import type { DataviewRefreshableRenderer } from "../../ui/refreshable-view.d.ts";
|
|
6
|
+
export declare class DataviewCalendarRenderer extends DataviewRefreshableRenderer {
|
|
7
|
+
query: Query;
|
|
8
|
+
container: HTMLElement;
|
|
9
|
+
index: FullIndex;
|
|
10
|
+
origin: string;
|
|
11
|
+
settings: DataviewSettings;
|
|
12
|
+
app: App;
|
|
13
|
+
private calendar;
|
|
14
|
+
constructor(query: Query, container: HTMLElement, index: FullIndex, origin: string, settings: DataviewSettings, app: App);
|
|
15
|
+
render(): Promise<void>;
|
|
16
|
+
onClose(): Promise<void>;
|
|
17
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { App, Component, TFile } from "obsidian";
|
|
2
|
+
import type { RangeSet, RangeValue, StateField } from "@codemirror/state";
|
|
3
|
+
import type { DecorationSet, EditorView, ViewPlugin, ViewUpdate } from "@codemirror/view";
|
|
4
|
+
import type { InlineField } from "../../data-import/inline-field.d.ts";
|
|
5
|
+
import type { DataviewSettings } from "../../settings.d.ts";
|
|
6
|
+
declare class InlineFieldValue extends RangeValue {
|
|
7
|
+
field: InlineField;
|
|
8
|
+
constructor(field: InlineField);
|
|
9
|
+
eq(other: InlineFieldValue): boolean;
|
|
10
|
+
}
|
|
11
|
+
/** A state field that stores the inline fields and their positions as a range set. */
|
|
12
|
+
export declare const inlineFieldsField: StateField<RangeSet<InlineFieldValue>>;
|
|
13
|
+
/** Create a view plugin that renders inline fields in live preview just as in the reading view. */
|
|
14
|
+
export declare const replaceInlineFieldsInLivePreview: (app: App, settings: DataviewSettings) => ViewPlugin<{
|
|
15
|
+
decorations: DecorationSet;
|
|
16
|
+
component: Component;
|
|
17
|
+
destroy(): void;
|
|
18
|
+
buildDecorations(view: EditorView): DecorationSet;
|
|
19
|
+
update(update: ViewUpdate): void;
|
|
20
|
+
updateDecorations(view: EditorView): void;
|
|
21
|
+
removeDeco(start: number, end: number): void;
|
|
22
|
+
addDeco(start: number, end: number, field: InlineField, file: TFile, view: EditorView): void;
|
|
23
|
+
}>;
|
|
24
|
+
/**
|
|
25
|
+
* A state effect that represents the workspace's layout change.
|
|
26
|
+
* Mainly intended to detect when the user switches between live preview and source mode.
|
|
27
|
+
*/
|
|
28
|
+
export declare const workspaceLayoutChangeEffect: import("@codemirror/state").StateEffectType<null>;
|
|
29
|
+
export {};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { FullIndex } from "../../data-index/index.d.ts";
|
|
2
|
+
import type { Field } from "../../expression/field.d.ts";
|
|
3
|
+
import type { App } from "obsidian";
|
|
4
|
+
import type { DataviewSettings } from "../../settings.d.ts";
|
|
5
|
+
import type { DataviewRefreshableRenderer } from "../../ui/refreshable-view.d.ts";
|
|
6
|
+
/** Refreshable renderer which renders inline instead of in a div. */
|
|
7
|
+
export declare class DataviewInlineRenderer extends DataviewRefreshableRenderer {
|
|
8
|
+
field: Field;
|
|
9
|
+
fieldText: string;
|
|
10
|
+
container: HTMLElement;
|
|
11
|
+
target: HTMLElement;
|
|
12
|
+
index: FullIndex;
|
|
13
|
+
origin: string;
|
|
14
|
+
settings: DataviewSettings;
|
|
15
|
+
app: App;
|
|
16
|
+
errorbox?: HTMLElement;
|
|
17
|
+
constructor(field: Field, fieldText: string, container: HTMLElement, target: HTMLElement, index: FullIndex, origin: string, settings: DataviewSettings, app: App);
|
|
18
|
+
render(): Promise<void>;
|
|
19
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { DataviewRefreshableRenderer } from "../../ui/refreshable-view.d.ts";
|
|
2
|
+
import type { DataviewApi } from "../../api/plugin-api.d.ts";
|
|
3
|
+
export declare class DataviewJSRenderer extends DataviewRefreshableRenderer {
|
|
4
|
+
api: DataviewApi;
|
|
5
|
+
script: string;
|
|
6
|
+
container: HTMLElement;
|
|
7
|
+
origin: string;
|
|
8
|
+
static PREAMBLE: string;
|
|
9
|
+
constructor(api: DataviewApi, script: string, container: HTMLElement, origin: string);
|
|
10
|
+
render(): Promise<void>;
|
|
11
|
+
}
|
|
12
|
+
/** Inline JS renderer accessible using '=$' by default. */
|
|
13
|
+
export declare class DataviewInlineJSRenderer extends DataviewRefreshableRenderer {
|
|
14
|
+
api: DataviewApi;
|
|
15
|
+
script: string;
|
|
16
|
+
container: HTMLElement;
|
|
17
|
+
target: HTMLElement;
|
|
18
|
+
origin: string;
|
|
19
|
+
static PREAMBLE: string;
|
|
20
|
+
errorbox?: HTMLElement;
|
|
21
|
+
constructor(api: DataviewApi, script: string, container: HTMLElement, target: HTMLElement, origin: string);
|
|
22
|
+
render(): Promise<void>;
|
|
23
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { MarkdownRenderChild } from "obsidian";
|
|
2
|
+
import type { Query } from "../../query/query.d.ts";
|
|
3
|
+
import type { DataviewInit } from "../../ui/markdown.d.ts";
|
|
4
|
+
import type { h } from "preact";
|
|
5
|
+
import type { Literal } from "../../data-model/value.d.ts";
|
|
6
|
+
export declare function ListGrouping({ items, sourcePath }: {
|
|
7
|
+
items: Literal[];
|
|
8
|
+
sourcePath: string;
|
|
9
|
+
}): h.JSX.Element;
|
|
10
|
+
export type ListViewState = {
|
|
11
|
+
state: "loading";
|
|
12
|
+
} | {
|
|
13
|
+
state: "error";
|
|
14
|
+
error: string;
|
|
15
|
+
} | {
|
|
16
|
+
state: "ready";
|
|
17
|
+
items: Literal[];
|
|
18
|
+
};
|
|
19
|
+
/** Pure view over list elements. */
|
|
20
|
+
export declare function ListView({ query, sourcePath }: {
|
|
21
|
+
query: Query;
|
|
22
|
+
sourcePath: string;
|
|
23
|
+
}): h.JSX.Element;
|
|
24
|
+
export declare function createListView(init: DataviewInit, query: Query, sourcePath: string): MarkdownRenderChild;
|
|
25
|
+
export declare function createFixedListView(init: DataviewInit, elements: Literal[], sourcePath: string): MarkdownRenderChild;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { Literal } from "../../data-model/value.d.ts";
|
|
2
|
+
import type { Query } from "../../query/query.d.ts";
|
|
3
|
+
import type { DataviewInit } from "../../ui/markdown.d.ts";
|
|
4
|
+
import type { h } from "preact";
|
|
5
|
+
import type { MarkdownRenderChild } from "obsidian";
|
|
6
|
+
/** Simple table over headings and corresponding values. */
|
|
7
|
+
export declare function TableGrouping({ headings, values, sourcePath, }: {
|
|
8
|
+
headings: string[];
|
|
9
|
+
values: Literal[][];
|
|
10
|
+
sourcePath: string;
|
|
11
|
+
}): h.JSX.Element;
|
|
12
|
+
export type TableViewState = {
|
|
13
|
+
state: "loading";
|
|
14
|
+
} | {
|
|
15
|
+
state: "error";
|
|
16
|
+
error: string;
|
|
17
|
+
} | {
|
|
18
|
+
state: "ready";
|
|
19
|
+
headings: string[];
|
|
20
|
+
values: Literal[][];
|
|
21
|
+
};
|
|
22
|
+
/** Pure view over list elements. */
|
|
23
|
+
export declare function TableView({ query, sourcePath }: {
|
|
24
|
+
query: Query;
|
|
25
|
+
sourcePath: string;
|
|
26
|
+
}): h.JSX.Element;
|
|
27
|
+
export declare function createTableView(init: DataviewInit, query: Query, sourcePath: string): MarkdownRenderChild;
|
|
28
|
+
export declare function createFixedTableView(init: DataviewInit, headings: string[], values: Literal[][], sourcePath: string): MarkdownRenderChild;
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import type { SListItem, STask } from "../../data-model/serialized/markdown.d.ts";
|
|
2
|
+
import type { Grouping } from "../../data-model/value.d.ts";
|
|
3
|
+
import type { MarkdownRenderChild, Vault } from "obsidian";
|
|
4
|
+
import type { h } from "preact";
|
|
5
|
+
import type { Query } from "../../query/query.d.ts";
|
|
6
|
+
import type { DataviewInit } from "../../ui/markdown.d.ts";
|
|
7
|
+
export type TaskViewState = {
|
|
8
|
+
state: "loading";
|
|
9
|
+
} | {
|
|
10
|
+
state: "error";
|
|
11
|
+
error: string;
|
|
12
|
+
} | {
|
|
13
|
+
state: "ready";
|
|
14
|
+
items: Grouping<SListItem>;
|
|
15
|
+
};
|
|
16
|
+
/**
|
|
17
|
+
* Pure view over (potentially grouped) tasks and list items which allows for checking/unchecking tasks and manipulating
|
|
18
|
+
* the task view.
|
|
19
|
+
*/
|
|
20
|
+
export declare function TaskView({ query, sourcePath }: {
|
|
21
|
+
query: Query;
|
|
22
|
+
sourcePath: string;
|
|
23
|
+
}): h.JSX.Element;
|
|
24
|
+
export declare function createTaskView(init: DataviewInit, query: Query, sourcePath: string): MarkdownRenderChild;
|
|
25
|
+
export declare function createFixedTaskView(init: DataviewInit, items: Grouping<SListItem>, sourcePath: string): MarkdownRenderChild;
|
|
26
|
+
/**
|
|
27
|
+
* Removes tasks from a list if they are already present by being a child of another task. Fixes child pointers.
|
|
28
|
+
* Retains original order of input list.
|
|
29
|
+
*/
|
|
30
|
+
export declare function nestItems(raw: SListItem[]): [SListItem[], Set<string>];
|
|
31
|
+
/**
|
|
32
|
+
* Recursively removes tasks from each subgroup if they are already present by being a child of another task.
|
|
33
|
+
* Fixes child pointers. Retains original order of input list.
|
|
34
|
+
*/
|
|
35
|
+
export declare function nestGroups(raw: Grouping<SListItem>): Grouping<SListItem>;
|
|
36
|
+
/** Set the task completion key on check. */
|
|
37
|
+
export declare function setTaskCompletion(originalText: string, useEmojiShorthand: boolean, completionKey: string, completionDateFormat: string, complete: boolean): string;
|
|
38
|
+
/** Rewrite a task with the given completion status and new text. */
|
|
39
|
+
export declare function rewriteTask(vault: Vault, task: STask, desiredStatus: string, desiredText?: string): Promise<void>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function cyrb53(str: string, seed?: number): number;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { Link } from "../data-model/value.d.ts";
|
|
2
|
+
export declare const IMAGE_EXTENSIONS: Readonly<Set<string>>;
|
|
3
|
+
/** Determines if the given link points to an embedded image. */
|
|
4
|
+
export declare function isImageEmbed(link: Link): boolean;
|
|
5
|
+
/** Extract text of the form 'WxH' or 'W' from the display of a link. */
|
|
6
|
+
export declare function extractImageDimensions(link: Link): [number, number] | [number] | undefined;
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import type { DateTime, Duration } from "luxon";
|
|
2
|
+
import type { Result } from "../api/result.d.ts";
|
|
3
|
+
import type { QuerySettings } from "../settings.d.ts";
|
|
4
|
+
/** Normalize a duration to all of the proper units. */
|
|
5
|
+
export declare function normalizeDuration(dur: Duration): Duration;
|
|
6
|
+
/** Strip the time components of a date time object. */
|
|
7
|
+
export declare function stripTime(dt: DateTime): DateTime;
|
|
8
|
+
/** Try to extract a YYYYMMDD date from a string. */
|
|
9
|
+
export declare function extractDate(str: string): DateTime | undefined;
|
|
10
|
+
/** Get the folder containing the given path (i.e., like computing 'path/..'). */
|
|
11
|
+
export declare function getParentFolder(path: string): string;
|
|
12
|
+
/** Get the file name for the file referenced in the given path, by stripping the parent folders. */
|
|
13
|
+
export declare function getFileName(path: string): string;
|
|
14
|
+
/** Get the "title" for a file, by stripping other parts of the path as well as the extension. */
|
|
15
|
+
export declare function getFileTitle(path: string): string;
|
|
16
|
+
/** Get the extension of a file from the file path. */
|
|
17
|
+
export declare function getExtension(path: string): string;
|
|
18
|
+
/** Parse all subtags out of the given tag. I.e., #hello/i/am would yield [#hello/i/am, #hello/i, #hello]. */
|
|
19
|
+
export declare function extractSubtags(tag: string): string[];
|
|
20
|
+
/** Try calling the given function; on failure, return the error message. */
|
|
21
|
+
export declare function tryOrPropogate<T>(func: () => Result<T, string>): Result<T, string>;
|
|
22
|
+
/** Try asynchronously calling the given function; on failure, return the error message. */
|
|
23
|
+
export declare function asyncTryOrPropogate<T>(func: () => Promise<Result<T, string>>): Promise<Result<T, string>>;
|
|
24
|
+
/**
|
|
25
|
+
* Escape regex characters in a string.
|
|
26
|
+
* See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions.
|
|
27
|
+
*/
|
|
28
|
+
export declare function escapeRegex(str: string): string;
|
|
29
|
+
/** Convert an arbitrary variable name into something JS/query friendly. */
|
|
30
|
+
export declare function canonicalizeVarName(name: string): string;
|
|
31
|
+
/**
|
|
32
|
+
* Normalizes the text in a header to be something that is actually linkable to. This mimics
|
|
33
|
+
* how Obsidian does it's normalization, collapsing repeated spaces and stripping out control characters.
|
|
34
|
+
*/
|
|
35
|
+
export declare function normalizeHeaderForLink(header: string): string;
|
|
36
|
+
/** Render a DateTime in a minimal format to save space. */
|
|
37
|
+
export declare function renderMinimalDate(time: DateTime, settings: QuerySettings, locale: string): string;
|
|
38
|
+
/** Render a duration in a minimal format to save space. */
|
|
39
|
+
export declare function renderMinimalDuration(dur: Duration): string;
|
|
40
|
+
/** Determine if two sets are equal in contents. */
|
|
41
|
+
export declare function setsEqual<T>(first: Set<T>, second: Set<T>): boolean;
|
|
@@ -221,4 +221,4 @@ function renderIframe({
|
|
|
221
221
|
renderPaginatedList,
|
|
222
222
|
renderPaginatedTable
|
|
223
223
|
});
|
|
224
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL29ic2lkaWFuL0RhdGF2aWV3LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJ2YXIgX19pbXBvcnRfbWV0YV91cmwgPSBnbG9iYWxUaGlzW1wiaW1wb3J0Lm1ldGEudXJsXCJdID8/ICgoKT0+cmVxdWlyZShcIm5vZGU6dXJsXCIpLnBhdGhUb0ZpbGVVUkwoX19maWxlbmFtZSkpKCk7XG52YXIgX19wcm9jZXNzID0gZ2xvYmFsVGhpc1tcInByb2Nlc3NcIl0gPz8ge1xuICBcImN3ZFwiOiAoKT0+XCIvXCIsXG4gIFwiZW52XCI6IHt9LFxuICBcInBsYXRmb3JtXCI6IFwiYW5kcm9pZFwiXG59O1xuaW1wb3J0IHR5cGUgeyBEYXRhdmlld0lubGluZUFwaSBhcyBEYXRhdmlld0lubGluZUFwaU9yaWdpbmFsIH0gZnJvbSBcIm9ic2lkaWFuLWRhdGF2aWV3L2lubGluZS1hcGlcIjtcbmltcG9ydCB0eXBlIHtcbiAgRGF0YUFycmF5LFxuICBEYXRhdmlld0FwaSxcbiAgRGF0ZVRpbWUsXG4gIExpbmssXG4gIFNNYXJrZG93blBhZ2Vcbn0gZnJvbSBcIm9ic2lkaWFuLWRhdGF2aWV3XCI7XG5cbmltcG9ydCB7XG4gIGNvbnZlcnRBc3luY1RvU3luYyxcbiAgdHlwZSBNYXliZVByb21pc2Vcbn0gZnJvbSBcIi4uL0FzeW5jLnRzXCI7XG5pbXBvcnQgeyByZWxhdGl2ZVBhdGhUb1Jlc291cmNlVXJsIH0gZnJvbSBcIi4uL29ic2lkaWFuL1Jlc291cmNlVXJsLnRzXCI7XG5pbXBvcnQgeyBlcnJvclRvU3RyaW5nIH0gZnJvbSBcIi4uL0Vycm9yLnRzXCI7XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXZhclxuICB2YXIgRGF0YXZpZXdBUEk6IERhdGF2aWV3QXBpIHwgdW5kZWZpbmVkO1xufVxuXG5leHBvcnQgdHlwZSB7XG4gIERhdGVUaW1lLFxuICBMaW5rXG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIERhdGF2aWV3SW5saW5lQXBpPEN1c3RvbVBhZ2UgPSBTTWFya2Rvd25QYWdlPiBleHRlbmRzIERhdGF2aWV3SW5saW5lQXBpT3JpZ2luYWwge1xuICBjdXJyZW50OiAoKSA9PiBQYWdlPEN1c3RvbVBhZ2U+O1xuICBhcnJheTxUPihhcnI6IFRbXSk6IERhdGFBcnJheTxUPjtcbiAgcGFnZXMocXVlcnk/OiBzdHJpbmcpOiBEYXRhQXJyYXk8UGFnZTxDdXN0b21QYWdlPj47XG4gIHBhcmFncmFwaCh0ZXh0OiB1bmtub3duLCBvcHRpb25zPzogRG9tRWxlbWVudEluZm8gJiB7IGNvbnRhaW5lcj86IEhUTUxFbGVtZW50IH0pOiBIVE1MUGFyYWdyYXBoRWxlbWVudDtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlbG9hZEN1cnJlbnRGaWxlQ2FjaGUoZHY6IERhdGF2aWV3SW5saW5lQXBpKTogUHJvbWlzZTx2b2lkPiB7XG4gIGF3YWl0IERhdGF2aWV3QVBJPy5pbmRleC5yZWxvYWQoZHYuYXBwLnZhdWx0LmdldEZpbGVCeVBhdGgoZHYuY3VycmVudCgpLmZpbGUucGF0aCkhKTtcbn1cblxuZXhwb3J0IHR5cGUgUGFnZTxUID0gU01hcmtkb3duUGFnZT4gPSBTTWFya2Rvd25QYWdlICYgVDtcblxudHlwZSBQYWdlRmlsZSA9IFBhZ2VbXCJmaWxlXCJdO1xuZXhwb3J0IHR5cGUgUGFnZUZpbGVzID0gRGF0YUFycmF5PFBhZ2VGaWxlPiB8IFBhZ2VGaWxlW107XG5cbmNvbnN0IHBhZ2luYXRpb25Dc3MgPSBgXG4ucGFnaW5hdGlvbiAucGFnZS1saW5rLmRpc2FibGVkIHtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIGNvbG9yOiBncmF5O1xufVxuXG4ucGFnaW5hdGlvbiAucGFnZS1saW5rIHtcbiAgbWFyZ2luOiAwIDVweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGNvbG9yOiBibHVlO1xufVxuXG4ucGFnaW5hdGlvbiAucGFnZS1saW5rOmhvdmVyOm5vdCguZGlzYWJsZWQpIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG59XG4ucGFnaW5hdGlvbiAucGFnZS1saW5rLmN1cnJlbnQge1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG59XG5cbi5wYWdpbmF0aW9uIHNlbGVjdCxcbi5wYWdpbmF0aW9uIGlucHV0IHtcbiAgbWFyZ2luOiAwIDVweDtcbn1cbmA7XG5cbnR5cGUgQXJyYXlPckRhdGFBcnJheTxUPiA9IFRbXSB8IERhdGFBcnJheTxUPjtcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlbmRlclBhZ2luYXRlZExpc3Q8VD4oe1xuICBkdixcbiAgcm93cyxcbiAgaXRlbXNQZXJQYWdlT3B0aW9ucyA9IFsxMCwgMjAsIDUwLCAxMDBdXG59OiB7XG4gIGR2OiBEYXRhdmlld0lubGluZUFwaSxcbiAgcm93czogQXJyYXlPckRhdGFBcnJheTxUPixcbiAgaXRlbXNQZXJQYWdlT3B0aW9ucz86IG51bWJlcltdXG59KTogUHJvbWlzZTx2b2lkPiB7XG4gIGF3YWl0IHJlbmRlclBhZ2luYXRlZCh7XG4gICAgZHYsXG4gICAgcm93cyxcbiAgICBpdGVtc1BlclBhZ2VPcHRpb25zLFxuICAgIHJlbmRlcmVyOiBhc3luYyAocm93czogQXJyYXlPckRhdGFBcnJheTxUPik6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgICAgYXdhaXQgZHYubGlzdChyb3dzKTtcbiAgICB9XG4gIH0pO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcmVuZGVyUGFnaW5hdGVkVGFibGU8VCBleHRlbmRzIHVua25vd25bXT4oe1xuICBkdixcbiAgaGVhZGVycyxcbiAgcm93cyxcbiAgaXRlbXNQZXJQYWdlT3B0aW9ucyA9IFsxMCwgMjAsIDUwLCAxMDBdXG59OiB7XG4gIGR2OiBEYXRhdmlld0lubGluZUFwaSxcbiAgaGVhZGVyczogc3RyaW5nW10sXG4gIHJvd3M6IEFycmF5T3JEYXRhQXJyYXk8VD4sXG4gIGl0ZW1zUGVyUGFnZU9wdGlvbnM/OiBudW1iZXJbXVxufSk6IFByb21pc2U8dm9pZD4ge1xuICBhd2FpdCByZW5kZXJQYWdpbmF0ZWQoe1xuICAgIGR2LFxuICAgIHJvd3MsXG4gICAgaXRlbXNQZXJQYWdlT3B0aW9ucyxcbiAgICByZW5kZXJlcjogYXN5bmMgKHJvd3M6IEFycmF5T3JEYXRhQXJyYXk8VD4pOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICAgIGF3YWl0IGR2LnRhYmxlKGhlYWRlcnMsIHJvd3MpO1xuICAgIH1cbiAgfSk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHJlbmRlclBhZ2luYXRlZDxUPih7XG4gIGR2LFxuICByb3dzLFxuICBpdGVtc1BlclBhZ2VPcHRpb25zID0gWzEwLCAyMCwgNTAsIDEwMF0sXG4gIHJlbmRlcmVyXG59OiB7XG4gIGR2OiBEYXRhdmlld0lubGluZUFwaSxcbiAgcm93czogQXJyYXlPckRhdGFBcnJheTxUPixcbiAgaXRlbXNQZXJQYWdlT3B0aW9uczogbnVtYmVyW10sXG4gIHJlbmRlcmVyOiAocm93czogQXJyYXlPckRhdGFBcnJheTxUPikgPT4gTWF5YmVQcm9taXNlPHZvaWQ+XG59KTogUHJvbWlzZTx2b2lkPiB7XG4gIGlmIChyb3dzLmxlbmd0aCA9PT0gMCkge1xuICAgIGR2LnBhcmFncmFwaChcIk5vIGl0ZW1zIGZvdW5kXCIpO1xuICAgIHJldHVybjtcbiAgfVxuICBjb25zdCBjb250YWluZXIgPSBkdi5jb250YWluZXI7XG4gIGxldCBpdGVtc1BlclBhZ2UgPSBpdGVtc1BlclBhZ2VPcHRpb25zWzBdITtcbiAgbGV0IHRvdGFsUGFnZXMgPSBNYXRoLmNlaWwocm93cy5sZW5ndGggLyBpdGVtc1BlclBhZ2UpO1xuICBhd2FpdCByZW5kZXJQYWdlKDEpO1xuXG4gIGZ1bmN0aW9uIGNyZWF0ZVBhZ2luYXRpb25Db250cm9scyhwYWdlTnVtYmVyOiBudW1iZXIpOiB2b2lkIHtcbiAgICBjb25zdCBwYWdpbmF0aW9uRGl2ID0gY29udGFpbmVyLmNyZWF0ZUVsKFwiZGl2XCIsIHsgY2xzOiBcInBhZ2luYXRpb25cIiB9KTtcbiAgICBjb25zdCBwYWdpbmF0aW9uUm93MURpdiA9IHBhZ2luYXRpb25EaXYuY3JlYXRlRGl2KCk7XG5cbiAgICBjcmVhdGVQYWdlTGluayhcIkZpcnN0XCIsIDEsIHBhZ2VOdW1iZXIgPT09IDEpO1xuICAgIGNyZWF0ZVBhZ2VMaW5rKFwiUHJldlwiLCBwYWdlTnVtYmVyIC0gMSwgcGFnZU51bWJlciA9PT0gMSk7XG5cbiAgICBpZiAocGFnZU51bWJlciA+IDMpIHtcbiAgICAgIHBhZ2luYXRpb25Sb3cxRGl2LmNyZWF0ZUVsKFwic3BhblwiLCB7IHRleHQ6IFwiLi4uXCIgfSk7XG4gICAgfVxuXG4gICAgZm9yIChsZXQgaSA9IE1hdGgubWF4KDEsIHBhZ2VOdW1iZXIgLSAyKTsgaSA8PSBNYXRoLm1pbih0b3RhbFBhZ2VzLCBwYWdlTnVtYmVyICsgMik7IGkrKykge1xuICAgICAgY29uc3QgcGFnZUxpbmsgPSBjcmVhdGVQYWdlTGluayhpLnRvU3RyaW5nKCksIGksIGkgPT09IHBhZ2VOdW1iZXIpO1xuICAgICAgaWYgKGkgPT09IHBhZ2VOdW1iZXIpIHtcbiAgICAgICAgcGFnZUxpbmsuYWRkQ2xhc3MoXCJjdXJyZW50XCIpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChwYWdlTnVtYmVyIDwgdG90YWxQYWdlcyAtIDIpIHtcbiAgICAgIHBhZ2luYXRpb25Sb3cxRGl2LmNyZWF0ZUVsKFwic3BhblwiLCB7IHRleHQ6IFwiLi4uXCIgfSk7XG4gICAgfVxuXG4gICAgY3JlYXRlUGFnZUxpbmsoXCJOZXh0XCIsIHBhZ2VOdW1iZXIgKyAxLCBwYWdlTnVtYmVyID09PSB0b3RhbFBhZ2VzKTtcbiAgICBjcmVhdGVQYWdlTGluayhcIkxhc3RcIiwgdG90YWxQYWdlcywgcGFnZU51bWJlciA9PT0gdG90YWxQYWdlcyk7XG5cbiAgICBjb25zdCBwYWdpbmF0aW9uUm93MkRpdiA9IHBhZ2luYXRpb25EaXYuY3JlYXRlRGl2KCk7XG5cbiAgICBwYWdpbmF0aW9uUm93MkRpdi5jcmVhdGVFbChcInNwYW5cIiwgeyB0ZXh0OiBcIiBJdGVtcyBwZXIgcGFnZTogXCIgfSk7XG5cbiAgICBjb25zdCBpdGVtc1BlclBhZ2VTZWxlY3QgPSBwYWdpbmF0aW9uUm93MkRpdi5jcmVhdGVFbChcInNlbGVjdFwiKTtcbiAgICBpdGVtc1BlclBhZ2VPcHRpb25zLmZvckVhY2goKG9wdGlvbjogbnVtYmVyKTogdm9pZCA9PiB7XG4gICAgICBpdGVtc1BlclBhZ2VTZWxlY3QuY3JlYXRlRWwoXCJvcHRpb25cIiwgeyB0ZXh0OiBvcHRpb24udG9TdHJpbmcoKSwgdmFsdWU6IG9wdGlvbi50b1N0cmluZygpIH0pO1xuICAgIH0pO1xuICAgIGl0ZW1zUGVyUGFnZVNlbGVjdC52YWx1ZSA9IGl0ZW1zUGVyUGFnZS50b1N0cmluZygpO1xuICAgIGl0ZW1zUGVyUGFnZVNlbGVjdC5hZGRFdmVudExpc3RlbmVyKFwiY2hhbmdlXCIsIGNvbnZlcnRBc3luY1RvU3luYyhhc3luYyAoKTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gICAgICBpdGVtc1BlclBhZ2UgPSBwYXJzZUludChpdGVtc1BlclBhZ2VTZWxlY3QudmFsdWUpO1xuICAgICAgdG90YWxQYWdlcyA9IE1hdGguY2VpbChyb3dzLmxlbmd0aCAvIGl0ZW1zUGVyUGFnZSk7XG4gICAgICBhd2FpdCByZW5kZXJQYWdlKDEpO1xuICAgIH0pKTtcblxuICAgIHBhZ2luYXRpb25Sb3cyRGl2LmNyZWF0ZUVsKFwic3BhblwiLCB7IHRleHQ6IFwiICBKdW1wIHRvIHBhZ2U6IFwiIH0pO1xuXG4gICAgY29uc3QganVtcFRvUGFnZUlucHV0ID0gcGFnaW5hdGlvblJvdzJEaXYuY3JlYXRlRWwoXCJpbnB1dFwiLCB7IHR5cGU6IFwibnVtYmVyXCIsIGF0dHI6IHsgbWluOiAxLCBtYXg6IHRvdGFsUGFnZXMgfSB9KTtcbiAgICBqdW1wVG9QYWdlSW5wdXQuYWRkRXZlbnRMaXN0ZW5lcihcImtleWRvd25cIiwgY29udmVydEFzeW5jVG9TeW5jKGFzeW5jIChldmVudDogS2V5Ym9hcmRFdmVudCk6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgICAgaWYgKGV2ZW50LmtleSA9PT0gXCJFbnRlclwiKSB7XG4gICAgICAgIGNvbnN0IHBhZ2UgPSBwYXJzZUludChqdW1wVG9QYWdlSW5wdXQudmFsdWUpO1xuICAgICAgICBpZiAocGFnZSA+PSAxICYmIHBhZ2UgPD0gdG90YWxQYWdlcykge1xuICAgICAgICAgIGF3YWl0IHJlbmRlclBhZ2UocGFnZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KSk7XG5cbiAgICBwYWdpbmF0aW9uUm93MkRpdi5jcmVhdGVFbChcInNwYW5cIiwgeyB0ZXh0OiBgICBQYWdlICR7cGFnZU51bWJlcn0gb2YgJHt0b3RhbFBhZ2VzfSwgVG90YWwgaXRlbXM6ICR7cm93cy5sZW5ndGh9YCB9KTtcblxuICAgIGZ1bmN0aW9uIGNyZWF0ZVBhZ2VMaW5rKHRleHQ6IHN0cmluZywgcGFnZU51bWJlcjogbnVtYmVyLCBkaXNhYmxlZCA9IGZhbHNlKTogSFRNTEFuY2hvckVsZW1lbnQge1xuICAgICAgY29uc3QgbGluayA9IHBhZ2luYXRpb25Sb3cxRGl2LmNyZWF0ZUVsKFwiYVwiLCB7IGNsczogXCJwYWdlLWxpbmtcIiwgdGV4dDogdGV4dCwgaHJlZjogYCMke3BhZ2VOdW1iZXJ9YCB9KTtcbiAgICAgIGlmIChkaXNhYmxlZCkge1xuICAgICAgICBsaW5rLmFkZENsYXNzKFwiZGlzYWJsZWRcIik7XG4gICAgICAgIGxpbmsub25jbGljayA9IChldmVudDogTW91c2VFdmVudCk6IHZvaWQgPT4gZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGxpbmsuYWRkRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsIGNvbnZlcnRBc3luY1RvU3luYyhhc3luYyAoZXZlbnQ6IE1vdXNlRXZlbnQpOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgIGF3YWl0IHJlbmRlclBhZ2UocGFnZU51bWJlcik7XG4gICAgICAgIH0pKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBsaW5rO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGZ1bmN0aW9uIHJlbmRlclBhZ2UocGFnZU51bWJlcjogbnVtYmVyKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29udGFpbmVyLmVtcHR5KCk7XG4gICAgY29udGFpbmVyLmNyZWF0ZUVsKFwic3R5bGVcIiwgeyB0ZXh0OiBwYWdpbmF0aW9uQ3NzIH0pO1xuXG4gICAgY29uc3Qgc3RhcnRJbmRleCA9IChwYWdlTnVtYmVyIC0gMSkgKiBpdGVtc1BlclBhZ2U7XG4gICAgY29uc3QgZW5kSW5kZXggPSBzdGFydEluZGV4ICsgaXRlbXNQZXJQYWdlO1xuICAgIGNvbnN0IHJvd3NGb3JDdXJyZW50UGFnZSA9IHJvd3Muc2xpY2Uoc3RhcnRJbmRleCwgZW5kSW5kZXgpO1xuXG4gICAgY29uc3Qgb2xkQ29udGFpbmVyID0gZHYuY29udGFpbmVyO1xuXG4gICAgZHYuY29udGFpbmVyID0gY29udGFpbmVyO1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCByZW5kZXJlcihyb3dzRm9yQ3VycmVudFBhZ2UpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGR2LnBhcmFncmFwaChcIlx1Mjc0Q1wiICsgZXJyb3JUb1N0cmluZyhlKSk7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIGR2LmNvbnRhaW5lciA9IG9sZENvbnRhaW5lcjtcbiAgICB9XG5cbiAgICBjcmVhdGVQYWdpbmF0aW9uQ29udHJvbHMocGFnZU51bWJlcik7XG4gIH1cbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldFJlbmRlcmVkQ29udGFpbmVyKGR2OiBEYXRhdmlld0lubGluZUFwaSwgcmVuZGVyZXI6ICgpID0+IE1heWJlUHJvbWlzZTx2b2lkPik6IFByb21pc2U8SFRNTFBhcmFncmFwaEVsZW1lbnQ+IHtcbiAgY29uc3QgdGVtcENvbnRhaW5lciA9IGR2LnBhcmFncmFwaChcIlwiKTtcbiAgZHYuY29udGFpbmVyID0gdGVtcENvbnRhaW5lcjtcbiAgZHYuY29udGFpbmVyLmVtcHR5KCk7XG5cbiAgdHJ5IHtcbiAgICBhd2FpdCByZW5kZXJlcigpO1xuICB9IGNhdGNoIChlKSB7XG4gICAgZHYucGFyYWdyYXBoKFwiXHUyNzRDXCIgKyBlcnJvclRvU3RyaW5nKGUpKTtcbiAgfSBmaW5hbGx5IHtcbiAgICBkdi5jb250YWluZXIgPSB0ZW1wQ29udGFpbmVyLnBhcmVudEVsZW1lbnQhO1xuICAgIHRlbXBDb250YWluZXIucmVtb3ZlKCk7XG4gIH1cblxuICByZXR1cm4gdGVtcENvbnRhaW5lcjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlbmRlcklmcmFtZSh7XG4gIGR2LFxuICByZWxhdGl2ZVBhdGgsXG4gIHdpZHRoID0gXCIxMDAlXCIsXG4gIGhlaWdodCA9IFwiNjAwcHhcIlxufToge1xuICBkdjogRGF0YXZpZXdJbmxpbmVBcGksXG4gIHJlbGF0aXZlUGF0aDogc3RyaW5nLFxuICB3aWR0aDogc3RyaW5nLFxuICBoZWlnaHQ6IHN0cmluZ1xufSk6IHZvaWQge1xuICBkdi5lbChcImlmcmFtZVwiLCBcIlwiLCB7XG4gICAgYXR0cjoge1xuICAgICAgc3JjOiByZWxhdGl2ZVBhdGhUb1Jlc291cmNlVXJsKGR2LmFwcCwgcmVsYXRpdmVQYXRoLCBkdi5jdXJyZW50KCkuZmlsZS5wYXRoKSxcbiAgICAgIHdpZHRoLFxuICAgICAgaGVpZ2h0XG4gICAgfVxuICB9KTtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBZUEsbUJBR087QUFDUCx5QkFBMEM7QUFDMUMsbUJBQThCO0FBcEI5QixJQUFJLG9CQUFvQixXQUFXLGlCQUFpQixNQUFNLE1BQUksUUFBUSxVQUFVLEVBQUUsY0FBYyxVQUFVLEdB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
|
|
224
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL29ic2lkaWFuL0RhdGF2aWV3LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJ2YXIgX19pbXBvcnRfbWV0YV91cmwgPSBnbG9iYWxUaGlzW1wiaW1wb3J0Lm1ldGEudXJsXCJdID8/ICgoKT0+cmVxdWlyZShcIm5vZGU6dXJsXCIpLnBhdGhUb0ZpbGVVUkwoX19maWxlbmFtZSkpKCk7XG52YXIgX19wcm9jZXNzID0gZ2xvYmFsVGhpc1tcInByb2Nlc3NcIl0gPz8ge1xuICBcImN3ZFwiOiAoKT0+XCIvXCIsXG4gIFwiZW52XCI6IHt9LFxuICBcInBsYXRmb3JtXCI6IFwiYW5kcm9pZFwiXG59O1xuaW1wb3J0IHR5cGUgeyBEYXRhdmlld0lubGluZUFwaSBhcyBEYXRhdmlld0lubGluZUFwaU9yaWdpbmFsIH0gZnJvbSBcIi4vQHR5cGVzL0RhdGF2aWV3L2FwaS9pbmxpbmUtYXBpLmQudHNcIjtcbmltcG9ydCB0eXBlIHtcbiAgRGF0YUFycmF5LFxuICBEYXRhdmlld0FwaSxcbiAgRGF0ZVRpbWUsXG4gIExpbmssXG4gIFNNYXJrZG93blBhZ2Vcbn0gZnJvbSBcIi4vQHR5cGVzL0RhdGF2aWV3L2luZGV4LmQudHNcIjtcblxuaW1wb3J0IHtcbiAgY29udmVydEFzeW5jVG9TeW5jLFxuICB0eXBlIE1heWJlUHJvbWlzZVxufSBmcm9tIFwiLi4vQXN5bmMudHNcIjtcbmltcG9ydCB7IHJlbGF0aXZlUGF0aFRvUmVzb3VyY2VVcmwgfSBmcm9tIFwiLi4vb2JzaWRpYW4vUmVzb3VyY2VVcmwudHNcIjtcbmltcG9ydCB7IGVycm9yVG9TdHJpbmcgfSBmcm9tIFwiLi4vRXJyb3IudHNcIjtcblxuZGVjbGFyZSBnbG9iYWwge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdmFyXG4gIHZhciBEYXRhdmlld0FQSTogRGF0YXZpZXdBcGkgfCB1bmRlZmluZWQ7XG59XG5cbmV4cG9ydCB0eXBlIHtcbiAgRGF0ZVRpbWUsXG4gIExpbmtcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGF0YXZpZXdJbmxpbmVBcGk8Q3VzdG9tUGFnZSA9IFNNYXJrZG93blBhZ2U+IGV4dGVuZHMgRGF0YXZpZXdJbmxpbmVBcGlPcmlnaW5hbCB7XG4gIGN1cnJlbnQ6ICgpID0+IFBhZ2U8Q3VzdG9tUGFnZT47XG4gIGFycmF5PFQ+KGFycjogVFtdKTogRGF0YUFycmF5PFQ+O1xuICBwYWdlcyhxdWVyeT86IHN0cmluZyk6IERhdGFBcnJheTxQYWdlPEN1c3RvbVBhZ2U+PjtcbiAgcGFyYWdyYXBoKHRleHQ6IHVua25vd24sIG9wdGlvbnM/OiBEb21FbGVtZW50SW5mbyAmIHsgY29udGFpbmVyPzogSFRNTEVsZW1lbnQgfSk6IEhUTUxQYXJhZ3JhcGhFbGVtZW50O1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcmVsb2FkQ3VycmVudEZpbGVDYWNoZShkdjogRGF0YXZpZXdJbmxpbmVBcGkpOiBQcm9taXNlPHZvaWQ+IHtcbiAgYXdhaXQgRGF0YXZpZXdBUEk/LmluZGV4LnJlbG9hZChkdi5hcHAudmF1bHQuZ2V0RmlsZUJ5UGF0aChkdi5jdXJyZW50KCkuZmlsZS5wYXRoKSEpO1xufVxuXG5leHBvcnQgdHlwZSBQYWdlPFQgPSBTTWFya2Rvd25QYWdlPiA9IFNNYXJrZG93blBhZ2UgJiBUO1xuXG50eXBlIFBhZ2VGaWxlID0gUGFnZVtcImZpbGVcIl07XG5leHBvcnQgdHlwZSBQYWdlRmlsZXMgPSBEYXRhQXJyYXk8UGFnZUZpbGU+IHwgUGFnZUZpbGVbXTtcblxuY29uc3QgcGFnaW5hdGlvbkNzcyA9IGBcbi5wYWdpbmF0aW9uIC5wYWdlLWxpbmsuZGlzYWJsZWQge1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgY29sb3I6IGdyYXk7XG59XG5cbi5wYWdpbmF0aW9uIC5wYWdlLWxpbmsge1xuICBtYXJnaW46IDAgNXB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgY29sb3I6IGJsdWU7XG59XG5cbi5wYWdpbmF0aW9uIC5wYWdlLWxpbms6aG92ZXI6bm90KC5kaXNhYmxlZCkge1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbn1cbi5wYWdpbmF0aW9uIC5wYWdlLWxpbmsuY3VycmVudCB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbn1cblxuLnBhZ2luYXRpb24gc2VsZWN0LFxuLnBhZ2luYXRpb24gaW5wdXQge1xuICBtYXJnaW46IDAgNXB4O1xufVxuYDtcblxudHlwZSBBcnJheU9yRGF0YUFycmF5PFQ+ID0gVFtdIHwgRGF0YUFycmF5PFQ+O1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcmVuZGVyUGFnaW5hdGVkTGlzdDxUPih7XG4gIGR2LFxuICByb3dzLFxuICBpdGVtc1BlclBhZ2VPcHRpb25zID0gWzEwLCAyMCwgNTAsIDEwMF1cbn06IHtcbiAgZHY6IERhdGF2aWV3SW5saW5lQXBpLFxuICByb3dzOiBBcnJheU9yRGF0YUFycmF5PFQ+LFxuICBpdGVtc1BlclBhZ2VPcHRpb25zPzogbnVtYmVyW11cbn0pOiBQcm9taXNlPHZvaWQ+IHtcbiAgYXdhaXQgcmVuZGVyUGFnaW5hdGVkKHtcbiAgICBkdixcbiAgICByb3dzLFxuICAgIGl0ZW1zUGVyUGFnZU9wdGlvbnMsXG4gICAgcmVuZGVyZXI6IGFzeW5jIChyb3dzOiBBcnJheU9yRGF0YUFycmF5PFQ+KTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gICAgICBhd2FpdCBkdi5saXN0KHJvd3MpO1xuICAgIH1cbiAgfSk7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiByZW5kZXJQYWdpbmF0ZWRUYWJsZTxUIGV4dGVuZHMgdW5rbm93bltdPih7XG4gIGR2LFxuICBoZWFkZXJzLFxuICByb3dzLFxuICBpdGVtc1BlclBhZ2VPcHRpb25zID0gWzEwLCAyMCwgNTAsIDEwMF1cbn06IHtcbiAgZHY6IERhdGF2aWV3SW5saW5lQXBpLFxuICBoZWFkZXJzOiBzdHJpbmdbXSxcbiAgcm93czogQXJyYXlPckRhdGFBcnJheTxUPixcbiAgaXRlbXNQZXJQYWdlT3B0aW9ucz86IG51bWJlcltdXG59KTogUHJvbWlzZTx2b2lkPiB7XG4gIGF3YWl0IHJlbmRlclBhZ2luYXRlZCh7XG4gICAgZHYsXG4gICAgcm93cyxcbiAgICBpdGVtc1BlclBhZ2VPcHRpb25zLFxuICAgIHJlbmRlcmVyOiBhc3luYyAocm93czogQXJyYXlPckRhdGFBcnJheTxUPik6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgICAgYXdhaXQgZHYudGFibGUoaGVhZGVycywgcm93cyk7XG4gICAgfVxuICB9KTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gcmVuZGVyUGFnaW5hdGVkPFQ+KHtcbiAgZHYsXG4gIHJvd3MsXG4gIGl0ZW1zUGVyUGFnZU9wdGlvbnMgPSBbMTAsIDIwLCA1MCwgMTAwXSxcbiAgcmVuZGVyZXJcbn06IHtcbiAgZHY6IERhdGF2aWV3SW5saW5lQXBpLFxuICByb3dzOiBBcnJheU9yRGF0YUFycmF5PFQ+LFxuICBpdGVtc1BlclBhZ2VPcHRpb25zOiBudW1iZXJbXSxcbiAgcmVuZGVyZXI6IChyb3dzOiBBcnJheU9yRGF0YUFycmF5PFQ+KSA9PiBNYXliZVByb21pc2U8dm9pZD5cbn0pOiBQcm9taXNlPHZvaWQ+IHtcbiAgaWYgKHJvd3MubGVuZ3RoID09PSAwKSB7XG4gICAgZHYucGFyYWdyYXBoKFwiTm8gaXRlbXMgZm91bmRcIik7XG4gICAgcmV0dXJuO1xuICB9XG4gIGNvbnN0IGNvbnRhaW5lciA9IGR2LmNvbnRhaW5lcjtcbiAgbGV0IGl0ZW1zUGVyUGFnZSA9IGl0ZW1zUGVyUGFnZU9wdGlvbnNbMF0hO1xuICBsZXQgdG90YWxQYWdlcyA9IE1hdGguY2VpbChyb3dzLmxlbmd0aCAvIGl0ZW1zUGVyUGFnZSk7XG4gIGF3YWl0IHJlbmRlclBhZ2UoMSk7XG5cbiAgZnVuY3Rpb24gY3JlYXRlUGFnaW5hdGlvbkNvbnRyb2xzKHBhZ2VOdW1iZXI6IG51bWJlcik6IHZvaWQge1xuICAgIGNvbnN0IHBhZ2luYXRpb25EaXYgPSBjb250YWluZXIuY3JlYXRlRWwoXCJkaXZcIiwgeyBjbHM6IFwicGFnaW5hdGlvblwiIH0pO1xuICAgIGNvbnN0IHBhZ2luYXRpb25Sb3cxRGl2ID0gcGFnaW5hdGlvbkRpdi5jcmVhdGVEaXYoKTtcblxuICAgIGNyZWF0ZVBhZ2VMaW5rKFwiRmlyc3RcIiwgMSwgcGFnZU51bWJlciA9PT0gMSk7XG4gICAgY3JlYXRlUGFnZUxpbmsoXCJQcmV2XCIsIHBhZ2VOdW1iZXIgLSAxLCBwYWdlTnVtYmVyID09PSAxKTtcblxuICAgIGlmIChwYWdlTnVtYmVyID4gMykge1xuICAgICAgcGFnaW5hdGlvblJvdzFEaXYuY3JlYXRlRWwoXCJzcGFuXCIsIHsgdGV4dDogXCIuLi5cIiB9KTtcbiAgICB9XG5cbiAgICBmb3IgKGxldCBpID0gTWF0aC5tYXgoMSwgcGFnZU51bWJlciAtIDIpOyBpIDw9IE1hdGgubWluKHRvdGFsUGFnZXMsIHBhZ2VOdW1iZXIgKyAyKTsgaSsrKSB7XG4gICAgICBjb25zdCBwYWdlTGluayA9IGNyZWF0ZVBhZ2VMaW5rKGkudG9TdHJpbmcoKSwgaSwgaSA9PT0gcGFnZU51bWJlcik7XG4gICAgICBpZiAoaSA9PT0gcGFnZU51bWJlcikge1xuICAgICAgICBwYWdlTGluay5hZGRDbGFzcyhcImN1cnJlbnRcIik7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHBhZ2VOdW1iZXIgPCB0b3RhbFBhZ2VzIC0gMikge1xuICAgICAgcGFnaW5hdGlvblJvdzFEaXYuY3JlYXRlRWwoXCJzcGFuXCIsIHsgdGV4dDogXCIuLi5cIiB9KTtcbiAgICB9XG5cbiAgICBjcmVhdGVQYWdlTGluayhcIk5leHRcIiwgcGFnZU51bWJlciArIDEsIHBhZ2VOdW1iZXIgPT09IHRvdGFsUGFnZXMpO1xuICAgIGNyZWF0ZVBhZ2VMaW5rKFwiTGFzdFwiLCB0b3RhbFBhZ2VzLCBwYWdlTnVtYmVyID09PSB0b3RhbFBhZ2VzKTtcblxuICAgIGNvbnN0IHBhZ2luYXRpb25Sb3cyRGl2ID0gcGFnaW5hdGlvbkRpdi5jcmVhdGVEaXYoKTtcblxuICAgIHBhZ2luYXRpb25Sb3cyRGl2LmNyZWF0ZUVsKFwic3BhblwiLCB7IHRleHQ6IFwiIEl0ZW1zIHBlciBwYWdlOiBcIiB9KTtcblxuICAgIGNvbnN0IGl0ZW1zUGVyUGFnZVNlbGVjdCA9IHBhZ2luYXRpb25Sb3cyRGl2LmNyZWF0ZUVsKFwic2VsZWN0XCIpO1xuICAgIGl0ZW1zUGVyUGFnZU9wdGlvbnMuZm9yRWFjaCgob3B0aW9uOiBudW1iZXIpOiB2b2lkID0+IHtcbiAgICAgIGl0ZW1zUGVyUGFnZVNlbGVjdC5jcmVhdGVFbChcIm9wdGlvblwiLCB7IHRleHQ6IG9wdGlvbi50b1N0cmluZygpLCB2YWx1ZTogb3B0aW9uLnRvU3RyaW5nKCkgfSk7XG4gICAgfSk7XG4gICAgaXRlbXNQZXJQYWdlU2VsZWN0LnZhbHVlID0gaXRlbXNQZXJQYWdlLnRvU3RyaW5nKCk7XG4gICAgaXRlbXNQZXJQYWdlU2VsZWN0LmFkZEV2ZW50TGlzdGVuZXIoXCJjaGFuZ2VcIiwgY29udmVydEFzeW5jVG9TeW5jKGFzeW5jICgpOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICAgIGl0ZW1zUGVyUGFnZSA9IHBhcnNlSW50KGl0ZW1zUGVyUGFnZVNlbGVjdC52YWx1ZSk7XG4gICAgICB0b3RhbFBhZ2VzID0gTWF0aC5jZWlsKHJvd3MubGVuZ3RoIC8gaXRlbXNQZXJQYWdlKTtcbiAgICAgIGF3YWl0IHJlbmRlclBhZ2UoMSk7XG4gICAgfSkpO1xuXG4gICAgcGFnaW5hdGlvblJvdzJEaXYuY3JlYXRlRWwoXCJzcGFuXCIsIHsgdGV4dDogXCIgIEp1bXAgdG8gcGFnZTogXCIgfSk7XG5cbiAgICBjb25zdCBqdW1wVG9QYWdlSW5wdXQgPSBwYWdpbmF0aW9uUm93MkRpdi5jcmVhdGVFbChcImlucHV0XCIsIHsgdHlwZTogXCJudW1iZXJcIiwgYXR0cjogeyBtaW46IDEsIG1heDogdG90YWxQYWdlcyB9IH0pO1xuICAgIGp1bXBUb1BhZ2VJbnB1dC5hZGRFdmVudExpc3RlbmVyKFwia2V5ZG93blwiLCBjb252ZXJ0QXN5bmNUb1N5bmMoYXN5bmMgKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gICAgICBpZiAoZXZlbnQua2V5ID09PSBcIkVudGVyXCIpIHtcbiAgICAgICAgY29uc3QgcGFnZSA9IHBhcnNlSW50KGp1bXBUb1BhZ2VJbnB1dC52YWx1ZSk7XG4gICAgICAgIGlmIChwYWdlID49IDEgJiYgcGFnZSA8PSB0b3RhbFBhZ2VzKSB7XG4gICAgICAgICAgYXdhaXQgcmVuZGVyUGFnZShwYWdlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pKTtcblxuICAgIHBhZ2luYXRpb25Sb3cyRGl2LmNyZWF0ZUVsKFwic3BhblwiLCB7IHRleHQ6IGAgIFBhZ2UgJHtwYWdlTnVtYmVyfSBvZiAke3RvdGFsUGFnZXN9LCBUb3RhbCBpdGVtczogJHtyb3dzLmxlbmd0aH1gIH0pO1xuXG4gICAgZnVuY3Rpb24gY3JlYXRlUGFnZUxpbmsodGV4dDogc3RyaW5nLCBwYWdlTnVtYmVyOiBudW1iZXIsIGRpc2FibGVkID0gZmFsc2UpOiBIVE1MQW5jaG9yRWxlbWVudCB7XG4gICAgICBjb25zdCBsaW5rID0gcGFnaW5hdGlvblJvdzFEaXYuY3JlYXRlRWwoXCJhXCIsIHsgY2xzOiBcInBhZ2UtbGlua1wiLCB0ZXh0OiB0ZXh0LCBocmVmOiBgIyR7cGFnZU51bWJlcn1gIH0pO1xuICAgICAgaWYgKGRpc2FibGVkKSB7XG4gICAgICAgIGxpbmsuYWRkQ2xhc3MoXCJkaXNhYmxlZFwiKTtcbiAgICAgICAgbGluay5vbmNsaWNrID0gKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCA9PiBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbGluay5hZGRFdmVudExpc3RlbmVyKFwiY2xpY2tcIiwgY29udmVydEFzeW5jVG9TeW5jKGFzeW5jIChldmVudDogTW91c2VFdmVudCk6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgYXdhaXQgcmVuZGVyUGFnZShwYWdlTnVtYmVyKTtcbiAgICAgICAgfSkpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGxpbms7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgZnVuY3Rpb24gcmVuZGVyUGFnZShwYWdlTnVtYmVyOiBudW1iZXIpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb250YWluZXIuZW1wdHkoKTtcbiAgICBjb250YWluZXIuY3JlYXRlRWwoXCJzdHlsZVwiLCB7IHRleHQ6IHBhZ2luYXRpb25Dc3MgfSk7XG5cbiAgICBjb25zdCBzdGFydEluZGV4ID0gKHBhZ2VOdW1iZXIgLSAxKSAqIGl0ZW1zUGVyUGFnZTtcbiAgICBjb25zdCBlbmRJbmRleCA9IHN0YXJ0SW5kZXggKyBpdGVtc1BlclBhZ2U7XG4gICAgY29uc3Qgcm93c0ZvckN1cnJlbnRQYWdlID0gcm93cy5zbGljZShzdGFydEluZGV4LCBlbmRJbmRleCk7XG5cbiAgICBjb25zdCBvbGRDb250YWluZXIgPSBkdi5jb250YWluZXI7XG5cbiAgICBkdi5jb250YWluZXIgPSBjb250YWluZXI7XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHJlbmRlcmVyKHJvd3NGb3JDdXJyZW50UGFnZSk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgZHYucGFyYWdyYXBoKFwiXHUyNzRDXCIgKyBlcnJvclRvU3RyaW5nKGUpKTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgZHYuY29udGFpbmVyID0gb2xkQ29udGFpbmVyO1xuICAgIH1cblxuICAgIGNyZWF0ZVBhZ2luYXRpb25Db250cm9scyhwYWdlTnVtYmVyKTtcbiAgfVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0UmVuZGVyZWRDb250YWluZXIoZHY6IERhdGF2aWV3SW5saW5lQXBpLCByZW5kZXJlcjogKCkgPT4gTWF5YmVQcm9taXNlPHZvaWQ+KTogUHJvbWlzZTxIVE1MUGFyYWdyYXBoRWxlbWVudD4ge1xuICBjb25zdCB0ZW1wQ29udGFpbmVyID0gZHYucGFyYWdyYXBoKFwiXCIpO1xuICBkdi5jb250YWluZXIgPSB0ZW1wQ29udGFpbmVyO1xuICBkdi5jb250YWluZXIuZW1wdHkoKTtcblxuICB0cnkge1xuICAgIGF3YWl0IHJlbmRlcmVyKCk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBkdi5wYXJhZ3JhcGgoXCJcdTI3NENcIiArIGVycm9yVG9TdHJpbmcoZSkpO1xuICB9IGZpbmFsbHkge1xuICAgIGR2LmNvbnRhaW5lciA9IHRlbXBDb250YWluZXIucGFyZW50RWxlbWVudCE7XG4gICAgdGVtcENvbnRhaW5lci5yZW1vdmUoKTtcbiAgfVxuXG4gIHJldHVybiB0ZW1wQ29udGFpbmVyO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVuZGVySWZyYW1lKHtcbiAgZHYsXG4gIHJlbGF0aXZlUGF0aCxcbiAgd2lkdGggPSBcIjEwMCVcIixcbiAgaGVpZ2h0ID0gXCI2MDBweFwiXG59OiB7XG4gIGR2OiBEYXRhdmlld0lubGluZUFwaSxcbiAgcmVsYXRpdmVQYXRoOiBzdHJpbmcsXG4gIHdpZHRoOiBzdHJpbmcsXG4gIGhlaWdodDogc3RyaW5nXG59KTogdm9pZCB7XG4gIGR2LmVsKFwiaWZyYW1lXCIsIFwiXCIsIHtcbiAgICBhdHRyOiB7XG4gICAgICBzcmM6IHJlbGF0aXZlUGF0aFRvUmVzb3VyY2VVcmwoZHYuYXBwLCByZWxhdGl2ZVBhdGgsIGR2LmN1cnJlbnQoKS5maWxlLnBhdGgpLFxuICAgICAgd2lkdGgsXG4gICAgICBoZWlnaHRcbiAgICB9XG4gIH0pO1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFlQSxtQkFHTztBQUNQLHlCQUEwQztBQUMxQyxtQkFBOEI7QUFwQjlCLElBQUksb0JBQW9CLFdBQVcsaUJBQWlCLE1BQU0sTUFBSSxRQUFRLFVB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TSxlQUFlO0FBQUEsTUFDbkUsT0FBTztBQUNMLGFBQUssaUJBQWlCLGFBQVMsaUNBQW1CLE9BQU8sVUFBcUM7QUFDNUYsZ0JBQU0sZUFBZTtBQUNyQixnQkFBTSxXQUFXQSxXQUFVO0FBQUEsUUFDN0IsQ0FBQyxDQUFDO0FBQUEsTUFDSjtBQUNBLGFBQU87QUFBQSxJQUNUO0FBQUEsRUFDRjtBQUVBLGlCQUFlLFdBQVcsWUFBbUM7QUFDM0QsY0FBVSxNQUFNO0FBQ2hCLGNBQVUsU0FBUyxTQUFTLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFbkQsVUFBTSxjQUFjLGFBQWEsS0FBSztBQUN0QyxVQUFNLFdBQVcsYUFBYTtBQUM5QixVQUFNLHFCQUFxQixLQUFLLE1BQU0sWUFBWSxRQUFRO0FBRTFELFVBQU0sZUFBZSxHQUFHO0FBRXhCLE9BQUcsWUFBWTtBQUNmLFFBQUk7QUFDRixZQUFNLFNBQVMsa0JBQWtCO0FBQUEsSUFDbkMsU0FBUyxHQUFHO0FBQ1YsU0FBRyxVQUFVLGVBQU0sNEJBQWMsQ0FBQyxDQUFDO0FBQUEsSUFDckMsVUFBRTtBQUNBLFNBQUcsWUFBWTtBQUFBLElBQ2pCO0FBRUEsNkJBQXlCLFVBQVU7QUFBQSxFQUNyQztBQUNGO0FBRUEsZUFBc0IscUJBQXFCLElBQXVCLFVBQW1FO0FBQ25JLFFBQU0sZ0JBQWdCLEdBQUcsVUFBVSxFQUFFO0FBQ3JDLEtBQUcsWUFBWTtBQUNmLEtBQUcsVUFBVSxNQUFNO0FBRW5CLE1BQUk7QUFDRixVQUFNLFNBQVM7QUFBQSxFQUNqQixTQUFTLEdBQUc7QUFDVixPQUFHLFVBQVUsZUFBTSw0QkFBYyxDQUFDLENBQUM7QUFBQSxFQUNyQyxVQUFFO0FBQ0EsT0FBRyxZQUFZLGNBQWM7QUFDN0Isa0JBQWMsT0FBTztBQUFBLEVBQ3ZCO0FBRUEsU0FBTztBQUNUO0FBRU8sU0FBUyxhQUFhO0FBQUEsRUFDM0I7QUFBQSxFQUNBO0FBQUEsRUFDQSxRQUFRO0FBQUEsRUFDUixTQUFTO0FBQ1gsR0FLUztBQUNQLEtBQUcsR0FBRyxVQUFVLElBQUk7QUFBQSxJQUNsQixNQUFNO0FBQUEsTUFDSixTQUFLLDhDQUEwQixHQUFHLEtBQUssY0FBYyxHQUFHLFFBQVEsRUFBRSxLQUFLLElBQUk7QUFBQSxNQUMzRTtBQUFBLE1BQ0E7QUFBQSxJQUNGO0FBQUEsRUFDRixDQUFDO0FBQ0g7IiwKICAibmFtZXMiOiBbInJvd3MiLCAicGFnZU51bWJlciJdCn0K
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { DataviewInlineApi as DataviewInlineApiOriginal } from "
|
|
2
|
-
import type { DataArray, DataviewApi, DateTime, Link, SMarkdownPage } from "
|
|
1
|
+
import type { DataviewInlineApi as DataviewInlineApiOriginal } from "./@types/Dataview/api/inline-api.d.ts";
|
|
2
|
+
import type { DataArray, DataviewApi, DateTime, Link, SMarkdownPage } from "./@types/Dataview/index.d.ts";
|
|
3
3
|
import { type MaybePromise } from "../Async.ts";
|
|
4
4
|
declare global {
|
|
5
5
|
var DataviewAPI: DataviewApi | undefined;
|