obsidian-dev-utils
Version:
This is the collection of useful functions that you can use for your Obsidian plugin development
204 lines (190 loc) • 14.1 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 initCjs() {
const globalThisRecord = globalThis;
globalThisRecord['__name'] ??= name;
const originalRequire = require;
if (originalRequire && !originalRequire.__isPatched) {
// eslint-disable-next-line no-global-assign, no-implicit-globals -- We need to patch the `require()` function.
require = Object.assign(
(id) => requirePatched(id),
originalRequire,
{
__isPatched: true
}
);
}
const newFuncs = {
__extractDefault() {
return extractDefault;
},
process() {
const browserProcess = {
browser: true,
cwd() {
return '/';
},
env: {},
platform: 'android'
};
return browserProcess;
}
};
for (const key of Object.keys(newFuncs)) {
globalThisRecord[key] ??= newFuncs[key]?.();
}
function name(obj) {
return obj;
}
function extractDefault(module) {
return module && module.__esModule && 'default' in module ? module.default : module;
}
const OBSIDIAN_BUILT_IN_MODULE_NAMES = [
'obsidian',
'@codemirror/autocomplete',
'@codemirror/collab',
'@codemirror/commands',
'@codemirror/language',
'@codemirror/lint',
'@codemirror/search',
'@codemirror/state',
'@codemirror/text',
'@codemirror/view',
'@lezer/common',
'@lezer/lr',
'@lezer/highlight'];
const DEPRECATED_OBSIDIAN_BUILT_IN_MODULE_NAMES = [
'@codemirror/closebrackets',
'@codemirror/comment',
'@codemirror/fold',
'@codemirror/gutter',
'@codemirror/highlight',
'@codemirror/history',
'@codemirror/matchbrackets',
'@codemirror/panel',
'@codemirror/rangeset',
'@codemirror/rectangular-selection',
'@codemirror/stream-parser',
'@codemirror/tooltip'];
function requirePatched(id) {
if (OBSIDIAN_BUILT_IN_MODULE_NAMES.includes(id) || DEPRECATED_OBSIDIAN_BUILT_IN_MODULE_NAMES.includes(id)) {
return originalRequire?.(id);
}
// eslint-disable-next-line @typescript-eslint/no-deprecated, @typescript-eslint/no-unnecessary-condition -- We need access to app here which might not be available yet.
if (globalThis?.app?.isMobile) {
if (id === 'process' || id === 'node:process') {
console.debug(`The most likely you can safely ignore this error. Module not found: ${id}. Fake process object is returned instead.`);
return globalThis.process;
}
} else {
const module = originalRequire?.(id);
if (module) {
return extractDefault(module);
}
}
console.debug(`The most likely you can safely ignore this error. Module not found: ${id}. Empty object is returned instead.`);
return {};
}
})();
;
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __export = (target, all) => {
for (var name in all)
__defProp(target, name, { get: all[name], enumerable: true });
};
var __copyProps = (to, from, except, desc) => {
if (from && typeof from === "object" || typeof from === "function") {
for (let key of __getOwnPropNames(from))
if (!__hasOwnProp.call(to, key) && key !== except)
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
}
return to;
};
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
var Callout_exports = {};
__export(Callout_exports, {
CalloutMode: () => CalloutMode,
renderCallout: () => renderCallout,
wrapForCallout: () => wrapForCallout
});
module.exports = __toCommonJS(Callout_exports);
var import_Error = require('../Error.cjs');
var import_ObjectUtils = require('../ObjectUtils.cjs');
var import_ValueProvider = require('../ValueProvider.cjs');
var import_Dataview = require('./Dataview.cjs');
var import_i18n = require('./i18n/i18n.cjs');
var import_Queue = require('./Queue.cjs');
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") ?? (0, import_Error.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);
(0, import_Queue.addToQueue)((0, import_ObjectUtils.normalizeOptionalProperties)({
abortSignal: options.abortSignal,
app: dv.app,
operationFn: loadContent,
operationName: (0, import_i18n.t)(($) => $.obsidianDevUtils.callout.loadContent)
}));
}
}
});
observer.observe(contentDiv);
async function loadContent(abortSignal) {
abortSignal.throwIfAborted();
let content;
const paragraph = await (0, import_Dataview.getRenderedContainer)(dv, async () => {
content = await (0, import_ValueProvider.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 "";
}
}
// Annotate the CommonJS export names for ESM import in node:
0 && (module.exports = {
CalloutMode,
renderCallout,
wrapForCallout
});
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL0NhbGxvdXQudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQHBhY2thZ2VEb2N1bWVudGF0aW9uXG4gKlxuICogVGhpcyBtb2R1bGUgcHJvdmlkZXMgdXRpbGl0eSBmdW5jdGlvbnMgZm9yIHJlbmRlcmluZyBjYWxsb3V0cyBpbiBEYXRhdmlldy5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IE1heWJlUmV0dXJuIH0gZnJvbSAnLi4vVHlwZS50cyc7XG5pbXBvcnQgdHlwZSB7IFZhbHVlUHJvdmlkZXIgfSBmcm9tICcuLi9WYWx1ZVByb3ZpZGVyLnRzJztcbmltcG9ydCB0eXBlIHsgRGF0YXZpZXdJbmxpbmVBcGkgfSBmcm9tICcuL0RhdGF2aWV3LnRzJztcbmltcG9ydCB0eXBlIHsgQWRkVG9RdWV1ZU9wdGlvbnMgfSBmcm9tICcuL1F1ZXVlLnRzJztcblxuaW1wb3J0IHsgdGhyb3dFeHByZXNzaW9uIH0gZnJvbSAnLi4vRXJyb3IudHMnO1xuaW1wb3J0IHsgbm9ybWFsaXplT3B0aW9uYWxQcm9wZXJ0aWVzIH0gZnJvbSAnLi4vT2JqZWN0VXRpbHMudHMnO1xuaW1wb3J0IHsgcmVzb2x2ZVZhbHVlIH0gZnJvbSAnLi4vVmFsdWVQcm92aWRlci50cyc7XG5pbXBvcnQgeyBnZXRSZW5kZXJlZENvbnRhaW5lciB9IGZyb20gJy4vRGF0YXZpZXcudHMnO1xuaW1wb3J0IHsgdCB9IGZyb20gJy4vaTE4bi9pMThuLnRzJztcbmltcG9ydCB7IGFkZFRvUXVldWUgfSBmcm9tICcuL1F1ZXVlLnRzJztcblxuLyoqXG4gKiBFbnVtIHJlcHJlc2VudGluZyB0aGUgbW9kZSBvZiBhIGNhbGxvdXQuXG4gKi9cbmV4cG9ydCBlbnVtIENhbGxvdXRNb2RlIHtcbiAgLyoqIERlZmF1bHQgbW9kZSwgd2l0aCBubyBzcGVjaWFsIGJlaGF2aW9yLiAqL1xuICBEZWZhdWx0LFxuXG4gIC8qKiBGb2xkYWJsZSBtb2RlIHdpdGggdGhlIGNhbGxvdXQgY29sbGFwc2VkLiAqL1xuICBGb2xkYWJsZUNvbGxhcHNlZCxcblxuICAvKiogRm9sZGFibGUgbW9kZSB3aXRoIHRoZSBjYWxsb3V0IGV4cGFuZGVkLiAqL1xuICBGb2xkYWJsZUV4cGFuZGVkXG59XG5cbi8qKlxuICogT3B0aW9ucyBmb3Ige0BsaW5rIHJlbmRlckNhbGxvdXR9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlbmRlckNhbGxvdXRPcHRpb25zIHtcbiAgLyoqXG4gICAqIEFuIGFib3J0IHNpZ25hbC5cbiAgICovXG4gIGFib3J0U2lnbmFsPzogQWJvcnRTaWduYWw7XG5cbiAgLyoqXG4gICAqIEFuIG9wdGlvbmFsIHByb3ZpZGVyIGZvciB0aGUgY29udGVudCwgd2hpY2ggY2FuIGJlIGVpdGhlciBhIHN0cmluZyBvciBhIE5vZGUuXG4gICAqL1xuICBjb250ZW50UHJvdmlkZXI/OiBWYWx1ZVByb3ZpZGVyPE1heWJlUmV0dXJuPE5vZGUgfCBzdHJpbmc+PjtcblxuICAvKipcbiAgICogQSB7QGxpbmsgRGF0YXZpZXdJbmxpbmVBcGl9IGluc3RhbmNlLlxuICAgKi9cbiAgZHY6IERhdGF2aWV3SW5saW5lQXBpO1xuXG4gIC8qKlxuICAgKiBBIGhlYWRlciB0ZXh0IG9mIHRoZSBjYWxsb3V0LCBkZWZhdWx0IGlzIGFuIGVtcHR5IHN0cmluZy5cbiAgICovXG4gIGhlYWRlcj86IHN0cmluZztcblxuICAvKipcbiAgICogQSBjYWxsb3V0IG1vZGUsIGRlZmF1bHQgaXMgYENhbGxvdXRNb2RlLkZvbGRhYmxlQ29sbGFwc2VkYC5cbiAgICovXG4gIG1vZGU/OiBDYWxsb3V0TW9kZTtcblxuICAvKipcbiAgICogQSB0eXBlIG9mIHRoZSBjYWxsb3V0LCBkZWZhdWx0IGlzIGBcIk5PVEVcImAuXG4gICAqL1xuICB0eXBlPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFJlbmRlcnMgYSBjYWxsb3V0IGJsb2NrIGluIERhdGF2aWV3LlxuICpcbiAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIG9wdGlvbnMgZm9yIHJlbmRlcmluZyB0aGUgY2FsbG91dC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlbmRlckNhbGxvdXQob3B0aW9uczogUmVuZGVyQ2FsbG91dE9wdGlvbnMpOiB2b2lkIHtcbiAgY29uc3Qge1xuICAgIGNvbnRlbnRQcm92aWRlciA9ICcnLFxuICAgIGR2LFxuICAgIGhlYWRlciA9ICcnLFxuICAgIG1vZGUgPSBDYWxsb3V0TW9kZS5Gb2xkYWJsZUNvbGxhcHNlZCxcbiAgICB0eXBlID0gJ05PVEUnXG4gIH0gPSBvcHRpb25zO1xuICBjb25zdCBtb2RpZmllciA9IGdldE1vZGlmaWVyKG1vZGUpO1xuICBjb25zdCBjYWxsb3V0ID0gZHYucGFyYWdyYXBoKGA+IFshJHt0eXBlfV0ke21vZGlmaWVyfSAke2hlYWRlcn1cXG4+XFxuPiA8ZGl2IGNsYXNzPVwiY29udGVudFwiPjwvZGl2PmApO1xuICBjb25zdCBjb250ZW50RGl2ID0gY2FsbG91dC5xdWVyeVNlbGVjdG9yPEhUTUxEaXZFbGVtZW50PignLmNvbnRlbnQnKSA/PyB0aHJvd0V4cHJlc3Npb24obmV3IEVycm9yKCdDb250ZW50IGRpdiBub3QgZm91bmQnKSk7XG4gIGR2LnBhcmFncmFwaCgnTG9hZGluZy4uLiBcdTIzRjMnLCB7IGNvbnRhaW5lcjogY29udGVudERpdiB9KTtcblxuICBjb25zdCBvYnNlcnZlciA9IG5ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcigoZW50cmllczogSW50ZXJzZWN0aW9uT2JzZXJ2ZXJFbnRyeVtdKSA9PiB7XG4gICAgZm9yIChjb25zdCBlbnRyeSBvZiBlbnRyaWVzKSB7XG4gICAgICBpZiAoZW50cnkuaXNJbnRlcnNlY3RpbmcpIHtcbiAgICAgICAgb2JzZXJ2ZXIudW5vYnNlcnZlKGVudHJ5LnRhcmdldCk7XG4gICAgICAgIGFkZFRvUXVldWUobm9ybWFsaXplT3B0aW9uYWxQcm9wZXJ0aWVzPEFkZFRvUXVldWVPcHRpb25zPih7XG4gICAgICAgICAgYWJvcnRTaWduYWw6IG9wdGlvbnMuYWJvcnRTaWduYWwsXG4gICAgICAgICAgYXBwOiBkdi5hcHAsXG4gICAgICAgICAgb3BlcmF0aW9uRm46IGxvYWRDb250ZW50LFxuICAgICAgICAgIG9wZXJhdGlvbk5hbWU6IHQoKCQpID0+ICQub2JzaWRpYW5EZXZVdGlscy5jYWxsb3V0LmxvYWRDb250ZW50KVxuICAgICAgICB9KSk7XG4gICAgICB9XG4gICAgfVxuICB9KTtcbiAgb2JzZXJ2ZXIub2JzZXJ2ZShjb250ZW50RGl2KTtcblxuICBhc3luYyBmdW5jdGlvbiBsb2FkQ29udGVudChhYm9ydFNpZ25hbDogQWJvcnRTaWduYWwpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhYm9ydFNpZ25hbC50aHJvd0lmQWJvcnRlZCgpO1xuICAgIGxldCBjb250ZW50OiBNYXliZVJldHVybjxOb2RlIHwgc3RyaW5nIHwgdW5kZWZpbmVkPjtcblxuICAgIGNvbnN0IHBhcmFncmFwaCA9IGF3YWl0IGdldFJlbmRlcmVkQ29udGFpbmVyKGR2LCBhc3luYyAoKSA9PiB7XG4gICAgICBjb250ZW50ID0gYXdhaXQgcmVzb2x2ZVZhbHVlKGNvbnRlbnRQcm92aWRlciwgYWJvcnRTaWduYWwpO1xuICAgICAgYWJvcnRTaWduYWwudGhyb3dJZkFib3J0ZWQoKTtcbiAgICB9KTtcbiAgICBhYm9ydFNpZ25hbC50aHJvd0lmQWJvcnRlZCgpO1xuXG4gICAgY29udGVudCA/Pz0gcGFyYWdyYXBoO1xuXG4gICAgY29udGVudERpdi5lbXB0eSgpO1xuICAgIGR2LnBhcmFncmFwaChjb250ZW50LCB7IGNvbnRhaW5lcjogY29udGVudERpdiB9KTtcbiAgfVxufVxuXG4vKipcbiAqIFdyYXBzIHRoZSBwcm92aWRlZCBjb250ZW50IGluIGJsb2NrcXVvdGUgc3ludGF4IGZvciBhIGNhbGxvdXQuXG4gKlxuICogQHBhcmFtIGNvbnRlbnQgLSBUaGUgY29udGVudCB0byB3cmFwLlxuICogQHJldHVybnMgVGhlIGNvbnRlbnQgd3JhcHBlZCBpbiBibG9ja3F1b3RlIHN5bnRheC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHdyYXBGb3JDYWxsb3V0KGNvbnRlbnQ6IHN0cmluZyk6IHN0cmluZyB7XG4gIGNvbnN0IGxpbmVzID0gY29udGVudC5zcGxpdCgnXFxuJyk7XG4gIGNvbnN0IHByZWZpeGVkTGluZXMgPSBsaW5lcy5tYXAoKGxpbmUpID0+IGA+ICR7bGluZX1gKTtcbiAgcmV0dXJuIHByZWZpeGVkTGluZXMuam9pbignXFxuJyk7XG59XG5cbi8qKlxuICogUmV0dXJucyB0aGUgbW9kaWZpZXIgc3RyaW5nIGJhc2VkIG9uIHRoZSBjYWxsb3V0IG1vZGUuXG4gKlxuICogQHBhcmFtIG1vZGUgLSBUaGUgbW9kZSBvZiB0aGUgY2FsbG91dC5cbiAqIEByZXR1cm5zIFRoZSBjb3JyZXNwb25kaW5nIG1vZGlmaWVyIHN0cmluZy5cbiAqL1xuZnVuY3Rpb24gZ2V0TW9kaWZpZXIobW9kZTogQ2FsbG91dE1vZGUpOiBzdHJpbmcge1xuICBzd2l0Y2ggKG1vZGUpIHtcbiAgICBjYXNlIENhbGxvdXRNb2RlLkZvbGRhYmxlQ29sbGFwc2VkOlxuICAgICAgcmV0dXJuICctJztcbiAgICBjYXNlIENhbGxvdXRNb2RlLkZvbGRhYmxlRXhwYW5kZWQ6XG4gICAgICByZXR1cm4gJysnO1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gJyc7XG4gIH1cbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVdBLG1CQUFnQztBQUNoQyx5QkFBNEM7QUFDNUMsMkJBQTZCO0FBQzdCLHNCQUFxQztBQUNyQyxrQkFBa0I7QUFDbEIsbUJBQTJCO0FBS3BCLElBQUssY0FBTCxrQkFBS0EsaUJBQUw7QUFFTCxFQUFBQSwwQkFBQTtBQUdBLEVBQUFBLDBCQUFBO0FBR0EsRUFBQUEsMEJBQUE7QUFSVSxTQUFBQTtBQUFBLEdBQUE7QUFtREwsU0FBUyxjQUFjLFNBQXFDO0FBQ2pFLFFBQU07QUFBQSxJQUNKLGtCQUFrQjtBQUFBLElBQ2xCO0FBQUEsSUFDQSxTQUFTO0FBQUEsSUFDVCxPQUFPO0FBQUEsSUFDUCxPQUFPO0FBQUEsRUFDVCxJQUFJO0FBQ0osUUFBTSxXQUFXLFlBQVksSUFBSTtBQUNqQyxRQUFNLFVBQVUsR0FBRyxVQUFVLE9BQU8sSUFBSSxJQUFJLFFBQVEsSUFBSSxNQUFNO0FBQUE7QUFBQSw4QkFBb0M7QUFDbEcsUUFBTSxhQUFhLFFBQVEsY0FBOEIsVUFBVSxTQUFLLDhCQUFnQixJQUFJLE1BQU0sdUJBQXVCLENBQUM7QUFDMUgsS0FBRyxVQUFVLHFCQUFnQixFQUFFLFdBQVcsV0FBVyxDQUFDO0FBRXRELFFBQU0sV0FBVyxJQUFJLHFCQUFxQixDQUFDLFlBQXlDO0FBQ2xGLGVBQVcsU0FBUyxTQUFTO0FBQzNCLFVBQUksTUFBTSxnQkFBZ0I7QUFDeEIsaUJBQVMsVUFBVSxNQUFNLE1BQU07QUFDL0IseUNBQVcsZ0RBQStDO0FBQUEsVUFDeEQsYUFBYSxRQUFRO0FBQUEsVUFDckIsS0FBSyxHQUFHO0FBQUEsVUFDUixhQUFhO0FBQUEsVUFDYixtQkFBZSxlQUFFLENBQUMsTUFBTSxFQUFFLGlCQUFpQixRQUFRLFdBQVc7QUFBQSxRQUNoRSxDQUFDLENBQUM7QUFBQSxNQUNKO0FBQUEsSUFDRjtBQUFBLEVBQ0YsQ0FBQztBQUNELFdBQVMsUUFBUSxVQUFVO0FBRTNCLGlCQUFlLFlBQVksYUFBeUM7QUFDbEUsZ0JBQVksZUFBZTtBQUMzQixRQUFJO0FBRUosVUFBTSxZQUFZLFVBQU0sc0NBQXFCLElBQUksWUFBWTtBQUMzRCxnQkFBVSxVQUFNLG1DQUFhLGlCQUFpQixXQUFXO0FBQ3pELGtCQUFZLGVBQWU7QUFBQSxJQUM3QixDQUFDO0FBQ0QsZ0JBQVksZUFBZTtBQUUzQixnQkFBWTtBQUVaLGVBQVcsTUFBTTtBQUNqQixPQUFHLFVBQVUsU0FBUyxFQUFFLFdBQVcsV0FBVyxDQUFDO0FBQUEsRUFDakQ7QUFDRjtBQVFPLFNBQVMsZUFBZSxTQUF5QjtBQUN0RCxRQUFNLFFBQVEsUUFBUSxNQUFNLElBQUk7QUFDaEMsUUFBTSxnQkFBZ0IsTUFBTSxJQUFJLENBQUMsU0FBUyxLQUFLLElBQUksRUFBRTtBQUNyRCxTQUFPLGNBQWMsS0FBSyxJQUFJO0FBQ2hDO0FBUUEsU0FBUyxZQUFZLE1BQTJCO0FBQzlDLFVBQVEsTUFBTTtBQUFBLElBQ1osS0FBSztBQUNILGFBQU87QUFBQSxJQUNULEtBQUs7QUFDSCxhQUFPO0FBQUEsSUFDVDtBQUNFLGFBQU87QUFBQSxFQUNYO0FBQ0Y7IiwKICAibmFtZXMiOiBbIkNhbGxvdXRNb2RlIl0KfQo=