obsidian-dev-utils
Version:
This is the collection of useful functions that you can use for your Obsidian plugin development
96 lines (92 loc) • 10.3 kB
JavaScript
/*
THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
if you want to view the source, please visit the github repository of this plugin
*/
(function initEsm() {
if (globalThis.process) {
return;
}
const browserProcess = {
browser: true,
cwd() {
return '/';
},
env: {},
platform: 'android'
};
globalThis.process = browserProcess;
})();
import { throwExpression } from "../Error.mjs";
import { normalizeOptionalProperties } from "../ObjectUtils.mjs";
import { resolveValue } from "../ValueProvider.mjs";
import { getRenderedContainer } from "./Dataview.mjs";
import { t } from "./i18n/i18n.mjs";
import { addToQueue } from "./Queue.mjs";
var CalloutMode = /* @__PURE__ */ ((CalloutMode2) => {
CalloutMode2[CalloutMode2["Default"] = 0] = "Default";
CalloutMode2[CalloutMode2["FoldableCollapsed"] = 1] = "FoldableCollapsed";
CalloutMode2[CalloutMode2["FoldableExpanded"] = 2] = "FoldableExpanded";
return CalloutMode2;
})(CalloutMode || {});
function renderCallout(options) {
const {
contentProvider = "",
dv,
header = "",
mode = 1 /* FoldableCollapsed */,
type = "NOTE"
} = options;
const modifier = getModifier(mode);
const callout = dv.paragraph(`> [!${type}]${modifier} ${header}
>
> <div class="content"></div>`);
const contentDiv = callout.querySelector(".content") ?? throwExpression(new Error("Content div not found"));
dv.paragraph("Loading... \u23F3", { container: contentDiv });
const observer = new IntersectionObserver((entries) => {
for (const entry of entries) {
if (entry.isIntersecting) {
observer.unobserve(entry.target);
addToQueue(normalizeOptionalProperties({
abortSignal: options.abortSignal,
app: dv.app,
operationFn: loadContent,
operationName: t(($) => $.obsidianDevUtils.callout.loadContent)
}));
}
}
});
observer.observe(contentDiv);
async function loadContent(abortSignal) {
abortSignal.throwIfAborted();
let content;
const paragraph = await getRenderedContainer(dv, async () => {
content = await resolveValue(contentProvider, abortSignal);
abortSignal.throwIfAborted();
});
abortSignal.throwIfAborted();
content ??= paragraph;
contentDiv.empty();
dv.paragraph(content, { container: contentDiv });
}
}
function wrapForCallout(content) {
const lines = content.split("\n");
const prefixedLines = lines.map((line) => `> ${line}`);
return prefixedLines.join("\n");
}
function getModifier(mode) {
switch (mode) {
case 1 /* FoldableCollapsed */:
return "-";
case 2 /* FoldableExpanded */:
return "+";
default:
return "";
}
}
export {
CalloutMode,
renderCallout,
wrapForCallout
};
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL0NhbGxvdXQudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQHBhY2thZ2VEb2N1bWVudGF0aW9uXG4gKlxuICogVGhpcyBtb2R1bGUgcHJvdmlkZXMgdXRpbGl0eSBmdW5jdGlvbnMgZm9yIHJlbmRlcmluZyBjYWxsb3V0cyBpbiBEYXRhdmlldy5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IE1heWJlUmV0dXJuIH0gZnJvbSAnLi4vVHlwZS50cyc7XG5pbXBvcnQgdHlwZSB7IFZhbHVlUHJvdmlkZXIgfSBmcm9tICcuLi9WYWx1ZVByb3ZpZGVyLnRzJztcbmltcG9ydCB0eXBlIHsgRGF0YXZpZXdJbmxpbmVBcGkgfSBmcm9tICcuL0RhdGF2aWV3LnRzJztcbmltcG9ydCB0eXBlIHsgQWRkVG9RdWV1ZU9wdGlvbnMgfSBmcm9tICcuL1F1ZXVlLnRzJztcblxuaW1wb3J0IHsgdGhyb3dFeHByZXNzaW9uIH0gZnJvbSAnLi4vRXJyb3IudHMnO1xuaW1wb3J0IHsgbm9ybWFsaXplT3B0aW9uYWxQcm9wZXJ0aWVzIH0gZnJvbSAnLi4vT2JqZWN0VXRpbHMudHMnO1xuaW1wb3J0IHsgcmVzb2x2ZVZhbHVlIH0gZnJvbSAnLi4vVmFsdWVQcm92aWRlci50cyc7XG5pbXBvcnQgeyBnZXRSZW5kZXJlZENvbnRhaW5lciB9IGZyb20gJy4vRGF0YXZpZXcudHMnO1xuaW1wb3J0IHsgdCB9IGZyb20gJy4vaTE4bi9pMThuLnRzJztcbmltcG9ydCB7IGFkZFRvUXVldWUgfSBmcm9tICcuL1F1ZXVlLnRzJztcblxuLyoqXG4gKiBFbnVtIHJlcHJlc2VudGluZyB0aGUgbW9kZSBvZiBhIGNhbGxvdXQuXG4gKi9cbmV4cG9ydCBlbnVtIENhbGxvdXRNb2RlIHtcbiAgLyoqIERlZmF1bHQgbW9kZSwgd2l0aCBubyBzcGVjaWFsIGJlaGF2aW9yLiAqL1xuICBEZWZhdWx0LFxuXG4gIC8qKiBGb2xkYWJsZSBtb2RlIHdpdGggdGhlIGNhbGxvdXQgY29sbGFwc2VkLiAqL1xuICBGb2xkYWJsZUNvbGxhcHNlZCxcblxuICAvKiogRm9sZGFibGUgbW9kZSB3aXRoIHRoZSBjYWxsb3V0IGV4cGFuZGVkLiAqL1xuICBGb2xkYWJsZUV4cGFuZGVkXG59XG5cbi8qKlxuICogT3B0aW9ucyBmb3Ige0BsaW5rIHJlbmRlckNhbGxvdXR9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlbmRlckNhbGxvdXRPcHRpb25zIHtcbiAgLyoqXG4gICAqIEFuIGFib3J0IHNpZ25hbC5cbiAgICovXG4gIGFib3J0U2lnbmFsPzogQWJvcnRTaWduYWw7XG5cbiAgLyoqXG4gICAqIEFuIG9wdGlvbmFsIHByb3ZpZGVyIGZvciB0aGUgY29udGVudCwgd2hpY2ggY2FuIGJlIGVpdGhlciBhIHN0cmluZyBvciBhIE5vZGUuXG4gICAqL1xuICBjb250ZW50UHJvdmlkZXI/OiBWYWx1ZVByb3ZpZGVyPE1heWJlUmV0dXJuPE5vZGUgfCBzdHJpbmc+PjtcblxuICAvKipcbiAgICogQSB7QGxpbmsgRGF0YXZpZXdJbmxpbmVBcGl9IGluc3RhbmNlLlxuICAgKi9cbiAgZHY6IERhdGF2aWV3SW5saW5lQXBpO1xuXG4gIC8qKlxuICAgKiBBIGhlYWRlciB0ZXh0IG9mIHRoZSBjYWxsb3V0LCBkZWZhdWx0IGlzIGFuIGVtcHR5IHN0cmluZy5cbiAgICovXG4gIGhlYWRlcj86IHN0cmluZztcblxuICAvKipcbiAgICogQSBjYWxsb3V0IG1vZGUsIGRlZmF1bHQgaXMgYENhbGxvdXRNb2RlLkZvbGRhYmxlQ29sbGFwc2VkYC5cbiAgICovXG4gIG1vZGU/OiBDYWxsb3V0TW9kZTtcblxuICAvKipcbiAgICogQSB0eXBlIG9mIHRoZSBjYWxsb3V0LCBkZWZhdWx0IGlzIGBcIk5PVEVcImAuXG4gICAqL1xuICB0eXBlPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFJlbmRlcnMgYSBjYWxsb3V0IGJsb2NrIGluIERhdGF2aWV3LlxuICpcbiAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIG9wdGlvbnMgZm9yIHJlbmRlcmluZyB0aGUgY2FsbG91dC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlbmRlckNhbGxvdXQob3B0aW9uczogUmVuZGVyQ2FsbG91dE9wdGlvbnMpOiB2b2lkIHtcbiAgY29uc3Qge1xuICAgIGNvbnRlbnRQcm92aWRlciA9ICcnLFxuICAgIGR2LFxuICAgIGhlYWRlciA9ICcnLFxuICAgIG1vZGUgPSBDYWxsb3V0TW9kZS5Gb2xkYWJsZUNvbGxhcHNlZCxcbiAgICB0eXBlID0gJ05PVEUnXG4gIH0gPSBvcHRpb25zO1xuICBjb25zdCBtb2RpZmllciA9IGdldE1vZGlmaWVyKG1vZGUpO1xuICBjb25zdCBjYWxsb3V0ID0gZHYucGFyYWdyYXBoKGA+IFshJHt0eXBlfV0ke21vZGlmaWVyfSAke2hlYWRlcn1cXG4+XFxuPiA8ZGl2IGNsYXNzPVwiY29udGVudFwiPjwvZGl2PmApO1xuICBjb25zdCBjb250ZW50RGl2ID0gY2FsbG91dC5xdWVyeVNlbGVjdG9yPEhUTUxEaXZFbGVtZW50PignLmNvbnRlbnQnKSA/PyB0aHJvd0V4cHJlc3Npb24obmV3IEVycm9yKCdDb250ZW50IGRpdiBub3QgZm91bmQnKSk7XG4gIGR2LnBhcmFncmFwaCgnTG9hZGluZy4uLiBcdTIzRjMnLCB7IGNvbnRhaW5lcjogY29udGVudERpdiB9KTtcblxuICBjb25zdCBvYnNlcnZlciA9IG5ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcigoZW50cmllczogSW50ZXJzZWN0aW9uT2JzZXJ2ZXJFbnRyeVtdKSA9PiB7XG4gICAgZm9yIChjb25zdCBlbnRyeSBvZiBlbnRyaWVzKSB7XG4gICAgICBpZiAoZW50cnkuaXNJbnRlcnNlY3RpbmcpIHtcbiAgICAgICAgb2JzZXJ2ZXIudW5vYnNlcnZlKGVudHJ5LnRhcmdldCk7XG4gICAgICAgIGFkZFRvUXVldWUobm9ybWFsaXplT3B0aW9uYWxQcm9wZXJ0aWVzPEFkZFRvUXVldWVPcHRpb25zPih7XG4gICAgICAgICAgYWJvcnRTaWduYWw6IG9wdGlvbnMuYWJvcnRTaWduYWwsXG4gICAgICAgICAgYXBwOiBkdi5hcHAsXG4gICAgICAgICAgb3BlcmF0aW9uRm46IGxvYWRDb250ZW50LFxuICAgICAgICAgIG9wZXJhdGlvbk5hbWU6IHQoKCQpID0+ICQub2JzaWRpYW5EZXZVdGlscy5jYWxsb3V0LmxvYWRDb250ZW50KVxuICAgICAgICB9KSk7XG4gICAgICB9XG4gICAgfVxuICB9KTtcbiAgb2JzZXJ2ZXIub2JzZXJ2ZShjb250ZW50RGl2KTtcblxuICBhc3luYyBmdW5jdGlvbiBsb2FkQ29udGVudChhYm9ydFNpZ25hbDogQWJvcnRTaWduYWwpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhYm9ydFNpZ25hbC50aHJvd0lmQWJvcnRlZCgpO1xuICAgIGxldCBjb250ZW50OiBNYXliZVJldHVybjxOb2RlIHwgc3RyaW5nIHwgdW5kZWZpbmVkPjtcblxuICAgIGNvbnN0IHBhcmFncmFwaCA9IGF3YWl0IGdldFJlbmRlcmVkQ29udGFpbmVyKGR2LCBhc3luYyAoKSA9PiB7XG4gICAgICBjb250ZW50ID0gYXdhaXQgcmVzb2x2ZVZhbHVlKGNvbnRlbnRQcm92aWRlciwgYWJvcnRTaWduYWwpO1xuICAgICAgYWJvcnRTaWduYWwudGhyb3dJZkFib3J0ZWQoKTtcbiAgICB9KTtcbiAgICBhYm9ydFNpZ25hbC50aHJvd0lmQWJvcnRlZCgpO1xuXG4gICAgY29udGVudCA/Pz0gcGFyYWdyYXBoO1xuXG4gICAgY29udGVudERpdi5lbXB0eSgpO1xuICAgIGR2LnBhcmFncmFwaChjb250ZW50LCB7IGNvbnRhaW5lcjogY29udGVudERpdiB9KTtcbiAgfVxufVxuXG4vKipcbiAqIFdyYXBzIHRoZSBwcm92aWRlZCBjb250ZW50IGluIGJsb2NrcXVvdGUgc3ludGF4IGZvciBhIGNhbGxvdXQuXG4gKlxuICogQHBhcmFtIGNvbnRlbnQgLSBUaGUgY29udGVudCB0byB3cmFwLlxuICogQHJldHVybnMgVGhlIGNvbnRlbnQgd3JhcHBlZCBpbiBibG9ja3F1b3RlIHN5bnRheC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHdyYXBGb3JDYWxsb3V0KGNvbnRlbnQ6IHN0cmluZyk6IHN0cmluZyB7XG4gIGNvbnN0IGxpbmVzID0gY29udGVudC5zcGxpdCgnXFxuJyk7XG4gIGNvbnN0IHByZWZpeGVkTGluZXMgPSBsaW5lcy5tYXAoKGxpbmUpID0+IGA+ICR7bGluZX1gKTtcbiAgcmV0dXJuIHByZWZpeGVkTGluZXMuam9pbignXFxuJyk7XG59XG5cbi8qKlxuICogUmV0dXJucyB0aGUgbW9kaWZpZXIgc3RyaW5nIGJhc2VkIG9uIHRoZSBjYWxsb3V0IG1vZGUuXG4gKlxuICogQHBhcmFtIG1vZGUgLSBUaGUgbW9kZSBvZiB0aGUgY2FsbG91dC5cbiAqIEByZXR1cm5zIFRoZSBjb3JyZXNwb25kaW5nIG1vZGlmaWVyIHN0cmluZy5cbiAqL1xuZnVuY3Rpb24gZ2V0TW9kaWZpZXIobW9kZTogQ2FsbG91dE1vZGUpOiBzdHJpbmcge1xuICBzd2l0Y2ggKG1vZGUpIHtcbiAgICBjYXNlIENhbGxvdXRNb2RlLkZvbGRhYmxlQ29sbGFwc2VkOlxuICAgICAgcmV0dXJuICctJztcbiAgICBjYXNlIENhbGxvdXRNb2RlLkZvbGRhYmxlRXhwYW5kZWQ6XG4gICAgICByZXR1cm4gJysnO1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gJyc7XG4gIH1cbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQVdBLFNBQVMsdUJBQXVCO0FBQ2hDLFNBQVMsbUNBQW1DO0FBQzVDLFNBQVMsb0JBQW9CO0FBQzdCLFNBQVMsNEJBQTRCO0FBQ3JDLFNBQVMsU0FBUztBQUNsQixTQUFTLGtCQUFrQjtBQUtwQixJQUFLLGNBQUwsa0JBQUtBLGlCQUFMO0FBRUwsRUFBQUEsMEJBQUE7QUFHQSxFQUFBQSwwQkFBQTtBQUdBLEVBQUFBLDBCQUFBO0FBUlUsU0FBQUE7QUFBQSxHQUFBO0FBbURMLFNBQVMsY0FBYyxTQUFxQztBQUNqRSxRQUFNO0FBQUEsSUFDSixrQkFBa0I7QUFBQSxJQUNsQjtBQUFBLElBQ0EsU0FBUztBQUFBLElBQ1QsT0FBTztBQUFBLElBQ1AsT0FBTztBQUFBLEVBQ1QsSUFBSTtBQUNKLFFBQU0sV0FBVyxZQUFZLElBQUk7QUFDakMsUUFBTSxVQUFVLEdBQUcsVUFBVSxPQUFPLElBQUksSUFBSSxRQUFRLElBQUksTUFBTTtBQUFBO0FBQUEsOEJBQW9DO0FBQ2xHLFFBQU0sYUFBYSxRQUFRLGNBQThCLFVBQVUsS0FBSyxnQkFBZ0IsSUFBSSxNQUFNLHVCQUF1QixDQUFDO0FBQzFILEtBQUcsVUFBVSxxQkFBZ0IsRUFBRSxXQUFXLFdBQVcsQ0FBQztBQUV0RCxRQUFNLFdBQVcsSUFBSSxxQkFBcUIsQ0FBQyxZQUF5QztBQUNsRixlQUFXLFNBQVMsU0FBUztBQUMzQixVQUFJLE1BQU0sZ0JBQWdCO0FBQ3hCLGlCQUFTLFVBQVUsTUFBTSxNQUFNO0FBQy9CLG1CQUFXLDRCQUErQztBQUFBLFVBQ3hELGFBQWEsUUFBUTtBQUFBLFVBQ3JCLEtBQUssR0FBRztBQUFBLFVBQ1IsYUFBYTtBQUFBLFVBQ2IsZUFBZSxFQUFFLENBQUMsTUFBTSxFQUFFLGlCQUFpQixRQUFRLFdBQVc7QUFBQSxRQUNoRSxDQUFDLENBQUM7QUFBQSxNQUNKO0FBQUEsSUFDRjtBQUFBLEVBQ0YsQ0FBQztBQUNELFdBQVMsUUFBUSxVQUFVO0FBRTNCLGlCQUFlLFlBQVksYUFBeUM7QUFDbEUsZ0JBQVksZUFBZTtBQUMzQixRQUFJO0FBRUosVUFBTSxZQUFZLE1BQU0scUJBQXFCLElBQUksWUFBWTtBQUMzRCxnQkFBVSxNQUFNLGFBQWEsaUJBQWlCLFdBQVc7QUFDekQsa0JBQVksZUFBZTtBQUFBLElBQzdCLENBQUM7QUFDRCxnQkFBWSxlQUFlO0FBRTNCLGdCQUFZO0FBRVosZUFBVyxNQUFNO0FBQ2pCLE9BQUcsVUFBVSxTQUFTLEVBQUUsV0FBVyxXQUFXLENBQUM7QUFBQSxFQUNqRDtBQUNGO0FBUU8sU0FBUyxlQUFlLFNBQXlCO0FBQ3RELFFBQU0sUUFBUSxRQUFRLE1BQU0sSUFBSTtBQUNoQyxRQUFNLGdCQUFnQixNQUFNLElBQUksQ0FBQyxTQUFTLEtBQUssSUFBSSxFQUFFO0FBQ3JELFNBQU8sY0FBYyxLQUFLLElBQUk7QUFDaEM7QUFRQSxTQUFTLFlBQVksTUFBMkI7QUFDOUMsVUFBUSxNQUFNO0FBQUEsSUFDWixLQUFLO0FBQ0gsYUFBTztBQUFBLElBQ1QsS0FBSztBQUNILGFBQU87QUFBQSxJQUNUO0FBQ0UsYUFBTztBQUFBLEVBQ1g7QUFDRjsiLAogICJuYW1lcyI6IFsiQ2FsbG91dE1vZGUiXQp9Cg==