39492 lines
No EOL
1.1 MiB
39492 lines
No EOL
1.1 MiB
/*
|
|
THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
|
|
if you want to view the source, please visit the github repository of this plugin
|
|
*/
|
|
|
|
var __create = Object.create;
|
|
var __defProp = Object.defineProperty;
|
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
var __getProtoOf = Object.getPrototypeOf;
|
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
var __commonJS = (cb, mod) => function __require() {
|
|
return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
|
|
};
|
|
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 __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
// If the importer is in node compatibility mode or this is not an ESM
|
|
// file that has been converted to a CommonJS file using a Babel-
|
|
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
mod
|
|
));
|
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
var __publicField = (obj, key, value) => {
|
|
__defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
return value;
|
|
};
|
|
var __accessCheck = (obj, member, msg) => {
|
|
if (!member.has(obj))
|
|
throw TypeError("Cannot " + msg);
|
|
};
|
|
var __privateGet = (obj, member, getter) => {
|
|
__accessCheck(obj, member, "read from private field");
|
|
return getter ? getter.call(obj) : member.get(obj);
|
|
};
|
|
var __privateAdd = (obj, member, value) => {
|
|
if (member.has(obj))
|
|
throw TypeError("Cannot add the same private member more than once");
|
|
member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
|
|
};
|
|
var __privateSet = (obj, member, value, setter) => {
|
|
__accessCheck(obj, member, "write to private field");
|
|
setter ? setter.call(obj, value) : member.set(obj, value);
|
|
return value;
|
|
};
|
|
|
|
// node_modules/classnames/index.js
|
|
var require_classnames = __commonJS({
|
|
"node_modules/classnames/index.js"(exports, module2) {
|
|
(function() {
|
|
"use strict";
|
|
var hasOwn2 = {}.hasOwnProperty;
|
|
function classNames2() {
|
|
var classes = "";
|
|
for (var i = 0; i < arguments.length; i++) {
|
|
var arg = arguments[i];
|
|
if (arg) {
|
|
classes = appendClass(classes, parseValue(arg));
|
|
}
|
|
}
|
|
return classes;
|
|
}
|
|
function parseValue(arg) {
|
|
if (typeof arg === "string" || typeof arg === "number") {
|
|
return arg;
|
|
}
|
|
if (typeof arg !== "object") {
|
|
return "";
|
|
}
|
|
if (Array.isArray(arg)) {
|
|
return classNames2.apply(null, arg);
|
|
}
|
|
if (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes("[native code]")) {
|
|
return arg.toString();
|
|
}
|
|
var classes = "";
|
|
for (var key in arg) {
|
|
if (hasOwn2.call(arg, key) && arg[key]) {
|
|
classes = appendClass(classes, key);
|
|
}
|
|
}
|
|
return classes;
|
|
}
|
|
function appendClass(value, newClass) {
|
|
if (!newClass) {
|
|
return value;
|
|
}
|
|
if (value) {
|
|
return value + " " + newClass;
|
|
}
|
|
return value + newClass;
|
|
}
|
|
if (typeof module2 !== "undefined" && module2.exports) {
|
|
classNames2.default = classNames2;
|
|
module2.exports = classNames2;
|
|
} else if (typeof define === "function" && typeof define.amd === "object" && define.amd) {
|
|
define("classnames", [], function() {
|
|
return classNames2;
|
|
});
|
|
} else {
|
|
window.classNames = classNames2;
|
|
}
|
|
})();
|
|
}
|
|
});
|
|
|
|
// src/main.ts
|
|
var main_exports = {};
|
|
__export(main_exports, {
|
|
default: () => Lineage
|
|
});
|
|
module.exports = __toCommonJS(main_exports);
|
|
var import_obsidian45 = require("obsidian");
|
|
|
|
// src/view/view.ts
|
|
var import_obsidian37 = require("obsidian");
|
|
|
|
// node_modules/svelte/src/runtime/internal/utils.js
|
|
function noop() {
|
|
}
|
|
function assign(tar, src) {
|
|
for (const k in src)
|
|
tar[k] = src[k];
|
|
return (
|
|
/** @type {T & S} */
|
|
tar
|
|
);
|
|
}
|
|
function run(fn) {
|
|
return fn();
|
|
}
|
|
function blank_object() {
|
|
return /* @__PURE__ */ Object.create(null);
|
|
}
|
|
function run_all(fns) {
|
|
fns.forEach(run);
|
|
}
|
|
function is_function(thing) {
|
|
return typeof thing === "function";
|
|
}
|
|
function safe_not_equal(a, b) {
|
|
return a != a ? b == b : a !== b || a && typeof a === "object" || typeof a === "function";
|
|
}
|
|
function is_empty(obj) {
|
|
return Object.keys(obj).length === 0;
|
|
}
|
|
function subscribe(store, ...callbacks) {
|
|
if (store == null) {
|
|
for (const callback of callbacks) {
|
|
callback(void 0);
|
|
}
|
|
return noop;
|
|
}
|
|
const unsub = store.subscribe(...callbacks);
|
|
return unsub.unsubscribe ? () => unsub.unsubscribe() : unsub;
|
|
}
|
|
function get_store_value(store) {
|
|
let value;
|
|
subscribe(store, (_) => value = _)();
|
|
return value;
|
|
}
|
|
function component_subscribe(component, store, callback) {
|
|
component.$$.on_destroy.push(subscribe(store, callback));
|
|
}
|
|
function create_slot(definition, ctx, $$scope, fn) {
|
|
if (definition) {
|
|
const slot_ctx = get_slot_context(definition, ctx, $$scope, fn);
|
|
return definition[0](slot_ctx);
|
|
}
|
|
}
|
|
function get_slot_context(definition, ctx, $$scope, fn) {
|
|
return definition[1] && fn ? assign($$scope.ctx.slice(), definition[1](fn(ctx))) : $$scope.ctx;
|
|
}
|
|
function get_slot_changes(definition, $$scope, dirty, fn) {
|
|
if (definition[2] && fn) {
|
|
const lets = definition[2](fn(dirty));
|
|
if ($$scope.dirty === void 0) {
|
|
return lets;
|
|
}
|
|
if (typeof lets === "object") {
|
|
const merged = [];
|
|
const len = Math.max($$scope.dirty.length, lets.length);
|
|
for (let i = 0; i < len; i += 1) {
|
|
merged[i] = $$scope.dirty[i] | lets[i];
|
|
}
|
|
return merged;
|
|
}
|
|
return $$scope.dirty | lets;
|
|
}
|
|
return $$scope.dirty;
|
|
}
|
|
function update_slot_base(slot, slot_definition, ctx, $$scope, slot_changes, get_slot_context_fn) {
|
|
if (slot_changes) {
|
|
const slot_context = get_slot_context(slot_definition, ctx, $$scope, get_slot_context_fn);
|
|
slot.p(slot_context, slot_changes);
|
|
}
|
|
}
|
|
function get_all_dirty_from_scope($$scope) {
|
|
if ($$scope.ctx.length > 32) {
|
|
const dirty = [];
|
|
const length = $$scope.ctx.length / 32;
|
|
for (let i = 0; i < length; i++) {
|
|
dirty[i] = -1;
|
|
}
|
|
return dirty;
|
|
}
|
|
return -1;
|
|
}
|
|
function exclude_internal_props(props) {
|
|
const result = {};
|
|
for (const k in props)
|
|
if (k[0] !== "$")
|
|
result[k] = props[k];
|
|
return result;
|
|
}
|
|
function compute_rest_props(props, keys) {
|
|
const rest = {};
|
|
keys = new Set(keys);
|
|
for (const k in props)
|
|
if (!keys.has(k) && k[0] !== "$")
|
|
rest[k] = props[k];
|
|
return rest;
|
|
}
|
|
function null_to_empty(value) {
|
|
return value == null ? "" : value;
|
|
}
|
|
function action_destroyer(action_result) {
|
|
return action_result && is_function(action_result.destroy) ? action_result.destroy : noop;
|
|
}
|
|
|
|
// node_modules/svelte/src/runtime/internal/globals.js
|
|
var globals = typeof window !== "undefined" ? window : typeof globalThis !== "undefined" ? globalThis : (
|
|
// @ts-ignore Node typings have this
|
|
global
|
|
);
|
|
|
|
// node_modules/svelte/src/runtime/internal/ResizeObserverSingleton.js
|
|
var ResizeObserverSingleton = class _ResizeObserverSingleton {
|
|
/** @param {ResizeObserverOptions} options */
|
|
constructor(options) {
|
|
/**
|
|
* @private
|
|
* @readonly
|
|
* @type {WeakMap<Element, import('./private.js').Listener>}
|
|
*/
|
|
__publicField(this, "_listeners", "WeakMap" in globals ? /* @__PURE__ */ new WeakMap() : void 0);
|
|
/**
|
|
* @private
|
|
* @type {ResizeObserver}
|
|
*/
|
|
__publicField(this, "_observer");
|
|
/** @type {ResizeObserverOptions} */
|
|
__publicField(this, "options");
|
|
this.options = options;
|
|
}
|
|
/**
|
|
* @param {Element} element
|
|
* @param {import('./private.js').Listener} listener
|
|
* @returns {() => void}
|
|
*/
|
|
observe(element2, listener) {
|
|
this._listeners.set(element2, listener);
|
|
this._getObserver().observe(element2, this.options);
|
|
return () => {
|
|
this._listeners.delete(element2);
|
|
this._observer.unobserve(element2);
|
|
};
|
|
}
|
|
/**
|
|
* @private
|
|
*/
|
|
_getObserver() {
|
|
return this._observer ?? (this._observer = new ResizeObserver((entries) => {
|
|
for (const entry of entries) {
|
|
_ResizeObserverSingleton.entries.set(entry.target, entry);
|
|
this._listeners.get(entry.target)?.(entry);
|
|
}
|
|
}));
|
|
}
|
|
};
|
|
ResizeObserverSingleton.entries = "WeakMap" in globals ? /* @__PURE__ */ new WeakMap() : void 0;
|
|
|
|
// node_modules/svelte/src/runtime/internal/dom.js
|
|
var is_hydrating = false;
|
|
function start_hydrating() {
|
|
is_hydrating = true;
|
|
}
|
|
function end_hydrating() {
|
|
is_hydrating = false;
|
|
}
|
|
function append(target, node) {
|
|
target.appendChild(node);
|
|
}
|
|
function append_styles(target, style_sheet_id, styles) {
|
|
const append_styles_to = get_root_for_style(target);
|
|
if (!append_styles_to.getElementById(style_sheet_id)) {
|
|
const style = element("style");
|
|
style.id = style_sheet_id;
|
|
style.textContent = styles;
|
|
append_stylesheet(append_styles_to, style);
|
|
}
|
|
}
|
|
function get_root_for_style(node) {
|
|
if (!node)
|
|
return document;
|
|
const root = node.getRootNode ? node.getRootNode() : node.ownerDocument;
|
|
if (root && /** @type {ShadowRoot} */
|
|
root.host) {
|
|
return (
|
|
/** @type {ShadowRoot} */
|
|
root
|
|
);
|
|
}
|
|
return node.ownerDocument;
|
|
}
|
|
function append_stylesheet(node, style) {
|
|
append(
|
|
/** @type {Document} */
|
|
node.head || node,
|
|
style
|
|
);
|
|
return style.sheet;
|
|
}
|
|
function insert(target, node, anchor) {
|
|
target.insertBefore(node, anchor || null);
|
|
}
|
|
function detach(node) {
|
|
if (node.parentNode) {
|
|
node.parentNode.removeChild(node);
|
|
}
|
|
}
|
|
function destroy_each(iterations, detaching) {
|
|
for (let i = 0; i < iterations.length; i += 1) {
|
|
if (iterations[i])
|
|
iterations[i].d(detaching);
|
|
}
|
|
}
|
|
function element(name) {
|
|
return document.createElement(name);
|
|
}
|
|
function svg_element(name) {
|
|
return document.createElementNS("http://www.w3.org/2000/svg", name);
|
|
}
|
|
function text(data) {
|
|
return document.createTextNode(data);
|
|
}
|
|
function space() {
|
|
return text(" ");
|
|
}
|
|
function empty() {
|
|
return text("");
|
|
}
|
|
function listen(node, event, handler, options) {
|
|
node.addEventListener(event, handler, options);
|
|
return () => node.removeEventListener(event, handler, options);
|
|
}
|
|
function attr(node, attribute, value) {
|
|
if (value == null)
|
|
node.removeAttribute(attribute);
|
|
else if (node.getAttribute(attribute) !== value)
|
|
node.setAttribute(attribute, value);
|
|
}
|
|
function set_svg_attributes(node, attributes) {
|
|
for (const key in attributes) {
|
|
attr(node, key, attributes[key]);
|
|
}
|
|
}
|
|
function children(element2) {
|
|
return Array.from(element2.childNodes);
|
|
}
|
|
function set_data(text2, data) {
|
|
data = "" + data;
|
|
if (text2.data === data)
|
|
return;
|
|
text2.data = /** @type {string} */
|
|
data;
|
|
}
|
|
function set_input_value(input, value) {
|
|
input.value = value == null ? "" : value;
|
|
}
|
|
function set_style(node, key, value, important) {
|
|
if (value == null) {
|
|
node.style.removeProperty(key);
|
|
} else {
|
|
node.style.setProperty(key, value, important ? "important" : "");
|
|
}
|
|
}
|
|
function select_option(select, value, mounting) {
|
|
for (let i = 0; i < select.options.length; i += 1) {
|
|
const option = select.options[i];
|
|
if (option.__value === value) {
|
|
option.selected = true;
|
|
return;
|
|
}
|
|
}
|
|
if (!mounting || value !== void 0) {
|
|
select.selectedIndex = -1;
|
|
}
|
|
}
|
|
function toggle_class(element2, name, toggle) {
|
|
element2.classList.toggle(name, !!toggle);
|
|
}
|
|
var HtmlTag = class {
|
|
constructor(is_svg = false) {
|
|
/**
|
|
* @private
|
|
* @default false
|
|
*/
|
|
__publicField(this, "is_svg", false);
|
|
/** parent for creating node */
|
|
__publicField(this, "e");
|
|
/** html tag nodes */
|
|
__publicField(this, "n");
|
|
/** target */
|
|
__publicField(this, "t");
|
|
/** anchor */
|
|
__publicField(this, "a");
|
|
this.is_svg = is_svg;
|
|
this.e = this.n = null;
|
|
}
|
|
/**
|
|
* @param {string} html
|
|
* @returns {void}
|
|
*/
|
|
c(html) {
|
|
this.h(html);
|
|
}
|
|
/**
|
|
* @param {string} html
|
|
* @param {HTMLElement | SVGElement} target
|
|
* @param {HTMLElement | SVGElement} anchor
|
|
* @returns {void}
|
|
*/
|
|
m(html, target, anchor = null) {
|
|
if (!this.e) {
|
|
if (this.is_svg)
|
|
this.e = svg_element(
|
|
/** @type {keyof SVGElementTagNameMap} */
|
|
target.nodeName
|
|
);
|
|
else
|
|
this.e = element(
|
|
/** @type {keyof HTMLElementTagNameMap} */
|
|
target.nodeType === 11 ? "TEMPLATE" : target.nodeName
|
|
);
|
|
this.t = target.tagName !== "TEMPLATE" ? target : (
|
|
/** @type {HTMLTemplateElement} */
|
|
target.content
|
|
);
|
|
this.c(html);
|
|
}
|
|
this.i(anchor);
|
|
}
|
|
/**
|
|
* @param {string} html
|
|
* @returns {void}
|
|
*/
|
|
h(html) {
|
|
this.e.innerHTML = html;
|
|
this.n = Array.from(
|
|
this.e.nodeName === "TEMPLATE" ? this.e.content.childNodes : this.e.childNodes
|
|
);
|
|
}
|
|
/**
|
|
* @returns {void} */
|
|
i(anchor) {
|
|
for (let i = 0; i < this.n.length; i += 1) {
|
|
insert(this.t, this.n[i], anchor);
|
|
}
|
|
}
|
|
/**
|
|
* @param {string} html
|
|
* @returns {void}
|
|
*/
|
|
p(html) {
|
|
this.d();
|
|
this.h(html);
|
|
this.i(this.a);
|
|
}
|
|
/**
|
|
* @returns {void} */
|
|
d() {
|
|
this.n.forEach(detach);
|
|
}
|
|
};
|
|
function get_custom_elements_slots(element2) {
|
|
const result = {};
|
|
element2.childNodes.forEach(
|
|
/** @param {Element} node */
|
|
(node) => {
|
|
result[node.slot || "default"] = true;
|
|
}
|
|
);
|
|
return result;
|
|
}
|
|
function construct_svelte_component(component, props) {
|
|
return new component(props);
|
|
}
|
|
|
|
// node_modules/svelte/src/runtime/internal/lifecycle.js
|
|
var current_component;
|
|
function set_current_component(component) {
|
|
current_component = component;
|
|
}
|
|
function get_current_component() {
|
|
if (!current_component)
|
|
throw new Error("Function called outside component initialization");
|
|
return current_component;
|
|
}
|
|
function onMount(fn) {
|
|
get_current_component().$$.on_mount.push(fn);
|
|
}
|
|
function onDestroy(fn) {
|
|
get_current_component().$$.on_destroy.push(fn);
|
|
}
|
|
function setContext(key, context) {
|
|
get_current_component().$$.context.set(key, context);
|
|
return context;
|
|
}
|
|
function getContext(key) {
|
|
return get_current_component().$$.context.get(key);
|
|
}
|
|
function bubble(component, event) {
|
|
const callbacks = component.$$.callbacks[event.type];
|
|
if (callbacks) {
|
|
callbacks.slice().forEach((fn) => fn.call(this, event));
|
|
}
|
|
}
|
|
|
|
// node_modules/svelte/src/runtime/internal/scheduler.js
|
|
var dirty_components = [];
|
|
var binding_callbacks = [];
|
|
var render_callbacks = [];
|
|
var flush_callbacks = [];
|
|
var resolved_promise = /* @__PURE__ */ Promise.resolve();
|
|
var update_scheduled = false;
|
|
function schedule_update() {
|
|
if (!update_scheduled) {
|
|
update_scheduled = true;
|
|
resolved_promise.then(flush);
|
|
}
|
|
}
|
|
function add_render_callback(fn) {
|
|
render_callbacks.push(fn);
|
|
}
|
|
var seen_callbacks = /* @__PURE__ */ new Set();
|
|
var flushidx = 0;
|
|
function flush() {
|
|
if (flushidx !== 0) {
|
|
return;
|
|
}
|
|
const saved_component = current_component;
|
|
do {
|
|
try {
|
|
while (flushidx < dirty_components.length) {
|
|
const component = dirty_components[flushidx];
|
|
flushidx++;
|
|
set_current_component(component);
|
|
update(component.$$);
|
|
}
|
|
} catch (e) {
|
|
dirty_components.length = 0;
|
|
flushidx = 0;
|
|
throw e;
|
|
}
|
|
set_current_component(null);
|
|
dirty_components.length = 0;
|
|
flushidx = 0;
|
|
while (binding_callbacks.length)
|
|
binding_callbacks.pop()();
|
|
for (let i = 0; i < render_callbacks.length; i += 1) {
|
|
const callback = render_callbacks[i];
|
|
if (!seen_callbacks.has(callback)) {
|
|
seen_callbacks.add(callback);
|
|
callback();
|
|
}
|
|
}
|
|
render_callbacks.length = 0;
|
|
} while (dirty_components.length);
|
|
while (flush_callbacks.length) {
|
|
flush_callbacks.pop()();
|
|
}
|
|
update_scheduled = false;
|
|
seen_callbacks.clear();
|
|
set_current_component(saved_component);
|
|
}
|
|
function update($$) {
|
|
if ($$.fragment !== null) {
|
|
$$.update();
|
|
run_all($$.before_update);
|
|
const dirty = $$.dirty;
|
|
$$.dirty = [-1];
|
|
$$.fragment && $$.fragment.p($$.ctx, dirty);
|
|
$$.after_update.forEach(add_render_callback);
|
|
}
|
|
}
|
|
function flush_render_callbacks(fns) {
|
|
const filtered = [];
|
|
const targets2 = [];
|
|
render_callbacks.forEach((c) => fns.indexOf(c) === -1 ? filtered.push(c) : targets2.push(c));
|
|
targets2.forEach((c) => c());
|
|
render_callbacks = filtered;
|
|
}
|
|
|
|
// node_modules/svelte/src/runtime/internal/transitions.js
|
|
var outroing = /* @__PURE__ */ new Set();
|
|
var outros;
|
|
function group_outros() {
|
|
outros = {
|
|
r: 0,
|
|
c: [],
|
|
p: outros
|
|
// parent group
|
|
};
|
|
}
|
|
function check_outros() {
|
|
if (!outros.r) {
|
|
run_all(outros.c);
|
|
}
|
|
outros = outros.p;
|
|
}
|
|
function transition_in(block, local) {
|
|
if (block && block.i) {
|
|
outroing.delete(block);
|
|
block.i(local);
|
|
}
|
|
}
|
|
function transition_out(block, local, detach2, callback) {
|
|
if (block && block.o) {
|
|
if (outroing.has(block))
|
|
return;
|
|
outroing.add(block);
|
|
outros.c.push(() => {
|
|
outroing.delete(block);
|
|
if (callback) {
|
|
if (detach2)
|
|
block.d(1);
|
|
callback();
|
|
}
|
|
});
|
|
block.o(local);
|
|
} else if (callback) {
|
|
callback();
|
|
}
|
|
}
|
|
|
|
// node_modules/svelte/src/runtime/internal/each.js
|
|
function ensure_array_like(array_like_or_iterator) {
|
|
return array_like_or_iterator?.length !== void 0 ? array_like_or_iterator : Array.from(array_like_or_iterator);
|
|
}
|
|
function outro_and_destroy_block(block, lookup) {
|
|
transition_out(block, 1, 1, () => {
|
|
lookup.delete(block.key);
|
|
});
|
|
}
|
|
function update_keyed_each(old_blocks, dirty, get_key, dynamic, ctx, list, lookup, node, destroy, create_each_block18, next, get_context) {
|
|
let o = old_blocks.length;
|
|
let n = list.length;
|
|
let i = o;
|
|
const old_indexes = {};
|
|
while (i--)
|
|
old_indexes[old_blocks[i].key] = i;
|
|
const new_blocks = [];
|
|
const new_lookup = /* @__PURE__ */ new Map();
|
|
const deltas = /* @__PURE__ */ new Map();
|
|
const updates = [];
|
|
i = n;
|
|
while (i--) {
|
|
const child_ctx = get_context(ctx, list, i);
|
|
const key = get_key(child_ctx);
|
|
let block = lookup.get(key);
|
|
if (!block) {
|
|
block = create_each_block18(key, child_ctx);
|
|
block.c();
|
|
} else if (dynamic) {
|
|
updates.push(() => block.p(child_ctx, dirty));
|
|
}
|
|
new_lookup.set(key, new_blocks[i] = block);
|
|
if (key in old_indexes)
|
|
deltas.set(key, Math.abs(i - old_indexes[key]));
|
|
}
|
|
const will_move = /* @__PURE__ */ new Set();
|
|
const did_move = /* @__PURE__ */ new Set();
|
|
function insert2(block) {
|
|
transition_in(block, 1);
|
|
block.m(node, next);
|
|
lookup.set(block.key, block);
|
|
next = block.first;
|
|
n--;
|
|
}
|
|
while (o && n) {
|
|
const new_block = new_blocks[n - 1];
|
|
const old_block = old_blocks[o - 1];
|
|
const new_key = new_block.key;
|
|
const old_key = old_block.key;
|
|
if (new_block === old_block) {
|
|
next = new_block.first;
|
|
o--;
|
|
n--;
|
|
} else if (!new_lookup.has(old_key)) {
|
|
destroy(old_block, lookup);
|
|
o--;
|
|
} else if (!lookup.has(new_key) || will_move.has(new_key)) {
|
|
insert2(new_block);
|
|
} else if (did_move.has(old_key)) {
|
|
o--;
|
|
} else if (deltas.get(new_key) > deltas.get(old_key)) {
|
|
did_move.add(new_key);
|
|
insert2(new_block);
|
|
} else {
|
|
will_move.add(old_key);
|
|
o--;
|
|
}
|
|
}
|
|
while (o--) {
|
|
const old_block = old_blocks[o];
|
|
if (!new_lookup.has(old_block.key))
|
|
destroy(old_block, lookup);
|
|
}
|
|
while (n)
|
|
insert2(new_blocks[n - 1]);
|
|
run_all(updates);
|
|
return new_blocks;
|
|
}
|
|
|
|
// node_modules/svelte/src/runtime/internal/spread.js
|
|
function get_spread_update(levels, updates) {
|
|
const update2 = {};
|
|
const to_null_out = {};
|
|
const accounted_for = { $$scope: 1 };
|
|
let i = levels.length;
|
|
while (i--) {
|
|
const o = levels[i];
|
|
const n = updates[i];
|
|
if (n) {
|
|
for (const key in o) {
|
|
if (!(key in n))
|
|
to_null_out[key] = 1;
|
|
}
|
|
for (const key in n) {
|
|
if (!accounted_for[key]) {
|
|
update2[key] = n[key];
|
|
accounted_for[key] = 1;
|
|
}
|
|
}
|
|
levels[i] = n;
|
|
} else {
|
|
for (const key in o) {
|
|
accounted_for[key] = 1;
|
|
}
|
|
}
|
|
}
|
|
for (const key in to_null_out) {
|
|
if (!(key in update2))
|
|
update2[key] = void 0;
|
|
}
|
|
return update2;
|
|
}
|
|
function get_spread_object(spread_props) {
|
|
return typeof spread_props === "object" && spread_props !== null ? spread_props : {};
|
|
}
|
|
|
|
// node_modules/svelte/src/shared/boolean_attributes.js
|
|
var _boolean_attributes = (
|
|
/** @type {const} */
|
|
[
|
|
"allowfullscreen",
|
|
"allowpaymentrequest",
|
|
"async",
|
|
"autofocus",
|
|
"autoplay",
|
|
"checked",
|
|
"controls",
|
|
"default",
|
|
"defer",
|
|
"disabled",
|
|
"formnovalidate",
|
|
"hidden",
|
|
"inert",
|
|
"ismap",
|
|
"loop",
|
|
"multiple",
|
|
"muted",
|
|
"nomodule",
|
|
"novalidate",
|
|
"open",
|
|
"playsinline",
|
|
"readonly",
|
|
"required",
|
|
"reversed",
|
|
"selected"
|
|
]
|
|
);
|
|
var boolean_attributes = /* @__PURE__ */ new Set([..._boolean_attributes]);
|
|
|
|
// node_modules/svelte/src/runtime/internal/Component.js
|
|
function create_component(block) {
|
|
block && block.c();
|
|
}
|
|
function mount_component(component, target, anchor) {
|
|
const { fragment, after_update } = component.$$;
|
|
fragment && fragment.m(target, anchor);
|
|
add_render_callback(() => {
|
|
const new_on_destroy = component.$$.on_mount.map(run).filter(is_function);
|
|
if (component.$$.on_destroy) {
|
|
component.$$.on_destroy.push(...new_on_destroy);
|
|
} else {
|
|
run_all(new_on_destroy);
|
|
}
|
|
component.$$.on_mount = [];
|
|
});
|
|
after_update.forEach(add_render_callback);
|
|
}
|
|
function destroy_component(component, detaching) {
|
|
const $$ = component.$$;
|
|
if ($$.fragment !== null) {
|
|
flush_render_callbacks($$.after_update);
|
|
run_all($$.on_destroy);
|
|
$$.fragment && $$.fragment.d(detaching);
|
|
$$.on_destroy = $$.fragment = null;
|
|
$$.ctx = [];
|
|
}
|
|
}
|
|
function make_dirty(component, i) {
|
|
if (component.$$.dirty[0] === -1) {
|
|
dirty_components.push(component);
|
|
schedule_update();
|
|
component.$$.dirty.fill(0);
|
|
}
|
|
component.$$.dirty[i / 31 | 0] |= 1 << i % 31;
|
|
}
|
|
function init(component, options, instance111, create_fragment114, not_equal, props, append_styles2 = null, dirty = [-1]) {
|
|
const parent_component = current_component;
|
|
set_current_component(component);
|
|
const $$ = component.$$ = {
|
|
fragment: null,
|
|
ctx: [],
|
|
// state
|
|
props,
|
|
update: noop,
|
|
not_equal,
|
|
bound: blank_object(),
|
|
// lifecycle
|
|
on_mount: [],
|
|
on_destroy: [],
|
|
on_disconnect: [],
|
|
before_update: [],
|
|
after_update: [],
|
|
context: new Map(options.context || (parent_component ? parent_component.$$.context : [])),
|
|
// everything else
|
|
callbacks: blank_object(),
|
|
dirty,
|
|
skip_bound: false,
|
|
root: options.target || parent_component.$$.root
|
|
};
|
|
append_styles2 && append_styles2($$.root);
|
|
let ready = false;
|
|
$$.ctx = instance111 ? instance111(component, options.props || {}, (i, ret, ...rest) => {
|
|
const value = rest.length ? rest[0] : ret;
|
|
if ($$.ctx && not_equal($$.ctx[i], $$.ctx[i] = value)) {
|
|
if (!$$.skip_bound && $$.bound[i])
|
|
$$.bound[i](value);
|
|
if (ready)
|
|
make_dirty(component, i);
|
|
}
|
|
return ret;
|
|
}) : [];
|
|
$$.update();
|
|
ready = true;
|
|
run_all($$.before_update);
|
|
$$.fragment = create_fragment114 ? create_fragment114($$.ctx) : false;
|
|
if (options.target) {
|
|
if (options.hydrate) {
|
|
start_hydrating();
|
|
const nodes = children(options.target);
|
|
$$.fragment && $$.fragment.l(nodes);
|
|
nodes.forEach(detach);
|
|
} else {
|
|
$$.fragment && $$.fragment.c();
|
|
}
|
|
if (options.intro)
|
|
transition_in(component.$$.fragment);
|
|
mount_component(component, options.target, options.anchor);
|
|
end_hydrating();
|
|
flush();
|
|
}
|
|
set_current_component(parent_component);
|
|
}
|
|
var SvelteElement;
|
|
if (typeof HTMLElement === "function") {
|
|
SvelteElement = class extends HTMLElement {
|
|
constructor($$componentCtor, $$slots, use_shadow_dom) {
|
|
super();
|
|
/** The Svelte component constructor */
|
|
__publicField(this, "$$ctor");
|
|
/** Slots */
|
|
__publicField(this, "$$s");
|
|
/** The Svelte component instance */
|
|
__publicField(this, "$$c");
|
|
/** Whether or not the custom element is connected */
|
|
__publicField(this, "$$cn", false);
|
|
/** Component props data */
|
|
__publicField(this, "$$d", {});
|
|
/** `true` if currently in the process of reflecting component props back to attributes */
|
|
__publicField(this, "$$r", false);
|
|
/** @type {Record<string, CustomElementPropDefinition>} Props definition (name, reflected, type etc) */
|
|
__publicField(this, "$$p_d", {});
|
|
/** @type {Record<string, Function[]>} Event listeners */
|
|
__publicField(this, "$$l", {});
|
|
/** @type {Map<Function, Function>} Event listener unsubscribe functions */
|
|
__publicField(this, "$$l_u", /* @__PURE__ */ new Map());
|
|
this.$$ctor = $$componentCtor;
|
|
this.$$s = $$slots;
|
|
if (use_shadow_dom) {
|
|
this.attachShadow({ mode: "open" });
|
|
}
|
|
}
|
|
addEventListener(type, listener, options) {
|
|
this.$$l[type] = this.$$l[type] || [];
|
|
this.$$l[type].push(listener);
|
|
if (this.$$c) {
|
|
const unsub = this.$$c.$on(type, listener);
|
|
this.$$l_u.set(listener, unsub);
|
|
}
|
|
super.addEventListener(type, listener, options);
|
|
}
|
|
removeEventListener(type, listener, options) {
|
|
super.removeEventListener(type, listener, options);
|
|
if (this.$$c) {
|
|
const unsub = this.$$l_u.get(listener);
|
|
if (unsub) {
|
|
unsub();
|
|
this.$$l_u.delete(listener);
|
|
}
|
|
}
|
|
}
|
|
async connectedCallback() {
|
|
this.$$cn = true;
|
|
if (!this.$$c) {
|
|
let create_slot2 = function(name) {
|
|
return () => {
|
|
let node;
|
|
const obj = {
|
|
c: function create() {
|
|
node = element("slot");
|
|
if (name !== "default") {
|
|
attr(node, "name", name);
|
|
}
|
|
},
|
|
/**
|
|
* @param {HTMLElement} target
|
|
* @param {HTMLElement} [anchor]
|
|
*/
|
|
m: function mount(target, anchor) {
|
|
insert(target, node, anchor);
|
|
},
|
|
d: function destroy(detaching) {
|
|
if (detaching) {
|
|
detach(node);
|
|
}
|
|
}
|
|
};
|
|
return obj;
|
|
};
|
|
};
|
|
await Promise.resolve();
|
|
if (!this.$$cn || this.$$c) {
|
|
return;
|
|
}
|
|
const $$slots = {};
|
|
const existing_slots = get_custom_elements_slots(this);
|
|
for (const name of this.$$s) {
|
|
if (name in existing_slots) {
|
|
$$slots[name] = [create_slot2(name)];
|
|
}
|
|
}
|
|
for (const attribute of this.attributes) {
|
|
const name = this.$$g_p(attribute.name);
|
|
if (!(name in this.$$d)) {
|
|
this.$$d[name] = get_custom_element_value(name, attribute.value, this.$$p_d, "toProp");
|
|
}
|
|
}
|
|
for (const key in this.$$p_d) {
|
|
if (!(key in this.$$d) && this[key] !== void 0) {
|
|
this.$$d[key] = this[key];
|
|
delete this[key];
|
|
}
|
|
}
|
|
this.$$c = new this.$$ctor({
|
|
target: this.shadowRoot || this,
|
|
props: {
|
|
...this.$$d,
|
|
$$slots,
|
|
$$scope: {
|
|
ctx: []
|
|
}
|
|
}
|
|
});
|
|
const reflect_attributes = () => {
|
|
this.$$r = true;
|
|
for (const key in this.$$p_d) {
|
|
this.$$d[key] = this.$$c.$$.ctx[this.$$c.$$.props[key]];
|
|
if (this.$$p_d[key].reflect) {
|
|
const attribute_value = get_custom_element_value(
|
|
key,
|
|
this.$$d[key],
|
|
this.$$p_d,
|
|
"toAttribute"
|
|
);
|
|
if (attribute_value == null) {
|
|
this.removeAttribute(this.$$p_d[key].attribute || key);
|
|
} else {
|
|
this.setAttribute(this.$$p_d[key].attribute || key, attribute_value);
|
|
}
|
|
}
|
|
}
|
|
this.$$r = false;
|
|
};
|
|
this.$$c.$$.after_update.push(reflect_attributes);
|
|
reflect_attributes();
|
|
for (const type in this.$$l) {
|
|
for (const listener of this.$$l[type]) {
|
|
const unsub = this.$$c.$on(type, listener);
|
|
this.$$l_u.set(listener, unsub);
|
|
}
|
|
}
|
|
this.$$l = {};
|
|
}
|
|
}
|
|
// We don't need this when working within Svelte code, but for compatibility of people using this outside of Svelte
|
|
// and setting attributes through setAttribute etc, this is helpful
|
|
attributeChangedCallback(attr2, _oldValue, newValue) {
|
|
if (this.$$r)
|
|
return;
|
|
attr2 = this.$$g_p(attr2);
|
|
this.$$d[attr2] = get_custom_element_value(attr2, newValue, this.$$p_d, "toProp");
|
|
this.$$c?.$set({ [attr2]: this.$$d[attr2] });
|
|
}
|
|
disconnectedCallback() {
|
|
this.$$cn = false;
|
|
Promise.resolve().then(() => {
|
|
if (!this.$$cn) {
|
|
this.$$c.$destroy();
|
|
this.$$c = void 0;
|
|
}
|
|
});
|
|
}
|
|
$$g_p(attribute_name) {
|
|
return Object.keys(this.$$p_d).find(
|
|
(key) => this.$$p_d[key].attribute === attribute_name || !this.$$p_d[key].attribute && key.toLowerCase() === attribute_name
|
|
) || attribute_name;
|
|
}
|
|
};
|
|
}
|
|
function get_custom_element_value(prop, value, props_definition, transform) {
|
|
const type = props_definition[prop]?.type;
|
|
value = type === "Boolean" && typeof value !== "boolean" ? value != null : value;
|
|
if (!transform || !props_definition[prop]) {
|
|
return value;
|
|
} else if (transform === "toAttribute") {
|
|
switch (type) {
|
|
case "Object":
|
|
case "Array":
|
|
return value == null ? null : JSON.stringify(value);
|
|
case "Boolean":
|
|
return value ? "" : null;
|
|
case "Number":
|
|
return value == null ? null : value;
|
|
default:
|
|
return value;
|
|
}
|
|
} else {
|
|
switch (type) {
|
|
case "Object":
|
|
case "Array":
|
|
return value && JSON.parse(value);
|
|
case "Boolean":
|
|
return value;
|
|
case "Number":
|
|
return value != null ? +value : value;
|
|
default:
|
|
return value;
|
|
}
|
|
}
|
|
}
|
|
var SvelteComponent = class {
|
|
constructor() {
|
|
/**
|
|
* ### PRIVATE API
|
|
*
|
|
* Do not use, may change at any time
|
|
*
|
|
* @type {any}
|
|
*/
|
|
__publicField(this, "$$");
|
|
/**
|
|
* ### PRIVATE API
|
|
*
|
|
* Do not use, may change at any time
|
|
*
|
|
* @type {any}
|
|
*/
|
|
__publicField(this, "$$set");
|
|
}
|
|
/** @returns {void} */
|
|
$destroy() {
|
|
destroy_component(this, 1);
|
|
this.$destroy = noop;
|
|
}
|
|
/**
|
|
* @template {Extract<keyof Events, string>} K
|
|
* @param {K} type
|
|
* @param {((e: Events[K]) => void) | null | undefined} callback
|
|
* @returns {() => void}
|
|
*/
|
|
$on(type, callback) {
|
|
if (!is_function(callback)) {
|
|
return noop;
|
|
}
|
|
const callbacks = this.$$.callbacks[type] || (this.$$.callbacks[type] = []);
|
|
callbacks.push(callback);
|
|
return () => {
|
|
const index = callbacks.indexOf(callback);
|
|
if (index !== -1)
|
|
callbacks.splice(index, 1);
|
|
};
|
|
}
|
|
/**
|
|
* @param {Partial<Props>} props
|
|
* @returns {void}
|
|
*/
|
|
$set(props) {
|
|
if (this.$$set && !is_empty(props)) {
|
|
this.$$.skip_bound = true;
|
|
this.$$set(props);
|
|
this.$$.skip_bound = false;
|
|
}
|
|
}
|
|
};
|
|
|
|
// node_modules/svelte/src/shared/version.js
|
|
var PUBLIC_VERSION = "4";
|
|
|
|
// node_modules/svelte/src/runtime/internal/disclose-version/index.js
|
|
if (typeof window !== "undefined")
|
|
(window.__svelte || (window.__svelte = { v: /* @__PURE__ */ new Set() })).v.add(PUBLIC_VERSION);
|
|
|
|
// src/lang/lang.ts
|
|
var lang = {
|
|
// open
|
|
ocm_open_in_editor: "Open in editor",
|
|
ocm_open_in_lineage: "Open in Lineage",
|
|
cmd_toggle_lineage_view: "Toggle view",
|
|
card_btn_reveal_in_editor: "Reveal in editor",
|
|
error_parent_not_found: (full) => `Could not find the parent section of ${full}`,
|
|
modals_snapshots_document_loaded: "Opened document",
|
|
error_set_empty_data: "Data is empty, but the file on disk is not",
|
|
error_save_empty_data: "Can't save empty data",
|
|
// create document
|
|
cmd_create_new_document: "Create new document",
|
|
ocm_new_document: "New document",
|
|
ocm_import_from_gingko: "Import from Gingko",
|
|
// add cards
|
|
hk_add_below_and_split: "Add card below and split at cursor",
|
|
card_btn_add_card_below: "Add card below",
|
|
hk_add_above_and_split: "Add card above and split at cursor",
|
|
card_btn_add_card_above: "Add card above",
|
|
hk_add_child_and_split: "Add child card and split at cursor",
|
|
card_btn_add_child_card: "Add child card",
|
|
hkg_create_cards: "Create cards",
|
|
modals_snapshots_created_card: "Created card ",
|
|
// edit
|
|
settings_general_maintain_edit_mode: "Maintain edit mode",
|
|
settings_general_maintain_edit_mode_desc: "Keeps edit mode active when switching to a different card using the mouse or keyboard",
|
|
card_btn_edit: "Edit",
|
|
hk_enable_edit_mode: "Edit card",
|
|
hk_enable_edit_mode_and_place_cursor_at_start: "Edit card and place cursor at the start",
|
|
hk_enable_edit_mode_and_place_cursor_at_end: "Edit card and place cursor at the end",
|
|
hkg_edit_cards: "Edit cards",
|
|
modals_snapshots_updated_card: "Updated card ",
|
|
modal_hk_editor_state_on: "Enable only when the editor is active",
|
|
modal_hk_editor_state_off: "Enable only when the editor is inactive",
|
|
modal_hk_editor_state_both: "Enable regardless of the editor's state",
|
|
// save
|
|
card_btn_save: "Save",
|
|
hk_save_changes: "Save changes and exit card",
|
|
hk_disable_edit_mode: "Cancel changes",
|
|
// delete
|
|
card_btn_delete: "Delete",
|
|
hk_delete_card: "Delete card",
|
|
error_delete_last_node: "Cannot delete this card",
|
|
hkg_delete_cards: "Delete cards",
|
|
modals_snapshots_deleted_card: "Deleted card ",
|
|
// copy
|
|
cm_copy: "Copy",
|
|
cm_copy_branches: "Copy branches",
|
|
cm_copy_branch: "Copy branch",
|
|
cm_copy_branches_wo_formatting: "Copy branches without formatting",
|
|
cm_copy_branch_wo_formatting: "Copy branch without formatting",
|
|
cm_copy_section_wo_subitems: "Copy sections without sub-items",
|
|
cm_copy_sections_wo_subitems: "Copy section without sub-items",
|
|
hk_copy_node: "Copy branch",
|
|
hk_copy_node_unformatted: "Copy branch without formatting",
|
|
hk_copy_node_without_subitems: "Copy without subitems",
|
|
cm_copy_link_to_block: "Copy link to block",
|
|
hkg_clipboard: "Clipboard",
|
|
hk_notice_copy: (size, formatted, type) => {
|
|
if (size === 0)
|
|
return null;
|
|
return type === "branch" ? size === 1 ? formatted ? null : "Unformatted branch copied to clipboard" : formatted ? `${size} branches copied to clipboard` : `${size} unformatted branches copied to clipboard` : size === 1 ? null : size + " sections copied to clipboard";
|
|
},
|
|
// cut paste
|
|
cm_cut: "Cut branch",
|
|
hk_cut_node: "Cut branch",
|
|
cm_paste: "Paste",
|
|
hk_paste_node: "Paste branch",
|
|
modals_snapshots_cut_card: "Cut card ",
|
|
modals_snapshots_pasted_card: "Pasted card ",
|
|
error_cant_paste: "Paste command failed. Try pasting directly into a card",
|
|
// merge
|
|
cm_merge_above: "Merge with branch above",
|
|
cm_merge_below: "Merge with branch below",
|
|
hk_merge_with_node_above: "Merge with branch above",
|
|
hk_merge_with_node_below: "Merge with branch below",
|
|
error_hk_cant_merge_multiple_nodes: "Cannot merge multiple cards",
|
|
hkg_merge_cards: "Merge cards",
|
|
modals_snapshots_merged_card: "Merged card ",
|
|
// move
|
|
hk_move_node_up: "Move branch up",
|
|
hk_move_node_down: "Move branch down",
|
|
hk_move_node_right: "Move branch right",
|
|
hk_move_node_left: "Move branch left",
|
|
hkg_move_cards: "Move cards",
|
|
modals_snapshots_moved_card: "Moved branch ",
|
|
// dnd
|
|
modals_snapshots_dropped_card: "Dropped card ",
|
|
// split
|
|
cm_split_card: "Split card",
|
|
error_cm_cant_split_card_that_has_children: "Cannot split a card that has children",
|
|
error_cm_cant_split_card_identical: "The result is the same as the input",
|
|
modals_snapshots_split_card: "Split card ",
|
|
// undo
|
|
controls_history: "History",
|
|
controls_history_undo: "Undo",
|
|
controls_history_redo: "Redo",
|
|
hk_undo_change: "Undo change",
|
|
hk_redo_change: "Redo change",
|
|
error_apply_snapshot_while_editing: "Cannot apply a snapshot while editing",
|
|
hkg_history: "History",
|
|
// extract
|
|
cmd_extract_branch: "Extract branch to a new document",
|
|
cm_extract_branch: "Extract branch",
|
|
modals_snapshots_extracted_card: "Extracted card ",
|
|
// export
|
|
cm_export_document: "Export document",
|
|
cm_export_column: "Export column",
|
|
// document format
|
|
settings_general_default_format: "Default format",
|
|
settings_general_default_format_desc: "Applies to new documents",
|
|
settings_format_html_elements: "HTML elements (experimental)",
|
|
settings_format_html_comments: "HTML comments",
|
|
settings_format_outline: "Outline",
|
|
cm_change_format_to_html_element: "Format: HTML elements (experimental)",
|
|
cm_change_format_to_document: "Format: HTML comments",
|
|
cm_change_format_to_outline: "Format: outline",
|
|
// format
|
|
cm_format_headings: "Format headings",
|
|
modals_snapshots_formatted_headings: "Formatted headings",
|
|
// search
|
|
tlb_search_toggle: "Toggle search input",
|
|
tlb_search_show_all_cards: "Show all cards",
|
|
tlb_search_fuzzy_search: "Fuzzy search",
|
|
tlb_search_previous_result: "Previous result",
|
|
tlb_search_next_result: "Next result",
|
|
tlb_search_clear: "Clear",
|
|
hk_toggle_search_input: "Toggle search",
|
|
hkg_search: "Search",
|
|
// select
|
|
hk_extend_select_up: "Extend selection up",
|
|
hk_extend_select_down: "Extend selection down",
|
|
hk_extend_select_to_start_of_group: "Extend selection to start of group",
|
|
hk_extend_select_to_end_of_group: "Extend selection to end of group",
|
|
hk_extend_select_to_start_of_column: "Extend selection to start of column",
|
|
hk_extend_select_to_end_of_column: "Extend selection to end of column",
|
|
hkg_selection: "Selection",
|
|
// navigate spatially
|
|
hk_navigate_to_next_node: "Select next card",
|
|
hk_navigate_to_previous_node: "Select previous card",
|
|
hk_go_up: "Go up",
|
|
hk_go_down: "Go down",
|
|
hk_go_right: "Go right",
|
|
hk_go_Left: "Go left",
|
|
hk_go_to_beginning_of_group: "Go to start of group",
|
|
hk_go_to_end_of_group: "Go to end of group",
|
|
hk_go_to_beginning_of_column: "Go to start of column",
|
|
hk_go_to_end_of_column: "Go to end of column",
|
|
hk_select_parent: "Select parent card",
|
|
hkg_navigation: "Navigation",
|
|
hk_select_previous_sibling: "Select previous sibling",
|
|
hk_select_next_sibling: "Select next sibling",
|
|
// navigate node history
|
|
hk_navigate_back: "Navigate back",
|
|
hk_navigate_forward: "Navigate forward",
|
|
tlb_navigation_navigate_back: "Navigate back",
|
|
tlb_navigation_navigate_forward: "Navigate forward",
|
|
// zoom
|
|
controls_zoom_in: "Zoom in",
|
|
controls_zoom_out: "Zoom out",
|
|
controls_zoom_reset: "Reset (hold shift to undo)",
|
|
controls_zoom_presets: "",
|
|
hk_zoom_in: "Zoom in",
|
|
hk_zoom_out: "Zoom out",
|
|
hk_zoom_reset: "Reset zoom",
|
|
hkg_zoom: "Zoom",
|
|
// scroll
|
|
hk_scroll_left: "Scroll left",
|
|
hk_scroll_right: "Scroll right",
|
|
hk_scroll_up: "Scroll up",
|
|
hk_scroll_down: "Scroll down",
|
|
hk_align_branch: "Align active branch",
|
|
controls_toggle_scrolling_mode_horizontal: "Always center active card horizontally",
|
|
controls_toggle_scrolling_mode_vertical: "Always center active card vertically",
|
|
cmd_toggle_horizontal_scrolling_mode: `Toggle 'always center active card horizontally'`,
|
|
cmd_toggle_vertical_scrolling_mode: `Toggle 'always center active card vertically'`,
|
|
card_btn_scroll_to_reveal: "Scroll to reveal",
|
|
hkg_scrolling: "Align branch",
|
|
// theme
|
|
settings_theme_bg: "Background color",
|
|
settings_theme_active_branch_bg: "Active branch background color",
|
|
settings_theme_active_branch_color: "Active branch text color",
|
|
settings_appearance_font_size: "Font size",
|
|
settings_appearance_inactive_node_opacity: "Inactive cards opacity",
|
|
// layout
|
|
settings_layout_card_width: "Card width",
|
|
settings_layout_limit_card_height: "Limit card height",
|
|
settings_always_show_card_buttons: "Show buttons on all cards",
|
|
settings_always_show_card_buttons_desc: "Show card buttons on all cards, not just the active one",
|
|
// outline
|
|
settings_layout_indentation_width: "Card indentation",
|
|
settings_layout_indentation_width_desc: "Applicable in 'outline mode'",
|
|
controls_single_column: "Outline mode",
|
|
hk_toggle_outline_mode: `Toggle outline mode`,
|
|
card_btn_collapse_card: "Collapse",
|
|
card_btn_expand_card: "Expand",
|
|
hk_outline_toggle_collapse: "Collapse/expand card",
|
|
hk_outline_toggle_collapse_all: "Collapse/expand all cards",
|
|
hkg_outline: "Outline",
|
|
// space between cards
|
|
controls_gap_between_cards: "Space between cards",
|
|
cmd_space_between_cards: `Toggle 'space between cards'`,
|
|
settings_layout_space_between_cards: "Space between cards",
|
|
settings_layout_space_between_cards_desc: "Applicable when spaces are enabled",
|
|
// sidebar
|
|
toolbar_toggle_left_sidebar: "Left sidebar",
|
|
controls_toggle_minimap: "Document minimap",
|
|
cmd_toggle_minimap: "Toggle document minimap",
|
|
cmd_toggle_left_sidebar: "Toggle left sidebar",
|
|
// recent cards
|
|
sidebar_tab_recent_cards: "Recent cards",
|
|
sidebar_no_recent_cards: "No recent cards",
|
|
// pin cards
|
|
cm_unpin_from_left_sidebar: "Unpin from left sidebar",
|
|
cm_pin_in_left_sidebar: "Pin in left sidebar",
|
|
cmd_toggle_pin_in_left_sidebar: `Toggle 'pin card in left sidebar'`,
|
|
sidebar_tab_pinned_cards: "Pinned cards",
|
|
sidebar_no_pinned_cards: "No pinned cards",
|
|
// rules
|
|
modals_rules_add_rule: "Add rule",
|
|
modals_rules_no_rules: "No rules",
|
|
controls_rules: "Rule-based styles",
|
|
modals_rules_matches: "Number of matches",
|
|
modals_rules_drag_handle: "Change priority",
|
|
// settings
|
|
controls_settings: "Settings",
|
|
controls_toggle_bar: "Toggle controls bar",
|
|
settings_appearance: "Appearance",
|
|
settings_layout: "Layout",
|
|
settings_reset: "Reset",
|
|
// hotkeys
|
|
modals_hk_input_placeholder: "Filter",
|
|
modals_hk_editor_cancel: "Cancel",
|
|
controls_hotkeys: "Hotkeys",
|
|
modals_hk_reset_hotkeys: "Reset all hotkeys",
|
|
modals_hk_load_alt_hotkeys_preset: "Apply preset: use 'Alt' as the primary modifier",
|
|
modals_hk_load_nav_while_editing_preset: "Apply preset: navigate while editing using 'Alt+Shift+Arrow keys'",
|
|
error_generic: "Something went wrong\nYou might find additional details in the developer console"
|
|
};
|
|
|
|
// node_modules/lucide-svelte/dist/defaultAttributes.js
|
|
var defaultAttributes = {
|
|
xmlns: "http://www.w3.org/2000/svg",
|
|
width: 24,
|
|
height: 24,
|
|
viewBox: "0 0 24 24",
|
|
fill: "none",
|
|
stroke: "currentColor",
|
|
"stroke-width": 2,
|
|
"stroke-linecap": "round",
|
|
"stroke-linejoin": "round"
|
|
};
|
|
var defaultAttributes_default = defaultAttributes;
|
|
|
|
// node_modules/lucide-svelte/dist/Icon.svelte
|
|
function get_each_context(ctx, list, i) {
|
|
const child_ctx = ctx.slice();
|
|
child_ctx[10] = list[i][0];
|
|
child_ctx[11] = list[i][1];
|
|
return child_ctx;
|
|
}
|
|
function create_dynamic_element(ctx) {
|
|
let svelte_element;
|
|
let svelte_element_levels = [
|
|
/*attrs*/
|
|
ctx[11]
|
|
];
|
|
let svelte_element_data = {};
|
|
for (let i = 0; i < svelte_element_levels.length; i += 1) {
|
|
svelte_element_data = assign(svelte_element_data, svelte_element_levels[i]);
|
|
}
|
|
return {
|
|
c() {
|
|
svelte_element = svg_element(
|
|
/*tag*/
|
|
ctx[10]
|
|
);
|
|
set_svg_attributes(svelte_element, svelte_element_data);
|
|
},
|
|
m(target, anchor) {
|
|
insert(target, svelte_element, anchor);
|
|
},
|
|
p(ctx2, dirty) {
|
|
set_svg_attributes(svelte_element, svelte_element_data = get_spread_update(svelte_element_levels, [dirty & /*iconNode*/
|
|
32 && /*attrs*/
|
|
ctx2[11]]));
|
|
},
|
|
d(detaching) {
|
|
if (detaching) {
|
|
detach(svelte_element);
|
|
}
|
|
}
|
|
};
|
|
}
|
|
function create_each_block(ctx) {
|
|
let previous_tag = (
|
|
/*tag*/
|
|
ctx[10]
|
|
);
|
|
let svelte_element_anchor;
|
|
let svelte_element = (
|
|
/*tag*/
|
|
ctx[10] && create_dynamic_element(ctx)
|
|
);
|
|
return {
|
|
c() {
|
|
if (svelte_element)
|
|
svelte_element.c();
|
|
svelte_element_anchor = empty();
|
|
},
|
|
m(target, anchor) {
|
|
if (svelte_element)
|
|
svelte_element.m(target, anchor);
|
|
insert(target, svelte_element_anchor, anchor);
|
|
},
|
|
p(ctx2, dirty) {
|
|
if (
|
|
/*tag*/
|
|
ctx2[10]
|
|
) {
|
|
if (!previous_tag) {
|
|
svelte_element = create_dynamic_element(ctx2);
|
|
previous_tag = /*tag*/
|
|
ctx2[10];
|
|
svelte_element.c();
|
|
svelte_element.m(svelte_element_anchor.parentNode, svelte_element_anchor);
|
|
} else if (safe_not_equal(
|
|
previous_tag,
|
|
/*tag*/
|
|
ctx2[10]
|
|
)) {
|
|
svelte_element.d(1);
|
|
svelte_element = create_dynamic_element(ctx2);
|
|
previous_tag = /*tag*/
|
|
ctx2[10];
|
|
svelte_element.c();
|
|
svelte_element.m(svelte_element_anchor.parentNode, svelte_element_anchor);
|
|
} else {
|
|
svelte_element.p(ctx2, dirty);
|
|
}
|
|
} else if (previous_tag) {
|
|
svelte_element.d(1);
|
|
svelte_element = null;
|
|
previous_tag = /*tag*/
|
|
ctx2[10];
|
|
}
|
|
},
|
|
d(detaching) {
|
|
if (detaching) {
|
|
detach(svelte_element_anchor);
|
|
}
|
|
if (svelte_element)
|
|
svelte_element.d(detaching);
|
|
}
|
|
};
|
|
}
|
|
function create_fragment(ctx) {
|
|
let svg;
|
|
let each_1_anchor;
|
|
let svg_stroke_width_value;
|
|
let svg_class_value;
|
|
let current;
|
|
let each_value = ensure_array_like(
|
|
/*iconNode*/
|
|
ctx[5]
|
|
);
|
|
let each_blocks = [];
|
|
for (let i = 0; i < each_value.length; i += 1) {
|
|
each_blocks[i] = create_each_block(get_each_context(ctx, each_value, i));
|
|
}
|
|
const default_slot_template = (
|
|
/*#slots*/
|
|
ctx[9].default
|
|
);
|
|
const default_slot = create_slot(
|
|
default_slot_template,
|
|
ctx,
|
|
/*$$scope*/
|
|
ctx[8],
|
|
null
|
|
);
|
|
let svg_levels = [
|
|
defaultAttributes_default,
|
|
/*$$restProps*/
|
|
ctx[6],
|
|
{ width: (
|
|
/*size*/
|
|
ctx[2]
|
|
) },
|
|
{ height: (
|
|
/*size*/
|
|
ctx[2]
|
|
) },
|
|
{ stroke: (
|
|
/*color*/
|
|
ctx[1]
|
|
) },
|
|
{
|
|
"stroke-width": svg_stroke_width_value = /*absoluteStrokeWidth*/
|
|
ctx[4] ? Number(
|
|
/*strokeWidth*/
|
|
ctx[3]
|
|
) * 24 / Number(
|
|
/*size*/
|
|
ctx[2]
|
|
) : (
|
|
/*strokeWidth*/
|
|
ctx[3]
|
|
)
|
|
},
|
|
{
|
|
class: svg_class_value = `lucide-icon lucide lucide-${/*name*/
|
|
ctx[0]} ${/*$$props*/
|
|
ctx[7].class ?? ""}`
|
|
}
|
|
];
|
|
let svg_data = {};
|
|
for (let i = 0; i < svg_levels.length; i += 1) {
|
|
svg_data = assign(svg_data, svg_levels[i]);
|
|
}
|
|
return {
|
|
c() {
|
|
svg = svg_element("svg");
|
|
for (let i = 0; i < each_blocks.length; i += 1) {
|
|
each_blocks[i].c();
|
|
}
|
|
each_1_anchor = empty();
|
|
if (default_slot)
|
|
default_slot.c();
|
|
set_svg_attributes(svg, svg_data);
|
|
},
|
|
m(target, anchor) {
|
|
insert(target, svg, anchor);
|
|
for (let i = 0; i < each_blocks.length; i += 1) {
|
|
if (each_blocks[i]) {
|
|
each_blocks[i].m(svg, null);
|
|
}
|
|
}
|
|
append(svg, each_1_anchor);
|
|
if (default_slot) {
|
|
default_slot.m(svg, null);
|
|
}
|
|
current = true;
|
|
},
|
|
p(ctx2, [dirty]) {
|
|
if (dirty & /*iconNode*/
|
|
32) {
|
|
each_value = ensure_array_like(
|
|
/*iconNode*/
|
|
ctx2[5]
|
|
);
|
|
let i;
|
|
for (i = 0; i < each_value.length; i += 1) {
|
|
const child_ctx = get_each_context(ctx2, each_value, i);
|
|
if (each_blocks[i]) {
|
|
each_blocks[i].p(child_ctx, dirty);
|
|
} else {
|
|
each_blocks[i] = create_each_block(child_ctx);
|
|
each_blocks[i].c();
|
|
each_blocks[i].m(svg, each_1_anchor);
|
|
}
|
|
}
|
|
for (; i < each_blocks.length; i += 1) {
|
|
each_blocks[i].d(1);
|
|
}
|
|
each_blocks.length = each_value.length;
|
|
}
|
|
if (default_slot) {
|
|
if (default_slot.p && (!current || dirty & /*$$scope*/
|
|
256)) {
|
|
update_slot_base(
|
|
default_slot,
|
|
default_slot_template,
|
|
ctx2,
|
|
/*$$scope*/
|
|
ctx2[8],
|
|
!current ? get_all_dirty_from_scope(
|
|
/*$$scope*/
|
|
ctx2[8]
|
|
) : get_slot_changes(
|
|
default_slot_template,
|
|
/*$$scope*/
|
|
ctx2[8],
|
|
dirty,
|
|
null
|
|
),
|
|
null
|
|
);
|
|
}
|
|
}
|
|
set_svg_attributes(svg, svg_data = get_spread_update(svg_levels, [
|
|
defaultAttributes_default,
|
|
dirty & /*$$restProps*/
|
|
64 && /*$$restProps*/
|
|
ctx2[6],
|
|
(!current || dirty & /*size*/
|
|
4) && { width: (
|
|
/*size*/
|
|
ctx2[2]
|
|
) },
|
|
(!current || dirty & /*size*/
|
|
4) && { height: (
|
|
/*size*/
|
|
ctx2[2]
|
|
) },
|
|
(!current || dirty & /*color*/
|
|
2) && { stroke: (
|
|
/*color*/
|
|
ctx2[1]
|
|
) },
|
|
(!current || dirty & /*absoluteStrokeWidth, strokeWidth, size*/
|
|
28 && svg_stroke_width_value !== (svg_stroke_width_value = /*absoluteStrokeWidth*/
|
|
ctx2[4] ? Number(
|
|
/*strokeWidth*/
|
|
ctx2[3]
|
|
) * 24 / Number(
|
|
/*size*/
|
|
ctx2[2]
|
|
) : (
|
|
/*strokeWidth*/
|
|
ctx2[3]
|
|
))) && { "stroke-width": svg_stroke_width_value },
|
|
(!current || dirty & /*name, $$props*/
|
|
129 && svg_class_value !== (svg_class_value = `lucide-icon lucide lucide-${/*name*/
|
|
ctx2[0]} ${/*$$props*/
|
|
ctx2[7].class ?? ""}`)) && { class: svg_class_value }
|
|
]));
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(default_slot, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(default_slot, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
if (detaching) {
|
|
detach(svg);
|
|
}
|
|
destroy_each(each_blocks, detaching);
|
|
if (default_slot)
|
|
default_slot.d(detaching);
|
|
}
|
|
};
|
|
}
|
|
function instance($$self, $$props, $$invalidate) {
|
|
const omit_props_names = ["name", "color", "size", "strokeWidth", "absoluteStrokeWidth", "iconNode"];
|
|
let $$restProps = compute_rest_props($$props, omit_props_names);
|
|
let { $$slots: slots = {}, $$scope } = $$props;
|
|
let { name } = $$props;
|
|
let { color = "currentColor" } = $$props;
|
|
let { size = 24 } = $$props;
|
|
let { strokeWidth = 2 } = $$props;
|
|
let { absoluteStrokeWidth = false } = $$props;
|
|
let { iconNode } = $$props;
|
|
$$self.$$set = ($$new_props) => {
|
|
$$invalidate(7, $$props = assign(assign({}, $$props), exclude_internal_props($$new_props)));
|
|
$$invalidate(6, $$restProps = compute_rest_props($$props, omit_props_names));
|
|
if ("name" in $$new_props)
|
|
$$invalidate(0, name = $$new_props.name);
|
|
if ("color" in $$new_props)
|
|
$$invalidate(1, color = $$new_props.color);
|
|
if ("size" in $$new_props)
|
|
$$invalidate(2, size = $$new_props.size);
|
|
if ("strokeWidth" in $$new_props)
|
|
$$invalidate(3, strokeWidth = $$new_props.strokeWidth);
|
|
if ("absoluteStrokeWidth" in $$new_props)
|
|
$$invalidate(4, absoluteStrokeWidth = $$new_props.absoluteStrokeWidth);
|
|
if ("iconNode" in $$new_props)
|
|
$$invalidate(5, iconNode = $$new_props.iconNode);
|
|
if ("$$scope" in $$new_props)
|
|
$$invalidate(8, $$scope = $$new_props.$$scope);
|
|
};
|
|
$$props = exclude_internal_props($$props);
|
|
return [
|
|
name,
|
|
color,
|
|
size,
|
|
strokeWidth,
|
|
absoluteStrokeWidth,
|
|
iconNode,
|
|
$$restProps,
|
|
$$props,
|
|
$$scope,
|
|
slots
|
|
];
|
|
}
|
|
var Icon = class extends SvelteComponent {
|
|
constructor(options) {
|
|
super();
|
|
init(this, options, instance, create_fragment, safe_not_equal, {
|
|
name: 0,
|
|
color: 1,
|
|
size: 2,
|
|
strokeWidth: 3,
|
|
absoluteStrokeWidth: 4,
|
|
iconNode: 5
|
|
});
|
|
}
|
|
};
|
|
var Icon_default = Icon;
|
|
|
|
// node_modules/lucide-svelte/dist/icons/arrow-left.svelte
|
|
function create_default_slot(ctx) {
|
|
let current;
|
|
const default_slot_template = (
|
|
/*#slots*/
|
|
ctx[2].default
|
|
);
|
|
const default_slot = create_slot(
|
|
default_slot_template,
|
|
ctx,
|
|
/*$$scope*/
|
|
ctx[3],
|
|
null
|
|
);
|
|
return {
|
|
c() {
|
|
if (default_slot)
|
|
default_slot.c();
|
|
},
|
|
m(target, anchor) {
|
|
if (default_slot) {
|
|
default_slot.m(target, anchor);
|
|
}
|
|
current = true;
|
|
},
|
|
p(ctx2, dirty) {
|
|
if (default_slot) {
|
|
if (default_slot.p && (!current || dirty & /*$$scope*/
|
|
8)) {
|
|
update_slot_base(
|
|
default_slot,
|
|
default_slot_template,
|
|
ctx2,
|
|
/*$$scope*/
|
|
ctx2[3],
|
|
!current ? get_all_dirty_from_scope(
|
|
/*$$scope*/
|
|
ctx2[3]
|
|
) : get_slot_changes(
|
|
default_slot_template,
|
|
/*$$scope*/
|
|
ctx2[3],
|
|
dirty,
|
|
null
|
|
),
|
|
null
|
|
);
|
|
}
|
|
}
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(default_slot, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(default_slot, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
if (default_slot)
|
|
default_slot.d(detaching);
|
|
}
|
|
};
|
|
}
|
|
function create_fragment2(ctx) {
|
|
let icon;
|
|
let current;
|
|
const icon_spread_levels = [
|
|
{ name: "arrow-left" },
|
|
/*$$props*/
|
|
ctx[1],
|
|
{ iconNode: (
|
|
/*iconNode*/
|
|
ctx[0]
|
|
) }
|
|
];
|
|
let icon_props = {
|
|
$$slots: { default: [create_default_slot] },
|
|
$$scope: { ctx }
|
|
};
|
|
for (let i = 0; i < icon_spread_levels.length; i += 1) {
|
|
icon_props = assign(icon_props, icon_spread_levels[i]);
|
|
}
|
|
icon = new Icon_default({ props: icon_props });
|
|
return {
|
|
c() {
|
|
create_component(icon.$$.fragment);
|
|
},
|
|
m(target, anchor) {
|
|
mount_component(icon, target, anchor);
|
|
current = true;
|
|
},
|
|
p(ctx2, [dirty]) {
|
|
const icon_changes = dirty & /*$$props, iconNode*/
|
|
3 ? get_spread_update(icon_spread_levels, [
|
|
icon_spread_levels[0],
|
|
dirty & /*$$props*/
|
|
2 && get_spread_object(
|
|
/*$$props*/
|
|
ctx2[1]
|
|
),
|
|
dirty & /*iconNode*/
|
|
1 && { iconNode: (
|
|
/*iconNode*/
|
|
ctx2[0]
|
|
) }
|
|
]) : {};
|
|
if (dirty & /*$$scope*/
|
|
8) {
|
|
icon_changes.$$scope = { dirty, ctx: ctx2 };
|
|
}
|
|
icon.$set(icon_changes);
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(icon.$$.fragment, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(icon.$$.fragment, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
destroy_component(icon, detaching);
|
|
}
|
|
};
|
|
}
|
|
function instance2($$self, $$props, $$invalidate) {
|
|
let { $$slots: slots = {}, $$scope } = $$props;
|
|
const iconNode = [["path", { "d": "m12 19-7-7 7-7" }], ["path", { "d": "M19 12H5" }]];
|
|
$$self.$$set = ($$new_props) => {
|
|
$$invalidate(1, $$props = assign(assign({}, $$props), exclude_internal_props($$new_props)));
|
|
if ("$$scope" in $$new_props)
|
|
$$invalidate(3, $$scope = $$new_props.$$scope);
|
|
};
|
|
$$props = exclude_internal_props($$props);
|
|
return [iconNode, $$props, slots, $$scope];
|
|
}
|
|
var Arrow_left = class extends SvelteComponent {
|
|
constructor(options) {
|
|
super();
|
|
init(this, options, instance2, create_fragment2, safe_not_equal, {});
|
|
}
|
|
};
|
|
var arrow_left_default = Arrow_left;
|
|
|
|
// node_modules/lucide-svelte/dist/icons/arrow-right.svelte
|
|
function create_default_slot2(ctx) {
|
|
let current;
|
|
const default_slot_template = (
|
|
/*#slots*/
|
|
ctx[2].default
|
|
);
|
|
const default_slot = create_slot(
|
|
default_slot_template,
|
|
ctx,
|
|
/*$$scope*/
|
|
ctx[3],
|
|
null
|
|
);
|
|
return {
|
|
c() {
|
|
if (default_slot)
|
|
default_slot.c();
|
|
},
|
|
m(target, anchor) {
|
|
if (default_slot) {
|
|
default_slot.m(target, anchor);
|
|
}
|
|
current = true;
|
|
},
|
|
p(ctx2, dirty) {
|
|
if (default_slot) {
|
|
if (default_slot.p && (!current || dirty & /*$$scope*/
|
|
8)) {
|
|
update_slot_base(
|
|
default_slot,
|
|
default_slot_template,
|
|
ctx2,
|
|
/*$$scope*/
|
|
ctx2[3],
|
|
!current ? get_all_dirty_from_scope(
|
|
/*$$scope*/
|
|
ctx2[3]
|
|
) : get_slot_changes(
|
|
default_slot_template,
|
|
/*$$scope*/
|
|
ctx2[3],
|
|
dirty,
|
|
null
|
|
),
|
|
null
|
|
);
|
|
}
|
|
}
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(default_slot, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(default_slot, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
if (default_slot)
|
|
default_slot.d(detaching);
|
|
}
|
|
};
|
|
}
|
|
function create_fragment3(ctx) {
|
|
let icon;
|
|
let current;
|
|
const icon_spread_levels = [
|
|
{ name: "arrow-right" },
|
|
/*$$props*/
|
|
ctx[1],
|
|
{ iconNode: (
|
|
/*iconNode*/
|
|
ctx[0]
|
|
) }
|
|
];
|
|
let icon_props = {
|
|
$$slots: { default: [create_default_slot2] },
|
|
$$scope: { ctx }
|
|
};
|
|
for (let i = 0; i < icon_spread_levels.length; i += 1) {
|
|
icon_props = assign(icon_props, icon_spread_levels[i]);
|
|
}
|
|
icon = new Icon_default({ props: icon_props });
|
|
return {
|
|
c() {
|
|
create_component(icon.$$.fragment);
|
|
},
|
|
m(target, anchor) {
|
|
mount_component(icon, target, anchor);
|
|
current = true;
|
|
},
|
|
p(ctx2, [dirty]) {
|
|
const icon_changes = dirty & /*$$props, iconNode*/
|
|
3 ? get_spread_update(icon_spread_levels, [
|
|
icon_spread_levels[0],
|
|
dirty & /*$$props*/
|
|
2 && get_spread_object(
|
|
/*$$props*/
|
|
ctx2[1]
|
|
),
|
|
dirty & /*iconNode*/
|
|
1 && { iconNode: (
|
|
/*iconNode*/
|
|
ctx2[0]
|
|
) }
|
|
]) : {};
|
|
if (dirty & /*$$scope*/
|
|
8) {
|
|
icon_changes.$$scope = { dirty, ctx: ctx2 };
|
|
}
|
|
icon.$set(icon_changes);
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(icon.$$.fragment, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(icon.$$.fragment, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
destroy_component(icon, detaching);
|
|
}
|
|
};
|
|
}
|
|
function instance3($$self, $$props, $$invalidate) {
|
|
let { $$slots: slots = {}, $$scope } = $$props;
|
|
const iconNode = [["path", { "d": "M5 12h14" }], ["path", { "d": "m12 5 7 7-7 7" }]];
|
|
$$self.$$set = ($$new_props) => {
|
|
$$invalidate(1, $$props = assign(assign({}, $$props), exclude_internal_props($$new_props)));
|
|
if ("$$scope" in $$new_props)
|
|
$$invalidate(3, $$scope = $$new_props.$$scope);
|
|
};
|
|
$$props = exclude_internal_props($$props);
|
|
return [iconNode, $$props, slots, $$scope];
|
|
}
|
|
var Arrow_right = class extends SvelteComponent {
|
|
constructor(options) {
|
|
super();
|
|
init(this, options, instance3, create_fragment3, safe_not_equal, {});
|
|
}
|
|
};
|
|
var arrow_right_default = Arrow_right;
|
|
|
|
// node_modules/lucide-svelte/dist/icons/chevron-down.svelte
|
|
function create_default_slot3(ctx) {
|
|
let current;
|
|
const default_slot_template = (
|
|
/*#slots*/
|
|
ctx[2].default
|
|
);
|
|
const default_slot = create_slot(
|
|
default_slot_template,
|
|
ctx,
|
|
/*$$scope*/
|
|
ctx[3],
|
|
null
|
|
);
|
|
return {
|
|
c() {
|
|
if (default_slot)
|
|
default_slot.c();
|
|
},
|
|
m(target, anchor) {
|
|
if (default_slot) {
|
|
default_slot.m(target, anchor);
|
|
}
|
|
current = true;
|
|
},
|
|
p(ctx2, dirty) {
|
|
if (default_slot) {
|
|
if (default_slot.p && (!current || dirty & /*$$scope*/
|
|
8)) {
|
|
update_slot_base(
|
|
default_slot,
|
|
default_slot_template,
|
|
ctx2,
|
|
/*$$scope*/
|
|
ctx2[3],
|
|
!current ? get_all_dirty_from_scope(
|
|
/*$$scope*/
|
|
ctx2[3]
|
|
) : get_slot_changes(
|
|
default_slot_template,
|
|
/*$$scope*/
|
|
ctx2[3],
|
|
dirty,
|
|
null
|
|
),
|
|
null
|
|
);
|
|
}
|
|
}
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(default_slot, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(default_slot, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
if (default_slot)
|
|
default_slot.d(detaching);
|
|
}
|
|
};
|
|
}
|
|
function create_fragment4(ctx) {
|
|
let icon;
|
|
let current;
|
|
const icon_spread_levels = [
|
|
{ name: "chevron-down" },
|
|
/*$$props*/
|
|
ctx[1],
|
|
{ iconNode: (
|
|
/*iconNode*/
|
|
ctx[0]
|
|
) }
|
|
];
|
|
let icon_props = {
|
|
$$slots: { default: [create_default_slot3] },
|
|
$$scope: { ctx }
|
|
};
|
|
for (let i = 0; i < icon_spread_levels.length; i += 1) {
|
|
icon_props = assign(icon_props, icon_spread_levels[i]);
|
|
}
|
|
icon = new Icon_default({ props: icon_props });
|
|
return {
|
|
c() {
|
|
create_component(icon.$$.fragment);
|
|
},
|
|
m(target, anchor) {
|
|
mount_component(icon, target, anchor);
|
|
current = true;
|
|
},
|
|
p(ctx2, [dirty]) {
|
|
const icon_changes = dirty & /*$$props, iconNode*/
|
|
3 ? get_spread_update(icon_spread_levels, [
|
|
icon_spread_levels[0],
|
|
dirty & /*$$props*/
|
|
2 && get_spread_object(
|
|
/*$$props*/
|
|
ctx2[1]
|
|
),
|
|
dirty & /*iconNode*/
|
|
1 && { iconNode: (
|
|
/*iconNode*/
|
|
ctx2[0]
|
|
) }
|
|
]) : {};
|
|
if (dirty & /*$$scope*/
|
|
8) {
|
|
icon_changes.$$scope = { dirty, ctx: ctx2 };
|
|
}
|
|
icon.$set(icon_changes);
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(icon.$$.fragment, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(icon.$$.fragment, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
destroy_component(icon, detaching);
|
|
}
|
|
};
|
|
}
|
|
function instance4($$self, $$props, $$invalidate) {
|
|
let { $$slots: slots = {}, $$scope } = $$props;
|
|
const iconNode = [["path", { "d": "m6 9 6 6 6-6" }]];
|
|
$$self.$$set = ($$new_props) => {
|
|
$$invalidate(1, $$props = assign(assign({}, $$props), exclude_internal_props($$new_props)));
|
|
if ("$$scope" in $$new_props)
|
|
$$invalidate(3, $$scope = $$new_props.$$scope);
|
|
};
|
|
$$props = exclude_internal_props($$props);
|
|
return [iconNode, $$props, slots, $$scope];
|
|
}
|
|
var Chevron_down = class extends SvelteComponent {
|
|
constructor(options) {
|
|
super();
|
|
init(this, options, instance4, create_fragment4, safe_not_equal, {});
|
|
}
|
|
};
|
|
var chevron_down_default = Chevron_down;
|
|
|
|
// node_modules/lucide-svelte/dist/icons/chevron-right.svelte
|
|
function create_default_slot4(ctx) {
|
|
let current;
|
|
const default_slot_template = (
|
|
/*#slots*/
|
|
ctx[2].default
|
|
);
|
|
const default_slot = create_slot(
|
|
default_slot_template,
|
|
ctx,
|
|
/*$$scope*/
|
|
ctx[3],
|
|
null
|
|
);
|
|
return {
|
|
c() {
|
|
if (default_slot)
|
|
default_slot.c();
|
|
},
|
|
m(target, anchor) {
|
|
if (default_slot) {
|
|
default_slot.m(target, anchor);
|
|
}
|
|
current = true;
|
|
},
|
|
p(ctx2, dirty) {
|
|
if (default_slot) {
|
|
if (default_slot.p && (!current || dirty & /*$$scope*/
|
|
8)) {
|
|
update_slot_base(
|
|
default_slot,
|
|
default_slot_template,
|
|
ctx2,
|
|
/*$$scope*/
|
|
ctx2[3],
|
|
!current ? get_all_dirty_from_scope(
|
|
/*$$scope*/
|
|
ctx2[3]
|
|
) : get_slot_changes(
|
|
default_slot_template,
|
|
/*$$scope*/
|
|
ctx2[3],
|
|
dirty,
|
|
null
|
|
),
|
|
null
|
|
);
|
|
}
|
|
}
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(default_slot, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(default_slot, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
if (default_slot)
|
|
default_slot.d(detaching);
|
|
}
|
|
};
|
|
}
|
|
function create_fragment5(ctx) {
|
|
let icon;
|
|
let current;
|
|
const icon_spread_levels = [
|
|
{ name: "chevron-right" },
|
|
/*$$props*/
|
|
ctx[1],
|
|
{ iconNode: (
|
|
/*iconNode*/
|
|
ctx[0]
|
|
) }
|
|
];
|
|
let icon_props = {
|
|
$$slots: { default: [create_default_slot4] },
|
|
$$scope: { ctx }
|
|
};
|
|
for (let i = 0; i < icon_spread_levels.length; i += 1) {
|
|
icon_props = assign(icon_props, icon_spread_levels[i]);
|
|
}
|
|
icon = new Icon_default({ props: icon_props });
|
|
return {
|
|
c() {
|
|
create_component(icon.$$.fragment);
|
|
},
|
|
m(target, anchor) {
|
|
mount_component(icon, target, anchor);
|
|
current = true;
|
|
},
|
|
p(ctx2, [dirty]) {
|
|
const icon_changes = dirty & /*$$props, iconNode*/
|
|
3 ? get_spread_update(icon_spread_levels, [
|
|
icon_spread_levels[0],
|
|
dirty & /*$$props*/
|
|
2 && get_spread_object(
|
|
/*$$props*/
|
|
ctx2[1]
|
|
),
|
|
dirty & /*iconNode*/
|
|
1 && { iconNode: (
|
|
/*iconNode*/
|
|
ctx2[0]
|
|
) }
|
|
]) : {};
|
|
if (dirty & /*$$scope*/
|
|
8) {
|
|
icon_changes.$$scope = { dirty, ctx: ctx2 };
|
|
}
|
|
icon.$set(icon_changes);
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(icon.$$.fragment, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(icon.$$.fragment, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
destroy_component(icon, detaching);
|
|
}
|
|
};
|
|
}
|
|
function instance5($$self, $$props, $$invalidate) {
|
|
let { $$slots: slots = {}, $$scope } = $$props;
|
|
const iconNode = [["path", { "d": "m9 18 6-6-6-6" }]];
|
|
$$self.$$set = ($$new_props) => {
|
|
$$invalidate(1, $$props = assign(assign({}, $$props), exclude_internal_props($$new_props)));
|
|
if ("$$scope" in $$new_props)
|
|
$$invalidate(3, $$scope = $$new_props.$$scope);
|
|
};
|
|
$$props = exclude_internal_props($$props);
|
|
return [iconNode, $$props, slots, $$scope];
|
|
}
|
|
var Chevron_right = class extends SvelteComponent {
|
|
constructor(options) {
|
|
super();
|
|
init(this, options, instance5, create_fragment5, safe_not_equal, {});
|
|
}
|
|
};
|
|
var chevron_right_default = Chevron_right;
|
|
|
|
// node_modules/lucide-svelte/dist/icons/chevron-up.svelte
|
|
function create_default_slot5(ctx) {
|
|
let current;
|
|
const default_slot_template = (
|
|
/*#slots*/
|
|
ctx[2].default
|
|
);
|
|
const default_slot = create_slot(
|
|
default_slot_template,
|
|
ctx,
|
|
/*$$scope*/
|
|
ctx[3],
|
|
null
|
|
);
|
|
return {
|
|
c() {
|
|
if (default_slot)
|
|
default_slot.c();
|
|
},
|
|
m(target, anchor) {
|
|
if (default_slot) {
|
|
default_slot.m(target, anchor);
|
|
}
|
|
current = true;
|
|
},
|
|
p(ctx2, dirty) {
|
|
if (default_slot) {
|
|
if (default_slot.p && (!current || dirty & /*$$scope*/
|
|
8)) {
|
|
update_slot_base(
|
|
default_slot,
|
|
default_slot_template,
|
|
ctx2,
|
|
/*$$scope*/
|
|
ctx2[3],
|
|
!current ? get_all_dirty_from_scope(
|
|
/*$$scope*/
|
|
ctx2[3]
|
|
) : get_slot_changes(
|
|
default_slot_template,
|
|
/*$$scope*/
|
|
ctx2[3],
|
|
dirty,
|
|
null
|
|
),
|
|
null
|
|
);
|
|
}
|
|
}
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(default_slot, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(default_slot, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
if (default_slot)
|
|
default_slot.d(detaching);
|
|
}
|
|
};
|
|
}
|
|
function create_fragment6(ctx) {
|
|
let icon;
|
|
let current;
|
|
const icon_spread_levels = [
|
|
{ name: "chevron-up" },
|
|
/*$$props*/
|
|
ctx[1],
|
|
{ iconNode: (
|
|
/*iconNode*/
|
|
ctx[0]
|
|
) }
|
|
];
|
|
let icon_props = {
|
|
$$slots: { default: [create_default_slot5] },
|
|
$$scope: { ctx }
|
|
};
|
|
for (let i = 0; i < icon_spread_levels.length; i += 1) {
|
|
icon_props = assign(icon_props, icon_spread_levels[i]);
|
|
}
|
|
icon = new Icon_default({ props: icon_props });
|
|
return {
|
|
c() {
|
|
create_component(icon.$$.fragment);
|
|
},
|
|
m(target, anchor) {
|
|
mount_component(icon, target, anchor);
|
|
current = true;
|
|
},
|
|
p(ctx2, [dirty]) {
|
|
const icon_changes = dirty & /*$$props, iconNode*/
|
|
3 ? get_spread_update(icon_spread_levels, [
|
|
icon_spread_levels[0],
|
|
dirty & /*$$props*/
|
|
2 && get_spread_object(
|
|
/*$$props*/
|
|
ctx2[1]
|
|
),
|
|
dirty & /*iconNode*/
|
|
1 && { iconNode: (
|
|
/*iconNode*/
|
|
ctx2[0]
|
|
) }
|
|
]) : {};
|
|
if (dirty & /*$$scope*/
|
|
8) {
|
|
icon_changes.$$scope = { dirty, ctx: ctx2 };
|
|
}
|
|
icon.$set(icon_changes);
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(icon.$$.fragment, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(icon.$$.fragment, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
destroy_component(icon, detaching);
|
|
}
|
|
};
|
|
}
|
|
function instance6($$self, $$props, $$invalidate) {
|
|
let { $$slots: slots = {}, $$scope } = $$props;
|
|
const iconNode = [["path", { "d": "m18 15-6-6-6 6" }]];
|
|
$$self.$$set = ($$new_props) => {
|
|
$$invalidate(1, $$props = assign(assign({}, $$props), exclude_internal_props($$new_props)));
|
|
if ("$$scope" in $$new_props)
|
|
$$invalidate(3, $$scope = $$new_props.$$scope);
|
|
};
|
|
$$props = exclude_internal_props($$props);
|
|
return [iconNode, $$props, slots, $$scope];
|
|
}
|
|
var Chevron_up = class extends SvelteComponent {
|
|
constructor(options) {
|
|
super();
|
|
init(this, options, instance6, create_fragment6, safe_not_equal, {});
|
|
}
|
|
};
|
|
var chevron_up_default = Chevron_up;
|
|
|
|
// node_modules/lucide-svelte/dist/icons/clipboard-paste.svelte
|
|
function create_default_slot6(ctx) {
|
|
let current;
|
|
const default_slot_template = (
|
|
/*#slots*/
|
|
ctx[2].default
|
|
);
|
|
const default_slot = create_slot(
|
|
default_slot_template,
|
|
ctx,
|
|
/*$$scope*/
|
|
ctx[3],
|
|
null
|
|
);
|
|
return {
|
|
c() {
|
|
if (default_slot)
|
|
default_slot.c();
|
|
},
|
|
m(target, anchor) {
|
|
if (default_slot) {
|
|
default_slot.m(target, anchor);
|
|
}
|
|
current = true;
|
|
},
|
|
p(ctx2, dirty) {
|
|
if (default_slot) {
|
|
if (default_slot.p && (!current || dirty & /*$$scope*/
|
|
8)) {
|
|
update_slot_base(
|
|
default_slot,
|
|
default_slot_template,
|
|
ctx2,
|
|
/*$$scope*/
|
|
ctx2[3],
|
|
!current ? get_all_dirty_from_scope(
|
|
/*$$scope*/
|
|
ctx2[3]
|
|
) : get_slot_changes(
|
|
default_slot_template,
|
|
/*$$scope*/
|
|
ctx2[3],
|
|
dirty,
|
|
null
|
|
),
|
|
null
|
|
);
|
|
}
|
|
}
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(default_slot, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(default_slot, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
if (default_slot)
|
|
default_slot.d(detaching);
|
|
}
|
|
};
|
|
}
|
|
function create_fragment7(ctx) {
|
|
let icon;
|
|
let current;
|
|
const icon_spread_levels = [
|
|
{ name: "clipboard-paste" },
|
|
/*$$props*/
|
|
ctx[1],
|
|
{ iconNode: (
|
|
/*iconNode*/
|
|
ctx[0]
|
|
) }
|
|
];
|
|
let icon_props = {
|
|
$$slots: { default: [create_default_slot6] },
|
|
$$scope: { ctx }
|
|
};
|
|
for (let i = 0; i < icon_spread_levels.length; i += 1) {
|
|
icon_props = assign(icon_props, icon_spread_levels[i]);
|
|
}
|
|
icon = new Icon_default({ props: icon_props });
|
|
return {
|
|
c() {
|
|
create_component(icon.$$.fragment);
|
|
},
|
|
m(target, anchor) {
|
|
mount_component(icon, target, anchor);
|
|
current = true;
|
|
},
|
|
p(ctx2, [dirty]) {
|
|
const icon_changes = dirty & /*$$props, iconNode*/
|
|
3 ? get_spread_update(icon_spread_levels, [
|
|
icon_spread_levels[0],
|
|
dirty & /*$$props*/
|
|
2 && get_spread_object(
|
|
/*$$props*/
|
|
ctx2[1]
|
|
),
|
|
dirty & /*iconNode*/
|
|
1 && { iconNode: (
|
|
/*iconNode*/
|
|
ctx2[0]
|
|
) }
|
|
]) : {};
|
|
if (dirty & /*$$scope*/
|
|
8) {
|
|
icon_changes.$$scope = { dirty, ctx: ctx2 };
|
|
}
|
|
icon.$set(icon_changes);
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(icon.$$.fragment, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(icon.$$.fragment, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
destroy_component(icon, detaching);
|
|
}
|
|
};
|
|
}
|
|
function instance7($$self, $$props, $$invalidate) {
|
|
let { $$slots: slots = {}, $$scope } = $$props;
|
|
const iconNode = [
|
|
[
|
|
"path",
|
|
{
|
|
"d": "M15 2H9a1 1 0 0 0-1 1v2c0 .6.4 1 1 1h6c.6 0 1-.4 1-1V3c0-.6-.4-1-1-1Z"
|
|
}
|
|
],
|
|
[
|
|
"path",
|
|
{
|
|
"d": "M8 4H6a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2M16 4h2a2 2 0 0 1 2 2v2M11 14h10"
|
|
}
|
|
],
|
|
["path", { "d": "m17 10 4 4-4 4" }]
|
|
];
|
|
$$self.$$set = ($$new_props) => {
|
|
$$invalidate(1, $$props = assign(assign({}, $$props), exclude_internal_props($$new_props)));
|
|
if ("$$scope" in $$new_props)
|
|
$$invalidate(3, $$scope = $$new_props.$$scope);
|
|
};
|
|
$$props = exclude_internal_props($$props);
|
|
return [iconNode, $$props, slots, $$scope];
|
|
}
|
|
var Clipboard_paste = class extends SvelteComponent {
|
|
constructor(options) {
|
|
super();
|
|
init(this, options, instance7, create_fragment7, safe_not_equal, {});
|
|
}
|
|
};
|
|
var clipboard_paste_default = Clipboard_paste;
|
|
|
|
// node_modules/lucide-svelte/dist/icons/clock.svelte
|
|
function create_default_slot7(ctx) {
|
|
let current;
|
|
const default_slot_template = (
|
|
/*#slots*/
|
|
ctx[2].default
|
|
);
|
|
const default_slot = create_slot(
|
|
default_slot_template,
|
|
ctx,
|
|
/*$$scope*/
|
|
ctx[3],
|
|
null
|
|
);
|
|
return {
|
|
c() {
|
|
if (default_slot)
|
|
default_slot.c();
|
|
},
|
|
m(target, anchor) {
|
|
if (default_slot) {
|
|
default_slot.m(target, anchor);
|
|
}
|
|
current = true;
|
|
},
|
|
p(ctx2, dirty) {
|
|
if (default_slot) {
|
|
if (default_slot.p && (!current || dirty & /*$$scope*/
|
|
8)) {
|
|
update_slot_base(
|
|
default_slot,
|
|
default_slot_template,
|
|
ctx2,
|
|
/*$$scope*/
|
|
ctx2[3],
|
|
!current ? get_all_dirty_from_scope(
|
|
/*$$scope*/
|
|
ctx2[3]
|
|
) : get_slot_changes(
|
|
default_slot_template,
|
|
/*$$scope*/
|
|
ctx2[3],
|
|
dirty,
|
|
null
|
|
),
|
|
null
|
|
);
|
|
}
|
|
}
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(default_slot, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(default_slot, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
if (default_slot)
|
|
default_slot.d(detaching);
|
|
}
|
|
};
|
|
}
|
|
function create_fragment8(ctx) {
|
|
let icon;
|
|
let current;
|
|
const icon_spread_levels = [
|
|
{ name: "clock" },
|
|
/*$$props*/
|
|
ctx[1],
|
|
{ iconNode: (
|
|
/*iconNode*/
|
|
ctx[0]
|
|
) }
|
|
];
|
|
let icon_props = {
|
|
$$slots: { default: [create_default_slot7] },
|
|
$$scope: { ctx }
|
|
};
|
|
for (let i = 0; i < icon_spread_levels.length; i += 1) {
|
|
icon_props = assign(icon_props, icon_spread_levels[i]);
|
|
}
|
|
icon = new Icon_default({ props: icon_props });
|
|
return {
|
|
c() {
|
|
create_component(icon.$$.fragment);
|
|
},
|
|
m(target, anchor) {
|
|
mount_component(icon, target, anchor);
|
|
current = true;
|
|
},
|
|
p(ctx2, [dirty]) {
|
|
const icon_changes = dirty & /*$$props, iconNode*/
|
|
3 ? get_spread_update(icon_spread_levels, [
|
|
icon_spread_levels[0],
|
|
dirty & /*$$props*/
|
|
2 && get_spread_object(
|
|
/*$$props*/
|
|
ctx2[1]
|
|
),
|
|
dirty & /*iconNode*/
|
|
1 && { iconNode: (
|
|
/*iconNode*/
|
|
ctx2[0]
|
|
) }
|
|
]) : {};
|
|
if (dirty & /*$$scope*/
|
|
8) {
|
|
icon_changes.$$scope = { dirty, ctx: ctx2 };
|
|
}
|
|
icon.$set(icon_changes);
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(icon.$$.fragment, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(icon.$$.fragment, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
destroy_component(icon, detaching);
|
|
}
|
|
};
|
|
}
|
|
function instance8($$self, $$props, $$invalidate) {
|
|
let { $$slots: slots = {}, $$scope } = $$props;
|
|
const iconNode = [
|
|
["circle", { "cx": "12", "cy": "12", "r": "10" }],
|
|
["polyline", { "points": "12 6 12 12 16 14" }]
|
|
];
|
|
$$self.$$set = ($$new_props) => {
|
|
$$invalidate(1, $$props = assign(assign({}, $$props), exclude_internal_props($$new_props)));
|
|
if ("$$scope" in $$new_props)
|
|
$$invalidate(3, $$scope = $$new_props.$$scope);
|
|
};
|
|
$$props = exclude_internal_props($$props);
|
|
return [iconNode, $$props, slots, $$scope];
|
|
}
|
|
var Clock = class extends SvelteComponent {
|
|
constructor(options) {
|
|
super();
|
|
init(this, options, instance8, create_fragment8, safe_not_equal, {});
|
|
}
|
|
};
|
|
var clock_default = Clock;
|
|
|
|
// node_modules/lucide-svelte/dist/icons/eye.svelte
|
|
function create_default_slot8(ctx) {
|
|
let current;
|
|
const default_slot_template = (
|
|
/*#slots*/
|
|
ctx[2].default
|
|
);
|
|
const default_slot = create_slot(
|
|
default_slot_template,
|
|
ctx,
|
|
/*$$scope*/
|
|
ctx[3],
|
|
null
|
|
);
|
|
return {
|
|
c() {
|
|
if (default_slot)
|
|
default_slot.c();
|
|
},
|
|
m(target, anchor) {
|
|
if (default_slot) {
|
|
default_slot.m(target, anchor);
|
|
}
|
|
current = true;
|
|
},
|
|
p(ctx2, dirty) {
|
|
if (default_slot) {
|
|
if (default_slot.p && (!current || dirty & /*$$scope*/
|
|
8)) {
|
|
update_slot_base(
|
|
default_slot,
|
|
default_slot_template,
|
|
ctx2,
|
|
/*$$scope*/
|
|
ctx2[3],
|
|
!current ? get_all_dirty_from_scope(
|
|
/*$$scope*/
|
|
ctx2[3]
|
|
) : get_slot_changes(
|
|
default_slot_template,
|
|
/*$$scope*/
|
|
ctx2[3],
|
|
dirty,
|
|
null
|
|
),
|
|
null
|
|
);
|
|
}
|
|
}
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(default_slot, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(default_slot, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
if (default_slot)
|
|
default_slot.d(detaching);
|
|
}
|
|
};
|
|
}
|
|
function create_fragment9(ctx) {
|
|
let icon;
|
|
let current;
|
|
const icon_spread_levels = [
|
|
{ name: "eye" },
|
|
/*$$props*/
|
|
ctx[1],
|
|
{ iconNode: (
|
|
/*iconNode*/
|
|
ctx[0]
|
|
) }
|
|
];
|
|
let icon_props = {
|
|
$$slots: { default: [create_default_slot8] },
|
|
$$scope: { ctx }
|
|
};
|
|
for (let i = 0; i < icon_spread_levels.length; i += 1) {
|
|
icon_props = assign(icon_props, icon_spread_levels[i]);
|
|
}
|
|
icon = new Icon_default({ props: icon_props });
|
|
return {
|
|
c() {
|
|
create_component(icon.$$.fragment);
|
|
},
|
|
m(target, anchor) {
|
|
mount_component(icon, target, anchor);
|
|
current = true;
|
|
},
|
|
p(ctx2, [dirty]) {
|
|
const icon_changes = dirty & /*$$props, iconNode*/
|
|
3 ? get_spread_update(icon_spread_levels, [
|
|
icon_spread_levels[0],
|
|
dirty & /*$$props*/
|
|
2 && get_spread_object(
|
|
/*$$props*/
|
|
ctx2[1]
|
|
),
|
|
dirty & /*iconNode*/
|
|
1 && { iconNode: (
|
|
/*iconNode*/
|
|
ctx2[0]
|
|
) }
|
|
]) : {};
|
|
if (dirty & /*$$scope*/
|
|
8) {
|
|
icon_changes.$$scope = { dirty, ctx: ctx2 };
|
|
}
|
|
icon.$set(icon_changes);
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(icon.$$.fragment, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(icon.$$.fragment, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
destroy_component(icon, detaching);
|
|
}
|
|
};
|
|
}
|
|
function instance9($$self, $$props, $$invalidate) {
|
|
let { $$slots: slots = {}, $$scope } = $$props;
|
|
const iconNode = [
|
|
[
|
|
"path",
|
|
{
|
|
"d": "M2 12s3-7 10-7 10 7 10 7-3 7-10 7-10-7-10-7Z"
|
|
}
|
|
],
|
|
["circle", { "cx": "12", "cy": "12", "r": "3" }]
|
|
];
|
|
$$self.$$set = ($$new_props) => {
|
|
$$invalidate(1, $$props = assign(assign({}, $$props), exclude_internal_props($$new_props)));
|
|
if ("$$scope" in $$new_props)
|
|
$$invalidate(3, $$scope = $$new_props.$$scope);
|
|
};
|
|
$$props = exclude_internal_props($$props);
|
|
return [iconNode, $$props, slots, $$scope];
|
|
}
|
|
var Eye = class extends SvelteComponent {
|
|
constructor(options) {
|
|
super();
|
|
init(this, options, instance9, create_fragment9, safe_not_equal, {});
|
|
}
|
|
};
|
|
var eye_default = Eye;
|
|
|
|
// node_modules/lucide-svelte/dist/icons/file-minus.svelte
|
|
function create_default_slot9(ctx) {
|
|
let current;
|
|
const default_slot_template = (
|
|
/*#slots*/
|
|
ctx[2].default
|
|
);
|
|
const default_slot = create_slot(
|
|
default_slot_template,
|
|
ctx,
|
|
/*$$scope*/
|
|
ctx[3],
|
|
null
|
|
);
|
|
return {
|
|
c() {
|
|
if (default_slot)
|
|
default_slot.c();
|
|
},
|
|
m(target, anchor) {
|
|
if (default_slot) {
|
|
default_slot.m(target, anchor);
|
|
}
|
|
current = true;
|
|
},
|
|
p(ctx2, dirty) {
|
|
if (default_slot) {
|
|
if (default_slot.p && (!current || dirty & /*$$scope*/
|
|
8)) {
|
|
update_slot_base(
|
|
default_slot,
|
|
default_slot_template,
|
|
ctx2,
|
|
/*$$scope*/
|
|
ctx2[3],
|
|
!current ? get_all_dirty_from_scope(
|
|
/*$$scope*/
|
|
ctx2[3]
|
|
) : get_slot_changes(
|
|
default_slot_template,
|
|
/*$$scope*/
|
|
ctx2[3],
|
|
dirty,
|
|
null
|
|
),
|
|
null
|
|
);
|
|
}
|
|
}
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(default_slot, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(default_slot, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
if (default_slot)
|
|
default_slot.d(detaching);
|
|
}
|
|
};
|
|
}
|
|
function create_fragment10(ctx) {
|
|
let icon;
|
|
let current;
|
|
const icon_spread_levels = [
|
|
{ name: "file-minus" },
|
|
/*$$props*/
|
|
ctx[1],
|
|
{ iconNode: (
|
|
/*iconNode*/
|
|
ctx[0]
|
|
) }
|
|
];
|
|
let icon_props = {
|
|
$$slots: { default: [create_default_slot9] },
|
|
$$scope: { ctx }
|
|
};
|
|
for (let i = 0; i < icon_spread_levels.length; i += 1) {
|
|
icon_props = assign(icon_props, icon_spread_levels[i]);
|
|
}
|
|
icon = new Icon_default({ props: icon_props });
|
|
return {
|
|
c() {
|
|
create_component(icon.$$.fragment);
|
|
},
|
|
m(target, anchor) {
|
|
mount_component(icon, target, anchor);
|
|
current = true;
|
|
},
|
|
p(ctx2, [dirty]) {
|
|
const icon_changes = dirty & /*$$props, iconNode*/
|
|
3 ? get_spread_update(icon_spread_levels, [
|
|
icon_spread_levels[0],
|
|
dirty & /*$$props*/
|
|
2 && get_spread_object(
|
|
/*$$props*/
|
|
ctx2[1]
|
|
),
|
|
dirty & /*iconNode*/
|
|
1 && { iconNode: (
|
|
/*iconNode*/
|
|
ctx2[0]
|
|
) }
|
|
]) : {};
|
|
if (dirty & /*$$scope*/
|
|
8) {
|
|
icon_changes.$$scope = { dirty, ctx: ctx2 };
|
|
}
|
|
icon.$set(icon_changes);
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(icon.$$.fragment, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(icon.$$.fragment, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
destroy_component(icon, detaching);
|
|
}
|
|
};
|
|
}
|
|
function instance10($$self, $$props, $$invalidate) {
|
|
let { $$slots: slots = {}, $$scope } = $$props;
|
|
const iconNode = [
|
|
[
|
|
"path",
|
|
{
|
|
"d": "M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z"
|
|
}
|
|
],
|
|
["path", { "d": "M14 2v4a2 2 0 0 0 2 2h4" }],
|
|
["path", { "d": "M9 15h6" }]
|
|
];
|
|
$$self.$$set = ($$new_props) => {
|
|
$$invalidate(1, $$props = assign(assign({}, $$props), exclude_internal_props($$new_props)));
|
|
if ("$$scope" in $$new_props)
|
|
$$invalidate(3, $$scope = $$new_props.$$scope);
|
|
};
|
|
$$props = exclude_internal_props($$props);
|
|
return [iconNode, $$props, slots, $$scope];
|
|
}
|
|
var File_minus = class extends SvelteComponent {
|
|
constructor(options) {
|
|
super();
|
|
init(this, options, instance10, create_fragment10, safe_not_equal, {});
|
|
}
|
|
};
|
|
var file_minus_default = File_minus;
|
|
|
|
// node_modules/lucide-svelte/dist/icons/file-output.svelte
|
|
function create_default_slot10(ctx) {
|
|
let current;
|
|
const default_slot_template = (
|
|
/*#slots*/
|
|
ctx[2].default
|
|
);
|
|
const default_slot = create_slot(
|
|
default_slot_template,
|
|
ctx,
|
|
/*$$scope*/
|
|
ctx[3],
|
|
null
|
|
);
|
|
return {
|
|
c() {
|
|
if (default_slot)
|
|
default_slot.c();
|
|
},
|
|
m(target, anchor) {
|
|
if (default_slot) {
|
|
default_slot.m(target, anchor);
|
|
}
|
|
current = true;
|
|
},
|
|
p(ctx2, dirty) {
|
|
if (default_slot) {
|
|
if (default_slot.p && (!current || dirty & /*$$scope*/
|
|
8)) {
|
|
update_slot_base(
|
|
default_slot,
|
|
default_slot_template,
|
|
ctx2,
|
|
/*$$scope*/
|
|
ctx2[3],
|
|
!current ? get_all_dirty_from_scope(
|
|
/*$$scope*/
|
|
ctx2[3]
|
|
) : get_slot_changes(
|
|
default_slot_template,
|
|
/*$$scope*/
|
|
ctx2[3],
|
|
dirty,
|
|
null
|
|
),
|
|
null
|
|
);
|
|
}
|
|
}
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(default_slot, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(default_slot, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
if (default_slot)
|
|
default_slot.d(detaching);
|
|
}
|
|
};
|
|
}
|
|
function create_fragment11(ctx) {
|
|
let icon;
|
|
let current;
|
|
const icon_spread_levels = [
|
|
{ name: "file-output" },
|
|
/*$$props*/
|
|
ctx[1],
|
|
{ iconNode: (
|
|
/*iconNode*/
|
|
ctx[0]
|
|
) }
|
|
];
|
|
let icon_props = {
|
|
$$slots: { default: [create_default_slot10] },
|
|
$$scope: { ctx }
|
|
};
|
|
for (let i = 0; i < icon_spread_levels.length; i += 1) {
|
|
icon_props = assign(icon_props, icon_spread_levels[i]);
|
|
}
|
|
icon = new Icon_default({ props: icon_props });
|
|
return {
|
|
c() {
|
|
create_component(icon.$$.fragment);
|
|
},
|
|
m(target, anchor) {
|
|
mount_component(icon, target, anchor);
|
|
current = true;
|
|
},
|
|
p(ctx2, [dirty]) {
|
|
const icon_changes = dirty & /*$$props, iconNode*/
|
|
3 ? get_spread_update(icon_spread_levels, [
|
|
icon_spread_levels[0],
|
|
dirty & /*$$props*/
|
|
2 && get_spread_object(
|
|
/*$$props*/
|
|
ctx2[1]
|
|
),
|
|
dirty & /*iconNode*/
|
|
1 && { iconNode: (
|
|
/*iconNode*/
|
|
ctx2[0]
|
|
) }
|
|
]) : {};
|
|
if (dirty & /*$$scope*/
|
|
8) {
|
|
icon_changes.$$scope = { dirty, ctx: ctx2 };
|
|
}
|
|
icon.$set(icon_changes);
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(icon.$$.fragment, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(icon.$$.fragment, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
destroy_component(icon, detaching);
|
|
}
|
|
};
|
|
}
|
|
function instance11($$self, $$props, $$invalidate) {
|
|
let { $$slots: slots = {}, $$scope } = $$props;
|
|
const iconNode = [
|
|
["path", { "d": "M14 2v4a2 2 0 0 0 2 2h4" }],
|
|
[
|
|
"path",
|
|
{
|
|
"d": "M4 7V4a2 2 0 0 1 2-2 2 2 0 0 0-2 2"
|
|
}
|
|
],
|
|
[
|
|
"path",
|
|
{
|
|
"d": "M4.063 20.999a2 2 0 0 0 2 1L18 22a2 2 0 0 0 2-2V7l-5-5H6"
|
|
}
|
|
],
|
|
["path", { "d": "m5 11-3 3" }],
|
|
["path", { "d": "m5 17-3-3h10" }]
|
|
];
|
|
$$self.$$set = ($$new_props) => {
|
|
$$invalidate(1, $$props = assign(assign({}, $$props), exclude_internal_props($$new_props)));
|
|
if ("$$scope" in $$new_props)
|
|
$$invalidate(3, $$scope = $$new_props.$$scope);
|
|
};
|
|
$$props = exclude_internal_props($$props);
|
|
return [iconNode, $$props, slots, $$scope];
|
|
}
|
|
var File_output = class extends SvelteComponent {
|
|
constructor(options) {
|
|
super();
|
|
init(this, options, instance11, create_fragment11, safe_not_equal, {});
|
|
}
|
|
};
|
|
var file_output_default = File_output;
|
|
|
|
// node_modules/lucide-svelte/dist/icons/file-pen.svelte
|
|
function create_default_slot11(ctx) {
|
|
let current;
|
|
const default_slot_template = (
|
|
/*#slots*/
|
|
ctx[2].default
|
|
);
|
|
const default_slot = create_slot(
|
|
default_slot_template,
|
|
ctx,
|
|
/*$$scope*/
|
|
ctx[3],
|
|
null
|
|
);
|
|
return {
|
|
c() {
|
|
if (default_slot)
|
|
default_slot.c();
|
|
},
|
|
m(target, anchor) {
|
|
if (default_slot) {
|
|
default_slot.m(target, anchor);
|
|
}
|
|
current = true;
|
|
},
|
|
p(ctx2, dirty) {
|
|
if (default_slot) {
|
|
if (default_slot.p && (!current || dirty & /*$$scope*/
|
|
8)) {
|
|
update_slot_base(
|
|
default_slot,
|
|
default_slot_template,
|
|
ctx2,
|
|
/*$$scope*/
|
|
ctx2[3],
|
|
!current ? get_all_dirty_from_scope(
|
|
/*$$scope*/
|
|
ctx2[3]
|
|
) : get_slot_changes(
|
|
default_slot_template,
|
|
/*$$scope*/
|
|
ctx2[3],
|
|
dirty,
|
|
null
|
|
),
|
|
null
|
|
);
|
|
}
|
|
}
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(default_slot, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(default_slot, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
if (default_slot)
|
|
default_slot.d(detaching);
|
|
}
|
|
};
|
|
}
|
|
function create_fragment12(ctx) {
|
|
let icon;
|
|
let current;
|
|
const icon_spread_levels = [
|
|
{ name: "file-pen" },
|
|
/*$$props*/
|
|
ctx[1],
|
|
{ iconNode: (
|
|
/*iconNode*/
|
|
ctx[0]
|
|
) }
|
|
];
|
|
let icon_props = {
|
|
$$slots: { default: [create_default_slot11] },
|
|
$$scope: { ctx }
|
|
};
|
|
for (let i = 0; i < icon_spread_levels.length; i += 1) {
|
|
icon_props = assign(icon_props, icon_spread_levels[i]);
|
|
}
|
|
icon = new Icon_default({ props: icon_props });
|
|
return {
|
|
c() {
|
|
create_component(icon.$$.fragment);
|
|
},
|
|
m(target, anchor) {
|
|
mount_component(icon, target, anchor);
|
|
current = true;
|
|
},
|
|
p(ctx2, [dirty]) {
|
|
const icon_changes = dirty & /*$$props, iconNode*/
|
|
3 ? get_spread_update(icon_spread_levels, [
|
|
icon_spread_levels[0],
|
|
dirty & /*$$props*/
|
|
2 && get_spread_object(
|
|
/*$$props*/
|
|
ctx2[1]
|
|
),
|
|
dirty & /*iconNode*/
|
|
1 && { iconNode: (
|
|
/*iconNode*/
|
|
ctx2[0]
|
|
) }
|
|
]) : {};
|
|
if (dirty & /*$$scope*/
|
|
8) {
|
|
icon_changes.$$scope = { dirty, ctx: ctx2 };
|
|
}
|
|
icon.$set(icon_changes);
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(icon.$$.fragment, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(icon.$$.fragment, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
destroy_component(icon, detaching);
|
|
}
|
|
};
|
|
}
|
|
function instance12($$self, $$props, $$invalidate) {
|
|
let { $$slots: slots = {}, $$scope } = $$props;
|
|
const iconNode = [
|
|
[
|
|
"path",
|
|
{
|
|
"d": "M12 22h6a2 2 0 0 0 2-2V7l-5-5H6a2 2 0 0 0-2 2v10"
|
|
}
|
|
],
|
|
["path", { "d": "M14 2v4a2 2 0 0 0 2 2h4" }],
|
|
[
|
|
"path",
|
|
{
|
|
"d": "M10.4 12.6a2 2 0 1 1 3 3L8 21l-4 1 1-4Z"
|
|
}
|
|
]
|
|
];
|
|
$$self.$$set = ($$new_props) => {
|
|
$$invalidate(1, $$props = assign(assign({}, $$props), exclude_internal_props($$new_props)));
|
|
if ("$$scope" in $$new_props)
|
|
$$invalidate(3, $$scope = $$new_props.$$scope);
|
|
};
|
|
$$props = exclude_internal_props($$props);
|
|
return [iconNode, $$props, slots, $$scope];
|
|
}
|
|
var File_pen = class extends SvelteComponent {
|
|
constructor(options) {
|
|
super();
|
|
init(this, options, instance12, create_fragment12, safe_not_equal, {});
|
|
}
|
|
};
|
|
var file_pen_default = File_pen;
|
|
|
|
// node_modules/lucide-svelte/dist/icons/file-plus.svelte
|
|
function create_default_slot12(ctx) {
|
|
let current;
|
|
const default_slot_template = (
|
|
/*#slots*/
|
|
ctx[2].default
|
|
);
|
|
const default_slot = create_slot(
|
|
default_slot_template,
|
|
ctx,
|
|
/*$$scope*/
|
|
ctx[3],
|
|
null
|
|
);
|
|
return {
|
|
c() {
|
|
if (default_slot)
|
|
default_slot.c();
|
|
},
|
|
m(target, anchor) {
|
|
if (default_slot) {
|
|
default_slot.m(target, anchor);
|
|
}
|
|
current = true;
|
|
},
|
|
p(ctx2, dirty) {
|
|
if (default_slot) {
|
|
if (default_slot.p && (!current || dirty & /*$$scope*/
|
|
8)) {
|
|
update_slot_base(
|
|
default_slot,
|
|
default_slot_template,
|
|
ctx2,
|
|
/*$$scope*/
|
|
ctx2[3],
|
|
!current ? get_all_dirty_from_scope(
|
|
/*$$scope*/
|
|
ctx2[3]
|
|
) : get_slot_changes(
|
|
default_slot_template,
|
|
/*$$scope*/
|
|
ctx2[3],
|
|
dirty,
|
|
null
|
|
),
|
|
null
|
|
);
|
|
}
|
|
}
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(default_slot, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(default_slot, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
if (default_slot)
|
|
default_slot.d(detaching);
|
|
}
|
|
};
|
|
}
|
|
function create_fragment13(ctx) {
|
|
let icon;
|
|
let current;
|
|
const icon_spread_levels = [
|
|
{ name: "file-plus" },
|
|
/*$$props*/
|
|
ctx[1],
|
|
{ iconNode: (
|
|
/*iconNode*/
|
|
ctx[0]
|
|
) }
|
|
];
|
|
let icon_props = {
|
|
$$slots: { default: [create_default_slot12] },
|
|
$$scope: { ctx }
|
|
};
|
|
for (let i = 0; i < icon_spread_levels.length; i += 1) {
|
|
icon_props = assign(icon_props, icon_spread_levels[i]);
|
|
}
|
|
icon = new Icon_default({ props: icon_props });
|
|
return {
|
|
c() {
|
|
create_component(icon.$$.fragment);
|
|
},
|
|
m(target, anchor) {
|
|
mount_component(icon, target, anchor);
|
|
current = true;
|
|
},
|
|
p(ctx2, [dirty]) {
|
|
const icon_changes = dirty & /*$$props, iconNode*/
|
|
3 ? get_spread_update(icon_spread_levels, [
|
|
icon_spread_levels[0],
|
|
dirty & /*$$props*/
|
|
2 && get_spread_object(
|
|
/*$$props*/
|
|
ctx2[1]
|
|
),
|
|
dirty & /*iconNode*/
|
|
1 && { iconNode: (
|
|
/*iconNode*/
|
|
ctx2[0]
|
|
) }
|
|
]) : {};
|
|
if (dirty & /*$$scope*/
|
|
8) {
|
|
icon_changes.$$scope = { dirty, ctx: ctx2 };
|
|
}
|
|
icon.$set(icon_changes);
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(icon.$$.fragment, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(icon.$$.fragment, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
destroy_component(icon, detaching);
|
|
}
|
|
};
|
|
}
|
|
function instance13($$self, $$props, $$invalidate) {
|
|
let { $$slots: slots = {}, $$scope } = $$props;
|
|
const iconNode = [
|
|
[
|
|
"path",
|
|
{
|
|
"d": "M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z"
|
|
}
|
|
],
|
|
["path", { "d": "M14 2v4a2 2 0 0 0 2 2h4" }],
|
|
["path", { "d": "M9 15h6" }],
|
|
["path", { "d": "M12 18v-6" }]
|
|
];
|
|
$$self.$$set = ($$new_props) => {
|
|
$$invalidate(1, $$props = assign(assign({}, $$props), exclude_internal_props($$new_props)));
|
|
if ("$$scope" in $$new_props)
|
|
$$invalidate(3, $$scope = $$new_props.$$scope);
|
|
};
|
|
$$props = exclude_internal_props($$props);
|
|
return [iconNode, $$props, slots, $$scope];
|
|
}
|
|
var File_plus = class extends SvelteComponent {
|
|
constructor(options) {
|
|
super();
|
|
init(this, options, instance13, create_fragment13, safe_not_equal, {});
|
|
}
|
|
};
|
|
var file_plus_default = File_plus;
|
|
|
|
// node_modules/lucide-svelte/dist/icons/file-symlink.svelte
|
|
function create_default_slot13(ctx) {
|
|
let current;
|
|
const default_slot_template = (
|
|
/*#slots*/
|
|
ctx[2].default
|
|
);
|
|
const default_slot = create_slot(
|
|
default_slot_template,
|
|
ctx,
|
|
/*$$scope*/
|
|
ctx[3],
|
|
null
|
|
);
|
|
return {
|
|
c() {
|
|
if (default_slot)
|
|
default_slot.c();
|
|
},
|
|
m(target, anchor) {
|
|
if (default_slot) {
|
|
default_slot.m(target, anchor);
|
|
}
|
|
current = true;
|
|
},
|
|
p(ctx2, dirty) {
|
|
if (default_slot) {
|
|
if (default_slot.p && (!current || dirty & /*$$scope*/
|
|
8)) {
|
|
update_slot_base(
|
|
default_slot,
|
|
default_slot_template,
|
|
ctx2,
|
|
/*$$scope*/
|
|
ctx2[3],
|
|
!current ? get_all_dirty_from_scope(
|
|
/*$$scope*/
|
|
ctx2[3]
|
|
) : get_slot_changes(
|
|
default_slot_template,
|
|
/*$$scope*/
|
|
ctx2[3],
|
|
dirty,
|
|
null
|
|
),
|
|
null
|
|
);
|
|
}
|
|
}
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(default_slot, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(default_slot, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
if (default_slot)
|
|
default_slot.d(detaching);
|
|
}
|
|
};
|
|
}
|
|
function create_fragment14(ctx) {
|
|
let icon;
|
|
let current;
|
|
const icon_spread_levels = [
|
|
{ name: "file-symlink" },
|
|
/*$$props*/
|
|
ctx[1],
|
|
{ iconNode: (
|
|
/*iconNode*/
|
|
ctx[0]
|
|
) }
|
|
];
|
|
let icon_props = {
|
|
$$slots: { default: [create_default_slot13] },
|
|
$$scope: { ctx }
|
|
};
|
|
for (let i = 0; i < icon_spread_levels.length; i += 1) {
|
|
icon_props = assign(icon_props, icon_spread_levels[i]);
|
|
}
|
|
icon = new Icon_default({ props: icon_props });
|
|
return {
|
|
c() {
|
|
create_component(icon.$$.fragment);
|
|
},
|
|
m(target, anchor) {
|
|
mount_component(icon, target, anchor);
|
|
current = true;
|
|
},
|
|
p(ctx2, [dirty]) {
|
|
const icon_changes = dirty & /*$$props, iconNode*/
|
|
3 ? get_spread_update(icon_spread_levels, [
|
|
icon_spread_levels[0],
|
|
dirty & /*$$props*/
|
|
2 && get_spread_object(
|
|
/*$$props*/
|
|
ctx2[1]
|
|
),
|
|
dirty & /*iconNode*/
|
|
1 && { iconNode: (
|
|
/*iconNode*/
|
|
ctx2[0]
|
|
) }
|
|
]) : {};
|
|
if (dirty & /*$$scope*/
|
|
8) {
|
|
icon_changes.$$scope = { dirty, ctx: ctx2 };
|
|
}
|
|
icon.$set(icon_changes);
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(icon.$$.fragment, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(icon.$$.fragment, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
destroy_component(icon, detaching);
|
|
}
|
|
};
|
|
}
|
|
function instance14($$self, $$props, $$invalidate) {
|
|
let { $$slots: slots = {}, $$scope } = $$props;
|
|
const iconNode = [
|
|
["path", { "d": "m10 18 3-3-3-3" }],
|
|
["path", { "d": "M14 2v4a2 2 0 0 0 2 2h4" }],
|
|
[
|
|
"path",
|
|
{
|
|
"d": "M4 11V4a2 2 0 0 1 2-2h9l5 5v13a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2v-3a2 2 0 0 1 2-2h7"
|
|
}
|
|
]
|
|
];
|
|
$$self.$$set = ($$new_props) => {
|
|
$$invalidate(1, $$props = assign(assign({}, $$props), exclude_internal_props($$new_props)));
|
|
if ("$$scope" in $$new_props)
|
|
$$invalidate(3, $$scope = $$new_props.$$scope);
|
|
};
|
|
$$props = exclude_internal_props($$props);
|
|
return [iconNode, $$props, slots, $$scope];
|
|
}
|
|
var File_symlink = class extends SvelteComponent {
|
|
constructor(options) {
|
|
super();
|
|
init(this, options, instance14, create_fragment14, safe_not_equal, {});
|
|
}
|
|
};
|
|
var file_symlink_default = File_symlink;
|
|
|
|
// node_modules/lucide-svelte/dist/icons/file-up.svelte
|
|
function create_default_slot14(ctx) {
|
|
let current;
|
|
const default_slot_template = (
|
|
/*#slots*/
|
|
ctx[2].default
|
|
);
|
|
const default_slot = create_slot(
|
|
default_slot_template,
|
|
ctx,
|
|
/*$$scope*/
|
|
ctx[3],
|
|
null
|
|
);
|
|
return {
|
|
c() {
|
|
if (default_slot)
|
|
default_slot.c();
|
|
},
|
|
m(target, anchor) {
|
|
if (default_slot) {
|
|
default_slot.m(target, anchor);
|
|
}
|
|
current = true;
|
|
},
|
|
p(ctx2, dirty) {
|
|
if (default_slot) {
|
|
if (default_slot.p && (!current || dirty & /*$$scope*/
|
|
8)) {
|
|
update_slot_base(
|
|
default_slot,
|
|
default_slot_template,
|
|
ctx2,
|
|
/*$$scope*/
|
|
ctx2[3],
|
|
!current ? get_all_dirty_from_scope(
|
|
/*$$scope*/
|
|
ctx2[3]
|
|
) : get_slot_changes(
|
|
default_slot_template,
|
|
/*$$scope*/
|
|
ctx2[3],
|
|
dirty,
|
|
null
|
|
),
|
|
null
|
|
);
|
|
}
|
|
}
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(default_slot, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(default_slot, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
if (default_slot)
|
|
default_slot.d(detaching);
|
|
}
|
|
};
|
|
}
|
|
function create_fragment15(ctx) {
|
|
let icon;
|
|
let current;
|
|
const icon_spread_levels = [
|
|
{ name: "file-up" },
|
|
/*$$props*/
|
|
ctx[1],
|
|
{ iconNode: (
|
|
/*iconNode*/
|
|
ctx[0]
|
|
) }
|
|
];
|
|
let icon_props = {
|
|
$$slots: { default: [create_default_slot14] },
|
|
$$scope: { ctx }
|
|
};
|
|
for (let i = 0; i < icon_spread_levels.length; i += 1) {
|
|
icon_props = assign(icon_props, icon_spread_levels[i]);
|
|
}
|
|
icon = new Icon_default({ props: icon_props });
|
|
return {
|
|
c() {
|
|
create_component(icon.$$.fragment);
|
|
},
|
|
m(target, anchor) {
|
|
mount_component(icon, target, anchor);
|
|
current = true;
|
|
},
|
|
p(ctx2, [dirty]) {
|
|
const icon_changes = dirty & /*$$props, iconNode*/
|
|
3 ? get_spread_update(icon_spread_levels, [
|
|
icon_spread_levels[0],
|
|
dirty & /*$$props*/
|
|
2 && get_spread_object(
|
|
/*$$props*/
|
|
ctx2[1]
|
|
),
|
|
dirty & /*iconNode*/
|
|
1 && { iconNode: (
|
|
/*iconNode*/
|
|
ctx2[0]
|
|
) }
|
|
]) : {};
|
|
if (dirty & /*$$scope*/
|
|
8) {
|
|
icon_changes.$$scope = { dirty, ctx: ctx2 };
|
|
}
|
|
icon.$set(icon_changes);
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(icon.$$.fragment, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(icon.$$.fragment, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
destroy_component(icon, detaching);
|
|
}
|
|
};
|
|
}
|
|
function instance15($$self, $$props, $$invalidate) {
|
|
let { $$slots: slots = {}, $$scope } = $$props;
|
|
const iconNode = [
|
|
[
|
|
"path",
|
|
{
|
|
"d": "M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z"
|
|
}
|
|
],
|
|
["path", { "d": "M14 2v4a2 2 0 0 0 2 2h4" }],
|
|
["path", { "d": "M12 12v6" }],
|
|
["path", { "d": "m15 15-3-3-3 3" }]
|
|
];
|
|
$$self.$$set = ($$new_props) => {
|
|
$$invalidate(1, $$props = assign(assign({}, $$props), exclude_internal_props($$new_props)));
|
|
if ("$$scope" in $$new_props)
|
|
$$invalidate(3, $$scope = $$new_props.$$scope);
|
|
};
|
|
$$props = exclude_internal_props($$props);
|
|
return [iconNode, $$props, slots, $$scope];
|
|
}
|
|
var File_up = class extends SvelteComponent {
|
|
constructor(options) {
|
|
super();
|
|
init(this, options, instance15, create_fragment15, safe_not_equal, {});
|
|
}
|
|
};
|
|
var file_up_default = File_up;
|
|
|
|
// node_modules/lucide-svelte/dist/icons/focus.svelte
|
|
function create_default_slot15(ctx) {
|
|
let current;
|
|
const default_slot_template = (
|
|
/*#slots*/
|
|
ctx[2].default
|
|
);
|
|
const default_slot = create_slot(
|
|
default_slot_template,
|
|
ctx,
|
|
/*$$scope*/
|
|
ctx[3],
|
|
null
|
|
);
|
|
return {
|
|
c() {
|
|
if (default_slot)
|
|
default_slot.c();
|
|
},
|
|
m(target, anchor) {
|
|
if (default_slot) {
|
|
default_slot.m(target, anchor);
|
|
}
|
|
current = true;
|
|
},
|
|
p(ctx2, dirty) {
|
|
if (default_slot) {
|
|
if (default_slot.p && (!current || dirty & /*$$scope*/
|
|
8)) {
|
|
update_slot_base(
|
|
default_slot,
|
|
default_slot_template,
|
|
ctx2,
|
|
/*$$scope*/
|
|
ctx2[3],
|
|
!current ? get_all_dirty_from_scope(
|
|
/*$$scope*/
|
|
ctx2[3]
|
|
) : get_slot_changes(
|
|
default_slot_template,
|
|
/*$$scope*/
|
|
ctx2[3],
|
|
dirty,
|
|
null
|
|
),
|
|
null
|
|
);
|
|
}
|
|
}
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(default_slot, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(default_slot, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
if (default_slot)
|
|
default_slot.d(detaching);
|
|
}
|
|
};
|
|
}
|
|
function create_fragment16(ctx) {
|
|
let icon;
|
|
let current;
|
|
const icon_spread_levels = [
|
|
{ name: "focus" },
|
|
/*$$props*/
|
|
ctx[1],
|
|
{ iconNode: (
|
|
/*iconNode*/
|
|
ctx[0]
|
|
) }
|
|
];
|
|
let icon_props = {
|
|
$$slots: { default: [create_default_slot15] },
|
|
$$scope: { ctx }
|
|
};
|
|
for (let i = 0; i < icon_spread_levels.length; i += 1) {
|
|
icon_props = assign(icon_props, icon_spread_levels[i]);
|
|
}
|
|
icon = new Icon_default({ props: icon_props });
|
|
return {
|
|
c() {
|
|
create_component(icon.$$.fragment);
|
|
},
|
|
m(target, anchor) {
|
|
mount_component(icon, target, anchor);
|
|
current = true;
|
|
},
|
|
p(ctx2, [dirty]) {
|
|
const icon_changes = dirty & /*$$props, iconNode*/
|
|
3 ? get_spread_update(icon_spread_levels, [
|
|
icon_spread_levels[0],
|
|
dirty & /*$$props*/
|
|
2 && get_spread_object(
|
|
/*$$props*/
|
|
ctx2[1]
|
|
),
|
|
dirty & /*iconNode*/
|
|
1 && { iconNode: (
|
|
/*iconNode*/
|
|
ctx2[0]
|
|
) }
|
|
]) : {};
|
|
if (dirty & /*$$scope*/
|
|
8) {
|
|
icon_changes.$$scope = { dirty, ctx: ctx2 };
|
|
}
|
|
icon.$set(icon_changes);
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(icon.$$.fragment, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(icon.$$.fragment, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
destroy_component(icon, detaching);
|
|
}
|
|
};
|
|
}
|
|
function instance16($$self, $$props, $$invalidate) {
|
|
let { $$slots: slots = {}, $$scope } = $$props;
|
|
const iconNode = [
|
|
["circle", { "cx": "12", "cy": "12", "r": "3" }],
|
|
["path", { "d": "M3 7V5a2 2 0 0 1 2-2h2" }],
|
|
["path", { "d": "M17 3h2a2 2 0 0 1 2 2v2" }],
|
|
["path", { "d": "M21 17v2a2 2 0 0 1-2 2h-2" }],
|
|
["path", { "d": "M7 21H5a2 2 0 0 1-2-2v-2" }]
|
|
];
|
|
$$self.$$set = ($$new_props) => {
|
|
$$invalidate(1, $$props = assign(assign({}, $$props), exclude_internal_props($$new_props)));
|
|
if ("$$scope" in $$new_props)
|
|
$$invalidate(3, $$scope = $$new_props.$$scope);
|
|
};
|
|
$$props = exclude_internal_props($$props);
|
|
return [iconNode, $$props, slots, $$scope];
|
|
}
|
|
var Focus = class extends SvelteComponent {
|
|
constructor(options) {
|
|
super();
|
|
init(this, options, instance16, create_fragment16, safe_not_equal, {});
|
|
}
|
|
};
|
|
var focus_default = Focus;
|
|
|
|
// node_modules/lucide-svelte/dist/icons/grip-vertical.svelte
|
|
function create_default_slot16(ctx) {
|
|
let current;
|
|
const default_slot_template = (
|
|
/*#slots*/
|
|
ctx[2].default
|
|
);
|
|
const default_slot = create_slot(
|
|
default_slot_template,
|
|
ctx,
|
|
/*$$scope*/
|
|
ctx[3],
|
|
null
|
|
);
|
|
return {
|
|
c() {
|
|
if (default_slot)
|
|
default_slot.c();
|
|
},
|
|
m(target, anchor) {
|
|
if (default_slot) {
|
|
default_slot.m(target, anchor);
|
|
}
|
|
current = true;
|
|
},
|
|
p(ctx2, dirty) {
|
|
if (default_slot) {
|
|
if (default_slot.p && (!current || dirty & /*$$scope*/
|
|
8)) {
|
|
update_slot_base(
|
|
default_slot,
|
|
default_slot_template,
|
|
ctx2,
|
|
/*$$scope*/
|
|
ctx2[3],
|
|
!current ? get_all_dirty_from_scope(
|
|
/*$$scope*/
|
|
ctx2[3]
|
|
) : get_slot_changes(
|
|
default_slot_template,
|
|
/*$$scope*/
|
|
ctx2[3],
|
|
dirty,
|
|
null
|
|
),
|
|
null
|
|
);
|
|
}
|
|
}
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(default_slot, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(default_slot, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
if (default_slot)
|
|
default_slot.d(detaching);
|
|
}
|
|
};
|
|
}
|
|
function create_fragment17(ctx) {
|
|
let icon;
|
|
let current;
|
|
const icon_spread_levels = [
|
|
{ name: "grip-vertical" },
|
|
/*$$props*/
|
|
ctx[1],
|
|
{ iconNode: (
|
|
/*iconNode*/
|
|
ctx[0]
|
|
) }
|
|
];
|
|
let icon_props = {
|
|
$$slots: { default: [create_default_slot16] },
|
|
$$scope: { ctx }
|
|
};
|
|
for (let i = 0; i < icon_spread_levels.length; i += 1) {
|
|
icon_props = assign(icon_props, icon_spread_levels[i]);
|
|
}
|
|
icon = new Icon_default({ props: icon_props });
|
|
return {
|
|
c() {
|
|
create_component(icon.$$.fragment);
|
|
},
|
|
m(target, anchor) {
|
|
mount_component(icon, target, anchor);
|
|
current = true;
|
|
},
|
|
p(ctx2, [dirty]) {
|
|
const icon_changes = dirty & /*$$props, iconNode*/
|
|
3 ? get_spread_update(icon_spread_levels, [
|
|
icon_spread_levels[0],
|
|
dirty & /*$$props*/
|
|
2 && get_spread_object(
|
|
/*$$props*/
|
|
ctx2[1]
|
|
),
|
|
dirty & /*iconNode*/
|
|
1 && { iconNode: (
|
|
/*iconNode*/
|
|
ctx2[0]
|
|
) }
|
|
]) : {};
|
|
if (dirty & /*$$scope*/
|
|
8) {
|
|
icon_changes.$$scope = { dirty, ctx: ctx2 };
|
|
}
|
|
icon.$set(icon_changes);
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(icon.$$.fragment, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(icon.$$.fragment, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
destroy_component(icon, detaching);
|
|
}
|
|
};
|
|
}
|
|
function instance17($$self, $$props, $$invalidate) {
|
|
let { $$slots: slots = {}, $$scope } = $$props;
|
|
const iconNode = [
|
|
["circle", { "cx": "9", "cy": "12", "r": "1" }],
|
|
["circle", { "cx": "9", "cy": "5", "r": "1" }],
|
|
["circle", { "cx": "9", "cy": "19", "r": "1" }],
|
|
["circle", { "cx": "15", "cy": "12", "r": "1" }],
|
|
["circle", { "cx": "15", "cy": "5", "r": "1" }],
|
|
["circle", { "cx": "15", "cy": "19", "r": "1" }]
|
|
];
|
|
$$self.$$set = ($$new_props) => {
|
|
$$invalidate(1, $$props = assign(assign({}, $$props), exclude_internal_props($$new_props)));
|
|
if ("$$scope" in $$new_props)
|
|
$$invalidate(3, $$scope = $$new_props.$$scope);
|
|
};
|
|
$$props = exclude_internal_props($$props);
|
|
return [iconNode, $$props, slots, $$scope];
|
|
}
|
|
var Grip_vertical = class extends SvelteComponent {
|
|
constructor(options) {
|
|
super();
|
|
init(this, options, instance17, create_fragment17, safe_not_equal, {});
|
|
}
|
|
};
|
|
var grip_vertical_default = Grip_vertical;
|
|
|
|
// node_modules/lucide-svelte/dist/icons/heading-1.svelte
|
|
function create_default_slot17(ctx) {
|
|
let current;
|
|
const default_slot_template = (
|
|
/*#slots*/
|
|
ctx[2].default
|
|
);
|
|
const default_slot = create_slot(
|
|
default_slot_template,
|
|
ctx,
|
|
/*$$scope*/
|
|
ctx[3],
|
|
null
|
|
);
|
|
return {
|
|
c() {
|
|
if (default_slot)
|
|
default_slot.c();
|
|
},
|
|
m(target, anchor) {
|
|
if (default_slot) {
|
|
default_slot.m(target, anchor);
|
|
}
|
|
current = true;
|
|
},
|
|
p(ctx2, dirty) {
|
|
if (default_slot) {
|
|
if (default_slot.p && (!current || dirty & /*$$scope*/
|
|
8)) {
|
|
update_slot_base(
|
|
default_slot,
|
|
default_slot_template,
|
|
ctx2,
|
|
/*$$scope*/
|
|
ctx2[3],
|
|
!current ? get_all_dirty_from_scope(
|
|
/*$$scope*/
|
|
ctx2[3]
|
|
) : get_slot_changes(
|
|
default_slot_template,
|
|
/*$$scope*/
|
|
ctx2[3],
|
|
dirty,
|
|
null
|
|
),
|
|
null
|
|
);
|
|
}
|
|
}
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(default_slot, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(default_slot, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
if (default_slot)
|
|
default_slot.d(detaching);
|
|
}
|
|
};
|
|
}
|
|
function create_fragment18(ctx) {
|
|
let icon;
|
|
let current;
|
|
const icon_spread_levels = [
|
|
{ name: "heading-1" },
|
|
/*$$props*/
|
|
ctx[1],
|
|
{ iconNode: (
|
|
/*iconNode*/
|
|
ctx[0]
|
|
) }
|
|
];
|
|
let icon_props = {
|
|
$$slots: { default: [create_default_slot17] },
|
|
$$scope: { ctx }
|
|
};
|
|
for (let i = 0; i < icon_spread_levels.length; i += 1) {
|
|
icon_props = assign(icon_props, icon_spread_levels[i]);
|
|
}
|
|
icon = new Icon_default({ props: icon_props });
|
|
return {
|
|
c() {
|
|
create_component(icon.$$.fragment);
|
|
},
|
|
m(target, anchor) {
|
|
mount_component(icon, target, anchor);
|
|
current = true;
|
|
},
|
|
p(ctx2, [dirty]) {
|
|
const icon_changes = dirty & /*$$props, iconNode*/
|
|
3 ? get_spread_update(icon_spread_levels, [
|
|
icon_spread_levels[0],
|
|
dirty & /*$$props*/
|
|
2 && get_spread_object(
|
|
/*$$props*/
|
|
ctx2[1]
|
|
),
|
|
dirty & /*iconNode*/
|
|
1 && { iconNode: (
|
|
/*iconNode*/
|
|
ctx2[0]
|
|
) }
|
|
]) : {};
|
|
if (dirty & /*$$scope*/
|
|
8) {
|
|
icon_changes.$$scope = { dirty, ctx: ctx2 };
|
|
}
|
|
icon.$set(icon_changes);
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(icon.$$.fragment, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(icon.$$.fragment, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
destroy_component(icon, detaching);
|
|
}
|
|
};
|
|
}
|
|
function instance18($$self, $$props, $$invalidate) {
|
|
let { $$slots: slots = {}, $$scope } = $$props;
|
|
const iconNode = [
|
|
["path", { "d": "M4 12h8" }],
|
|
["path", { "d": "M4 18V6" }],
|
|
["path", { "d": "M12 18V6" }],
|
|
["path", { "d": "m17 12 3-2v8" }]
|
|
];
|
|
$$self.$$set = ($$new_props) => {
|
|
$$invalidate(1, $$props = assign(assign({}, $$props), exclude_internal_props($$new_props)));
|
|
if ("$$scope" in $$new_props)
|
|
$$invalidate(3, $$scope = $$new_props.$$scope);
|
|
};
|
|
$$props = exclude_internal_props($$props);
|
|
return [iconNode, $$props, slots, $$scope];
|
|
}
|
|
var Heading_1 = class extends SvelteComponent {
|
|
constructor(options) {
|
|
super();
|
|
init(this, options, instance18, create_fragment18, safe_not_equal, {});
|
|
}
|
|
};
|
|
var heading_1_default = Heading_1;
|
|
|
|
// node_modules/lucide-svelte/dist/icons/history.svelte
|
|
function create_default_slot18(ctx) {
|
|
let current;
|
|
const default_slot_template = (
|
|
/*#slots*/
|
|
ctx[2].default
|
|
);
|
|
const default_slot = create_slot(
|
|
default_slot_template,
|
|
ctx,
|
|
/*$$scope*/
|
|
ctx[3],
|
|
null
|
|
);
|
|
return {
|
|
c() {
|
|
if (default_slot)
|
|
default_slot.c();
|
|
},
|
|
m(target, anchor) {
|
|
if (default_slot) {
|
|
default_slot.m(target, anchor);
|
|
}
|
|
current = true;
|
|
},
|
|
p(ctx2, dirty) {
|
|
if (default_slot) {
|
|
if (default_slot.p && (!current || dirty & /*$$scope*/
|
|
8)) {
|
|
update_slot_base(
|
|
default_slot,
|
|
default_slot_template,
|
|
ctx2,
|
|
/*$$scope*/
|
|
ctx2[3],
|
|
!current ? get_all_dirty_from_scope(
|
|
/*$$scope*/
|
|
ctx2[3]
|
|
) : get_slot_changes(
|
|
default_slot_template,
|
|
/*$$scope*/
|
|
ctx2[3],
|
|
dirty,
|
|
null
|
|
),
|
|
null
|
|
);
|
|
}
|
|
}
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(default_slot, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(default_slot, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
if (default_slot)
|
|
default_slot.d(detaching);
|
|
}
|
|
};
|
|
}
|
|
function create_fragment19(ctx) {
|
|
let icon;
|
|
let current;
|
|
const icon_spread_levels = [
|
|
{ name: "history" },
|
|
/*$$props*/
|
|
ctx[1],
|
|
{ iconNode: (
|
|
/*iconNode*/
|
|
ctx[0]
|
|
) }
|
|
];
|
|
let icon_props = {
|
|
$$slots: { default: [create_default_slot18] },
|
|
$$scope: { ctx }
|
|
};
|
|
for (let i = 0; i < icon_spread_levels.length; i += 1) {
|
|
icon_props = assign(icon_props, icon_spread_levels[i]);
|
|
}
|
|
icon = new Icon_default({ props: icon_props });
|
|
return {
|
|
c() {
|
|
create_component(icon.$$.fragment);
|
|
},
|
|
m(target, anchor) {
|
|
mount_component(icon, target, anchor);
|
|
current = true;
|
|
},
|
|
p(ctx2, [dirty]) {
|
|
const icon_changes = dirty & /*$$props, iconNode*/
|
|
3 ? get_spread_update(icon_spread_levels, [
|
|
icon_spread_levels[0],
|
|
dirty & /*$$props*/
|
|
2 && get_spread_object(
|
|
/*$$props*/
|
|
ctx2[1]
|
|
),
|
|
dirty & /*iconNode*/
|
|
1 && { iconNode: (
|
|
/*iconNode*/
|
|
ctx2[0]
|
|
) }
|
|
]) : {};
|
|
if (dirty & /*$$scope*/
|
|
8) {
|
|
icon_changes.$$scope = { dirty, ctx: ctx2 };
|
|
}
|
|
icon.$set(icon_changes);
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(icon.$$.fragment, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(icon.$$.fragment, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
destroy_component(icon, detaching);
|
|
}
|
|
};
|
|
}
|
|
function instance19($$self, $$props, $$invalidate) {
|
|
let { $$slots: slots = {}, $$scope } = $$props;
|
|
const iconNode = [
|
|
[
|
|
"path",
|
|
{
|
|
"d": "M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8"
|
|
}
|
|
],
|
|
["path", { "d": "M3 3v5h5" }],
|
|
["path", { "d": "M12 7v5l4 2" }]
|
|
];
|
|
$$self.$$set = ($$new_props) => {
|
|
$$invalidate(1, $$props = assign(assign({}, $$props), exclude_internal_props($$new_props)));
|
|
if ("$$scope" in $$new_props)
|
|
$$invalidate(3, $$scope = $$new_props.$$scope);
|
|
};
|
|
$$props = exclude_internal_props($$props);
|
|
return [iconNode, $$props, slots, $$scope];
|
|
}
|
|
var History = class extends SvelteComponent {
|
|
constructor(options) {
|
|
super();
|
|
init(this, options, instance19, create_fragment19, safe_not_equal, {});
|
|
}
|
|
};
|
|
var history_default = History;
|
|
|
|
// node_modules/lucide-svelte/dist/icons/info.svelte
|
|
function create_default_slot19(ctx) {
|
|
let current;
|
|
const default_slot_template = (
|
|
/*#slots*/
|
|
ctx[2].default
|
|
);
|
|
const default_slot = create_slot(
|
|
default_slot_template,
|
|
ctx,
|
|
/*$$scope*/
|
|
ctx[3],
|
|
null
|
|
);
|
|
return {
|
|
c() {
|
|
if (default_slot)
|
|
default_slot.c();
|
|
},
|
|
m(target, anchor) {
|
|
if (default_slot) {
|
|
default_slot.m(target, anchor);
|
|
}
|
|
current = true;
|
|
},
|
|
p(ctx2, dirty) {
|
|
if (default_slot) {
|
|
if (default_slot.p && (!current || dirty & /*$$scope*/
|
|
8)) {
|
|
update_slot_base(
|
|
default_slot,
|
|
default_slot_template,
|
|
ctx2,
|
|
/*$$scope*/
|
|
ctx2[3],
|
|
!current ? get_all_dirty_from_scope(
|
|
/*$$scope*/
|
|
ctx2[3]
|
|
) : get_slot_changes(
|
|
default_slot_template,
|
|
/*$$scope*/
|
|
ctx2[3],
|
|
dirty,
|
|
null
|
|
),
|
|
null
|
|
);
|
|
}
|
|
}
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(default_slot, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(default_slot, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
if (default_slot)
|
|
default_slot.d(detaching);
|
|
}
|
|
};
|
|
}
|
|
function create_fragment20(ctx) {
|
|
let icon;
|
|
let current;
|
|
const icon_spread_levels = [
|
|
{ name: "info" },
|
|
/*$$props*/
|
|
ctx[1],
|
|
{ iconNode: (
|
|
/*iconNode*/
|
|
ctx[0]
|
|
) }
|
|
];
|
|
let icon_props = {
|
|
$$slots: { default: [create_default_slot19] },
|
|
$$scope: { ctx }
|
|
};
|
|
for (let i = 0; i < icon_spread_levels.length; i += 1) {
|
|
icon_props = assign(icon_props, icon_spread_levels[i]);
|
|
}
|
|
icon = new Icon_default({ props: icon_props });
|
|
return {
|
|
c() {
|
|
create_component(icon.$$.fragment);
|
|
},
|
|
m(target, anchor) {
|
|
mount_component(icon, target, anchor);
|
|
current = true;
|
|
},
|
|
p(ctx2, [dirty]) {
|
|
const icon_changes = dirty & /*$$props, iconNode*/
|
|
3 ? get_spread_update(icon_spread_levels, [
|
|
icon_spread_levels[0],
|
|
dirty & /*$$props*/
|
|
2 && get_spread_object(
|
|
/*$$props*/
|
|
ctx2[1]
|
|
),
|
|
dirty & /*iconNode*/
|
|
1 && { iconNode: (
|
|
/*iconNode*/
|
|
ctx2[0]
|
|
) }
|
|
]) : {};
|
|
if (dirty & /*$$scope*/
|
|
8) {
|
|
icon_changes.$$scope = { dirty, ctx: ctx2 };
|
|
}
|
|
icon.$set(icon_changes);
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(icon.$$.fragment, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(icon.$$.fragment, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
destroy_component(icon, detaching);
|
|
}
|
|
};
|
|
}
|
|
function instance20($$self, $$props, $$invalidate) {
|
|
let { $$slots: slots = {}, $$scope } = $$props;
|
|
const iconNode = [
|
|
["circle", { "cx": "12", "cy": "12", "r": "10" }],
|
|
["path", { "d": "M12 16v-4" }],
|
|
["path", { "d": "M12 8h.01" }]
|
|
];
|
|
$$self.$$set = ($$new_props) => {
|
|
$$invalidate(1, $$props = assign(assign({}, $$props), exclude_internal_props($$new_props)));
|
|
if ("$$scope" in $$new_props)
|
|
$$invalidate(3, $$scope = $$new_props.$$scope);
|
|
};
|
|
$$props = exclude_internal_props($$props);
|
|
return [iconNode, $$props, slots, $$scope];
|
|
}
|
|
var Info = class extends SvelteComponent {
|
|
constructor(options) {
|
|
super();
|
|
init(this, options, instance20, create_fragment20, safe_not_equal, {});
|
|
}
|
|
};
|
|
var info_default = Info;
|
|
|
|
// node_modules/lucide-svelte/dist/icons/keyboard.svelte
|
|
function create_default_slot20(ctx) {
|
|
let current;
|
|
const default_slot_template = (
|
|
/*#slots*/
|
|
ctx[2].default
|
|
);
|
|
const default_slot = create_slot(
|
|
default_slot_template,
|
|
ctx,
|
|
/*$$scope*/
|
|
ctx[3],
|
|
null
|
|
);
|
|
return {
|
|
c() {
|
|
if (default_slot)
|
|
default_slot.c();
|
|
},
|
|
m(target, anchor) {
|
|
if (default_slot) {
|
|
default_slot.m(target, anchor);
|
|
}
|
|
current = true;
|
|
},
|
|
p(ctx2, dirty) {
|
|
if (default_slot) {
|
|
if (default_slot.p && (!current || dirty & /*$$scope*/
|
|
8)) {
|
|
update_slot_base(
|
|
default_slot,
|
|
default_slot_template,
|
|
ctx2,
|
|
/*$$scope*/
|
|
ctx2[3],
|
|
!current ? get_all_dirty_from_scope(
|
|
/*$$scope*/
|
|
ctx2[3]
|
|
) : get_slot_changes(
|
|
default_slot_template,
|
|
/*$$scope*/
|
|
ctx2[3],
|
|
dirty,
|
|
null
|
|
),
|
|
null
|
|
);
|
|
}
|
|
}
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(default_slot, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(default_slot, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
if (default_slot)
|
|
default_slot.d(detaching);
|
|
}
|
|
};
|
|
}
|
|
function create_fragment21(ctx) {
|
|
let icon;
|
|
let current;
|
|
const icon_spread_levels = [
|
|
{ name: "keyboard" },
|
|
/*$$props*/
|
|
ctx[1],
|
|
{ iconNode: (
|
|
/*iconNode*/
|
|
ctx[0]
|
|
) }
|
|
];
|
|
let icon_props = {
|
|
$$slots: { default: [create_default_slot20] },
|
|
$$scope: { ctx }
|
|
};
|
|
for (let i = 0; i < icon_spread_levels.length; i += 1) {
|
|
icon_props = assign(icon_props, icon_spread_levels[i]);
|
|
}
|
|
icon = new Icon_default({ props: icon_props });
|
|
return {
|
|
c() {
|
|
create_component(icon.$$.fragment);
|
|
},
|
|
m(target, anchor) {
|
|
mount_component(icon, target, anchor);
|
|
current = true;
|
|
},
|
|
p(ctx2, [dirty]) {
|
|
const icon_changes = dirty & /*$$props, iconNode*/
|
|
3 ? get_spread_update(icon_spread_levels, [
|
|
icon_spread_levels[0],
|
|
dirty & /*$$props*/
|
|
2 && get_spread_object(
|
|
/*$$props*/
|
|
ctx2[1]
|
|
),
|
|
dirty & /*iconNode*/
|
|
1 && { iconNode: (
|
|
/*iconNode*/
|
|
ctx2[0]
|
|
) }
|
|
]) : {};
|
|
if (dirty & /*$$scope*/
|
|
8) {
|
|
icon_changes.$$scope = { dirty, ctx: ctx2 };
|
|
}
|
|
icon.$set(icon_changes);
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(icon.$$.fragment, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(icon.$$.fragment, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
destroy_component(icon, detaching);
|
|
}
|
|
};
|
|
}
|
|
function instance21($$self, $$props, $$invalidate) {
|
|
let { $$slots: slots = {}, $$scope } = $$props;
|
|
const iconNode = [
|
|
["path", { "d": "M10 8h.01" }],
|
|
["path", { "d": "M12 12h.01" }],
|
|
["path", { "d": "M14 8h.01" }],
|
|
["path", { "d": "M16 12h.01" }],
|
|
["path", { "d": "M18 8h.01" }],
|
|
["path", { "d": "M6 8h.01" }],
|
|
["path", { "d": "M7 16h10" }],
|
|
["path", { "d": "M8 12h.01" }],
|
|
[
|
|
"rect",
|
|
{
|
|
"x": "2",
|
|
"y": "4",
|
|
"width": "20",
|
|
"height": "16",
|
|
"rx": "2"
|
|
}
|
|
]
|
|
];
|
|
$$self.$$set = ($$new_props) => {
|
|
$$invalidate(1, $$props = assign(assign({}, $$props), exclude_internal_props($$new_props)));
|
|
if ("$$scope" in $$new_props)
|
|
$$invalidate(3, $$scope = $$new_props.$$scope);
|
|
};
|
|
$$props = exclude_internal_props($$props);
|
|
return [iconNode, $$props, slots, $$scope];
|
|
}
|
|
var Keyboard = class extends SvelteComponent {
|
|
constructor(options) {
|
|
super();
|
|
init(this, options, instance21, create_fragment21, safe_not_equal, {});
|
|
}
|
|
};
|
|
var keyboard_default = Keyboard;
|
|
|
|
// node_modules/lucide-svelte/dist/icons/merge.svelte
|
|
function create_default_slot21(ctx) {
|
|
let current;
|
|
const default_slot_template = (
|
|
/*#slots*/
|
|
ctx[2].default
|
|
);
|
|
const default_slot = create_slot(
|
|
default_slot_template,
|
|
ctx,
|
|
/*$$scope*/
|
|
ctx[3],
|
|
null
|
|
);
|
|
return {
|
|
c() {
|
|
if (default_slot)
|
|
default_slot.c();
|
|
},
|
|
m(target, anchor) {
|
|
if (default_slot) {
|
|
default_slot.m(target, anchor);
|
|
}
|
|
current = true;
|
|
},
|
|
p(ctx2, dirty) {
|
|
if (default_slot) {
|
|
if (default_slot.p && (!current || dirty & /*$$scope*/
|
|
8)) {
|
|
update_slot_base(
|
|
default_slot,
|
|
default_slot_template,
|
|
ctx2,
|
|
/*$$scope*/
|
|
ctx2[3],
|
|
!current ? get_all_dirty_from_scope(
|
|
/*$$scope*/
|
|
ctx2[3]
|
|
) : get_slot_changes(
|
|
default_slot_template,
|
|
/*$$scope*/
|
|
ctx2[3],
|
|
dirty,
|
|
null
|
|
),
|
|
null
|
|
);
|
|
}
|
|
}
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(default_slot, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(default_slot, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
if (default_slot)
|
|
default_slot.d(detaching);
|
|
}
|
|
};
|
|
}
|
|
function create_fragment22(ctx) {
|
|
let icon;
|
|
let current;
|
|
const icon_spread_levels = [
|
|
{ name: "merge" },
|
|
/*$$props*/
|
|
ctx[1],
|
|
{ iconNode: (
|
|
/*iconNode*/
|
|
ctx[0]
|
|
) }
|
|
];
|
|
let icon_props = {
|
|
$$slots: { default: [create_default_slot21] },
|
|
$$scope: { ctx }
|
|
};
|
|
for (let i = 0; i < icon_spread_levels.length; i += 1) {
|
|
icon_props = assign(icon_props, icon_spread_levels[i]);
|
|
}
|
|
icon = new Icon_default({ props: icon_props });
|
|
return {
|
|
c() {
|
|
create_component(icon.$$.fragment);
|
|
},
|
|
m(target, anchor) {
|
|
mount_component(icon, target, anchor);
|
|
current = true;
|
|
},
|
|
p(ctx2, [dirty]) {
|
|
const icon_changes = dirty & /*$$props, iconNode*/
|
|
3 ? get_spread_update(icon_spread_levels, [
|
|
icon_spread_levels[0],
|
|
dirty & /*$$props*/
|
|
2 && get_spread_object(
|
|
/*$$props*/
|
|
ctx2[1]
|
|
),
|
|
dirty & /*iconNode*/
|
|
1 && { iconNode: (
|
|
/*iconNode*/
|
|
ctx2[0]
|
|
) }
|
|
]) : {};
|
|
if (dirty & /*$$scope*/
|
|
8) {
|
|
icon_changes.$$scope = { dirty, ctx: ctx2 };
|
|
}
|
|
icon.$set(icon_changes);
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(icon.$$.fragment, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(icon.$$.fragment, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
destroy_component(icon, detaching);
|
|
}
|
|
};
|
|
}
|
|
function instance22($$self, $$props, $$invalidate) {
|
|
let { $$slots: slots = {}, $$scope } = $$props;
|
|
const iconNode = [
|
|
["path", { "d": "m8 6 4-4 4 4" }],
|
|
[
|
|
"path",
|
|
{
|
|
"d": "M12 2v10.3a4 4 0 0 1-1.172 2.872L4 22"
|
|
}
|
|
],
|
|
["path", { "d": "m20 22-5-5" }]
|
|
];
|
|
$$self.$$set = ($$new_props) => {
|
|
$$invalidate(1, $$props = assign(assign({}, $$props), exclude_internal_props($$new_props)));
|
|
if ("$$scope" in $$new_props)
|
|
$$invalidate(3, $$scope = $$new_props.$$scope);
|
|
};
|
|
$$props = exclude_internal_props($$props);
|
|
return [iconNode, $$props, slots, $$scope];
|
|
}
|
|
var Merge = class extends SvelteComponent {
|
|
constructor(options) {
|
|
super();
|
|
init(this, options, instance22, create_fragment22, safe_not_equal, {});
|
|
}
|
|
};
|
|
var merge_default = Merge;
|
|
|
|
// node_modules/lucide-svelte/dist/icons/minus.svelte
|
|
function create_default_slot22(ctx) {
|
|
let current;
|
|
const default_slot_template = (
|
|
/*#slots*/
|
|
ctx[2].default
|
|
);
|
|
const default_slot = create_slot(
|
|
default_slot_template,
|
|
ctx,
|
|
/*$$scope*/
|
|
ctx[3],
|
|
null
|
|
);
|
|
return {
|
|
c() {
|
|
if (default_slot)
|
|
default_slot.c();
|
|
},
|
|
m(target, anchor) {
|
|
if (default_slot) {
|
|
default_slot.m(target, anchor);
|
|
}
|
|
current = true;
|
|
},
|
|
p(ctx2, dirty) {
|
|
if (default_slot) {
|
|
if (default_slot.p && (!current || dirty & /*$$scope*/
|
|
8)) {
|
|
update_slot_base(
|
|
default_slot,
|
|
default_slot_template,
|
|
ctx2,
|
|
/*$$scope*/
|
|
ctx2[3],
|
|
!current ? get_all_dirty_from_scope(
|
|
/*$$scope*/
|
|
ctx2[3]
|
|
) : get_slot_changes(
|
|
default_slot_template,
|
|
/*$$scope*/
|
|
ctx2[3],
|
|
dirty,
|
|
null
|
|
),
|
|
null
|
|
);
|
|
}
|
|
}
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(default_slot, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(default_slot, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
if (default_slot)
|
|
default_slot.d(detaching);
|
|
}
|
|
};
|
|
}
|
|
function create_fragment23(ctx) {
|
|
let icon;
|
|
let current;
|
|
const icon_spread_levels = [
|
|
{ name: "minus" },
|
|
/*$$props*/
|
|
ctx[1],
|
|
{ iconNode: (
|
|
/*iconNode*/
|
|
ctx[0]
|
|
) }
|
|
];
|
|
let icon_props = {
|
|
$$slots: { default: [create_default_slot22] },
|
|
$$scope: { ctx }
|
|
};
|
|
for (let i = 0; i < icon_spread_levels.length; i += 1) {
|
|
icon_props = assign(icon_props, icon_spread_levels[i]);
|
|
}
|
|
icon = new Icon_default({ props: icon_props });
|
|
return {
|
|
c() {
|
|
create_component(icon.$$.fragment);
|
|
},
|
|
m(target, anchor) {
|
|
mount_component(icon, target, anchor);
|
|
current = true;
|
|
},
|
|
p(ctx2, [dirty]) {
|
|
const icon_changes = dirty & /*$$props, iconNode*/
|
|
3 ? get_spread_update(icon_spread_levels, [
|
|
icon_spread_levels[0],
|
|
dirty & /*$$props*/
|
|
2 && get_spread_object(
|
|
/*$$props*/
|
|
ctx2[1]
|
|
),
|
|
dirty & /*iconNode*/
|
|
1 && { iconNode: (
|
|
/*iconNode*/
|
|
ctx2[0]
|
|
) }
|
|
]) : {};
|
|
if (dirty & /*$$scope*/
|
|
8) {
|
|
icon_changes.$$scope = { dirty, ctx: ctx2 };
|
|
}
|
|
icon.$set(icon_changes);
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(icon.$$.fragment, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(icon.$$.fragment, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
destroy_component(icon, detaching);
|
|
}
|
|
};
|
|
}
|
|
function instance23($$self, $$props, $$invalidate) {
|
|
let { $$slots: slots = {}, $$scope } = $$props;
|
|
const iconNode = [["path", { "d": "M5 12h14" }]];
|
|
$$self.$$set = ($$new_props) => {
|
|
$$invalidate(1, $$props = assign(assign({}, $$props), exclude_internal_props($$new_props)));
|
|
if ("$$scope" in $$new_props)
|
|
$$invalidate(3, $$scope = $$new_props.$$scope);
|
|
};
|
|
$$props = exclude_internal_props($$props);
|
|
return [iconNode, $$props, slots, $$scope];
|
|
}
|
|
var Minus = class extends SvelteComponent {
|
|
constructor(options) {
|
|
super();
|
|
init(this, options, instance23, create_fragment23, safe_not_equal, {});
|
|
}
|
|
};
|
|
var minus_default = Minus;
|
|
|
|
// node_modules/lucide-svelte/dist/icons/more-vertical.svelte
|
|
function create_default_slot23(ctx) {
|
|
let current;
|
|
const default_slot_template = (
|
|
/*#slots*/
|
|
ctx[2].default
|
|
);
|
|
const default_slot = create_slot(
|
|
default_slot_template,
|
|
ctx,
|
|
/*$$scope*/
|
|
ctx[3],
|
|
null
|
|
);
|
|
return {
|
|
c() {
|
|
if (default_slot)
|
|
default_slot.c();
|
|
},
|
|
m(target, anchor) {
|
|
if (default_slot) {
|
|
default_slot.m(target, anchor);
|
|
}
|
|
current = true;
|
|
},
|
|
p(ctx2, dirty) {
|
|
if (default_slot) {
|
|
if (default_slot.p && (!current || dirty & /*$$scope*/
|
|
8)) {
|
|
update_slot_base(
|
|
default_slot,
|
|
default_slot_template,
|
|
ctx2,
|
|
/*$$scope*/
|
|
ctx2[3],
|
|
!current ? get_all_dirty_from_scope(
|
|
/*$$scope*/
|
|
ctx2[3]
|
|
) : get_slot_changes(
|
|
default_slot_template,
|
|
/*$$scope*/
|
|
ctx2[3],
|
|
dirty,
|
|
null
|
|
),
|
|
null
|
|
);
|
|
}
|
|
}
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(default_slot, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(default_slot, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
if (default_slot)
|
|
default_slot.d(detaching);
|
|
}
|
|
};
|
|
}
|
|
function create_fragment24(ctx) {
|
|
let icon;
|
|
let current;
|
|
const icon_spread_levels = [
|
|
{ name: "more-vertical" },
|
|
/*$$props*/
|
|
ctx[1],
|
|
{ iconNode: (
|
|
/*iconNode*/
|
|
ctx[0]
|
|
) }
|
|
];
|
|
let icon_props = {
|
|
$$slots: { default: [create_default_slot23] },
|
|
$$scope: { ctx }
|
|
};
|
|
for (let i = 0; i < icon_spread_levels.length; i += 1) {
|
|
icon_props = assign(icon_props, icon_spread_levels[i]);
|
|
}
|
|
icon = new Icon_default({ props: icon_props });
|
|
return {
|
|
c() {
|
|
create_component(icon.$$.fragment);
|
|
},
|
|
m(target, anchor) {
|
|
mount_component(icon, target, anchor);
|
|
current = true;
|
|
},
|
|
p(ctx2, [dirty]) {
|
|
const icon_changes = dirty & /*$$props, iconNode*/
|
|
3 ? get_spread_update(icon_spread_levels, [
|
|
icon_spread_levels[0],
|
|
dirty & /*$$props*/
|
|
2 && get_spread_object(
|
|
/*$$props*/
|
|
ctx2[1]
|
|
),
|
|
dirty & /*iconNode*/
|
|
1 && { iconNode: (
|
|
/*iconNode*/
|
|
ctx2[0]
|
|
) }
|
|
]) : {};
|
|
if (dirty & /*$$scope*/
|
|
8) {
|
|
icon_changes.$$scope = { dirty, ctx: ctx2 };
|
|
}
|
|
icon.$set(icon_changes);
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(icon.$$.fragment, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(icon.$$.fragment, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
destroy_component(icon, detaching);
|
|
}
|
|
};
|
|
}
|
|
function instance24($$self, $$props, $$invalidate) {
|
|
let { $$slots: slots = {}, $$scope } = $$props;
|
|
const iconNode = [
|
|
["circle", { "cx": "12", "cy": "12", "r": "1" }],
|
|
["circle", { "cx": "12", "cy": "5", "r": "1" }],
|
|
["circle", { "cx": "12", "cy": "19", "r": "1" }]
|
|
];
|
|
$$self.$$set = ($$new_props) => {
|
|
$$invalidate(1, $$props = assign(assign({}, $$props), exclude_internal_props($$new_props)));
|
|
if ("$$scope" in $$new_props)
|
|
$$invalidate(3, $$scope = $$new_props.$$scope);
|
|
};
|
|
$$props = exclude_internal_props($$props);
|
|
return [iconNode, $$props, slots, $$scope];
|
|
}
|
|
var More_vertical = class extends SvelteComponent {
|
|
constructor(options) {
|
|
super();
|
|
init(this, options, instance24, create_fragment24, safe_not_equal, {});
|
|
}
|
|
};
|
|
var more_vertical_default = More_vertical;
|
|
|
|
// node_modules/lucide-svelte/dist/icons/palette.svelte
|
|
function create_default_slot24(ctx) {
|
|
let current;
|
|
const default_slot_template = (
|
|
/*#slots*/
|
|
ctx[2].default
|
|
);
|
|
const default_slot = create_slot(
|
|
default_slot_template,
|
|
ctx,
|
|
/*$$scope*/
|
|
ctx[3],
|
|
null
|
|
);
|
|
return {
|
|
c() {
|
|
if (default_slot)
|
|
default_slot.c();
|
|
},
|
|
m(target, anchor) {
|
|
if (default_slot) {
|
|
default_slot.m(target, anchor);
|
|
}
|
|
current = true;
|
|
},
|
|
p(ctx2, dirty) {
|
|
if (default_slot) {
|
|
if (default_slot.p && (!current || dirty & /*$$scope*/
|
|
8)) {
|
|
update_slot_base(
|
|
default_slot,
|
|
default_slot_template,
|
|
ctx2,
|
|
/*$$scope*/
|
|
ctx2[3],
|
|
!current ? get_all_dirty_from_scope(
|
|
/*$$scope*/
|
|
ctx2[3]
|
|
) : get_slot_changes(
|
|
default_slot_template,
|
|
/*$$scope*/
|
|
ctx2[3],
|
|
dirty,
|
|
null
|
|
),
|
|
null
|
|
);
|
|
}
|
|
}
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(default_slot, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(default_slot, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
if (default_slot)
|
|
default_slot.d(detaching);
|
|
}
|
|
};
|
|
}
|
|
function create_fragment25(ctx) {
|
|
let icon;
|
|
let current;
|
|
const icon_spread_levels = [
|
|
{ name: "palette" },
|
|
/*$$props*/
|
|
ctx[1],
|
|
{ iconNode: (
|
|
/*iconNode*/
|
|
ctx[0]
|
|
) }
|
|
];
|
|
let icon_props = {
|
|
$$slots: { default: [create_default_slot24] },
|
|
$$scope: { ctx }
|
|
};
|
|
for (let i = 0; i < icon_spread_levels.length; i += 1) {
|
|
icon_props = assign(icon_props, icon_spread_levels[i]);
|
|
}
|
|
icon = new Icon_default({ props: icon_props });
|
|
return {
|
|
c() {
|
|
create_component(icon.$$.fragment);
|
|
},
|
|
m(target, anchor) {
|
|
mount_component(icon, target, anchor);
|
|
current = true;
|
|
},
|
|
p(ctx2, [dirty]) {
|
|
const icon_changes = dirty & /*$$props, iconNode*/
|
|
3 ? get_spread_update(icon_spread_levels, [
|
|
icon_spread_levels[0],
|
|
dirty & /*$$props*/
|
|
2 && get_spread_object(
|
|
/*$$props*/
|
|
ctx2[1]
|
|
),
|
|
dirty & /*iconNode*/
|
|
1 && { iconNode: (
|
|
/*iconNode*/
|
|
ctx2[0]
|
|
) }
|
|
]) : {};
|
|
if (dirty & /*$$scope*/
|
|
8) {
|
|
icon_changes.$$scope = { dirty, ctx: ctx2 };
|
|
}
|
|
icon.$set(icon_changes);
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(icon.$$.fragment, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(icon.$$.fragment, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
destroy_component(icon, detaching);
|
|
}
|
|
};
|
|
}
|
|
function instance25($$self, $$props, $$invalidate) {
|
|
let { $$slots: slots = {}, $$scope } = $$props;
|
|
const iconNode = [
|
|
[
|
|
"circle",
|
|
{
|
|
"cx": "13.5",
|
|
"cy": "6.5",
|
|
"r": ".5",
|
|
"fill": "currentColor"
|
|
}
|
|
],
|
|
[
|
|
"circle",
|
|
{
|
|
"cx": "17.5",
|
|
"cy": "10.5",
|
|
"r": ".5",
|
|
"fill": "currentColor"
|
|
}
|
|
],
|
|
[
|
|
"circle",
|
|
{
|
|
"cx": "8.5",
|
|
"cy": "7.5",
|
|
"r": ".5",
|
|
"fill": "currentColor"
|
|
}
|
|
],
|
|
[
|
|
"circle",
|
|
{
|
|
"cx": "6.5",
|
|
"cy": "12.5",
|
|
"r": ".5",
|
|
"fill": "currentColor"
|
|
}
|
|
],
|
|
[
|
|
"path",
|
|
{
|
|
"d": "M12 2C6.5 2 2 6.5 2 12s4.5 10 10 10c.926 0 1.648-.746 1.648-1.688 0-.437-.18-.835-.437-1.125-.29-.289-.438-.652-.438-1.125a1.64 1.64 0 0 1 1.668-1.668h1.996c3.051 0 5.555-2.503 5.555-5.554C21.965 6.012 17.461 2 12 2z"
|
|
}
|
|
]
|
|
];
|
|
$$self.$$set = ($$new_props) => {
|
|
$$invalidate(1, $$props = assign(assign({}, $$props), exclude_internal_props($$new_props)));
|
|
if ("$$scope" in $$new_props)
|
|
$$invalidate(3, $$scope = $$new_props.$$scope);
|
|
};
|
|
$$props = exclude_internal_props($$props);
|
|
return [iconNode, $$props, slots, $$scope];
|
|
}
|
|
var Palette = class extends SvelteComponent {
|
|
constructor(options) {
|
|
super();
|
|
init(this, options, instance25, create_fragment25, safe_not_equal, {});
|
|
}
|
|
};
|
|
var palette_default = Palette;
|
|
|
|
// node_modules/lucide-svelte/dist/icons/panel-left-dashed.svelte
|
|
function create_default_slot25(ctx) {
|
|
let current;
|
|
const default_slot_template = (
|
|
/*#slots*/
|
|
ctx[2].default
|
|
);
|
|
const default_slot = create_slot(
|
|
default_slot_template,
|
|
ctx,
|
|
/*$$scope*/
|
|
ctx[3],
|
|
null
|
|
);
|
|
return {
|
|
c() {
|
|
if (default_slot)
|
|
default_slot.c();
|
|
},
|
|
m(target, anchor) {
|
|
if (default_slot) {
|
|
default_slot.m(target, anchor);
|
|
}
|
|
current = true;
|
|
},
|
|
p(ctx2, dirty) {
|
|
if (default_slot) {
|
|
if (default_slot.p && (!current || dirty & /*$$scope*/
|
|
8)) {
|
|
update_slot_base(
|
|
default_slot,
|
|
default_slot_template,
|
|
ctx2,
|
|
/*$$scope*/
|
|
ctx2[3],
|
|
!current ? get_all_dirty_from_scope(
|
|
/*$$scope*/
|
|
ctx2[3]
|
|
) : get_slot_changes(
|
|
default_slot_template,
|
|
/*$$scope*/
|
|
ctx2[3],
|
|
dirty,
|
|
null
|
|
),
|
|
null
|
|
);
|
|
}
|
|
}
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(default_slot, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(default_slot, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
if (default_slot)
|
|
default_slot.d(detaching);
|
|
}
|
|
};
|
|
}
|
|
function create_fragment26(ctx) {
|
|
let icon;
|
|
let current;
|
|
const icon_spread_levels = [
|
|
{ name: "panel-left-dashed" },
|
|
/*$$props*/
|
|
ctx[1],
|
|
{ iconNode: (
|
|
/*iconNode*/
|
|
ctx[0]
|
|
) }
|
|
];
|
|
let icon_props = {
|
|
$$slots: { default: [create_default_slot25] },
|
|
$$scope: { ctx }
|
|
};
|
|
for (let i = 0; i < icon_spread_levels.length; i += 1) {
|
|
icon_props = assign(icon_props, icon_spread_levels[i]);
|
|
}
|
|
icon = new Icon_default({ props: icon_props });
|
|
return {
|
|
c() {
|
|
create_component(icon.$$.fragment);
|
|
},
|
|
m(target, anchor) {
|
|
mount_component(icon, target, anchor);
|
|
current = true;
|
|
},
|
|
p(ctx2, [dirty]) {
|
|
const icon_changes = dirty & /*$$props, iconNode*/
|
|
3 ? get_spread_update(icon_spread_levels, [
|
|
icon_spread_levels[0],
|
|
dirty & /*$$props*/
|
|
2 && get_spread_object(
|
|
/*$$props*/
|
|
ctx2[1]
|
|
),
|
|
dirty & /*iconNode*/
|
|
1 && { iconNode: (
|
|
/*iconNode*/
|
|
ctx2[0]
|
|
) }
|
|
]) : {};
|
|
if (dirty & /*$$scope*/
|
|
8) {
|
|
icon_changes.$$scope = { dirty, ctx: ctx2 };
|
|
}
|
|
icon.$set(icon_changes);
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(icon.$$.fragment, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(icon.$$.fragment, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
destroy_component(icon, detaching);
|
|
}
|
|
};
|
|
}
|
|
function instance26($$self, $$props, $$invalidate) {
|
|
let { $$slots: slots = {}, $$scope } = $$props;
|
|
const iconNode = [
|
|
[
|
|
"rect",
|
|
{
|
|
"width": "18",
|
|
"height": "18",
|
|
"x": "3",
|
|
"y": "3",
|
|
"rx": "2"
|
|
}
|
|
],
|
|
["path", { "d": "M9 14v1" }],
|
|
["path", { "d": "M9 19v2" }],
|
|
["path", { "d": "M9 3v2" }],
|
|
["path", { "d": "M9 9v1" }]
|
|
];
|
|
$$self.$$set = ($$new_props) => {
|
|
$$invalidate(1, $$props = assign(assign({}, $$props), exclude_internal_props($$new_props)));
|
|
if ("$$scope" in $$new_props)
|
|
$$invalidate(3, $$scope = $$new_props.$$scope);
|
|
};
|
|
$$props = exclude_internal_props($$props);
|
|
return [iconNode, $$props, slots, $$scope];
|
|
}
|
|
var Panel_left_dashed = class extends SvelteComponent {
|
|
constructor(options) {
|
|
super();
|
|
init(this, options, instance26, create_fragment26, safe_not_equal, {});
|
|
}
|
|
};
|
|
var panel_left_dashed_default = Panel_left_dashed;
|
|
|
|
// node_modules/lucide-svelte/dist/icons/panel-right-dashed.svelte
|
|
function create_default_slot26(ctx) {
|
|
let current;
|
|
const default_slot_template = (
|
|
/*#slots*/
|
|
ctx[2].default
|
|
);
|
|
const default_slot = create_slot(
|
|
default_slot_template,
|
|
ctx,
|
|
/*$$scope*/
|
|
ctx[3],
|
|
null
|
|
);
|
|
return {
|
|
c() {
|
|
if (default_slot)
|
|
default_slot.c();
|
|
},
|
|
m(target, anchor) {
|
|
if (default_slot) {
|
|
default_slot.m(target, anchor);
|
|
}
|
|
current = true;
|
|
},
|
|
p(ctx2, dirty) {
|
|
if (default_slot) {
|
|
if (default_slot.p && (!current || dirty & /*$$scope*/
|
|
8)) {
|
|
update_slot_base(
|
|
default_slot,
|
|
default_slot_template,
|
|
ctx2,
|
|
/*$$scope*/
|
|
ctx2[3],
|
|
!current ? get_all_dirty_from_scope(
|
|
/*$$scope*/
|
|
ctx2[3]
|
|
) : get_slot_changes(
|
|
default_slot_template,
|
|
/*$$scope*/
|
|
ctx2[3],
|
|
dirty,
|
|
null
|
|
),
|
|
null
|
|
);
|
|
}
|
|
}
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(default_slot, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(default_slot, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
if (default_slot)
|
|
default_slot.d(detaching);
|
|
}
|
|
};
|
|
}
|
|
function create_fragment27(ctx) {
|
|
let icon;
|
|
let current;
|
|
const icon_spread_levels = [
|
|
{ name: "panel-right-dashed" },
|
|
/*$$props*/
|
|
ctx[1],
|
|
{ iconNode: (
|
|
/*iconNode*/
|
|
ctx[0]
|
|
) }
|
|
];
|
|
let icon_props = {
|
|
$$slots: { default: [create_default_slot26] },
|
|
$$scope: { ctx }
|
|
};
|
|
for (let i = 0; i < icon_spread_levels.length; i += 1) {
|
|
icon_props = assign(icon_props, icon_spread_levels[i]);
|
|
}
|
|
icon = new Icon_default({ props: icon_props });
|
|
return {
|
|
c() {
|
|
create_component(icon.$$.fragment);
|
|
},
|
|
m(target, anchor) {
|
|
mount_component(icon, target, anchor);
|
|
current = true;
|
|
},
|
|
p(ctx2, [dirty]) {
|
|
const icon_changes = dirty & /*$$props, iconNode*/
|
|
3 ? get_spread_update(icon_spread_levels, [
|
|
icon_spread_levels[0],
|
|
dirty & /*$$props*/
|
|
2 && get_spread_object(
|
|
/*$$props*/
|
|
ctx2[1]
|
|
),
|
|
dirty & /*iconNode*/
|
|
1 && { iconNode: (
|
|
/*iconNode*/
|
|
ctx2[0]
|
|
) }
|
|
]) : {};
|
|
if (dirty & /*$$scope*/
|
|
8) {
|
|
icon_changes.$$scope = { dirty, ctx: ctx2 };
|
|
}
|
|
icon.$set(icon_changes);
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(icon.$$.fragment, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(icon.$$.fragment, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
destroy_component(icon, detaching);
|
|
}
|
|
};
|
|
}
|
|
function instance27($$self, $$props, $$invalidate) {
|
|
let { $$slots: slots = {}, $$scope } = $$props;
|
|
const iconNode = [
|
|
[
|
|
"rect",
|
|
{
|
|
"width": "18",
|
|
"height": "18",
|
|
"x": "3",
|
|
"y": "3",
|
|
"rx": "2"
|
|
}
|
|
],
|
|
["path", { "d": "M15 14v1" }],
|
|
["path", { "d": "M15 19v2" }],
|
|
["path", { "d": "M15 3v2" }],
|
|
["path", { "d": "M15 9v1" }]
|
|
];
|
|
$$self.$$set = ($$new_props) => {
|
|
$$invalidate(1, $$props = assign(assign({}, $$props), exclude_internal_props($$new_props)));
|
|
if ("$$scope" in $$new_props)
|
|
$$invalidate(3, $$scope = $$new_props.$$scope);
|
|
};
|
|
$$props = exclude_internal_props($$props);
|
|
return [iconNode, $$props, slots, $$scope];
|
|
}
|
|
var Panel_right_dashed = class extends SvelteComponent {
|
|
constructor(options) {
|
|
super();
|
|
init(this, options, instance27, create_fragment27, safe_not_equal, {});
|
|
}
|
|
};
|
|
var panel_right_dashed_default = Panel_right_dashed;
|
|
|
|
// node_modules/lucide-svelte/dist/icons/pen.svelte
|
|
function create_default_slot27(ctx) {
|
|
let current;
|
|
const default_slot_template = (
|
|
/*#slots*/
|
|
ctx[2].default
|
|
);
|
|
const default_slot = create_slot(
|
|
default_slot_template,
|
|
ctx,
|
|
/*$$scope*/
|
|
ctx[3],
|
|
null
|
|
);
|
|
return {
|
|
c() {
|
|
if (default_slot)
|
|
default_slot.c();
|
|
},
|
|
m(target, anchor) {
|
|
if (default_slot) {
|
|
default_slot.m(target, anchor);
|
|
}
|
|
current = true;
|
|
},
|
|
p(ctx2, dirty) {
|
|
if (default_slot) {
|
|
if (default_slot.p && (!current || dirty & /*$$scope*/
|
|
8)) {
|
|
update_slot_base(
|
|
default_slot,
|
|
default_slot_template,
|
|
ctx2,
|
|
/*$$scope*/
|
|
ctx2[3],
|
|
!current ? get_all_dirty_from_scope(
|
|
/*$$scope*/
|
|
ctx2[3]
|
|
) : get_slot_changes(
|
|
default_slot_template,
|
|
/*$$scope*/
|
|
ctx2[3],
|
|
dirty,
|
|
null
|
|
),
|
|
null
|
|
);
|
|
}
|
|
}
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(default_slot, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(default_slot, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
if (default_slot)
|
|
default_slot.d(detaching);
|
|
}
|
|
};
|
|
}
|
|
function create_fragment28(ctx) {
|
|
let icon;
|
|
let current;
|
|
const icon_spread_levels = [
|
|
{ name: "pen" },
|
|
/*$$props*/
|
|
ctx[1],
|
|
{ iconNode: (
|
|
/*iconNode*/
|
|
ctx[0]
|
|
) }
|
|
];
|
|
let icon_props = {
|
|
$$slots: { default: [create_default_slot27] },
|
|
$$scope: { ctx }
|
|
};
|
|
for (let i = 0; i < icon_spread_levels.length; i += 1) {
|
|
icon_props = assign(icon_props, icon_spread_levels[i]);
|
|
}
|
|
icon = new Icon_default({ props: icon_props });
|
|
return {
|
|
c() {
|
|
create_component(icon.$$.fragment);
|
|
},
|
|
m(target, anchor) {
|
|
mount_component(icon, target, anchor);
|
|
current = true;
|
|
},
|
|
p(ctx2, [dirty]) {
|
|
const icon_changes = dirty & /*$$props, iconNode*/
|
|
3 ? get_spread_update(icon_spread_levels, [
|
|
icon_spread_levels[0],
|
|
dirty & /*$$props*/
|
|
2 && get_spread_object(
|
|
/*$$props*/
|
|
ctx2[1]
|
|
),
|
|
dirty & /*iconNode*/
|
|
1 && { iconNode: (
|
|
/*iconNode*/
|
|
ctx2[0]
|
|
) }
|
|
]) : {};
|
|
if (dirty & /*$$scope*/
|
|
8) {
|
|
icon_changes.$$scope = { dirty, ctx: ctx2 };
|
|
}
|
|
icon.$set(icon_changes);
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(icon.$$.fragment, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(icon.$$.fragment, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
destroy_component(icon, detaching);
|
|
}
|
|
};
|
|
}
|
|
function instance28($$self, $$props, $$invalidate) {
|
|
let { $$slots: slots = {}, $$scope } = $$props;
|
|
const iconNode = [
|
|
[
|
|
"path",
|
|
{
|
|
"d": "M17 3a2.85 2.83 0 1 1 4 4L7.5 20.5 2 22l1.5-5.5Z"
|
|
}
|
|
]
|
|
];
|
|
$$self.$$set = ($$new_props) => {
|
|
$$invalidate(1, $$props = assign(assign({}, $$props), exclude_internal_props($$new_props)));
|
|
if ("$$scope" in $$new_props)
|
|
$$invalidate(3, $$scope = $$new_props.$$scope);
|
|
};
|
|
$$props = exclude_internal_props($$props);
|
|
return [iconNode, $$props, slots, $$scope];
|
|
}
|
|
var Pen = class extends SvelteComponent {
|
|
constructor(options) {
|
|
super();
|
|
init(this, options, instance28, create_fragment28, safe_not_equal, {});
|
|
}
|
|
};
|
|
var pen_default = Pen;
|
|
|
|
// node_modules/lucide-svelte/dist/icons/pencil.svelte
|
|
function create_default_slot28(ctx) {
|
|
let current;
|
|
const default_slot_template = (
|
|
/*#slots*/
|
|
ctx[2].default
|
|
);
|
|
const default_slot = create_slot(
|
|
default_slot_template,
|
|
ctx,
|
|
/*$$scope*/
|
|
ctx[3],
|
|
null
|
|
);
|
|
return {
|
|
c() {
|
|
if (default_slot)
|
|
default_slot.c();
|
|
},
|
|
m(target, anchor) {
|
|
if (default_slot) {
|
|
default_slot.m(target, anchor);
|
|
}
|
|
current = true;
|
|
},
|
|
p(ctx2, dirty) {
|
|
if (default_slot) {
|
|
if (default_slot.p && (!current || dirty & /*$$scope*/
|
|
8)) {
|
|
update_slot_base(
|
|
default_slot,
|
|
default_slot_template,
|
|
ctx2,
|
|
/*$$scope*/
|
|
ctx2[3],
|
|
!current ? get_all_dirty_from_scope(
|
|
/*$$scope*/
|
|
ctx2[3]
|
|
) : get_slot_changes(
|
|
default_slot_template,
|
|
/*$$scope*/
|
|
ctx2[3],
|
|
dirty,
|
|
null
|
|
),
|
|
null
|
|
);
|
|
}
|
|
}
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(default_slot, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(default_slot, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
if (default_slot)
|
|
default_slot.d(detaching);
|
|
}
|
|
};
|
|
}
|
|
function create_fragment29(ctx) {
|
|
let icon;
|
|
let current;
|
|
const icon_spread_levels = [
|
|
{ name: "pencil" },
|
|
/*$$props*/
|
|
ctx[1],
|
|
{ iconNode: (
|
|
/*iconNode*/
|
|
ctx[0]
|
|
) }
|
|
];
|
|
let icon_props = {
|
|
$$slots: { default: [create_default_slot28] },
|
|
$$scope: { ctx }
|
|
};
|
|
for (let i = 0; i < icon_spread_levels.length; i += 1) {
|
|
icon_props = assign(icon_props, icon_spread_levels[i]);
|
|
}
|
|
icon = new Icon_default({ props: icon_props });
|
|
return {
|
|
c() {
|
|
create_component(icon.$$.fragment);
|
|
},
|
|
m(target, anchor) {
|
|
mount_component(icon, target, anchor);
|
|
current = true;
|
|
},
|
|
p(ctx2, [dirty]) {
|
|
const icon_changes = dirty & /*$$props, iconNode*/
|
|
3 ? get_spread_update(icon_spread_levels, [
|
|
icon_spread_levels[0],
|
|
dirty & /*$$props*/
|
|
2 && get_spread_object(
|
|
/*$$props*/
|
|
ctx2[1]
|
|
),
|
|
dirty & /*iconNode*/
|
|
1 && { iconNode: (
|
|
/*iconNode*/
|
|
ctx2[0]
|
|
) }
|
|
]) : {};
|
|
if (dirty & /*$$scope*/
|
|
8) {
|
|
icon_changes.$$scope = { dirty, ctx: ctx2 };
|
|
}
|
|
icon.$set(icon_changes);
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(icon.$$.fragment, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(icon.$$.fragment, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
destroy_component(icon, detaching);
|
|
}
|
|
};
|
|
}
|
|
function instance29($$self, $$props, $$invalidate) {
|
|
let { $$slots: slots = {}, $$scope } = $$props;
|
|
const iconNode = [
|
|
[
|
|
"path",
|
|
{
|
|
"d": "M17 3a2.85 2.83 0 1 1 4 4L7.5 20.5 2 22l1.5-5.5Z"
|
|
}
|
|
],
|
|
["path", { "d": "m15 5 4 4" }]
|
|
];
|
|
$$self.$$set = ($$new_props) => {
|
|
$$invalidate(1, $$props = assign(assign({}, $$props), exclude_internal_props($$new_props)));
|
|
if ("$$scope" in $$new_props)
|
|
$$invalidate(3, $$scope = $$new_props.$$scope);
|
|
};
|
|
$$props = exclude_internal_props($$props);
|
|
return [iconNode, $$props, slots, $$scope];
|
|
}
|
|
var Pencil = class extends SvelteComponent {
|
|
constructor(options) {
|
|
super();
|
|
init(this, options, instance29, create_fragment29, safe_not_equal, {});
|
|
}
|
|
};
|
|
var pencil_default = Pencil;
|
|
|
|
// node_modules/lucide-svelte/dist/icons/pin.svelte
|
|
function create_default_slot29(ctx) {
|
|
let current;
|
|
const default_slot_template = (
|
|
/*#slots*/
|
|
ctx[2].default
|
|
);
|
|
const default_slot = create_slot(
|
|
default_slot_template,
|
|
ctx,
|
|
/*$$scope*/
|
|
ctx[3],
|
|
null
|
|
);
|
|
return {
|
|
c() {
|
|
if (default_slot)
|
|
default_slot.c();
|
|
},
|
|
m(target, anchor) {
|
|
if (default_slot) {
|
|
default_slot.m(target, anchor);
|
|
}
|
|
current = true;
|
|
},
|
|
p(ctx2, dirty) {
|
|
if (default_slot) {
|
|
if (default_slot.p && (!current || dirty & /*$$scope*/
|
|
8)) {
|
|
update_slot_base(
|
|
default_slot,
|
|
default_slot_template,
|
|
ctx2,
|
|
/*$$scope*/
|
|
ctx2[3],
|
|
!current ? get_all_dirty_from_scope(
|
|
/*$$scope*/
|
|
ctx2[3]
|
|
) : get_slot_changes(
|
|
default_slot_template,
|
|
/*$$scope*/
|
|
ctx2[3],
|
|
dirty,
|
|
null
|
|
),
|
|
null
|
|
);
|
|
}
|
|
}
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(default_slot, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(default_slot, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
if (default_slot)
|
|
default_slot.d(detaching);
|
|
}
|
|
};
|
|
}
|
|
function create_fragment30(ctx) {
|
|
let icon;
|
|
let current;
|
|
const icon_spread_levels = [
|
|
{ name: "pin" },
|
|
/*$$props*/
|
|
ctx[1],
|
|
{ iconNode: (
|
|
/*iconNode*/
|
|
ctx[0]
|
|
) }
|
|
];
|
|
let icon_props = {
|
|
$$slots: { default: [create_default_slot29] },
|
|
$$scope: { ctx }
|
|
};
|
|
for (let i = 0; i < icon_spread_levels.length; i += 1) {
|
|
icon_props = assign(icon_props, icon_spread_levels[i]);
|
|
}
|
|
icon = new Icon_default({ props: icon_props });
|
|
return {
|
|
c() {
|
|
create_component(icon.$$.fragment);
|
|
},
|
|
m(target, anchor) {
|
|
mount_component(icon, target, anchor);
|
|
current = true;
|
|
},
|
|
p(ctx2, [dirty]) {
|
|
const icon_changes = dirty & /*$$props, iconNode*/
|
|
3 ? get_spread_update(icon_spread_levels, [
|
|
icon_spread_levels[0],
|
|
dirty & /*$$props*/
|
|
2 && get_spread_object(
|
|
/*$$props*/
|
|
ctx2[1]
|
|
),
|
|
dirty & /*iconNode*/
|
|
1 && { iconNode: (
|
|
/*iconNode*/
|
|
ctx2[0]
|
|
) }
|
|
]) : {};
|
|
if (dirty & /*$$scope*/
|
|
8) {
|
|
icon_changes.$$scope = { dirty, ctx: ctx2 };
|
|
}
|
|
icon.$set(icon_changes);
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(icon.$$.fragment, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(icon.$$.fragment, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
destroy_component(icon, detaching);
|
|
}
|
|
};
|
|
}
|
|
function instance30($$self, $$props, $$invalidate) {
|
|
let { $$slots: slots = {}, $$scope } = $$props;
|
|
const iconNode = [
|
|
[
|
|
"line",
|
|
{
|
|
"x1": "12",
|
|
"x2": "12",
|
|
"y1": "17",
|
|
"y2": "22"
|
|
}
|
|
],
|
|
[
|
|
"path",
|
|
{
|
|
"d": "M5 17h14v-1.76a2 2 0 0 0-1.11-1.79l-1.78-.9A2 2 0 0 1 15 10.76V6h1a2 2 0 0 0 0-4H8a2 2 0 0 0 0 4h1v4.76a2 2 0 0 1-1.11 1.79l-1.78.9A2 2 0 0 0 5 15.24Z"
|
|
}
|
|
]
|
|
];
|
|
$$self.$$set = ($$new_props) => {
|
|
$$invalidate(1, $$props = assign(assign({}, $$props), exclude_internal_props($$new_props)));
|
|
if ("$$scope" in $$new_props)
|
|
$$invalidate(3, $$scope = $$new_props.$$scope);
|
|
};
|
|
$$props = exclude_internal_props($$props);
|
|
return [iconNode, $$props, slots, $$scope];
|
|
}
|
|
var Pin = class extends SvelteComponent {
|
|
constructor(options) {
|
|
super();
|
|
init(this, options, instance30, create_fragment30, safe_not_equal, {});
|
|
}
|
|
};
|
|
var pin_default = Pin;
|
|
|
|
// node_modules/lucide-svelte/dist/icons/plus.svelte
|
|
function create_default_slot30(ctx) {
|
|
let current;
|
|
const default_slot_template = (
|
|
/*#slots*/
|
|
ctx[2].default
|
|
);
|
|
const default_slot = create_slot(
|
|
default_slot_template,
|
|
ctx,
|
|
/*$$scope*/
|
|
ctx[3],
|
|
null
|
|
);
|
|
return {
|
|
c() {
|
|
if (default_slot)
|
|
default_slot.c();
|
|
},
|
|
m(target, anchor) {
|
|
if (default_slot) {
|
|
default_slot.m(target, anchor);
|
|
}
|
|
current = true;
|
|
},
|
|
p(ctx2, dirty) {
|
|
if (default_slot) {
|
|
if (default_slot.p && (!current || dirty & /*$$scope*/
|
|
8)) {
|
|
update_slot_base(
|
|
default_slot,
|
|
default_slot_template,
|
|
ctx2,
|
|
/*$$scope*/
|
|
ctx2[3],
|
|
!current ? get_all_dirty_from_scope(
|
|
/*$$scope*/
|
|
ctx2[3]
|
|
) : get_slot_changes(
|
|
default_slot_template,
|
|
/*$$scope*/
|
|
ctx2[3],
|
|
dirty,
|
|
null
|
|
),
|
|
null
|
|
);
|
|
}
|
|
}
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(default_slot, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(default_slot, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
if (default_slot)
|
|
default_slot.d(detaching);
|
|
}
|
|
};
|
|
}
|
|
function create_fragment31(ctx) {
|
|
let icon;
|
|
let current;
|
|
const icon_spread_levels = [
|
|
{ name: "plus" },
|
|
/*$$props*/
|
|
ctx[1],
|
|
{ iconNode: (
|
|
/*iconNode*/
|
|
ctx[0]
|
|
) }
|
|
];
|
|
let icon_props = {
|
|
$$slots: { default: [create_default_slot30] },
|
|
$$scope: { ctx }
|
|
};
|
|
for (let i = 0; i < icon_spread_levels.length; i += 1) {
|
|
icon_props = assign(icon_props, icon_spread_levels[i]);
|
|
}
|
|
icon = new Icon_default({ props: icon_props });
|
|
return {
|
|
c() {
|
|
create_component(icon.$$.fragment);
|
|
},
|
|
m(target, anchor) {
|
|
mount_component(icon, target, anchor);
|
|
current = true;
|
|
},
|
|
p(ctx2, [dirty]) {
|
|
const icon_changes = dirty & /*$$props, iconNode*/
|
|
3 ? get_spread_update(icon_spread_levels, [
|
|
icon_spread_levels[0],
|
|
dirty & /*$$props*/
|
|
2 && get_spread_object(
|
|
/*$$props*/
|
|
ctx2[1]
|
|
),
|
|
dirty & /*iconNode*/
|
|
1 && { iconNode: (
|
|
/*iconNode*/
|
|
ctx2[0]
|
|
) }
|
|
]) : {};
|
|
if (dirty & /*$$scope*/
|
|
8) {
|
|
icon_changes.$$scope = { dirty, ctx: ctx2 };
|
|
}
|
|
icon.$set(icon_changes);
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(icon.$$.fragment, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(icon.$$.fragment, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
destroy_component(icon, detaching);
|
|
}
|
|
};
|
|
}
|
|
function instance31($$self, $$props, $$invalidate) {
|
|
let { $$slots: slots = {}, $$scope } = $$props;
|
|
const iconNode = [["path", { "d": "M5 12h14" }], ["path", { "d": "M12 5v14" }]];
|
|
$$self.$$set = ($$new_props) => {
|
|
$$invalidate(1, $$props = assign(assign({}, $$props), exclude_internal_props($$new_props)));
|
|
if ("$$scope" in $$new_props)
|
|
$$invalidate(3, $$scope = $$new_props.$$scope);
|
|
};
|
|
$$props = exclude_internal_props($$props);
|
|
return [iconNode, $$props, slots, $$scope];
|
|
}
|
|
var Plus = class extends SvelteComponent {
|
|
constructor(options) {
|
|
super();
|
|
init(this, options, instance31, create_fragment31, safe_not_equal, {});
|
|
}
|
|
};
|
|
var plus_default = Plus;
|
|
|
|
// node_modules/lucide-svelte/dist/icons/redo-2.svelte
|
|
function create_default_slot31(ctx) {
|
|
let current;
|
|
const default_slot_template = (
|
|
/*#slots*/
|
|
ctx[2].default
|
|
);
|
|
const default_slot = create_slot(
|
|
default_slot_template,
|
|
ctx,
|
|
/*$$scope*/
|
|
ctx[3],
|
|
null
|
|
);
|
|
return {
|
|
c() {
|
|
if (default_slot)
|
|
default_slot.c();
|
|
},
|
|
m(target, anchor) {
|
|
if (default_slot) {
|
|
default_slot.m(target, anchor);
|
|
}
|
|
current = true;
|
|
},
|
|
p(ctx2, dirty) {
|
|
if (default_slot) {
|
|
if (default_slot.p && (!current || dirty & /*$$scope*/
|
|
8)) {
|
|
update_slot_base(
|
|
default_slot,
|
|
default_slot_template,
|
|
ctx2,
|
|
/*$$scope*/
|
|
ctx2[3],
|
|
!current ? get_all_dirty_from_scope(
|
|
/*$$scope*/
|
|
ctx2[3]
|
|
) : get_slot_changes(
|
|
default_slot_template,
|
|
/*$$scope*/
|
|
ctx2[3],
|
|
dirty,
|
|
null
|
|
),
|
|
null
|
|
);
|
|
}
|
|
}
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(default_slot, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(default_slot, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
if (default_slot)
|
|
default_slot.d(detaching);
|
|
}
|
|
};
|
|
}
|
|
function create_fragment32(ctx) {
|
|
let icon;
|
|
let current;
|
|
const icon_spread_levels = [
|
|
{ name: "redo-2" },
|
|
/*$$props*/
|
|
ctx[1],
|
|
{ iconNode: (
|
|
/*iconNode*/
|
|
ctx[0]
|
|
) }
|
|
];
|
|
let icon_props = {
|
|
$$slots: { default: [create_default_slot31] },
|
|
$$scope: { ctx }
|
|
};
|
|
for (let i = 0; i < icon_spread_levels.length; i += 1) {
|
|
icon_props = assign(icon_props, icon_spread_levels[i]);
|
|
}
|
|
icon = new Icon_default({ props: icon_props });
|
|
return {
|
|
c() {
|
|
create_component(icon.$$.fragment);
|
|
},
|
|
m(target, anchor) {
|
|
mount_component(icon, target, anchor);
|
|
current = true;
|
|
},
|
|
p(ctx2, [dirty]) {
|
|
const icon_changes = dirty & /*$$props, iconNode*/
|
|
3 ? get_spread_update(icon_spread_levels, [
|
|
icon_spread_levels[0],
|
|
dirty & /*$$props*/
|
|
2 && get_spread_object(
|
|
/*$$props*/
|
|
ctx2[1]
|
|
),
|
|
dirty & /*iconNode*/
|
|
1 && { iconNode: (
|
|
/*iconNode*/
|
|
ctx2[0]
|
|
) }
|
|
]) : {};
|
|
if (dirty & /*$$scope*/
|
|
8) {
|
|
icon_changes.$$scope = { dirty, ctx: ctx2 };
|
|
}
|
|
icon.$set(icon_changes);
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(icon.$$.fragment, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(icon.$$.fragment, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
destroy_component(icon, detaching);
|
|
}
|
|
};
|
|
}
|
|
function instance32($$self, $$props, $$invalidate) {
|
|
let { $$slots: slots = {}, $$scope } = $$props;
|
|
const iconNode = [
|
|
["path", { "d": "m15 14 5-5-5-5" }],
|
|
[
|
|
"path",
|
|
{
|
|
"d": "M20 9H9.5A5.5 5.5 0 0 0 4 14.5v0A5.5 5.5 0 0 0 9.5 20H13"
|
|
}
|
|
]
|
|
];
|
|
$$self.$$set = ($$new_props) => {
|
|
$$invalidate(1, $$props = assign(assign({}, $$props), exclude_internal_props($$new_props)));
|
|
if ("$$scope" in $$new_props)
|
|
$$invalidate(3, $$scope = $$new_props.$$scope);
|
|
};
|
|
$$props = exclude_internal_props($$props);
|
|
return [iconNode, $$props, slots, $$scope];
|
|
}
|
|
var Redo_2 = class extends SvelteComponent {
|
|
constructor(options) {
|
|
super();
|
|
init(this, options, instance32, create_fragment32, safe_not_equal, {});
|
|
}
|
|
};
|
|
var redo_2_default = Redo_2;
|
|
|
|
// node_modules/lucide-svelte/dist/icons/rotate-ccw.svelte
|
|
function create_default_slot32(ctx) {
|
|
let current;
|
|
const default_slot_template = (
|
|
/*#slots*/
|
|
ctx[2].default
|
|
);
|
|
const default_slot = create_slot(
|
|
default_slot_template,
|
|
ctx,
|
|
/*$$scope*/
|
|
ctx[3],
|
|
null
|
|
);
|
|
return {
|
|
c() {
|
|
if (default_slot)
|
|
default_slot.c();
|
|
},
|
|
m(target, anchor) {
|
|
if (default_slot) {
|
|
default_slot.m(target, anchor);
|
|
}
|
|
current = true;
|
|
},
|
|
p(ctx2, dirty) {
|
|
if (default_slot) {
|
|
if (default_slot.p && (!current || dirty & /*$$scope*/
|
|
8)) {
|
|
update_slot_base(
|
|
default_slot,
|
|
default_slot_template,
|
|
ctx2,
|
|
/*$$scope*/
|
|
ctx2[3],
|
|
!current ? get_all_dirty_from_scope(
|
|
/*$$scope*/
|
|
ctx2[3]
|
|
) : get_slot_changes(
|
|
default_slot_template,
|
|
/*$$scope*/
|
|
ctx2[3],
|
|
dirty,
|
|
null
|
|
),
|
|
null
|
|
);
|
|
}
|
|
}
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(default_slot, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(default_slot, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
if (default_slot)
|
|
default_slot.d(detaching);
|
|
}
|
|
};
|
|
}
|
|
function create_fragment33(ctx) {
|
|
let icon;
|
|
let current;
|
|
const icon_spread_levels = [
|
|
{ name: "rotate-ccw" },
|
|
/*$$props*/
|
|
ctx[1],
|
|
{ iconNode: (
|
|
/*iconNode*/
|
|
ctx[0]
|
|
) }
|
|
];
|
|
let icon_props = {
|
|
$$slots: { default: [create_default_slot32] },
|
|
$$scope: { ctx }
|
|
};
|
|
for (let i = 0; i < icon_spread_levels.length; i += 1) {
|
|
icon_props = assign(icon_props, icon_spread_levels[i]);
|
|
}
|
|
icon = new Icon_default({ props: icon_props });
|
|
return {
|
|
c() {
|
|
create_component(icon.$$.fragment);
|
|
},
|
|
m(target, anchor) {
|
|
mount_component(icon, target, anchor);
|
|
current = true;
|
|
},
|
|
p(ctx2, [dirty]) {
|
|
const icon_changes = dirty & /*$$props, iconNode*/
|
|
3 ? get_spread_update(icon_spread_levels, [
|
|
icon_spread_levels[0],
|
|
dirty & /*$$props*/
|
|
2 && get_spread_object(
|
|
/*$$props*/
|
|
ctx2[1]
|
|
),
|
|
dirty & /*iconNode*/
|
|
1 && { iconNode: (
|
|
/*iconNode*/
|
|
ctx2[0]
|
|
) }
|
|
]) : {};
|
|
if (dirty & /*$$scope*/
|
|
8) {
|
|
icon_changes.$$scope = { dirty, ctx: ctx2 };
|
|
}
|
|
icon.$set(icon_changes);
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(icon.$$.fragment, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(icon.$$.fragment, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
destroy_component(icon, detaching);
|
|
}
|
|
};
|
|
}
|
|
function instance33($$self, $$props, $$invalidate) {
|
|
let { $$slots: slots = {}, $$scope } = $$props;
|
|
const iconNode = [
|
|
[
|
|
"path",
|
|
{
|
|
"d": "M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8"
|
|
}
|
|
],
|
|
["path", { "d": "M3 3v5h5" }]
|
|
];
|
|
$$self.$$set = ($$new_props) => {
|
|
$$invalidate(1, $$props = assign(assign({}, $$props), exclude_internal_props($$new_props)));
|
|
if ("$$scope" in $$new_props)
|
|
$$invalidate(3, $$scope = $$new_props.$$scope);
|
|
};
|
|
$$props = exclude_internal_props($$props);
|
|
return [iconNode, $$props, slots, $$scope];
|
|
}
|
|
var Rotate_ccw = class extends SvelteComponent {
|
|
constructor(options) {
|
|
super();
|
|
init(this, options, instance33, create_fragment33, safe_not_equal, {});
|
|
}
|
|
};
|
|
var rotate_ccw_default = Rotate_ccw;
|
|
|
|
// node_modules/lucide-svelte/dist/icons/rotate-cw.svelte
|
|
function create_default_slot33(ctx) {
|
|
let current;
|
|
const default_slot_template = (
|
|
/*#slots*/
|
|
ctx[2].default
|
|
);
|
|
const default_slot = create_slot(
|
|
default_slot_template,
|
|
ctx,
|
|
/*$$scope*/
|
|
ctx[3],
|
|
null
|
|
);
|
|
return {
|
|
c() {
|
|
if (default_slot)
|
|
default_slot.c();
|
|
},
|
|
m(target, anchor) {
|
|
if (default_slot) {
|
|
default_slot.m(target, anchor);
|
|
}
|
|
current = true;
|
|
},
|
|
p(ctx2, dirty) {
|
|
if (default_slot) {
|
|
if (default_slot.p && (!current || dirty & /*$$scope*/
|
|
8)) {
|
|
update_slot_base(
|
|
default_slot,
|
|
default_slot_template,
|
|
ctx2,
|
|
/*$$scope*/
|
|
ctx2[3],
|
|
!current ? get_all_dirty_from_scope(
|
|
/*$$scope*/
|
|
ctx2[3]
|
|
) : get_slot_changes(
|
|
default_slot_template,
|
|
/*$$scope*/
|
|
ctx2[3],
|
|
dirty,
|
|
null
|
|
),
|
|
null
|
|
);
|
|
}
|
|
}
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(default_slot, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(default_slot, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
if (default_slot)
|
|
default_slot.d(detaching);
|
|
}
|
|
};
|
|
}
|
|
function create_fragment34(ctx) {
|
|
let icon;
|
|
let current;
|
|
const icon_spread_levels = [
|
|
{ name: "rotate-cw" },
|
|
/*$$props*/
|
|
ctx[1],
|
|
{ iconNode: (
|
|
/*iconNode*/
|
|
ctx[0]
|
|
) }
|
|
];
|
|
let icon_props = {
|
|
$$slots: { default: [create_default_slot33] },
|
|
$$scope: { ctx }
|
|
};
|
|
for (let i = 0; i < icon_spread_levels.length; i += 1) {
|
|
icon_props = assign(icon_props, icon_spread_levels[i]);
|
|
}
|
|
icon = new Icon_default({ props: icon_props });
|
|
return {
|
|
c() {
|
|
create_component(icon.$$.fragment);
|
|
},
|
|
m(target, anchor) {
|
|
mount_component(icon, target, anchor);
|
|
current = true;
|
|
},
|
|
p(ctx2, [dirty]) {
|
|
const icon_changes = dirty & /*$$props, iconNode*/
|
|
3 ? get_spread_update(icon_spread_levels, [
|
|
icon_spread_levels[0],
|
|
dirty & /*$$props*/
|
|
2 && get_spread_object(
|
|
/*$$props*/
|
|
ctx2[1]
|
|
),
|
|
dirty & /*iconNode*/
|
|
1 && { iconNode: (
|
|
/*iconNode*/
|
|
ctx2[0]
|
|
) }
|
|
]) : {};
|
|
if (dirty & /*$$scope*/
|
|
8) {
|
|
icon_changes.$$scope = { dirty, ctx: ctx2 };
|
|
}
|
|
icon.$set(icon_changes);
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(icon.$$.fragment, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(icon.$$.fragment, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
destroy_component(icon, detaching);
|
|
}
|
|
};
|
|
}
|
|
function instance34($$self, $$props, $$invalidate) {
|
|
let { $$slots: slots = {}, $$scope } = $$props;
|
|
const iconNode = [
|
|
[
|
|
"path",
|
|
{
|
|
"d": "M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8"
|
|
}
|
|
],
|
|
["path", { "d": "M21 3v5h-5" }]
|
|
];
|
|
$$self.$$set = ($$new_props) => {
|
|
$$invalidate(1, $$props = assign(assign({}, $$props), exclude_internal_props($$new_props)));
|
|
if ("$$scope" in $$new_props)
|
|
$$invalidate(3, $$scope = $$new_props.$$scope);
|
|
};
|
|
$$props = exclude_internal_props($$props);
|
|
return [iconNode, $$props, slots, $$scope];
|
|
}
|
|
var Rotate_cw = class extends SvelteComponent {
|
|
constructor(options) {
|
|
super();
|
|
init(this, options, instance34, create_fragment34, safe_not_equal, {});
|
|
}
|
|
};
|
|
var rotate_cw_default = Rotate_cw;
|
|
|
|
// node_modules/lucide-svelte/dist/icons/save.svelte
|
|
function create_default_slot34(ctx) {
|
|
let current;
|
|
const default_slot_template = (
|
|
/*#slots*/
|
|
ctx[2].default
|
|
);
|
|
const default_slot = create_slot(
|
|
default_slot_template,
|
|
ctx,
|
|
/*$$scope*/
|
|
ctx[3],
|
|
null
|
|
);
|
|
return {
|
|
c() {
|
|
if (default_slot)
|
|
default_slot.c();
|
|
},
|
|
m(target, anchor) {
|
|
if (default_slot) {
|
|
default_slot.m(target, anchor);
|
|
}
|
|
current = true;
|
|
},
|
|
p(ctx2, dirty) {
|
|
if (default_slot) {
|
|
if (default_slot.p && (!current || dirty & /*$$scope*/
|
|
8)) {
|
|
update_slot_base(
|
|
default_slot,
|
|
default_slot_template,
|
|
ctx2,
|
|
/*$$scope*/
|
|
ctx2[3],
|
|
!current ? get_all_dirty_from_scope(
|
|
/*$$scope*/
|
|
ctx2[3]
|
|
) : get_slot_changes(
|
|
default_slot_template,
|
|
/*$$scope*/
|
|
ctx2[3],
|
|
dirty,
|
|
null
|
|
),
|
|
null
|
|
);
|
|
}
|
|
}
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(default_slot, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(default_slot, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
if (default_slot)
|
|
default_slot.d(detaching);
|
|
}
|
|
};
|
|
}
|
|
function create_fragment35(ctx) {
|
|
let icon;
|
|
let current;
|
|
const icon_spread_levels = [
|
|
{ name: "save" },
|
|
/*$$props*/
|
|
ctx[1],
|
|
{ iconNode: (
|
|
/*iconNode*/
|
|
ctx[0]
|
|
) }
|
|
];
|
|
let icon_props = {
|
|
$$slots: { default: [create_default_slot34] },
|
|
$$scope: { ctx }
|
|
};
|
|
for (let i = 0; i < icon_spread_levels.length; i += 1) {
|
|
icon_props = assign(icon_props, icon_spread_levels[i]);
|
|
}
|
|
icon = new Icon_default({ props: icon_props });
|
|
return {
|
|
c() {
|
|
create_component(icon.$$.fragment);
|
|
},
|
|
m(target, anchor) {
|
|
mount_component(icon, target, anchor);
|
|
current = true;
|
|
},
|
|
p(ctx2, [dirty]) {
|
|
const icon_changes = dirty & /*$$props, iconNode*/
|
|
3 ? get_spread_update(icon_spread_levels, [
|
|
icon_spread_levels[0],
|
|
dirty & /*$$props*/
|
|
2 && get_spread_object(
|
|
/*$$props*/
|
|
ctx2[1]
|
|
),
|
|
dirty & /*iconNode*/
|
|
1 && { iconNode: (
|
|
/*iconNode*/
|
|
ctx2[0]
|
|
) }
|
|
]) : {};
|
|
if (dirty & /*$$scope*/
|
|
8) {
|
|
icon_changes.$$scope = { dirty, ctx: ctx2 };
|
|
}
|
|
icon.$set(icon_changes);
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(icon.$$.fragment, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(icon.$$.fragment, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
destroy_component(icon, detaching);
|
|
}
|
|
};
|
|
}
|
|
function instance35($$self, $$props, $$invalidate) {
|
|
let { $$slots: slots = {}, $$scope } = $$props;
|
|
const iconNode = [
|
|
[
|
|
"path",
|
|
{
|
|
"d": "M19 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11l5 5v11a2 2 0 0 1-2 2z"
|
|
}
|
|
],
|
|
["polyline", { "points": "17 21 17 13 7 13 7 21" }],
|
|
["polyline", { "points": "7 3 7 8 15 8" }]
|
|
];
|
|
$$self.$$set = ($$new_props) => {
|
|
$$invalidate(1, $$props = assign(assign({}, $$props), exclude_internal_props($$new_props)));
|
|
if ("$$scope" in $$new_props)
|
|
$$invalidate(3, $$scope = $$new_props.$$scope);
|
|
};
|
|
$$props = exclude_internal_props($$props);
|
|
return [iconNode, $$props, slots, $$scope];
|
|
}
|
|
var Save = class extends SvelteComponent {
|
|
constructor(options) {
|
|
super();
|
|
init(this, options, instance35, create_fragment35, safe_not_equal, {});
|
|
}
|
|
};
|
|
var save_default = Save;
|
|
|
|
// node_modules/lucide-svelte/dist/icons/scan-search.svelte
|
|
function create_default_slot35(ctx) {
|
|
let current;
|
|
const default_slot_template = (
|
|
/*#slots*/
|
|
ctx[2].default
|
|
);
|
|
const default_slot = create_slot(
|
|
default_slot_template,
|
|
ctx,
|
|
/*$$scope*/
|
|
ctx[3],
|
|
null
|
|
);
|
|
return {
|
|
c() {
|
|
if (default_slot)
|
|
default_slot.c();
|
|
},
|
|
m(target, anchor) {
|
|
if (default_slot) {
|
|
default_slot.m(target, anchor);
|
|
}
|
|
current = true;
|
|
},
|
|
p(ctx2, dirty) {
|
|
if (default_slot) {
|
|
if (default_slot.p && (!current || dirty & /*$$scope*/
|
|
8)) {
|
|
update_slot_base(
|
|
default_slot,
|
|
default_slot_template,
|
|
ctx2,
|
|
/*$$scope*/
|
|
ctx2[3],
|
|
!current ? get_all_dirty_from_scope(
|
|
/*$$scope*/
|
|
ctx2[3]
|
|
) : get_slot_changes(
|
|
default_slot_template,
|
|
/*$$scope*/
|
|
ctx2[3],
|
|
dirty,
|
|
null
|
|
),
|
|
null
|
|
);
|
|
}
|
|
}
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(default_slot, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(default_slot, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
if (default_slot)
|
|
default_slot.d(detaching);
|
|
}
|
|
};
|
|
}
|
|
function create_fragment36(ctx) {
|
|
let icon;
|
|
let current;
|
|
const icon_spread_levels = [
|
|
{ name: "scan-search" },
|
|
/*$$props*/
|
|
ctx[1],
|
|
{ iconNode: (
|
|
/*iconNode*/
|
|
ctx[0]
|
|
) }
|
|
];
|
|
let icon_props = {
|
|
$$slots: { default: [create_default_slot35] },
|
|
$$scope: { ctx }
|
|
};
|
|
for (let i = 0; i < icon_spread_levels.length; i += 1) {
|
|
icon_props = assign(icon_props, icon_spread_levels[i]);
|
|
}
|
|
icon = new Icon_default({ props: icon_props });
|
|
return {
|
|
c() {
|
|
create_component(icon.$$.fragment);
|
|
},
|
|
m(target, anchor) {
|
|
mount_component(icon, target, anchor);
|
|
current = true;
|
|
},
|
|
p(ctx2, [dirty]) {
|
|
const icon_changes = dirty & /*$$props, iconNode*/
|
|
3 ? get_spread_update(icon_spread_levels, [
|
|
icon_spread_levels[0],
|
|
dirty & /*$$props*/
|
|
2 && get_spread_object(
|
|
/*$$props*/
|
|
ctx2[1]
|
|
),
|
|
dirty & /*iconNode*/
|
|
1 && { iconNode: (
|
|
/*iconNode*/
|
|
ctx2[0]
|
|
) }
|
|
]) : {};
|
|
if (dirty & /*$$scope*/
|
|
8) {
|
|
icon_changes.$$scope = { dirty, ctx: ctx2 };
|
|
}
|
|
icon.$set(icon_changes);
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(icon.$$.fragment, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(icon.$$.fragment, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
destroy_component(icon, detaching);
|
|
}
|
|
};
|
|
}
|
|
function instance36($$self, $$props, $$invalidate) {
|
|
let { $$slots: slots = {}, $$scope } = $$props;
|
|
const iconNode = [
|
|
["path", { "d": "M3 7V5a2 2 0 0 1 2-2h2" }],
|
|
["path", { "d": "M17 3h2a2 2 0 0 1 2 2v2" }],
|
|
["path", { "d": "M21 17v2a2 2 0 0 1-2 2h-2" }],
|
|
["path", { "d": "M7 21H5a2 2 0 0 1-2-2v-2" }],
|
|
["circle", { "cx": "12", "cy": "12", "r": "3" }],
|
|
["path", { "d": "m16 16-1.9-1.9" }]
|
|
];
|
|
$$self.$$set = ($$new_props) => {
|
|
$$invalidate(1, $$props = assign(assign({}, $$props), exclude_internal_props($$new_props)));
|
|
if ("$$scope" in $$new_props)
|
|
$$invalidate(3, $$scope = $$new_props.$$scope);
|
|
};
|
|
$$props = exclude_internal_props($$props);
|
|
return [iconNode, $$props, slots, $$scope];
|
|
}
|
|
var Scan_search = class extends SvelteComponent {
|
|
constructor(options) {
|
|
super();
|
|
init(this, options, instance36, create_fragment36, safe_not_equal, {});
|
|
}
|
|
};
|
|
var scan_search_default = Scan_search;
|
|
|
|
// node_modules/lucide-svelte/dist/icons/scissors.svelte
|
|
function create_default_slot36(ctx) {
|
|
let current;
|
|
const default_slot_template = (
|
|
/*#slots*/
|
|
ctx[2].default
|
|
);
|
|
const default_slot = create_slot(
|
|
default_slot_template,
|
|
ctx,
|
|
/*$$scope*/
|
|
ctx[3],
|
|
null
|
|
);
|
|
return {
|
|
c() {
|
|
if (default_slot)
|
|
default_slot.c();
|
|
},
|
|
m(target, anchor) {
|
|
if (default_slot) {
|
|
default_slot.m(target, anchor);
|
|
}
|
|
current = true;
|
|
},
|
|
p(ctx2, dirty) {
|
|
if (default_slot) {
|
|
if (default_slot.p && (!current || dirty & /*$$scope*/
|
|
8)) {
|
|
update_slot_base(
|
|
default_slot,
|
|
default_slot_template,
|
|
ctx2,
|
|
/*$$scope*/
|
|
ctx2[3],
|
|
!current ? get_all_dirty_from_scope(
|
|
/*$$scope*/
|
|
ctx2[3]
|
|
) : get_slot_changes(
|
|
default_slot_template,
|
|
/*$$scope*/
|
|
ctx2[3],
|
|
dirty,
|
|
null
|
|
),
|
|
null
|
|
);
|
|
}
|
|
}
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(default_slot, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(default_slot, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
if (default_slot)
|
|
default_slot.d(detaching);
|
|
}
|
|
};
|
|
}
|
|
function create_fragment37(ctx) {
|
|
let icon;
|
|
let current;
|
|
const icon_spread_levels = [
|
|
{ name: "scissors" },
|
|
/*$$props*/
|
|
ctx[1],
|
|
{ iconNode: (
|
|
/*iconNode*/
|
|
ctx[0]
|
|
) }
|
|
];
|
|
let icon_props = {
|
|
$$slots: { default: [create_default_slot36] },
|
|
$$scope: { ctx }
|
|
};
|
|
for (let i = 0; i < icon_spread_levels.length; i += 1) {
|
|
icon_props = assign(icon_props, icon_spread_levels[i]);
|
|
}
|
|
icon = new Icon_default({ props: icon_props });
|
|
return {
|
|
c() {
|
|
create_component(icon.$$.fragment);
|
|
},
|
|
m(target, anchor) {
|
|
mount_component(icon, target, anchor);
|
|
current = true;
|
|
},
|
|
p(ctx2, [dirty]) {
|
|
const icon_changes = dirty & /*$$props, iconNode*/
|
|
3 ? get_spread_update(icon_spread_levels, [
|
|
icon_spread_levels[0],
|
|
dirty & /*$$props*/
|
|
2 && get_spread_object(
|
|
/*$$props*/
|
|
ctx2[1]
|
|
),
|
|
dirty & /*iconNode*/
|
|
1 && { iconNode: (
|
|
/*iconNode*/
|
|
ctx2[0]
|
|
) }
|
|
]) : {};
|
|
if (dirty & /*$$scope*/
|
|
8) {
|
|
icon_changes.$$scope = { dirty, ctx: ctx2 };
|
|
}
|
|
icon.$set(icon_changes);
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(icon.$$.fragment, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(icon.$$.fragment, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
destroy_component(icon, detaching);
|
|
}
|
|
};
|
|
}
|
|
function instance37($$self, $$props, $$invalidate) {
|
|
let { $$slots: slots = {}, $$scope } = $$props;
|
|
const iconNode = [
|
|
["circle", { "cx": "6", "cy": "6", "r": "3" }],
|
|
["path", { "d": "M8.12 8.12 12 12" }],
|
|
["path", { "d": "M20 4 8.12 15.88" }],
|
|
["circle", { "cx": "6", "cy": "18", "r": "3" }],
|
|
["path", { "d": "M14.8 14.8 20 20" }]
|
|
];
|
|
$$self.$$set = ($$new_props) => {
|
|
$$invalidate(1, $$props = assign(assign({}, $$props), exclude_internal_props($$new_props)));
|
|
if ("$$scope" in $$new_props)
|
|
$$invalidate(3, $$scope = $$new_props.$$scope);
|
|
};
|
|
$$props = exclude_internal_props($$props);
|
|
return [iconNode, $$props, slots, $$scope];
|
|
}
|
|
var Scissors = class extends SvelteComponent {
|
|
constructor(options) {
|
|
super();
|
|
init(this, options, instance37, create_fragment37, safe_not_equal, {});
|
|
}
|
|
};
|
|
var scissors_default = Scissors;
|
|
|
|
// node_modules/lucide-svelte/dist/icons/search.svelte
|
|
function create_default_slot37(ctx) {
|
|
let current;
|
|
const default_slot_template = (
|
|
/*#slots*/
|
|
ctx[2].default
|
|
);
|
|
const default_slot = create_slot(
|
|
default_slot_template,
|
|
ctx,
|
|
/*$$scope*/
|
|
ctx[3],
|
|
null
|
|
);
|
|
return {
|
|
c() {
|
|
if (default_slot)
|
|
default_slot.c();
|
|
},
|
|
m(target, anchor) {
|
|
if (default_slot) {
|
|
default_slot.m(target, anchor);
|
|
}
|
|
current = true;
|
|
},
|
|
p(ctx2, dirty) {
|
|
if (default_slot) {
|
|
if (default_slot.p && (!current || dirty & /*$$scope*/
|
|
8)) {
|
|
update_slot_base(
|
|
default_slot,
|
|
default_slot_template,
|
|
ctx2,
|
|
/*$$scope*/
|
|
ctx2[3],
|
|
!current ? get_all_dirty_from_scope(
|
|
/*$$scope*/
|
|
ctx2[3]
|
|
) : get_slot_changes(
|
|
default_slot_template,
|
|
/*$$scope*/
|
|
ctx2[3],
|
|
dirty,
|
|
null
|
|
),
|
|
null
|
|
);
|
|
}
|
|
}
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(default_slot, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(default_slot, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
if (default_slot)
|
|
default_slot.d(detaching);
|
|
}
|
|
};
|
|
}
|
|
function create_fragment38(ctx) {
|
|
let icon;
|
|
let current;
|
|
const icon_spread_levels = [
|
|
{ name: "search" },
|
|
/*$$props*/
|
|
ctx[1],
|
|
{ iconNode: (
|
|
/*iconNode*/
|
|
ctx[0]
|
|
) }
|
|
];
|
|
let icon_props = {
|
|
$$slots: { default: [create_default_slot37] },
|
|
$$scope: { ctx }
|
|
};
|
|
for (let i = 0; i < icon_spread_levels.length; i += 1) {
|
|
icon_props = assign(icon_props, icon_spread_levels[i]);
|
|
}
|
|
icon = new Icon_default({ props: icon_props });
|
|
return {
|
|
c() {
|
|
create_component(icon.$$.fragment);
|
|
},
|
|
m(target, anchor) {
|
|
mount_component(icon, target, anchor);
|
|
current = true;
|
|
},
|
|
p(ctx2, [dirty]) {
|
|
const icon_changes = dirty & /*$$props, iconNode*/
|
|
3 ? get_spread_update(icon_spread_levels, [
|
|
icon_spread_levels[0],
|
|
dirty & /*$$props*/
|
|
2 && get_spread_object(
|
|
/*$$props*/
|
|
ctx2[1]
|
|
),
|
|
dirty & /*iconNode*/
|
|
1 && { iconNode: (
|
|
/*iconNode*/
|
|
ctx2[0]
|
|
) }
|
|
]) : {};
|
|
if (dirty & /*$$scope*/
|
|
8) {
|
|
icon_changes.$$scope = { dirty, ctx: ctx2 };
|
|
}
|
|
icon.$set(icon_changes);
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(icon.$$.fragment, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(icon.$$.fragment, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
destroy_component(icon, detaching);
|
|
}
|
|
};
|
|
}
|
|
function instance38($$self, $$props, $$invalidate) {
|
|
let { $$slots: slots = {}, $$scope } = $$props;
|
|
const iconNode = [
|
|
["circle", { "cx": "11", "cy": "11", "r": "8" }],
|
|
["path", { "d": "m21 21-4.3-4.3" }]
|
|
];
|
|
$$self.$$set = ($$new_props) => {
|
|
$$invalidate(1, $$props = assign(assign({}, $$props), exclude_internal_props($$new_props)));
|
|
if ("$$scope" in $$new_props)
|
|
$$invalidate(3, $$scope = $$new_props.$$scope);
|
|
};
|
|
$$props = exclude_internal_props($$props);
|
|
return [iconNode, $$props, slots, $$scope];
|
|
}
|
|
var Search = class extends SvelteComponent {
|
|
constructor(options) {
|
|
super();
|
|
init(this, options, instance38, create_fragment38, safe_not_equal, {});
|
|
}
|
|
};
|
|
var search_default = Search;
|
|
|
|
// node_modules/lucide-svelte/dist/icons/settings.svelte
|
|
function create_default_slot38(ctx) {
|
|
let current;
|
|
const default_slot_template = (
|
|
/*#slots*/
|
|
ctx[2].default
|
|
);
|
|
const default_slot = create_slot(
|
|
default_slot_template,
|
|
ctx,
|
|
/*$$scope*/
|
|
ctx[3],
|
|
null
|
|
);
|
|
return {
|
|
c() {
|
|
if (default_slot)
|
|
default_slot.c();
|
|
},
|
|
m(target, anchor) {
|
|
if (default_slot) {
|
|
default_slot.m(target, anchor);
|
|
}
|
|
current = true;
|
|
},
|
|
p(ctx2, dirty) {
|
|
if (default_slot) {
|
|
if (default_slot.p && (!current || dirty & /*$$scope*/
|
|
8)) {
|
|
update_slot_base(
|
|
default_slot,
|
|
default_slot_template,
|
|
ctx2,
|
|
/*$$scope*/
|
|
ctx2[3],
|
|
!current ? get_all_dirty_from_scope(
|
|
/*$$scope*/
|
|
ctx2[3]
|
|
) : get_slot_changes(
|
|
default_slot_template,
|
|
/*$$scope*/
|
|
ctx2[3],
|
|
dirty,
|
|
null
|
|
),
|
|
null
|
|
);
|
|
}
|
|
}
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(default_slot, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(default_slot, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
if (default_slot)
|
|
default_slot.d(detaching);
|
|
}
|
|
};
|
|
}
|
|
function create_fragment39(ctx) {
|
|
let icon;
|
|
let current;
|
|
const icon_spread_levels = [
|
|
{ name: "settings" },
|
|
/*$$props*/
|
|
ctx[1],
|
|
{ iconNode: (
|
|
/*iconNode*/
|
|
ctx[0]
|
|
) }
|
|
];
|
|
let icon_props = {
|
|
$$slots: { default: [create_default_slot38] },
|
|
$$scope: { ctx }
|
|
};
|
|
for (let i = 0; i < icon_spread_levels.length; i += 1) {
|
|
icon_props = assign(icon_props, icon_spread_levels[i]);
|
|
}
|
|
icon = new Icon_default({ props: icon_props });
|
|
return {
|
|
c() {
|
|
create_component(icon.$$.fragment);
|
|
},
|
|
m(target, anchor) {
|
|
mount_component(icon, target, anchor);
|
|
current = true;
|
|
},
|
|
p(ctx2, [dirty]) {
|
|
const icon_changes = dirty & /*$$props, iconNode*/
|
|
3 ? get_spread_update(icon_spread_levels, [
|
|
icon_spread_levels[0],
|
|
dirty & /*$$props*/
|
|
2 && get_spread_object(
|
|
/*$$props*/
|
|
ctx2[1]
|
|
),
|
|
dirty & /*iconNode*/
|
|
1 && { iconNode: (
|
|
/*iconNode*/
|
|
ctx2[0]
|
|
) }
|
|
]) : {};
|
|
if (dirty & /*$$scope*/
|
|
8) {
|
|
icon_changes.$$scope = { dirty, ctx: ctx2 };
|
|
}
|
|
icon.$set(icon_changes);
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(icon.$$.fragment, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(icon.$$.fragment, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
destroy_component(icon, detaching);
|
|
}
|
|
};
|
|
}
|
|
function instance39($$self, $$props, $$invalidate) {
|
|
let { $$slots: slots = {}, $$scope } = $$props;
|
|
const iconNode = [
|
|
[
|
|
"path",
|
|
{
|
|
"d": "M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z"
|
|
}
|
|
],
|
|
["circle", { "cx": "12", "cy": "12", "r": "3" }]
|
|
];
|
|
$$self.$$set = ($$new_props) => {
|
|
$$invalidate(1, $$props = assign(assign({}, $$props), exclude_internal_props($$new_props)));
|
|
if ("$$scope" in $$new_props)
|
|
$$invalidate(3, $$scope = $$new_props.$$scope);
|
|
};
|
|
$$props = exclude_internal_props($$props);
|
|
return [iconNode, $$props, slots, $$scope];
|
|
}
|
|
var Settings = class extends SvelteComponent {
|
|
constructor(options) {
|
|
super();
|
|
init(this, options, instance39, create_fragment39, safe_not_equal, {});
|
|
}
|
|
};
|
|
var settings_default = Settings;
|
|
|
|
// node_modules/lucide-svelte/dist/icons/split.svelte
|
|
function create_default_slot39(ctx) {
|
|
let current;
|
|
const default_slot_template = (
|
|
/*#slots*/
|
|
ctx[2].default
|
|
);
|
|
const default_slot = create_slot(
|
|
default_slot_template,
|
|
ctx,
|
|
/*$$scope*/
|
|
ctx[3],
|
|
null
|
|
);
|
|
return {
|
|
c() {
|
|
if (default_slot)
|
|
default_slot.c();
|
|
},
|
|
m(target, anchor) {
|
|
if (default_slot) {
|
|
default_slot.m(target, anchor);
|
|
}
|
|
current = true;
|
|
},
|
|
p(ctx2, dirty) {
|
|
if (default_slot) {
|
|
if (default_slot.p && (!current || dirty & /*$$scope*/
|
|
8)) {
|
|
update_slot_base(
|
|
default_slot,
|
|
default_slot_template,
|
|
ctx2,
|
|
/*$$scope*/
|
|
ctx2[3],
|
|
!current ? get_all_dirty_from_scope(
|
|
/*$$scope*/
|
|
ctx2[3]
|
|
) : get_slot_changes(
|
|
default_slot_template,
|
|
/*$$scope*/
|
|
ctx2[3],
|
|
dirty,
|
|
null
|
|
),
|
|
null
|
|
);
|
|
}
|
|
}
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(default_slot, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(default_slot, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
if (default_slot)
|
|
default_slot.d(detaching);
|
|
}
|
|
};
|
|
}
|
|
function create_fragment40(ctx) {
|
|
let icon;
|
|
let current;
|
|
const icon_spread_levels = [
|
|
{ name: "split" },
|
|
/*$$props*/
|
|
ctx[1],
|
|
{ iconNode: (
|
|
/*iconNode*/
|
|
ctx[0]
|
|
) }
|
|
];
|
|
let icon_props = {
|
|
$$slots: { default: [create_default_slot39] },
|
|
$$scope: { ctx }
|
|
};
|
|
for (let i = 0; i < icon_spread_levels.length; i += 1) {
|
|
icon_props = assign(icon_props, icon_spread_levels[i]);
|
|
}
|
|
icon = new Icon_default({ props: icon_props });
|
|
return {
|
|
c() {
|
|
create_component(icon.$$.fragment);
|
|
},
|
|
m(target, anchor) {
|
|
mount_component(icon, target, anchor);
|
|
current = true;
|
|
},
|
|
p(ctx2, [dirty]) {
|
|
const icon_changes = dirty & /*$$props, iconNode*/
|
|
3 ? get_spread_update(icon_spread_levels, [
|
|
icon_spread_levels[0],
|
|
dirty & /*$$props*/
|
|
2 && get_spread_object(
|
|
/*$$props*/
|
|
ctx2[1]
|
|
),
|
|
dirty & /*iconNode*/
|
|
1 && { iconNode: (
|
|
/*iconNode*/
|
|
ctx2[0]
|
|
) }
|
|
]) : {};
|
|
if (dirty & /*$$scope*/
|
|
8) {
|
|
icon_changes.$$scope = { dirty, ctx: ctx2 };
|
|
}
|
|
icon.$set(icon_changes);
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(icon.$$.fragment, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(icon.$$.fragment, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
destroy_component(icon, detaching);
|
|
}
|
|
};
|
|
}
|
|
function instance40($$self, $$props, $$invalidate) {
|
|
let { $$slots: slots = {}, $$scope } = $$props;
|
|
const iconNode = [
|
|
["path", { "d": "M16 3h5v5" }],
|
|
["path", { "d": "M8 3H3v5" }],
|
|
[
|
|
"path",
|
|
{
|
|
"d": "M12 22v-8.3a4 4 0 0 0-1.172-2.872L3 3"
|
|
}
|
|
],
|
|
["path", { "d": "m15 9 6-6" }]
|
|
];
|
|
$$self.$$set = ($$new_props) => {
|
|
$$invalidate(1, $$props = assign(assign({}, $$props), exclude_internal_props($$new_props)));
|
|
if ("$$scope" in $$new_props)
|
|
$$invalidate(3, $$scope = $$new_props.$$scope);
|
|
};
|
|
$$props = exclude_internal_props($$props);
|
|
return [iconNode, $$props, slots, $$scope];
|
|
}
|
|
var Split = class extends SvelteComponent {
|
|
constructor(options) {
|
|
super();
|
|
init(this, options, instance40, create_fragment40, safe_not_equal, {});
|
|
}
|
|
};
|
|
var split_default = Split;
|
|
|
|
// node_modules/lucide-svelte/dist/icons/text.svelte
|
|
function create_default_slot40(ctx) {
|
|
let current;
|
|
const default_slot_template = (
|
|
/*#slots*/
|
|
ctx[2].default
|
|
);
|
|
const default_slot = create_slot(
|
|
default_slot_template,
|
|
ctx,
|
|
/*$$scope*/
|
|
ctx[3],
|
|
null
|
|
);
|
|
return {
|
|
c() {
|
|
if (default_slot)
|
|
default_slot.c();
|
|
},
|
|
m(target, anchor) {
|
|
if (default_slot) {
|
|
default_slot.m(target, anchor);
|
|
}
|
|
current = true;
|
|
},
|
|
p(ctx2, dirty) {
|
|
if (default_slot) {
|
|
if (default_slot.p && (!current || dirty & /*$$scope*/
|
|
8)) {
|
|
update_slot_base(
|
|
default_slot,
|
|
default_slot_template,
|
|
ctx2,
|
|
/*$$scope*/
|
|
ctx2[3],
|
|
!current ? get_all_dirty_from_scope(
|
|
/*$$scope*/
|
|
ctx2[3]
|
|
) : get_slot_changes(
|
|
default_slot_template,
|
|
/*$$scope*/
|
|
ctx2[3],
|
|
dirty,
|
|
null
|
|
),
|
|
null
|
|
);
|
|
}
|
|
}
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(default_slot, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(default_slot, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
if (default_slot)
|
|
default_slot.d(detaching);
|
|
}
|
|
};
|
|
}
|
|
function create_fragment41(ctx) {
|
|
let icon;
|
|
let current;
|
|
const icon_spread_levels = [
|
|
{ name: "text" },
|
|
/*$$props*/
|
|
ctx[1],
|
|
{ iconNode: (
|
|
/*iconNode*/
|
|
ctx[0]
|
|
) }
|
|
];
|
|
let icon_props = {
|
|
$$slots: { default: [create_default_slot40] },
|
|
$$scope: { ctx }
|
|
};
|
|
for (let i = 0; i < icon_spread_levels.length; i += 1) {
|
|
icon_props = assign(icon_props, icon_spread_levels[i]);
|
|
}
|
|
icon = new Icon_default({ props: icon_props });
|
|
return {
|
|
c() {
|
|
create_component(icon.$$.fragment);
|
|
},
|
|
m(target, anchor) {
|
|
mount_component(icon, target, anchor);
|
|
current = true;
|
|
},
|
|
p(ctx2, [dirty]) {
|
|
const icon_changes = dirty & /*$$props, iconNode*/
|
|
3 ? get_spread_update(icon_spread_levels, [
|
|
icon_spread_levels[0],
|
|
dirty & /*$$props*/
|
|
2 && get_spread_object(
|
|
/*$$props*/
|
|
ctx2[1]
|
|
),
|
|
dirty & /*iconNode*/
|
|
1 && { iconNode: (
|
|
/*iconNode*/
|
|
ctx2[0]
|
|
) }
|
|
]) : {};
|
|
if (dirty & /*$$scope*/
|
|
8) {
|
|
icon_changes.$$scope = { dirty, ctx: ctx2 };
|
|
}
|
|
icon.$set(icon_changes);
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(icon.$$.fragment, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(icon.$$.fragment, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
destroy_component(icon, detaching);
|
|
}
|
|
};
|
|
}
|
|
function instance41($$self, $$props, $$invalidate) {
|
|
let { $$slots: slots = {}, $$scope } = $$props;
|
|
const iconNode = [
|
|
["path", { "d": "M17 6.1H3" }],
|
|
["path", { "d": "M21 12.1H3" }],
|
|
["path", { "d": "M15.1 18H3" }]
|
|
];
|
|
$$self.$$set = ($$new_props) => {
|
|
$$invalidate(1, $$props = assign(assign({}, $$props), exclude_internal_props($$new_props)));
|
|
if ("$$scope" in $$new_props)
|
|
$$invalidate(3, $$scope = $$new_props.$$scope);
|
|
};
|
|
$$props = exclude_internal_props($$props);
|
|
return [iconNode, $$props, slots, $$scope];
|
|
}
|
|
var Text = class extends SvelteComponent {
|
|
constructor(options) {
|
|
super();
|
|
init(this, options, instance41, create_fragment41, safe_not_equal, {});
|
|
}
|
|
};
|
|
var text_default = Text;
|
|
|
|
// node_modules/lucide-svelte/dist/icons/trash.svelte
|
|
function create_default_slot41(ctx) {
|
|
let current;
|
|
const default_slot_template = (
|
|
/*#slots*/
|
|
ctx[2].default
|
|
);
|
|
const default_slot = create_slot(
|
|
default_slot_template,
|
|
ctx,
|
|
/*$$scope*/
|
|
ctx[3],
|
|
null
|
|
);
|
|
return {
|
|
c() {
|
|
if (default_slot)
|
|
default_slot.c();
|
|
},
|
|
m(target, anchor) {
|
|
if (default_slot) {
|
|
default_slot.m(target, anchor);
|
|
}
|
|
current = true;
|
|
},
|
|
p(ctx2, dirty) {
|
|
if (default_slot) {
|
|
if (default_slot.p && (!current || dirty & /*$$scope*/
|
|
8)) {
|
|
update_slot_base(
|
|
default_slot,
|
|
default_slot_template,
|
|
ctx2,
|
|
/*$$scope*/
|
|
ctx2[3],
|
|
!current ? get_all_dirty_from_scope(
|
|
/*$$scope*/
|
|
ctx2[3]
|
|
) : get_slot_changes(
|
|
default_slot_template,
|
|
/*$$scope*/
|
|
ctx2[3],
|
|
dirty,
|
|
null
|
|
),
|
|
null
|
|
);
|
|
}
|
|
}
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(default_slot, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(default_slot, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
if (default_slot)
|
|
default_slot.d(detaching);
|
|
}
|
|
};
|
|
}
|
|
function create_fragment42(ctx) {
|
|
let icon;
|
|
let current;
|
|
const icon_spread_levels = [
|
|
{ name: "trash" },
|
|
/*$$props*/
|
|
ctx[1],
|
|
{ iconNode: (
|
|
/*iconNode*/
|
|
ctx[0]
|
|
) }
|
|
];
|
|
let icon_props = {
|
|
$$slots: { default: [create_default_slot41] },
|
|
$$scope: { ctx }
|
|
};
|
|
for (let i = 0; i < icon_spread_levels.length; i += 1) {
|
|
icon_props = assign(icon_props, icon_spread_levels[i]);
|
|
}
|
|
icon = new Icon_default({ props: icon_props });
|
|
return {
|
|
c() {
|
|
create_component(icon.$$.fragment);
|
|
},
|
|
m(target, anchor) {
|
|
mount_component(icon, target, anchor);
|
|
current = true;
|
|
},
|
|
p(ctx2, [dirty]) {
|
|
const icon_changes = dirty & /*$$props, iconNode*/
|
|
3 ? get_spread_update(icon_spread_levels, [
|
|
icon_spread_levels[0],
|
|
dirty & /*$$props*/
|
|
2 && get_spread_object(
|
|
/*$$props*/
|
|
ctx2[1]
|
|
),
|
|
dirty & /*iconNode*/
|
|
1 && { iconNode: (
|
|
/*iconNode*/
|
|
ctx2[0]
|
|
) }
|
|
]) : {};
|
|
if (dirty & /*$$scope*/
|
|
8) {
|
|
icon_changes.$$scope = { dirty, ctx: ctx2 };
|
|
}
|
|
icon.$set(icon_changes);
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(icon.$$.fragment, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(icon.$$.fragment, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
destroy_component(icon, detaching);
|
|
}
|
|
};
|
|
}
|
|
function instance42($$self, $$props, $$invalidate) {
|
|
let { $$slots: slots = {}, $$scope } = $$props;
|
|
const iconNode = [
|
|
["path", { "d": "M3 6h18" }],
|
|
[
|
|
"path",
|
|
{
|
|
"d": "M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6"
|
|
}
|
|
],
|
|
[
|
|
"path",
|
|
{
|
|
"d": "M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2"
|
|
}
|
|
]
|
|
];
|
|
$$self.$$set = ($$new_props) => {
|
|
$$invalidate(1, $$props = assign(assign({}, $$props), exclude_internal_props($$new_props)));
|
|
if ("$$scope" in $$new_props)
|
|
$$invalidate(3, $$scope = $$new_props.$$scope);
|
|
};
|
|
$$props = exclude_internal_props($$props);
|
|
return [iconNode, $$props, slots, $$scope];
|
|
}
|
|
var Trash = class extends SvelteComponent {
|
|
constructor(options) {
|
|
super();
|
|
init(this, options, instance42, create_fragment42, safe_not_equal, {});
|
|
}
|
|
};
|
|
var trash_default = Trash;
|
|
|
|
// node_modules/lucide-svelte/dist/icons/undo-2.svelte
|
|
function create_default_slot42(ctx) {
|
|
let current;
|
|
const default_slot_template = (
|
|
/*#slots*/
|
|
ctx[2].default
|
|
);
|
|
const default_slot = create_slot(
|
|
default_slot_template,
|
|
ctx,
|
|
/*$$scope*/
|
|
ctx[3],
|
|
null
|
|
);
|
|
return {
|
|
c() {
|
|
if (default_slot)
|
|
default_slot.c();
|
|
},
|
|
m(target, anchor) {
|
|
if (default_slot) {
|
|
default_slot.m(target, anchor);
|
|
}
|
|
current = true;
|
|
},
|
|
p(ctx2, dirty) {
|
|
if (default_slot) {
|
|
if (default_slot.p && (!current || dirty & /*$$scope*/
|
|
8)) {
|
|
update_slot_base(
|
|
default_slot,
|
|
default_slot_template,
|
|
ctx2,
|
|
/*$$scope*/
|
|
ctx2[3],
|
|
!current ? get_all_dirty_from_scope(
|
|
/*$$scope*/
|
|
ctx2[3]
|
|
) : get_slot_changes(
|
|
default_slot_template,
|
|
/*$$scope*/
|
|
ctx2[3],
|
|
dirty,
|
|
null
|
|
),
|
|
null
|
|
);
|
|
}
|
|
}
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(default_slot, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(default_slot, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
if (default_slot)
|
|
default_slot.d(detaching);
|
|
}
|
|
};
|
|
}
|
|
function create_fragment43(ctx) {
|
|
let icon;
|
|
let current;
|
|
const icon_spread_levels = [
|
|
{ name: "undo-2" },
|
|
/*$$props*/
|
|
ctx[1],
|
|
{ iconNode: (
|
|
/*iconNode*/
|
|
ctx[0]
|
|
) }
|
|
];
|
|
let icon_props = {
|
|
$$slots: { default: [create_default_slot42] },
|
|
$$scope: { ctx }
|
|
};
|
|
for (let i = 0; i < icon_spread_levels.length; i += 1) {
|
|
icon_props = assign(icon_props, icon_spread_levels[i]);
|
|
}
|
|
icon = new Icon_default({ props: icon_props });
|
|
return {
|
|
c() {
|
|
create_component(icon.$$.fragment);
|
|
},
|
|
m(target, anchor) {
|
|
mount_component(icon, target, anchor);
|
|
current = true;
|
|
},
|
|
p(ctx2, [dirty]) {
|
|
const icon_changes = dirty & /*$$props, iconNode*/
|
|
3 ? get_spread_update(icon_spread_levels, [
|
|
icon_spread_levels[0],
|
|
dirty & /*$$props*/
|
|
2 && get_spread_object(
|
|
/*$$props*/
|
|
ctx2[1]
|
|
),
|
|
dirty & /*iconNode*/
|
|
1 && { iconNode: (
|
|
/*iconNode*/
|
|
ctx2[0]
|
|
) }
|
|
]) : {};
|
|
if (dirty & /*$$scope*/
|
|
8) {
|
|
icon_changes.$$scope = { dirty, ctx: ctx2 };
|
|
}
|
|
icon.$set(icon_changes);
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(icon.$$.fragment, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(icon.$$.fragment, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
destroy_component(icon, detaching);
|
|
}
|
|
};
|
|
}
|
|
function instance43($$self, $$props, $$invalidate) {
|
|
let { $$slots: slots = {}, $$scope } = $$props;
|
|
const iconNode = [
|
|
["path", { "d": "M9 14 4 9l5-5" }],
|
|
[
|
|
"path",
|
|
{
|
|
"d": "M4 9h10.5a5.5 5.5 0 0 1 5.5 5.5v0a5.5 5.5 0 0 1-5.5 5.5H11"
|
|
}
|
|
]
|
|
];
|
|
$$self.$$set = ($$new_props) => {
|
|
$$invalidate(1, $$props = assign(assign({}, $$props), exclude_internal_props($$new_props)));
|
|
if ("$$scope" in $$new_props)
|
|
$$invalidate(3, $$scope = $$new_props.$$scope);
|
|
};
|
|
$$props = exclude_internal_props($$props);
|
|
return [iconNode, $$props, slots, $$scope];
|
|
}
|
|
var Undo_2 = class extends SvelteComponent {
|
|
constructor(options) {
|
|
super();
|
|
init(this, options, instance43, create_fragment43, safe_not_equal, {});
|
|
}
|
|
};
|
|
var undo_2_default = Undo_2;
|
|
|
|
// node_modules/lucide-svelte/dist/icons/x.svelte
|
|
function create_default_slot43(ctx) {
|
|
let current;
|
|
const default_slot_template = (
|
|
/*#slots*/
|
|
ctx[2].default
|
|
);
|
|
const default_slot = create_slot(
|
|
default_slot_template,
|
|
ctx,
|
|
/*$$scope*/
|
|
ctx[3],
|
|
null
|
|
);
|
|
return {
|
|
c() {
|
|
if (default_slot)
|
|
default_slot.c();
|
|
},
|
|
m(target, anchor) {
|
|
if (default_slot) {
|
|
default_slot.m(target, anchor);
|
|
}
|
|
current = true;
|
|
},
|
|
p(ctx2, dirty) {
|
|
if (default_slot) {
|
|
if (default_slot.p && (!current || dirty & /*$$scope*/
|
|
8)) {
|
|
update_slot_base(
|
|
default_slot,
|
|
default_slot_template,
|
|
ctx2,
|
|
/*$$scope*/
|
|
ctx2[3],
|
|
!current ? get_all_dirty_from_scope(
|
|
/*$$scope*/
|
|
ctx2[3]
|
|
) : get_slot_changes(
|
|
default_slot_template,
|
|
/*$$scope*/
|
|
ctx2[3],
|
|
dirty,
|
|
null
|
|
),
|
|
null
|
|
);
|
|
}
|
|
}
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(default_slot, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(default_slot, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
if (default_slot)
|
|
default_slot.d(detaching);
|
|
}
|
|
};
|
|
}
|
|
function create_fragment44(ctx) {
|
|
let icon;
|
|
let current;
|
|
const icon_spread_levels = [
|
|
{ name: "x" },
|
|
/*$$props*/
|
|
ctx[1],
|
|
{ iconNode: (
|
|
/*iconNode*/
|
|
ctx[0]
|
|
) }
|
|
];
|
|
let icon_props = {
|
|
$$slots: { default: [create_default_slot43] },
|
|
$$scope: { ctx }
|
|
};
|
|
for (let i = 0; i < icon_spread_levels.length; i += 1) {
|
|
icon_props = assign(icon_props, icon_spread_levels[i]);
|
|
}
|
|
icon = new Icon_default({ props: icon_props });
|
|
return {
|
|
c() {
|
|
create_component(icon.$$.fragment);
|
|
},
|
|
m(target, anchor) {
|
|
mount_component(icon, target, anchor);
|
|
current = true;
|
|
},
|
|
p(ctx2, [dirty]) {
|
|
const icon_changes = dirty & /*$$props, iconNode*/
|
|
3 ? get_spread_update(icon_spread_levels, [
|
|
icon_spread_levels[0],
|
|
dirty & /*$$props*/
|
|
2 && get_spread_object(
|
|
/*$$props*/
|
|
ctx2[1]
|
|
),
|
|
dirty & /*iconNode*/
|
|
1 && { iconNode: (
|
|
/*iconNode*/
|
|
ctx2[0]
|
|
) }
|
|
]) : {};
|
|
if (dirty & /*$$scope*/
|
|
8) {
|
|
icon_changes.$$scope = { dirty, ctx: ctx2 };
|
|
}
|
|
icon.$set(icon_changes);
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(icon.$$.fragment, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(icon.$$.fragment, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
destroy_component(icon, detaching);
|
|
}
|
|
};
|
|
}
|
|
function instance44($$self, $$props, $$invalidate) {
|
|
let { $$slots: slots = {}, $$scope } = $$props;
|
|
const iconNode = [["path", { "d": "M18 6 6 18" }], ["path", { "d": "m6 6 12 12" }]];
|
|
$$self.$$set = ($$new_props) => {
|
|
$$invalidate(1, $$props = assign(assign({}, $$props), exclude_internal_props($$new_props)));
|
|
if ("$$scope" in $$new_props)
|
|
$$invalidate(3, $$scope = $$new_props.$$scope);
|
|
};
|
|
$$props = exclude_internal_props($$props);
|
|
return [iconNode, $$props, slots, $$scope];
|
|
}
|
|
var X = class extends SvelteComponent {
|
|
constructor(options) {
|
|
super();
|
|
init(this, options, instance44, create_fragment44, safe_not_equal, {});
|
|
}
|
|
};
|
|
var x_default = X;
|
|
|
|
// src/view/components/container/context.ts
|
|
var getPlugin = () => {
|
|
return getContext("plugin");
|
|
};
|
|
var getView = () => {
|
|
return getContext("view");
|
|
};
|
|
|
|
// src/lib/store/derived.ts
|
|
var derived = (source, mapper) => {
|
|
const subscribers = /* @__PURE__ */ new Set();
|
|
let derivedValue;
|
|
let unsubFromSource = null;
|
|
return {
|
|
subscribe: (run2) => {
|
|
subscribers.add(run2);
|
|
if (!unsubFromSource) {
|
|
unsubFromSource = source.subscribe(
|
|
(value, action, initialRun) => {
|
|
if (action || initialRun) {
|
|
const newValue = mapper(value, action);
|
|
if (newValue !== derivedValue) {
|
|
derivedValue = newValue;
|
|
for (const sub of subscribers) {
|
|
sub(derivedValue, action, initialRun);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
);
|
|
}
|
|
return () => {
|
|
subscribers.delete(run2);
|
|
if (unsubFromSource && subscribers.size === 0) {
|
|
unsubFromSource();
|
|
unsubFromSource = null;
|
|
}
|
|
};
|
|
}
|
|
};
|
|
};
|
|
|
|
// src/stores/document/derived/history-store.ts
|
|
var historyStore = (view) => {
|
|
return derived(view.documentStore, (state2) => {
|
|
return state2.history;
|
|
});
|
|
};
|
|
|
|
// src/view/components/container/controls-bar/controls-container.svelte
|
|
var import_obsidian3 = require("obsidian");
|
|
|
|
// node_modules/svelte/src/runtime/store/index.js
|
|
var subscriber_queue = [];
|
|
function readable(value, start) {
|
|
return {
|
|
subscribe: writable(value, start).subscribe
|
|
};
|
|
}
|
|
function writable(value, start = noop) {
|
|
let stop;
|
|
const subscribers = /* @__PURE__ */ new Set();
|
|
function set(new_value) {
|
|
if (safe_not_equal(value, new_value)) {
|
|
value = new_value;
|
|
if (stop) {
|
|
const run_queue = !subscriber_queue.length;
|
|
for (const subscriber of subscribers) {
|
|
subscriber[1]();
|
|
subscriber_queue.push(subscriber, value);
|
|
}
|
|
if (run_queue) {
|
|
for (let i = 0; i < subscriber_queue.length; i += 2) {
|
|
subscriber_queue[i][0](subscriber_queue[i + 1]);
|
|
}
|
|
subscriber_queue.length = 0;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
function update2(fn) {
|
|
set(fn(value));
|
|
}
|
|
function subscribe2(run2, invalidate = noop) {
|
|
const subscriber = [run2, invalidate];
|
|
subscribers.add(subscriber);
|
|
if (subscribers.size === 1) {
|
|
stop = start(set, update2) || noop;
|
|
}
|
|
run2(value);
|
|
return () => {
|
|
subscribers.delete(subscriber);
|
|
if (subscribers.size === 0 && stop) {
|
|
stop();
|
|
stop = null;
|
|
}
|
|
};
|
|
}
|
|
return { set, update: update2, subscribe: subscribe2 };
|
|
}
|
|
function derived2(stores, fn, initial_value) {
|
|
const single = !Array.isArray(stores);
|
|
const stores_array = single ? [stores] : stores;
|
|
if (!stores_array.every(Boolean)) {
|
|
throw new Error("derived() expects stores as input, got a falsy value");
|
|
}
|
|
const auto = fn.length < 2;
|
|
return readable(initial_value, (set, update2) => {
|
|
let started = false;
|
|
const values = [];
|
|
let pending = 0;
|
|
let cleanup = noop;
|
|
const sync = () => {
|
|
if (pending) {
|
|
return;
|
|
}
|
|
cleanup();
|
|
const result = fn(single ? values[0] : values, set, update2);
|
|
if (auto) {
|
|
set(result);
|
|
} else {
|
|
cleanup = is_function(result) ? result : noop;
|
|
}
|
|
};
|
|
const unsubscribers = stores_array.map(
|
|
(store, i) => subscribe(
|
|
store,
|
|
(value) => {
|
|
values[i] = value;
|
|
pending &= ~(1 << i);
|
|
if (started) {
|
|
sync();
|
|
}
|
|
},
|
|
() => {
|
|
pending |= 1 << i;
|
|
}
|
|
)
|
|
);
|
|
started = true;
|
|
sync();
|
|
return function stop() {
|
|
run_all(unsubscribers);
|
|
cleanup();
|
|
started = false;
|
|
};
|
|
});
|
|
}
|
|
|
|
// src/stores/view/derived/ui-controls-store.ts
|
|
var uiControlsStore = (view) => derived(view.viewStore, (state2) => state2.ui.controls);
|
|
|
|
// src/view/components/container/shared/button.svelte
|
|
function create_fragment45(ctx) {
|
|
let button;
|
|
let button_class_value;
|
|
let current;
|
|
let mounted;
|
|
let dispose;
|
|
const default_slot_template = (
|
|
/*#slots*/
|
|
ctx[6].default
|
|
);
|
|
const default_slot = create_slot(
|
|
default_slot_template,
|
|
ctx,
|
|
/*$$scope*/
|
|
ctx[5],
|
|
null
|
|
);
|
|
return {
|
|
c() {
|
|
button = element("button");
|
|
if (default_slot)
|
|
default_slot.c();
|
|
attr(
|
|
button,
|
|
"aria-label",
|
|
/*label*/
|
|
ctx[0]
|
|
);
|
|
attr(button, "class", button_class_value = "lineage-view-button " + /*classes*/
|
|
ctx[3]);
|
|
attr(
|
|
button,
|
|
"data-active",
|
|
/*active*/
|
|
ctx[4]
|
|
);
|
|
attr(
|
|
button,
|
|
"data-tooltip-position",
|
|
/*tooltipPosition*/
|
|
ctx[1]
|
|
);
|
|
button.disabled = /*disabled*/
|
|
ctx[2];
|
|
},
|
|
m(target, anchor) {
|
|
insert(target, button, anchor);
|
|
if (default_slot) {
|
|
default_slot.m(button, null);
|
|
}
|
|
current = true;
|
|
if (!mounted) {
|
|
dispose = listen(
|
|
button,
|
|
"click",
|
|
/*click_handler*/
|
|
ctx[7]
|
|
);
|
|
mounted = true;
|
|
}
|
|
},
|
|
p(ctx2, [dirty]) {
|
|
if (default_slot) {
|
|
if (default_slot.p && (!current || dirty & /*$$scope*/
|
|
32)) {
|
|
update_slot_base(
|
|
default_slot,
|
|
default_slot_template,
|
|
ctx2,
|
|
/*$$scope*/
|
|
ctx2[5],
|
|
!current ? get_all_dirty_from_scope(
|
|
/*$$scope*/
|
|
ctx2[5]
|
|
) : get_slot_changes(
|
|
default_slot_template,
|
|
/*$$scope*/
|
|
ctx2[5],
|
|
dirty,
|
|
null
|
|
),
|
|
null
|
|
);
|
|
}
|
|
}
|
|
if (!current || dirty & /*label*/
|
|
1) {
|
|
attr(
|
|
button,
|
|
"aria-label",
|
|
/*label*/
|
|
ctx2[0]
|
|
);
|
|
}
|
|
if (!current || dirty & /*classes*/
|
|
8 && button_class_value !== (button_class_value = "lineage-view-button " + /*classes*/
|
|
ctx2[3])) {
|
|
attr(button, "class", button_class_value);
|
|
}
|
|
if (!current || dirty & /*active*/
|
|
16) {
|
|
attr(
|
|
button,
|
|
"data-active",
|
|
/*active*/
|
|
ctx2[4]
|
|
);
|
|
}
|
|
if (!current || dirty & /*tooltipPosition*/
|
|
2) {
|
|
attr(
|
|
button,
|
|
"data-tooltip-position",
|
|
/*tooltipPosition*/
|
|
ctx2[1]
|
|
);
|
|
}
|
|
if (!current || dirty & /*disabled*/
|
|
4) {
|
|
button.disabled = /*disabled*/
|
|
ctx2[2];
|
|
}
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(default_slot, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(default_slot, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
if (detaching) {
|
|
detach(button);
|
|
}
|
|
if (default_slot)
|
|
default_slot.d(detaching);
|
|
mounted = false;
|
|
dispose();
|
|
}
|
|
};
|
|
}
|
|
function instance45($$self, $$props, $$invalidate) {
|
|
let { $$slots: slots = {}, $$scope } = $$props;
|
|
let { label } = $$props;
|
|
let { tooltipPosition } = $$props;
|
|
let { disabled = false } = $$props;
|
|
let { classes = "" } = $$props;
|
|
let { active = false } = $$props;
|
|
function click_handler(event) {
|
|
bubble.call(this, $$self, event);
|
|
}
|
|
$$self.$$set = ($$props2) => {
|
|
if ("label" in $$props2)
|
|
$$invalidate(0, label = $$props2.label);
|
|
if ("tooltipPosition" in $$props2)
|
|
$$invalidate(1, tooltipPosition = $$props2.tooltipPosition);
|
|
if ("disabled" in $$props2)
|
|
$$invalidate(2, disabled = $$props2.disabled);
|
|
if ("classes" in $$props2)
|
|
$$invalidate(3, classes = $$props2.classes);
|
|
if ("active" in $$props2)
|
|
$$invalidate(4, active = $$props2.active);
|
|
if ("$$scope" in $$props2)
|
|
$$invalidate(5, $$scope = $$props2.$$scope);
|
|
};
|
|
return [
|
|
label,
|
|
tooltipPosition,
|
|
disabled,
|
|
classes,
|
|
active,
|
|
$$scope,
|
|
slots,
|
|
click_handler
|
|
];
|
|
}
|
|
var Button = class extends SvelteComponent {
|
|
constructor(options) {
|
|
super();
|
|
init(this, options, instance45, create_fragment45, safe_not_equal, {
|
|
label: 0,
|
|
tooltipPosition: 1,
|
|
disabled: 2,
|
|
classes: 3,
|
|
active: 4
|
|
});
|
|
}
|
|
};
|
|
var button_default = Button;
|
|
|
|
// src/stores/settings/derived/scrolling-store.ts
|
|
var ScrollSettingsStore = (view) => derived(view.plugin.settings, (state2) => state2.view.scrolling);
|
|
var showMinimapStore = (view) => derived(view.plugin.settings, (state2) => state2.view.showMinimap);
|
|
|
|
// src/helpers/load-custom-icons.ts
|
|
var import_obsidian = require("obsidian");
|
|
var svgWrapper = (innerSVG, mode = "stroke") => `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" class="svg-icon" ${mode === "fill" ? 'stroke="transparent" fill="currentColor"' : 'stroke="currentColor" fill="transparent"'}> ${innerSVG.trim().replace(/\n/g, "")}</svg>`;
|
|
var cards = {
|
|
name: "lineage-cards",
|
|
svg: `
|
|
<path
|
|
d="m 13.115181,16.644424 h 6.605231 v 5.578301 H 13.115181 Z M 4.3082043,9.2066877 H 10.913436 V 14.784989 H 4.3082043 Z m 8.8069767,0 h 6.605231 v 5.5783013 h -6.605231 z m 0,-7.4377346 h 6.605231 V 7.347254 h -6.605231 z"
|
|
/>
|
|
`,
|
|
mode: "fill"
|
|
};
|
|
var split = {
|
|
name: "lineage-split",
|
|
svg: `<path d="M16 3h5v5"/><path d="M8 3H3v5"/><path d="M12 22v-8.3a4 4 0 0 0-1.172-2.872L3 3"/><path d="m15 9 6-6"/>`,
|
|
mode: "stroke"
|
|
};
|
|
var alignH = {
|
|
name: "lineage-align-horizontal",
|
|
svg: `<g>
|
|
<rect width="20" height="12" x="2" y="6" rx="2"/>
|
|
<line x1="12" y1="0" x2="12" y2="24" stroke-dasharray="4 3" />
|
|
</g> `,
|
|
mode: "stroke"
|
|
};
|
|
var alignV = {
|
|
name: "lineage-align-vertical",
|
|
svg: `<g>
|
|
<rect width="18" height="12" x="3" y="6" rx="2"/>
|
|
|
|
<path
|
|
<path
|
|
style="stroke-width:2;stroke-dasharray:8, 2;stroke-dashoffset:0"
|
|
d="m -14.007348,12.000818 c 15.3564398,3.95e-4 30.79516,0.16535 46.069016,5.77e-4"
|
|
id="path5"
|
|
sodipodi:nodetypes="cc" />
|
|
|
|
</g> `,
|
|
mode: "stroke"
|
|
};
|
|
var gap = {
|
|
name: "cards-gap",
|
|
svg: `
|
|
<rect width="20" height="12" x="-11.600009" y="6" rx="2" />
|
|
<rect
|
|
width="20"
|
|
height="12"
|
|
x="16.534304"
|
|
y="5.9783392"
|
|
rx="2"
|
|
/>
|
|
`,
|
|
mode: "stroke"
|
|
};
|
|
var outline = {
|
|
name: "outline",
|
|
svg: `<path d="M 7.563873,12 H 21.24698" />
|
|
<path d="M 7.56116,18 H 21.159058" />
|
|
<path d="M3 6h18" /> `,
|
|
mode: "stroke"
|
|
};
|
|
var cursorOff = {
|
|
name: "cursor-off",
|
|
svg: `<path d="m 8.0036101,3.8555957 h 1 a 3,3 0 0 1 2.9999999,3 3,3 0 0 1 3,-3 h 1" />
|
|
<path d="m 16.00361,19.855596 h -1 a 3,3 0 0 1 -3,-3 3,3 0 0 1 -2.9999999,3 h -1" />
|
|
<path d="M 12.00361,6.8555957 V 16.855596" />
|
|
<path d="M 3.0758124,4.7436822 20.548737,18.693141" />`,
|
|
mode: "stroke"
|
|
};
|
|
var cursor = {
|
|
name: "cursor",
|
|
svg: `<path d="m 8.0036101,3.8555957 h 1 a 3,3 0 0 1 2.9999999,3 3,3 0 0 1 3,-3 h 1" />
|
|
<path d="m 16.00361,19.855596 h -1 a 3,3 0 0 1 -3,-3 3,3 0 0 1 -2.9999999,3 h -1" />
|
|
<path d="M 12.00361,6.8555957 V 16.855596" />`,
|
|
mode: "stroke"
|
|
};
|
|
var customIcons = {
|
|
cards,
|
|
split,
|
|
alignH,
|
|
alignV,
|
|
gap,
|
|
outline,
|
|
cursor,
|
|
cursorOff
|
|
};
|
|
var loadCustomIcons = () => {
|
|
for (const icon of Object.values(customIcons)) {
|
|
icon.svg = svgWrapper(icon.svg, icon.mode);
|
|
(0, import_obsidian.addIcon)(icon.name, icon.svg);
|
|
}
|
|
};
|
|
|
|
// src/stores/settings/derived/view-settings-store.ts
|
|
var ShowLeftSidebarStore = (view) => derived(view.plugin.settings, (state2) => state2.view.showLeftSidebar);
|
|
var LeftSidebarActiveTabStore = (view) => derived(view.plugin.settings, (state2) => state2.view.leftSidebarActiveTab);
|
|
var ApplyGapBetweenCardsStore = (view) => derived(view.plugin.settings, (state2) => state2.view.applyGapBetweenCards);
|
|
var OutlineModeStore = (view) => derived(view.plugin.settings, (state2) => state2.view.outlineMode);
|
|
var MaintainEditMode = (view) => derived(view.plugin.settings, (state2) => state2.view.maintainEditMode);
|
|
var AlwaysShowCardButtons = (view) => derived(view.plugin.settings, (state2) => state2.view.alwaysShowCardButtons);
|
|
|
|
// node_modules/tslib/tslib.es6.mjs
|
|
function __awaiter(thisArg, _arguments, P, generator) {
|
|
function adopt(value) {
|
|
return value instanceof P ? value : new P(function(resolve) {
|
|
resolve(value);
|
|
});
|
|
}
|
|
return new (P || (P = Promise))(function(resolve, reject) {
|
|
function fulfilled(value) {
|
|
try {
|
|
step(generator.next(value));
|
|
} catch (e) {
|
|
reject(e);
|
|
}
|
|
}
|
|
function rejected(value) {
|
|
try {
|
|
step(generator["throw"](value));
|
|
} catch (e) {
|
|
reject(e);
|
|
}
|
|
}
|
|
function step(result) {
|
|
result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
|
|
}
|
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
});
|
|
}
|
|
|
|
// src/stores/view/derived/zoom-level-store.ts
|
|
var zoomLevelStore = (view) => derived(view.plugin.settings, (state2) => state2.view.zoomLevel);
|
|
|
|
// src/stores/settings/reducers/change-zoom-level.ts
|
|
var formatNumber = (num) => parseFloat(num.toFixed(3));
|
|
var zoomStep = 0.1;
|
|
var maxZoomLevel = 2;
|
|
var minZoomLevel = 0.05;
|
|
var changeZoomLevel = (state2, payload) => {
|
|
if ("value" in payload) {
|
|
state2.view.zoomLevel = payload.value;
|
|
} else {
|
|
state2.view.zoomLevel = payload.direction === "in" ? Math.min(state2.view.zoomLevel + zoomStep, maxZoomLevel) : Math.max(state2.view.zoomLevel - zoomStep, minZoomLevel);
|
|
}
|
|
state2.view.zoomLevel = formatNumber(state2.view.zoomLevel);
|
|
};
|
|
|
|
// src/view/components/container/controls-bar/components/helpers/create-zoom-menu.ts
|
|
var import_obsidian2 = require("obsidian");
|
|
|
|
// node_modules/tiny-invariant/dist/esm/tiny-invariant.js
|
|
var isProduction = false;
|
|
var prefix = "Invariant failed";
|
|
function invariant(condition, message) {
|
|
if (condition) {
|
|
return;
|
|
}
|
|
if (isProduction) {
|
|
throw new Error(prefix);
|
|
}
|
|
var provided = typeof message === "function" ? message() : message;
|
|
var value = provided ? "".concat(prefix, ": ").concat(provided) : prefix;
|
|
throw new Error(value);
|
|
}
|
|
|
|
// src/lib/align-element/helpers/get-combined-client-rect.ts
|
|
var getCombinedBoundingClientRect = (elements) => {
|
|
if (elements.length === 0) {
|
|
return new DOMRect(0, 0, 0, 0);
|
|
}
|
|
let combinedRect = elements[0].getBoundingClientRect();
|
|
for (let i = 1; i < elements.length; i++) {
|
|
const rect = elements[i].getBoundingClientRect();
|
|
combinedRect = combineRects(combinedRect, rect);
|
|
}
|
|
return combinedRect;
|
|
};
|
|
var combineRects = (rect1, rect2) => {
|
|
const left = Math.min(rect1.left, rect2.left);
|
|
const top = Math.min(rect1.top, rect2.top);
|
|
const right = Math.max(rect1.right, rect2.right);
|
|
const bottom = Math.max(rect1.bottom, rect2.bottom);
|
|
const width = right - left;
|
|
const height = bottom - top;
|
|
return new DOMRect(left, top, width, height);
|
|
};
|
|
|
|
// src/view/components/container/controls-bar/components/helpers/fit-document-height-into-view.ts
|
|
var fitDocumentHeightIntoView = async (view) => {
|
|
invariant(view.container);
|
|
const initialZoomLevel = get_store_value(zoomLevelStore(view));
|
|
view.plugin.settings.dispatch({
|
|
type: "UI/CHANGE_ZOOM_LEVEL",
|
|
payload: { value: 1 }
|
|
});
|
|
const columns = Array.from(
|
|
view.containerEl.querySelectorAll(".column")
|
|
);
|
|
let result = 1;
|
|
if (columns.length) {
|
|
const groupHeights = columns.map((c) => {
|
|
return getCombinedBoundingClientRect(
|
|
Array.from(c.querySelectorAll(".group"))
|
|
).height;
|
|
}).sort((a, b) => a - b);
|
|
const height = groupHeights[groupHeights.length - 1];
|
|
const width = getCombinedBoundingClientRect(columns).width;
|
|
const heightScale = view.container.getBoundingClientRect().height / (height + 100);
|
|
const widthScale = view.container.getBoundingClientRect().width / (width + 100);
|
|
result = Math.min(heightScale, widthScale);
|
|
}
|
|
view.plugin.settings.dispatch({
|
|
type: "UI/CHANGE_ZOOM_LEVEL",
|
|
payload: { value: initialZoomLevel }
|
|
});
|
|
return result;
|
|
};
|
|
|
|
// src/view/components/container/controls-bar/components/helpers/fit-branch-into-view.ts
|
|
var fitBranchIntoView = async (view) => {
|
|
invariant(view.container);
|
|
const initialZoomLevel = get_store_value(zoomLevelStore(view));
|
|
view.plugin.settings.dispatch({
|
|
type: "UI/CHANGE_ZOOM_LEVEL",
|
|
payload: { value: 1 }
|
|
});
|
|
let result = 1;
|
|
const parents = Array.from(
|
|
view.containerEl.querySelectorAll(".active-parent")
|
|
);
|
|
const activeNode = view.containerEl.querySelector(
|
|
".active-node"
|
|
);
|
|
const children2 = Array.from(
|
|
view.containerEl.querySelectorAll(".active-child")
|
|
);
|
|
const siblings = Array.from(
|
|
view.containerEl.querySelectorAll(".active-sibling")
|
|
);
|
|
const combinedRect = getCombinedBoundingClientRect([
|
|
...parents,
|
|
activeNode,
|
|
...siblings,
|
|
...children2
|
|
]);
|
|
const heightScale = view.container.getBoundingClientRect().height / (combinedRect.height + 100);
|
|
const widthScale = view.container.getBoundingClientRect().width / (combinedRect.width + 100);
|
|
result = Math.min(heightScale, widthScale);
|
|
view.plugin.settings.dispatch({
|
|
type: "UI/CHANGE_ZOOM_LEVEL",
|
|
payload: { value: initialZoomLevel }
|
|
});
|
|
return result;
|
|
};
|
|
|
|
// src/view/components/container/controls-bar/components/helpers/create-zoom-menu.ts
|
|
var staticZoomOptions = [
|
|
{ label: "5%", scale: 0.05 },
|
|
{ label: "10%", scale: 0.1 },
|
|
{ label: "20%", scale: 0.2 },
|
|
{ label: "30%", scale: 0.3 },
|
|
{ label: "40%", scale: 0.4 },
|
|
{ label: "50%", scale: 0.5 },
|
|
{ label: "60%", scale: 0.6 },
|
|
{ label: "70%", scale: 0.7 },
|
|
{ label: "80%", scale: 0.8 },
|
|
{ label: "90%", scale: 0.9 },
|
|
{ label: "100%", scale: 1 },
|
|
{ label: "125%", scale: 1.25 },
|
|
{ label: "150%", scale: 1.5 },
|
|
{ label: "175%", scale: 1.75 },
|
|
{ label: "200%", scale: 2 }
|
|
];
|
|
var dynamicZoomOptions = [
|
|
{
|
|
label: "Fit document height into view",
|
|
scale: fitDocumentHeightIntoView
|
|
},
|
|
{
|
|
label: "Fit active branch into view",
|
|
scale: fitBranchIntoView
|
|
}
|
|
];
|
|
var createZoomMenu = (props) => {
|
|
let lastClickedZoom = get_store_value(zoomLevelStore(props.view));
|
|
const zoomGroups = [dynamicZoomOptions, staticZoomOptions];
|
|
const apply = async (zoom, isClick) => {
|
|
const newValue = typeof zoom.scale === "number" ? zoom.scale : await zoom.scale(props.view);
|
|
if (isClick) {
|
|
lastClickedZoom = newValue;
|
|
} else {
|
|
hoverZoom = newValue;
|
|
}
|
|
props.view.plugin.settings.dispatch({
|
|
type: "UI/CHANGE_ZOOM_LEVEL",
|
|
payload: {
|
|
value: newValue
|
|
}
|
|
});
|
|
};
|
|
const menu = new import_obsidian2.Menu();
|
|
let hoverZoom = lastClickedZoom;
|
|
for (const group of zoomGroups) {
|
|
const groupIndex = zoomGroups.indexOf(group);
|
|
if (groupIndex > 0)
|
|
menu.addSeparator();
|
|
for (const zoom of group) {
|
|
menu.addItem((item) => {
|
|
item.setTitle(zoom.label).setChecked(zoom.scale === lastClickedZoom).onClick(() => {
|
|
apply(zoom, true);
|
|
menu.hide();
|
|
createZoomMenu(props);
|
|
});
|
|
const dom = item.dom;
|
|
if (dom) {
|
|
dom.addEventListener("mouseenter", () => {
|
|
apply(zoom, false);
|
|
});
|
|
}
|
|
});
|
|
}
|
|
}
|
|
const menuDom = menu.dom;
|
|
if (menuDom) {
|
|
menuDom.addEventListener("mouseleave", () => {
|
|
if (hoverZoom !== lastClickedZoom) {
|
|
props.view.plugin.settings.dispatch({
|
|
type: "UI/CHANGE_ZOOM_LEVEL",
|
|
payload: { value: lastClickedZoom }
|
|
});
|
|
}
|
|
});
|
|
menuDom.style.width = "220px";
|
|
}
|
|
if (menuDom && !props.state.menuHeight) {
|
|
menu.showAtPosition({ x: props.event.pageX, y: props.event.pageY });
|
|
const rect = menuDom.getBoundingClientRect();
|
|
props.state.menuHeight = rect.height;
|
|
props.state.menuWidth = rect.width;
|
|
menu.close();
|
|
}
|
|
const buttonRect = props.event.target.getBoundingClientRect();
|
|
menu.showAtPosition({
|
|
x: get_store_value(showMinimapStore(props.view)) ? buttonRect.left - props.state.menuWidth - 10 : buttonRect.left - 10,
|
|
y: buttonRect.top + buttonRect.height / 2 - props.state.menuHeight / 2
|
|
});
|
|
menu.onHide(() => {
|
|
props.state.lastMenuHideEvent_ms = Date.now();
|
|
});
|
|
};
|
|
|
|
// src/stores/view/derived/keyboard-store.ts
|
|
var KeyboardStore = (view) => derived(view.viewStore, (state2) => state2.keyboard);
|
|
|
|
// src/view/components/container/controls-bar/components/zoom-buttons.svelte
|
|
function create_default_slot_3(ctx) {
|
|
let zoomin;
|
|
let current;
|
|
zoomin = new plus_default({ props: { class: "svg-icon" } });
|
|
return {
|
|
c() {
|
|
create_component(zoomin.$$.fragment);
|
|
},
|
|
m(target, anchor) {
|
|
mount_component(zoomin, target, anchor);
|
|
current = true;
|
|
},
|
|
p: noop,
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(zoomin.$$.fragment, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(zoomin.$$.fragment, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
destroy_component(zoomin, detaching);
|
|
}
|
|
};
|
|
}
|
|
function create_else_block(ctx) {
|
|
let rotateccw;
|
|
let current;
|
|
rotateccw = new rotate_ccw_default({ props: { class: "svg-icon" } });
|
|
return {
|
|
c() {
|
|
create_component(rotateccw.$$.fragment);
|
|
},
|
|
m(target, anchor) {
|
|
mount_component(rotateccw, target, anchor);
|
|
current = true;
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(rotateccw.$$.fragment, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(rotateccw.$$.fragment, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
destroy_component(rotateccw, detaching);
|
|
}
|
|
};
|
|
}
|
|
function create_if_block(ctx) {
|
|
let rotatecw;
|
|
let current;
|
|
rotatecw = new rotate_cw_default({ props: { class: "svg-icon" } });
|
|
return {
|
|
c() {
|
|
create_component(rotatecw.$$.fragment);
|
|
},
|
|
m(target, anchor) {
|
|
mount_component(rotatecw, target, anchor);
|
|
current = true;
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(rotatecw.$$.fragment, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(rotatecw.$$.fragment, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
destroy_component(rotatecw, detaching);
|
|
}
|
|
};
|
|
}
|
|
function create_default_slot_2(ctx) {
|
|
let current_block_type_index;
|
|
let if_block;
|
|
let if_block_anchor;
|
|
let current;
|
|
const if_block_creators = [create_if_block, create_else_block];
|
|
const if_blocks = [];
|
|
function select_block_type(ctx2, dirty) {
|
|
if (
|
|
/*showUndoRestZoomButton*/
|
|
ctx2[1]
|
|
)
|
|
return 0;
|
|
return 1;
|
|
}
|
|
current_block_type_index = select_block_type(ctx, -1);
|
|
if_block = if_blocks[current_block_type_index] = if_block_creators[current_block_type_index](ctx);
|
|
return {
|
|
c() {
|
|
if_block.c();
|
|
if_block_anchor = empty();
|
|
},
|
|
m(target, anchor) {
|
|
if_blocks[current_block_type_index].m(target, anchor);
|
|
insert(target, if_block_anchor, anchor);
|
|
current = true;
|
|
},
|
|
p(ctx2, dirty) {
|
|
let previous_block_index = current_block_type_index;
|
|
current_block_type_index = select_block_type(ctx2, dirty);
|
|
if (current_block_type_index !== previous_block_index) {
|
|
group_outros();
|
|
transition_out(if_blocks[previous_block_index], 1, 1, () => {
|
|
if_blocks[previous_block_index] = null;
|
|
});
|
|
check_outros();
|
|
if_block = if_blocks[current_block_type_index];
|
|
if (!if_block) {
|
|
if_block = if_blocks[current_block_type_index] = if_block_creators[current_block_type_index](ctx2);
|
|
if_block.c();
|
|
} else {
|
|
}
|
|
transition_in(if_block, 1);
|
|
if_block.m(if_block_anchor.parentNode, if_block_anchor);
|
|
}
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(if_block);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(if_block);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
if (detaching) {
|
|
detach(if_block_anchor);
|
|
}
|
|
if_blocks[current_block_type_index].d(detaching);
|
|
}
|
|
};
|
|
}
|
|
function create_default_slot_1(ctx) {
|
|
let scansearch;
|
|
let current;
|
|
scansearch = new scan_search_default({ props: { class: "svg-icon" } });
|
|
return {
|
|
c() {
|
|
create_component(scansearch.$$.fragment);
|
|
},
|
|
m(target, anchor) {
|
|
mount_component(scansearch, target, anchor);
|
|
current = true;
|
|
},
|
|
p: noop,
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(scansearch.$$.fragment, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(scansearch.$$.fragment, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
destroy_component(scansearch, detaching);
|
|
}
|
|
};
|
|
}
|
|
function create_default_slot44(ctx) {
|
|
let zoomout;
|
|
let current;
|
|
zoomout = new minus_default({ props: { class: "svg-icon" } });
|
|
return {
|
|
c() {
|
|
create_component(zoomout.$$.fragment);
|
|
},
|
|
m(target, anchor) {
|
|
mount_component(zoomout, target, anchor);
|
|
current = true;
|
|
},
|
|
p: noop,
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(zoomout.$$.fragment, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(zoomout.$$.fragment, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
destroy_component(zoomout, detaching);
|
|
}
|
|
};
|
|
}
|
|
function create_fragment46(ctx) {
|
|
let div;
|
|
let button0;
|
|
let t0;
|
|
let button1;
|
|
let t1;
|
|
let button2;
|
|
let t2;
|
|
let button3;
|
|
let current;
|
|
button0 = new button_default({
|
|
props: {
|
|
classes: "control-item",
|
|
disabled: (
|
|
/*$zoomLevel*/
|
|
ctx[2] >= maxZoomLevel
|
|
),
|
|
label: lang.controls_zoom_in,
|
|
tooltipPosition: "left",
|
|
$$slots: { default: [create_default_slot_3] },
|
|
$$scope: { ctx }
|
|
}
|
|
});
|
|
button0.$on(
|
|
"click",
|
|
/*zoomIn*/
|
|
ctx[4]
|
|
);
|
|
button1 = new button_default({
|
|
props: {
|
|
classes: "control-item",
|
|
disabled: (
|
|
/*showUndoRestZoomButton*/
|
|
ctx[1] ? false : (
|
|
/*$zoomLevel*/
|
|
ctx[2] === 1
|
|
)
|
|
),
|
|
label: lang.controls_zoom_reset,
|
|
active: (
|
|
/*showUndoRestZoomButton*/
|
|
ctx[1] ? true : (
|
|
/*$zoomLevel*/
|
|
ctx[2] !== 1
|
|
)
|
|
),
|
|
tooltipPosition: "left",
|
|
$$slots: { default: [create_default_slot_2] },
|
|
$$scope: { ctx }
|
|
}
|
|
});
|
|
button1.$on(
|
|
"click",
|
|
/*restoreZoom*/
|
|
ctx[6]
|
|
);
|
|
button2 = new button_default({
|
|
props: {
|
|
classes: "control-item",
|
|
label: lang.controls_zoom_presets,
|
|
tooltipPosition: "left",
|
|
$$slots: { default: [create_default_slot_1] },
|
|
$$scope: { ctx }
|
|
}
|
|
});
|
|
button2.$on(
|
|
"click",
|
|
/*showZoomPopupMenu*/
|
|
ctx[8]
|
|
);
|
|
button3 = new button_default({
|
|
props: {
|
|
classes: "control-item",
|
|
disabled: (
|
|
/*$zoomLevel*/
|
|
ctx[2] <= minZoomLevel
|
|
),
|
|
label: lang.controls_zoom_out,
|
|
tooltipPosition: "left",
|
|
$$slots: { default: [create_default_slot44] },
|
|
$$scope: { ctx }
|
|
}
|
|
});
|
|
button3.$on(
|
|
"click",
|
|
/*zoomOut*/
|
|
ctx[5]
|
|
);
|
|
return {
|
|
c() {
|
|
div = element("div");
|
|
create_component(button0.$$.fragment);
|
|
t0 = space();
|
|
create_component(button1.$$.fragment);
|
|
t1 = space();
|
|
create_component(button2.$$.fragment);
|
|
t2 = space();
|
|
create_component(button3.$$.fragment);
|
|
attr(div, "class", "buttons-group buttons-group--vertical");
|
|
attr(
|
|
div,
|
|
"data-visible",
|
|
/*showControls*/
|
|
ctx[0]
|
|
);
|
|
},
|
|
m(target, anchor) {
|
|
insert(target, div, anchor);
|
|
mount_component(button0, div, null);
|
|
append(div, t0);
|
|
mount_component(button1, div, null);
|
|
append(div, t1);
|
|
mount_component(button2, div, null);
|
|
append(div, t2);
|
|
mount_component(button3, div, null);
|
|
current = true;
|
|
},
|
|
p(ctx2, [dirty]) {
|
|
const button0_changes = {};
|
|
if (dirty & /*$zoomLevel*/
|
|
4)
|
|
button0_changes.disabled = /*$zoomLevel*/
|
|
ctx2[2] >= maxZoomLevel;
|
|
if (dirty & /*$$scope*/
|
|
8192) {
|
|
button0_changes.$$scope = { dirty, ctx: ctx2 };
|
|
}
|
|
button0.$set(button0_changes);
|
|
const button1_changes = {};
|
|
if (dirty & /*showUndoRestZoomButton, $zoomLevel*/
|
|
6)
|
|
button1_changes.disabled = /*showUndoRestZoomButton*/
|
|
ctx2[1] ? false : (
|
|
/*$zoomLevel*/
|
|
ctx2[2] === 1
|
|
);
|
|
if (dirty & /*showUndoRestZoomButton, $zoomLevel*/
|
|
6)
|
|
button1_changes.active = /*showUndoRestZoomButton*/
|
|
ctx2[1] ? true : (
|
|
/*$zoomLevel*/
|
|
ctx2[2] !== 1
|
|
);
|
|
if (dirty & /*$$scope, showUndoRestZoomButton*/
|
|
8194) {
|
|
button1_changes.$$scope = { dirty, ctx: ctx2 };
|
|
}
|
|
button1.$set(button1_changes);
|
|
const button2_changes = {};
|
|
if (dirty & /*$$scope*/
|
|
8192) {
|
|
button2_changes.$$scope = { dirty, ctx: ctx2 };
|
|
}
|
|
button2.$set(button2_changes);
|
|
const button3_changes = {};
|
|
if (dirty & /*$zoomLevel*/
|
|
4)
|
|
button3_changes.disabled = /*$zoomLevel*/
|
|
ctx2[2] <= minZoomLevel;
|
|
if (dirty & /*$$scope*/
|
|
8192) {
|
|
button3_changes.$$scope = { dirty, ctx: ctx2 };
|
|
}
|
|
button3.$set(button3_changes);
|
|
if (!current || dirty & /*showControls*/
|
|
1) {
|
|
attr(
|
|
div,
|
|
"data-visible",
|
|
/*showControls*/
|
|
ctx2[0]
|
|
);
|
|
}
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(button0.$$.fragment, local);
|
|
transition_in(button1.$$.fragment, local);
|
|
transition_in(button2.$$.fragment, local);
|
|
transition_in(button3.$$.fragment, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(button0.$$.fragment, local);
|
|
transition_out(button1.$$.fragment, local);
|
|
transition_out(button2.$$.fragment, local);
|
|
transition_out(button3.$$.fragment, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
if (detaching) {
|
|
detach(div);
|
|
}
|
|
destroy_component(button0);
|
|
destroy_component(button1);
|
|
destroy_component(button2);
|
|
destroy_component(button3);
|
|
}
|
|
};
|
|
}
|
|
function instance46($$self, $$props, $$invalidate) {
|
|
let $keyboardStore;
|
|
let $zoomLevel;
|
|
let { showControls } = $$props;
|
|
const view = getView();
|
|
const keyboardStore = KeyboardStore(view);
|
|
component_subscribe($$self, keyboardStore, (value) => $$invalidate(10, $keyboardStore = value));
|
|
const zoomIn = () => {
|
|
view.plugin.settings.dispatch({
|
|
type: "UI/CHANGE_ZOOM_LEVEL",
|
|
payload: { direction: "in" }
|
|
});
|
|
};
|
|
const zoomOut = () => {
|
|
view.plugin.settings.dispatch({
|
|
type: "UI/CHANGE_ZOOM_LEVEL",
|
|
payload: { direction: "out" }
|
|
});
|
|
};
|
|
let zoomValueBeforeReset = -1;
|
|
const restoreZoom = () => {
|
|
if (showUndoRestZoomButton) {
|
|
view.plugin.settings.dispatch({
|
|
type: "UI/CHANGE_ZOOM_LEVEL",
|
|
payload: { value: zoomValueBeforeReset }
|
|
});
|
|
$$invalidate(9, zoomValueBeforeReset = -1);
|
|
} else {
|
|
$$invalidate(9, zoomValueBeforeReset = get_store_value(zoomLevelStore(view)));
|
|
view.plugin.settings.dispatch({
|
|
type: "UI/CHANGE_ZOOM_LEVEL",
|
|
payload: { value: 1 }
|
|
});
|
|
}
|
|
};
|
|
const zoomLevel = zoomLevelStore(view);
|
|
component_subscribe($$self, zoomLevel, (value) => $$invalidate(2, $zoomLevel = value));
|
|
const zoomMenuState = {
|
|
menuHeight: 0,
|
|
menuWidth: 0,
|
|
lastMenuHideEvent_ms: 0
|
|
};
|
|
const showZoomPopupMenu = (event) => __awaiter(void 0, void 0, void 0, function* () {
|
|
if (Date.now() - zoomMenuState.lastMenuHideEvent_ms < 100)
|
|
return;
|
|
createZoomMenu({ event, view, state: zoomMenuState });
|
|
});
|
|
let showUndoRestZoomButton = false;
|
|
$$self.$$set = ($$props2) => {
|
|
if ("showControls" in $$props2)
|
|
$$invalidate(0, showControls = $$props2.showControls);
|
|
};
|
|
$$self.$$.update = () => {
|
|
if ($$self.$$.dirty & /*$keyboardStore, zoomValueBeforeReset*/
|
|
1536) {
|
|
$: {
|
|
$$invalidate(1, showUndoRestZoomButton = $keyboardStore.shift && zoomValueBeforeReset !== -1);
|
|
}
|
|
}
|
|
};
|
|
return [
|
|
showControls,
|
|
showUndoRestZoomButton,
|
|
$zoomLevel,
|
|
keyboardStore,
|
|
zoomIn,
|
|
zoomOut,
|
|
restoreZoom,
|
|
zoomLevel,
|
|
showZoomPopupMenu,
|
|
zoomValueBeforeReset,
|
|
$keyboardStore
|
|
];
|
|
}
|
|
var Zoom_buttons = class extends SvelteComponent {
|
|
constructor(options) {
|
|
super();
|
|
init(this, options, instance46, create_fragment46, safe_not_equal, { showControls: 0 });
|
|
}
|
|
};
|
|
var zoom_buttons_default = Zoom_buttons;
|
|
|
|
// src/view/components/container/controls-bar/controls-container.svelte
|
|
function add_css(target) {
|
|
append_styles(target, "svelte-1316cva", ".controls-container.svelte-1316cva{right:var(--size-4-2);top:var(--size-4-2);gap:var(--size-4-2);display:flex;flex-direction:column;position:absolute;z-index:2}.controls-toggle.svelte-1316cva{display:none}.is-mobile{& .controls-toggle {\n display: block;\n };& .buttons-group[data-visible='false'] {\n display: none;\n }}");
|
|
}
|
|
function create_default_slot_11(ctx) {
|
|
let morevertical;
|
|
let current;
|
|
morevertical = new more_vertical_default({ props: { class: "svg-icon" } });
|
|
return {
|
|
c() {
|
|
create_component(morevertical.$$.fragment);
|
|
},
|
|
m(target, anchor) {
|
|
mount_component(morevertical, target, anchor);
|
|
current = true;
|
|
},
|
|
p: noop,
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(morevertical.$$.fragment, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(morevertical.$$.fragment, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
destroy_component(morevertical, detaching);
|
|
}
|
|
};
|
|
}
|
|
function create_default_slot_10(ctx) {
|
|
let panelright;
|
|
let current;
|
|
panelright = new panel_right_dashed_default({ props: { class: "svg-icon" } });
|
|
return {
|
|
c() {
|
|
create_component(panelright.$$.fragment);
|
|
},
|
|
m(target, anchor) {
|
|
mount_component(panelright, target, anchor);
|
|
current = true;
|
|
},
|
|
p: noop,
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(panelright.$$.fragment, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(panelright.$$.fragment, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
destroy_component(panelright, detaching);
|
|
}
|
|
};
|
|
}
|
|
function create_default_slot_9(ctx) {
|
|
let settings;
|
|
let current;
|
|
settings = new settings_default({ props: { class: "svg-icon" } });
|
|
return {
|
|
c() {
|
|
create_component(settings.$$.fragment);
|
|
},
|
|
m(target, anchor) {
|
|
mount_component(settings, target, anchor);
|
|
current = true;
|
|
},
|
|
p: noop,
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(settings.$$.fragment, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(settings.$$.fragment, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
destroy_component(settings, detaching);
|
|
}
|
|
};
|
|
}
|
|
function create_default_slot_8(ctx) {
|
|
let keyboard;
|
|
let current;
|
|
keyboard = new keyboard_default({ props: { class: "svg-icon" } });
|
|
return {
|
|
c() {
|
|
create_component(keyboard.$$.fragment);
|
|
},
|
|
m(target, anchor) {
|
|
mount_component(keyboard, target, anchor);
|
|
current = true;
|
|
},
|
|
p: noop,
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(keyboard.$$.fragment, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(keyboard.$$.fragment, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
destroy_component(keyboard, detaching);
|
|
}
|
|
};
|
|
}
|
|
function create_default_slot_7(ctx) {
|
|
let palette;
|
|
let current;
|
|
palette = new palette_default({ props: { class: "svg-icon" } });
|
|
return {
|
|
c() {
|
|
create_component(palette.$$.fragment);
|
|
},
|
|
m(target, anchor) {
|
|
mount_component(palette, target, anchor);
|
|
current = true;
|
|
},
|
|
p: noop,
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(palette.$$.fragment, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(palette.$$.fragment, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
destroy_component(palette, detaching);
|
|
}
|
|
};
|
|
}
|
|
function create_default_slot_6(ctx) {
|
|
let html_tag;
|
|
let raw_value = customIcons.alignH.svg + "";
|
|
let html_anchor;
|
|
return {
|
|
c() {
|
|
html_tag = new HtmlTag(false);
|
|
html_anchor = empty();
|
|
html_tag.a = html_anchor;
|
|
},
|
|
m(target, anchor) {
|
|
html_tag.m(raw_value, target, anchor);
|
|
insert(target, html_anchor, anchor);
|
|
},
|
|
p: noop,
|
|
d(detaching) {
|
|
if (detaching) {
|
|
detach(html_anchor);
|
|
html_tag.d();
|
|
}
|
|
}
|
|
};
|
|
}
|
|
function create_default_slot_5(ctx) {
|
|
let html_tag;
|
|
let raw_value = customIcons.alignV.svg + "";
|
|
let html_anchor;
|
|
return {
|
|
c() {
|
|
html_tag = new HtmlTag(false);
|
|
html_anchor = empty();
|
|
html_tag.a = html_anchor;
|
|
},
|
|
m(target, anchor) {
|
|
html_tag.m(raw_value, target, anchor);
|
|
insert(target, html_anchor, anchor);
|
|
},
|
|
p: noop,
|
|
d(detaching) {
|
|
if (detaching) {
|
|
detach(html_anchor);
|
|
html_tag.d();
|
|
}
|
|
}
|
|
};
|
|
}
|
|
function create_default_slot_4(ctx) {
|
|
let html_tag;
|
|
let raw_value = customIcons.outline.svg + "";
|
|
let html_anchor;
|
|
return {
|
|
c() {
|
|
html_tag = new HtmlTag(false);
|
|
html_anchor = empty();
|
|
html_tag.a = html_anchor;
|
|
},
|
|
m(target, anchor) {
|
|
html_tag.m(raw_value, target, anchor);
|
|
insert(target, html_anchor, anchor);
|
|
},
|
|
p: noop,
|
|
d(detaching) {
|
|
if (detaching) {
|
|
detach(html_anchor);
|
|
html_tag.d();
|
|
}
|
|
}
|
|
};
|
|
}
|
|
function create_default_slot_32(ctx) {
|
|
let html_tag;
|
|
let raw_value = customIcons.gap.svg + "";
|
|
let html_anchor;
|
|
return {
|
|
c() {
|
|
html_tag = new HtmlTag(false);
|
|
html_anchor = empty();
|
|
html_tag.a = html_anchor;
|
|
},
|
|
m(target, anchor) {
|
|
html_tag.m(raw_value, target, anchor);
|
|
insert(target, html_anchor, anchor);
|
|
},
|
|
p: noop,
|
|
d(detaching) {
|
|
if (detaching) {
|
|
detach(html_anchor);
|
|
html_tag.d();
|
|
}
|
|
}
|
|
};
|
|
}
|
|
function create_default_slot_22(ctx) {
|
|
let historyicon;
|
|
let current;
|
|
historyicon = new history_default({ props: { class: "svg-icon" } });
|
|
return {
|
|
c() {
|
|
create_component(historyicon.$$.fragment);
|
|
},
|
|
m(target, anchor) {
|
|
mount_component(historyicon, target, anchor);
|
|
current = true;
|
|
},
|
|
p: noop,
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(historyicon.$$.fragment, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(historyicon.$$.fragment, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
destroy_component(historyicon, detaching);
|
|
}
|
|
};
|
|
}
|
|
function create_default_slot_12(ctx) {
|
|
let undoicon;
|
|
let current;
|
|
undoicon = new undo_2_default({ props: { class: "svg-icon" } });
|
|
return {
|
|
c() {
|
|
create_component(undoicon.$$.fragment);
|
|
},
|
|
m(target, anchor) {
|
|
mount_component(undoicon, target, anchor);
|
|
current = true;
|
|
},
|
|
p: noop,
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(undoicon.$$.fragment, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(undoicon.$$.fragment, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
destroy_component(undoicon, detaching);
|
|
}
|
|
};
|
|
}
|
|
function create_default_slot45(ctx) {
|
|
let redoicon;
|
|
let current;
|
|
redoicon = new redo_2_default({ props: { class: "svg-icon" } });
|
|
return {
|
|
c() {
|
|
create_component(redoicon.$$.fragment);
|
|
},
|
|
m(target, anchor) {
|
|
mount_component(redoicon, target, anchor);
|
|
current = true;
|
|
},
|
|
p: noop,
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(redoicon.$$.fragment, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(redoicon.$$.fragment, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
destroy_component(redoicon, detaching);
|
|
}
|
|
};
|
|
}
|
|
function create_fragment47(ctx) {
|
|
let div6;
|
|
let div0;
|
|
let button0;
|
|
let t0;
|
|
let div1;
|
|
let button1;
|
|
let t1;
|
|
let div2;
|
|
let button2;
|
|
let t2;
|
|
let button3;
|
|
let t3;
|
|
let button4;
|
|
let t4;
|
|
let div3;
|
|
let button5;
|
|
let t5;
|
|
let button6;
|
|
let t6;
|
|
let div4;
|
|
let button7;
|
|
let t7;
|
|
let button8;
|
|
let t8;
|
|
let div5;
|
|
let button9;
|
|
let t9;
|
|
let button10;
|
|
let t10;
|
|
let button11;
|
|
let t11;
|
|
let zoombuttons;
|
|
let current;
|
|
button0 = new button_default({
|
|
props: {
|
|
active: (
|
|
/*$showControls*/
|
|
ctx[0]
|
|
),
|
|
label: lang.controls_toggle_bar,
|
|
tooltipPosition: "left",
|
|
$$slots: { default: [create_default_slot_11] },
|
|
$$scope: { ctx }
|
|
}
|
|
});
|
|
button0.$on(
|
|
"click",
|
|
/*toggleShowControls*/
|
|
ctx[16]
|
|
);
|
|
button1 = new button_default({
|
|
props: {
|
|
active: (
|
|
/*$showMinimap*/
|
|
ctx[1]
|
|
),
|
|
classes: "control-item",
|
|
label: lang.controls_toggle_minimap,
|
|
tooltipPosition: "left",
|
|
$$slots: { default: [create_default_slot_10] },
|
|
$$scope: { ctx }
|
|
}
|
|
});
|
|
button1.$on(
|
|
"click",
|
|
/*toggleMinimap*/
|
|
ctx[18]
|
|
);
|
|
button2 = new button_default({
|
|
props: {
|
|
active: (
|
|
/*$controls*/
|
|
ctx[2].showSettingsSidebar
|
|
),
|
|
classes: "control-item",
|
|
label: lang.controls_settings,
|
|
tooltipPosition: "left",
|
|
$$slots: { default: [create_default_slot_9] },
|
|
$$scope: { ctx }
|
|
}
|
|
});
|
|
button2.$on(
|
|
"click",
|
|
/*toggleSettings*/
|
|
ctx[13]
|
|
);
|
|
button3 = new button_default({
|
|
props: {
|
|
active: (
|
|
/*$controls*/
|
|
ctx[2].showHelpSidebar
|
|
),
|
|
classes: "control-item",
|
|
label: lang.controls_hotkeys,
|
|
tooltipPosition: "left",
|
|
$$slots: { default: [create_default_slot_8] },
|
|
$$scope: { ctx }
|
|
}
|
|
});
|
|
button3.$on(
|
|
"click",
|
|
/*toggleHelp*/
|
|
ctx[11]
|
|
);
|
|
button4 = new button_default({
|
|
props: {
|
|
active: (
|
|
/*$controls*/
|
|
ctx[2].showStyleRulesModal
|
|
),
|
|
classes: "control-item",
|
|
label: lang.controls_rules,
|
|
tooltipPosition: "left",
|
|
$$slots: { default: [create_default_slot_7] },
|
|
$$scope: { ctx }
|
|
}
|
|
});
|
|
button4.$on(
|
|
"click",
|
|
/*toggleStyleRules*/
|
|
ctx[12]
|
|
);
|
|
button5 = new button_default({
|
|
props: {
|
|
active: (
|
|
/*$scrollSettingsStore*/
|
|
ctx[3].centerActiveNodeH
|
|
),
|
|
classes: "control-item",
|
|
label: lang.controls_toggle_scrolling_mode_horizontal,
|
|
tooltipPosition: "left",
|
|
$$slots: { default: [create_default_slot_6] },
|
|
$$scope: { ctx }
|
|
}
|
|
});
|
|
button5.$on(
|
|
"click",
|
|
/*toggleScrollModeH*/
|
|
ctx[19]
|
|
);
|
|
button6 = new button_default({
|
|
props: {
|
|
active: (
|
|
/*$scrollSettingsStore*/
|
|
ctx[3].centerActiveNodeV
|
|
),
|
|
classes: "control-item",
|
|
label: lang.controls_toggle_scrolling_mode_vertical,
|
|
tooltipPosition: "left",
|
|
$$slots: { default: [create_default_slot_5] },
|
|
$$scope: { ctx }
|
|
}
|
|
});
|
|
button6.$on(
|
|
"click",
|
|
/*toggleScrollModeV*/
|
|
ctx[20]
|
|
);
|
|
button7 = new button_default({
|
|
props: {
|
|
active: (
|
|
/*$outlineMode*/
|
|
ctx[4]
|
|
),
|
|
classes: "control-item",
|
|
label: lang.controls_single_column,
|
|
tooltipPosition: "left",
|
|
$$slots: { default: [create_default_slot_4] },
|
|
$$scope: { ctx }
|
|
}
|
|
});
|
|
button7.$on(
|
|
"click",
|
|
/*toggleOutlineMode*/
|
|
ctx[25]
|
|
);
|
|
button8 = new button_default({
|
|
props: {
|
|
active: (
|
|
/*$applyGapBetweenCards*/
|
|
ctx[5]
|
|
),
|
|
classes: "control-item",
|
|
label: lang.controls_gap_between_cards,
|
|
tooltipPosition: "left",
|
|
$$slots: { default: [create_default_slot_32] },
|
|
$$scope: { ctx }
|
|
}
|
|
});
|
|
button8.$on(
|
|
"click",
|
|
/*toggleGap*/
|
|
ctx[23]
|
|
);
|
|
button9 = new button_default({
|
|
props: {
|
|
active: (
|
|
/*$controls*/
|
|
ctx[2].showHistorySidebar
|
|
),
|
|
classes: "control-item",
|
|
disabled: (
|
|
/*$history*/
|
|
ctx[6].items.length === 0
|
|
),
|
|
label: lang.controls_history,
|
|
tooltipPosition: "left",
|
|
$$slots: { default: [create_default_slot_22] },
|
|
$$scope: { ctx }
|
|
}
|
|
});
|
|
button9.$on(
|
|
"click",
|
|
/*click_handler*/
|
|
ctx[26]
|
|
);
|
|
button10 = new button_default({
|
|
props: {
|
|
classes: "control-item",
|
|
disabled: !/*$history*/
|
|
ctx[6].state.canGoBack,
|
|
label: lang.controls_history_undo,
|
|
tooltipPosition: "left",
|
|
$$slots: { default: [create_default_slot_12] },
|
|
$$scope: { ctx }
|
|
}
|
|
});
|
|
button10.$on(
|
|
"click",
|
|
/*handlePreviousClick*/
|
|
ctx[10]
|
|
);
|
|
button11 = new button_default({
|
|
props: {
|
|
classes: "control-item",
|
|
disabled: !/*$history*/
|
|
ctx[6].state.canGoForward,
|
|
label: lang.controls_history_redo,
|
|
tooltipPosition: "left",
|
|
$$slots: { default: [create_default_slot45] },
|
|
$$scope: { ctx }
|
|
}
|
|
});
|
|
button11.$on(
|
|
"click",
|
|
/*handleNextClick*/
|
|
ctx[9]
|
|
);
|
|
zoombuttons = new zoom_buttons_default({
|
|
props: { showControls: (
|
|
/*$showControls*/
|
|
ctx[0]
|
|
) }
|
|
});
|
|
return {
|
|
c() {
|
|
div6 = element("div");
|
|
div0 = element("div");
|
|
create_component(button0.$$.fragment);
|
|
t0 = space();
|
|
div1 = element("div");
|
|
create_component(button1.$$.fragment);
|
|
t1 = space();
|
|
div2 = element("div");
|
|
create_component(button2.$$.fragment);
|
|
t2 = space();
|
|
create_component(button3.$$.fragment);
|
|
t3 = space();
|
|
create_component(button4.$$.fragment);
|
|
t4 = space();
|
|
div3 = element("div");
|
|
create_component(button5.$$.fragment);
|
|
t5 = space();
|
|
create_component(button6.$$.fragment);
|
|
t6 = space();
|
|
div4 = element("div");
|
|
create_component(button7.$$.fragment);
|
|
t7 = space();
|
|
create_component(button8.$$.fragment);
|
|
t8 = space();
|
|
div5 = element("div");
|
|
create_component(button9.$$.fragment);
|
|
t9 = space();
|
|
create_component(button10.$$.fragment);
|
|
t10 = space();
|
|
create_component(button11.$$.fragment);
|
|
t11 = space();
|
|
create_component(zoombuttons.$$.fragment);
|
|
attr(div0, "class", "buttons-group controls-toggle svelte-1316cva");
|
|
attr(div1, "class", "buttons-group buttons-group--vertical");
|
|
attr(
|
|
div1,
|
|
"data-visible",
|
|
/*$showControls*/
|
|
ctx[0]
|
|
);
|
|
attr(div2, "class", "buttons-group buttons-group--vertical");
|
|
attr(
|
|
div2,
|
|
"data-visible",
|
|
/*$showControls*/
|
|
ctx[0]
|
|
);
|
|
attr(div3, "class", "buttons-group buttons-group--vertical");
|
|
attr(
|
|
div3,
|
|
"data-visible",
|
|
/*$showControls*/
|
|
ctx[0]
|
|
);
|
|
attr(div4, "class", "buttons-group buttons-group--vertical");
|
|
attr(
|
|
div4,
|
|
"data-visible",
|
|
/*$showControls*/
|
|
ctx[0]
|
|
);
|
|
attr(div5, "class", "buttons-group buttons-group--vertical");
|
|
attr(
|
|
div5,
|
|
"data-visible",
|
|
/*$showControls*/
|
|
ctx[0]
|
|
);
|
|
attr(div6, "class", "controls-container svelte-1316cva");
|
|
},
|
|
m(target, anchor) {
|
|
insert(target, div6, anchor);
|
|
append(div6, div0);
|
|
mount_component(button0, div0, null);
|
|
append(div6, t0);
|
|
append(div6, div1);
|
|
mount_component(button1, div1, null);
|
|
append(div6, t1);
|
|
append(div6, div2);
|
|
mount_component(button2, div2, null);
|
|
append(div2, t2);
|
|
mount_component(button3, div2, null);
|
|
append(div2, t3);
|
|
mount_component(button4, div2, null);
|
|
append(div6, t4);
|
|
append(div6, div3);
|
|
mount_component(button5, div3, null);
|
|
append(div3, t5);
|
|
mount_component(button6, div3, null);
|
|
append(div6, t6);
|
|
append(div6, div4);
|
|
mount_component(button7, div4, null);
|
|
append(div4, t7);
|
|
mount_component(button8, div4, null);
|
|
append(div6, t8);
|
|
append(div6, div5);
|
|
mount_component(button9, div5, null);
|
|
append(div5, t9);
|
|
mount_component(button10, div5, null);
|
|
append(div5, t10);
|
|
mount_component(button11, div5, null);
|
|
append(div6, t11);
|
|
mount_component(zoombuttons, div6, null);
|
|
current = true;
|
|
},
|
|
p(ctx2, [dirty]) {
|
|
const button0_changes = {};
|
|
if (dirty & /*$showControls*/
|
|
1)
|
|
button0_changes.active = /*$showControls*/
|
|
ctx2[0];
|
|
if (dirty & /*$$scope*/
|
|
536870912) {
|
|
button0_changes.$$scope = { dirty, ctx: ctx2 };
|
|
}
|
|
button0.$set(button0_changes);
|
|
const button1_changes = {};
|
|
if (dirty & /*$showMinimap*/
|
|
2)
|
|
button1_changes.active = /*$showMinimap*/
|
|
ctx2[1];
|
|
if (dirty & /*$$scope*/
|
|
536870912) {
|
|
button1_changes.$$scope = { dirty, ctx: ctx2 };
|
|
}
|
|
button1.$set(button1_changes);
|
|
if (!current || dirty & /*$showControls*/
|
|
1) {
|
|
attr(
|
|
div1,
|
|
"data-visible",
|
|
/*$showControls*/
|
|
ctx2[0]
|
|
);
|
|
}
|
|
const button2_changes = {};
|
|
if (dirty & /*$controls*/
|
|
4)
|
|
button2_changes.active = /*$controls*/
|
|
ctx2[2].showSettingsSidebar;
|
|
if (dirty & /*$$scope*/
|
|
536870912) {
|
|
button2_changes.$$scope = { dirty, ctx: ctx2 };
|
|
}
|
|
button2.$set(button2_changes);
|
|
const button3_changes = {};
|
|
if (dirty & /*$controls*/
|
|
4)
|
|
button3_changes.active = /*$controls*/
|
|
ctx2[2].showHelpSidebar;
|
|
if (dirty & /*$$scope*/
|
|
536870912) {
|
|
button3_changes.$$scope = { dirty, ctx: ctx2 };
|
|
}
|
|
button3.$set(button3_changes);
|
|
const button4_changes = {};
|
|
if (dirty & /*$controls*/
|
|
4)
|
|
button4_changes.active = /*$controls*/
|
|
ctx2[2].showStyleRulesModal;
|
|
if (dirty & /*$$scope*/
|
|
536870912) {
|
|
button4_changes.$$scope = { dirty, ctx: ctx2 };
|
|
}
|
|
button4.$set(button4_changes);
|
|
if (!current || dirty & /*$showControls*/
|
|
1) {
|
|
attr(
|
|
div2,
|
|
"data-visible",
|
|
/*$showControls*/
|
|
ctx2[0]
|
|
);
|
|
}
|
|
const button5_changes = {};
|
|
if (dirty & /*$scrollSettingsStore*/
|
|
8)
|
|
button5_changes.active = /*$scrollSettingsStore*/
|
|
ctx2[3].centerActiveNodeH;
|
|
if (dirty & /*$$scope*/
|
|
536870912) {
|
|
button5_changes.$$scope = { dirty, ctx: ctx2 };
|
|
}
|
|
button5.$set(button5_changes);
|
|
const button6_changes = {};
|
|
if (dirty & /*$scrollSettingsStore*/
|
|
8)
|
|
button6_changes.active = /*$scrollSettingsStore*/
|
|
ctx2[3].centerActiveNodeV;
|
|
if (dirty & /*$$scope*/
|
|
536870912) {
|
|
button6_changes.$$scope = { dirty, ctx: ctx2 };
|
|
}
|
|
button6.$set(button6_changes);
|
|
if (!current || dirty & /*$showControls*/
|
|
1) {
|
|
attr(
|
|
div3,
|
|
"data-visible",
|
|
/*$showControls*/
|
|
ctx2[0]
|
|
);
|
|
}
|
|
const button7_changes = {};
|
|
if (dirty & /*$outlineMode*/
|
|
16)
|
|
button7_changes.active = /*$outlineMode*/
|
|
ctx2[4];
|
|
if (dirty & /*$$scope*/
|
|
536870912) {
|
|
button7_changes.$$scope = { dirty, ctx: ctx2 };
|
|
}
|
|
button7.$set(button7_changes);
|
|
const button8_changes = {};
|
|
if (dirty & /*$applyGapBetweenCards*/
|
|
32)
|
|
button8_changes.active = /*$applyGapBetweenCards*/
|
|
ctx2[5];
|
|
if (dirty & /*$$scope*/
|
|
536870912) {
|
|
button8_changes.$$scope = { dirty, ctx: ctx2 };
|
|
}
|
|
button8.$set(button8_changes);
|
|
if (!current || dirty & /*$showControls*/
|
|
1) {
|
|
attr(
|
|
div4,
|
|
"data-visible",
|
|
/*$showControls*/
|
|
ctx2[0]
|
|
);
|
|
}
|
|
const button9_changes = {};
|
|
if (dirty & /*$controls*/
|
|
4)
|
|
button9_changes.active = /*$controls*/
|
|
ctx2[2].showHistorySidebar;
|
|
if (dirty & /*$history*/
|
|
64)
|
|
button9_changes.disabled = /*$history*/
|
|
ctx2[6].items.length === 0;
|
|
if (dirty & /*$$scope*/
|
|
536870912) {
|
|
button9_changes.$$scope = { dirty, ctx: ctx2 };
|
|
}
|
|
button9.$set(button9_changes);
|
|
const button10_changes = {};
|
|
if (dirty & /*$history*/
|
|
64)
|
|
button10_changes.disabled = !/*$history*/
|
|
ctx2[6].state.canGoBack;
|
|
if (dirty & /*$$scope*/
|
|
536870912) {
|
|
button10_changes.$$scope = { dirty, ctx: ctx2 };
|
|
}
|
|
button10.$set(button10_changes);
|
|
const button11_changes = {};
|
|
if (dirty & /*$history*/
|
|
64)
|
|
button11_changes.disabled = !/*$history*/
|
|
ctx2[6].state.canGoForward;
|
|
if (dirty & /*$$scope*/
|
|
536870912) {
|
|
button11_changes.$$scope = { dirty, ctx: ctx2 };
|
|
}
|
|
button11.$set(button11_changes);
|
|
if (!current || dirty & /*$showControls*/
|
|
1) {
|
|
attr(
|
|
div5,
|
|
"data-visible",
|
|
/*$showControls*/
|
|
ctx2[0]
|
|
);
|
|
}
|
|
const zoombuttons_changes = {};
|
|
if (dirty & /*$showControls*/
|
|
1)
|
|
zoombuttons_changes.showControls = /*$showControls*/
|
|
ctx2[0];
|
|
zoombuttons.$set(zoombuttons_changes);
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(button0.$$.fragment, local);
|
|
transition_in(button1.$$.fragment, local);
|
|
transition_in(button2.$$.fragment, local);
|
|
transition_in(button3.$$.fragment, local);
|
|
transition_in(button4.$$.fragment, local);
|
|
transition_in(button5.$$.fragment, local);
|
|
transition_in(button6.$$.fragment, local);
|
|
transition_in(button7.$$.fragment, local);
|
|
transition_in(button8.$$.fragment, local);
|
|
transition_in(button9.$$.fragment, local);
|
|
transition_in(button10.$$.fragment, local);
|
|
transition_in(button11.$$.fragment, local);
|
|
transition_in(zoombuttons.$$.fragment, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(button0.$$.fragment, local);
|
|
transition_out(button1.$$.fragment, local);
|
|
transition_out(button2.$$.fragment, local);
|
|
transition_out(button3.$$.fragment, local);
|
|
transition_out(button4.$$.fragment, local);
|
|
transition_out(button5.$$.fragment, local);
|
|
transition_out(button6.$$.fragment, local);
|
|
transition_out(button7.$$.fragment, local);
|
|
transition_out(button8.$$.fragment, local);
|
|
transition_out(button9.$$.fragment, local);
|
|
transition_out(button10.$$.fragment, local);
|
|
transition_out(button11.$$.fragment, local);
|
|
transition_out(zoombuttons.$$.fragment, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
if (detaching) {
|
|
detach(div6);
|
|
}
|
|
destroy_component(button0);
|
|
destroy_component(button1);
|
|
destroy_component(button2);
|
|
destroy_component(button3);
|
|
destroy_component(button4);
|
|
destroy_component(button5);
|
|
destroy_component(button6);
|
|
destroy_component(button7);
|
|
destroy_component(button8);
|
|
destroy_component(button9);
|
|
destroy_component(button10);
|
|
destroy_component(button11);
|
|
destroy_component(zoombuttons);
|
|
}
|
|
};
|
|
}
|
|
function instance47($$self, $$props, $$invalidate) {
|
|
let $showControls;
|
|
let $showMinimap;
|
|
let $controls;
|
|
let $scrollSettingsStore;
|
|
let $outlineMode;
|
|
let $applyGapBetweenCards;
|
|
let $history;
|
|
const view = getView();
|
|
const viewStore = view.viewStore;
|
|
const documentStore = view.documentStore;
|
|
const history = historyStore(view);
|
|
component_subscribe($$self, history, (value) => $$invalidate(6, $history = value));
|
|
const handleNextClick = () => {
|
|
if (viewStore.getValue().document.editing.activeNodeId)
|
|
new import_obsidian3.Notice(lang.error_apply_snapshot_while_editing);
|
|
else
|
|
documentStore.dispatch({ type: "HISTORY/APPLY_NEXT_SNAPSHOT" });
|
|
};
|
|
const handlePreviousClick = () => {
|
|
if (viewStore.getValue().document.editing.activeNodeId)
|
|
new import_obsidian3.Notice(lang.error_apply_snapshot_while_editing);
|
|
else
|
|
documentStore.dispatch({ type: "HISTORY/APPLY_PREVIOUS_SNAPSHOT" });
|
|
};
|
|
const toggleHelp = () => {
|
|
viewStore.dispatch({ type: "UI/TOGGLE_HELP_SIDEBAR" });
|
|
};
|
|
const toggleStyleRules = () => {
|
|
viewStore.dispatch({ type: "view/modals/toggle-style-rules" });
|
|
};
|
|
const toggleSettings = () => {
|
|
viewStore.dispatch({ type: "UI/TOGGLE_SETTINGS_SIDEBAR" });
|
|
};
|
|
const controls = uiControlsStore(view);
|
|
component_subscribe($$self, controls, (value) => $$invalidate(2, $controls = value));
|
|
const showControls = writable(false);
|
|
component_subscribe($$self, showControls, (value) => $$invalidate(0, $showControls = value));
|
|
const toggleShowControls = () => {
|
|
showControls.update((v) => !v);
|
|
};
|
|
const showMinimap = showMinimapStore(view);
|
|
component_subscribe($$self, showMinimap, (value) => $$invalidate(1, $showMinimap = value));
|
|
const toggleMinimap = () => {
|
|
view.plugin.settings.dispatch({ type: "VIEW/TOGGLE_MINIMAP" });
|
|
};
|
|
const toggleScrollModeH = () => {
|
|
view.plugin.settings.dispatch({
|
|
type: "VIEW/SCROLLING/TOGGLE_SCROLLING_MODE"
|
|
});
|
|
};
|
|
const toggleScrollModeV = () => {
|
|
view.plugin.settings.dispatch({
|
|
type: "settings/view/scrolling/toggle-vertical-scrolling-mode"
|
|
});
|
|
};
|
|
const scrollSettingsStore = ScrollSettingsStore(view);
|
|
component_subscribe($$self, scrollSettingsStore, (value) => $$invalidate(3, $scrollSettingsStore = value));
|
|
const applyGapBetweenCards = ApplyGapBetweenCardsStore(view);
|
|
component_subscribe($$self, applyGapBetweenCards, (value) => $$invalidate(5, $applyGapBetweenCards = value));
|
|
const toggleGap = () => {
|
|
view.plugin.settings.dispatch({
|
|
type: "view/modes/gap-between-cards/toggle"
|
|
});
|
|
};
|
|
const outlineMode = OutlineModeStore(view);
|
|
component_subscribe($$self, outlineMode, (value) => $$invalidate(4, $outlineMode = value));
|
|
const toggleOutlineMode = () => {
|
|
view.plugin.settings.dispatch({
|
|
type: "settings/view/modes/toggle-outline-mode"
|
|
});
|
|
};
|
|
const click_handler = () => {
|
|
viewStore.dispatch({ type: "UI/TOGGLE_HISTORY_SIDEBAR" });
|
|
};
|
|
return [
|
|
$showControls,
|
|
$showMinimap,
|
|
$controls,
|
|
$scrollSettingsStore,
|
|
$outlineMode,
|
|
$applyGapBetweenCards,
|
|
$history,
|
|
viewStore,
|
|
history,
|
|
handleNextClick,
|
|
handlePreviousClick,
|
|
toggleHelp,
|
|
toggleStyleRules,
|
|
toggleSettings,
|
|
controls,
|
|
showControls,
|
|
toggleShowControls,
|
|
showMinimap,
|
|
toggleMinimap,
|
|
toggleScrollModeH,
|
|
toggleScrollModeV,
|
|
scrollSettingsStore,
|
|
applyGapBetweenCards,
|
|
toggleGap,
|
|
outlineMode,
|
|
toggleOutlineMode,
|
|
click_handler
|
|
];
|
|
}
|
|
var Controls_container = class extends SvelteComponent {
|
|
constructor(options) {
|
|
super();
|
|
init(this, options, instance47, create_fragment47, safe_not_equal, {}, add_css);
|
|
}
|
|
};
|
|
var controls_container_default = Controls_container;
|
|
|
|
// src/lib/tree-utils/find/find-node-column.ts
|
|
var findNodeColumn = (columns, nodeId) => {
|
|
for (let i = 0; i < columns.length; i++) {
|
|
const column = columns[i];
|
|
for (const group of column.groups) {
|
|
if (group.nodes.find((n) => n === nodeId))
|
|
return i;
|
|
}
|
|
}
|
|
return -1;
|
|
};
|
|
|
|
// src/lib/tree-utils/get/traverse-down.ts
|
|
var traverseDown = (columns, nodeId, cleanDocument) => {
|
|
const result = [];
|
|
let nodeColumnIndex = 0;
|
|
if (cleanDocument) {
|
|
nodeColumnIndex = findNodeColumn(columns, nodeId) + 1;
|
|
if (nodeColumnIndex > columns.length - 1) {
|
|
return result;
|
|
}
|
|
}
|
|
const currentParents = /* @__PURE__ */ new Set([nodeId]);
|
|
let firstResult = false;
|
|
for (let i = nodeColumnIndex; i < columns.length; i++) {
|
|
const column = columns[i];
|
|
let columnResult = false;
|
|
for (const group of column.groups) {
|
|
if (currentParents.has(group.parentId)) {
|
|
result.push(group.parentId);
|
|
group.nodes.forEach((node) => currentParents.add(node));
|
|
columnResult = true;
|
|
if (!firstResult)
|
|
firstResult = true;
|
|
}
|
|
}
|
|
if (firstResult && !columnResult)
|
|
break;
|
|
}
|
|
return result;
|
|
};
|
|
|
|
// src/view/actions/dnd/draggable.ts
|
|
var DND_ACTIVE_CLASS = "is-dragged";
|
|
var toggleDraggedNodeVisibility = (node, data, visible) => {
|
|
requestAnimationFrame(() => {
|
|
const parent = node.matchParent("#" + data.id);
|
|
if (parent) {
|
|
parent.style.display = visible ? "flex" : "none";
|
|
parent.toggleClass(DND_ACTIVE_CLASS, !visible);
|
|
}
|
|
});
|
|
};
|
|
var draggable = (node, data) => {
|
|
const view = getView();
|
|
const viewStore = view.viewStore;
|
|
const documentStore = view.documentStore;
|
|
if (data.isInSidebar)
|
|
return;
|
|
node.draggable = true;
|
|
const handleDragstart = (event) => {
|
|
if (!event.dataTransfer)
|
|
return;
|
|
const target = event.currentTarget;
|
|
if (event.clientX - target.getBoundingClientRect().x <= 7 || target.dataset["test"] === "true") {
|
|
event.dataTransfer.setData("text/plain", data.id);
|
|
setTimeout(() => {
|
|
const childGroups = traverseDown(
|
|
documentStore.getValue().document.columns,
|
|
data.id,
|
|
false
|
|
);
|
|
viewStore.dispatch({
|
|
type: "SET_DRAG_STARTED",
|
|
payload: { nodeId: data.id, childGroups }
|
|
});
|
|
toggleDraggedNodeVisibility(node, data, false);
|
|
}, 0);
|
|
} else {
|
|
event.preventDefault();
|
|
}
|
|
};
|
|
node.addEventListener("dragstart", handleDragstart);
|
|
const handleDragEnd = () => {
|
|
viewStore.dispatch({ type: "DOCUMENT/SET_DRAG_ENDED" });
|
|
toggleDraggedNodeVisibility(node, data, true);
|
|
};
|
|
node.addEventListener("dragend", handleDragEnd);
|
|
return {
|
|
destroy: () => {
|
|
node.removeEventListener("dragstart", handleDragstart);
|
|
node.removeEventListener("dragend", handleDragEnd);
|
|
}
|
|
};
|
|
};
|
|
|
|
// src/view/components/container/column/components/group/components/card/components/dnd/draggable.svelte
|
|
function add_css2(target) {
|
|
append_styles(target, "svelte-gtjx2q", ".draggable.svelte-gtjx2q.svelte-gtjx2q{width:100%;background-color:transparent;display:flex;position:relative}.drag-handle.svelte-gtjx2q.svelte-gtjx2q{height:100%;width:6px;background-color:transparent;cursor:grab;position:absolute;left:-5px;z-index:10}.active-node .drag-handle.svelte-gtjx2q.svelte-gtjx2q{left:0}.draggable.svelte-gtjx2q:hover .drag-handle.svelte-gtjx2q{background-size:2px 4px;background-image:linear-gradient(\n 0deg,\n hsla(0, 0%, 60%, 0.5) 20%,\n transparent 40%\n )}.content.svelte-gtjx2q.svelte-gtjx2q{width:100%\n }");
|
|
}
|
|
function create_if_block2(ctx) {
|
|
let div;
|
|
return {
|
|
c() {
|
|
div = element("div");
|
|
attr(div, "class", "drag-handle svelte-gtjx2q");
|
|
},
|
|
m(target, anchor) {
|
|
insert(target, div, anchor);
|
|
},
|
|
d(detaching) {
|
|
if (detaching) {
|
|
detach(div);
|
|
}
|
|
}
|
|
};
|
|
}
|
|
function create_fragment48(ctx) {
|
|
let div1;
|
|
let t;
|
|
let div0;
|
|
let draggable_action;
|
|
let current;
|
|
let mounted;
|
|
let dispose;
|
|
let if_block = !/*isInSidebar*/
|
|
ctx[0] && create_if_block2(ctx);
|
|
const default_slot_template = (
|
|
/*#slots*/
|
|
ctx[3].default
|
|
);
|
|
const default_slot = create_slot(
|
|
default_slot_template,
|
|
ctx,
|
|
/*$$scope*/
|
|
ctx[2],
|
|
null
|
|
);
|
|
return {
|
|
c() {
|
|
div1 = element("div");
|
|
if (if_block)
|
|
if_block.c();
|
|
t = space();
|
|
div0 = element("div");
|
|
if (default_slot)
|
|
default_slot.c();
|
|
attr(div0, "class", "content svelte-gtjx2q");
|
|
attr(div1, "class", "draggable svelte-gtjx2q");
|
|
},
|
|
m(target, anchor) {
|
|
insert(target, div1, anchor);
|
|
if (if_block)
|
|
if_block.m(div1, null);
|
|
append(div1, t);
|
|
append(div1, div0);
|
|
if (default_slot) {
|
|
default_slot.m(div0, null);
|
|
}
|
|
current = true;
|
|
if (!mounted) {
|
|
dispose = action_destroyer(draggable_action = draggable.call(null, div1, {
|
|
id: (
|
|
/*nodeId*/
|
|
ctx[1]
|
|
),
|
|
isInSidebar: (
|
|
/*isInSidebar*/
|
|
ctx[0]
|
|
)
|
|
}));
|
|
mounted = true;
|
|
}
|
|
},
|
|
p(ctx2, [dirty]) {
|
|
if (!/*isInSidebar*/
|
|
ctx2[0]) {
|
|
if (if_block) {
|
|
} else {
|
|
if_block = create_if_block2(ctx2);
|
|
if_block.c();
|
|
if_block.m(div1, t);
|
|
}
|
|
} else if (if_block) {
|
|
if_block.d(1);
|
|
if_block = null;
|
|
}
|
|
if (default_slot) {
|
|
if (default_slot.p && (!current || dirty & /*$$scope*/
|
|
4)) {
|
|
update_slot_base(
|
|
default_slot,
|
|
default_slot_template,
|
|
ctx2,
|
|
/*$$scope*/
|
|
ctx2[2],
|
|
!current ? get_all_dirty_from_scope(
|
|
/*$$scope*/
|
|
ctx2[2]
|
|
) : get_slot_changes(
|
|
default_slot_template,
|
|
/*$$scope*/
|
|
ctx2[2],
|
|
dirty,
|
|
null
|
|
),
|
|
null
|
|
);
|
|
}
|
|
}
|
|
if (draggable_action && is_function(draggable_action.update) && dirty & /*nodeId, isInSidebar*/
|
|
3)
|
|
draggable_action.update.call(null, {
|
|
id: (
|
|
/*nodeId*/
|
|
ctx2[1]
|
|
),
|
|
isInSidebar: (
|
|
/*isInSidebar*/
|
|
ctx2[0]
|
|
)
|
|
});
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(default_slot, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(default_slot, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
if (detaching) {
|
|
detach(div1);
|
|
}
|
|
if (if_block)
|
|
if_block.d();
|
|
if (default_slot)
|
|
default_slot.d(detaching);
|
|
mounted = false;
|
|
dispose();
|
|
}
|
|
};
|
|
}
|
|
function instance48($$self, $$props, $$invalidate) {
|
|
let { $$slots: slots = {}, $$scope } = $$props;
|
|
let { isInSidebar } = $$props;
|
|
let { nodeId } = $$props;
|
|
$$self.$$set = ($$props2) => {
|
|
if ("isInSidebar" in $$props2)
|
|
$$invalidate(0, isInSidebar = $$props2.isInSidebar);
|
|
if ("nodeId" in $$props2)
|
|
$$invalidate(1, nodeId = $$props2.nodeId);
|
|
if ("$$scope" in $$props2)
|
|
$$invalidate(2, $$scope = $$props2.$$scope);
|
|
};
|
|
return [isInSidebar, nodeId, $$scope, slots];
|
|
}
|
|
var Draggable = class extends SvelteComponent {
|
|
constructor(options) {
|
|
super();
|
|
init(this, options, instance48, create_fragment48, safe_not_equal, { isInSidebar: 0, nodeId: 1 }, add_css2);
|
|
}
|
|
};
|
|
var draggable_default = Draggable;
|
|
|
|
// src/view/actions/inline-editor/load-inline-editor.ts
|
|
var loadInlineEditor = (target, nodeId) => {
|
|
const view = getView();
|
|
if (!view.file)
|
|
return;
|
|
view.inlineEditor.loadNode(target, nodeId);
|
|
return {
|
|
destroy: () => {
|
|
view.inlineEditor.unloadNode(nodeId);
|
|
}
|
|
};
|
|
};
|
|
|
|
// src/stores/settings/derived/limit-preview-height-store.ts
|
|
var limitPreviewHeightStore = (view) => derived(view.plugin.settings, (state2) => state2.view.limitPreviewHeight);
|
|
|
|
// src/view/actions/inline-editor/expandable-textarea-action.ts
|
|
var deletionKeys = /* @__PURE__ */ new Set(["Backspace", "Delete", "x", " "]);
|
|
var AdjustHeight = (view, el) => {
|
|
let previousScrollHeight = 0;
|
|
let x;
|
|
const limitCardHeight = get_store_value(limitPreviewHeightStore(view));
|
|
return (e) => {
|
|
if (!x) {
|
|
x = el.querySelector(".cm-scroller");
|
|
}
|
|
if (!x)
|
|
return;
|
|
requestAnimationFrame(() => {
|
|
const scrollHeight = x.scrollHeight;
|
|
const scrollHeightChange = scrollHeight > 100 && scrollHeight !== previousScrollHeight;
|
|
if (scrollHeightChange || e && deletionKeys.has(e.key)) {
|
|
x.style.height = "auto";
|
|
previousScrollHeight = x.scrollHeight;
|
|
el.style.height = previousScrollHeight + "px";
|
|
x.style.height = "";
|
|
if (limitCardHeight && scrollHeightChange) {
|
|
view.alignBranch.align({
|
|
type: "view/align-branch/reveal-node"
|
|
});
|
|
}
|
|
}
|
|
});
|
|
};
|
|
};
|
|
var expandableTextareaAction = (el) => {
|
|
const view = getView();
|
|
const adjustHeight = AdjustHeight(view, el);
|
|
el.addEventListener("keydown", adjustHeight);
|
|
return {
|
|
destroy: () => {
|
|
el.removeEventListener("keydown", adjustHeight);
|
|
}
|
|
};
|
|
};
|
|
|
|
// src/view/components/container/column/components/group/components/card/components/content/inline-editor.svelte
|
|
function add_css3(target) {
|
|
append_styles(target, "svelte-lini95", ".editor-container.svelte-lini95{width:100%;min-height:var(--min-node-height);height:fit-content;overflow:hidden;display:flex}.apply-style-rule.svelte-lini95{& .view-content {\n background-color: transparent !important;\n }}");
|
|
}
|
|
function create_fragment49(ctx) {
|
|
let div;
|
|
let div_class_value;
|
|
let expandableTextareaAction_action;
|
|
let loadInlineEditor_action;
|
|
let mounted;
|
|
let dispose;
|
|
return {
|
|
c() {
|
|
div = element("div");
|
|
attr(div, "class", div_class_value = null_to_empty("editor-container" + /*style*/
|
|
(ctx[1] ? " apply-style-rule" : "")) + " svelte-lini95");
|
|
},
|
|
m(target, anchor) {
|
|
insert(target, div, anchor);
|
|
if (!mounted) {
|
|
dispose = [
|
|
action_destroyer(expandableTextareaAction_action = expandableTextareaAction.call(null, div)),
|
|
action_destroyer(loadInlineEditor_action = loadInlineEditor.call(
|
|
null,
|
|
div,
|
|
/*nodeId*/
|
|
ctx[0]
|
|
))
|
|
];
|
|
mounted = true;
|
|
}
|
|
},
|
|
p(ctx2, [dirty]) {
|
|
if (dirty & /*style*/
|
|
2 && div_class_value !== (div_class_value = null_to_empty("editor-container" + /*style*/
|
|
(ctx2[1] ? " apply-style-rule" : "")) + " svelte-lini95")) {
|
|
attr(div, "class", div_class_value);
|
|
}
|
|
if (loadInlineEditor_action && is_function(loadInlineEditor_action.update) && dirty & /*nodeId*/
|
|
1)
|
|
loadInlineEditor_action.update.call(
|
|
null,
|
|
/*nodeId*/
|
|
ctx2[0]
|
|
);
|
|
},
|
|
i: noop,
|
|
o: noop,
|
|
d(detaching) {
|
|
if (detaching) {
|
|
detach(div);
|
|
}
|
|
mounted = false;
|
|
run_all(dispose);
|
|
}
|
|
};
|
|
}
|
|
function instance49($$self, $$props, $$invalidate) {
|
|
let { nodeId } = $$props;
|
|
let { style } = $$props;
|
|
$$self.$$set = ($$props2) => {
|
|
if ("nodeId" in $$props2)
|
|
$$invalidate(0, nodeId = $$props2.nodeId);
|
|
if ("style" in $$props2)
|
|
$$invalidate(1, style = $$props2.style);
|
|
};
|
|
return [nodeId, style];
|
|
}
|
|
var Inline_editor = class extends SvelteComponent {
|
|
constructor(options) {
|
|
super();
|
|
init(this, options, instance49, create_fragment49, safe_not_equal, { nodeId: 0, style: 1 }, add_css3);
|
|
}
|
|
};
|
|
var inline_editor_default = Inline_editor;
|
|
|
|
// src/view/actions/markdown-preview/markdown-preview-action.ts
|
|
var import_obsidian4 = require("obsidian");
|
|
|
|
// src/stores/document/derived/content-store.ts
|
|
var contentStore = (view, nodeId) => {
|
|
let nodeContent;
|
|
let documentContent;
|
|
return derived(view.documentStore, (state2) => {
|
|
if (!nodeContent || documentContent !== state2.document.content || nodeContent !== documentContent[nodeId]) {
|
|
documentContent = state2.document.content;
|
|
nodeContent = documentContent[nodeId];
|
|
if (!nodeContent)
|
|
return "";
|
|
}
|
|
return nodeContent.content;
|
|
});
|
|
};
|
|
var documentContentStore = (view) => {
|
|
return derived(view.documentStore, (state2) => {
|
|
return state2.document.content;
|
|
});
|
|
};
|
|
|
|
// src/view/actions/markdown-preview/helpers/format-text.ts
|
|
var applyNbsp = (text2) => {
|
|
const lines = text2.split("\n");
|
|
let mutated = false;
|
|
let isInCodeBlock = false;
|
|
for (let i = 0; i < lines.length; i++) {
|
|
if (lines[i].startsWith("```")) {
|
|
isInCodeBlock = !isInCodeBlock;
|
|
}
|
|
if (isInCodeBlock)
|
|
continue;
|
|
if (lines[i].length > 0)
|
|
continue;
|
|
const previousLine = lines[i - 1];
|
|
const skipNbsp = i > 0 && (previousLine.startsWith("- ") || previousLine.startsWith("> "));
|
|
if (!skipNbsp) {
|
|
lines[i] = " ";
|
|
mutated = true;
|
|
}
|
|
}
|
|
return mutated ? lines.join("\n") : text2;
|
|
};
|
|
var formatText = (text2) => {
|
|
if (/\s+(\^[a-zA-Z0-9]{4,})$/.test(text2)) {
|
|
text2 = text2.replace(
|
|
/\s+(\^[a-zA-Z0-9]{4,})$/gm,
|
|
' <sup class="cm-blockid" data-block-id="$1">$1</sup>'
|
|
);
|
|
}
|
|
if (/%%/.test(text2)) {
|
|
text2 = text2.replace(
|
|
/%%(.*?)%%/gms,
|
|
`<span class="cm-comment">%\u200B%$1%\u200B%</span>`
|
|
);
|
|
}
|
|
if (/<!--/.test(text2)) {
|
|
text2 = text2.replace(
|
|
/<!--(.*?)-->/gms,
|
|
'<span class="cm-comment"><!--$1--></span>'
|
|
);
|
|
}
|
|
if (/^\s*$/gm.test(text2) && !/^\|.*\|/m.test(text2)) {
|
|
text2 = applyNbsp(text2);
|
|
}
|
|
return text2;
|
|
};
|
|
|
|
// src/view/actions/markdown-preview/markdown-preview-action.ts
|
|
var markdownPreviewAction = (element2, nodeId) => {
|
|
const plugin = getPlugin();
|
|
const view = getView();
|
|
const store = view.documentStore;
|
|
const render = (content) => {
|
|
if (view && element2) {
|
|
element2.empty();
|
|
if (content.length > 0) {
|
|
content = formatText(content);
|
|
}
|
|
import_obsidian4.MarkdownRenderer.render(
|
|
plugin.app,
|
|
content,
|
|
element2,
|
|
store.getValue().file.path,
|
|
view
|
|
);
|
|
}
|
|
};
|
|
const $content = contentStore(view, nodeId);
|
|
const unsub = $content.subscribe((content) => {
|
|
render(content);
|
|
});
|
|
return {
|
|
destroy: () => {
|
|
unsub();
|
|
}
|
|
};
|
|
};
|
|
|
|
// src/view/components/container/column/components/group/components/card/components/content/event-handlers/helpers/get-existing-right-tab-group.ts
|
|
var getExistingRightTabGroup = (view) => {
|
|
const rootSplit = view.plugin.app.workspace.rootSplit;
|
|
if (!("children" in rootSplit))
|
|
return;
|
|
const viewTabGroup = "parent" in view.leaf ? view.leaf.parent : null;
|
|
if (!viewTabGroup || !(typeof viewTabGroup === "object"))
|
|
return;
|
|
if (!("type" in viewTabGroup && viewTabGroup.type === "tabs"))
|
|
return;
|
|
const children2 = rootSplit["children"];
|
|
if (children2 && Array.isArray(children2)) {
|
|
const viewTabGroupIndex = children2.findIndex(
|
|
(group) => viewTabGroup === group
|
|
);
|
|
if (viewTabGroupIndex !== -1) {
|
|
return children2[viewTabGroupIndex + 1];
|
|
}
|
|
}
|
|
};
|
|
|
|
// src/view/components/container/column/components/group/components/card/components/content/event-handlers/helpers/open-file-in-existing-right-tab-group.ts
|
|
var openFileInExistingRightTabGroup = (view, link, activeFilePath) => {
|
|
const rightTabGroup = getExistingRightTabGroup(view);
|
|
if (!rightTabGroup)
|
|
return false;
|
|
const workspace = view.plugin.app.workspace;
|
|
if (!("createLeafInTabGroup" in workspace && typeof workspace.createLeafInTabGroup === "function"))
|
|
return false;
|
|
const newLeaf = workspace.createLeafInTabGroup(
|
|
rightTabGroup
|
|
);
|
|
if (newLeaf) {
|
|
const linkedFile = view.plugin.app.metadataCache.getFirstLinkpathDest(
|
|
link,
|
|
activeFilePath
|
|
);
|
|
if (linkedFile) {
|
|
newLeaf.openFile(linkedFile);
|
|
return true;
|
|
}
|
|
}
|
|
return false;
|
|
};
|
|
|
|
// src/view/components/container/column/components/group/components/card/components/content/event-handlers/handle-links.ts
|
|
var selectCard = (view, id2) => {
|
|
view.viewStore.dispatch({
|
|
type: "view/set-active-node/mouse",
|
|
payload: {
|
|
id: id2
|
|
}
|
|
});
|
|
};
|
|
var handleFile = (view, link) => {
|
|
const path = view.documentStore.getValue().file.path;
|
|
if (!link || !path)
|
|
return;
|
|
const success = openFileInExistingRightTabGroup(view, link, path);
|
|
if (!success) {
|
|
view.plugin.app.workspace.openLinkText(link, path, "split");
|
|
}
|
|
};
|
|
var handleHeading = (view, link) => {
|
|
const levelMatch = /(#+)/.exec(link);
|
|
if (levelMatch) {
|
|
for (let level2 = 1; level2 <= 6; level2++) {
|
|
const headings = Array.from(
|
|
view.containerEl.querySelectorAll("h" + level2)
|
|
);
|
|
const heading = headings.find(
|
|
(h) => "#" + h.dataset.heading === link
|
|
);
|
|
if (heading) {
|
|
const card = heading.closest(".lineage-card");
|
|
if (card && card.id) {
|
|
selectCard(view, card.id);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
};
|
|
var handleBlockLink = (view, link) => {
|
|
const match = /#\^([a-zA-Z0-9]{4,})$/.exec(link);
|
|
if (match) {
|
|
const id2 = match[1];
|
|
if (id2) {
|
|
const element2 = view.containerEl.querySelector(
|
|
`[data-block-id="^${id2}"`
|
|
);
|
|
if (element2) {
|
|
const card = element2.closest(".lineage-card");
|
|
if (card && card.id) {
|
|
selectCard(view, card.id);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
};
|
|
var handleLinks = (view, e) => {
|
|
if (!(e.target instanceof HTMLAnchorElement))
|
|
return;
|
|
if (!e.target.hasClass("internal-link"))
|
|
return;
|
|
const link = e.target.dataset.href;
|
|
if (!link)
|
|
return;
|
|
if (link.contains("#^")) {
|
|
e.stopPropagation();
|
|
handleBlockLink(view, link);
|
|
} else if (link.startsWith("#")) {
|
|
e.stopPropagation();
|
|
handleHeading(view, link);
|
|
} else {
|
|
handleFile(view, link);
|
|
}
|
|
};
|
|
|
|
// src/view/components/container/column/components/group/components/card/components/content/event-handlers/get-cursor-position.ts
|
|
var getCursorPosition = (markdownText, event) => {
|
|
const range = document.caretRangeFromPoint(event.clientX, event.clientY);
|
|
if (!range)
|
|
return null;
|
|
const lines = markdownText.split("\n");
|
|
const clickedText = range.startContainer.textContent || "";
|
|
const offset = range.startOffset;
|
|
const start = Math.max(0, offset - 10);
|
|
const end = Math.min(clickedText.length, offset + 10);
|
|
const context = clickedText.slice(start, end);
|
|
for (let i = 0; i < lines.length; i++) {
|
|
if (lines[i].contains(context)) {
|
|
const startInLine = lines[i].indexOf(context) + (offset - start);
|
|
return {
|
|
line: i,
|
|
ch: startInLine
|
|
};
|
|
}
|
|
}
|
|
return null;
|
|
};
|
|
|
|
// src/view/components/container/column/components/group/components/card/components/content/event-handlers/helpers/is-grabbing.ts
|
|
var isGrabbing = (view) => {
|
|
const cursor2 = view.container.style.cursor;
|
|
if (cursor2 === "grab")
|
|
return true;
|
|
return false;
|
|
};
|
|
|
|
// src/stores/view/subscriptions/actions/set-active-sidebar-node.ts
|
|
var setActiveSidebarNode = (view, id2) => {
|
|
const settings = view.plugin.settings.getValue();
|
|
const activeTab = settings.view.leftSidebarActiveTab;
|
|
view.viewStore.dispatch({
|
|
type: activeTab === "pinned-cards" ? "view/pinned-nodes/set-active-node" : "view/recent-nodes/set-active-node",
|
|
payload: { id: id2 }
|
|
});
|
|
};
|
|
|
|
// src/view/actions/keyboard-shortcuts/helpers/keyboard-events/mod-key.ts
|
|
var import_obsidian5 = require("obsidian");
|
|
var isMacLike = import_obsidian5.Platform.isMacOS || import_obsidian5.Platform.isIosApp;
|
|
var modKey = isMacLike ? "Cmd" : "Ctrl";
|
|
|
|
// src/view/components/container/column/components/group/components/card/components/content/store-actions/set-active-main-split-node.ts
|
|
var setActiveMainSplitNode = (view, nodeId, e) => {
|
|
const silent = isMacLike ? e.metaKey : e.ctrlKey;
|
|
view.viewStore.dispatch({
|
|
type: silent ? "view/set-active-node/mouse-silent" : "view/set-active-node/mouse",
|
|
payload: { id: nodeId }
|
|
});
|
|
};
|
|
|
|
// src/view/components/container/column/components/group/components/card/components/content/store-actions/enable-edit-mode-in-sidebar.ts
|
|
var enableEditModeInSidebar = (view, nodeId) => {
|
|
const settings = view.plugin.settings.getValue();
|
|
const activeSidebarTab = settings.view.leftSidebarActiveTab;
|
|
view.viewStore.dispatch({
|
|
type: "view/sidebar/enable-edit",
|
|
payload: {
|
|
id: nodeId
|
|
},
|
|
context: {
|
|
activeSidebarTab
|
|
}
|
|
});
|
|
};
|
|
|
|
// src/view/components/container/column/components/group/components/card/components/content/store-actions/enable-edit-mode-in-main-split.ts
|
|
var enableEditModeInMainSplit = (view, nodeId) => {
|
|
view.viewStore.dispatch({
|
|
type: "view/main/enable-edit",
|
|
payload: {
|
|
nodeId
|
|
}
|
|
});
|
|
};
|
|
|
|
// src/view/components/container/column/components/group/components/card/components/content/content.svelte
|
|
function add_css4(target) {
|
|
append_styles(target, "svelte-1wqkxy4", ".lng-prev.svelte-1wqkxy4{width:100%;min-height:var(--min-node-height);font-size:var(--font-text-size);padding:6px 6px 10px 12px;color-scheme:light}");
|
|
}
|
|
function create_fragment50(ctx) {
|
|
let div;
|
|
let div_class_value;
|
|
let markdownPreviewAction_action;
|
|
let mounted;
|
|
let dispose;
|
|
return {
|
|
c() {
|
|
div = element("div");
|
|
attr(div, "class", div_class_value = null_to_empty("lng-prev markdown-preview-view markdown-preview-section markdown-rendered") + " svelte-1wqkxy4");
|
|
},
|
|
m(target, anchor) {
|
|
insert(target, div, anchor);
|
|
if (!mounted) {
|
|
dispose = [
|
|
listen(
|
|
div,
|
|
"click",
|
|
/*handleClick*/
|
|
ctx[1]
|
|
),
|
|
listen(
|
|
div,
|
|
"dblclick",
|
|
/*handleDoubleClick*/
|
|
ctx[2]
|
|
),
|
|
action_destroyer(markdownPreviewAction_action = markdownPreviewAction.call(
|
|
null,
|
|
div,
|
|
/*nodeId*/
|
|
ctx[0]
|
|
))
|
|
];
|
|
mounted = true;
|
|
}
|
|
},
|
|
p(ctx2, [dirty]) {
|
|
if (markdownPreviewAction_action && is_function(markdownPreviewAction_action.update) && dirty & /*nodeId*/
|
|
1)
|
|
markdownPreviewAction_action.update.call(
|
|
null,
|
|
/*nodeId*/
|
|
ctx2[0]
|
|
);
|
|
},
|
|
i: noop,
|
|
o: noop,
|
|
d(detaching) {
|
|
if (detaching) {
|
|
detach(div);
|
|
}
|
|
mounted = false;
|
|
run_all(dispose);
|
|
}
|
|
};
|
|
}
|
|
function instance50($$self, $$props, $$invalidate) {
|
|
let { nodeId } = $$props;
|
|
let { isInSidebar } = $$props;
|
|
let { active } = $$props;
|
|
const view = getView();
|
|
const setActiveNode2 = (e) => {
|
|
if (isInSidebar) {
|
|
setActiveSidebarNode(view, nodeId);
|
|
} else {
|
|
setActiveMainSplitNode(view, nodeId, e);
|
|
}
|
|
};
|
|
const enableEditMode3 = () => {
|
|
if (isInSidebar) {
|
|
enableEditModeInSidebar(view, nodeId);
|
|
} else {
|
|
enableEditModeInMainSplit(view, nodeId);
|
|
}
|
|
};
|
|
const enableEditModeAtCursor = (e) => {
|
|
const content = get_store_value(contentStore(view, nodeId));
|
|
const cursor2 = getCursorPosition(content, e);
|
|
setActiveNode2(e);
|
|
if (cursor2) {
|
|
view.inlineEditor.setNodeCursor(nodeId, cursor2);
|
|
}
|
|
enableEditMode3();
|
|
};
|
|
const anotherNodeIsBeingEdited = () => {
|
|
const isNotActiveNode = active !== "node" /* node */;
|
|
const editingState = view.viewStore.getValue().document.editing;
|
|
return isNotActiveNode && editingState.activeNodeId && !editingState.isInSidebar;
|
|
};
|
|
const handleClick = (e) => {
|
|
if (isGrabbing(view))
|
|
return;
|
|
const maintainEditMode2 = get_store_value(MaintainEditMode(view));
|
|
const enableEditOnSingleClick = maintainEditMode2 && !isInSidebar && anotherNodeIsBeingEdited();
|
|
if (enableEditOnSingleClick) {
|
|
enableEditModeAtCursor(e);
|
|
} else {
|
|
handleLinks(view, e);
|
|
setActiveNode2(e);
|
|
}
|
|
};
|
|
const handleDoubleClick = (e) => {
|
|
if (isGrabbing(view))
|
|
return;
|
|
enableEditModeAtCursor(e);
|
|
};
|
|
$$self.$$set = ($$props2) => {
|
|
if ("nodeId" in $$props2)
|
|
$$invalidate(0, nodeId = $$props2.nodeId);
|
|
if ("isInSidebar" in $$props2)
|
|
$$invalidate(3, isInSidebar = $$props2.isInSidebar);
|
|
if ("active" in $$props2)
|
|
$$invalidate(4, active = $$props2.active);
|
|
};
|
|
return [nodeId, handleClick, handleDoubleClick, isInSidebar, active];
|
|
}
|
|
var Content = class extends SvelteComponent {
|
|
constructor(options) {
|
|
super();
|
|
init(this, options, instance50, create_fragment50, safe_not_equal, { nodeId: 0, isInSidebar: 3, active: 4 }, add_css4);
|
|
}
|
|
};
|
|
var content_default = Content;
|
|
|
|
// src/view/components/container/column/components/group/components/card/components/card-buttons/shared/floating-button.svelte
|
|
var import_classnames = __toESM(require_classnames());
|
|
function create_fragment51(ctx) {
|
|
let button;
|
|
let button_class_value;
|
|
let current;
|
|
let mounted;
|
|
let dispose;
|
|
const default_slot_template = (
|
|
/*#slots*/
|
|
ctx[5].default
|
|
);
|
|
const default_slot = create_slot(
|
|
default_slot_template,
|
|
ctx,
|
|
/*$$scope*/
|
|
ctx[4],
|
|
null
|
|
);
|
|
return {
|
|
c() {
|
|
button = element("button");
|
|
if (default_slot)
|
|
default_slot.c();
|
|
attr(
|
|
button,
|
|
"aria-label",
|
|
/*label*/
|
|
ctx[2]
|
|
);
|
|
attr(button, "class", button_class_value = (0, import_classnames.default)(
|
|
/*classes*/
|
|
ctx[0],
|
|
/*positionClasses*/
|
|
ctx[3][
|
|
/*position*/
|
|
ctx[1]
|
|
],
|
|
"lineage-floating-button"
|
|
));
|
|
},
|
|
m(target, anchor) {
|
|
insert(target, button, anchor);
|
|
if (default_slot) {
|
|
default_slot.m(button, null);
|
|
}
|
|
current = true;
|
|
if (!mounted) {
|
|
dispose = listen(
|
|
button,
|
|
"click",
|
|
/*click_handler*/
|
|
ctx[6]
|
|
);
|
|
mounted = true;
|
|
}
|
|
},
|
|
p(ctx2, [dirty]) {
|
|
if (default_slot) {
|
|
if (default_slot.p && (!current || dirty & /*$$scope*/
|
|
16)) {
|
|
update_slot_base(
|
|
default_slot,
|
|
default_slot_template,
|
|
ctx2,
|
|
/*$$scope*/
|
|
ctx2[4],
|
|
!current ? get_all_dirty_from_scope(
|
|
/*$$scope*/
|
|
ctx2[4]
|
|
) : get_slot_changes(
|
|
default_slot_template,
|
|
/*$$scope*/
|
|
ctx2[4],
|
|
dirty,
|
|
null
|
|
),
|
|
null
|
|
);
|
|
}
|
|
}
|
|
if (!current || dirty & /*label*/
|
|
4) {
|
|
attr(
|
|
button,
|
|
"aria-label",
|
|
/*label*/
|
|
ctx2[2]
|
|
);
|
|
}
|
|
if (!current || dirty & /*classes, position*/
|
|
3 && button_class_value !== (button_class_value = (0, import_classnames.default)(
|
|
/*classes*/
|
|
ctx2[0],
|
|
/*positionClasses*/
|
|
ctx2[3][
|
|
/*position*/
|
|
ctx2[1]
|
|
],
|
|
"lineage-floating-button"
|
|
))) {
|
|
attr(button, "class", button_class_value);
|
|
}
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(default_slot, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(default_slot, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
if (detaching) {
|
|
detach(button);
|
|
}
|
|
if (default_slot)
|
|
default_slot.d(detaching);
|
|
mounted = false;
|
|
dispose();
|
|
}
|
|
};
|
|
}
|
|
function instance51($$self, $$props, $$invalidate) {
|
|
let { $$slots: slots = {}, $$scope } = $$props;
|
|
let { classes = "" } = $$props;
|
|
let { position } = $$props;
|
|
let { label } = $$props;
|
|
const positionClasses = {
|
|
up: "position-top",
|
|
right: "position-right",
|
|
down: "position-bottom",
|
|
"down-right": "position-bottom-right",
|
|
"up-right": "position-top-right",
|
|
collapse: "collapse-button"
|
|
};
|
|
function click_handler(event) {
|
|
bubble.call(this, $$self, event);
|
|
}
|
|
$$self.$$set = ($$props2) => {
|
|
if ("classes" in $$props2)
|
|
$$invalidate(0, classes = $$props2.classes);
|
|
if ("position" in $$props2)
|
|
$$invalidate(1, position = $$props2.position);
|
|
if ("label" in $$props2)
|
|
$$invalidate(2, label = $$props2.label);
|
|
if ("$$scope" in $$props2)
|
|
$$invalidate(4, $$scope = $$props2.$$scope);
|
|
};
|
|
return [classes, position, label, positionClasses, $$scope, slots, click_handler];
|
|
}
|
|
var Floating_button = class extends SvelteComponent {
|
|
constructor(options) {
|
|
super();
|
|
init(this, options, instance51, create_fragment51, safe_not_equal, { classes: 0, position: 1, label: 2 });
|
|
}
|
|
};
|
|
var floating_button_default = Floating_button;
|
|
|
|
// src/view/actions/keyboard-shortcuts/helpers/commands/commands/helpers/delete-node.ts
|
|
var deleteNode = (view, nodeId, includeSelection = false) => {
|
|
const documentStore = view.documentStore;
|
|
const viewState = view.viewStore.getValue();
|
|
if (viewState.document.pendingConfirmation.deleteNode.has(nodeId)) {
|
|
const selectedNodes = includeSelection ? viewState.document.selectedNodes : void 0;
|
|
documentStore.dispatch({
|
|
type: "DOCUMENT/DELETE_NODE",
|
|
payload: {
|
|
activeNodeId: nodeId,
|
|
selectedNodes
|
|
}
|
|
});
|
|
view.viewStore.dispatch({
|
|
type: "view/confirmation/reset/delete-node"
|
|
});
|
|
} else {
|
|
view.viewStore.dispatch({
|
|
type: "view/confirmation/confirm/delete-node",
|
|
payload: {
|
|
id: nodeId,
|
|
includeSelection
|
|
}
|
|
});
|
|
}
|
|
};
|
|
|
|
// src/view/components/container/column/components/group/components/card/components/card-buttons/card-buttons/components/delete-node-button.svelte
|
|
function create_default_slot46(ctx) {
|
|
let trashicon;
|
|
let current;
|
|
trashicon = new trash_default({ props: { class: "svg-con" } });
|
|
return {
|
|
c() {
|
|
create_component(trashicon.$$.fragment);
|
|
},
|
|
m(target, anchor) {
|
|
mount_component(trashicon, target, anchor);
|
|
current = true;
|
|
},
|
|
p: noop,
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(trashicon.$$.fragment, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(trashicon.$$.fragment, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
destroy_component(trashicon, detaching);
|
|
}
|
|
};
|
|
}
|
|
function create_fragment52(ctx) {
|
|
let floatingbutton;
|
|
let current;
|
|
floatingbutton = new floating_button_default({
|
|
props: {
|
|
label: lang.card_btn_delete,
|
|
position: "up-right",
|
|
classes: "delete-card-button",
|
|
$$slots: { default: [create_default_slot46] },
|
|
$$scope: { ctx }
|
|
}
|
|
});
|
|
floatingbutton.$on(
|
|
"click",
|
|
/*_deleteNode*/
|
|
ctx[0]
|
|
);
|
|
return {
|
|
c() {
|
|
create_component(floatingbutton.$$.fragment);
|
|
},
|
|
m(target, anchor) {
|
|
mount_component(floatingbutton, target, anchor);
|
|
current = true;
|
|
},
|
|
p(ctx2, [dirty]) {
|
|
const floatingbutton_changes = {};
|
|
if (dirty & /*$$scope*/
|
|
8) {
|
|
floatingbutton_changes.$$scope = { dirty, ctx: ctx2 };
|
|
}
|
|
floatingbutton.$set(floatingbutton_changes);
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(floatingbutton.$$.fragment, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(floatingbutton.$$.fragment, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
destroy_component(floatingbutton, detaching);
|
|
}
|
|
};
|
|
}
|
|
function instance52($$self, $$props, $$invalidate) {
|
|
let { nodeId } = $$props;
|
|
const view = getView();
|
|
const _deleteNode = (e) => {
|
|
e.stopPropagation();
|
|
deleteNode(view, nodeId);
|
|
};
|
|
$$self.$$set = ($$props2) => {
|
|
if ("nodeId" in $$props2)
|
|
$$invalidate(1, nodeId = $$props2.nodeId);
|
|
};
|
|
return [_deleteNode, nodeId];
|
|
}
|
|
var Delete_node_button = class extends SvelteComponent {
|
|
constructor(options) {
|
|
super();
|
|
init(this, options, instance52, create_fragment52, safe_not_equal, { nodeId: 1 });
|
|
}
|
|
};
|
|
var delete_node_button_default = Delete_node_button;
|
|
|
|
// src/view/actions/keyboard-shortcuts/helpers/commands/commands/helpers/save-node-content.ts
|
|
var saveNodeContent = (view, modKey2 = false) => {
|
|
if (view.inlineEditor.nodeId) {
|
|
view.inlineEditor.unloadNode();
|
|
const isInSidebar = view.viewStore.getValue().document.editing.isInSidebar;
|
|
if (isInSidebar) {
|
|
view.viewStore.dispatch({
|
|
type: "view/sidebar/disable-edit",
|
|
context: {
|
|
modKey: modKey2
|
|
}
|
|
});
|
|
} else {
|
|
view.viewStore.dispatch({
|
|
type: "view/main/disable-edit",
|
|
context: {
|
|
modKey: modKey2
|
|
}
|
|
});
|
|
}
|
|
}
|
|
};
|
|
|
|
// src/view/components/container/column/components/group/components/card/components/card-buttons/card-buttons/components/edit-node-button.svelte
|
|
function create_else_block2(ctx) {
|
|
let pencilicon;
|
|
let current;
|
|
pencilicon = new pencil_default({ props: { class: "svg-icon" } });
|
|
return {
|
|
c() {
|
|
create_component(pencilicon.$$.fragment);
|
|
},
|
|
m(target, anchor) {
|
|
mount_component(pencilicon, target, anchor);
|
|
current = true;
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(pencilicon.$$.fragment, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(pencilicon.$$.fragment, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
destroy_component(pencilicon, detaching);
|
|
}
|
|
};
|
|
}
|
|
function create_if_block3(ctx) {
|
|
let saveicon;
|
|
let current;
|
|
saveicon = new save_default({ props: { class: "svg-con" } });
|
|
return {
|
|
c() {
|
|
create_component(saveicon.$$.fragment);
|
|
},
|
|
m(target, anchor) {
|
|
mount_component(saveicon, target, anchor);
|
|
current = true;
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(saveicon.$$.fragment, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(saveicon.$$.fragment, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
destroy_component(saveicon, detaching);
|
|
}
|
|
};
|
|
}
|
|
function create_default_slot47(ctx) {
|
|
let current_block_type_index;
|
|
let if_block;
|
|
let if_block_anchor;
|
|
let current;
|
|
const if_block_creators = [create_if_block3, create_else_block2];
|
|
const if_blocks = [];
|
|
function select_block_type(ctx2, dirty) {
|
|
if (
|
|
/*editing*/
|
|
ctx2[0]
|
|
)
|
|
return 0;
|
|
return 1;
|
|
}
|
|
current_block_type_index = select_block_type(ctx, -1);
|
|
if_block = if_blocks[current_block_type_index] = if_block_creators[current_block_type_index](ctx);
|
|
return {
|
|
c() {
|
|
if_block.c();
|
|
if_block_anchor = empty();
|
|
},
|
|
m(target, anchor) {
|
|
if_blocks[current_block_type_index].m(target, anchor);
|
|
insert(target, if_block_anchor, anchor);
|
|
current = true;
|
|
},
|
|
p(ctx2, dirty) {
|
|
let previous_block_index = current_block_type_index;
|
|
current_block_type_index = select_block_type(ctx2, dirty);
|
|
if (current_block_type_index !== previous_block_index) {
|
|
group_outros();
|
|
transition_out(if_blocks[previous_block_index], 1, 1, () => {
|
|
if_blocks[previous_block_index] = null;
|
|
});
|
|
check_outros();
|
|
if_block = if_blocks[current_block_type_index];
|
|
if (!if_block) {
|
|
if_block = if_blocks[current_block_type_index] = if_block_creators[current_block_type_index](ctx2);
|
|
if_block.c();
|
|
} else {
|
|
}
|
|
transition_in(if_block, 1);
|
|
if_block.m(if_block_anchor.parentNode, if_block_anchor);
|
|
}
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(if_block);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(if_block);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
if (detaching) {
|
|
detach(if_block_anchor);
|
|
}
|
|
if_blocks[current_block_type_index].d(detaching);
|
|
}
|
|
};
|
|
}
|
|
function create_fragment53(ctx) {
|
|
let floatingbutton;
|
|
let current;
|
|
floatingbutton = new floating_button_default({
|
|
props: {
|
|
label: (
|
|
/*editing*/
|
|
ctx[0] ? lang.card_btn_save : lang.card_btn_edit
|
|
),
|
|
position: "down-right",
|
|
$$slots: { default: [create_default_slot47] },
|
|
$$scope: { ctx }
|
|
}
|
|
});
|
|
floatingbutton.$on(
|
|
"click",
|
|
/*handleClick*/
|
|
ctx[1]
|
|
);
|
|
return {
|
|
c() {
|
|
create_component(floatingbutton.$$.fragment);
|
|
},
|
|
m(target, anchor) {
|
|
mount_component(floatingbutton, target, anchor);
|
|
current = true;
|
|
},
|
|
p(ctx2, [dirty]) {
|
|
const floatingbutton_changes = {};
|
|
if (dirty & /*editing*/
|
|
1)
|
|
floatingbutton_changes.label = /*editing*/
|
|
ctx2[0] ? lang.card_btn_save : lang.card_btn_edit;
|
|
if (dirty & /*$$scope, editing*/
|
|
257) {
|
|
floatingbutton_changes.$$scope = { dirty, ctx: ctx2 };
|
|
}
|
|
floatingbutton.$set(floatingbutton_changes);
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(floatingbutton.$$.fragment, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(floatingbutton.$$.fragment, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
destroy_component(floatingbutton, detaching);
|
|
}
|
|
};
|
|
}
|
|
function instance53($$self, $$props, $$invalidate) {
|
|
let { editing } = $$props;
|
|
let { nodeId } = $$props;
|
|
let { isInSidebar } = $$props;
|
|
const view = getView();
|
|
const viewStore = view.viewStore;
|
|
const enableEditMode3 = (e) => {
|
|
e.stopPropagation();
|
|
if (isInSidebar) {
|
|
enableEditModeInSidebar(view, nodeId);
|
|
} else {
|
|
enableEditModeInMainSplit(view, nodeId);
|
|
}
|
|
};
|
|
const saveNode = (e) => {
|
|
e.stopPropagation();
|
|
saveNodeContent(view);
|
|
};
|
|
const handleClick = (e) => {
|
|
if (editing) {
|
|
saveNode(e);
|
|
} else {
|
|
enableEditMode3(e);
|
|
}
|
|
};
|
|
$$self.$$set = ($$props2) => {
|
|
if ("editing" in $$props2)
|
|
$$invalidate(0, editing = $$props2.editing);
|
|
if ("nodeId" in $$props2)
|
|
$$invalidate(2, nodeId = $$props2.nodeId);
|
|
if ("isInSidebar" in $$props2)
|
|
$$invalidate(3, isInSidebar = $$props2.isInSidebar);
|
|
};
|
|
return [editing, handleClick, nodeId, isInSidebar];
|
|
}
|
|
var Edit_node_button = class extends SvelteComponent {
|
|
constructor(options) {
|
|
super();
|
|
init(this, options, instance53, create_fragment53, safe_not_equal, { editing: 0, nodeId: 2, isInSidebar: 3 });
|
|
}
|
|
};
|
|
var edit_node_button_default = Edit_node_button;
|
|
|
|
// src/view/actions/keyboard-shortcuts/helpers/commands/commands/helpers/is-editing.ts
|
|
var isEditing = (view) => {
|
|
return !!view.viewStore.getValue().document.editing.activeNodeId;
|
|
};
|
|
|
|
// src/view/actions/keyboard-shortcuts/helpers/commands/commands/helpers/save-node-and-insert-node.ts
|
|
var saveNodeAndInsertNode = (view, direction, content = "", activeNodeId) => {
|
|
if (isEditing(view)) {
|
|
saveNodeContent(view);
|
|
}
|
|
const nodeId = activeNodeId || view.viewStore.getValue().document.activeNode;
|
|
view.documentStore.dispatch({
|
|
type: "DOCUMENT/INSERT_NODE",
|
|
payload: {
|
|
position: direction,
|
|
content,
|
|
activeNodeId: nodeId
|
|
}
|
|
});
|
|
if (content) {
|
|
if (direction === "down" || direction === "right") {
|
|
view.inlineEditor.setNodeCursor(nodeId, { line: 0, ch: 0 });
|
|
}
|
|
}
|
|
};
|
|
|
|
// src/view/components/container/column/components/group/components/card/components/card-buttons/card-buttons/components/create-card-button.svelte
|
|
function create_default_slot48(ctx) {
|
|
let switch_instance;
|
|
let switch_instance_anchor;
|
|
let current;
|
|
var switch_value = (
|
|
/*chevrons*/
|
|
ctx[2][
|
|
/*position*/
|
|
ctx[0]
|
|
]
|
|
);
|
|
function switch_props(ctx2, dirty) {
|
|
return {};
|
|
}
|
|
if (switch_value) {
|
|
switch_instance = construct_svelte_component(switch_value, switch_props(ctx));
|
|
}
|
|
return {
|
|
c() {
|
|
if (switch_instance)
|
|
create_component(switch_instance.$$.fragment);
|
|
switch_instance_anchor = empty();
|
|
},
|
|
m(target, anchor) {
|
|
if (switch_instance)
|
|
mount_component(switch_instance, target, anchor);
|
|
insert(target, switch_instance_anchor, anchor);
|
|
current = true;
|
|
},
|
|
p(ctx2, dirty) {
|
|
if (dirty & /*position*/
|
|
1 && switch_value !== (switch_value = /*chevrons*/
|
|
ctx2[2][
|
|
/*position*/
|
|
ctx2[0]
|
|
])) {
|
|
if (switch_instance) {
|
|
group_outros();
|
|
const old_component = switch_instance;
|
|
transition_out(old_component.$$.fragment, 1, 0, () => {
|
|
destroy_component(old_component, 1);
|
|
});
|
|
check_outros();
|
|
}
|
|
if (switch_value) {
|
|
switch_instance = construct_svelte_component(switch_value, switch_props(ctx2, dirty));
|
|
create_component(switch_instance.$$.fragment);
|
|
transition_in(switch_instance.$$.fragment, 1);
|
|
mount_component(switch_instance, switch_instance_anchor.parentNode, switch_instance_anchor);
|
|
} else {
|
|
switch_instance = null;
|
|
}
|
|
} else if (switch_value) {
|
|
}
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
if (switch_instance)
|
|
transition_in(switch_instance.$$.fragment, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
if (switch_instance)
|
|
transition_out(switch_instance.$$.fragment, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
if (detaching) {
|
|
detach(switch_instance_anchor);
|
|
}
|
|
if (switch_instance)
|
|
destroy_component(switch_instance, detaching);
|
|
}
|
|
};
|
|
}
|
|
function create_fragment54(ctx) {
|
|
let floatingbutton;
|
|
let current;
|
|
floatingbutton = new floating_button_default({
|
|
props: {
|
|
label: (
|
|
/*label*/
|
|
ctx[3][
|
|
/*position*/
|
|
ctx[0]
|
|
]
|
|
),
|
|
position: (
|
|
/*position*/
|
|
ctx[0]
|
|
),
|
|
$$slots: { default: [create_default_slot48] },
|
|
$$scope: { ctx }
|
|
}
|
|
});
|
|
floatingbutton.$on(
|
|
"click",
|
|
/*createCard*/
|
|
ctx[1]
|
|
);
|
|
return {
|
|
c() {
|
|
create_component(floatingbutton.$$.fragment);
|
|
},
|
|
m(target, anchor) {
|
|
mount_component(floatingbutton, target, anchor);
|
|
current = true;
|
|
},
|
|
p(ctx2, [dirty]) {
|
|
const floatingbutton_changes = {};
|
|
if (dirty & /*position*/
|
|
1)
|
|
floatingbutton_changes.label = /*label*/
|
|
ctx2[3][
|
|
/*position*/
|
|
ctx2[0]
|
|
];
|
|
if (dirty & /*position*/
|
|
1)
|
|
floatingbutton_changes.position = /*position*/
|
|
ctx2[0];
|
|
if (dirty & /*$$scope, position*/
|
|
65) {
|
|
floatingbutton_changes.$$scope = { dirty, ctx: ctx2 };
|
|
}
|
|
floatingbutton.$set(floatingbutton_changes);
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(floatingbutton.$$.fragment, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(floatingbutton.$$.fragment, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
destroy_component(floatingbutton, detaching);
|
|
}
|
|
};
|
|
}
|
|
function instance54($$self, $$props, $$invalidate) {
|
|
let { nodeId } = $$props;
|
|
let { position } = $$props;
|
|
const view = getView();
|
|
const createCard = (e) => {
|
|
e.stopPropagation();
|
|
saveNodeAndInsertNode(view, position, void 0, nodeId);
|
|
};
|
|
const chevrons = {
|
|
right: chevron_right_default,
|
|
up: chevron_up_default,
|
|
down: chevron_down_default
|
|
};
|
|
const label = {
|
|
"up": lang.card_btn_add_card_above,
|
|
"down": lang.card_btn_add_card_below,
|
|
"right": lang.card_btn_add_child_card
|
|
};
|
|
$$self.$$set = ($$props2) => {
|
|
if ("nodeId" in $$props2)
|
|
$$invalidate(4, nodeId = $$props2.nodeId);
|
|
if ("position" in $$props2)
|
|
$$invalidate(0, position = $$props2.position);
|
|
};
|
|
return [position, createCard, chevrons, label, nodeId];
|
|
}
|
|
var Create_card_button = class extends SvelteComponent {
|
|
constructor(options) {
|
|
super();
|
|
init(this, options, instance54, create_fragment54, safe_not_equal, { nodeId: 4, position: 0 });
|
|
}
|
|
};
|
|
var create_card_button_default = Create_card_button;
|
|
|
|
// src/stores/view/subscriptions/effects/focus-container.ts
|
|
var import_obsidian6 = require("obsidian");
|
|
var focusContainer = (view) => {
|
|
setTimeout(() => {
|
|
if (view.container) {
|
|
const isEditing2 = Boolean(view.inlineEditor.nodeId);
|
|
const isEditingOnMobile = import_obsidian6.Platform.isMobile && isEditing2;
|
|
if (!isEditingOnMobile) {
|
|
if (isEditing2)
|
|
view.inlineEditor.focus();
|
|
else
|
|
view.container.focus();
|
|
}
|
|
}
|
|
}, 16);
|
|
};
|
|
|
|
// src/view/components/container/column/components/group/components/card/components/card-buttons/card-buttons/components/focus-card-button.svelte
|
|
function create_default_slot49(ctx) {
|
|
let focus;
|
|
let current;
|
|
focus = new focus_default({ props: { class: "svg-icon" } });
|
|
return {
|
|
c() {
|
|
create_component(focus.$$.fragment);
|
|
},
|
|
m(target, anchor) {
|
|
mount_component(focus, target, anchor);
|
|
current = true;
|
|
},
|
|
p: noop,
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(focus.$$.fragment, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(focus.$$.fragment, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
destroy_component(focus, detaching);
|
|
}
|
|
};
|
|
}
|
|
function create_fragment55(ctx) {
|
|
let floatingbutton;
|
|
let current;
|
|
floatingbutton = new floating_button_default({
|
|
props: {
|
|
label: lang.card_btn_scroll_to_reveal,
|
|
position: "up-right",
|
|
$$slots: { default: [create_default_slot49] },
|
|
$$scope: { ctx }
|
|
}
|
|
});
|
|
floatingbutton.$on(
|
|
"click",
|
|
/*focusCard*/
|
|
ctx[0]
|
|
);
|
|
return {
|
|
c() {
|
|
create_component(floatingbutton.$$.fragment);
|
|
},
|
|
m(target, anchor) {
|
|
mount_component(floatingbutton, target, anchor);
|
|
current = true;
|
|
},
|
|
p(ctx2, [dirty]) {
|
|
const floatingbutton_changes = {};
|
|
if (dirty & /*$$scope*/
|
|
8) {
|
|
floatingbutton_changes.$$scope = { dirty, ctx: ctx2 };
|
|
}
|
|
floatingbutton.$set(floatingbutton_changes);
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(floatingbutton.$$.fragment, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(floatingbutton.$$.fragment, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
destroy_component(floatingbutton, detaching);
|
|
}
|
|
};
|
|
}
|
|
function instance55($$self, $$props, $$invalidate) {
|
|
let { nodeId } = $$props;
|
|
const view = getView();
|
|
const focusCard = () => {
|
|
view.viewStore.dispatch({
|
|
type: "view/set-active-node/mouse",
|
|
payload: { id: nodeId }
|
|
});
|
|
focusContainer(view);
|
|
};
|
|
$$self.$$set = ($$props2) => {
|
|
if ("nodeId" in $$props2)
|
|
$$invalidate(1, nodeId = $$props2.nodeId);
|
|
};
|
|
return [focusCard, nodeId];
|
|
}
|
|
var Focus_card_button = class extends SvelteComponent {
|
|
constructor(options) {
|
|
super();
|
|
init(this, options, instance55, create_fragment55, safe_not_equal, { nodeId: 1 });
|
|
}
|
|
};
|
|
var focus_card_button_default = Focus_card_button;
|
|
|
|
// src/view/components/container/column/components/group/components/card/components/card-buttons/card-buttons/components/collapse-card-button.svelte
|
|
function create_else_block3(ctx) {
|
|
let minus;
|
|
let current;
|
|
minus = new minus_default({ props: { class: "svg-icon" } });
|
|
return {
|
|
c() {
|
|
create_component(minus.$$.fragment);
|
|
},
|
|
m(target, anchor) {
|
|
mount_component(minus, target, anchor);
|
|
current = true;
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(minus.$$.fragment, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(minus.$$.fragment, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
destroy_component(minus, detaching);
|
|
}
|
|
};
|
|
}
|
|
function create_if_block4(ctx) {
|
|
let plus;
|
|
let current;
|
|
plus = new plus_default({ props: { class: "svg-icon" } });
|
|
return {
|
|
c() {
|
|
create_component(plus.$$.fragment);
|
|
},
|
|
m(target, anchor) {
|
|
mount_component(plus, target, anchor);
|
|
current = true;
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(plus.$$.fragment, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(plus.$$.fragment, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
destroy_component(plus, detaching);
|
|
}
|
|
};
|
|
}
|
|
function create_default_slot50(ctx) {
|
|
let current_block_type_index;
|
|
let if_block;
|
|
let if_block_anchor;
|
|
let current;
|
|
const if_block_creators = [create_if_block4, create_else_block3];
|
|
const if_blocks = [];
|
|
function select_block_type(ctx2, dirty) {
|
|
if (
|
|
/*collapsed*/
|
|
ctx2[0]
|
|
)
|
|
return 0;
|
|
return 1;
|
|
}
|
|
current_block_type_index = select_block_type(ctx, -1);
|
|
if_block = if_blocks[current_block_type_index] = if_block_creators[current_block_type_index](ctx);
|
|
return {
|
|
c() {
|
|
if_block.c();
|
|
if_block_anchor = empty();
|
|
},
|
|
m(target, anchor) {
|
|
if_blocks[current_block_type_index].m(target, anchor);
|
|
insert(target, if_block_anchor, anchor);
|
|
current = true;
|
|
},
|
|
p(ctx2, dirty) {
|
|
let previous_block_index = current_block_type_index;
|
|
current_block_type_index = select_block_type(ctx2, dirty);
|
|
if (current_block_type_index !== previous_block_index) {
|
|
group_outros();
|
|
transition_out(if_blocks[previous_block_index], 1, 1, () => {
|
|
if_blocks[previous_block_index] = null;
|
|
});
|
|
check_outros();
|
|
if_block = if_blocks[current_block_type_index];
|
|
if (!if_block) {
|
|
if_block = if_blocks[current_block_type_index] = if_block_creators[current_block_type_index](ctx2);
|
|
if_block.c();
|
|
} else {
|
|
}
|
|
transition_in(if_block, 1);
|
|
if_block.m(if_block_anchor.parentNode, if_block_anchor);
|
|
}
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(if_block);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(if_block);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
if (detaching) {
|
|
detach(if_block_anchor);
|
|
}
|
|
if_blocks[current_block_type_index].d(detaching);
|
|
}
|
|
};
|
|
}
|
|
function create_fragment56(ctx) {
|
|
let floatingbutton;
|
|
let current;
|
|
floatingbutton = new floating_button_default({
|
|
props: {
|
|
label: (
|
|
/*collapsed*/
|
|
ctx[0] ? lang.card_btn_collapse_card : lang.card_btn_expand_card
|
|
),
|
|
position: "collapse",
|
|
$$slots: { default: [create_default_slot50] },
|
|
$$scope: { ctx }
|
|
}
|
|
});
|
|
floatingbutton.$on(
|
|
"click",
|
|
/*toggleCollapse*/
|
|
ctx[1]
|
|
);
|
|
return {
|
|
c() {
|
|
create_component(floatingbutton.$$.fragment);
|
|
},
|
|
m(target, anchor) {
|
|
mount_component(floatingbutton, target, anchor);
|
|
current = true;
|
|
},
|
|
p(ctx2, [dirty]) {
|
|
const floatingbutton_changes = {};
|
|
if (dirty & /*collapsed*/
|
|
1)
|
|
floatingbutton_changes.label = /*collapsed*/
|
|
ctx2[0] ? lang.card_btn_collapse_card : lang.card_btn_expand_card;
|
|
if (dirty & /*$$scope, collapsed*/
|
|
17) {
|
|
floatingbutton_changes.$$scope = { dirty, ctx: ctx2 };
|
|
}
|
|
floatingbutton.$set(floatingbutton_changes);
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(floatingbutton.$$.fragment, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(floatingbutton.$$.fragment, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
destroy_component(floatingbutton, detaching);
|
|
}
|
|
};
|
|
}
|
|
function instance56($$self, $$props, $$invalidate) {
|
|
let { nodeId } = $$props;
|
|
let { collapsed } = $$props;
|
|
const view = getView();
|
|
const toggleCollapse = () => {
|
|
view.viewStore.dispatch({
|
|
type: "view/outline/toggle-collapse-node",
|
|
payload: {
|
|
id: nodeId,
|
|
columns: view.documentStore.getValue().document.columns
|
|
}
|
|
});
|
|
};
|
|
$$self.$$set = ($$props2) => {
|
|
if ("nodeId" in $$props2)
|
|
$$invalidate(2, nodeId = $$props2.nodeId);
|
|
if ("collapsed" in $$props2)
|
|
$$invalidate(0, collapsed = $$props2.collapsed);
|
|
};
|
|
return [collapsed, toggleCollapse, nodeId];
|
|
}
|
|
var Collapse_card_button = class extends SvelteComponent {
|
|
constructor(options) {
|
|
super();
|
|
init(this, options, instance56, create_fragment56, safe_not_equal, { nodeId: 2, collapsed: 0 });
|
|
}
|
|
};
|
|
var collapse_card_button_default = Collapse_card_button;
|
|
|
|
// src/view/components/container/column/components/group/components/card/components/card-buttons/card-buttons/card-buttons.svelte
|
|
function create_if_block_1(ctx) {
|
|
let t;
|
|
let editnodebutton;
|
|
let current;
|
|
let if_block = !/*editing*/
|
|
ctx[0] && create_if_block_2(ctx);
|
|
editnodebutton = new edit_node_button_default({
|
|
props: {
|
|
editing: (
|
|
/*editing*/
|
|
ctx[0]
|
|
),
|
|
nodeId: (
|
|
/*nodeId*/
|
|
ctx[1]
|
|
),
|
|
isInSidebar: (
|
|
/*isInSidebar*/
|
|
ctx[3]
|
|
)
|
|
}
|
|
});
|
|
return {
|
|
c() {
|
|
if (if_block)
|
|
if_block.c();
|
|
t = space();
|
|
create_component(editnodebutton.$$.fragment);
|
|
},
|
|
m(target, anchor) {
|
|
if (if_block)
|
|
if_block.m(target, anchor);
|
|
insert(target, t, anchor);
|
|
mount_component(editnodebutton, target, anchor);
|
|
current = true;
|
|
},
|
|
p(ctx2, dirty) {
|
|
if (!/*editing*/
|
|
ctx2[0]) {
|
|
if (if_block) {
|
|
if_block.p(ctx2, dirty);
|
|
if (dirty & /*editing*/
|
|
1) {
|
|
transition_in(if_block, 1);
|
|
}
|
|
} else {
|
|
if_block = create_if_block_2(ctx2);
|
|
if_block.c();
|
|
transition_in(if_block, 1);
|
|
if_block.m(t.parentNode, t);
|
|
}
|
|
} else if (if_block) {
|
|
group_outros();
|
|
transition_out(if_block, 1, 1, () => {
|
|
if_block = null;
|
|
});
|
|
check_outros();
|
|
}
|
|
const editnodebutton_changes = {};
|
|
if (dirty & /*editing*/
|
|
1)
|
|
editnodebutton_changes.editing = /*editing*/
|
|
ctx2[0];
|
|
if (dirty & /*nodeId*/
|
|
2)
|
|
editnodebutton_changes.nodeId = /*nodeId*/
|
|
ctx2[1];
|
|
if (dirty & /*isInSidebar*/
|
|
8)
|
|
editnodebutton_changes.isInSidebar = /*isInSidebar*/
|
|
ctx2[3];
|
|
editnodebutton.$set(editnodebutton_changes);
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(if_block);
|
|
transition_in(editnodebutton.$$.fragment, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(if_block);
|
|
transition_out(editnodebutton.$$.fragment, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
if (detaching) {
|
|
detach(t);
|
|
}
|
|
if (if_block)
|
|
if_block.d(detaching);
|
|
destroy_component(editnodebutton, detaching);
|
|
}
|
|
};
|
|
}
|
|
function create_if_block_2(ctx) {
|
|
let current_block_type_index;
|
|
let if_block;
|
|
let if_block_anchor;
|
|
let current;
|
|
const if_block_creators = [create_if_block_3, create_else_block4];
|
|
const if_blocks = [];
|
|
function select_block_type(ctx2, dirty) {
|
|
if (!/*isInSidebar*/
|
|
ctx2[3])
|
|
return 0;
|
|
return 1;
|
|
}
|
|
current_block_type_index = select_block_type(ctx, -1);
|
|
if_block = if_blocks[current_block_type_index] = if_block_creators[current_block_type_index](ctx);
|
|
return {
|
|
c() {
|
|
if_block.c();
|
|
if_block_anchor = empty();
|
|
},
|
|
m(target, anchor) {
|
|
if_blocks[current_block_type_index].m(target, anchor);
|
|
insert(target, if_block_anchor, anchor);
|
|
current = true;
|
|
},
|
|
p(ctx2, dirty) {
|
|
let previous_block_index = current_block_type_index;
|
|
current_block_type_index = select_block_type(ctx2, dirty);
|
|
if (current_block_type_index === previous_block_index) {
|
|
if_blocks[current_block_type_index].p(ctx2, dirty);
|
|
} else {
|
|
group_outros();
|
|
transition_out(if_blocks[previous_block_index], 1, 1, () => {
|
|
if_blocks[previous_block_index] = null;
|
|
});
|
|
check_outros();
|
|
if_block = if_blocks[current_block_type_index];
|
|
if (!if_block) {
|
|
if_block = if_blocks[current_block_type_index] = if_block_creators[current_block_type_index](ctx2);
|
|
if_block.c();
|
|
} else {
|
|
if_block.p(ctx2, dirty);
|
|
}
|
|
transition_in(if_block, 1);
|
|
if_block.m(if_block_anchor.parentNode, if_block_anchor);
|
|
}
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(if_block);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(if_block);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
if (detaching) {
|
|
detach(if_block_anchor);
|
|
}
|
|
if_blocks[current_block_type_index].d(detaching);
|
|
}
|
|
};
|
|
}
|
|
function create_else_block4(ctx) {
|
|
let focuscardbutton;
|
|
let current;
|
|
focuscardbutton = new focus_card_button_default({ props: { nodeId: (
|
|
/*nodeId*/
|
|
ctx[1]
|
|
) } });
|
|
return {
|
|
c() {
|
|
create_component(focuscardbutton.$$.fragment);
|
|
},
|
|
m(target, anchor) {
|
|
mount_component(focuscardbutton, target, anchor);
|
|
current = true;
|
|
},
|
|
p(ctx2, dirty) {
|
|
const focuscardbutton_changes = {};
|
|
if (dirty & /*nodeId*/
|
|
2)
|
|
focuscardbutton_changes.nodeId = /*nodeId*/
|
|
ctx2[1];
|
|
focuscardbutton.$set(focuscardbutton_changes);
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(focuscardbutton.$$.fragment, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(focuscardbutton.$$.fragment, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
destroy_component(focuscardbutton, detaching);
|
|
}
|
|
};
|
|
}
|
|
function create_if_block_3(ctx) {
|
|
let createcardbutton0;
|
|
let t0;
|
|
let createcardbutton1;
|
|
let t1;
|
|
let createcardbutton2;
|
|
let t2;
|
|
let deletenodebutton;
|
|
let current;
|
|
createcardbutton0 = new create_card_button_default({
|
|
props: {
|
|
position: "up",
|
|
nodeId: (
|
|
/*nodeId*/
|
|
ctx[1]
|
|
)
|
|
}
|
|
});
|
|
createcardbutton1 = new create_card_button_default({
|
|
props: {
|
|
position: "right",
|
|
nodeId: (
|
|
/*nodeId*/
|
|
ctx[1]
|
|
)
|
|
}
|
|
});
|
|
createcardbutton2 = new create_card_button_default({
|
|
props: {
|
|
position: "down",
|
|
nodeId: (
|
|
/*nodeId*/
|
|
ctx[1]
|
|
)
|
|
}
|
|
});
|
|
deletenodebutton = new delete_node_button_default({ props: { nodeId: (
|
|
/*nodeId*/
|
|
ctx[1]
|
|
) } });
|
|
return {
|
|
c() {
|
|
create_component(createcardbutton0.$$.fragment);
|
|
t0 = space();
|
|
create_component(createcardbutton1.$$.fragment);
|
|
t1 = space();
|
|
create_component(createcardbutton2.$$.fragment);
|
|
t2 = space();
|
|
create_component(deletenodebutton.$$.fragment);
|
|
},
|
|
m(target, anchor) {
|
|
mount_component(createcardbutton0, target, anchor);
|
|
insert(target, t0, anchor);
|
|
mount_component(createcardbutton1, target, anchor);
|
|
insert(target, t1, anchor);
|
|
mount_component(createcardbutton2, target, anchor);
|
|
insert(target, t2, anchor);
|
|
mount_component(deletenodebutton, target, anchor);
|
|
current = true;
|
|
},
|
|
p(ctx2, dirty) {
|
|
const createcardbutton0_changes = {};
|
|
if (dirty & /*nodeId*/
|
|
2)
|
|
createcardbutton0_changes.nodeId = /*nodeId*/
|
|
ctx2[1];
|
|
createcardbutton0.$set(createcardbutton0_changes);
|
|
const createcardbutton1_changes = {};
|
|
if (dirty & /*nodeId*/
|
|
2)
|
|
createcardbutton1_changes.nodeId = /*nodeId*/
|
|
ctx2[1];
|
|
createcardbutton1.$set(createcardbutton1_changes);
|
|
const createcardbutton2_changes = {};
|
|
if (dirty & /*nodeId*/
|
|
2)
|
|
createcardbutton2_changes.nodeId = /*nodeId*/
|
|
ctx2[1];
|
|
createcardbutton2.$set(createcardbutton2_changes);
|
|
const deletenodebutton_changes = {};
|
|
if (dirty & /*nodeId*/
|
|
2)
|
|
deletenodebutton_changes.nodeId = /*nodeId*/
|
|
ctx2[1];
|
|
deletenodebutton.$set(deletenodebutton_changes);
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(createcardbutton0.$$.fragment, local);
|
|
transition_in(createcardbutton1.$$.fragment, local);
|
|
transition_in(createcardbutton2.$$.fragment, local);
|
|
transition_in(deletenodebutton.$$.fragment, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(createcardbutton0.$$.fragment, local);
|
|
transition_out(createcardbutton1.$$.fragment, local);
|
|
transition_out(createcardbutton2.$$.fragment, local);
|
|
transition_out(deletenodebutton.$$.fragment, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
if (detaching) {
|
|
detach(t0);
|
|
detach(t1);
|
|
detach(t2);
|
|
}
|
|
destroy_component(createcardbutton0, detaching);
|
|
destroy_component(createcardbutton1, detaching);
|
|
destroy_component(createcardbutton2, detaching);
|
|
destroy_component(deletenodebutton, detaching);
|
|
}
|
|
};
|
|
}
|
|
function create_if_block5(ctx) {
|
|
let collapsecardbutton;
|
|
let current;
|
|
collapsecardbutton = new collapse_card_button_default({
|
|
props: {
|
|
nodeId: (
|
|
/*nodeId*/
|
|
ctx[1]
|
|
),
|
|
collapsed: (
|
|
/*collapsed*/
|
|
ctx[4]
|
|
)
|
|
}
|
|
});
|
|
return {
|
|
c() {
|
|
create_component(collapsecardbutton.$$.fragment);
|
|
},
|
|
m(target, anchor) {
|
|
mount_component(collapsecardbutton, target, anchor);
|
|
current = true;
|
|
},
|
|
p(ctx2, dirty) {
|
|
const collapsecardbutton_changes = {};
|
|
if (dirty & /*nodeId*/
|
|
2)
|
|
collapsecardbutton_changes.nodeId = /*nodeId*/
|
|
ctx2[1];
|
|
if (dirty & /*collapsed*/
|
|
16)
|
|
collapsecardbutton_changes.collapsed = /*collapsed*/
|
|
ctx2[4];
|
|
collapsecardbutton.$set(collapsecardbutton_changes);
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(collapsecardbutton.$$.fragment, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(collapsecardbutton.$$.fragment, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
destroy_component(collapsecardbutton, detaching);
|
|
}
|
|
};
|
|
}
|
|
function create_fragment57(ctx) {
|
|
let t;
|
|
let if_block1_anchor;
|
|
let current;
|
|
let if_block0 = (
|
|
/*active*/
|
|
(ctx[5] === "node" /* node */ || /*alwaysShowCardButtons*/
|
|
ctx[6]) && create_if_block_1(ctx)
|
|
);
|
|
let if_block1 = (
|
|
/*outlineMode*/
|
|
ctx[7] && /*hasChildren*/
|
|
ctx[2] && create_if_block5(ctx)
|
|
);
|
|
return {
|
|
c() {
|
|
if (if_block0)
|
|
if_block0.c();
|
|
t = space();
|
|
if (if_block1)
|
|
if_block1.c();
|
|
if_block1_anchor = empty();
|
|
},
|
|
m(target, anchor) {
|
|
if (if_block0)
|
|
if_block0.m(target, anchor);
|
|
insert(target, t, anchor);
|
|
if (if_block1)
|
|
if_block1.m(target, anchor);
|
|
insert(target, if_block1_anchor, anchor);
|
|
current = true;
|
|
},
|
|
p(ctx2, [dirty]) {
|
|
if (
|
|
/*active*/
|
|
ctx2[5] === "node" /* node */ || /*alwaysShowCardButtons*/
|
|
ctx2[6]
|
|
) {
|
|
if (if_block0) {
|
|
if_block0.p(ctx2, dirty);
|
|
if (dirty & /*active, alwaysShowCardButtons*/
|
|
96) {
|
|
transition_in(if_block0, 1);
|
|
}
|
|
} else {
|
|
if_block0 = create_if_block_1(ctx2);
|
|
if_block0.c();
|
|
transition_in(if_block0, 1);
|
|
if_block0.m(t.parentNode, t);
|
|
}
|
|
} else if (if_block0) {
|
|
group_outros();
|
|
transition_out(if_block0, 1, 1, () => {
|
|
if_block0 = null;
|
|
});
|
|
check_outros();
|
|
}
|
|
if (
|
|
/*outlineMode*/
|
|
ctx2[7] && /*hasChildren*/
|
|
ctx2[2]
|
|
) {
|
|
if (if_block1) {
|
|
if_block1.p(ctx2, dirty);
|
|
if (dirty & /*outlineMode, hasChildren*/
|
|
132) {
|
|
transition_in(if_block1, 1);
|
|
}
|
|
} else {
|
|
if_block1 = create_if_block5(ctx2);
|
|
if_block1.c();
|
|
transition_in(if_block1, 1);
|
|
if_block1.m(if_block1_anchor.parentNode, if_block1_anchor);
|
|
}
|
|
} else if (if_block1) {
|
|
group_outros();
|
|
transition_out(if_block1, 1, 1, () => {
|
|
if_block1 = null;
|
|
});
|
|
check_outros();
|
|
}
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(if_block0);
|
|
transition_in(if_block1);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(if_block0);
|
|
transition_out(if_block1);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
if (detaching) {
|
|
detach(t);
|
|
detach(if_block1_anchor);
|
|
}
|
|
if (if_block0)
|
|
if_block0.d(detaching);
|
|
if (if_block1)
|
|
if_block1.d(detaching);
|
|
}
|
|
};
|
|
}
|
|
function instance57($$self, $$props, $$invalidate) {
|
|
let { editing } = $$props;
|
|
let { nodeId } = $$props;
|
|
let { hasChildren } = $$props;
|
|
let { isInSidebar = false } = $$props;
|
|
let { collapsed } = $$props;
|
|
let { active } = $$props;
|
|
let { alwaysShowCardButtons } = $$props;
|
|
let { outlineMode } = $$props;
|
|
$$self.$$set = ($$props2) => {
|
|
if ("editing" in $$props2)
|
|
$$invalidate(0, editing = $$props2.editing);
|
|
if ("nodeId" in $$props2)
|
|
$$invalidate(1, nodeId = $$props2.nodeId);
|
|
if ("hasChildren" in $$props2)
|
|
$$invalidate(2, hasChildren = $$props2.hasChildren);
|
|
if ("isInSidebar" in $$props2)
|
|
$$invalidate(3, isInSidebar = $$props2.isInSidebar);
|
|
if ("collapsed" in $$props2)
|
|
$$invalidate(4, collapsed = $$props2.collapsed);
|
|
if ("active" in $$props2)
|
|
$$invalidate(5, active = $$props2.active);
|
|
if ("alwaysShowCardButtons" in $$props2)
|
|
$$invalidate(6, alwaysShowCardButtons = $$props2.alwaysShowCardButtons);
|
|
if ("outlineMode" in $$props2)
|
|
$$invalidate(7, outlineMode = $$props2.outlineMode);
|
|
};
|
|
return [
|
|
editing,
|
|
nodeId,
|
|
hasChildren,
|
|
isInSidebar,
|
|
collapsed,
|
|
active,
|
|
alwaysShowCardButtons,
|
|
outlineMode
|
|
];
|
|
}
|
|
var Card_buttons = class extends SvelteComponent {
|
|
constructor(options) {
|
|
super();
|
|
init(this, options, instance57, create_fragment57, safe_not_equal, {
|
|
editing: 0,
|
|
nodeId: 1,
|
|
hasChildren: 2,
|
|
isInSidebar: 3,
|
|
collapsed: 4,
|
|
active: 5,
|
|
alwaysShowCardButtons: 6,
|
|
outlineMode: 7
|
|
});
|
|
}
|
|
};
|
|
var card_buttons_default = Card_buttons;
|
|
|
|
// src/view/components/container/column/components/group/components/card/card.svelte
|
|
var import_classnames2 = __toESM(require_classnames());
|
|
|
|
// src/view/components/container/column/components/group/components/card/components/bridges/bridges.svelte
|
|
function add_css5(target) {
|
|
append_styles(target, "svelte-1bkhe9s", ".active-node-bridge.svelte-1bkhe9s,.active-parent-bridge-right.svelte-1bkhe9s,.active-parent-bridge-left.svelte-1bkhe9s{height:100%;width:10px;position:absolute;top:0}.active-parent-bridge-right.svelte-1bkhe9s{right:-10px;background-color:var(--bg-color)}.active-parent-bridge-left.svelte-1bkhe9s{left:-10px;background-color:var(--bg-color)}.active-node-bridge.svelte-1bkhe9s{right:-10px;background-color:var(--bg-color)}");
|
|
}
|
|
function create_if_block_12(ctx) {
|
|
let div;
|
|
let div_class_value;
|
|
let t;
|
|
let if_block_anchor;
|
|
let if_block = !/*firstColumn*/
|
|
ctx[3] && create_if_block_22(ctx);
|
|
return {
|
|
c() {
|
|
div = element("div");
|
|
t = space();
|
|
if (if_block)
|
|
if_block.c();
|
|
if_block_anchor = empty();
|
|
attr(div, "class", div_class_value = null_to_empty("active-parent-bridge-right") + " svelte-1bkhe9s");
|
|
set_style(
|
|
div,
|
|
"--bg-color",
|
|
/*style*/
|
|
ctx[4] && /*style*/
|
|
ctx[4].styleVariant == "background-color" ? (
|
|
/*style*/
|
|
ctx[4].color
|
|
) : "var(--background-active-parent)"
|
|
);
|
|
},
|
|
m(target, anchor) {
|
|
insert(target, div, anchor);
|
|
insert(target, t, anchor);
|
|
if (if_block)
|
|
if_block.m(target, anchor);
|
|
insert(target, if_block_anchor, anchor);
|
|
},
|
|
p(ctx2, dirty) {
|
|
if (dirty & /*style*/
|
|
16) {
|
|
set_style(
|
|
div,
|
|
"--bg-color",
|
|
/*style*/
|
|
ctx2[4] && /*style*/
|
|
ctx2[4].styleVariant == "background-color" ? (
|
|
/*style*/
|
|
ctx2[4].color
|
|
) : "var(--background-active-parent)"
|
|
);
|
|
}
|
|
if (!/*firstColumn*/
|
|
ctx2[3]) {
|
|
if (if_block) {
|
|
if_block.p(ctx2, dirty);
|
|
} else {
|
|
if_block = create_if_block_22(ctx2);
|
|
if_block.c();
|
|
if_block.m(if_block_anchor.parentNode, if_block_anchor);
|
|
}
|
|
} else if (if_block) {
|
|
if_block.d(1);
|
|
if_block = null;
|
|
}
|
|
},
|
|
d(detaching) {
|
|
if (detaching) {
|
|
detach(div);
|
|
detach(t);
|
|
detach(if_block_anchor);
|
|
}
|
|
if (if_block)
|
|
if_block.d(detaching);
|
|
}
|
|
};
|
|
}
|
|
function create_if_block6(ctx) {
|
|
let div;
|
|
return {
|
|
c() {
|
|
div = element("div");
|
|
attr(div, "class", "active-node-bridge svelte-1bkhe9s");
|
|
set_style(
|
|
div,
|
|
"--bg-color",
|
|
/*style*/
|
|
ctx[4] && /*style*/
|
|
ctx[4].styleVariant == "background-color" ? "transparent" : "var(--background-active-node)"
|
|
);
|
|
},
|
|
m(target, anchor) {
|
|
insert(target, div, anchor);
|
|
},
|
|
p(ctx2, dirty) {
|
|
if (dirty & /*style*/
|
|
16) {
|
|
set_style(
|
|
div,
|
|
"--bg-color",
|
|
/*style*/
|
|
ctx2[4] && /*style*/
|
|
ctx2[4].styleVariant == "background-color" ? "transparent" : "var(--background-active-node)"
|
|
);
|
|
}
|
|
},
|
|
d(detaching) {
|
|
if (detaching) {
|
|
detach(div);
|
|
}
|
|
}
|
|
};
|
|
}
|
|
function create_if_block_22(ctx) {
|
|
let div;
|
|
return {
|
|
c() {
|
|
div = element("div");
|
|
attr(div, "class", "active-parent-bridge-left svelte-1bkhe9s");
|
|
set_style(
|
|
div,
|
|
"--bg-color",
|
|
/*style*/
|
|
ctx[4] && /*style*/
|
|
ctx[4].styleVariant == "background-color" ? (
|
|
/*style*/
|
|
ctx[4].color
|
|
) : "var(--background-active-parent)"
|
|
);
|
|
},
|
|
m(target, anchor) {
|
|
insert(target, div, anchor);
|
|
},
|
|
p(ctx2, dirty) {
|
|
if (dirty & /*style*/
|
|
16) {
|
|
set_style(
|
|
div,
|
|
"--bg-color",
|
|
/*style*/
|
|
ctx2[4] && /*style*/
|
|
ctx2[4].styleVariant == "background-color" ? (
|
|
/*style*/
|
|
ctx2[4].color
|
|
) : "var(--background-active-parent)"
|
|
);
|
|
}
|
|
},
|
|
d(detaching) {
|
|
if (detaching) {
|
|
detach(div);
|
|
}
|
|
}
|
|
};
|
|
}
|
|
function create_fragment58(ctx) {
|
|
let if_block_anchor;
|
|
function select_block_type(ctx2, dirty) {
|
|
if (!/*editing*/
|
|
ctx2[0] && /*hasActiveChildren*/
|
|
ctx2[1] && /*active*/
|
|
ctx2[2] === "node" /* node */)
|
|
return create_if_block6;
|
|
if (
|
|
/*active*/
|
|
ctx2[2] === "parent" /* parent */
|
|
)
|
|
return create_if_block_12;
|
|
}
|
|
let current_block_type = select_block_type(ctx, -1);
|
|
let if_block = current_block_type && current_block_type(ctx);
|
|
return {
|
|
c() {
|
|
if (if_block)
|
|
if_block.c();
|
|
if_block_anchor = empty();
|
|
},
|
|
m(target, anchor) {
|
|
if (if_block)
|
|
if_block.m(target, anchor);
|
|
insert(target, if_block_anchor, anchor);
|
|
},
|
|
p(ctx2, [dirty]) {
|
|
if (current_block_type === (current_block_type = select_block_type(ctx2, dirty)) && if_block) {
|
|
if_block.p(ctx2, dirty);
|
|
} else {
|
|
if (if_block)
|
|
if_block.d(1);
|
|
if_block = current_block_type && current_block_type(ctx2);
|
|
if (if_block) {
|
|
if_block.c();
|
|
if_block.m(if_block_anchor.parentNode, if_block_anchor);
|
|
}
|
|
}
|
|
},
|
|
i: noop,
|
|
o: noop,
|
|
d(detaching) {
|
|
if (detaching) {
|
|
detach(if_block_anchor);
|
|
}
|
|
if (if_block) {
|
|
if_block.d(detaching);
|
|
}
|
|
}
|
|
};
|
|
}
|
|
function instance58($$self, $$props, $$invalidate) {
|
|
let { editing } = $$props;
|
|
let { hasActiveChildren } = $$props;
|
|
let { active } = $$props;
|
|
let { firstColumn } = $$props;
|
|
let { style } = $$props;
|
|
$$self.$$set = ($$props2) => {
|
|
if ("editing" in $$props2)
|
|
$$invalidate(0, editing = $$props2.editing);
|
|
if ("hasActiveChildren" in $$props2)
|
|
$$invalidate(1, hasActiveChildren = $$props2.hasActiveChildren);
|
|
if ("active" in $$props2)
|
|
$$invalidate(2, active = $$props2.active);
|
|
if ("firstColumn" in $$props2)
|
|
$$invalidate(3, firstColumn = $$props2.firstColumn);
|
|
if ("style" in $$props2)
|
|
$$invalidate(4, style = $$props2.style);
|
|
};
|
|
return [editing, hasActiveChildren, active, firstColumn, style];
|
|
}
|
|
var Bridges = class extends SvelteComponent {
|
|
constructor(options) {
|
|
super();
|
|
init(
|
|
this,
|
|
options,
|
|
instance58,
|
|
create_fragment58,
|
|
safe_not_equal,
|
|
{
|
|
editing: 0,
|
|
hasActiveChildren: 1,
|
|
active: 2,
|
|
firstColumn: 3,
|
|
style: 4
|
|
},
|
|
add_css5
|
|
);
|
|
}
|
|
};
|
|
var bridges_default = Bridges;
|
|
|
|
// node_modules/nanoid/url-alphabet/index.js
|
|
var urlAlphabet = "useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict";
|
|
|
|
// node_modules/nanoid/index.browser.js
|
|
var nanoid = (size = 21) => {
|
|
let id2 = "";
|
|
let bytes = crypto.getRandomValues(new Uint8Array(size));
|
|
while (size--) {
|
|
id2 += urlAlphabet[bytes[size] & 63];
|
|
}
|
|
return id2;
|
|
};
|
|
|
|
// src/helpers/id.ts
|
|
var id_size = 8;
|
|
var id = {
|
|
rootNode: () => "r" + nanoid(id_size),
|
|
// node: () => 'n-' + RandomId.generateId('adjectives', 'nouns'),
|
|
// column: () => 'c-' + RandomId.generateId('cities'),
|
|
node: () => "n" + nanoid(id_size),
|
|
column: () => "c" + nanoid(id_size),
|
|
snapshot: () => "s" + nanoid(id_size),
|
|
view: () => "v" + nanoid(id_size),
|
|
canvas: () => "canvas-" + nanoid(id_size),
|
|
styleRule: () => "sr" + nanoid(id_size)
|
|
};
|
|
var isId = {
|
|
node: (text2) => text2.length === 9 && text2.startsWith("n")
|
|
};
|
|
|
|
// src/view/actions/dnd/droppable.ts
|
|
var getDropPosition = (event, targetElement) => {
|
|
const boundingBox = targetElement.getBoundingClientRect();
|
|
const mouseX = event.clientX;
|
|
const mouseY = event.clientY;
|
|
if (mouseY - boundingBox.top < boundingBox.height / 4) {
|
|
return "up";
|
|
} else if (boundingBox.bottom - mouseY < boundingBox.height / 4)
|
|
return "down";
|
|
else if (boundingBox.right - mouseX < boundingBox.width / 4)
|
|
return "right";
|
|
};
|
|
var dropClasses = {
|
|
up: "lineage__drop-node-above",
|
|
down: "lineage__drop-node-below",
|
|
right: "lineage__drop-node-under"
|
|
};
|
|
var classesList = Object.values(dropClasses);
|
|
var droppable = (node) => {
|
|
const view = getView();
|
|
const viewStore = view.viewStore;
|
|
const documentStore = view.documentStore;
|
|
function HandleDragLeave(event) {
|
|
if (!(event.currentTarget instanceof HTMLElement))
|
|
return;
|
|
event.currentTarget.removeClasses(classesList);
|
|
event.currentTarget.removeClass("inactive-node-hover");
|
|
}
|
|
const handleDragOver = (event) => {
|
|
event.preventDefault();
|
|
if (!event.dataTransfer)
|
|
return;
|
|
const targetCard = event.currentTarget;
|
|
if (!targetCard.id.startsWith("n"))
|
|
return;
|
|
event.dataTransfer.dropEffect = "move";
|
|
const position = getDropPosition(event, targetCard);
|
|
targetCard.removeClasses(classesList);
|
|
if (position) {
|
|
targetCard.addClass(dropClasses[position]);
|
|
if (targetCard.hasClass("inactive-node"))
|
|
targetCard.addClass("inactive-node-hover");
|
|
}
|
|
};
|
|
function handleDrop(event) {
|
|
event.preventDefault();
|
|
if (!(event.currentTarget instanceof HTMLElement))
|
|
return;
|
|
if (!event.dataTransfer)
|
|
return;
|
|
const data = event.dataTransfer.getData("text/plain");
|
|
const targetCard = event.currentTarget;
|
|
if (!targetCard.id.startsWith("n"))
|
|
return;
|
|
targetCard.removeClasses(classesList);
|
|
targetCard.removeClass("inactive-node-hover");
|
|
if (!data)
|
|
throw new Error(`droppedNodeId is missing`);
|
|
if (!targetCard.id)
|
|
throw new Error(`targetCard.id is missing`);
|
|
const sections = documentStore.getValue().sections;
|
|
if (isId.node(data) && sections.id_section[data]) {
|
|
documentStore.dispatch({
|
|
type: "DOCUMENT/DROP_NODE",
|
|
payload: {
|
|
droppedNodeId: data,
|
|
targetNodeId: targetCard.id,
|
|
position: getDropPosition(event, targetCard)
|
|
}
|
|
});
|
|
} else {
|
|
documentStore.dispatch({
|
|
type: "DOCUMENT/PASTE_NODE",
|
|
payload: {
|
|
targetNodeId: targetCard.id,
|
|
text: data,
|
|
position: getDropPosition(event, targetCard)
|
|
}
|
|
});
|
|
}
|
|
viewStore.dispatch({
|
|
type: "DOCUMENT/SET_DRAG_ENDED"
|
|
});
|
|
}
|
|
node.addEventListener("dragleave", HandleDragLeave);
|
|
node.addEventListener("dragover", handleDragOver);
|
|
node.addEventListener("drop", handleDrop);
|
|
return {
|
|
destroy() {
|
|
node.removeEventListener("dragleave", HandleDragLeave);
|
|
node.removeEventListener("dragover", handleDragOver);
|
|
node.removeEventListener("drop", handleDrop);
|
|
}
|
|
};
|
|
};
|
|
|
|
// src/obsidian/events/workspace/helpers/get-document-format.ts
|
|
var getDocumentFormat = (view) => {
|
|
invariant(view.file);
|
|
const format2 = view.plugin.settings.getValue().documents[view.file.path]?.documentFormat;
|
|
invariant(format2);
|
|
return format2;
|
|
};
|
|
|
|
// src/lib/data-conversion/helpers/html-comment-marker/parse-html-comment-marker.ts
|
|
var htmlCommentRegex = /\s*<!--\s*section:\s*((\d\.?)*(\d))[\w\s]*-->/;
|
|
var parseHtmlCommentMarker = (line) => {
|
|
const results = htmlCommentRegex.exec(line);
|
|
if (results) {
|
|
const result = results[1];
|
|
const split2 = result.split(".");
|
|
const index = split2[split2.length - 1];
|
|
const parent = result.substring(0, result.length - index.length - 1);
|
|
return [parent, index, result];
|
|
}
|
|
};
|
|
|
|
// src/view/components/container/column/components/group/components/card/components/card-buttons/helpers/find-section-position.ts
|
|
var findSectionPosition = (view, nodeId) => {
|
|
const lines = view.data.split("\n");
|
|
const treeIndex = get_store_value(view.documentStore).sections.id_section[nodeId];
|
|
for (let i = 0; i < lines.length; i++) {
|
|
const line = lines[i];
|
|
if (line.startsWith("<!--")) {
|
|
const section = parseHtmlCommentMarker(line);
|
|
if (section && section[2] === treeIndex) {
|
|
return i;
|
|
}
|
|
}
|
|
}
|
|
};
|
|
|
|
// src/helpers/clone.ts
|
|
var clone = (object) => JSON.parse(JSON.stringify(object));
|
|
|
|
// src/lib/data-conversion/json-to-x/json-to-outline.ts
|
|
var formatContent = (content, indent) => {
|
|
const lines = content.split("\n");
|
|
return lines.length === 1 ? lines[0] : lines.map((line, i) => i === 0 ? line : `${indent} ${line}`).join("\n");
|
|
};
|
|
var nodeToOutline = (node, depth = 0) => {
|
|
const indent = " ".repeat(depth);
|
|
let outline2 = `${indent}- ${formatContent(node.content, indent)}
|
|
`;
|
|
for (const child of node.children) {
|
|
outline2 += nodeToOutline(child, depth + 1);
|
|
}
|
|
return outline2;
|
|
};
|
|
var jsonToOutline = (nodes, depth = 0) => {
|
|
const mapped = nodes.map((node) => nodeToOutline(node, depth));
|
|
const last = mapped.pop() || "";
|
|
mapped.push(last.replace(/\n$/, ""));
|
|
return mapped.join("");
|
|
};
|
|
|
|
// src/lib/data-conversion/x-to-json/columns-to-json.ts
|
|
var createTreeNode = (content = "") => {
|
|
return {
|
|
content: content.trim(),
|
|
children: []
|
|
};
|
|
};
|
|
var columnsToJson = (columns, content) => {
|
|
const nodeMap = {};
|
|
for (const column of columns) {
|
|
for (const group of column.groups) {
|
|
for (const node of group.nodes) {
|
|
const treeNode = createTreeNode(content[node]?.content);
|
|
let parentNode = nodeMap[group.parentId];
|
|
if (!parentNode) {
|
|
parentNode = createTreeNode();
|
|
nodeMap[group.parentId] = parentNode;
|
|
}
|
|
parentNode.children.push(treeNode);
|
|
nodeMap[node] = treeNode;
|
|
}
|
|
}
|
|
}
|
|
const roots = [];
|
|
if (columns[0])
|
|
for (const group of columns[0].groups) {
|
|
for (const node of group.nodes) {
|
|
const treeNode = nodeMap[node];
|
|
if (treeNode) {
|
|
roots.push(treeNode);
|
|
} else {
|
|
throw new Error(`could not find node ${node}`);
|
|
}
|
|
}
|
|
}
|
|
return roots;
|
|
};
|
|
|
|
// src/view/helpers/extract-frontmatter.ts
|
|
var extractFrontmatter = (markdown) => {
|
|
const frontmatterRegex = /^---\n([\s\S]+?)\n---\n/;
|
|
const match = markdown.match(frontmatterRegex);
|
|
if (match) {
|
|
const frontmatter = match[0];
|
|
const data = markdown.slice(frontmatter.length);
|
|
return { data, frontmatter: frontmatter.trim() + "\n" };
|
|
} else {
|
|
return { data: markdown, frontmatter: "" };
|
|
}
|
|
};
|
|
|
|
// src/view/components/container/column/components/group/components/card/components/card-buttons/helpers/find-outline-position.ts
|
|
var findOutlinePosition = (view, nodeId) => {
|
|
const documentStore = view.documentStore;
|
|
const document2 = clone(documentStore.getValue().document);
|
|
const id2 = nanoid(12);
|
|
document2.content[nodeId].content = id2;
|
|
const outline2 = jsonToOutline(
|
|
columnsToJson(document2.columns, document2.content)
|
|
);
|
|
const { frontmatter } = extractFrontmatter(view.data);
|
|
const frontmatterOffset = frontmatter.length ? frontmatter.split("\n").length - 1 : 0;
|
|
const lines = outline2.split("\n");
|
|
for (let i = 0; i < lines.length; i++) {
|
|
const line = lines[i];
|
|
if (line.contains(id2)) {
|
|
return i + frontmatterOffset;
|
|
}
|
|
}
|
|
};
|
|
|
|
// src/obsidian/events/workspace/actions/set-view-type.ts
|
|
var setViewType = (plugin, path, type) => {
|
|
plugin.settings.dispatch({
|
|
type: "SET_VIEW_TYPE",
|
|
payload: {
|
|
path,
|
|
type
|
|
}
|
|
});
|
|
};
|
|
|
|
// src/view/components/container/column/components/group/components/card/components/card-buttons/helpers/openFileAndJumpToLine.ts
|
|
var getLeafFromExistingTabGroup = (view) => {
|
|
const rightTabGroup = getExistingRightTabGroup(view);
|
|
if (!rightTabGroup)
|
|
return null;
|
|
const workspace = view.plugin.app.workspace;
|
|
if (!("createLeafInTabGroup" in workspace && typeof workspace.createLeafInTabGroup === "function"))
|
|
return null;
|
|
return workspace.createLeafInTabGroup(
|
|
rightTabGroup
|
|
);
|
|
};
|
|
var openFileAndJumpToLine = async (view, line, ch) => {
|
|
const plugin = view.plugin;
|
|
const file = view.file;
|
|
if (!file)
|
|
return;
|
|
let leaf = getLeafFromExistingTabGroup(view);
|
|
if (!leaf) {
|
|
leaf = plugin.app.workspace.getLeaf("split");
|
|
}
|
|
setViewType(plugin, file.path, "markdown");
|
|
await leaf.openFile(file);
|
|
const markdownView = leaf.view;
|
|
markdownView.editor.setCursor({ line, ch });
|
|
setViewType(plugin, file.path, "lineage");
|
|
};
|
|
|
|
// src/lib/data-conversion/helpers/html-element-marker/parse-html-element-marker.ts
|
|
var htmlCommentRegex2 = /<span data-section="((\d\.?)*(\d))"\s*\/>/;
|
|
var parseHtmlElementMarker = (line) => {
|
|
const results = htmlCommentRegex2.exec(line);
|
|
if (results) {
|
|
const result = results[1];
|
|
const split2 = result.split(".");
|
|
const index = split2[split2.length - 1];
|
|
const parent = result.substring(0, result.length - index.length - 1);
|
|
return [parent, index, result];
|
|
}
|
|
};
|
|
|
|
// src/view/components/container/column/components/group/components/card/components/card-buttons/helpers/find-html-element-position.ts
|
|
var findHtmlElementPosition = (view, nodeId) => {
|
|
const lines = view.data.split("\n");
|
|
const treeIndex = get_store_value(view.documentStore).sections.id_section[nodeId];
|
|
for (let i = 0; i < lines.length; i++) {
|
|
const line = lines[i];
|
|
if (line.includes("<span data-section=")) {
|
|
const section = parseHtmlElementMarker(line);
|
|
if (section && section[2] === treeIndex) {
|
|
return i;
|
|
}
|
|
}
|
|
}
|
|
};
|
|
|
|
// src/view/components/container/column/components/group/components/card/components/card-buttons/pin-indicator.svelte
|
|
function add_css6(target) {
|
|
append_styles(target, "svelte-180w9t5", ".pin-indicator.svelte-180w9t5{position:absolute;left:-20px;top:0px;cursor:default;& svg {\n fill: var(--text-muted);\n color: var(--text-muted);\n width:16px !important;\n height:16px !important;\n\n }}");
|
|
}
|
|
function create_fragment59(ctx) {
|
|
let span;
|
|
let pin;
|
|
let current;
|
|
pin = new pin_default({ props: { class: "svg-icon", size: "10" } });
|
|
return {
|
|
c() {
|
|
span = element("span");
|
|
create_component(pin.$$.fragment);
|
|
attr(span, "class", "pin-indicator svelte-180w9t5");
|
|
},
|
|
m(target, anchor) {
|
|
insert(target, span, anchor);
|
|
mount_component(pin, span, null);
|
|
current = true;
|
|
},
|
|
p: noop,
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(pin.$$.fragment, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(pin.$$.fragment, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
if (detaching) {
|
|
detach(span);
|
|
}
|
|
destroy_component(pin);
|
|
}
|
|
};
|
|
}
|
|
var Pin_indicator = class extends SvelteComponent {
|
|
constructor(options) {
|
|
super();
|
|
init(this, options, null, create_fragment59, safe_not_equal, {}, add_css6);
|
|
}
|
|
};
|
|
var pin_indicator_default = Pin_indicator;
|
|
|
|
// src/view/components/container/column/components/group/components/card/components/card-buttons/tree-index-button.svelte
|
|
function add_css7(target) {
|
|
append_styles(target, "svelte-1cmrwyv", ".tree-index.svelte-1cmrwyv{position:absolute;bottom:3px;right:8px;opacity:0.8;font-size:12px;cursor:pointer}.is-active.svelte-1cmrwyv{opacity:0.3}.is-active-child.svelte-1cmrwyv{opacity:0.3}.is-active-parent.svelte-1cmrwyv{opacity:0.6}");
|
|
}
|
|
function create_if_block_13(ctx) {
|
|
let pin;
|
|
let current;
|
|
pin = new pin_indicator_default({});
|
|
return {
|
|
c() {
|
|
create_component(pin.$$.fragment);
|
|
},
|
|
m(target, anchor) {
|
|
mount_component(pin, target, anchor);
|
|
current = true;
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(pin.$$.fragment, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(pin.$$.fragment, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
destroy_component(pin, detaching);
|
|
}
|
|
};
|
|
}
|
|
function create_if_block7(ctx) {
|
|
let t;
|
|
return {
|
|
c() {
|
|
t = text(".");
|
|
},
|
|
m(target, anchor) {
|
|
insert(target, t, anchor);
|
|
},
|
|
d(detaching) {
|
|
if (detaching) {
|
|
detach(t);
|
|
}
|
|
}
|
|
};
|
|
}
|
|
function create_fragment60(ctx) {
|
|
let div;
|
|
let t0;
|
|
let span;
|
|
let t1;
|
|
let span_aria_label_value;
|
|
let div_class_value;
|
|
let current;
|
|
let mounted;
|
|
let dispose;
|
|
let if_block0 = (
|
|
/*pinned*/
|
|
ctx[3] && create_if_block_13(ctx)
|
|
);
|
|
let if_block1 = (
|
|
/*hasChildren*/
|
|
ctx[2] && create_if_block7(ctx)
|
|
);
|
|
return {
|
|
c() {
|
|
div = element("div");
|
|
if (if_block0)
|
|
if_block0.c();
|
|
t0 = space();
|
|
span = element("span");
|
|
t1 = text(
|
|
/*section*/
|
|
ctx[1]
|
|
);
|
|
if (if_block1)
|
|
if_block1.c();
|
|
attr(span, "aria-label", span_aria_label_value = lang.card_btn_reveal_in_editor);
|
|
attr(div, "class", div_class_value = null_to_empty("tree-index " + /*activeStatus*/
|
|
(ctx[0] ? (
|
|
/*classes*/
|
|
ctx[5][
|
|
/*activeStatus*/
|
|
ctx[0]
|
|
]
|
|
) : "")) + " svelte-1cmrwyv");
|
|
},
|
|
m(target, anchor) {
|
|
insert(target, div, anchor);
|
|
if (if_block0)
|
|
if_block0.m(div, null);
|
|
append(div, t0);
|
|
append(div, span);
|
|
append(span, t1);
|
|
if (if_block1)
|
|
if_block1.m(span, null);
|
|
current = true;
|
|
if (!mounted) {
|
|
dispose = listen(
|
|
span,
|
|
"click",
|
|
/*openFile*/
|
|
ctx[4]
|
|
);
|
|
mounted = true;
|
|
}
|
|
},
|
|
p(ctx2, [dirty]) {
|
|
if (
|
|
/*pinned*/
|
|
ctx2[3]
|
|
) {
|
|
if (if_block0) {
|
|
if (dirty & /*pinned*/
|
|
8) {
|
|
transition_in(if_block0, 1);
|
|
}
|
|
} else {
|
|
if_block0 = create_if_block_13(ctx2);
|
|
if_block0.c();
|
|
transition_in(if_block0, 1);
|
|
if_block0.m(div, t0);
|
|
}
|
|
} else if (if_block0) {
|
|
group_outros();
|
|
transition_out(if_block0, 1, 1, () => {
|
|
if_block0 = null;
|
|
});
|
|
check_outros();
|
|
}
|
|
if (!current || dirty & /*section*/
|
|
2)
|
|
set_data(
|
|
t1,
|
|
/*section*/
|
|
ctx2[1]
|
|
);
|
|
if (
|
|
/*hasChildren*/
|
|
ctx2[2]
|
|
) {
|
|
if (if_block1) {
|
|
} else {
|
|
if_block1 = create_if_block7(ctx2);
|
|
if_block1.c();
|
|
if_block1.m(span, null);
|
|
}
|
|
} else if (if_block1) {
|
|
if_block1.d(1);
|
|
if_block1 = null;
|
|
}
|
|
if (!current || dirty & /*activeStatus*/
|
|
1 && div_class_value !== (div_class_value = null_to_empty("tree-index " + /*activeStatus*/
|
|
(ctx2[0] ? (
|
|
/*classes*/
|
|
ctx2[5][
|
|
/*activeStatus*/
|
|
ctx2[0]
|
|
]
|
|
) : "")) + " svelte-1cmrwyv")) {
|
|
attr(div, "class", div_class_value);
|
|
}
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(if_block0);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(if_block0);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
if (detaching) {
|
|
detach(div);
|
|
}
|
|
if (if_block0)
|
|
if_block0.d();
|
|
if (if_block1)
|
|
if_block1.d();
|
|
mounted = false;
|
|
dispose();
|
|
}
|
|
};
|
|
}
|
|
function instance59($$self, $$props, $$invalidate) {
|
|
const view = getView();
|
|
let { nodeId } = $$props;
|
|
let { activeStatus } = $$props;
|
|
let { section } = $$props;
|
|
let { hasChildren } = $$props;
|
|
let { pinned } = $$props;
|
|
const openFile2 = () => __awaiter(void 0, void 0, void 0, function* () {
|
|
if (!view.file)
|
|
return;
|
|
const format2 = getDocumentFormat(view);
|
|
const i = format2 === "sections" ? findSectionPosition(view, nodeId) : format2 === "html-element" ? findHtmlElementPosition(view, nodeId) : findOutlinePosition(view, nodeId);
|
|
if (typeof i === "undefined")
|
|
return;
|
|
const targetLine = i + (format2 === "sections" ? 1 : 0);
|
|
const lines = view.data.split("\n");
|
|
const nextLine = lines[targetLine] || "";
|
|
yield openFileAndJumpToLine(view, targetLine, nextLine.length);
|
|
});
|
|
const classes = {
|
|
["node" /* node */]: "is-active",
|
|
["child" /* child */]: "is-active-child",
|
|
["parent" /* parent */]: "is-active-parent",
|
|
["sibling" /* sibling */]: "is-active-parent"
|
|
};
|
|
$$self.$$set = ($$props2) => {
|
|
if ("nodeId" in $$props2)
|
|
$$invalidate(6, nodeId = $$props2.nodeId);
|
|
if ("activeStatus" in $$props2)
|
|
$$invalidate(0, activeStatus = $$props2.activeStatus);
|
|
if ("section" in $$props2)
|
|
$$invalidate(1, section = $$props2.section);
|
|
if ("hasChildren" in $$props2)
|
|
$$invalidate(2, hasChildren = $$props2.hasChildren);
|
|
if ("pinned" in $$props2)
|
|
$$invalidate(3, pinned = $$props2.pinned);
|
|
};
|
|
return [activeStatus, section, hasChildren, pinned, openFile2, classes, nodeId];
|
|
}
|
|
var Tree_index_button = class extends SvelteComponent {
|
|
constructor(options) {
|
|
super();
|
|
init(
|
|
this,
|
|
options,
|
|
instance59,
|
|
create_fragment60,
|
|
safe_not_equal,
|
|
{
|
|
nodeId: 6,
|
|
activeStatus: 0,
|
|
section: 1,
|
|
hasChildren: 2,
|
|
pinned: 3
|
|
},
|
|
add_css7
|
|
);
|
|
}
|
|
};
|
|
var tree_index_button_default = Tree_index_button;
|
|
|
|
// src/view/components/container/column/components/group/components/card/components/card-style.svelte
|
|
function create_fragment61(ctx) {
|
|
let div;
|
|
let div_style_value;
|
|
let div_class_value;
|
|
return {
|
|
c() {
|
|
div = element("div");
|
|
attr(div, "style", div_style_value = `background-color: ${/*style*/
|
|
ctx[0].color}`);
|
|
attr(div, "class", div_class_value = /*style*/
|
|
ctx[0].styleVariant === "background-color" ? "card-background-style" : "card-left-border-style");
|
|
},
|
|
m(target, anchor) {
|
|
insert(target, div, anchor);
|
|
},
|
|
p(ctx2, [dirty]) {
|
|
if (dirty & /*style*/
|
|
1 && div_style_value !== (div_style_value = `background-color: ${/*style*/
|
|
ctx2[0].color}`)) {
|
|
attr(div, "style", div_style_value);
|
|
}
|
|
if (dirty & /*style*/
|
|
1 && div_class_value !== (div_class_value = /*style*/
|
|
ctx2[0].styleVariant === "background-color" ? "card-background-style" : "card-left-border-style")) {
|
|
attr(div, "class", div_class_value);
|
|
}
|
|
},
|
|
i: noop,
|
|
o: noop,
|
|
d(detaching) {
|
|
if (detaching) {
|
|
detach(div);
|
|
}
|
|
}
|
|
};
|
|
}
|
|
function instance60($$self, $$props, $$invalidate) {
|
|
let { style } = $$props;
|
|
$$self.$$set = ($$props2) => {
|
|
if ("style" in $$props2)
|
|
$$invalidate(0, style = $$props2.style);
|
|
};
|
|
return [style];
|
|
}
|
|
var Card_style = class extends SvelteComponent {
|
|
constructor(options) {
|
|
super();
|
|
init(this, options, instance60, create_fragment61, safe_not_equal, { style: 0 });
|
|
}
|
|
};
|
|
var card_style_default = Card_style;
|
|
|
|
// src/view/components/container/column/components/group/components/card/card.svelte
|
|
function add_css8(target) {
|
|
append_styles(target, "svelte-1nruoli", ":root{--node-width:400px;--min-node-height:100px}.lineage-card.svelte-1nruoli{width:var(--node-width);height:fit-content;display:flex;position:relative;font-size:16px;--scrollbar-thumb-bg:var(--color-base-30);--scrollbar-active-thumb-bg:var(--color-base-40)}.lineage-card.svelte-1nruoli:hover{z-index:10}.lineage-card.svelte-1nruoli::-webkit-scrollbar{display:initial}");
|
|
}
|
|
function create_if_block_14(ctx) {
|
|
let cardstyle;
|
|
let current;
|
|
cardstyle = new card_style_default({ props: { style: (
|
|
/*style*/
|
|
ctx[13]
|
|
) } });
|
|
return {
|
|
c() {
|
|
create_component(cardstyle.$$.fragment);
|
|
},
|
|
m(target, anchor) {
|
|
mount_component(cardstyle, target, anchor);
|
|
current = true;
|
|
},
|
|
p(ctx2, dirty) {
|
|
const cardstyle_changes = {};
|
|
if (dirty & /*style*/
|
|
8192)
|
|
cardstyle_changes.style = /*style*/
|
|
ctx2[13];
|
|
cardstyle.$set(cardstyle_changes);
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(cardstyle.$$.fragment, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(cardstyle.$$.fragment, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
destroy_component(cardstyle, detaching);
|
|
}
|
|
};
|
|
}
|
|
function create_else_block5(ctx) {
|
|
let draggable2;
|
|
let current;
|
|
draggable2 = new draggable_default({
|
|
props: {
|
|
nodeId: (
|
|
/*node*/
|
|
ctx[0]
|
|
),
|
|
isInSidebar: (
|
|
/*isInSidebar*/
|
|
ctx[11]
|
|
),
|
|
$$slots: { default: [create_default_slot51] },
|
|
$$scope: { ctx }
|
|
}
|
|
});
|
|
return {
|
|
c() {
|
|
create_component(draggable2.$$.fragment);
|
|
},
|
|
m(target, anchor) {
|
|
mount_component(draggable2, target, anchor);
|
|
current = true;
|
|
},
|
|
p(ctx2, dirty) {
|
|
const draggable_changes = {};
|
|
if (dirty & /*node*/
|
|
1)
|
|
draggable_changes.nodeId = /*node*/
|
|
ctx2[0];
|
|
if (dirty & /*isInSidebar*/
|
|
2048)
|
|
draggable_changes.isInSidebar = /*isInSidebar*/
|
|
ctx2[11];
|
|
if (dirty & /*$$scope, node, isInSidebar, active*/
|
|
1050629) {
|
|
draggable_changes.$$scope = { dirty, ctx: ctx2 };
|
|
}
|
|
draggable2.$set(draggable_changes);
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(draggable2.$$.fragment, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(draggable2.$$.fragment, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
destroy_component(draggable2, detaching);
|
|
}
|
|
};
|
|
}
|
|
function create_if_block8(ctx) {
|
|
let inlineeditor;
|
|
let current;
|
|
inlineeditor = new inline_editor_default({
|
|
props: {
|
|
nodeId: (
|
|
/*node*/
|
|
ctx[0]
|
|
),
|
|
style: (
|
|
/*style*/
|
|
ctx[13]
|
|
)
|
|
}
|
|
});
|
|
return {
|
|
c() {
|
|
create_component(inlineeditor.$$.fragment);
|
|
},
|
|
m(target, anchor) {
|
|
mount_component(inlineeditor, target, anchor);
|
|
current = true;
|
|
},
|
|
p(ctx2, dirty) {
|
|
const inlineeditor_changes = {};
|
|
if (dirty & /*node*/
|
|
1)
|
|
inlineeditor_changes.nodeId = /*node*/
|
|
ctx2[0];
|
|
if (dirty & /*style*/
|
|
8192)
|
|
inlineeditor_changes.style = /*style*/
|
|
ctx2[13];
|
|
inlineeditor.$set(inlineeditor_changes);
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(inlineeditor.$$.fragment, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(inlineeditor.$$.fragment, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
destroy_component(inlineeditor, detaching);
|
|
}
|
|
};
|
|
}
|
|
function create_default_slot51(ctx) {
|
|
let content;
|
|
let current;
|
|
content = new content_default({
|
|
props: {
|
|
nodeId: (
|
|
/*node*/
|
|
ctx[0]
|
|
),
|
|
isInSidebar: (
|
|
/*isInSidebar*/
|
|
ctx[11]
|
|
),
|
|
active: (
|
|
/*active*/
|
|
ctx[2]
|
|
)
|
|
}
|
|
});
|
|
return {
|
|
c() {
|
|
create_component(content.$$.fragment);
|
|
},
|
|
m(target, anchor) {
|
|
mount_component(content, target, anchor);
|
|
current = true;
|
|
},
|
|
p(ctx2, dirty) {
|
|
const content_changes = {};
|
|
if (dirty & /*node*/
|
|
1)
|
|
content_changes.nodeId = /*node*/
|
|
ctx2[0];
|
|
if (dirty & /*isInSidebar*/
|
|
2048)
|
|
content_changes.isInSidebar = /*isInSidebar*/
|
|
ctx2[11];
|
|
if (dirty & /*active*/
|
|
4)
|
|
content_changes.active = /*active*/
|
|
ctx2[2];
|
|
content.$set(content_changes);
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(content.$$.fragment, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(content.$$.fragment, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
destroy_component(content, detaching);
|
|
}
|
|
};
|
|
}
|
|
function create_fragment62(ctx) {
|
|
let div;
|
|
let t0;
|
|
let current_block_type_index;
|
|
let if_block1;
|
|
let t1;
|
|
let cardbuttons;
|
|
let t2;
|
|
let treeindex;
|
|
let t3;
|
|
let bridges;
|
|
let div_style_value;
|
|
let div_class_value;
|
|
let droppable_action;
|
|
let current;
|
|
let mounted;
|
|
let dispose;
|
|
let if_block0 = (
|
|
/*style*/
|
|
ctx[13] && create_if_block_14(ctx)
|
|
);
|
|
const if_block_creators = [create_if_block8, create_else_block5];
|
|
const if_blocks = [];
|
|
function select_block_type(ctx2, dirty) {
|
|
if (
|
|
/*active*/
|
|
ctx2[2] === "node" /* node */ && /*editing*/
|
|
ctx2[1]
|
|
)
|
|
return 0;
|
|
return 1;
|
|
}
|
|
current_block_type_index = select_block_type(ctx, -1);
|
|
if_block1 = if_blocks[current_block_type_index] = if_block_creators[current_block_type_index](ctx);
|
|
cardbuttons = new card_buttons_default({
|
|
props: {
|
|
editing: (
|
|
/*editing*/
|
|
ctx[1]
|
|
),
|
|
nodeId: (
|
|
/*node*/
|
|
ctx[0]
|
|
),
|
|
hasChildren: (
|
|
/*hasChildren*/
|
|
ctx[4]
|
|
),
|
|
isInSidebar: (
|
|
/*isInSidebar*/
|
|
ctx[11]
|
|
),
|
|
collapsed: (
|
|
/*collapsed*/
|
|
ctx[15]
|
|
),
|
|
active: (
|
|
/*active*/
|
|
ctx[2]
|
|
),
|
|
alwaysShowCardButtons: (
|
|
/*alwaysShowCardButtons*/
|
|
ctx[17]
|
|
),
|
|
outlineMode: (
|
|
/*outlineMode*/
|
|
ctx[14]
|
|
)
|
|
}
|
|
});
|
|
treeindex = new tree_index_button_default({
|
|
props: {
|
|
activeStatus: (
|
|
/*active*/
|
|
ctx[2]
|
|
),
|
|
nodeId: (
|
|
/*node*/
|
|
ctx[0]
|
|
),
|
|
section: (
|
|
/*section*/
|
|
ctx[8]
|
|
),
|
|
hasChildren: (
|
|
/*hasChildren*/
|
|
ctx[4]
|
|
),
|
|
pinned: (
|
|
/*pinned*/
|
|
ctx[10]
|
|
)
|
|
}
|
|
});
|
|
bridges = new bridges_default({
|
|
props: {
|
|
active: (
|
|
/*active*/
|
|
ctx[2]
|
|
),
|
|
editing: (
|
|
/*editing*/
|
|
ctx[1]
|
|
),
|
|
hasActiveChildren: (
|
|
/*hasActiveChildren*/
|
|
ctx[3]
|
|
),
|
|
firstColumn: (
|
|
/*firstColumn*/
|
|
ctx[5]
|
|
),
|
|
style: (
|
|
/*style*/
|
|
ctx[13]
|
|
)
|
|
}
|
|
});
|
|
return {
|
|
c() {
|
|
div = element("div");
|
|
if (if_block0)
|
|
if_block0.c();
|
|
t0 = space();
|
|
if_block1.c();
|
|
t1 = space();
|
|
create_component(cardbuttons.$$.fragment);
|
|
t2 = space();
|
|
create_component(treeindex.$$.fragment);
|
|
t3 = space();
|
|
create_component(bridges.$$.fragment);
|
|
attr(div, "style", div_style_value = /*outlineMode*/
|
|
ctx[14] && /*depth*/
|
|
ctx[18] > 0 ? `margin-left: calc(var(--node-indentation-width) * ${/*depth*/
|
|
ctx[18]})` : "");
|
|
attr(div, "class", div_class_value = null_to_empty((0, import_classnames2.default)(
|
|
"lineage-card",
|
|
/*hidden*/
|
|
ctx[16] ? "hidden-node" : "",
|
|
/*active*/
|
|
ctx[2] ? (
|
|
/*activeStatusClasses*/
|
|
ctx[19][
|
|
/*active*/
|
|
ctx[2]
|
|
]
|
|
) : (
|
|
/*outlineMode*/
|
|
ctx[14] ? " active-sibling" : " inactive-node"
|
|
),
|
|
/*confirmDelete*/
|
|
ctx[7] ? "node-border--delete" : (
|
|
/*confirmDisableEdit*/
|
|
ctx[6] ? "node-border--discard" : (
|
|
/*editing*/
|
|
ctx[1] ? "node-border--editing" : (
|
|
/*selected*/
|
|
ctx[9] ? "node-border--selected" : (
|
|
/*isSearchMatch*/
|
|
ctx[12] ? "node-border--search-match" : (
|
|
/*active*/
|
|
ctx[2] === "node" /* node */ ? "node-border--active" : void 0
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)) + " svelte-1nruoli");
|
|
attr(
|
|
div,
|
|
"id",
|
|
/*node*/
|
|
ctx[0]
|
|
);
|
|
},
|
|
m(target, anchor) {
|
|
insert(target, div, anchor);
|
|
if (if_block0)
|
|
if_block0.m(div, null);
|
|
append(div, t0);
|
|
if_blocks[current_block_type_index].m(div, null);
|
|
append(div, t1);
|
|
mount_component(cardbuttons, div, null);
|
|
append(div, t2);
|
|
mount_component(treeindex, div, null);
|
|
append(div, t3);
|
|
mount_component(bridges, div, null);
|
|
current = true;
|
|
if (!mounted) {
|
|
dispose = action_destroyer(droppable_action = droppable.call(null, div));
|
|
mounted = true;
|
|
}
|
|
},
|
|
p(ctx2, [dirty]) {
|
|
if (
|
|
/*style*/
|
|
ctx2[13]
|
|
) {
|
|
if (if_block0) {
|
|
if_block0.p(ctx2, dirty);
|
|
if (dirty & /*style*/
|
|
8192) {
|
|
transition_in(if_block0, 1);
|
|
}
|
|
} else {
|
|
if_block0 = create_if_block_14(ctx2);
|
|
if_block0.c();
|
|
transition_in(if_block0, 1);
|
|
if_block0.m(div, t0);
|
|
}
|
|
} else if (if_block0) {
|
|
group_outros();
|
|
transition_out(if_block0, 1, 1, () => {
|
|
if_block0 = null;
|
|
});
|
|
check_outros();
|
|
}
|
|
let previous_block_index = current_block_type_index;
|
|
current_block_type_index = select_block_type(ctx2, dirty);
|
|
if (current_block_type_index === previous_block_index) {
|
|
if_blocks[current_block_type_index].p(ctx2, dirty);
|
|
} else {
|
|
group_outros();
|
|
transition_out(if_blocks[previous_block_index], 1, 1, () => {
|
|
if_blocks[previous_block_index] = null;
|
|
});
|
|
check_outros();
|
|
if_block1 = if_blocks[current_block_type_index];
|
|
if (!if_block1) {
|
|
if_block1 = if_blocks[current_block_type_index] = if_block_creators[current_block_type_index](ctx2);
|
|
if_block1.c();
|
|
} else {
|
|
if_block1.p(ctx2, dirty);
|
|
}
|
|
transition_in(if_block1, 1);
|
|
if_block1.m(div, t1);
|
|
}
|
|
const cardbuttons_changes = {};
|
|
if (dirty & /*editing*/
|
|
2)
|
|
cardbuttons_changes.editing = /*editing*/
|
|
ctx2[1];
|
|
if (dirty & /*node*/
|
|
1)
|
|
cardbuttons_changes.nodeId = /*node*/
|
|
ctx2[0];
|
|
if (dirty & /*hasChildren*/
|
|
16)
|
|
cardbuttons_changes.hasChildren = /*hasChildren*/
|
|
ctx2[4];
|
|
if (dirty & /*isInSidebar*/
|
|
2048)
|
|
cardbuttons_changes.isInSidebar = /*isInSidebar*/
|
|
ctx2[11];
|
|
if (dirty & /*collapsed*/
|
|
32768)
|
|
cardbuttons_changes.collapsed = /*collapsed*/
|
|
ctx2[15];
|
|
if (dirty & /*active*/
|
|
4)
|
|
cardbuttons_changes.active = /*active*/
|
|
ctx2[2];
|
|
if (dirty & /*alwaysShowCardButtons*/
|
|
131072)
|
|
cardbuttons_changes.alwaysShowCardButtons = /*alwaysShowCardButtons*/
|
|
ctx2[17];
|
|
if (dirty & /*outlineMode*/
|
|
16384)
|
|
cardbuttons_changes.outlineMode = /*outlineMode*/
|
|
ctx2[14];
|
|
cardbuttons.$set(cardbuttons_changes);
|
|
const treeindex_changes = {};
|
|
if (dirty & /*active*/
|
|
4)
|
|
treeindex_changes.activeStatus = /*active*/
|
|
ctx2[2];
|
|
if (dirty & /*node*/
|
|
1)
|
|
treeindex_changes.nodeId = /*node*/
|
|
ctx2[0];
|
|
if (dirty & /*section*/
|
|
256)
|
|
treeindex_changes.section = /*section*/
|
|
ctx2[8];
|
|
if (dirty & /*hasChildren*/
|
|
16)
|
|
treeindex_changes.hasChildren = /*hasChildren*/
|
|
ctx2[4];
|
|
if (dirty & /*pinned*/
|
|
1024)
|
|
treeindex_changes.pinned = /*pinned*/
|
|
ctx2[10];
|
|
treeindex.$set(treeindex_changes);
|
|
const bridges_changes = {};
|
|
if (dirty & /*active*/
|
|
4)
|
|
bridges_changes.active = /*active*/
|
|
ctx2[2];
|
|
if (dirty & /*editing*/
|
|
2)
|
|
bridges_changes.editing = /*editing*/
|
|
ctx2[1];
|
|
if (dirty & /*hasActiveChildren*/
|
|
8)
|
|
bridges_changes.hasActiveChildren = /*hasActiveChildren*/
|
|
ctx2[3];
|
|
if (dirty & /*firstColumn*/
|
|
32)
|
|
bridges_changes.firstColumn = /*firstColumn*/
|
|
ctx2[5];
|
|
if (dirty & /*style*/
|
|
8192)
|
|
bridges_changes.style = /*style*/
|
|
ctx2[13];
|
|
bridges.$set(bridges_changes);
|
|
if (!current || dirty & /*outlineMode, depth*/
|
|
278528 && div_style_value !== (div_style_value = /*outlineMode*/
|
|
ctx2[14] && /*depth*/
|
|
ctx2[18] > 0 ? `margin-left: calc(var(--node-indentation-width) * ${/*depth*/
|
|
ctx2[18]})` : "")) {
|
|
attr(div, "style", div_style_value);
|
|
}
|
|
if (!current || dirty & /*hidden, active, outlineMode, confirmDelete, confirmDisableEdit, editing, selected, isSearchMatch*/
|
|
86726 && div_class_value !== (div_class_value = null_to_empty((0, import_classnames2.default)(
|
|
"lineage-card",
|
|
/*hidden*/
|
|
ctx2[16] ? "hidden-node" : "",
|
|
/*active*/
|
|
ctx2[2] ? (
|
|
/*activeStatusClasses*/
|
|
ctx2[19][
|
|
/*active*/
|
|
ctx2[2]
|
|
]
|
|
) : (
|
|
/*outlineMode*/
|
|
ctx2[14] ? " active-sibling" : " inactive-node"
|
|
),
|
|
/*confirmDelete*/
|
|
ctx2[7] ? "node-border--delete" : (
|
|
/*confirmDisableEdit*/
|
|
ctx2[6] ? "node-border--discard" : (
|
|
/*editing*/
|
|
ctx2[1] ? "node-border--editing" : (
|
|
/*selected*/
|
|
ctx2[9] ? "node-border--selected" : (
|
|
/*isSearchMatch*/
|
|
ctx2[12] ? "node-border--search-match" : (
|
|
/*active*/
|
|
ctx2[2] === "node" /* node */ ? "node-border--active" : void 0
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)) + " svelte-1nruoli")) {
|
|
attr(div, "class", div_class_value);
|
|
}
|
|
if (!current || dirty & /*node*/
|
|
1) {
|
|
attr(
|
|
div,
|
|
"id",
|
|
/*node*/
|
|
ctx2[0]
|
|
);
|
|
}
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(if_block0);
|
|
transition_in(if_block1);
|
|
transition_in(cardbuttons.$$.fragment, local);
|
|
transition_in(treeindex.$$.fragment, local);
|
|
transition_in(bridges.$$.fragment, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(if_block0);
|
|
transition_out(if_block1);
|
|
transition_out(cardbuttons.$$.fragment, local);
|
|
transition_out(treeindex.$$.fragment, local);
|
|
transition_out(bridges.$$.fragment, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
if (detaching) {
|
|
detach(div);
|
|
}
|
|
if (if_block0)
|
|
if_block0.d();
|
|
if_blocks[current_block_type_index].d();
|
|
destroy_component(cardbuttons);
|
|
destroy_component(treeindex);
|
|
destroy_component(bridges);
|
|
mounted = false;
|
|
dispose();
|
|
}
|
|
};
|
|
}
|
|
function instance61($$self, $$props, $$invalidate) {
|
|
let { node } = $$props;
|
|
let { editing } = $$props;
|
|
let { active } = $$props;
|
|
let { hasActiveChildren } = $$props;
|
|
let { hasChildren } = $$props;
|
|
let { firstColumn } = $$props;
|
|
let { confirmDisableEdit } = $$props;
|
|
let { confirmDelete } = $$props;
|
|
let { section } = $$props;
|
|
let { selected } = $$props;
|
|
let { pinned } = $$props;
|
|
let { isInSidebar = false } = $$props;
|
|
let { isSearchMatch = false } = $$props;
|
|
let { style } = $$props;
|
|
let { outlineMode } = $$props;
|
|
let { collapsed } = $$props;
|
|
let { hidden } = $$props;
|
|
let { alwaysShowCardButtons } = $$props;
|
|
const activeStatusClasses = {
|
|
["node" /* node */]: "active-node",
|
|
["child" /* child */]: "active-child",
|
|
["parent" /* parent */]: "active-parent",
|
|
["sibling" /* sibling */]: "active-sibling"
|
|
};
|
|
let depth = 0;
|
|
$$self.$$set = ($$props2) => {
|
|
if ("node" in $$props2)
|
|
$$invalidate(0, node = $$props2.node);
|
|
if ("editing" in $$props2)
|
|
$$invalidate(1, editing = $$props2.editing);
|
|
if ("active" in $$props2)
|
|
$$invalidate(2, active = $$props2.active);
|
|
if ("hasActiveChildren" in $$props2)
|
|
$$invalidate(3, hasActiveChildren = $$props2.hasActiveChildren);
|
|
if ("hasChildren" in $$props2)
|
|
$$invalidate(4, hasChildren = $$props2.hasChildren);
|
|
if ("firstColumn" in $$props2)
|
|
$$invalidate(5, firstColumn = $$props2.firstColumn);
|
|
if ("confirmDisableEdit" in $$props2)
|
|
$$invalidate(6, confirmDisableEdit = $$props2.confirmDisableEdit);
|
|
if ("confirmDelete" in $$props2)
|
|
$$invalidate(7, confirmDelete = $$props2.confirmDelete);
|
|
if ("section" in $$props2)
|
|
$$invalidate(8, section = $$props2.section);
|
|
if ("selected" in $$props2)
|
|
$$invalidate(9, selected = $$props2.selected);
|
|
if ("pinned" in $$props2)
|
|
$$invalidate(10, pinned = $$props2.pinned);
|
|
if ("isInSidebar" in $$props2)
|
|
$$invalidate(11, isInSidebar = $$props2.isInSidebar);
|
|
if ("isSearchMatch" in $$props2)
|
|
$$invalidate(12, isSearchMatch = $$props2.isSearchMatch);
|
|
if ("style" in $$props2)
|
|
$$invalidate(13, style = $$props2.style);
|
|
if ("outlineMode" in $$props2)
|
|
$$invalidate(14, outlineMode = $$props2.outlineMode);
|
|
if ("collapsed" in $$props2)
|
|
$$invalidate(15, collapsed = $$props2.collapsed);
|
|
if ("hidden" in $$props2)
|
|
$$invalidate(16, hidden = $$props2.hidden);
|
|
if ("alwaysShowCardButtons" in $$props2)
|
|
$$invalidate(17, alwaysShowCardButtons = $$props2.alwaysShowCardButtons);
|
|
};
|
|
$$self.$$.update = () => {
|
|
if ($$self.$$.dirty & /*section*/
|
|
256) {
|
|
$:
|
|
$$invalidate(18, depth = section ? section.split(".").length - 1 : 0);
|
|
}
|
|
};
|
|
return [
|
|
node,
|
|
editing,
|
|
active,
|
|
hasActiveChildren,
|
|
hasChildren,
|
|
firstColumn,
|
|
confirmDisableEdit,
|
|
confirmDelete,
|
|
section,
|
|
selected,
|
|
pinned,
|
|
isInSidebar,
|
|
isSearchMatch,
|
|
style,
|
|
outlineMode,
|
|
collapsed,
|
|
hidden,
|
|
alwaysShowCardButtons,
|
|
depth,
|
|
activeStatusClasses
|
|
];
|
|
}
|
|
var Card = class extends SvelteComponent {
|
|
constructor(options) {
|
|
super();
|
|
init(
|
|
this,
|
|
options,
|
|
instance61,
|
|
create_fragment62,
|
|
safe_not_equal,
|
|
{
|
|
node: 0,
|
|
editing: 1,
|
|
active: 2,
|
|
hasActiveChildren: 3,
|
|
hasChildren: 4,
|
|
firstColumn: 5,
|
|
confirmDisableEdit: 6,
|
|
confirmDelete: 7,
|
|
section: 8,
|
|
selected: 9,
|
|
pinned: 10,
|
|
isInSidebar: 11,
|
|
isSearchMatch: 12,
|
|
style: 13,
|
|
outlineMode: 14,
|
|
collapsed: 15,
|
|
hidden: 16,
|
|
alwaysShowCardButtons: 17
|
|
},
|
|
add_css8
|
|
);
|
|
}
|
|
};
|
|
var card_default = Card;
|
|
|
|
// src/view/components/container/column/components/group/group.svelte
|
|
var import_classnames3 = __toESM(require_classnames());
|
|
|
|
// src/stores/document/derived/groups-store.ts
|
|
var findColumn = (columns, columnId) => {
|
|
return columns.find((c) => c.id === columnId);
|
|
};
|
|
var groupsStore = (view, columnId) => {
|
|
let column;
|
|
let columns;
|
|
return derived(view.documentStore, (state2) => {
|
|
if (!column || columns !== state2.document.columns) {
|
|
columns = state2.document.columns;
|
|
column = findColumn(columns, columnId);
|
|
if (!column)
|
|
return [];
|
|
}
|
|
return column.groups;
|
|
});
|
|
};
|
|
var singleColumnGroupStore = (view) => {
|
|
return derived(view.documentStore, (state2) => {
|
|
return state2.document.columns.length > 0 ? state2.document.columns[0].groups : [];
|
|
});
|
|
};
|
|
|
|
// src/lib/tree-utils/sort/sort-tree-nodes.ts
|
|
var sortTreeNodes = (columns) => {
|
|
if (columns.length === 0)
|
|
return [];
|
|
const sortedNodes = [];
|
|
const stack = [];
|
|
for (const group of columns[0].groups) {
|
|
for (let i = group.nodes.length - 1; i >= 0; i--) {
|
|
stack.push({ nodeId: group.nodes[i], columnIndex: 0 });
|
|
}
|
|
}
|
|
while (stack.length > 0) {
|
|
const item = stack.pop();
|
|
sortedNodes.push(item.nodeId);
|
|
if (item.columnIndex + 1 < columns.length) {
|
|
const nextColumn = columns[item.columnIndex + 1];
|
|
for (const group of nextColumn.groups) {
|
|
if (group.parentId === item.nodeId) {
|
|
for (let i = group.nodes.length - 1; i >= 0; i--) {
|
|
stack.push({
|
|
nodeId: group.nodes[i],
|
|
columnIndex: item.columnIndex + 1
|
|
});
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return sortedNodes;
|
|
};
|
|
|
|
// src/stores/document/derived/nodes-store.ts
|
|
var findGroup = (columns, columnId, groupId) => {
|
|
const column = findColumn(columns, columnId);
|
|
if (column) {
|
|
return column.groups.find((group) => group.parentId === groupId);
|
|
}
|
|
};
|
|
var nodesStore = (view, columnId, groupId) => {
|
|
let group;
|
|
let columns;
|
|
return derived(view.documentStore, (state2) => {
|
|
if (!group || columns !== state2.document.columns) {
|
|
columns = state2.document.columns;
|
|
group = findGroup(columns, columnId, groupId);
|
|
if (!group)
|
|
return [];
|
|
}
|
|
return group.nodes;
|
|
});
|
|
};
|
|
var singleColumnNodesStore = (view) => {
|
|
return derived(view.documentStore, (state2) => {
|
|
return sortTreeNodes(state2.document.columns);
|
|
});
|
|
};
|
|
|
|
// src/view/components/container/column/components/group/group.svelte
|
|
function get_each_context2(ctx, list, i) {
|
|
const child_ctx = ctx.slice();
|
|
child_ctx[27] = list[i];
|
|
return child_ctx;
|
|
}
|
|
function create_if_block9(ctx) {
|
|
let div;
|
|
let each_blocks = [];
|
|
let each_1_lookup = /* @__PURE__ */ new Map();
|
|
let div_class_value;
|
|
let div_id_value;
|
|
let current;
|
|
let each_value = ensure_array_like(
|
|
/*$nodes*/
|
|
ctx[22]
|
|
);
|
|
const get_key = (ctx2) => (
|
|
/*node*/
|
|
ctx2[27]
|
|
);
|
|
for (let i = 0; i < each_value.length; i += 1) {
|
|
let child_ctx = get_each_context2(ctx, each_value, i);
|
|
let key = get_key(child_ctx);
|
|
each_1_lookup.set(key, each_blocks[i] = create_each_block2(key, child_ctx));
|
|
}
|
|
return {
|
|
c() {
|
|
div = element("div");
|
|
for (let i = 0; i < each_blocks.length; i += 1) {
|
|
each_blocks[i].c();
|
|
}
|
|
attr(div, "class", div_class_value = (0, import_classnames3.default)(
|
|
"group",
|
|
/*(parentNodes.has(groupId) ||
|
|
outlineMode ||
|
|
(firstColumn && parentNodes.size > 0)) &&
|
|
'group-has-active-parent',*/
|
|
/*activeChildGroups*/
|
|
(ctx[1].has(
|
|
/*groupId*/
|
|
ctx[0]
|
|
) || /*outlineMode*/
|
|
ctx[17]) && "group-has-active-child",
|
|
/*activeGroup*/
|
|
(ctx[4] === /*groupId*/
|
|
ctx[0] || /*outlineMode*/
|
|
ctx[17]) && "group-has-active-node"
|
|
));
|
|
attr(div, "id", div_id_value = "group-" + /*groupId*/
|
|
ctx[0]);
|
|
},
|
|
m(target, anchor) {
|
|
insert(target, div, anchor);
|
|
for (let i = 0; i < each_blocks.length; i += 1) {
|
|
if (each_blocks[i]) {
|
|
each_blocks[i].m(div, null);
|
|
}
|
|
}
|
|
current = true;
|
|
},
|
|
p(ctx2, dirty) {
|
|
if (dirty & /*$nodes, activeNode, parentNodes, activeChildGroups, groupId, activeGroup, editedNodeState, pendingConfirmation, groupParentIds, idSection, selectedNodes, pinnedNodes, searchResults, firstColumn, styleRules, outlineMode, collapsedParents, hiddenNodes, alwaysShowCardButtons, searchQuery, showAllNodes, searching, allDndNodes*/
|
|
8388607) {
|
|
each_value = ensure_array_like(
|
|
/*$nodes*/
|
|
ctx2[22]
|
|
);
|
|
group_outros();
|
|
each_blocks = update_keyed_each(each_blocks, dirty, get_key, 1, ctx2, each_value, each_1_lookup, div, outro_and_destroy_block, create_each_block2, null, get_each_context2);
|
|
check_outros();
|
|
}
|
|
if (!current || dirty & /*activeChildGroups, groupId, outlineMode, activeGroup*/
|
|
131091 && div_class_value !== (div_class_value = (0, import_classnames3.default)(
|
|
"group",
|
|
/*(parentNodes.has(groupId) ||
|
|
outlineMode ||
|
|
(firstColumn && parentNodes.size > 0)) &&
|
|
'group-has-active-parent',*/
|
|
/*activeChildGroups*/
|
|
(ctx2[1].has(
|
|
/*groupId*/
|
|
ctx2[0]
|
|
) || /*outlineMode*/
|
|
ctx2[17]) && "group-has-active-child",
|
|
/*activeGroup*/
|
|
(ctx2[4] === /*groupId*/
|
|
ctx2[0] || /*outlineMode*/
|
|
ctx2[17]) && "group-has-active-node"
|
|
))) {
|
|
attr(div, "class", div_class_value);
|
|
}
|
|
if (!current || dirty & /*groupId*/
|
|
1 && div_id_value !== (div_id_value = "group-" + /*groupId*/
|
|
ctx2[0])) {
|
|
attr(div, "id", div_id_value);
|
|
}
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
for (let i = 0; i < each_value.length; i += 1) {
|
|
transition_in(each_blocks[i]);
|
|
}
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
for (let i = 0; i < each_blocks.length; i += 1) {
|
|
transition_out(each_blocks[i]);
|
|
}
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
if (detaching) {
|
|
detach(div);
|
|
}
|
|
for (let i = 0; i < each_blocks.length; i += 1) {
|
|
each_blocks[i].d();
|
|
}
|
|
}
|
|
};
|
|
}
|
|
function create_if_block_15(ctx) {
|
|
let node_1;
|
|
let current;
|
|
node_1 = new card_default({
|
|
props: {
|
|
node: (
|
|
/*node*/
|
|
ctx[27]
|
|
),
|
|
active: (
|
|
/*node*/
|
|
ctx[27] === /*activeNode*/
|
|
ctx[5] ? "node" /* node */ : (
|
|
/*parentNodes*/
|
|
ctx[3].has(
|
|
/*node*/
|
|
ctx[27]
|
|
) ? "parent" /* parent */ : (
|
|
/*activeChildGroups*/
|
|
ctx[1].has(
|
|
/*groupId*/
|
|
ctx[0]
|
|
) ? "child" /* child */ : (
|
|
/*activeGroup*/
|
|
ctx[4] === /*groupId*/
|
|
ctx[0] ? "sibling" /* sibling */ : null
|
|
)
|
|
)
|
|
)
|
|
),
|
|
editing: (
|
|
/*editedNodeState*/
|
|
ctx[6].activeNodeId === /*node*/
|
|
ctx[27] && !/*editedNodeState*/
|
|
ctx[6].isInSidebar
|
|
),
|
|
confirmDisableEdit: (
|
|
/*editedNodeState*/
|
|
ctx[6].activeNodeId === /*node*/
|
|
ctx[27] && /*pendingConfirmation*/
|
|
ctx[7].disableEdit === /*node*/
|
|
ctx[27] && !/*editedNodeState*/
|
|
ctx[6].isInSidebar
|
|
),
|
|
confirmDelete: (
|
|
/*pendingConfirmation*/
|
|
ctx[7].deleteNode.has(
|
|
/*node*/
|
|
ctx[27]
|
|
)
|
|
),
|
|
hasActiveChildren: (
|
|
/*activeChildGroups*/
|
|
ctx[1].size > 0
|
|
),
|
|
hasChildren: (
|
|
/*groupParentIds*/
|
|
ctx[14].has(
|
|
/*node*/
|
|
ctx[27]
|
|
)
|
|
),
|
|
section: (
|
|
/*idSection*/
|
|
ctx[13][
|
|
/*node*/
|
|
ctx[27]
|
|
]
|
|
),
|
|
selected: (
|
|
/*selectedNodes*/
|
|
ctx[2].has(
|
|
/*node*/
|
|
ctx[27]
|
|
)
|
|
),
|
|
pinned: (
|
|
/*pinnedNodes*/
|
|
ctx[11].has(
|
|
/*node*/
|
|
ctx[27]
|
|
)
|
|
),
|
|
isSearchMatch: (
|
|
/*searchResults*/
|
|
ctx[9].has(
|
|
/*node*/
|
|
ctx[27]
|
|
)
|
|
),
|
|
firstColumn: (
|
|
/*firstColumn*/
|
|
ctx[15]
|
|
),
|
|
style: (
|
|
/*styleRules*/
|
|
ctx[16].get(
|
|
/*node*/
|
|
ctx[27]
|
|
)
|
|
),
|
|
outlineMode: (
|
|
/*outlineMode*/
|
|
ctx[17]
|
|
),
|
|
collapsed: (
|
|
/*collapsedParents*/
|
|
ctx[19].has(
|
|
/*node*/
|
|
ctx[27]
|
|
)
|
|
),
|
|
hidden: (
|
|
/*hiddenNodes*/
|
|
ctx[20].has(
|
|
/*node*/
|
|
ctx[27]
|
|
)
|
|
),
|
|
alwaysShowCardButtons: (
|
|
/*alwaysShowCardButtons*/
|
|
ctx[21]
|
|
)
|
|
}
|
|
});
|
|
return {
|
|
c() {
|
|
create_component(node_1.$$.fragment);
|
|
},
|
|
m(target, anchor) {
|
|
mount_component(node_1, target, anchor);
|
|
current = true;
|
|
},
|
|
p(ctx2, dirty) {
|
|
const node_1_changes = {};
|
|
if (dirty & /*$nodes*/
|
|
4194304)
|
|
node_1_changes.node = /*node*/
|
|
ctx2[27];
|
|
if (dirty & /*$nodes, activeNode, parentNodes, activeChildGroups, groupId, activeGroup*/
|
|
4194363)
|
|
node_1_changes.active = /*node*/
|
|
ctx2[27] === /*activeNode*/
|
|
ctx2[5] ? "node" /* node */ : (
|
|
/*parentNodes*/
|
|
ctx2[3].has(
|
|
/*node*/
|
|
ctx2[27]
|
|
) ? "parent" /* parent */ : (
|
|
/*activeChildGroups*/
|
|
ctx2[1].has(
|
|
/*groupId*/
|
|
ctx2[0]
|
|
) ? "child" /* child */ : (
|
|
/*activeGroup*/
|
|
ctx2[4] === /*groupId*/
|
|
ctx2[0] ? "sibling" /* sibling */ : null
|
|
)
|
|
)
|
|
);
|
|
if (dirty & /*editedNodeState, $nodes*/
|
|
4194368)
|
|
node_1_changes.editing = /*editedNodeState*/
|
|
ctx2[6].activeNodeId === /*node*/
|
|
ctx2[27] && !/*editedNodeState*/
|
|
ctx2[6].isInSidebar;
|
|
if (dirty & /*editedNodeState, $nodes, pendingConfirmation*/
|
|
4194496)
|
|
node_1_changes.confirmDisableEdit = /*editedNodeState*/
|
|
ctx2[6].activeNodeId === /*node*/
|
|
ctx2[27] && /*pendingConfirmation*/
|
|
ctx2[7].disableEdit === /*node*/
|
|
ctx2[27] && !/*editedNodeState*/
|
|
ctx2[6].isInSidebar;
|
|
if (dirty & /*pendingConfirmation, $nodes*/
|
|
4194432)
|
|
node_1_changes.confirmDelete = /*pendingConfirmation*/
|
|
ctx2[7].deleteNode.has(
|
|
/*node*/
|
|
ctx2[27]
|
|
);
|
|
if (dirty & /*activeChildGroups*/
|
|
2)
|
|
node_1_changes.hasActiveChildren = /*activeChildGroups*/
|
|
ctx2[1].size > 0;
|
|
if (dirty & /*groupParentIds, $nodes*/
|
|
4210688)
|
|
node_1_changes.hasChildren = /*groupParentIds*/
|
|
ctx2[14].has(
|
|
/*node*/
|
|
ctx2[27]
|
|
);
|
|
if (dirty & /*idSection, $nodes*/
|
|
4202496)
|
|
node_1_changes.section = /*idSection*/
|
|
ctx2[13][
|
|
/*node*/
|
|
ctx2[27]
|
|
];
|
|
if (dirty & /*selectedNodes, $nodes*/
|
|
4194308)
|
|
node_1_changes.selected = /*selectedNodes*/
|
|
ctx2[2].has(
|
|
/*node*/
|
|
ctx2[27]
|
|
);
|
|
if (dirty & /*pinnedNodes, $nodes*/
|
|
4196352)
|
|
node_1_changes.pinned = /*pinnedNodes*/
|
|
ctx2[11].has(
|
|
/*node*/
|
|
ctx2[27]
|
|
);
|
|
if (dirty & /*searchResults, $nodes*/
|
|
4194816)
|
|
node_1_changes.isSearchMatch = /*searchResults*/
|
|
ctx2[9].has(
|
|
/*node*/
|
|
ctx2[27]
|
|
);
|
|
if (dirty & /*firstColumn*/
|
|
32768)
|
|
node_1_changes.firstColumn = /*firstColumn*/
|
|
ctx2[15];
|
|
if (dirty & /*styleRules, $nodes*/
|
|
4259840)
|
|
node_1_changes.style = /*styleRules*/
|
|
ctx2[16].get(
|
|
/*node*/
|
|
ctx2[27]
|
|
);
|
|
if (dirty & /*outlineMode*/
|
|
131072)
|
|
node_1_changes.outlineMode = /*outlineMode*/
|
|
ctx2[17];
|
|
if (dirty & /*collapsedParents, $nodes*/
|
|
4718592)
|
|
node_1_changes.collapsed = /*collapsedParents*/
|
|
ctx2[19].has(
|
|
/*node*/
|
|
ctx2[27]
|
|
);
|
|
if (dirty & /*hiddenNodes, $nodes*/
|
|
5242880)
|
|
node_1_changes.hidden = /*hiddenNodes*/
|
|
ctx2[20].has(
|
|
/*node*/
|
|
ctx2[27]
|
|
);
|
|
if (dirty & /*alwaysShowCardButtons*/
|
|
2097152)
|
|
node_1_changes.alwaysShowCardButtons = /*alwaysShowCardButtons*/
|
|
ctx2[21];
|
|
node_1.$set(node_1_changes);
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(node_1.$$.fragment, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(node_1.$$.fragment, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
destroy_component(node_1, detaching);
|
|
}
|
|
};
|
|
}
|
|
function create_each_block2(key_1, ctx) {
|
|
let first;
|
|
let show_if = (
|
|
/*searchQuery*/
|
|
(ctx[8].length === 0 || /*showAllNodes*/
|
|
ctx[10] || !/*searching*/
|
|
ctx[12] && /*searchResults*/
|
|
ctx[9].has(
|
|
/*node*/
|
|
ctx[27]
|
|
)) && !/*allDndNodes*/
|
|
ctx[18].has(
|
|
/*node*/
|
|
ctx[27]
|
|
)
|
|
);
|
|
let if_block_anchor;
|
|
let current;
|
|
let if_block = show_if && create_if_block_15(ctx);
|
|
return {
|
|
key: key_1,
|
|
first: null,
|
|
c() {
|
|
first = empty();
|
|
if (if_block)
|
|
if_block.c();
|
|
if_block_anchor = empty();
|
|
this.first = first;
|
|
},
|
|
m(target, anchor) {
|
|
insert(target, first, anchor);
|
|
if (if_block)
|
|
if_block.m(target, anchor);
|
|
insert(target, if_block_anchor, anchor);
|
|
current = true;
|
|
},
|
|
p(new_ctx, dirty) {
|
|
ctx = new_ctx;
|
|
if (dirty & /*searchQuery, showAllNodes, searching, searchResults, $nodes, allDndNodes*/
|
|
4462336)
|
|
show_if = /*searchQuery*/
|
|
(ctx[8].length === 0 || /*showAllNodes*/
|
|
ctx[10] || !/*searching*/
|
|
ctx[12] && /*searchResults*/
|
|
ctx[9].has(
|
|
/*node*/
|
|
ctx[27]
|
|
)) && !/*allDndNodes*/
|
|
ctx[18].has(
|
|
/*node*/
|
|
ctx[27]
|
|
);
|
|
if (show_if) {
|
|
if (if_block) {
|
|
if_block.p(ctx, dirty);
|
|
if (dirty & /*searchQuery, showAllNodes, searching, searchResults, $nodes, allDndNodes*/
|
|
4462336) {
|
|
transition_in(if_block, 1);
|
|
}
|
|
} else {
|
|
if_block = create_if_block_15(ctx);
|
|
if_block.c();
|
|
transition_in(if_block, 1);
|
|
if_block.m(if_block_anchor.parentNode, if_block_anchor);
|
|
}
|
|
} else if (if_block) {
|
|
group_outros();
|
|
transition_out(if_block, 1, 1, () => {
|
|
if_block = null;
|
|
});
|
|
check_outros();
|
|
}
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(if_block);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(if_block);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
if (detaching) {
|
|
detach(first);
|
|
detach(if_block_anchor);
|
|
}
|
|
if (if_block)
|
|
if_block.d(detaching);
|
|
}
|
|
};
|
|
}
|
|
function create_fragment63(ctx) {
|
|
let show_if = (
|
|
/*$nodes*/
|
|
ctx[22].length > 0 && /*searchQuery*/
|
|
(ctx[8].length === 0 || /*showAllNodes*/
|
|
ctx[10] || /*searchResults*/
|
|
ctx[9].size > 0 && /*$nodes*/
|
|
ctx[22].some(
|
|
/*func*/
|
|
ctx[25]
|
|
))
|
|
);
|
|
let if_block_anchor;
|
|
let current;
|
|
let if_block = show_if && create_if_block9(ctx);
|
|
return {
|
|
c() {
|
|
if (if_block)
|
|
if_block.c();
|
|
if_block_anchor = empty();
|
|
},
|
|
m(target, anchor) {
|
|
if (if_block)
|
|
if_block.m(target, anchor);
|
|
insert(target, if_block_anchor, anchor);
|
|
current = true;
|
|
},
|
|
p(ctx2, [dirty]) {
|
|
if (dirty & /*$nodes, searchQuery, showAllNodes, searchResults*/
|
|
4196096)
|
|
show_if = /*$nodes*/
|
|
ctx2[22].length > 0 && /*searchQuery*/
|
|
(ctx2[8].length === 0 || /*showAllNodes*/
|
|
ctx2[10] || /*searchResults*/
|
|
ctx2[9].size > 0 && /*$nodes*/
|
|
ctx2[22].some(
|
|
/*func*/
|
|
ctx2[25]
|
|
));
|
|
if (show_if) {
|
|
if (if_block) {
|
|
if_block.p(ctx2, dirty);
|
|
if (dirty & /*$nodes, searchQuery, showAllNodes, searchResults*/
|
|
4196096) {
|
|
transition_in(if_block, 1);
|
|
}
|
|
} else {
|
|
if_block = create_if_block9(ctx2);
|
|
if_block.c();
|
|
transition_in(if_block, 1);
|
|
if_block.m(if_block_anchor.parentNode, if_block_anchor);
|
|
}
|
|
} else if (if_block) {
|
|
group_outros();
|
|
transition_out(if_block, 1, 1, () => {
|
|
if_block = null;
|
|
});
|
|
check_outros();
|
|
}
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(if_block);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(if_block);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
if (detaching) {
|
|
detach(if_block_anchor);
|
|
}
|
|
if (if_block)
|
|
if_block.d(detaching);
|
|
}
|
|
};
|
|
}
|
|
function instance62($$self, $$props, $$invalidate) {
|
|
let $nodes;
|
|
let { groupId } = $$props;
|
|
let { columnId } = $$props;
|
|
let { activeChildGroups } = $$props;
|
|
let { selectedNodes } = $$props;
|
|
let { parentNodes } = $$props;
|
|
let { activeGroup } = $$props;
|
|
let { activeNode } = $$props;
|
|
let { editedNodeState } = $$props;
|
|
let { pendingConfirmation } = $$props;
|
|
let { searchQuery } = $$props;
|
|
let { searchResults } = $$props;
|
|
let { showAllNodes } = $$props;
|
|
let { pinnedNodes } = $$props;
|
|
let { searching } = $$props;
|
|
let { idSection } = $$props;
|
|
let { groupParentIds } = $$props;
|
|
let { firstColumn } = $$props;
|
|
let { styleRules } = $$props;
|
|
let { outlineMode } = $$props;
|
|
let { allDndNodes } = $$props;
|
|
let { collapsedParents } = $$props;
|
|
let { hiddenNodes } = $$props;
|
|
let { alwaysShowCardButtons } = $$props;
|
|
const view = getView();
|
|
const nodes = outlineMode ? singleColumnNodesStore(view) : nodesStore(view, columnId, groupId);
|
|
component_subscribe($$self, nodes, (value) => $$invalidate(22, $nodes = value));
|
|
const func2 = (n) => searchResults.has(n);
|
|
$$self.$$set = ($$props2) => {
|
|
if ("groupId" in $$props2)
|
|
$$invalidate(0, groupId = $$props2.groupId);
|
|
if ("columnId" in $$props2)
|
|
$$invalidate(24, columnId = $$props2.columnId);
|
|
if ("activeChildGroups" in $$props2)
|
|
$$invalidate(1, activeChildGroups = $$props2.activeChildGroups);
|
|
if ("selectedNodes" in $$props2)
|
|
$$invalidate(2, selectedNodes = $$props2.selectedNodes);
|
|
if ("parentNodes" in $$props2)
|
|
$$invalidate(3, parentNodes = $$props2.parentNodes);
|
|
if ("activeGroup" in $$props2)
|
|
$$invalidate(4, activeGroup = $$props2.activeGroup);
|
|
if ("activeNode" in $$props2)
|
|
$$invalidate(5, activeNode = $$props2.activeNode);
|
|
if ("editedNodeState" in $$props2)
|
|
$$invalidate(6, editedNodeState = $$props2.editedNodeState);
|
|
if ("pendingConfirmation" in $$props2)
|
|
$$invalidate(7, pendingConfirmation = $$props2.pendingConfirmation);
|
|
if ("searchQuery" in $$props2)
|
|
$$invalidate(8, searchQuery = $$props2.searchQuery);
|
|
if ("searchResults" in $$props2)
|
|
$$invalidate(9, searchResults = $$props2.searchResults);
|
|
if ("showAllNodes" in $$props2)
|
|
$$invalidate(10, showAllNodes = $$props2.showAllNodes);
|
|
if ("pinnedNodes" in $$props2)
|
|
$$invalidate(11, pinnedNodes = $$props2.pinnedNodes);
|
|
if ("searching" in $$props2)
|
|
$$invalidate(12, searching = $$props2.searching);
|
|
if ("idSection" in $$props2)
|
|
$$invalidate(13, idSection = $$props2.idSection);
|
|
if ("groupParentIds" in $$props2)
|
|
$$invalidate(14, groupParentIds = $$props2.groupParentIds);
|
|
if ("firstColumn" in $$props2)
|
|
$$invalidate(15, firstColumn = $$props2.firstColumn);
|
|
if ("styleRules" in $$props2)
|
|
$$invalidate(16, styleRules = $$props2.styleRules);
|
|
if ("outlineMode" in $$props2)
|
|
$$invalidate(17, outlineMode = $$props2.outlineMode);
|
|
if ("allDndNodes" in $$props2)
|
|
$$invalidate(18, allDndNodes = $$props2.allDndNodes);
|
|
if ("collapsedParents" in $$props2)
|
|
$$invalidate(19, collapsedParents = $$props2.collapsedParents);
|
|
if ("hiddenNodes" in $$props2)
|
|
$$invalidate(20, hiddenNodes = $$props2.hiddenNodes);
|
|
if ("alwaysShowCardButtons" in $$props2)
|
|
$$invalidate(21, alwaysShowCardButtons = $$props2.alwaysShowCardButtons);
|
|
};
|
|
return [
|
|
groupId,
|
|
activeChildGroups,
|
|
selectedNodes,
|
|
parentNodes,
|
|
activeGroup,
|
|
activeNode,
|
|
editedNodeState,
|
|
pendingConfirmation,
|
|
searchQuery,
|
|
searchResults,
|
|
showAllNodes,
|
|
pinnedNodes,
|
|
searching,
|
|
idSection,
|
|
groupParentIds,
|
|
firstColumn,
|
|
styleRules,
|
|
outlineMode,
|
|
allDndNodes,
|
|
collapsedParents,
|
|
hiddenNodes,
|
|
alwaysShowCardButtons,
|
|
$nodes,
|
|
nodes,
|
|
columnId,
|
|
func2
|
|
];
|
|
}
|
|
var Group = class extends SvelteComponent {
|
|
constructor(options) {
|
|
super();
|
|
init(this, options, instance62, create_fragment63, safe_not_equal, {
|
|
groupId: 0,
|
|
columnId: 24,
|
|
activeChildGroups: 1,
|
|
selectedNodes: 2,
|
|
parentNodes: 3,
|
|
activeGroup: 4,
|
|
activeNode: 5,
|
|
editedNodeState: 6,
|
|
pendingConfirmation: 7,
|
|
searchQuery: 8,
|
|
searchResults: 9,
|
|
showAllNodes: 10,
|
|
pinnedNodes: 11,
|
|
searching: 12,
|
|
idSection: 13,
|
|
groupParentIds: 14,
|
|
firstColumn: 15,
|
|
styleRules: 16,
|
|
outlineMode: 17,
|
|
allDndNodes: 18,
|
|
collapsedParents: 19,
|
|
hiddenNodes: 20,
|
|
alwaysShowCardButtons: 21
|
|
});
|
|
}
|
|
};
|
|
var group_default = Group;
|
|
|
|
// src/view/components/container/column/column.svelte
|
|
function add_css9(target) {
|
|
append_styles(target, "svelte-f71k1e", ".column.svelte-f71k1e::-webkit-scrollbar{display:none}.column-buffer.svelte-f71k1e{height:90%;min-width:var(--node-width)}");
|
|
}
|
|
function get_each_context3(ctx, list, i) {
|
|
const child_ctx = ctx.slice();
|
|
child_ctx[26] = list[i];
|
|
return child_ctx;
|
|
}
|
|
function create_if_block10(ctx) {
|
|
let group_1;
|
|
let current;
|
|
group_1 = new group_default({
|
|
props: {
|
|
groupId: (
|
|
/*group*/
|
|
ctx[26].parentId
|
|
),
|
|
columnId: (
|
|
/*columnId*/
|
|
ctx[0]
|
|
),
|
|
parentNodes: (
|
|
/*parentNodes*/
|
|
ctx[4]
|
|
),
|
|
activeGroup: (
|
|
/*activeGroup*/
|
|
ctx[5]
|
|
),
|
|
editedNodeState: (
|
|
/*editedNodeState*/
|
|
ctx[7]
|
|
),
|
|
searchQuery: (
|
|
/*searchQuery*/
|
|
ctx[10]
|
|
),
|
|
searchResults: (
|
|
/*searchResults*/
|
|
ctx[11]
|
|
),
|
|
showAllNodes: (
|
|
/*showAllNodes*/
|
|
ctx[9]
|
|
),
|
|
searching: (
|
|
/*searching*/
|
|
ctx[15]
|
|
),
|
|
activeChildGroups: (
|
|
/*activeChildGroups*/
|
|
ctx[1]
|
|
),
|
|
activeNode: (
|
|
/*activeNode*/
|
|
ctx[6]
|
|
),
|
|
idSection: (
|
|
/*idSection*/
|
|
ctx[16]
|
|
),
|
|
selectedNodes: (
|
|
/*selectedNodes*/
|
|
ctx[3]
|
|
),
|
|
pinnedNodes: (
|
|
/*pinnedNodes*/
|
|
ctx[12]
|
|
),
|
|
groupParentIds: (
|
|
/*groupParentIds*/
|
|
ctx[14]
|
|
),
|
|
firstColumn: (
|
|
/*firstColumn*/
|
|
ctx[17]
|
|
),
|
|
pendingConfirmation: (
|
|
/*pendingConfirmation*/
|
|
ctx[8]
|
|
),
|
|
styleRules: (
|
|
/*styleRules*/
|
|
ctx[18]
|
|
),
|
|
outlineMode: (
|
|
/*outlineMode*/
|
|
ctx[19]
|
|
),
|
|
allDndNodes: (
|
|
/*allDndNodes*/
|
|
ctx[13]
|
|
),
|
|
collapsedParents: (
|
|
/*collapsedParents*/
|
|
ctx[20]
|
|
),
|
|
hiddenNodes: (
|
|
/*hiddenNodes*/
|
|
ctx[21]
|
|
),
|
|
alwaysShowCardButtons: (
|
|
/*alwaysShowCardButtons*/
|
|
ctx[22]
|
|
)
|
|
}
|
|
});
|
|
return {
|
|
c() {
|
|
create_component(group_1.$$.fragment);
|
|
},
|
|
m(target, anchor) {
|
|
mount_component(group_1, target, anchor);
|
|
current = true;
|
|
},
|
|
p(ctx2, dirty) {
|
|
const group_1_changes = {};
|
|
if (dirty & /*$groups*/
|
|
8388608)
|
|
group_1_changes.groupId = /*group*/
|
|
ctx2[26].parentId;
|
|
if (dirty & /*columnId*/
|
|
1)
|
|
group_1_changes.columnId = /*columnId*/
|
|
ctx2[0];
|
|
if (dirty & /*parentNodes*/
|
|
16)
|
|
group_1_changes.parentNodes = /*parentNodes*/
|
|
ctx2[4];
|
|
if (dirty & /*activeGroup*/
|
|
32)
|
|
group_1_changes.activeGroup = /*activeGroup*/
|
|
ctx2[5];
|
|
if (dirty & /*editedNodeState*/
|
|
128)
|
|
group_1_changes.editedNodeState = /*editedNodeState*/
|
|
ctx2[7];
|
|
if (dirty & /*searchQuery*/
|
|
1024)
|
|
group_1_changes.searchQuery = /*searchQuery*/
|
|
ctx2[10];
|
|
if (dirty & /*searchResults*/
|
|
2048)
|
|
group_1_changes.searchResults = /*searchResults*/
|
|
ctx2[11];
|
|
if (dirty & /*showAllNodes*/
|
|
512)
|
|
group_1_changes.showAllNodes = /*showAllNodes*/
|
|
ctx2[9];
|
|
if (dirty & /*searching*/
|
|
32768)
|
|
group_1_changes.searching = /*searching*/
|
|
ctx2[15];
|
|
if (dirty & /*activeChildGroups*/
|
|
2)
|
|
group_1_changes.activeChildGroups = /*activeChildGroups*/
|
|
ctx2[1];
|
|
if (dirty & /*activeNode*/
|
|
64)
|
|
group_1_changes.activeNode = /*activeNode*/
|
|
ctx2[6];
|
|
if (dirty & /*idSection*/
|
|
65536)
|
|
group_1_changes.idSection = /*idSection*/
|
|
ctx2[16];
|
|
if (dirty & /*selectedNodes*/
|
|
8)
|
|
group_1_changes.selectedNodes = /*selectedNodes*/
|
|
ctx2[3];
|
|
if (dirty & /*pinnedNodes*/
|
|
4096)
|
|
group_1_changes.pinnedNodes = /*pinnedNodes*/
|
|
ctx2[12];
|
|
if (dirty & /*groupParentIds*/
|
|
16384)
|
|
group_1_changes.groupParentIds = /*groupParentIds*/
|
|
ctx2[14];
|
|
if (dirty & /*firstColumn*/
|
|
131072)
|
|
group_1_changes.firstColumn = /*firstColumn*/
|
|
ctx2[17];
|
|
if (dirty & /*pendingConfirmation*/
|
|
256)
|
|
group_1_changes.pendingConfirmation = /*pendingConfirmation*/
|
|
ctx2[8];
|
|
if (dirty & /*styleRules*/
|
|
262144)
|
|
group_1_changes.styleRules = /*styleRules*/
|
|
ctx2[18];
|
|
if (dirty & /*outlineMode*/
|
|
524288)
|
|
group_1_changes.outlineMode = /*outlineMode*/
|
|
ctx2[19];
|
|
if (dirty & /*allDndNodes*/
|
|
8192)
|
|
group_1_changes.allDndNodes = /*allDndNodes*/
|
|
ctx2[13];
|
|
if (dirty & /*collapsedParents*/
|
|
1048576)
|
|
group_1_changes.collapsedParents = /*collapsedParents*/
|
|
ctx2[20];
|
|
if (dirty & /*hiddenNodes*/
|
|
2097152)
|
|
group_1_changes.hiddenNodes = /*hiddenNodes*/
|
|
ctx2[21];
|
|
if (dirty & /*alwaysShowCardButtons*/
|
|
4194304)
|
|
group_1_changes.alwaysShowCardButtons = /*alwaysShowCardButtons*/
|
|
ctx2[22];
|
|
group_1.$set(group_1_changes);
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(group_1.$$.fragment, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(group_1.$$.fragment, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
destroy_component(group_1, detaching);
|
|
}
|
|
};
|
|
}
|
|
function create_each_block3(key_1, ctx) {
|
|
let first;
|
|
let show_if = !/*dndChildGroups*/
|
|
ctx[2].has(
|
|
/*group*/
|
|
ctx[26].parentId
|
|
);
|
|
let if_block_anchor;
|
|
let current;
|
|
let if_block = show_if && create_if_block10(ctx);
|
|
return {
|
|
key: key_1,
|
|
first: null,
|
|
c() {
|
|
first = empty();
|
|
if (if_block)
|
|
if_block.c();
|
|
if_block_anchor = empty();
|
|
this.first = first;
|
|
},
|
|
m(target, anchor) {
|
|
insert(target, first, anchor);
|
|
if (if_block)
|
|
if_block.m(target, anchor);
|
|
insert(target, if_block_anchor, anchor);
|
|
current = true;
|
|
},
|
|
p(new_ctx, dirty) {
|
|
ctx = new_ctx;
|
|
if (dirty & /*dndChildGroups, $groups*/
|
|
8388612)
|
|
show_if = !/*dndChildGroups*/
|
|
ctx[2].has(
|
|
/*group*/
|
|
ctx[26].parentId
|
|
);
|
|
if (show_if) {
|
|
if (if_block) {
|
|
if_block.p(ctx, dirty);
|
|
if (dirty & /*dndChildGroups, $groups*/
|
|
8388612) {
|
|
transition_in(if_block, 1);
|
|
}
|
|
} else {
|
|
if_block = create_if_block10(ctx);
|
|
if_block.c();
|
|
transition_in(if_block, 1);
|
|
if_block.m(if_block_anchor.parentNode, if_block_anchor);
|
|
}
|
|
} else if (if_block) {
|
|
group_outros();
|
|
transition_out(if_block, 1, 1, () => {
|
|
if_block = null;
|
|
});
|
|
check_outros();
|
|
}
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(if_block);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(if_block);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
if (detaching) {
|
|
detach(first);
|
|
detach(if_block_anchor);
|
|
}
|
|
if (if_block)
|
|
if_block.d(detaching);
|
|
}
|
|
};
|
|
}
|
|
function create_fragment64(ctx) {
|
|
let div2;
|
|
let div0;
|
|
let t0;
|
|
let each_blocks = [];
|
|
let each_1_lookup = /* @__PURE__ */ new Map();
|
|
let t1;
|
|
let div1;
|
|
let current;
|
|
let each_value = ensure_array_like(
|
|
/*$groups*/
|
|
ctx[23]
|
|
);
|
|
const get_key = (ctx2) => (
|
|
/*group*/
|
|
ctx2[26].parentId
|
|
);
|
|
for (let i = 0; i < each_value.length; i += 1) {
|
|
let child_ctx = get_each_context3(ctx, each_value, i);
|
|
let key = get_key(child_ctx);
|
|
each_1_lookup.set(key, each_blocks[i] = create_each_block3(key, child_ctx));
|
|
}
|
|
return {
|
|
c() {
|
|
div2 = element("div");
|
|
div0 = element("div");
|
|
t0 = space();
|
|
for (let i = 0; i < each_blocks.length; i += 1) {
|
|
each_blocks[i].c();
|
|
}
|
|
t1 = space();
|
|
div1 = element("div");
|
|
attr(div0, "class", "column-buffer svelte-f71k1e");
|
|
attr(div1, "class", "column-buffer svelte-f71k1e");
|
|
attr(div2, "class", "column svelte-f71k1e");
|
|
attr(
|
|
div2,
|
|
"id",
|
|
/*columnId*/
|
|
ctx[0]
|
|
);
|
|
},
|
|
m(target, anchor) {
|
|
insert(target, div2, anchor);
|
|
append(div2, div0);
|
|
append(div2, t0);
|
|
for (let i = 0; i < each_blocks.length; i += 1) {
|
|
if (each_blocks[i]) {
|
|
each_blocks[i].m(div2, null);
|
|
}
|
|
}
|
|
append(div2, t1);
|
|
append(div2, div1);
|
|
current = true;
|
|
},
|
|
p(ctx2, [dirty]) {
|
|
if (dirty & /*$groups, columnId, parentNodes, activeGroup, editedNodeState, searchQuery, searchResults, showAllNodes, searching, activeChildGroups, activeNode, idSection, selectedNodes, pinnedNodes, groupParentIds, firstColumn, pendingConfirmation, styleRules, outlineMode, allDndNodes, collapsedParents, hiddenNodes, alwaysShowCardButtons, dndChildGroups*/
|
|
16777215) {
|
|
each_value = ensure_array_like(
|
|
/*$groups*/
|
|
ctx2[23]
|
|
);
|
|
group_outros();
|
|
each_blocks = update_keyed_each(each_blocks, dirty, get_key, 1, ctx2, each_value, each_1_lookup, div2, outro_and_destroy_block, create_each_block3, t1, get_each_context3);
|
|
check_outros();
|
|
}
|
|
if (!current || dirty & /*columnId*/
|
|
1) {
|
|
attr(
|
|
div2,
|
|
"id",
|
|
/*columnId*/
|
|
ctx2[0]
|
|
);
|
|
}
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
for (let i = 0; i < each_value.length; i += 1) {
|
|
transition_in(each_blocks[i]);
|
|
}
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
for (let i = 0; i < each_blocks.length; i += 1) {
|
|
transition_out(each_blocks[i]);
|
|
}
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
if (detaching) {
|
|
detach(div2);
|
|
}
|
|
for (let i = 0; i < each_blocks.length; i += 1) {
|
|
each_blocks[i].d();
|
|
}
|
|
}
|
|
};
|
|
}
|
|
function instance63($$self, $$props, $$invalidate) {
|
|
let $groups;
|
|
let { columnId } = $$props;
|
|
let { activeChildGroups } = $$props;
|
|
let { dndChildGroups } = $$props;
|
|
let { selectedNodes } = $$props;
|
|
let { parentNodes } = $$props;
|
|
let { activeGroup } = $$props;
|
|
let { activeNode } = $$props;
|
|
let { editedNodeState } = $$props;
|
|
let { pendingConfirmation } = $$props;
|
|
let { showAllNodes } = $$props;
|
|
let { searchQuery } = $$props;
|
|
let { searchResults } = $$props;
|
|
let { pinnedNodes } = $$props;
|
|
let { allDndNodes } = $$props;
|
|
let { groupParentIds } = $$props;
|
|
let { searching } = $$props;
|
|
let { idSection } = $$props;
|
|
let { firstColumn } = $$props;
|
|
let { styleRules } = $$props;
|
|
let { outlineMode } = $$props;
|
|
let { collapsedParents } = $$props;
|
|
let { hiddenNodes } = $$props;
|
|
let { alwaysShowCardButtons } = $$props;
|
|
const view = getView();
|
|
const groups = outlineMode ? singleColumnGroupStore(view) : groupsStore(view, columnId);
|
|
component_subscribe($$self, groups, (value) => $$invalidate(23, $groups = value));
|
|
$$self.$$set = ($$props2) => {
|
|
if ("columnId" in $$props2)
|
|
$$invalidate(0, columnId = $$props2.columnId);
|
|
if ("activeChildGroups" in $$props2)
|
|
$$invalidate(1, activeChildGroups = $$props2.activeChildGroups);
|
|
if ("dndChildGroups" in $$props2)
|
|
$$invalidate(2, dndChildGroups = $$props2.dndChildGroups);
|
|
if ("selectedNodes" in $$props2)
|
|
$$invalidate(3, selectedNodes = $$props2.selectedNodes);
|
|
if ("parentNodes" in $$props2)
|
|
$$invalidate(4, parentNodes = $$props2.parentNodes);
|
|
if ("activeGroup" in $$props2)
|
|
$$invalidate(5, activeGroup = $$props2.activeGroup);
|
|
if ("activeNode" in $$props2)
|
|
$$invalidate(6, activeNode = $$props2.activeNode);
|
|
if ("editedNodeState" in $$props2)
|
|
$$invalidate(7, editedNodeState = $$props2.editedNodeState);
|
|
if ("pendingConfirmation" in $$props2)
|
|
$$invalidate(8, pendingConfirmation = $$props2.pendingConfirmation);
|
|
if ("showAllNodes" in $$props2)
|
|
$$invalidate(9, showAllNodes = $$props2.showAllNodes);
|
|
if ("searchQuery" in $$props2)
|
|
$$invalidate(10, searchQuery = $$props2.searchQuery);
|
|
if ("searchResults" in $$props2)
|
|
$$invalidate(11, searchResults = $$props2.searchResults);
|
|
if ("pinnedNodes" in $$props2)
|
|
$$invalidate(12, pinnedNodes = $$props2.pinnedNodes);
|
|
if ("allDndNodes" in $$props2)
|
|
$$invalidate(13, allDndNodes = $$props2.allDndNodes);
|
|
if ("groupParentIds" in $$props2)
|
|
$$invalidate(14, groupParentIds = $$props2.groupParentIds);
|
|
if ("searching" in $$props2)
|
|
$$invalidate(15, searching = $$props2.searching);
|
|
if ("idSection" in $$props2)
|
|
$$invalidate(16, idSection = $$props2.idSection);
|
|
if ("firstColumn" in $$props2)
|
|
$$invalidate(17, firstColumn = $$props2.firstColumn);
|
|
if ("styleRules" in $$props2)
|
|
$$invalidate(18, styleRules = $$props2.styleRules);
|
|
if ("outlineMode" in $$props2)
|
|
$$invalidate(19, outlineMode = $$props2.outlineMode);
|
|
if ("collapsedParents" in $$props2)
|
|
$$invalidate(20, collapsedParents = $$props2.collapsedParents);
|
|
if ("hiddenNodes" in $$props2)
|
|
$$invalidate(21, hiddenNodes = $$props2.hiddenNodes);
|
|
if ("alwaysShowCardButtons" in $$props2)
|
|
$$invalidate(22, alwaysShowCardButtons = $$props2.alwaysShowCardButtons);
|
|
};
|
|
return [
|
|
columnId,
|
|
activeChildGroups,
|
|
dndChildGroups,
|
|
selectedNodes,
|
|
parentNodes,
|
|
activeGroup,
|
|
activeNode,
|
|
editedNodeState,
|
|
pendingConfirmation,
|
|
showAllNodes,
|
|
searchQuery,
|
|
searchResults,
|
|
pinnedNodes,
|
|
allDndNodes,
|
|
groupParentIds,
|
|
searching,
|
|
idSection,
|
|
firstColumn,
|
|
styleRules,
|
|
outlineMode,
|
|
collapsedParents,
|
|
hiddenNodes,
|
|
alwaysShowCardButtons,
|
|
$groups,
|
|
groups
|
|
];
|
|
}
|
|
var Column = class extends SvelteComponent {
|
|
constructor(options) {
|
|
super();
|
|
init(
|
|
this,
|
|
options,
|
|
instance63,
|
|
create_fragment64,
|
|
safe_not_equal,
|
|
{
|
|
columnId: 0,
|
|
activeChildGroups: 1,
|
|
dndChildGroups: 2,
|
|
selectedNodes: 3,
|
|
parentNodes: 4,
|
|
activeGroup: 5,
|
|
activeNode: 6,
|
|
editedNodeState: 7,
|
|
pendingConfirmation: 8,
|
|
showAllNodes: 9,
|
|
searchQuery: 10,
|
|
searchResults: 11,
|
|
pinnedNodes: 12,
|
|
allDndNodes: 13,
|
|
groupParentIds: 14,
|
|
searching: 15,
|
|
idSection: 16,
|
|
firstColumn: 17,
|
|
styleRules: 18,
|
|
outlineMode: 19,
|
|
collapsedParents: 20,
|
|
hiddenNodes: 21,
|
|
alwaysShowCardButtons: 22
|
|
},
|
|
add_css9
|
|
);
|
|
}
|
|
};
|
|
var column_default = Column;
|
|
|
|
// src/view/actions/dnd/scroll-on-dnd-x/helpers/get-horizontal-buffer.ts
|
|
var getHorizontalBuffer = (container, direction) => {
|
|
const columnsWrapper = container.firstElementChild;
|
|
if (!columnsWrapper)
|
|
return null;
|
|
return direction === -1 ? columnsWrapper.firstElementChild : columnsWrapper.lastElementChild;
|
|
};
|
|
|
|
// src/view/actions/dnd/scroll-on-dnd-x/helpers/stop-horizontal-reveal.ts
|
|
var stopHorizontalReveal = (context) => {
|
|
const isLeftEdge = context.state.direction === -1;
|
|
if (isLeftEdge) {
|
|
if (context.buffer) {
|
|
const bufferRect = context.buffer.getBoundingClientRect();
|
|
if (bufferRect.right - 100 > context.containerRect.left) {
|
|
return true;
|
|
}
|
|
}
|
|
} else if (context.state.direction === 1) {
|
|
if (context.rightColumn) {
|
|
const rect = context.rightColumn.getBoundingClientRect();
|
|
if (rect.right + 100 < context.containerRect.right) {
|
|
return true;
|
|
}
|
|
}
|
|
}
|
|
};
|
|
|
|
// src/view/actions/dnd/scroll-on-dnd-x/helpers/scroll-horizontally.ts
|
|
var horizontalScrollStep = 30;
|
|
var scrollHorizontally = (context) => {
|
|
if (context.state.direction === 0)
|
|
return;
|
|
if (stopHorizontalReveal(context))
|
|
return;
|
|
context.columnsContainer.scrollLeft += context.state.direction * horizontalScrollStep;
|
|
requestAnimationFrame(() => scrollHorizontally(context));
|
|
};
|
|
|
|
// src/view/actions/dnd/scroll-on-dnd-x/helpers/get-right-most-column.ts
|
|
var getRightMostColumn = (container, direction) => {
|
|
return direction === 1 ? Array.from(container.querySelectorAll(".column")).reverse().find(
|
|
(x) => x.querySelectorAll(
|
|
`.lineage-card:not(.${DND_ACTIVE_CLASS})`
|
|
).length > 0
|
|
) : null;
|
|
};
|
|
|
|
// src/view/actions/dnd/scroll-on-dnd-x/scroll-on-dnd-x.ts
|
|
var scrollOnDndX = (container) => {
|
|
let leftEdge = null;
|
|
let rightEdge = null;
|
|
const view = getView();
|
|
const state2 = {
|
|
direction: 0
|
|
};
|
|
const handleDragEnter = (event) => {
|
|
const containerRect = container.getBoundingClientRect();
|
|
const target = event.target;
|
|
if (!target)
|
|
return;
|
|
state2.direction = target.id === "dnd-edge-left" ? -1 : target.id === "dnd-edge-right" ? 1 : 0;
|
|
const buffer = getHorizontalBuffer(container, state2.direction);
|
|
const rightColumn = getRightMostColumn(container, state2.direction);
|
|
if (!buffer)
|
|
return;
|
|
const context = {
|
|
buffer,
|
|
rightColumn,
|
|
columnsContainer: container,
|
|
containerRect,
|
|
state: state2
|
|
};
|
|
scrollHorizontally(context);
|
|
};
|
|
const handleDragLeave = () => {
|
|
state2.direction = 0;
|
|
};
|
|
setTimeout(() => {
|
|
leftEdge = view.contentEl.querySelector("#dnd-edge-left");
|
|
rightEdge = view.contentEl.querySelector("#dnd-edge-right");
|
|
if (leftEdge && rightEdge) {
|
|
leftEdge.addEventListener("dragenter", handleDragEnter);
|
|
leftEdge.addEventListener("dragleave", handleDragLeave);
|
|
rightEdge.addEventListener("dragenter", handleDragEnter);
|
|
rightEdge.addEventListener("dragleave", handleDragLeave);
|
|
}
|
|
}, 100);
|
|
return {
|
|
destroy() {
|
|
if (leftEdge && rightEdge) {
|
|
leftEdge.removeEventListener("dragenter", handleDragEnter);
|
|
leftEdge.removeEventListener("dragleave", handleDragLeave);
|
|
rightEdge.removeEventListener("dragenter", handleDragEnter);
|
|
rightEdge.removeEventListener("dragleave", handleDragLeave);
|
|
}
|
|
}
|
|
};
|
|
};
|
|
|
|
// src/stores/document/derived/columns-store.ts
|
|
var columnsStore = (view) => derived(view.documentStore, (state2) => state2.document.columns);
|
|
var singleColumnStore = (view) => derived(view.documentStore, (state2) => {
|
|
const column = state2.document.columns[0];
|
|
return column ? [column] : [];
|
|
});
|
|
|
|
// src/view/components/container/buffers/columns-buffer.svelte
|
|
function create_fragment65(ctx) {
|
|
let div;
|
|
return {
|
|
c() {
|
|
div = element("div");
|
|
attr(div, "aria-label", "horizontal buffer");
|
|
set_style(div, "min-height", "10px");
|
|
set_style(div, "min-width", "calc(1/var(--zoom-level) * 100vw)");
|
|
},
|
|
m(target, anchor) {
|
|
insert(target, div, anchor);
|
|
},
|
|
p: noop,
|
|
i: noop,
|
|
o: noop,
|
|
d(detaching) {
|
|
if (detaching) {
|
|
detach(div);
|
|
}
|
|
}
|
|
};
|
|
}
|
|
var Columns_buffer = class extends SvelteComponent {
|
|
constructor(options) {
|
|
super();
|
|
init(this, options, null, create_fragment65, safe_not_equal, {});
|
|
}
|
|
};
|
|
var columns_buffer_default = Columns_buffer;
|
|
|
|
// src/stores/view/derived/dnd-store.ts
|
|
var dndStore = (view) => derived(view.viewStore, (state2) => state2.document.dnd);
|
|
|
|
// src/stores/view/derived/active-branch-store.ts
|
|
var activeBranchStore = (view) => derived(view.viewStore, (state2) => state2.document.activeBranch);
|
|
|
|
// src/stores/view/derived/active-node-store.ts
|
|
var activeNodeStore = (view) => derived(view.viewStore, (state2) => state2.document.activeNode);
|
|
|
|
// src/stores/view/derived/editing-store.ts
|
|
var documentStateStore = (view) => derived(view.viewStore, (state2) => state2.document.editing);
|
|
|
|
// src/stores/view/derived/search-store.ts
|
|
var searchStore = (view) => derived(view.viewStore, (state2) => state2.search);
|
|
|
|
// src/stores/document/derived/id-section-store.ts
|
|
var IdSectionStore = (view) => {
|
|
return derived(view.documentStore, (state2) => {
|
|
return state2.sections.id_section;
|
|
});
|
|
};
|
|
|
|
// src/stores/view/derived/selected-nodes-store.ts
|
|
var selectedNodesStore = (view) => derived(view.viewStore, (state2) => state2.document.selectedNodes);
|
|
|
|
// src/stores/document/derived/pinned-nodes-store.ts
|
|
var PinnedNodesStore = (view) => {
|
|
return derived(view.documentStore, (state2) => {
|
|
return state2.pinnedNodes.Ids;
|
|
});
|
|
};
|
|
|
|
// src/stores/document/derived/meta.ts
|
|
var GroupParentIdsStore = (view) => {
|
|
return derived(view.documentStore, (state2) => {
|
|
return state2.meta.groupParentIds;
|
|
});
|
|
};
|
|
|
|
// src/stores/view/derived/pending-confirmation.ts
|
|
var PendingConfirmationStore = (view) => derived(view.viewStore, (state2) => state2.document.pendingConfirmation);
|
|
|
|
// src/stores/view/derived/style-rules.ts
|
|
var NodeStylesStore = (view) => derived(view.viewStore, (state2) => state2.styleRules.nodeStyles);
|
|
var AllRuleMatchesStore = (view) => derived(view.viewStore, (state2) => state2.styleRules.allMatches);
|
|
|
|
// src/lib/tree-utils/get/get-all-children.ts
|
|
var getAllChildren = (columns, nodeId) => {
|
|
const columnOfNode = findNodeColumn(columns, nodeId);
|
|
const childGroups = /* @__PURE__ */ new Set([nodeId]);
|
|
for (let i = columnOfNode + 1; i < columns.length; i++) {
|
|
const column = columns[i];
|
|
for (const group of column.groups) {
|
|
if (childGroups.has(group.parentId)) {
|
|
for (const childNodeId of group.nodes) {
|
|
childGroups.add(childNodeId);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
childGroups.delete(nodeId);
|
|
return Array.from(childGroups);
|
|
};
|
|
|
|
// src/view/actions/context-menu/card-context-menu/helpers/text-is-selected.ts
|
|
var textIsSelected = () => {
|
|
const selectedText = activeWindow.getSelection()?.toString();
|
|
return selectedText && selectedText.length > 0 ? true : false;
|
|
};
|
|
|
|
// src/stores/view/derived/outline-store.ts
|
|
var OutlineStore = (view) => derived(view.viewStore, (state2) => state2.outline);
|
|
|
|
// src/view/actions/hide-floating-buttons.ts
|
|
var toggleHideButtons = (element2, hide) => {
|
|
element2.toggleClass("hide-floating-buttons", hide);
|
|
};
|
|
var hideFloatingButtons = (element2) => {
|
|
let timeoutHandle = null;
|
|
let hidden = false;
|
|
const delayedHideButtons = () => {
|
|
timeoutHandle = setTimeout(() => {
|
|
if (!hidden) {
|
|
toggleHideButtons(element2, true);
|
|
hidden = true;
|
|
}
|
|
}, 5 * 1e3);
|
|
};
|
|
const resetHideButtons = () => {
|
|
if (timeoutHandle)
|
|
clearTimeout(timeoutHandle);
|
|
if (hidden) {
|
|
toggleHideButtons(element2, false);
|
|
hidden = false;
|
|
}
|
|
};
|
|
const onMousemove = () => {
|
|
resetHideButtons();
|
|
delayedHideButtons();
|
|
};
|
|
const view = getView();
|
|
const subscription = AlwaysShowCardButtons(view).subscribe((show) => {
|
|
if (show) {
|
|
element2.addEventListener("mousemove", onMousemove);
|
|
} else {
|
|
element2.removeEventListener("mousemove", onMousemove);
|
|
}
|
|
});
|
|
return {
|
|
destroy: () => {
|
|
resetHideButtons();
|
|
subscription();
|
|
element2.removeEventListener("mousemove", onMousemove);
|
|
}
|
|
};
|
|
};
|
|
|
|
// src/view/actions/dnd/scroll-on-dnd-y/helpers/get-vertical-buffer.ts
|
|
var getVerticalBuffer = (direction, column) => {
|
|
if (direction === -1) {
|
|
return column.firstElementChild;
|
|
} else
|
|
return column.lastElementChild;
|
|
};
|
|
|
|
// src/view/actions/dnd/scroll-on-dnd-y/helpers/stop-vertical-reveal.ts
|
|
var stopVerticalReveal = (context, column) => {
|
|
const buffer = getVerticalBuffer(context.state.direction, column);
|
|
if (!buffer)
|
|
return true;
|
|
if (context.state.direction === -1) {
|
|
const bufferBottom = buffer.getBoundingClientRect().bottom;
|
|
return bufferBottom - 100 > context.containerRect.top;
|
|
} else if (context.state.direction === 1) {
|
|
const bufferTop = buffer.getBoundingClientRect().top;
|
|
return bufferTop + 100 < context.containerRect.bottom;
|
|
}
|
|
};
|
|
|
|
// src/view/actions/dnd/scroll-on-dnd-y/helpers/scroll-vertically.ts
|
|
var verticalScrollStep = 15;
|
|
var scrollVertically = (context) => {
|
|
if (context.state.direction === 0)
|
|
return;
|
|
for (const column of context.columns) {
|
|
if (stopVerticalReveal(context, column))
|
|
continue;
|
|
column.scrollTop += context.state.direction * verticalScrollStep;
|
|
}
|
|
requestAnimationFrame(() => scrollVertically(context));
|
|
};
|
|
|
|
// src/view/actions/dnd/scroll-on-dnd-y/scroll-on-dnd-y.ts
|
|
var scrollOnDndY = (container) => {
|
|
let topEdge = null;
|
|
let bottomEdge = null;
|
|
const view = getView();
|
|
const state2 = {
|
|
direction: 0
|
|
};
|
|
const handleDragEnter = (event) => {
|
|
event.preventDefault();
|
|
const target = event.target;
|
|
if (!target)
|
|
return;
|
|
state2.direction = target.id === "dnd-edge-top" ? -1 : target.id === "dnd-edge-bottom" ? 1 : 0;
|
|
const columns = Array.from(
|
|
container.querySelectorAll(".column")
|
|
);
|
|
const context = {
|
|
columns,
|
|
containerRect: container.getBoundingClientRect(),
|
|
state: state2,
|
|
edge: target
|
|
};
|
|
scrollVertically(context);
|
|
};
|
|
const handleDragLeave = () => {
|
|
state2.direction = 0;
|
|
};
|
|
setTimeout(() => {
|
|
topEdge = view.contentEl.querySelector("#dnd-edge-top");
|
|
bottomEdge = view.contentEl.querySelector("#dnd-edge-bottom");
|
|
if (topEdge && bottomEdge) {
|
|
topEdge.addEventListener("dragenter", handleDragEnter);
|
|
topEdge.addEventListener("dragleave", handleDragLeave);
|
|
bottomEdge.addEventListener("dragenter", handleDragEnter);
|
|
bottomEdge.addEventListener("dragleave", handleDragLeave);
|
|
}
|
|
}, 100);
|
|
return {
|
|
destroy() {
|
|
if (topEdge && bottomEdge) {
|
|
topEdge.removeEventListener("dragenter", handleDragEnter);
|
|
topEdge.removeEventListener("dragleave", handleDragLeave);
|
|
bottomEdge.removeEventListener("dragenter", handleDragEnter);
|
|
bottomEdge.removeEventListener("dragleave", handleDragLeave);
|
|
}
|
|
}
|
|
};
|
|
};
|
|
|
|
// src/view/components/container/container.svelte
|
|
function add_css10(target) {
|
|
append_styles(target, "svelte-1dkv8lc", ".columns-container.svelte-1dkv8lc{--scrollbar-thumb-bg:transparent;--scrollbar-active-thumb-bg:transparent;--scrollbar-bg:transparent}.columns-container.svelte-1dkv8lc::-webkit-scrollbar{display:none}");
|
|
}
|
|
function get_each_context4(ctx, list, i) {
|
|
const child_ctx = ctx.slice();
|
|
child_ctx[43] = list[i];
|
|
child_ctx[45] = i;
|
|
return child_ctx;
|
|
}
|
|
function create_each_block4(key_1, ctx) {
|
|
let first;
|
|
let column_1;
|
|
let current;
|
|
column_1 = new column_default({
|
|
props: {
|
|
columnId: (
|
|
/*column*/
|
|
ctx[43].id
|
|
),
|
|
dndChildGroups: (
|
|
/*$dnd*/
|
|
ctx[1].childGroups
|
|
),
|
|
parentNodes: (
|
|
/*parentNodes*/
|
|
ctx[3]
|
|
),
|
|
activeGroup: (
|
|
/*$activeBranch*/
|
|
ctx[2].group
|
|
),
|
|
activeChildGroups: (
|
|
/*$activeBranch*/
|
|
ctx[2].childGroups
|
|
),
|
|
activeNode: (
|
|
/*$activeNode*/
|
|
ctx[11]
|
|
),
|
|
editedNodeState: (
|
|
/*$editing*/
|
|
ctx[12]
|
|
),
|
|
searchQuery: (
|
|
/*$search*/
|
|
ctx[13].query
|
|
),
|
|
searchResults: (
|
|
/*$search*/
|
|
ctx[13].results
|
|
),
|
|
showAllNodes: (
|
|
/*$search*/
|
|
ctx[13].showAllNodes
|
|
),
|
|
searching: (
|
|
/*$search*/
|
|
ctx[13].searching
|
|
),
|
|
idSection: (
|
|
/*$idSection*/
|
|
ctx[14]
|
|
),
|
|
selectedNodes: (
|
|
/*$selectedNodes*/
|
|
ctx[15]
|
|
),
|
|
pinnedNodes: (
|
|
/*pinnedNodes*/
|
|
ctx[6]
|
|
),
|
|
pendingConfirmation: (
|
|
/*$pendingConfirmation*/
|
|
ctx[16]
|
|
),
|
|
groupParentIds: (
|
|
/*$groupParentIds*/
|
|
ctx[17]
|
|
),
|
|
firstColumn: (
|
|
/*i*/
|
|
ctx[45] === 0
|
|
),
|
|
styleRules: (
|
|
/*$styleRules*/
|
|
ctx[18]
|
|
),
|
|
outlineMode: (
|
|
/*outlineMode*/
|
|
ctx[0]
|
|
),
|
|
allDndNodes: (
|
|
/*allDndNodes*/
|
|
ctx[4]
|
|
),
|
|
collapsedParents: (
|
|
/*$outline*/
|
|
ctx[19].collapsedParents
|
|
),
|
|
hiddenNodes: (
|
|
/*$outline*/
|
|
ctx[19].hiddenNodes
|
|
),
|
|
alwaysShowCardButtons: (
|
|
/*$alwaysShowCardButtons*/
|
|
ctx[20]
|
|
)
|
|
}
|
|
});
|
|
return {
|
|
key: key_1,
|
|
first: null,
|
|
c() {
|
|
first = empty();
|
|
create_component(column_1.$$.fragment);
|
|
this.first = first;
|
|
},
|
|
m(target, anchor) {
|
|
insert(target, first, anchor);
|
|
mount_component(column_1, target, anchor);
|
|
current = true;
|
|
},
|
|
p(new_ctx, dirty) {
|
|
ctx = new_ctx;
|
|
const column_1_changes = {};
|
|
if (dirty[0] & /*$columns*/
|
|
1024)
|
|
column_1_changes.columnId = /*column*/
|
|
ctx[43].id;
|
|
if (dirty[0] & /*$dnd*/
|
|
2)
|
|
column_1_changes.dndChildGroups = /*$dnd*/
|
|
ctx[1].childGroups;
|
|
if (dirty[0] & /*parentNodes*/
|
|
8)
|
|
column_1_changes.parentNodes = /*parentNodes*/
|
|
ctx[3];
|
|
if (dirty[0] & /*$activeBranch*/
|
|
4)
|
|
column_1_changes.activeGroup = /*$activeBranch*/
|
|
ctx[2].group;
|
|
if (dirty[0] & /*$activeBranch*/
|
|
4)
|
|
column_1_changes.activeChildGroups = /*$activeBranch*/
|
|
ctx[2].childGroups;
|
|
if (dirty[0] & /*$activeNode*/
|
|
2048)
|
|
column_1_changes.activeNode = /*$activeNode*/
|
|
ctx[11];
|
|
if (dirty[0] & /*$editing*/
|
|
4096)
|
|
column_1_changes.editedNodeState = /*$editing*/
|
|
ctx[12];
|
|
if (dirty[0] & /*$search*/
|
|
8192)
|
|
column_1_changes.searchQuery = /*$search*/
|
|
ctx[13].query;
|
|
if (dirty[0] & /*$search*/
|
|
8192)
|
|
column_1_changes.searchResults = /*$search*/
|
|
ctx[13].results;
|
|
if (dirty[0] & /*$search*/
|
|
8192)
|
|
column_1_changes.showAllNodes = /*$search*/
|
|
ctx[13].showAllNodes;
|
|
if (dirty[0] & /*$search*/
|
|
8192)
|
|
column_1_changes.searching = /*$search*/
|
|
ctx[13].searching;
|
|
if (dirty[0] & /*$idSection*/
|
|
16384)
|
|
column_1_changes.idSection = /*$idSection*/
|
|
ctx[14];
|
|
if (dirty[0] & /*$selectedNodes*/
|
|
32768)
|
|
column_1_changes.selectedNodes = /*$selectedNodes*/
|
|
ctx[15];
|
|
if (dirty[0] & /*pinnedNodes*/
|
|
64)
|
|
column_1_changes.pinnedNodes = /*pinnedNodes*/
|
|
ctx[6];
|
|
if (dirty[0] & /*$pendingConfirmation*/
|
|
65536)
|
|
column_1_changes.pendingConfirmation = /*$pendingConfirmation*/
|
|
ctx[16];
|
|
if (dirty[0] & /*$groupParentIds*/
|
|
131072)
|
|
column_1_changes.groupParentIds = /*$groupParentIds*/
|
|
ctx[17];
|
|
if (dirty[0] & /*$columns*/
|
|
1024)
|
|
column_1_changes.firstColumn = /*i*/
|
|
ctx[45] === 0;
|
|
if (dirty[0] & /*$styleRules*/
|
|
262144)
|
|
column_1_changes.styleRules = /*$styleRules*/
|
|
ctx[18];
|
|
if (dirty[0] & /*outlineMode*/
|
|
1)
|
|
column_1_changes.outlineMode = /*outlineMode*/
|
|
ctx[0];
|
|
if (dirty[0] & /*allDndNodes*/
|
|
16)
|
|
column_1_changes.allDndNodes = /*allDndNodes*/
|
|
ctx[4];
|
|
if (dirty[0] & /*$outline*/
|
|
524288)
|
|
column_1_changes.collapsedParents = /*$outline*/
|
|
ctx[19].collapsedParents;
|
|
if (dirty[0] & /*$outline*/
|
|
524288)
|
|
column_1_changes.hiddenNodes = /*$outline*/
|
|
ctx[19].hiddenNodes;
|
|
if (dirty[0] & /*$alwaysShowCardButtons*/
|
|
1048576)
|
|
column_1_changes.alwaysShowCardButtons = /*$alwaysShowCardButtons*/
|
|
ctx[20];
|
|
column_1.$set(column_1_changes);
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(column_1.$$.fragment, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(column_1.$$.fragment, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
if (detaching) {
|
|
detach(first);
|
|
}
|
|
destroy_component(column_1, detaching);
|
|
}
|
|
};
|
|
}
|
|
function create_fragment66(ctx) {
|
|
let div1;
|
|
let div0;
|
|
let columnsbuffer0;
|
|
let t0;
|
|
let each_blocks = [];
|
|
let each_1_lookup = /* @__PURE__ */ new Map();
|
|
let t1;
|
|
let columnsbuffer1;
|
|
let div1_class_value;
|
|
let scrollOnDndX_action;
|
|
let scrollOnDndY_action;
|
|
let hideFloatingButtons_action;
|
|
let current;
|
|
let mounted;
|
|
let dispose;
|
|
columnsbuffer0 = new columns_buffer_default({});
|
|
let each_value = ensure_array_like(
|
|
/*$columns*/
|
|
ctx[10]
|
|
);
|
|
const get_key = (ctx2) => (
|
|
/*column*/
|
|
ctx2[43].id
|
|
);
|
|
for (let i = 0; i < each_value.length; i += 1) {
|
|
let child_ctx = get_each_context4(ctx, each_value, i);
|
|
let key = get_key(child_ctx);
|
|
each_1_lookup.set(key, each_blocks[i] = create_each_block4(key, child_ctx));
|
|
}
|
|
columnsbuffer1 = new columns_buffer_default({});
|
|
return {
|
|
c() {
|
|
div1 = element("div");
|
|
div0 = element("div");
|
|
create_component(columnsbuffer0.$$.fragment);
|
|
t0 = space();
|
|
for (let i = 0; i < each_blocks.length; i += 1) {
|
|
each_blocks[i].c();
|
|
}
|
|
t1 = space();
|
|
create_component(columnsbuffer1.$$.fragment);
|
|
attr(div0, "class", "columns");
|
|
attr(div1, "class", div1_class_value = null_to_empty("columns-container " + /*$limitPreviewHeight*/
|
|
(ctx[7] ? " limit-card-height" : "") + /*$applyGap*/
|
|
(ctx[8] ? " gap-between-cards" : "") + /*outlineMode*/
|
|
(ctx[0] ? " outline-mode" : "") + /*$zoom*/
|
|
(ctx[9] !== 1 ? " zoom-enabled" : "")) + " svelte-1dkv8lc");
|
|
attr(div1, "id", "columns-container");
|
|
attr(div1, "tabindex", "0");
|
|
},
|
|
m(target, anchor) {
|
|
insert(target, div1, anchor);
|
|
append(div1, div0);
|
|
mount_component(columnsbuffer0, div0, null);
|
|
append(div0, t0);
|
|
for (let i = 0; i < each_blocks.length; i += 1) {
|
|
if (each_blocks[i]) {
|
|
each_blocks[i].m(div0, null);
|
|
}
|
|
}
|
|
append(div0, t1);
|
|
mount_component(columnsbuffer1, div0, null);
|
|
ctx[42](div1);
|
|
current = true;
|
|
if (!mounted) {
|
|
dispose = [
|
|
listen(
|
|
div1,
|
|
"click",
|
|
/*saveNode*/
|
|
ctx[38]
|
|
),
|
|
listen(
|
|
div1,
|
|
"dblclick",
|
|
/*centerActiveNode*/
|
|
ctx[39]
|
|
),
|
|
action_destroyer(scrollOnDndX_action = scrollOnDndX.call(null, div1)),
|
|
action_destroyer(scrollOnDndY_action = scrollOnDndY.call(null, div1)),
|
|
action_destroyer(hideFloatingButtons_action = hideFloatingButtons.call(null, div1))
|
|
];
|
|
mounted = true;
|
|
}
|
|
},
|
|
p(ctx2, dirty) {
|
|
if (dirty[0] & /*$columns, $dnd, parentNodes, $activeBranch, $activeNode, $editing, $search, $idSection, $selectedNodes, pinnedNodes, $pendingConfirmation, $groupParentIds, $styleRules, outlineMode, allDndNodes, $outline, $alwaysShowCardButtons*/
|
|
2096223) {
|
|
each_value = ensure_array_like(
|
|
/*$columns*/
|
|
ctx2[10]
|
|
);
|
|
group_outros();
|
|
each_blocks = update_keyed_each(each_blocks, dirty, get_key, 1, ctx2, each_value, each_1_lookup, div0, outro_and_destroy_block, create_each_block4, t1, get_each_context4);
|
|
check_outros();
|
|
}
|
|
if (!current || dirty[0] & /*$limitPreviewHeight, $applyGap, outlineMode, $zoom*/
|
|
897 && div1_class_value !== (div1_class_value = null_to_empty("columns-container " + /*$limitPreviewHeight*/
|
|
(ctx2[7] ? " limit-card-height" : "") + /*$applyGap*/
|
|
(ctx2[8] ? " gap-between-cards" : "") + /*outlineMode*/
|
|
(ctx2[0] ? " outline-mode" : "") + /*$zoom*/
|
|
(ctx2[9] !== 1 ? " zoom-enabled" : "")) + " svelte-1dkv8lc")) {
|
|
attr(div1, "class", div1_class_value);
|
|
}
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(columnsbuffer0.$$.fragment, local);
|
|
for (let i = 0; i < each_value.length; i += 1) {
|
|
transition_in(each_blocks[i]);
|
|
}
|
|
transition_in(columnsbuffer1.$$.fragment, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(columnsbuffer0.$$.fragment, local);
|
|
for (let i = 0; i < each_blocks.length; i += 1) {
|
|
transition_out(each_blocks[i]);
|
|
}
|
|
transition_out(columnsbuffer1.$$.fragment, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
if (detaching) {
|
|
detach(div1);
|
|
}
|
|
destroy_component(columnsbuffer0);
|
|
for (let i = 0; i < each_blocks.length; i += 1) {
|
|
each_blocks[i].d();
|
|
}
|
|
destroy_component(columnsbuffer1);
|
|
ctx[42](null);
|
|
mounted = false;
|
|
run_all(dispose);
|
|
}
|
|
};
|
|
}
|
|
function instance64($$self, $$props, $$invalidate) {
|
|
let pinnedNodes;
|
|
let $dnd;
|
|
let $pinnedNodesArray;
|
|
let $activeBranch;
|
|
let $limitPreviewHeight;
|
|
let $applyGap;
|
|
let $zoom;
|
|
let $columns;
|
|
let $activeNode;
|
|
let $editing;
|
|
let $search;
|
|
let $idSection;
|
|
let $selectedNodes;
|
|
let $pendingConfirmation;
|
|
let $groupParentIds;
|
|
let $styleRules;
|
|
let $outline;
|
|
let $alwaysShowCardButtons;
|
|
let { outlineMode } = $$props;
|
|
const view = getView();
|
|
const columns = outlineMode ? singleColumnStore(view) : columnsStore(view);
|
|
component_subscribe($$self, columns, (value) => $$invalidate(10, $columns = value));
|
|
const dnd = dndStore(view);
|
|
component_subscribe($$self, dnd, (value) => $$invalidate(1, $dnd = value));
|
|
const activeBranch = activeBranchStore(view);
|
|
component_subscribe($$self, activeBranch, (value) => $$invalidate(2, $activeBranch = value));
|
|
const activeNode = activeNodeStore(view);
|
|
component_subscribe($$self, activeNode, (value) => $$invalidate(11, $activeNode = value));
|
|
const selectedNodes = selectedNodesStore(view);
|
|
component_subscribe($$self, selectedNodes, (value) => $$invalidate(15, $selectedNodes = value));
|
|
const editing = documentStateStore(view);
|
|
component_subscribe($$self, editing, (value) => $$invalidate(12, $editing = value));
|
|
const search2 = searchStore(view);
|
|
component_subscribe($$self, search2, (value) => $$invalidate(13, $search = value));
|
|
const limitPreviewHeight = limitPreviewHeightStore(view);
|
|
component_subscribe($$self, limitPreviewHeight, (value) => $$invalidate(7, $limitPreviewHeight = value));
|
|
const idSection = IdSectionStore(view);
|
|
component_subscribe($$self, idSection, (value) => $$invalidate(14, $idSection = value));
|
|
const styleRules = NodeStylesStore(view);
|
|
component_subscribe($$self, styleRules, (value) => $$invalidate(18, $styleRules = value));
|
|
let parentNodes = /* @__PURE__ */ new Set();
|
|
const groupParentIds = GroupParentIdsStore(view);
|
|
component_subscribe($$self, groupParentIds, (value) => $$invalidate(17, $groupParentIds = value));
|
|
const pinnedNodesArray = PinnedNodesStore(view);
|
|
component_subscribe($$self, pinnedNodesArray, (value) => $$invalidate(41, $pinnedNodesArray = value));
|
|
const outline2 = OutlineStore(view);
|
|
component_subscribe($$self, outline2, (value) => $$invalidate(19, $outline = value));
|
|
const alwaysShowCardButtons = AlwaysShowCardButtons(view);
|
|
component_subscribe($$self, alwaysShowCardButtons, (value) => $$invalidate(20, $alwaysShowCardButtons = value));
|
|
const zoom = zoomLevelStore(view);
|
|
component_subscribe($$self, zoom, (value) => $$invalidate(9, $zoom = value));
|
|
let allDndNodes = /* @__PURE__ */ new Set();
|
|
const applyGap = ApplyGapBetweenCardsStore(view);
|
|
component_subscribe($$self, applyGap, (value) => $$invalidate(8, $applyGap = value));
|
|
const pendingConfirmation = PendingConfirmationStore(view);
|
|
component_subscribe($$self, pendingConfirmation, (value) => $$invalidate(16, $pendingConfirmation = value));
|
|
const saveNode = (event) => {
|
|
const target = event.target;
|
|
if (target.closest(".lng-prev") || target.closest(".active-node")) {
|
|
return;
|
|
}
|
|
if (textIsSelected())
|
|
return;
|
|
const editingState = view.viewStore.getValue().document.editing;
|
|
if (editingState.activeNodeId && !editingState.isInSidebar) {
|
|
saveNodeContent(view, true);
|
|
}
|
|
};
|
|
const centerActiveNode = (event) => {
|
|
const target = event.target;
|
|
if (target.closest(".lng-prev") || target.closest(".active-node")) {
|
|
return;
|
|
}
|
|
view.alignBranch.align({ type: "view/align-branch/center-node" });
|
|
};
|
|
let containerRef = null;
|
|
onMount(() => {
|
|
$$invalidate(40, view.container = containerRef, view);
|
|
view.alignBranch.align({ type: "view/life-cycle/mount" });
|
|
focusContainer(view);
|
|
});
|
|
function div1_binding($$value) {
|
|
binding_callbacks[$$value ? "unshift" : "push"](() => {
|
|
containerRef = $$value;
|
|
$$invalidate(5, containerRef);
|
|
});
|
|
}
|
|
$$self.$$set = ($$props2) => {
|
|
if ("outlineMode" in $$props2)
|
|
$$invalidate(0, outlineMode = $$props2.outlineMode);
|
|
};
|
|
$$self.$$.update = () => {
|
|
if ($$self.$$.dirty[0] & /*$activeBranch*/
|
|
4) {
|
|
$:
|
|
$$invalidate(3, parentNodes = new Set($activeBranch.sortedParentNodes));
|
|
}
|
|
if ($$self.$$.dirty[1] & /*$pinnedNodesArray*/
|
|
1024) {
|
|
$:
|
|
$$invalidate(6, pinnedNodes = new Set($pinnedNodesArray));
|
|
}
|
|
if ($$self.$$.dirty[0] & /*outlineMode, $dnd*/
|
|
3 | $$self.$$.dirty[1] & /*view*/
|
|
512) {
|
|
$: {
|
|
if (outlineMode && $dnd.node) {
|
|
$$invalidate(4, allDndNodes = new Set(getAllChildren(view.documentStore.getValue().document.columns, $dnd.node)));
|
|
} else {
|
|
$$invalidate(4, allDndNodes = /* @__PURE__ */ new Set());
|
|
}
|
|
}
|
|
}
|
|
};
|
|
return [
|
|
outlineMode,
|
|
$dnd,
|
|
$activeBranch,
|
|
parentNodes,
|
|
allDndNodes,
|
|
containerRef,
|
|
pinnedNodes,
|
|
$limitPreviewHeight,
|
|
$applyGap,
|
|
$zoom,
|
|
$columns,
|
|
$activeNode,
|
|
$editing,
|
|
$search,
|
|
$idSection,
|
|
$selectedNodes,
|
|
$pendingConfirmation,
|
|
$groupParentIds,
|
|
$styleRules,
|
|
$outline,
|
|
$alwaysShowCardButtons,
|
|
columns,
|
|
dnd,
|
|
activeBranch,
|
|
activeNode,
|
|
selectedNodes,
|
|
editing,
|
|
search2,
|
|
limitPreviewHeight,
|
|
idSection,
|
|
styleRules,
|
|
groupParentIds,
|
|
pinnedNodesArray,
|
|
outline2,
|
|
alwaysShowCardButtons,
|
|
zoom,
|
|
applyGap,
|
|
pendingConfirmation,
|
|
saveNode,
|
|
centerActiveNode,
|
|
view,
|
|
$pinnedNodesArray,
|
|
div1_binding
|
|
];
|
|
}
|
|
var Container = class extends SvelteComponent {
|
|
constructor(options) {
|
|
super();
|
|
init(this, options, instance64, create_fragment66, safe_not_equal, { outlineMode: 0 }, add_css10, [-1, -1]);
|
|
}
|
|
};
|
|
var container_default = Container;
|
|
|
|
// src/view/components/container/container-wrapper.svelte
|
|
function create_if_block11(ctx) {
|
|
let container;
|
|
let current;
|
|
container = new container_default({
|
|
props: { outlineMode: (
|
|
/*$outlineMode*/
|
|
ctx[1]
|
|
) }
|
|
});
|
|
return {
|
|
c() {
|
|
create_component(container.$$.fragment);
|
|
},
|
|
m(target, anchor) {
|
|
mount_component(container, target, anchor);
|
|
current = true;
|
|
},
|
|
p(ctx2, dirty) {
|
|
const container_changes = {};
|
|
if (dirty & /*$outlineMode*/
|
|
2)
|
|
container_changes.outlineMode = /*$outlineMode*/
|
|
ctx2[1];
|
|
container.$set(container_changes);
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(container.$$.fragment, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(container.$$.fragment, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
destroy_component(container, detaching);
|
|
}
|
|
};
|
|
}
|
|
function create_fragment67(ctx) {
|
|
let if_block_anchor;
|
|
let current;
|
|
let if_block = !/*unmounting*/
|
|
ctx[0] && create_if_block11(ctx);
|
|
return {
|
|
c() {
|
|
if (if_block)
|
|
if_block.c();
|
|
if_block_anchor = empty();
|
|
},
|
|
m(target, anchor) {
|
|
if (if_block)
|
|
if_block.m(target, anchor);
|
|
insert(target, if_block_anchor, anchor);
|
|
current = true;
|
|
},
|
|
p(ctx2, [dirty]) {
|
|
if (!/*unmounting*/
|
|
ctx2[0]) {
|
|
if (if_block) {
|
|
if_block.p(ctx2, dirty);
|
|
if (dirty & /*unmounting*/
|
|
1) {
|
|
transition_in(if_block, 1);
|
|
}
|
|
} else {
|
|
if_block = create_if_block11(ctx2);
|
|
if_block.c();
|
|
transition_in(if_block, 1);
|
|
if_block.m(if_block_anchor.parentNode, if_block_anchor);
|
|
}
|
|
} else if (if_block) {
|
|
group_outros();
|
|
transition_out(if_block, 1, 1, () => {
|
|
if_block = null;
|
|
});
|
|
check_outros();
|
|
}
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(if_block);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(if_block);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
if (detaching) {
|
|
detach(if_block_anchor);
|
|
}
|
|
if (if_block)
|
|
if_block.d(detaching);
|
|
}
|
|
};
|
|
}
|
|
function instance65($$self, $$props, $$invalidate) {
|
|
let $outlineMode;
|
|
const view = getView();
|
|
let unmounting = false;
|
|
let interval = null;
|
|
const unsubscribe = OutlineModeStore(view).subscribe((state2, action, isInitialRun) => {
|
|
if (isInitialRun)
|
|
return;
|
|
$$invalidate(0, unmounting = true);
|
|
if (interval)
|
|
clearTimeout(interval);
|
|
interval = setTimeout(
|
|
() => {
|
|
$$invalidate(0, unmounting = false);
|
|
},
|
|
16
|
|
);
|
|
});
|
|
onDestroy(() => {
|
|
unsubscribe();
|
|
});
|
|
const outlineMode = OutlineModeStore(view);
|
|
component_subscribe($$self, outlineMode, (value) => $$invalidate(1, $outlineMode = value));
|
|
return [unmounting, $outlineMode, outlineMode];
|
|
}
|
|
var Container_wrapper = class extends SvelteComponent {
|
|
constructor(options) {
|
|
super();
|
|
init(this, options, instance65, create_fragment67, safe_not_equal, {});
|
|
}
|
|
};
|
|
var container_wrapper_default = Container_wrapper;
|
|
|
|
// src/view/components/container/breadcrumbs/breadcrumbs-item.svelte
|
|
function add_css11(target) {
|
|
append_styles(target, "svelte-1q9w33n", ".separator.svelte-1q9w33n{padding:2px 1px;color:var(--text-faint);min-width:8px}.breadcrumbs-item.svelte-1q9w33n{height:30px;border-bottom:1px solid var(--background-modifier-border);color:var(--text-muted);background-color:var(--interactive-normal);cursor:pointer;padding:2px 4px;border-radius:var(--radius-s);max-width:350px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:14px;line-height:25px}.breadcrumbs-item.svelte-1q9w33n:hover{background-color:var(--interactive-hover)}.breadcrumbs-item.svelte-1q9w33n:last-child{border-bottom:none}.section-number.svelte-1q9w33n{font-style:italic;color:var(--text-faint)}");
|
|
}
|
|
function create_if_block12(ctx) {
|
|
let span;
|
|
return {
|
|
c() {
|
|
span = element("span");
|
|
span.textContent = "/";
|
|
attr(span, "class", "separator svelte-1q9w33n");
|
|
},
|
|
m(target, anchor) {
|
|
insert(target, span, anchor);
|
|
},
|
|
d(detaching) {
|
|
if (detaching) {
|
|
detach(span);
|
|
}
|
|
}
|
|
};
|
|
}
|
|
function create_fragment68(ctx) {
|
|
let t0;
|
|
let span;
|
|
let t1_value = (
|
|
/*content*/
|
|
(ctx[2] || /*section*/
|
|
ctx[1]) + ""
|
|
);
|
|
let t1;
|
|
let span_aria_label_value;
|
|
let span_class_value;
|
|
let mounted;
|
|
let dispose;
|
|
let if_block = (
|
|
/*index*/
|
|
ctx[0] > 0 && create_if_block12(ctx)
|
|
);
|
|
return {
|
|
c() {
|
|
if (if_block)
|
|
if_block.c();
|
|
t0 = space();
|
|
span = element("span");
|
|
t1 = text(t1_value);
|
|
attr(span, "aria-label", span_aria_label_value = /*section*/
|
|
ctx[1] + "\n" + /*content*/
|
|
ctx[2]);
|
|
attr(span, "class", span_class_value = null_to_empty(`breadcrumbs-item ${/*content*/
|
|
ctx[2] ? "" : "section-number"}`) + " svelte-1q9w33n");
|
|
attr(span, "data-tooltip-position", "top");
|
|
},
|
|
m(target, anchor) {
|
|
if (if_block)
|
|
if_block.m(target, anchor);
|
|
insert(target, t0, anchor);
|
|
insert(target, span, anchor);
|
|
append(span, t1);
|
|
if (!mounted) {
|
|
dispose = listen(
|
|
span,
|
|
"click",
|
|
/*onClick*/
|
|
ctx[3]
|
|
);
|
|
mounted = true;
|
|
}
|
|
},
|
|
p(ctx2, [dirty]) {
|
|
if (
|
|
/*index*/
|
|
ctx2[0] > 0
|
|
) {
|
|
if (if_block) {
|
|
} else {
|
|
if_block = create_if_block12(ctx2);
|
|
if_block.c();
|
|
if_block.m(t0.parentNode, t0);
|
|
}
|
|
} else if (if_block) {
|
|
if_block.d(1);
|
|
if_block = null;
|
|
}
|
|
if (dirty & /*content, section*/
|
|
6 && t1_value !== (t1_value = /*content*/
|
|
(ctx2[2] || /*section*/
|
|
ctx2[1]) + ""))
|
|
set_data(t1, t1_value);
|
|
if (dirty & /*section, content*/
|
|
6 && span_aria_label_value !== (span_aria_label_value = /*section*/
|
|
ctx2[1] + "\n" + /*content*/
|
|
ctx2[2])) {
|
|
attr(span, "aria-label", span_aria_label_value);
|
|
}
|
|
if (dirty & /*content*/
|
|
4 && span_class_value !== (span_class_value = null_to_empty(`breadcrumbs-item ${/*content*/
|
|
ctx2[2] ? "" : "section-number"}`) + " svelte-1q9w33n")) {
|
|
attr(span, "class", span_class_value);
|
|
}
|
|
},
|
|
i: noop,
|
|
o: noop,
|
|
d(detaching) {
|
|
if (detaching) {
|
|
detach(t0);
|
|
detach(span);
|
|
}
|
|
if (if_block)
|
|
if_block.d(detaching);
|
|
mounted = false;
|
|
dispose();
|
|
}
|
|
};
|
|
}
|
|
function instance66($$self, $$props, $$invalidate) {
|
|
let { parentId } = $$props;
|
|
let { index } = $$props;
|
|
let { section } = $$props;
|
|
let { content } = $$props;
|
|
const view = getView();
|
|
const viewStore = view.viewStore;
|
|
const onClick = () => {
|
|
viewStore.dispatch({
|
|
type: "view/set-active-node/mouse",
|
|
payload: { id: parentId }
|
|
});
|
|
};
|
|
$$self.$$set = ($$props2) => {
|
|
if ("parentId" in $$props2)
|
|
$$invalidate(4, parentId = $$props2.parentId);
|
|
if ("index" in $$props2)
|
|
$$invalidate(0, index = $$props2.index);
|
|
if ("section" in $$props2)
|
|
$$invalidate(1, section = $$props2.section);
|
|
if ("content" in $$props2)
|
|
$$invalidate(2, content = $$props2.content);
|
|
};
|
|
return [index, section, content, onClick, parentId];
|
|
}
|
|
var Breadcrumbs_item = class extends SvelteComponent {
|
|
constructor(options) {
|
|
super();
|
|
init(
|
|
this,
|
|
options,
|
|
instance66,
|
|
create_fragment68,
|
|
safe_not_equal,
|
|
{
|
|
parentId: 4,
|
|
index: 0,
|
|
section: 1,
|
|
content: 2
|
|
},
|
|
add_css11
|
|
);
|
|
}
|
|
};
|
|
var breadcrumbs_item_default = Breadcrumbs_item;
|
|
|
|
// src/view/components/container/breadcrumbs/breadcrumbs.svelte
|
|
function add_css12(target) {
|
|
append_styles(target, "svelte-576atj", ".breadcrumbs-container.svelte-576atj{z-index:var(--z-index-breadcrumbs);left:var(--size-4-2);bottom:var(--size-4-2);display:flex;position:absolute;max-width:calc(100% - var(--size-4-2) * 2)}.breadcrumbs.svelte-576atj{display:flex;align-items:center;justify-content:center;border-radius:var(--radius-s);background-color:var(--interactive-normal);box-shadow:var(--input-shadow);max-width:100%;overflow:auto;font-size:var(--file-header-font-size);color:var(--text-muted);gap:0}");
|
|
}
|
|
function get_each_context5(ctx, list, i) {
|
|
const child_ctx = ctx.slice();
|
|
child_ctx[7] = list[i];
|
|
child_ctx[9] = i;
|
|
return child_ctx;
|
|
}
|
|
function create_each_block5(key_1, ctx) {
|
|
let first;
|
|
let item;
|
|
let current;
|
|
item = new breadcrumbs_item_default({
|
|
props: {
|
|
parentId: (
|
|
/*parentId*/
|
|
ctx[7]
|
|
),
|
|
index: (
|
|
/*index*/
|
|
ctx[9]
|
|
),
|
|
content: (
|
|
/*$contents*/
|
|
ctx[1][
|
|
/*parentId*/
|
|
ctx[7]
|
|
]?.content
|
|
),
|
|
section: (
|
|
/*$sections*/
|
|
ctx[2][
|
|
/*parentId*/
|
|
ctx[7]
|
|
]
|
|
)
|
|
}
|
|
});
|
|
return {
|
|
key: key_1,
|
|
first: null,
|
|
c() {
|
|
first = empty();
|
|
create_component(item.$$.fragment);
|
|
this.first = first;
|
|
},
|
|
m(target, anchor) {
|
|
insert(target, first, anchor);
|
|
mount_component(item, target, anchor);
|
|
current = true;
|
|
},
|
|
p(new_ctx, dirty) {
|
|
ctx = new_ctx;
|
|
const item_changes = {};
|
|
if (dirty & /*$activeBranch*/
|
|
1)
|
|
item_changes.parentId = /*parentId*/
|
|
ctx[7];
|
|
if (dirty & /*$activeBranch*/
|
|
1)
|
|
item_changes.index = /*index*/
|
|
ctx[9];
|
|
if (dirty & /*$contents, $activeBranch*/
|
|
3)
|
|
item_changes.content = /*$contents*/
|
|
ctx[1][
|
|
/*parentId*/
|
|
ctx[7]
|
|
]?.content;
|
|
if (dirty & /*$sections, $activeBranch*/
|
|
5)
|
|
item_changes.section = /*$sections*/
|
|
ctx[2][
|
|
/*parentId*/
|
|
ctx[7]
|
|
];
|
|
item.$set(item_changes);
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(item.$$.fragment, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(item.$$.fragment, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
if (detaching) {
|
|
detach(first);
|
|
}
|
|
destroy_component(item, detaching);
|
|
}
|
|
};
|
|
}
|
|
function create_fragment69(ctx) {
|
|
let div1;
|
|
let div0;
|
|
let each_blocks = [];
|
|
let each_1_lookup = /* @__PURE__ */ new Map();
|
|
let current;
|
|
let each_value = ensure_array_like(
|
|
/*$activeBranch*/
|
|
ctx[0].sortedParentNodes
|
|
);
|
|
const get_key = (ctx2) => (
|
|
/*parentId*/
|
|
ctx2[7]
|
|
);
|
|
for (let i = 0; i < each_value.length; i += 1) {
|
|
let child_ctx = get_each_context5(ctx, each_value, i);
|
|
let key = get_key(child_ctx);
|
|
each_1_lookup.set(key, each_blocks[i] = create_each_block5(key, child_ctx));
|
|
}
|
|
return {
|
|
c() {
|
|
div1 = element("div");
|
|
div0 = element("div");
|
|
for (let i = 0; i < each_blocks.length; i += 1) {
|
|
each_blocks[i].c();
|
|
}
|
|
attr(div0, "class", "breadcrumbs svelte-576atj");
|
|
attr(div1, "class", "breadcrumbs-container svelte-576atj");
|
|
},
|
|
m(target, anchor) {
|
|
insert(target, div1, anchor);
|
|
append(div1, div0);
|
|
for (let i = 0; i < each_blocks.length; i += 1) {
|
|
if (each_blocks[i]) {
|
|
each_blocks[i].m(div0, null);
|
|
}
|
|
}
|
|
current = true;
|
|
},
|
|
p(ctx2, [dirty]) {
|
|
if (dirty & /*$activeBranch, $contents, $sections*/
|
|
7) {
|
|
each_value = ensure_array_like(
|
|
/*$activeBranch*/
|
|
ctx2[0].sortedParentNodes
|
|
);
|
|
group_outros();
|
|
each_blocks = update_keyed_each(each_blocks, dirty, get_key, 1, ctx2, each_value, each_1_lookup, div0, outro_and_destroy_block, create_each_block5, null, get_each_context5);
|
|
check_outros();
|
|
}
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
for (let i = 0; i < each_value.length; i += 1) {
|
|
transition_in(each_blocks[i]);
|
|
}
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
for (let i = 0; i < each_blocks.length; i += 1) {
|
|
transition_out(each_blocks[i]);
|
|
}
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
if (detaching) {
|
|
detach(div1);
|
|
}
|
|
for (let i = 0; i < each_blocks.length; i += 1) {
|
|
each_blocks[i].d();
|
|
}
|
|
}
|
|
};
|
|
}
|
|
function instance67($$self, $$props, $$invalidate) {
|
|
let $activeBranch;
|
|
let $contents;
|
|
let $sections;
|
|
const view = getView();
|
|
const activeBranch = activeBranchStore(view);
|
|
component_subscribe($$self, activeBranch, (value) => $$invalidate(0, $activeBranch = value));
|
|
const contents = documentContentStore(view);
|
|
component_subscribe($$self, contents, (value) => $$invalidate(1, $contents = value));
|
|
const sections = IdSectionStore(view);
|
|
component_subscribe($$self, sections, (value) => $$invalidate(2, $sections = value));
|
|
return [$activeBranch, $contents, $sections, activeBranch, contents, sections];
|
|
}
|
|
var Breadcrumbs = class extends SvelteComponent {
|
|
constructor(options) {
|
|
super();
|
|
init(this, options, instance67, create_fragment69, safe_not_equal, {}, add_css12);
|
|
}
|
|
};
|
|
var breadcrumbs_default = Breadcrumbs;
|
|
|
|
// src/stores/view/derived/navigation-history-store.ts
|
|
var navigationHistoryStore = (view) => derived(view.viewStore, (state2) => state2.navigationHistory);
|
|
|
|
// src/view/components/container/toolbar/components/navigation-buttons.svelte
|
|
function add_css13(target) {
|
|
append_styles(target, "svelte-13yyztm", ".navigation-history.svelte-13yyztm{display:flex;align-items:center;justify-content:center}");
|
|
}
|
|
function create_default_slot_13(ctx) {
|
|
let arrowleft;
|
|
let current;
|
|
arrowleft = new arrow_left_default({ props: { class: "svg-icon", size: "12" } });
|
|
return {
|
|
c() {
|
|
create_component(arrowleft.$$.fragment);
|
|
},
|
|
m(target, anchor) {
|
|
mount_component(arrowleft, target, anchor);
|
|
current = true;
|
|
},
|
|
p: noop,
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(arrowleft.$$.fragment, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(arrowleft.$$.fragment, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
destroy_component(arrowleft, detaching);
|
|
}
|
|
};
|
|
}
|
|
function create_default_slot52(ctx) {
|
|
let arrowright;
|
|
let current;
|
|
arrowright = new arrow_right_default({ props: { class: "svg-icon", size: "12" } });
|
|
return {
|
|
c() {
|
|
create_component(arrowright.$$.fragment);
|
|
},
|
|
m(target, anchor) {
|
|
mount_component(arrowright, target, anchor);
|
|
current = true;
|
|
},
|
|
p: noop,
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(arrowright.$$.fragment, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(arrowright.$$.fragment, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
destroy_component(arrowright, detaching);
|
|
}
|
|
};
|
|
}
|
|
function create_fragment70(ctx) {
|
|
let div;
|
|
let button0;
|
|
let t;
|
|
let button1;
|
|
let current;
|
|
button0 = new button_default({
|
|
props: {
|
|
disabled: !/*$navigationHistory*/
|
|
ctx[0].state.canGoBack,
|
|
label: lang.tlb_navigation_navigate_back,
|
|
tooltipPosition: "bottom",
|
|
$$slots: { default: [create_default_slot_13] },
|
|
$$scope: { ctx }
|
|
}
|
|
});
|
|
button0.$on(
|
|
"click",
|
|
/*click_handler*/
|
|
ctx[3]
|
|
);
|
|
button1 = new button_default({
|
|
props: {
|
|
disabled: !/*$navigationHistory*/
|
|
ctx[0].state.canGoForward,
|
|
label: lang.tlb_navigation_navigate_forward,
|
|
tooltipPosition: "bottom",
|
|
$$slots: { default: [create_default_slot52] },
|
|
$$scope: { ctx }
|
|
}
|
|
});
|
|
button1.$on(
|
|
"click",
|
|
/*click_handler_1*/
|
|
ctx[4]
|
|
);
|
|
return {
|
|
c() {
|
|
div = element("div");
|
|
create_component(button0.$$.fragment);
|
|
t = space();
|
|
create_component(button1.$$.fragment);
|
|
attr(div, "class", "navigation-history buttons-group svelte-13yyztm");
|
|
},
|
|
m(target, anchor) {
|
|
insert(target, div, anchor);
|
|
mount_component(button0, div, null);
|
|
append(div, t);
|
|
mount_component(button1, div, null);
|
|
current = true;
|
|
},
|
|
p(ctx2, [dirty]) {
|
|
const button0_changes = {};
|
|
if (dirty & /*$navigationHistory*/
|
|
1)
|
|
button0_changes.disabled = !/*$navigationHistory*/
|
|
ctx2[0].state.canGoBack;
|
|
if (dirty & /*$$scope*/
|
|
64) {
|
|
button0_changes.$$scope = { dirty, ctx: ctx2 };
|
|
}
|
|
button0.$set(button0_changes);
|
|
const button1_changes = {};
|
|
if (dirty & /*$navigationHistory*/
|
|
1)
|
|
button1_changes.disabled = !/*$navigationHistory*/
|
|
ctx2[0].state.canGoForward;
|
|
if (dirty & /*$$scope*/
|
|
64) {
|
|
button1_changes.$$scope = { dirty, ctx: ctx2 };
|
|
}
|
|
button1.$set(button1_changes);
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(button0.$$.fragment, local);
|
|
transition_in(button1.$$.fragment, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(button0.$$.fragment, local);
|
|
transition_out(button1.$$.fragment, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
if (detaching) {
|
|
detach(div);
|
|
}
|
|
destroy_component(button0);
|
|
destroy_component(button1);
|
|
}
|
|
};
|
|
}
|
|
function instance68($$self, $$props, $$invalidate) {
|
|
let $navigationHistory;
|
|
const view = getView();
|
|
const viewStore = view.viewStore;
|
|
const navigationHistory = navigationHistoryStore(view);
|
|
component_subscribe($$self, navigationHistory, (value) => $$invalidate(0, $navigationHistory = value));
|
|
const click_handler = () => {
|
|
viewStore.dispatch({ type: "NAVIGATION/NAVIGATE_BACK" });
|
|
};
|
|
const click_handler_1 = () => {
|
|
viewStore.dispatch({ type: "NAVIGATION/NAVIGATE_FORWARD" });
|
|
};
|
|
return [
|
|
$navigationHistory,
|
|
viewStore,
|
|
navigationHistory,
|
|
click_handler,
|
|
click_handler_1
|
|
];
|
|
}
|
|
var Navigation_buttons = class extends SvelteComponent {
|
|
constructor(options) {
|
|
super();
|
|
init(this, options, instance68, create_fragment70, safe_not_equal, {}, add_css13);
|
|
}
|
|
};
|
|
var navigation_buttons_default = Navigation_buttons;
|
|
|
|
// src/view/components/container/toolbar/components/search-toggle.svelte
|
|
function add_css14(target) {
|
|
append_styles(target, "svelte-17l9x5j", ".search-container.svelte-17l9x5j{display:flex;align-items:center;justify-content:center;gap:var(--size-4-2)}");
|
|
}
|
|
function create_default_slot53(ctx) {
|
|
let search_1;
|
|
let current;
|
|
search_1 = new search_default({ props: { class: "svg-icon", size: "12" } });
|
|
return {
|
|
c() {
|
|
create_component(search_1.$$.fragment);
|
|
},
|
|
m(target, anchor) {
|
|
mount_component(search_1, target, anchor);
|
|
current = true;
|
|
},
|
|
p: noop,
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(search_1.$$.fragment, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(search_1.$$.fragment, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
destroy_component(search_1, detaching);
|
|
}
|
|
};
|
|
}
|
|
function create_fragment71(ctx) {
|
|
let div;
|
|
let button;
|
|
let current;
|
|
button = new button_default({
|
|
props: {
|
|
active: (
|
|
/*$search*/
|
|
ctx[0].showInput
|
|
),
|
|
label: lang.tlb_search_toggle,
|
|
tooltipPosition: "bottom",
|
|
$$slots: { default: [create_default_slot53] },
|
|
$$scope: { ctx }
|
|
}
|
|
});
|
|
button.$on(
|
|
"click",
|
|
/*click_handler*/
|
|
ctx[3]
|
|
);
|
|
return {
|
|
c() {
|
|
div = element("div");
|
|
create_component(button.$$.fragment);
|
|
attr(div, "class", "search-container buttons-group svelte-17l9x5j");
|
|
},
|
|
m(target, anchor) {
|
|
insert(target, div, anchor);
|
|
mount_component(button, div, null);
|
|
current = true;
|
|
},
|
|
p(ctx2, [dirty]) {
|
|
const button_changes = {};
|
|
if (dirty & /*$search*/
|
|
1)
|
|
button_changes.active = /*$search*/
|
|
ctx2[0].showInput;
|
|
if (dirty & /*$$scope*/
|
|
32) {
|
|
button_changes.$$scope = { dirty, ctx: ctx2 };
|
|
}
|
|
button.$set(button_changes);
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(button.$$.fragment, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(button.$$.fragment, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
if (detaching) {
|
|
detach(div);
|
|
}
|
|
destroy_component(button);
|
|
}
|
|
};
|
|
}
|
|
function instance69($$self, $$props, $$invalidate) {
|
|
let $search;
|
|
const view = getView();
|
|
const viewStore = view.viewStore;
|
|
const search2 = searchStore(view);
|
|
component_subscribe($$self, search2, (value) => $$invalidate(0, $search = value));
|
|
const click_handler = () => {
|
|
viewStore.dispatch({ type: "SEARCH/TOGGLE_INPUT" });
|
|
};
|
|
return [$search, viewStore, search2, click_handler];
|
|
}
|
|
var Search_toggle = class extends SvelteComponent {
|
|
constructor(options) {
|
|
super();
|
|
init(this, options, instance69, create_fragment71, safe_not_equal, {}, add_css14);
|
|
}
|
|
};
|
|
var search_toggle_default = Search_toggle;
|
|
|
|
// src/view/components/container/toolbar/components/search-input.svelte
|
|
function add_css15(target) {
|
|
append_styles(target, "svelte-krr6j1", ".search-input-element.svelte-krr6j1{height:34px;padding-right:74px !important;padding-left:12px;min-width:250px}@media(max-width: 568px){.search-input-element.svelte-krr6j1{width:100%;min-width:50px}.search-input-wrapper.svelte-krr6j1{width:100%}}.search-input-wrapper.svelte-krr6j1{max-width:100%}.search-input-container.svelte-krr6j1::before{display:none}.no-results.svelte-krr6j1{box-shadow:0 0 0 2px var(--color-red) !important}");
|
|
}
|
|
function create_if_block13(ctx) {
|
|
let div;
|
|
let eye;
|
|
let div_aria_label_value;
|
|
let div_class_value;
|
|
let current;
|
|
let mounted;
|
|
let dispose;
|
|
eye = new eye_default({ props: { class: "svg-icon" } });
|
|
return {
|
|
c() {
|
|
div = element("div");
|
|
create_component(eye.$$.fragment);
|
|
attr(div, "aria-label", div_aria_label_value = lang.tlb_search_show_all_cards);
|
|
attr(div, "class", div_class_value = null_to_empty("input-right-decorator clickable-icon" + /*$search*/
|
|
(ctx[0].showAllNodes ? " is-active" : "")) + " svelte-krr6j1");
|
|
set_style(div, "right", "28px");
|
|
},
|
|
m(target, anchor) {
|
|
insert(target, div, anchor);
|
|
mount_component(eye, div, null);
|
|
current = true;
|
|
if (!mounted) {
|
|
dispose = listen(
|
|
div,
|
|
"click",
|
|
/*click_handler_1*/
|
|
ctx[5]
|
|
);
|
|
mounted = true;
|
|
}
|
|
},
|
|
p(ctx2, dirty) {
|
|
if (!current || dirty & /*$search*/
|
|
1 && div_class_value !== (div_class_value = null_to_empty("input-right-decorator clickable-icon" + /*$search*/
|
|
(ctx2[0].showAllNodes ? " is-active" : "")) + " svelte-krr6j1")) {
|
|
attr(div, "class", div_class_value);
|
|
}
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(eye.$$.fragment, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(eye.$$.fragment, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
if (detaching) {
|
|
detach(div);
|
|
}
|
|
destroy_component(eye);
|
|
mounted = false;
|
|
dispose();
|
|
}
|
|
};
|
|
}
|
|
function create_fragment72(ctx) {
|
|
let div2;
|
|
let input;
|
|
let input_autofocus_value;
|
|
let input_class_value;
|
|
let input_placeholder_value;
|
|
let input_value_value;
|
|
let t0;
|
|
let div0;
|
|
let div0_aria_label_value;
|
|
let div0_style_value;
|
|
let t1;
|
|
let t2;
|
|
let div1;
|
|
let text_1;
|
|
let div1_aria_label_value;
|
|
let div1_class_value;
|
|
let current;
|
|
let mounted;
|
|
let dispose;
|
|
let if_block = (
|
|
/*$search*/
|
|
ctx[0].query.length > 0 && create_if_block13(ctx)
|
|
);
|
|
text_1 = new text_default({ props: { class: "svg-icon" } });
|
|
return {
|
|
c() {
|
|
div2 = element("div");
|
|
input = element("input");
|
|
t0 = space();
|
|
div0 = element("div");
|
|
t1 = space();
|
|
if (if_block)
|
|
if_block.c();
|
|
t2 = space();
|
|
div1 = element("div");
|
|
create_component(text_1.$$.fragment);
|
|
input.autofocus = input_autofocus_value = true;
|
|
attr(input, "class", input_class_value = null_to_empty("search-input search-input-element" + /*$search*/
|
|
(ctx[0].query && /*$search*/
|
|
ctx[0].results.size === 0 ? " no-results" : "")) + " svelte-krr6j1");
|
|
attr(input, "enterkeyhint", "search");
|
|
attr(input, "placeholder", input_placeholder_value = "search");
|
|
attr(input, "spellcheck", "false");
|
|
attr(input, "type", "search");
|
|
input.value = input_value_value = /*$search*/
|
|
ctx[0].query;
|
|
attr(div0, "aria-label", div0_aria_label_value = lang.tlb_search_clear);
|
|
attr(div0, "class", "search-input-clear-button");
|
|
attr(div0, "style", div0_style_value = "right: 49px; top: -1px;" + /*$search*/
|
|
(ctx[0].query ? "" : " display: none;"));
|
|
attr(div1, "aria-label", div1_aria_label_value = lang.tlb_search_fuzzy_search);
|
|
attr(div1, "class", div1_class_value = null_to_empty("input-right-decorator clickable-icon" + /*$search*/
|
|
(ctx[0].fuzzySearch ? " is-active" : "")) + " svelte-krr6j1");
|
|
set_style(div1, "right", "4px");
|
|
attr(div2, "class", "search-input-wrapper search-input-container svelte-krr6j1");
|
|
},
|
|
m(target, anchor) {
|
|
insert(target, div2, anchor);
|
|
append(div2, input);
|
|
append(div2, t0);
|
|
append(div2, div0);
|
|
append(div2, t1);
|
|
if (if_block)
|
|
if_block.m(div2, null);
|
|
append(div2, t2);
|
|
append(div2, div1);
|
|
mount_component(text_1, div1, null);
|
|
current = true;
|
|
if (true)
|
|
input.focus();
|
|
if (!mounted) {
|
|
dispose = [
|
|
listen(
|
|
input,
|
|
"input",
|
|
/*onInput*/
|
|
ctx[3]
|
|
),
|
|
listen(
|
|
div0,
|
|
"click",
|
|
/*click_handler*/
|
|
ctx[4]
|
|
),
|
|
listen(
|
|
div1,
|
|
"click",
|
|
/*click_handler_2*/
|
|
ctx[6]
|
|
)
|
|
];
|
|
mounted = true;
|
|
}
|
|
},
|
|
p(ctx2, [dirty]) {
|
|
if (!current || dirty & /*$search*/
|
|
1 && input_class_value !== (input_class_value = null_to_empty("search-input search-input-element" + /*$search*/
|
|
(ctx2[0].query && /*$search*/
|
|
ctx2[0].results.size === 0 ? " no-results" : "")) + " svelte-krr6j1")) {
|
|
attr(input, "class", input_class_value);
|
|
}
|
|
if (!current || dirty & /*$search*/
|
|
1 && input_value_value !== (input_value_value = /*$search*/
|
|
ctx2[0].query) && input.value !== input_value_value) {
|
|
input.value = input_value_value;
|
|
}
|
|
if (!current || dirty & /*$search*/
|
|
1 && div0_style_value !== (div0_style_value = "right: 49px; top: -1px;" + /*$search*/
|
|
(ctx2[0].query ? "" : " display: none;"))) {
|
|
attr(div0, "style", div0_style_value);
|
|
}
|
|
if (
|
|
/*$search*/
|
|
ctx2[0].query.length > 0
|
|
) {
|
|
if (if_block) {
|
|
if_block.p(ctx2, dirty);
|
|
if (dirty & /*$search*/
|
|
1) {
|
|
transition_in(if_block, 1);
|
|
}
|
|
} else {
|
|
if_block = create_if_block13(ctx2);
|
|
if_block.c();
|
|
transition_in(if_block, 1);
|
|
if_block.m(div2, t2);
|
|
}
|
|
} else if (if_block) {
|
|
group_outros();
|
|
transition_out(if_block, 1, 1, () => {
|
|
if_block = null;
|
|
});
|
|
check_outros();
|
|
}
|
|
if (!current || dirty & /*$search*/
|
|
1 && div1_class_value !== (div1_class_value = null_to_empty("input-right-decorator clickable-icon" + /*$search*/
|
|
(ctx2[0].fuzzySearch ? " is-active" : "")) + " svelte-krr6j1")) {
|
|
attr(div1, "class", div1_class_value);
|
|
}
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(if_block);
|
|
transition_in(text_1.$$.fragment, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(if_block);
|
|
transition_out(text_1.$$.fragment, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
if (detaching) {
|
|
detach(div2);
|
|
}
|
|
if (if_block)
|
|
if_block.d();
|
|
destroy_component(text_1);
|
|
mounted = false;
|
|
run_all(dispose);
|
|
}
|
|
};
|
|
}
|
|
function instance70($$self, $$props, $$invalidate) {
|
|
let $search;
|
|
const view = getView();
|
|
const viewStore = view.viewStore;
|
|
const search2 = searchStore(view);
|
|
component_subscribe($$self, search2, (value) => $$invalidate(0, $search = value));
|
|
const onInput = (
|
|
// eslint-disable-next-line no-undef
|
|
(e) => {
|
|
viewStore.dispatch({
|
|
type: "SEARCH/SET_QUERY",
|
|
payload: { query: e.currentTarget.value }
|
|
});
|
|
}
|
|
);
|
|
const click_handler = () => {
|
|
viewStore.dispatch({
|
|
type: "SEARCH/SET_QUERY",
|
|
payload: { query: "" }
|
|
});
|
|
};
|
|
const click_handler_1 = () => {
|
|
viewStore.dispatch({ type: "search/toggle-show-all-nodes" });
|
|
};
|
|
const click_handler_2 = () => {
|
|
viewStore.dispatch({ type: "SEARCH/TOGGLE_FUZZY_MODE" });
|
|
viewStore.dispatch({
|
|
type: "SEARCH/SET_QUERY",
|
|
payload: { query: viewStore.getValue().search.query }
|
|
});
|
|
};
|
|
return [
|
|
$search,
|
|
viewStore,
|
|
search2,
|
|
onInput,
|
|
click_handler,
|
|
click_handler_1,
|
|
click_handler_2
|
|
];
|
|
}
|
|
var Search_input = class extends SvelteComponent {
|
|
constructor(options) {
|
|
super();
|
|
init(this, options, instance70, create_fragment72, safe_not_equal, {}, add_css15);
|
|
}
|
|
};
|
|
var search_input_default = Search_input;
|
|
|
|
// src/view/components/container/toolbar/components/left-sidebar-toggle.svelte
|
|
function add_css16(target) {
|
|
append_styles(target, "svelte-lmpj5w", ".badge-container.svelte-lmpj5w{position:relative;display:inline-block}");
|
|
}
|
|
function create_default_slot54(ctx) {
|
|
let panelleftdashed;
|
|
let current;
|
|
panelleftdashed = new panel_left_dashed_default({ props: { class: "svg-icon", size: "32" } });
|
|
return {
|
|
c() {
|
|
create_component(panelleftdashed.$$.fragment);
|
|
},
|
|
m(target, anchor) {
|
|
mount_component(panelleftdashed, target, anchor);
|
|
current = true;
|
|
},
|
|
p: noop,
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(panelleftdashed.$$.fragment, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(panelleftdashed.$$.fragment, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
destroy_component(panelleftdashed, detaching);
|
|
}
|
|
};
|
|
}
|
|
function create_fragment73(ctx) {
|
|
let div1;
|
|
let div0;
|
|
let button;
|
|
let current;
|
|
button = new button_default({
|
|
props: {
|
|
active: (
|
|
/*$show*/
|
|
ctx[0]
|
|
),
|
|
label: lang.toolbar_toggle_left_sidebar,
|
|
tooltipPosition: "bottom",
|
|
$$slots: { default: [create_default_slot54] },
|
|
$$scope: { ctx }
|
|
}
|
|
});
|
|
button.$on(
|
|
"click",
|
|
/*toggleLeftSidebar*/
|
|
ctx[2]
|
|
);
|
|
return {
|
|
c() {
|
|
div1 = element("div");
|
|
div0 = element("div");
|
|
create_component(button.$$.fragment);
|
|
attr(div0, "class", "badge-container svelte-lmpj5w");
|
|
attr(div1, "class", "buttons-group");
|
|
set_style(div1, "overflow", "inherit");
|
|
},
|
|
m(target, anchor) {
|
|
insert(target, div1, anchor);
|
|
append(div1, div0);
|
|
mount_component(button, div0, null);
|
|
current = true;
|
|
},
|
|
p(ctx2, [dirty]) {
|
|
const button_changes = {};
|
|
if (dirty & /*$show*/
|
|
1)
|
|
button_changes.active = /*$show*/
|
|
ctx2[0];
|
|
if (dirty & /*$$scope*/
|
|
16) {
|
|
button_changes.$$scope = { dirty, ctx: ctx2 };
|
|
}
|
|
button.$set(button_changes);
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(button.$$.fragment, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(button.$$.fragment, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
if (detaching) {
|
|
detach(div1);
|
|
}
|
|
destroy_component(button);
|
|
}
|
|
};
|
|
}
|
|
function instance71($$self, $$props, $$invalidate) {
|
|
let $show;
|
|
const view = getView();
|
|
const show = ShowLeftSidebarStore(view);
|
|
component_subscribe($$self, show, (value) => $$invalidate(0, $show = value));
|
|
const toggleLeftSidebar = () => {
|
|
view.plugin.settings.dispatch({ type: "view/left-sidebar/toggle" });
|
|
};
|
|
return [$show, show, toggleLeftSidebar];
|
|
}
|
|
var Left_sidebar_toggle = class extends SvelteComponent {
|
|
constructor(options) {
|
|
super();
|
|
init(this, options, instance71, create_fragment73, safe_not_equal, {}, add_css16);
|
|
}
|
|
};
|
|
var left_sidebar_toggle_default = Left_sidebar_toggle;
|
|
|
|
// src/helpers/sort-sections.ts
|
|
var sortSections = (keys) => {
|
|
return keys.sort((a, b) => {
|
|
const aParts = a.split(".");
|
|
const bParts = b.split(".");
|
|
for (let i = 0; i < Math.max(aParts.length, bParts.length); i++) {
|
|
if (aParts[i] === void 0)
|
|
return -1;
|
|
if (bParts[i] === void 0)
|
|
return 1;
|
|
const diff2 = Number(aParts[i]) - Number(bParts[i]);
|
|
if (diff2 !== 0)
|
|
return diff2;
|
|
}
|
|
return 0;
|
|
});
|
|
};
|
|
|
|
// src/stores/document/reducers/pinned-nodes/pin-node.ts
|
|
var sortNodeIdsBySectionNumber = (sections, ids) => {
|
|
const pinnedSections = ids.map((id2) => sections.id_section[id2]);
|
|
const sortedSections = sortSections(pinnedSections);
|
|
return sortedSections.map((section) => sections.section_id[section]);
|
|
};
|
|
var pinNode = (sections, pinnedNodes, id2) => {
|
|
pinnedNodes.Ids.push(id2);
|
|
pinnedNodes.Ids = sortNodeIdsBySectionNumber(sections, pinnedNodes.Ids);
|
|
};
|
|
|
|
// src/view/components/container/toolbar/components/search/search-navigation-buttons.svelte
|
|
function add_css17(target) {
|
|
append_styles(target, "svelte-1owtmzs", ".search-container.svelte-1owtmzs{display:flex;align-items:center;justify-content:center}.search-stats.svelte-1owtmzs{color:var(--text-muted);font-size:var(--status-bar-font-size);font-variant-numeric:tabular-nums;padding:5px 10px;border-left:1px solid var(--text-faint)}");
|
|
}
|
|
function create_default_slot_14(ctx) {
|
|
let chevronup;
|
|
let current;
|
|
chevronup = new chevron_up_default({ props: { class: "svg-icon", size: "12" } });
|
|
return {
|
|
c() {
|
|
create_component(chevronup.$$.fragment);
|
|
},
|
|
m(target, anchor) {
|
|
mount_component(chevronup, target, anchor);
|
|
current = true;
|
|
},
|
|
p: noop,
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(chevronup.$$.fragment, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(chevronup.$$.fragment, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
destroy_component(chevronup, detaching);
|
|
}
|
|
};
|
|
}
|
|
function create_default_slot55(ctx) {
|
|
let chevrondown;
|
|
let current;
|
|
chevrondown = new chevron_down_default({ props: { class: "svg-icon", size: "12" } });
|
|
return {
|
|
c() {
|
|
create_component(chevrondown.$$.fragment);
|
|
},
|
|
m(target, anchor) {
|
|
mount_component(chevrondown, target, anchor);
|
|
current = true;
|
|
},
|
|
p: noop,
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(chevrondown.$$.fragment, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(chevrondown.$$.fragment, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
destroy_component(chevrondown, detaching);
|
|
}
|
|
};
|
|
}
|
|
function create_fragment74(ctx) {
|
|
let div1;
|
|
let button0;
|
|
let t0;
|
|
let button1;
|
|
let t1;
|
|
let div0;
|
|
let t2_value = `${/*sortedResults*/
|
|
ctx[0].indexOf(
|
|
/*$activeNode*/
|
|
ctx[1]
|
|
) + 1} / ${/*sortedResults*/
|
|
ctx[0].length}`;
|
|
let t2;
|
|
let current;
|
|
button0 = new button_default({
|
|
props: {
|
|
disabled: (
|
|
/*sortedResults*/
|
|
ctx[0].length === 0
|
|
),
|
|
label: lang.tlb_search_previous_result,
|
|
tooltipPosition: "bottom",
|
|
$$slots: { default: [create_default_slot_14] },
|
|
$$scope: { ctx }
|
|
}
|
|
});
|
|
button0.$on(
|
|
"click",
|
|
/*selectPreviousResult*/
|
|
ctx[4]
|
|
);
|
|
button1 = new button_default({
|
|
props: {
|
|
disabled: (
|
|
/*sortedResults*/
|
|
ctx[0].length === 0
|
|
),
|
|
label: lang.tlb_search_next_result,
|
|
tooltipPosition: "bottom",
|
|
$$slots: { default: [create_default_slot55] },
|
|
$$scope: { ctx }
|
|
}
|
|
});
|
|
button1.$on(
|
|
"click",
|
|
/*selectNextResult*/
|
|
ctx[3]
|
|
);
|
|
return {
|
|
c() {
|
|
div1 = element("div");
|
|
create_component(button0.$$.fragment);
|
|
t0 = space();
|
|
create_component(button1.$$.fragment);
|
|
t1 = space();
|
|
div0 = element("div");
|
|
t2 = text(t2_value);
|
|
attr(div0, "class", "search-stats svelte-1owtmzs");
|
|
attr(div1, "class", "search-container buttons-group svelte-1owtmzs");
|
|
},
|
|
m(target, anchor) {
|
|
insert(target, div1, anchor);
|
|
mount_component(button0, div1, null);
|
|
append(div1, t0);
|
|
mount_component(button1, div1, null);
|
|
append(div1, t1);
|
|
append(div1, div0);
|
|
append(div0, t2);
|
|
current = true;
|
|
},
|
|
p(ctx2, [dirty]) {
|
|
const button0_changes = {};
|
|
if (dirty & /*sortedResults*/
|
|
1)
|
|
button0_changes.disabled = /*sortedResults*/
|
|
ctx2[0].length === 0;
|
|
if (dirty & /*$$scope*/
|
|
128) {
|
|
button0_changes.$$scope = { dirty, ctx: ctx2 };
|
|
}
|
|
button0.$set(button0_changes);
|
|
const button1_changes = {};
|
|
if (dirty & /*sortedResults*/
|
|
1)
|
|
button1_changes.disabled = /*sortedResults*/
|
|
ctx2[0].length === 0;
|
|
if (dirty & /*$$scope*/
|
|
128) {
|
|
button1_changes.$$scope = { dirty, ctx: ctx2 };
|
|
}
|
|
button1.$set(button1_changes);
|
|
if ((!current || dirty & /*sortedResults, $activeNode*/
|
|
3) && t2_value !== (t2_value = `${/*sortedResults*/
|
|
ctx2[0].indexOf(
|
|
/*$activeNode*/
|
|
ctx2[1]
|
|
) + 1} / ${/*sortedResults*/
|
|
ctx2[0].length}`))
|
|
set_data(t2, t2_value);
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(button0.$$.fragment, local);
|
|
transition_in(button1.$$.fragment, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(button0.$$.fragment, local);
|
|
transition_out(button1.$$.fragment, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
if (detaching) {
|
|
detach(div1);
|
|
}
|
|
destroy_component(button0);
|
|
destroy_component(button1);
|
|
}
|
|
};
|
|
}
|
|
function instance72($$self, $$props, $$invalidate) {
|
|
let $activeNode;
|
|
const view = getView();
|
|
let { results } = $$props;
|
|
const activeNode = activeNodeStore(view);
|
|
component_subscribe($$self, activeNode, (value) => $$invalidate(1, $activeNode = value));
|
|
let sortedResults;
|
|
const selectNextResult = () => {
|
|
if (sortedResults.length === 0)
|
|
return;
|
|
const currentIndex = sortedResults.indexOf($activeNode);
|
|
const nextId = sortedResults[(currentIndex + 1) % sortedResults.length];
|
|
view.viewStore.dispatch({
|
|
type: "view/set-active-node/mouse",
|
|
payload: { id: nextId }
|
|
});
|
|
};
|
|
const selectPreviousResult = () => {
|
|
if (sortedResults.length === 0)
|
|
return;
|
|
const currentIndex = sortedResults.indexOf($activeNode) === -1 ? sortedResults.length : sortedResults.indexOf($activeNode);
|
|
const prevId = sortedResults[(currentIndex - 1 + sortedResults.length) % sortedResults.length];
|
|
view.viewStore.dispatch({
|
|
type: "view/set-active-node/mouse",
|
|
payload: { id: prevId }
|
|
});
|
|
};
|
|
$$self.$$set = ($$props2) => {
|
|
if ("results" in $$props2)
|
|
$$invalidate(5, results = $$props2.results);
|
|
};
|
|
$$self.$$.update = () => {
|
|
if ($$self.$$.dirty & /*results*/
|
|
32) {
|
|
$: {
|
|
$$invalidate(0, sortedResults = sortNodeIdsBySectionNumber(view.documentStore.getValue().sections, results));
|
|
}
|
|
}
|
|
};
|
|
return [
|
|
sortedResults,
|
|
$activeNode,
|
|
activeNode,
|
|
selectNextResult,
|
|
selectPreviousResult,
|
|
results
|
|
];
|
|
}
|
|
var Search_navigation_buttons = class extends SvelteComponent {
|
|
constructor(options) {
|
|
super();
|
|
init(this, options, instance72, create_fragment74, safe_not_equal, { results: 5 }, add_css17);
|
|
}
|
|
};
|
|
var search_navigation_buttons_default = Search_navigation_buttons;
|
|
|
|
// src/view/components/container/toolbar/toolbar.svelte
|
|
function add_css18(target) {
|
|
append_styles(target, "svelte-zbwcn1", ".navigation-history-container.svelte-zbwcn1{z-index:var(--z-index-breadcrumbs);left:var(--size-4-2);top:var(--size-4-2);display:flex;position:absolute;gap:var(--size-4-2);flex-wrap:wrap;max-width:90%\n }");
|
|
}
|
|
function create_if_block14(ctx) {
|
|
let searchinput;
|
|
let t;
|
|
let if_block_anchor;
|
|
let current;
|
|
searchinput = new search_input_default({});
|
|
let if_block = (
|
|
/*$search*/
|
|
ctx[0].query.length > 0 && create_if_block_16(ctx)
|
|
);
|
|
return {
|
|
c() {
|
|
create_component(searchinput.$$.fragment);
|
|
t = space();
|
|
if (if_block)
|
|
if_block.c();
|
|
if_block_anchor = empty();
|
|
},
|
|
m(target, anchor) {
|
|
mount_component(searchinput, target, anchor);
|
|
insert(target, t, anchor);
|
|
if (if_block)
|
|
if_block.m(target, anchor);
|
|
insert(target, if_block_anchor, anchor);
|
|
current = true;
|
|
},
|
|
p(ctx2, dirty) {
|
|
if (
|
|
/*$search*/
|
|
ctx2[0].query.length > 0
|
|
) {
|
|
if (if_block) {
|
|
if_block.p(ctx2, dirty);
|
|
if (dirty & /*$search*/
|
|
1) {
|
|
transition_in(if_block, 1);
|
|
}
|
|
} else {
|
|
if_block = create_if_block_16(ctx2);
|
|
if_block.c();
|
|
transition_in(if_block, 1);
|
|
if_block.m(if_block_anchor.parentNode, if_block_anchor);
|
|
}
|
|
} else if (if_block) {
|
|
group_outros();
|
|
transition_out(if_block, 1, 1, () => {
|
|
if_block = null;
|
|
});
|
|
check_outros();
|
|
}
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(searchinput.$$.fragment, local);
|
|
transition_in(if_block);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(searchinput.$$.fragment, local);
|
|
transition_out(if_block);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
if (detaching) {
|
|
detach(t);
|
|
detach(if_block_anchor);
|
|
}
|
|
destroy_component(searchinput, detaching);
|
|
if (if_block)
|
|
if_block.d(detaching);
|
|
}
|
|
};
|
|
}
|
|
function create_if_block_16(ctx) {
|
|
let searchnavigationbuttons;
|
|
let current;
|
|
searchnavigationbuttons = new search_navigation_buttons_default({
|
|
props: {
|
|
results: Array.from(
|
|
/*$search*/
|
|
ctx[0].results
|
|
)
|
|
}
|
|
});
|
|
return {
|
|
c() {
|
|
create_component(searchnavigationbuttons.$$.fragment);
|
|
},
|
|
m(target, anchor) {
|
|
mount_component(searchnavigationbuttons, target, anchor);
|
|
current = true;
|
|
},
|
|
p(ctx2, dirty) {
|
|
const searchnavigationbuttons_changes = {};
|
|
if (dirty & /*$search*/
|
|
1)
|
|
searchnavigationbuttons_changes.results = Array.from(
|
|
/*$search*/
|
|
ctx2[0].results
|
|
);
|
|
searchnavigationbuttons.$set(searchnavigationbuttons_changes);
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(searchnavigationbuttons.$$.fragment, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(searchnavigationbuttons.$$.fragment, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
destroy_component(searchnavigationbuttons, detaching);
|
|
}
|
|
};
|
|
}
|
|
function create_fragment75(ctx) {
|
|
let div;
|
|
let leftsidebartoggle;
|
|
let t0;
|
|
let navigationhistory;
|
|
let t1;
|
|
let searchtoggle;
|
|
let t2;
|
|
let current;
|
|
leftsidebartoggle = new left_sidebar_toggle_default({});
|
|
navigationhistory = new navigation_buttons_default({});
|
|
searchtoggle = new search_toggle_default({});
|
|
let if_block = (
|
|
/*$search*/
|
|
ctx[0].showInput && create_if_block14(ctx)
|
|
);
|
|
return {
|
|
c() {
|
|
div = element("div");
|
|
create_component(leftsidebartoggle.$$.fragment);
|
|
t0 = space();
|
|
create_component(navigationhistory.$$.fragment);
|
|
t1 = space();
|
|
create_component(searchtoggle.$$.fragment);
|
|
t2 = space();
|
|
if (if_block)
|
|
if_block.c();
|
|
attr(div, "class", "navigation-history-container svelte-zbwcn1");
|
|
},
|
|
m(target, anchor) {
|
|
insert(target, div, anchor);
|
|
mount_component(leftsidebartoggle, div, null);
|
|
append(div, t0);
|
|
mount_component(navigationhistory, div, null);
|
|
append(div, t1);
|
|
mount_component(searchtoggle, div, null);
|
|
append(div, t2);
|
|
if (if_block)
|
|
if_block.m(div, null);
|
|
current = true;
|
|
},
|
|
p(ctx2, [dirty]) {
|
|
if (
|
|
/*$search*/
|
|
ctx2[0].showInput
|
|
) {
|
|
if (if_block) {
|
|
if_block.p(ctx2, dirty);
|
|
if (dirty & /*$search*/
|
|
1) {
|
|
transition_in(if_block, 1);
|
|
}
|
|
} else {
|
|
if_block = create_if_block14(ctx2);
|
|
if_block.c();
|
|
transition_in(if_block, 1);
|
|
if_block.m(div, null);
|
|
}
|
|
} else if (if_block) {
|
|
group_outros();
|
|
transition_out(if_block, 1, 1, () => {
|
|
if_block = null;
|
|
});
|
|
check_outros();
|
|
}
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(leftsidebartoggle.$$.fragment, local);
|
|
transition_in(navigationhistory.$$.fragment, local);
|
|
transition_in(searchtoggle.$$.fragment, local);
|
|
transition_in(if_block);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(leftsidebartoggle.$$.fragment, local);
|
|
transition_out(navigationhistory.$$.fragment, local);
|
|
transition_out(searchtoggle.$$.fragment, local);
|
|
transition_out(if_block);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
if (detaching) {
|
|
detach(div);
|
|
}
|
|
destroy_component(leftsidebartoggle);
|
|
destroy_component(navigationhistory);
|
|
destroy_component(searchtoggle);
|
|
if (if_block)
|
|
if_block.d();
|
|
}
|
|
};
|
|
}
|
|
function instance73($$self, $$props, $$invalidate) {
|
|
let $search;
|
|
const view = getView();
|
|
const search2 = searchStore(view);
|
|
component_subscribe($$self, search2, (value) => $$invalidate(0, $search = value));
|
|
return [$search, search2];
|
|
}
|
|
var Toolbar = class extends SvelteComponent {
|
|
constructor(options) {
|
|
super();
|
|
init(this, options, instance73, create_fragment75, safe_not_equal, {}, add_css18);
|
|
}
|
|
};
|
|
var toolbar_default = Toolbar;
|
|
|
|
// src/view/actions/settings/components/shared/range-setting.ts
|
|
var import_obsidian7 = require("obsidian");
|
|
var RangeSetting = (element2, settingsStore, props) => {
|
|
let input;
|
|
let resetButton;
|
|
const updateExtraButton = (currentValue) => {
|
|
if (currentValue === props.defaultValue) {
|
|
resetButton.setDisabled(true);
|
|
} else {
|
|
resetButton.setDisabled(false);
|
|
}
|
|
};
|
|
const setValue = () => {
|
|
const settingsState = settingsStore.getValue();
|
|
const currentValue = props.valueSelector(settingsState) ?? props.defaultValue;
|
|
input.setValue(currentValue);
|
|
updateExtraButton(currentValue);
|
|
};
|
|
const setting = new import_obsidian7.Setting(element2);
|
|
setting.setName(props.label);
|
|
if (props.desc) {
|
|
setting.setDesc(props.desc);
|
|
}
|
|
setting.addSlider((cb) => {
|
|
input = cb;
|
|
cb.setLimits(props.min, props.max, props.step);
|
|
cb.onChange((value) => {
|
|
props.onChange(value);
|
|
updateExtraButton(value);
|
|
}).setDynamicTooltip();
|
|
}).addExtraButton((cb) => {
|
|
resetButton = cb;
|
|
cb.setIcon("reset").onClick(() => {
|
|
props.onChange(props.defaultValue);
|
|
setValue();
|
|
}).setTooltip(lang.settings_reset);
|
|
});
|
|
setValue();
|
|
};
|
|
|
|
// src/view/actions/settings/components/font-size.ts
|
|
var FontSize = (element2, settingsStore) => {
|
|
RangeSetting(element2, settingsStore, {
|
|
defaultValue: 16,
|
|
onChange: (value) => {
|
|
settingsStore.dispatch({
|
|
type: "SET_FONT_SIZE",
|
|
payload: {
|
|
fontSize: value
|
|
}
|
|
});
|
|
},
|
|
valueSelector: (settingsState) => settingsState.view.fontSize,
|
|
label: lang.settings_appearance_font_size,
|
|
max: 36,
|
|
min: 6,
|
|
step: 1
|
|
});
|
|
};
|
|
|
|
// src/obsidian/helpers/get-theme.ts
|
|
var getTheme = () => {
|
|
if (document.body.hasClass("theme-light"))
|
|
return "light";
|
|
else if (document.body.hasClass("theme-dark"))
|
|
return "dark";
|
|
throw new Error("could not detect theme");
|
|
};
|
|
|
|
// src/stores/view/subscriptions/effects/css-variables/helpers/get-default-theme.ts
|
|
var getDefaultTheme = () => {
|
|
const textNormal = getComputedStyle(activeDocument.body).getPropertyValue(
|
|
"--text-normal"
|
|
);
|
|
const darkTheme = {
|
|
containerBg: "#373d4c",
|
|
activeBranchBg: "#5b637a",
|
|
activeBranchColor: textNormal
|
|
};
|
|
const lightTheme = {
|
|
containerBg: "#899cb3",
|
|
activeBranchBg: "#cedbeb",
|
|
activeBranchColor: textNormal
|
|
};
|
|
const theme = getTheme();
|
|
return theme === "light" ? lightTheme : darkTheme;
|
|
};
|
|
|
|
// src/view/actions/settings/components/shared/color-setting.ts
|
|
var import_obsidian8 = require("obsidian");
|
|
var ColorSetting = (container, settingsStore, props) => {
|
|
let input;
|
|
let resetButton;
|
|
const updateExtraButton = (currentValue) => {
|
|
if (currentValue === props.defaultValue) {
|
|
resetButton.setDisabled(true);
|
|
} else {
|
|
resetButton.setDisabled(false);
|
|
}
|
|
};
|
|
const setValue = () => {
|
|
const settingsState = settingsStore.getValue();
|
|
const currentValue = props.valueSelector(settingsState) || props.defaultValue;
|
|
input.onChange(() => void 0);
|
|
input.setValue(currentValue);
|
|
input.onChange((value) => {
|
|
props.onChange(value);
|
|
updateExtraButton(value);
|
|
});
|
|
updateExtraButton(currentValue);
|
|
};
|
|
new import_obsidian8.Setting(container).setName(props.label).addColorPicker((cb) => {
|
|
input = cb;
|
|
}).addExtraButton((cb) => {
|
|
resetButton = cb;
|
|
resetButton.setIcon("reset").onClick(() => {
|
|
props.onChange(void 0);
|
|
setValue();
|
|
}).setTooltip(lang.settings_reset);
|
|
});
|
|
setValue();
|
|
};
|
|
|
|
// src/view/actions/settings/components/background-color.ts
|
|
var BackgroundColor = (container, settingsStore) => {
|
|
ColorSetting(container, settingsStore, {
|
|
defaultValue: getDefaultTheme().containerBg,
|
|
label: lang.settings_theme_bg,
|
|
valueSelector: (settings) => settings.view.theme.containerBg,
|
|
onChange: (color) => {
|
|
settingsStore.dispatch({
|
|
type: "SET_CONTAINER_BG",
|
|
payload: {
|
|
backgroundColor: color
|
|
}
|
|
});
|
|
}
|
|
});
|
|
};
|
|
|
|
// src/view/actions/settings/components/active-branch-background.ts
|
|
var ActiveBranchBackground = (container, settingsStore) => {
|
|
ColorSetting(container, settingsStore, {
|
|
defaultValue: getDefaultTheme().activeBranchBg,
|
|
label: lang.settings_theme_active_branch_bg,
|
|
valueSelector: (settings) => settings.view.theme.activeBranchBg,
|
|
onChange: (color) => {
|
|
settingsStore.dispatch({
|
|
type: "SET_ACTIVE_BRANCH_BG",
|
|
payload: {
|
|
backgroundColor: color
|
|
}
|
|
});
|
|
}
|
|
});
|
|
};
|
|
|
|
// src/stores/settings/default-settings.ts
|
|
var DEFAULT_CARD_WIDTH = 550;
|
|
var DEFAULT_CARDS_GAP = 100;
|
|
var DEFAULT_INDENTATION_WIDTH = 60;
|
|
var DEFAULT_INACTIVE_NODE_OPACITY = 25;
|
|
var DEFAULT_SETTINGS = () => ({
|
|
documents: {},
|
|
hotkeys: {
|
|
customHotkeys: {}
|
|
},
|
|
view: {
|
|
fontSize: 16,
|
|
theme: {
|
|
inactiveNodeOpacity: DEFAULT_INACTIVE_NODE_OPACITY
|
|
},
|
|
cardWidth: DEFAULT_CARD_WIDTH,
|
|
cardsGap: DEFAULT_CARDS_GAP,
|
|
scrolling: {
|
|
centerActiveNodeH: false,
|
|
centerActiveNodeV: true
|
|
},
|
|
limitPreviewHeight: true,
|
|
zoomLevel: 1,
|
|
showMinimap: false,
|
|
showLeftSidebar: false,
|
|
leftSidebarWidth: 500,
|
|
leftSidebarActiveTab: "pinned-cards",
|
|
applyGapBetweenCards: false,
|
|
outlineMode: false,
|
|
nodeIndentationWidth: DEFAULT_INDENTATION_WIDTH,
|
|
maintainEditMode: true,
|
|
alwaysShowCardButtons: false
|
|
},
|
|
general: {
|
|
defaultDocumentFormat: "sections"
|
|
},
|
|
styleRules: {
|
|
documents: {}
|
|
}
|
|
});
|
|
|
|
// src/view/actions/settings/components/card-width.ts
|
|
var CardWidth = (element2, settingsStore) => {
|
|
RangeSetting(element2, settingsStore, {
|
|
defaultValue: DEFAULT_CARD_WIDTH,
|
|
onChange: (value) => {
|
|
settingsStore.dispatch({
|
|
type: "SET_CARD_WIDTH",
|
|
payload: {
|
|
width: value
|
|
}
|
|
});
|
|
},
|
|
valueSelector: (settingsState) => settingsState.view.cardWidth,
|
|
label: lang.settings_layout_card_width,
|
|
max: 1e3,
|
|
min: 200,
|
|
step: 10
|
|
});
|
|
};
|
|
|
|
// src/view/actions/settings/components/limit-card-height.ts
|
|
var import_obsidian9 = require("obsidian");
|
|
var LimitCardHeight = (element2, settingsStore) => {
|
|
const settingsState = settingsStore.getValue();
|
|
new import_obsidian9.Setting(element2).setName(lang.settings_layout_limit_card_height).addToggle((cb) => {
|
|
cb.setValue(settingsState.view.limitPreviewHeight).onChange(
|
|
(limit) => {
|
|
settingsStore.dispatch({
|
|
type: "SET_LIMIT_PREVIEW_HEIGHT",
|
|
payload: {
|
|
limit
|
|
}
|
|
});
|
|
}
|
|
);
|
|
});
|
|
};
|
|
|
|
// src/view/actions/settings/components/default-document-format.ts
|
|
var import_obsidian10 = require("obsidian");
|
|
var DefaultDocumentFormat = (element2, settingsStore) => {
|
|
const settingsState = settingsStore.getValue();
|
|
const setting = new import_obsidian10.Setting(element2).setName(
|
|
lang.settings_general_default_format
|
|
);
|
|
setting.setDesc(lang.settings_general_default_format_desc);
|
|
setting.addDropdown((cb) => {
|
|
const value = settingsState.general.defaultDocumentFormat;
|
|
cb.addOptions({
|
|
"html-element": lang.settings_format_html_elements,
|
|
sections: lang.settings_format_html_comments,
|
|
outline: lang.settings_format_outline
|
|
}).setValue(value).onChange((value2) => {
|
|
settingsStore.dispatch({
|
|
type: "GENERAL/SET_DEFAULT_DOCUMENT_FORMAT",
|
|
payload: {
|
|
format: value2
|
|
}
|
|
});
|
|
});
|
|
});
|
|
};
|
|
|
|
// src/view/actions/settings/components/cards-gap.ts
|
|
var CardsGap = (element2, settingsStore) => {
|
|
RangeSetting(element2, settingsStore, {
|
|
defaultValue: DEFAULT_CARDS_GAP,
|
|
onChange: (value) => {
|
|
settingsStore.dispatch({
|
|
type: "SET_CARDS_GAP",
|
|
payload: {
|
|
gap: value
|
|
}
|
|
});
|
|
},
|
|
valueSelector: (settingsState) => settingsState.view.cardsGap,
|
|
label: lang.settings_layout_space_between_cards,
|
|
desc: lang.settings_layout_space_between_cards_desc,
|
|
max: 500,
|
|
min: 0,
|
|
step: 10
|
|
});
|
|
};
|
|
|
|
// src/view/actions/settings/components/card-indentation-width.ts
|
|
var CardIndentationWidth = (element2, settingsStore) => {
|
|
RangeSetting(element2, settingsStore, {
|
|
defaultValue: DEFAULT_INDENTATION_WIDTH,
|
|
onChange: (value) => {
|
|
settingsStore.dispatch({
|
|
type: "settings/view/set-node-indentation-width",
|
|
payload: {
|
|
width: value
|
|
}
|
|
});
|
|
},
|
|
valueSelector: (settingsState) => settingsState.view.nodeIndentationWidth,
|
|
desc: lang.settings_layout_indentation_width_desc,
|
|
label: lang.settings_layout_indentation_width,
|
|
max: 1e3,
|
|
min: 0,
|
|
step: 5
|
|
});
|
|
};
|
|
|
|
// src/view/actions/settings/components/maintain-edit-mode.ts
|
|
var import_obsidian11 = require("obsidian");
|
|
var MaintainEditMode2 = (element2, settingsStore) => {
|
|
const settingsState = settingsStore.getValue();
|
|
new import_obsidian11.Setting(element2).setName(lang.settings_general_maintain_edit_mode).setDesc(lang.settings_general_maintain_edit_mode_desc).addToggle((cb) => {
|
|
cb.setValue(settingsState.view.maintainEditMode).onChange(
|
|
(maintain) => {
|
|
settingsStore.dispatch({
|
|
type: "settings/view/set-maintain-edit-mode",
|
|
payload: {
|
|
maintain
|
|
}
|
|
});
|
|
}
|
|
);
|
|
});
|
|
};
|
|
|
|
// src/view/actions/settings/render-settings.ts
|
|
var import_obsidian13 = require("obsidian");
|
|
|
|
// src/view/actions/settings/components/inactive-card-opacity.ts
|
|
var InactiveCardOpacity = (element2, settingsStore) => {
|
|
RangeSetting(element2, settingsStore, {
|
|
defaultValue: DEFAULT_INACTIVE_NODE_OPACITY,
|
|
onChange: (value) => {
|
|
settingsStore.dispatch({
|
|
type: "settings/view/theme/set-inactive-node-opacity",
|
|
payload: {
|
|
opacity: value
|
|
}
|
|
});
|
|
},
|
|
valueSelector: (settingsState) => settingsState.view.theme.inactiveNodeOpacity,
|
|
label: lang.settings_appearance_inactive_node_opacity,
|
|
max: 100,
|
|
min: 0,
|
|
step: 5
|
|
});
|
|
};
|
|
|
|
// src/view/actions/settings/components/active-branch-color.ts
|
|
var ActiveBranchColor = (container, settingsStore) => {
|
|
ColorSetting(container, settingsStore, {
|
|
defaultValue: getDefaultTheme().activeBranchColor,
|
|
label: lang.settings_theme_active_branch_color,
|
|
valueSelector: (settings) => settings.view.theme.activeBranchColor,
|
|
onChange: (color) => {
|
|
settingsStore.dispatch({
|
|
type: "settings/view/theme/set-active-branch-color",
|
|
payload: {
|
|
color
|
|
}
|
|
});
|
|
}
|
|
});
|
|
};
|
|
|
|
// src/view/actions/settings/components/always-show-card-buttons.ts
|
|
var import_obsidian12 = require("obsidian");
|
|
var AlwaysShowCardButtons2 = (element2, settingsStore) => {
|
|
const settingsState = settingsStore.getValue();
|
|
new import_obsidian12.Setting(element2).setName(lang.settings_always_show_card_buttons).setDesc(lang.settings_always_show_card_buttons_desc).addToggle((cb) => {
|
|
cb.setValue(settingsState.view.alwaysShowCardButtons).onChange(
|
|
(show) => {
|
|
settingsStore.dispatch({
|
|
type: "settings/view/set-always-show-card-buttons",
|
|
payload: {
|
|
show
|
|
}
|
|
});
|
|
}
|
|
);
|
|
});
|
|
};
|
|
|
|
// src/view/actions/settings/render-settings.ts
|
|
var renderSettings = (element2) => {
|
|
const view = getView();
|
|
const settingsStore = view.plugin.settings;
|
|
const render = () => {
|
|
DefaultDocumentFormat(element2, settingsStore);
|
|
MaintainEditMode2(element2, settingsStore);
|
|
AlwaysShowCardButtons2(element2, settingsStore);
|
|
new import_obsidian13.Setting(element2).setHeading().setName(lang.settings_appearance);
|
|
BackgroundColor(element2, settingsStore);
|
|
ActiveBranchBackground(element2, settingsStore);
|
|
ActiveBranchColor(element2, settingsStore);
|
|
InactiveCardOpacity(element2, settingsStore);
|
|
FontSize(element2, settingsStore);
|
|
new import_obsidian13.Setting(element2).setHeading().setName(lang.settings_layout);
|
|
CardWidth(element2, settingsStore);
|
|
CardsGap(element2, settingsStore);
|
|
CardIndentationWidth(element2, settingsStore);
|
|
LimitCardHeight(element2, settingsStore);
|
|
};
|
|
render();
|
|
return {
|
|
update: () => {
|
|
render();
|
|
}
|
|
};
|
|
};
|
|
|
|
// src/view/components/container/controls-bar/modals/settings/settings.svelte
|
|
function add_css19(target) {
|
|
append_styles(target, "svelte-1ggfir8", ".setting-items.svelte-1ggfir8{display:flex;flex-direction:column;padding:20px;width:500px;overflow-y:auto;& .setting-item {\n padding: 10px 0;\n };& .setting-item-heading {\n margin-top: 22px;\n\n & .setting-item-name {\n font-size: 17px;\n }\n }}@media(max-width: 720px){.setting-items.svelte-1ggfir8{width:initial}}.is-mobile{& .setting-items {\n padding: 5px 10px;\n };& :global(.setting-item) {\n display: flex;\n flex-direction: column;\n gap: 4px;\n };& :global(.setting-item-control) {\n width: 100%;\n justify-content: center;\n }}");
|
|
}
|
|
function create_fragment76(ctx) {
|
|
let div1;
|
|
let div0;
|
|
let renderSettings_action;
|
|
let mounted;
|
|
let dispose;
|
|
return {
|
|
c() {
|
|
div1 = element("div");
|
|
div0 = element("div");
|
|
attr(div0, "class", "setting-items svelte-1ggfir8");
|
|
attr(div1, "class", "lineage-modal");
|
|
attr(div1, "id", "lineage-view-settings");
|
|
attr(div1, "tabindex", "0");
|
|
},
|
|
m(target, anchor) {
|
|
insert(target, div1, anchor);
|
|
append(div1, div0);
|
|
if (!mounted) {
|
|
dispose = action_destroyer(renderSettings_action = renderSettings.call(null, div0));
|
|
mounted = true;
|
|
}
|
|
},
|
|
p: noop,
|
|
i: noop,
|
|
o: noop,
|
|
d(detaching) {
|
|
if (detaching) {
|
|
detach(div1);
|
|
}
|
|
mounted = false;
|
|
dispose();
|
|
}
|
|
};
|
|
}
|
|
var Settings2 = class extends SvelteComponent {
|
|
constructor(options) {
|
|
super();
|
|
init(this, options, null, create_fragment76, safe_not_equal, {}, add_css19);
|
|
}
|
|
};
|
|
var settings_default2 = Settings2;
|
|
|
|
// src/helpers/relative-time.ts
|
|
var rtf1 = new Intl.RelativeTimeFormat("en", { style: "long" });
|
|
var relativeTime = (updated) => {
|
|
const difference = Date.now() - updated;
|
|
const days = Math.floor(difference / (1e3 * 60 * 60 * 24));
|
|
const hours = Math.floor(difference / (1e3 * 60 * 60));
|
|
const minutes = Math.floor(difference / (1e3 * 60));
|
|
let relativeTime2;
|
|
if (days > 0) {
|
|
relativeTime2 = rtf1.format(-days, "day");
|
|
} else if (hours > 0) {
|
|
relativeTime2 = rtf1.format(-hours, "hour");
|
|
} else if (minutes > 0) {
|
|
relativeTime2 = rtf1.format(-minutes, "minute");
|
|
} else {
|
|
relativeTime2 = "Just now";
|
|
}
|
|
return relativeTime2;
|
|
};
|
|
|
|
// src/lang/snapshot-action-lang.ts
|
|
var snapshotActionLang = {
|
|
"DOCUMENT/SET_NODE_CONTENT": (snapshot) => ({
|
|
label: lang.modals_snapshots_updated_card + snapshot.context.affectedSection,
|
|
icon: file_pen_default
|
|
}),
|
|
"DOCUMENT/INSERT_NODE": (snapshot) => ({
|
|
label: lang.modals_snapshots_created_card + snapshot.context.affectedSection,
|
|
icon: file_plus_default
|
|
}),
|
|
"DOCUMENT/DROP_NODE": (snapshot) => ({
|
|
label: lang.modals_snapshots_dropped_card + snapshot.context.affectedSection,
|
|
icon: file_output_default
|
|
}),
|
|
"DOCUMENT/LOAD_FILE": () => ({
|
|
label: lang.modals_snapshots_document_loaded,
|
|
icon: file_up_default
|
|
}),
|
|
"DOCUMENT/DELETE_NODE": (snapshot) => ({
|
|
label: lang.modals_snapshots_deleted_card + snapshot.context.affectedSection,
|
|
icon: file_minus_default
|
|
}),
|
|
"DOCUMENT/MOVE_NODE": (snapshot) => ({
|
|
label: lang.modals_snapshots_moved_card + snapshot.context.affectedSection,
|
|
icon: file_output_default
|
|
}),
|
|
"DOCUMENT/MERGE_NODE": (snapshot) => ({
|
|
label: lang.modals_snapshots_merged_card + snapshot.context.affectedSection,
|
|
icon: merge_default
|
|
}),
|
|
"DOCUMENT/FORMAT_HEADINGS": () => ({
|
|
label: lang.modals_snapshots_formatted_headings,
|
|
icon: heading_1_default
|
|
}),
|
|
"DOCUMENT/CUT_NODE": (snapshot) => ({
|
|
label: lang.modals_snapshots_cut_card + snapshot.context.affectedSection,
|
|
icon: scissors_default
|
|
}),
|
|
"DOCUMENT/PASTE_NODE": (snapshot) => ({
|
|
label: lang.modals_snapshots_pasted_card + snapshot.context.affectedSection,
|
|
icon: clipboard_paste_default
|
|
}),
|
|
"DOCUMENT/EXTRACT_BRANCH": (snapshot) => ({
|
|
label: lang.modals_snapshots_extracted_card + snapshot.context.affectedSection,
|
|
icon: file_symlink_default,
|
|
iconHtml: customIcons.cards.svg
|
|
}),
|
|
"DOCUMENT/SPLIT_NODE": (snapshot) => ({
|
|
label: lang.modals_snapshots_split_card + snapshot.context.affectedSection,
|
|
icon: split_default
|
|
})
|
|
};
|
|
|
|
// src/view/components/container/controls-bar/modals/snapshots-list/components/snapshot-button.svelte
|
|
var import_obsidian14 = require("obsidian");
|
|
function add_css20(target) {
|
|
append_styles(target, "svelte-8u3rmg", ":root{--icon-wrapper-width:32px}.snapshot.svelte-8u3rmg{padding:var(--size-4-2);cursor:pointer;display:flex;align-items:center;border-radius:4px;gap:4px;height:66px;flex:1;background-color:var(--background-secondary)}.selected.svelte-8u3rmg{background-color:var(--nav-item-background-selected)}.icon-wrapper.svelte-8u3rmg{width:32px;display:flex;align-items:center;justify-content:center}.snapshot-content.svelte-8u3rmg{display:flex;flex-direction:column;gap:5px;flex:1}.snapshot-body.svelte-8u3rmg{display:flex;justify-content:space-between;gap:5px;width:100%}.snapshot-label.svelte-8u3rmg{font-size:14px;color:var(--color-base-70);display:block;flex:1;max-width:210px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.snapshot-card-content.svelte-8u3rmg{font-size:14px;color:var(--color-base-60);display:block;white-space:nowrap;overflow:hidden;max-width:200px;text-overflow:ellipsis;font-style:italic;opacity:0.9}@media(max-width: 720px){.snapshot-card-content.svelte-8u3rmg{max-width:30vw}}.snapshot-context.svelte-8u3rmg{display:flex;flex-direction:column;align-items:end;height:100%;justify-content:space-between}.snapshot-section-number.svelte-8u3rmg{font-size:11px;color:var(--color-base-60);min-width:16px;text-align:left;margin-left:auto}.snapshot-time.svelte-8u3rmg{font-size:11px;color:var(--color-base-60)}");
|
|
}
|
|
function create_else_block6(ctx) {
|
|
let switch_instance;
|
|
let switch_instance_anchor;
|
|
let current;
|
|
var switch_value = (
|
|
/*info*/
|
|
ctx[4].icon
|
|
);
|
|
function switch_props(ctx2, dirty) {
|
|
return { props: { class: "svg-icon label" } };
|
|
}
|
|
if (switch_value) {
|
|
switch_instance = construct_svelte_component(switch_value, switch_props(ctx));
|
|
}
|
|
return {
|
|
c() {
|
|
if (switch_instance)
|
|
create_component(switch_instance.$$.fragment);
|
|
switch_instance_anchor = empty();
|
|
},
|
|
m(target, anchor) {
|
|
if (switch_instance)
|
|
mount_component(switch_instance, target, anchor);
|
|
insert(target, switch_instance_anchor, anchor);
|
|
current = true;
|
|
},
|
|
p(ctx2, dirty) {
|
|
if (switch_value !== (switch_value = /*info*/
|
|
ctx2[4].icon)) {
|
|
if (switch_instance) {
|
|
group_outros();
|
|
const old_component = switch_instance;
|
|
transition_out(old_component.$$.fragment, 1, 0, () => {
|
|
destroy_component(old_component, 1);
|
|
});
|
|
check_outros();
|
|
}
|
|
if (switch_value) {
|
|
switch_instance = construct_svelte_component(switch_value, switch_props(ctx2, dirty));
|
|
create_component(switch_instance.$$.fragment);
|
|
transition_in(switch_instance.$$.fragment, 1);
|
|
mount_component(switch_instance, switch_instance_anchor.parentNode, switch_instance_anchor);
|
|
} else {
|
|
switch_instance = null;
|
|
}
|
|
} else if (switch_value) {
|
|
}
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
if (switch_instance)
|
|
transition_in(switch_instance.$$.fragment, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
if (switch_instance)
|
|
transition_out(switch_instance.$$.fragment, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
if (detaching) {
|
|
detach(switch_instance_anchor);
|
|
}
|
|
if (switch_instance)
|
|
destroy_component(switch_instance, detaching);
|
|
}
|
|
};
|
|
}
|
|
function create_if_block15(ctx) {
|
|
let html_tag;
|
|
let raw_value = (
|
|
/*info*/
|
|
ctx[4].iconHtml + ""
|
|
);
|
|
let html_anchor;
|
|
return {
|
|
c() {
|
|
html_tag = new HtmlTag(false);
|
|
html_anchor = empty();
|
|
html_tag.a = html_anchor;
|
|
},
|
|
m(target, anchor) {
|
|
html_tag.m(raw_value, target, anchor);
|
|
insert(target, html_anchor, anchor);
|
|
},
|
|
p: noop,
|
|
i: noop,
|
|
o: noop,
|
|
d(detaching) {
|
|
if (detaching) {
|
|
detach(html_anchor);
|
|
html_tag.d();
|
|
}
|
|
}
|
|
};
|
|
}
|
|
function create_fragment77(ctx) {
|
|
let div6;
|
|
let div0;
|
|
let current_block_type_index;
|
|
let if_block;
|
|
let t0;
|
|
let div4;
|
|
let div2;
|
|
let div1;
|
|
let t2;
|
|
let div3;
|
|
let t3_value = (
|
|
/*snapshot*/
|
|
ctx[0].context.contentOfAffectedSection + ""
|
|
);
|
|
let t3;
|
|
let t4;
|
|
let div5;
|
|
let span0;
|
|
let t6;
|
|
let span1;
|
|
let t8;
|
|
let span2;
|
|
let t9_value = relativeTime(
|
|
/*snapshot*/
|
|
ctx[0].created
|
|
) + "";
|
|
let t9;
|
|
let span2_data_created_value;
|
|
let div6_aria_label_value;
|
|
let current;
|
|
let mounted;
|
|
let dispose;
|
|
const if_block_creators = [create_if_block15, create_else_block6];
|
|
const if_blocks = [];
|
|
function select_block_type(ctx2, dirty) {
|
|
if ("iconHtml" in /*info*/
|
|
ctx2[4])
|
|
return 0;
|
|
return 1;
|
|
}
|
|
current_block_type_index = select_block_type(ctx, -1);
|
|
if_block = if_blocks[current_block_type_index] = if_block_creators[current_block_type_index](ctx);
|
|
return {
|
|
c() {
|
|
div6 = element("div");
|
|
div0 = element("div");
|
|
if_block.c();
|
|
t0 = space();
|
|
div4 = element("div");
|
|
div2 = element("div");
|
|
div1 = element("div");
|
|
div1.textContent = `${/*info*/
|
|
ctx[4].label}`;
|
|
t2 = space();
|
|
div3 = element("div");
|
|
t3 = text(t3_value);
|
|
t4 = space();
|
|
div5 = element("div");
|
|
span0 = element("span");
|
|
span0.textContent = `${/*sections*/
|
|
ctx[5]}`;
|
|
t6 = space();
|
|
span1 = element("span");
|
|
span1.textContent = `${/*chars*/
|
|
ctx[6]}`;
|
|
t8 = space();
|
|
span2 = element("span");
|
|
t9 = text(t9_value);
|
|
attr(div0, "class", "icon-wrapper svelte-8u3rmg");
|
|
attr(div1, "class", "snapshot-label svelte-8u3rmg");
|
|
attr(div2, "class", "snapshot-body svelte-8u3rmg");
|
|
attr(div3, "class", "snapshot-card-content svelte-8u3rmg");
|
|
attr(div4, "class", "snapshot-content svelte-8u3rmg");
|
|
attr(span0, "class", "snapshot-section-number svelte-8u3rmg");
|
|
attr(span1, "class", "snapshot-section-number svelte-8u3rmg");
|
|
attr(span2, "class", "snapshot-time svelte-8u3rmg");
|
|
attr(span2, "data-created", span2_data_created_value = /*snapshot*/
|
|
ctx[0].created);
|
|
attr(div5, "class", "snapshot-context svelte-8u3rmg");
|
|
attr(div6, "aria-label", div6_aria_label_value = /*snapshot*/
|
|
ctx[0].context.contentOfAffectedSection);
|
|
attr(div6, "class", "snapshot svelte-8u3rmg");
|
|
toggle_class(
|
|
div6,
|
|
"selected",
|
|
/*active*/
|
|
ctx[1]
|
|
);
|
|
},
|
|
m(target, anchor) {
|
|
insert(target, div6, anchor);
|
|
append(div6, div0);
|
|
if_blocks[current_block_type_index].m(div0, null);
|
|
append(div6, t0);
|
|
append(div6, div4);
|
|
append(div4, div2);
|
|
append(div2, div1);
|
|
append(div4, t2);
|
|
append(div4, div3);
|
|
append(div3, t3);
|
|
append(div6, t4);
|
|
append(div6, div5);
|
|
append(div5, span0);
|
|
append(div5, t6);
|
|
append(div5, span1);
|
|
append(div5, t8);
|
|
append(div5, span2);
|
|
append(span2, t9);
|
|
current = true;
|
|
if (!mounted) {
|
|
dispose = listen(
|
|
div6,
|
|
"click",
|
|
/*click_handler*/
|
|
ctx[7]
|
|
);
|
|
mounted = true;
|
|
}
|
|
},
|
|
p(ctx2, [dirty]) {
|
|
if_block.p(ctx2, dirty);
|
|
if ((!current || dirty & /*snapshot*/
|
|
1) && t3_value !== (t3_value = /*snapshot*/
|
|
ctx2[0].context.contentOfAffectedSection + ""))
|
|
set_data(t3, t3_value);
|
|
if ((!current || dirty & /*snapshot*/
|
|
1) && t9_value !== (t9_value = relativeTime(
|
|
/*snapshot*/
|
|
ctx2[0].created
|
|
) + ""))
|
|
set_data(t9, t9_value);
|
|
if (!current || dirty & /*snapshot*/
|
|
1 && span2_data_created_value !== (span2_data_created_value = /*snapshot*/
|
|
ctx2[0].created)) {
|
|
attr(span2, "data-created", span2_data_created_value);
|
|
}
|
|
if (!current || dirty & /*snapshot*/
|
|
1 && div6_aria_label_value !== (div6_aria_label_value = /*snapshot*/
|
|
ctx2[0].context.contentOfAffectedSection)) {
|
|
attr(div6, "aria-label", div6_aria_label_value);
|
|
}
|
|
if (!current || dirty & /*active*/
|
|
2) {
|
|
toggle_class(
|
|
div6,
|
|
"selected",
|
|
/*active*/
|
|
ctx2[1]
|
|
);
|
|
}
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(if_block);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(if_block);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
if (detaching) {
|
|
detach(div6);
|
|
}
|
|
if_blocks[current_block_type_index].d();
|
|
mounted = false;
|
|
dispose();
|
|
}
|
|
};
|
|
}
|
|
function instance74($$self, $$props, $$invalidate) {
|
|
let { snapshot } = $$props;
|
|
let { active } = $$props;
|
|
const view = getView();
|
|
const documentStore = view.documentStore;
|
|
const viewStore = view.viewStore;
|
|
const infoFactory = snapshotActionLang[snapshot.context.action.type];
|
|
invariant(infoFactory);
|
|
const info = infoFactory(snapshot);
|
|
const numberOfCharacters = snapshot.context.numberOfCharacters;
|
|
const numberOfSections = snapshot.context.numberOfSections;
|
|
const sections = `${numberOfSections} card${numberOfSections === 1 ? "" : "s"}`;
|
|
const chars = `${numberOfCharacters} char${numberOfCharacters === 1 ? "" : "s"}`;
|
|
const click_handler = () => {
|
|
if (viewStore.getValue().document.editing.activeNodeId)
|
|
new import_obsidian14.Notice(lang.error_apply_snapshot_while_editing);
|
|
else
|
|
documentStore.dispatch({
|
|
type: "HISTORY/SELECT_SNAPSHOT",
|
|
payload: { snapshotId: snapshot.id }
|
|
});
|
|
};
|
|
$$self.$$set = ($$props2) => {
|
|
if ("snapshot" in $$props2)
|
|
$$invalidate(0, snapshot = $$props2.snapshot);
|
|
if ("active" in $$props2)
|
|
$$invalidate(1, active = $$props2.active);
|
|
};
|
|
return [
|
|
snapshot,
|
|
active,
|
|
documentStore,
|
|
viewStore,
|
|
info,
|
|
sections,
|
|
chars,
|
|
click_handler
|
|
];
|
|
}
|
|
var Snapshot_button = class extends SvelteComponent {
|
|
constructor(options) {
|
|
super();
|
|
init(this, options, instance74, create_fragment77, safe_not_equal, { snapshot: 0, active: 1 }, add_css20);
|
|
}
|
|
};
|
|
var snapshot_button_default = Snapshot_button;
|
|
|
|
// src/view/actions/update-relative-time.ts
|
|
var updateRelativeTime = (element2) => {
|
|
const interval = setInterval(() => {
|
|
const children2 = Array.from(
|
|
element2.querySelectorAll("[data-created]")
|
|
);
|
|
for (const child of children2) {
|
|
const created = child.dataset["created"];
|
|
if (created && !isNaN(+created))
|
|
child.textContent = relativeTime(+created);
|
|
}
|
|
}, 30 * 1e3);
|
|
return {
|
|
destroy: () => {
|
|
clearInterval(interval);
|
|
}
|
|
};
|
|
};
|
|
|
|
// src/view/components/container/controls-bar/modals/snapshots-list/file-histoy.svelte
|
|
function add_css21(target) {
|
|
append_styles(target, "svelte-1dzm90d", ".snapshots-list.svelte-1dzm90d{width:400px;display:flex;flex-direction:column;gap:var(--size-4-2);height:fit-content;max-height:400px;overflow-y:auto;padding-left:var(--size-4-2);padding-right:var(--size-4-2)}@media(max-width: 720px){.snapshots-list.svelte-1dzm90d{width:initial}}");
|
|
}
|
|
function get_each_context6(ctx, list, i) {
|
|
const child_ctx = ctx.slice();
|
|
child_ctx[3] = list[i];
|
|
child_ctx[5] = i;
|
|
return child_ctx;
|
|
}
|
|
function create_each_block6(key_1, ctx) {
|
|
let first;
|
|
let snapshotbutton;
|
|
let current;
|
|
snapshotbutton = new snapshot_button_default({
|
|
props: {
|
|
snapshot: (
|
|
/*snapshot*/
|
|
ctx[3]
|
|
),
|
|
active: (
|
|
/*$history*/
|
|
ctx[0].items.length - /*index*/
|
|
ctx[5] - 1 === /*$history*/
|
|
ctx[0].state.activeIndex
|
|
)
|
|
}
|
|
});
|
|
return {
|
|
key: key_1,
|
|
first: null,
|
|
c() {
|
|
first = empty();
|
|
create_component(snapshotbutton.$$.fragment);
|
|
this.first = first;
|
|
},
|
|
m(target, anchor) {
|
|
insert(target, first, anchor);
|
|
mount_component(snapshotbutton, target, anchor);
|
|
current = true;
|
|
},
|
|
p(new_ctx, dirty) {
|
|
ctx = new_ctx;
|
|
const snapshotbutton_changes = {};
|
|
if (dirty & /*$history*/
|
|
1)
|
|
snapshotbutton_changes.snapshot = /*snapshot*/
|
|
ctx[3];
|
|
if (dirty & /*$history*/
|
|
1)
|
|
snapshotbutton_changes.active = /*$history*/
|
|
ctx[0].items.length - /*index*/
|
|
ctx[5] - 1 === /*$history*/
|
|
ctx[0].state.activeIndex;
|
|
snapshotbutton.$set(snapshotbutton_changes);
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(snapshotbutton.$$.fragment, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(snapshotbutton.$$.fragment, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
if (detaching) {
|
|
detach(first);
|
|
}
|
|
destroy_component(snapshotbutton, detaching);
|
|
}
|
|
};
|
|
}
|
|
function create_fragment78(ctx) {
|
|
let div1;
|
|
let div0;
|
|
let each_blocks = [];
|
|
let each_1_lookup = /* @__PURE__ */ new Map();
|
|
let updateRelativeTime_action;
|
|
let current;
|
|
let mounted;
|
|
let dispose;
|
|
let each_value = ensure_array_like([.../*$history*/
|
|
ctx[0].items].sort(func));
|
|
const get_key = (ctx2) => (
|
|
/*snapshot*/
|
|
ctx2[3].id
|
|
);
|
|
for (let i = 0; i < each_value.length; i += 1) {
|
|
let child_ctx = get_each_context6(ctx, each_value, i);
|
|
let key = get_key(child_ctx);
|
|
each_1_lookup.set(key, each_blocks[i] = create_each_block6(key, child_ctx));
|
|
}
|
|
return {
|
|
c() {
|
|
div1 = element("div");
|
|
div0 = element("div");
|
|
for (let i = 0; i < each_blocks.length; i += 1) {
|
|
each_blocks[i].c();
|
|
}
|
|
attr(div0, "class", "snapshots-list svelte-1dzm90d");
|
|
attr(div1, "class", "lineage-modal");
|
|
set_style(div1, "padding-left", "0");
|
|
set_style(div1, "padding-right", "0");
|
|
attr(div1, "tabindex", "0");
|
|
},
|
|
m(target, anchor) {
|
|
insert(target, div1, anchor);
|
|
append(div1, div0);
|
|
for (let i = 0; i < each_blocks.length; i += 1) {
|
|
if (each_blocks[i]) {
|
|
each_blocks[i].m(div0, null);
|
|
}
|
|
}
|
|
current = true;
|
|
if (!mounted) {
|
|
dispose = action_destroyer(updateRelativeTime_action = updateRelativeTime.call(null, div0));
|
|
mounted = true;
|
|
}
|
|
},
|
|
p(ctx2, [dirty]) {
|
|
if (dirty & /*$history*/
|
|
1) {
|
|
each_value = ensure_array_like([.../*$history*/
|
|
ctx2[0].items].sort(func));
|
|
group_outros();
|
|
each_blocks = update_keyed_each(each_blocks, dirty, get_key, 1, ctx2, each_value, each_1_lookup, div0, outro_and_destroy_block, create_each_block6, null, get_each_context6);
|
|
check_outros();
|
|
}
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
for (let i = 0; i < each_value.length; i += 1) {
|
|
transition_in(each_blocks[i]);
|
|
}
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
for (let i = 0; i < each_blocks.length; i += 1) {
|
|
transition_out(each_blocks[i]);
|
|
}
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
if (detaching) {
|
|
detach(div1);
|
|
}
|
|
for (let i = 0; i < each_blocks.length; i += 1) {
|
|
each_blocks[i].d();
|
|
}
|
|
mounted = false;
|
|
dispose();
|
|
}
|
|
};
|
|
}
|
|
var func = (a, b) => b.created - a.created;
|
|
function instance75($$self, $$props, $$invalidate) {
|
|
let $history;
|
|
const view = getView();
|
|
const history = historyStore(view);
|
|
component_subscribe($$self, history, (value) => $$invalidate(0, $history = value));
|
|
return [$history, history];
|
|
}
|
|
var File_histoy = class extends SvelteComponent {
|
|
constructor(options) {
|
|
super();
|
|
init(this, options, instance75, create_fragment78, safe_not_equal, {}, add_css21);
|
|
}
|
|
};
|
|
var file_histoy_default = File_histoy;
|
|
|
|
// src/view/actions/keyboard-shortcuts/helpers/keyboard-events/mod-key-dictionary.ts
|
|
var modKeyDictionary = {
|
|
Mod: modKey,
|
|
Alt: "Alt",
|
|
Ctrl: "Ctrl",
|
|
Meta: "Meta",
|
|
Shift: "Shift"
|
|
};
|
|
|
|
// src/view/components/container/controls-bar/modals/hotkeys/components/hotkey/editor-state/render-editor-state.svelte
|
|
var import_obsidian15 = require("obsidian");
|
|
function add_css22(target) {
|
|
append_styles(target, "svelte-12gga04", ".editor-state.svelte-12gga04{display:flex;align-items:center;justify-content:center;padding:2px;background-color:var(--color-base-100);color:var(--color-base-00);& svg {\n width: 14px;\n height: 14px;\n }}");
|
|
}
|
|
function create_fragment79(ctx) {
|
|
let kbd;
|
|
let raw_value = (
|
|
/*cursorIcon*/
|
|
ctx[2][
|
|
/*hotkey*/
|
|
ctx[0].editorState
|
|
] + ""
|
|
);
|
|
let kbd_class_value;
|
|
let kbd_aria_label_value;
|
|
let mounted;
|
|
let dispose;
|
|
return {
|
|
c() {
|
|
kbd = element("kbd");
|
|
attr(kbd, "class", kbd_class_value = null_to_empty("editor-state " + /*classes*/
|
|
ctx[1][
|
|
/*hotkey*/
|
|
ctx[0].editorState
|
|
]) + " svelte-12gga04");
|
|
attr(kbd, "aria-label", kbd_aria_label_value = /*label*/
|
|
ctx[3][
|
|
/*hotkey*/
|
|
ctx[0].editorState
|
|
]);
|
|
},
|
|
m(target, anchor) {
|
|
insert(target, kbd, anchor);
|
|
kbd.innerHTML = raw_value;
|
|
if (!mounted) {
|
|
dispose = listen(
|
|
kbd,
|
|
"click",
|
|
/*wrappedOnClick*/
|
|
ctx[4]
|
|
);
|
|
mounted = true;
|
|
}
|
|
},
|
|
p(ctx2, [dirty]) {
|
|
if (dirty & /*hotkey*/
|
|
1 && raw_value !== (raw_value = /*cursorIcon*/
|
|
ctx2[2][
|
|
/*hotkey*/
|
|
ctx2[0].editorState
|
|
] + ""))
|
|
kbd.innerHTML = raw_value;
|
|
;
|
|
if (dirty & /*hotkey*/
|
|
1 && kbd_class_value !== (kbd_class_value = null_to_empty("editor-state " + /*classes*/
|
|
ctx2[1][
|
|
/*hotkey*/
|
|
ctx2[0].editorState
|
|
]) + " svelte-12gga04")) {
|
|
attr(kbd, "class", kbd_class_value);
|
|
}
|
|
if (dirty & /*hotkey*/
|
|
1 && kbd_aria_label_value !== (kbd_aria_label_value = /*label*/
|
|
ctx2[3][
|
|
/*hotkey*/
|
|
ctx2[0].editorState
|
|
])) {
|
|
attr(kbd, "aria-label", kbd_aria_label_value);
|
|
}
|
|
},
|
|
i: noop,
|
|
o: noop,
|
|
d(detaching) {
|
|
if (detaching) {
|
|
detach(kbd);
|
|
}
|
|
mounted = false;
|
|
dispose();
|
|
}
|
|
};
|
|
}
|
|
function instance76($$self, $$props, $$invalidate) {
|
|
let { hotkey } = $$props;
|
|
let { onClick = void 0 } = $$props;
|
|
const classes = {
|
|
both: "editor-state--both",
|
|
"editor-on": "editor-state--on",
|
|
"editor-off": "editor-state--off"
|
|
};
|
|
const cursorIcon = {
|
|
both: customIcons.cursor.svg,
|
|
"editor-on": customIcons.cursor.svg,
|
|
"editor-off": customIcons.cursorOff.svg
|
|
};
|
|
const label = {
|
|
both: lang.modal_hk_editor_state_both,
|
|
"editor-on": lang.modal_hk_editor_state_on,
|
|
"editor-off": lang.modal_hk_editor_state_off
|
|
};
|
|
let notice;
|
|
const wrappedOnClick = () => {
|
|
if (onClick) {
|
|
onClick();
|
|
setTimeout(
|
|
() => {
|
|
if (notice) {
|
|
notice.hide();
|
|
}
|
|
notice = new import_obsidian15.Notice(label[hotkey.editorState]);
|
|
},
|
|
16
|
|
);
|
|
}
|
|
};
|
|
$$self.$$set = ($$props2) => {
|
|
if ("hotkey" in $$props2)
|
|
$$invalidate(0, hotkey = $$props2.hotkey);
|
|
if ("onClick" in $$props2)
|
|
$$invalidate(5, onClick = $$props2.onClick);
|
|
};
|
|
return [hotkey, classes, cursorIcon, label, wrappedOnClick, onClick];
|
|
}
|
|
var Render_editor_state = class extends SvelteComponent {
|
|
constructor(options) {
|
|
super();
|
|
init(this, options, instance76, create_fragment79, safe_not_equal, { hotkey: 0, onClick: 5 }, add_css22);
|
|
}
|
|
};
|
|
var render_editor_state_default = Render_editor_state;
|
|
|
|
// src/view/components/container/controls-bar/modals/hotkeys/components/hotkey/render-hotkey.svelte
|
|
function add_css23(target) {
|
|
append_styles(target, "svelte-sbdud0", ".hotkey-buttons.svelte-sbdud0{width:100%;height:100%;position:absolute;left:0;right:0;top:0;bottom:0;display:flex;align-items:center;justify-content:center;gap:5px;opacity:0;background-color:var(--color-base-70)}.hotkey-button.svelte-sbdud0{border:none;width:16px;height:16px;box-shadow:none;padding:2px;cursor:pointer}.hotkey-buttons.svelte-sbdud0:hover{opacity:0.8}.hotkey-key.svelte-sbdud0{color:var(--text-on-accent);background-color:#175c5a}.blank-hotkey.svelte-sbdud0{background-color:var(--color-base-30)}");
|
|
}
|
|
function get_each_context7(ctx, list, i) {
|
|
const child_ctx = ctx.slice();
|
|
child_ctx[3] = list[i];
|
|
return child_ctx;
|
|
}
|
|
function create_if_block_23(ctx) {
|
|
let button;
|
|
let trash;
|
|
let current;
|
|
let mounted;
|
|
let dispose;
|
|
trash = new trash_default({ props: { class: "svg-icon", size: 8 } });
|
|
return {
|
|
c() {
|
|
button = element("button");
|
|
create_component(trash.$$.fragment);
|
|
attr(button, "class", "hotkey-button svelte-sbdud0");
|
|
},
|
|
m(target, anchor) {
|
|
insert(target, button, anchor);
|
|
mount_component(trash, button, null);
|
|
current = true;
|
|
if (!mounted) {
|
|
dispose = listen(button, "click", function() {
|
|
if (is_function(
|
|
/*makeBlank*/
|
|
ctx[1]
|
|
))
|
|
ctx[1].apply(this, arguments);
|
|
});
|
|
mounted = true;
|
|
}
|
|
},
|
|
p(new_ctx, dirty) {
|
|
ctx = new_ctx;
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(trash.$$.fragment, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(trash.$$.fragment, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
if (detaching) {
|
|
detach(button);
|
|
}
|
|
destroy_component(trash);
|
|
mounted = false;
|
|
dispose();
|
|
}
|
|
};
|
|
}
|
|
function create_else_block7(ctx) {
|
|
let t0;
|
|
let kbd;
|
|
let t1_value = (
|
|
/*hotkey*/
|
|
ctx[2].key + ""
|
|
);
|
|
let t1;
|
|
let t2;
|
|
let each_1_anchor;
|
|
let current;
|
|
let if_block = (
|
|
/*hotkey*/
|
|
ctx[2].editorState !== "both" && create_if_block_17(ctx)
|
|
);
|
|
let each_value = ensure_array_like(
|
|
/*hotkey*/
|
|
ctx[2].modifiers
|
|
);
|
|
let each_blocks = [];
|
|
for (let i = 0; i < each_value.length; i += 1) {
|
|
each_blocks[i] = create_each_block7(get_each_context7(ctx, each_value, i));
|
|
}
|
|
return {
|
|
c() {
|
|
if (if_block)
|
|
if_block.c();
|
|
t0 = space();
|
|
kbd = element("kbd");
|
|
t1 = text(t1_value);
|
|
t2 = space();
|
|
for (let i = 0; i < each_blocks.length; i += 1) {
|
|
each_blocks[i].c();
|
|
}
|
|
each_1_anchor = empty();
|
|
attr(kbd, "class", "hotkey-key svelte-sbdud0");
|
|
},
|
|
m(target, anchor) {
|
|
if (if_block)
|
|
if_block.m(target, anchor);
|
|
insert(target, t0, anchor);
|
|
insert(target, kbd, anchor);
|
|
append(kbd, t1);
|
|
insert(target, t2, anchor);
|
|
for (let i = 0; i < each_blocks.length; i += 1) {
|
|
if (each_blocks[i]) {
|
|
each_blocks[i].m(target, anchor);
|
|
}
|
|
}
|
|
insert(target, each_1_anchor, anchor);
|
|
current = true;
|
|
},
|
|
p(ctx2, dirty) {
|
|
if (
|
|
/*hotkey*/
|
|
ctx2[2].editorState !== "both"
|
|
) {
|
|
if (if_block) {
|
|
if_block.p(ctx2, dirty);
|
|
if (dirty & /*hotkey*/
|
|
4) {
|
|
transition_in(if_block, 1);
|
|
}
|
|
} else {
|
|
if_block = create_if_block_17(ctx2);
|
|
if_block.c();
|
|
transition_in(if_block, 1);
|
|
if_block.m(t0.parentNode, t0);
|
|
}
|
|
} else if (if_block) {
|
|
group_outros();
|
|
transition_out(if_block, 1, 1, () => {
|
|
if_block = null;
|
|
});
|
|
check_outros();
|
|
}
|
|
if ((!current || dirty & /*hotkey*/
|
|
4) && t1_value !== (t1_value = /*hotkey*/
|
|
ctx2[2].key + ""))
|
|
set_data(t1, t1_value);
|
|
if (dirty & /*hotkey*/
|
|
4) {
|
|
each_value = ensure_array_like(
|
|
/*hotkey*/
|
|
ctx2[2].modifiers
|
|
);
|
|
let i;
|
|
for (i = 0; i < each_value.length; i += 1) {
|
|
const child_ctx = get_each_context7(ctx2, each_value, i);
|
|
if (each_blocks[i]) {
|
|
each_blocks[i].p(child_ctx, dirty);
|
|
} else {
|
|
each_blocks[i] = create_each_block7(child_ctx);
|
|
each_blocks[i].c();
|
|
each_blocks[i].m(each_1_anchor.parentNode, each_1_anchor);
|
|
}
|
|
}
|
|
for (; i < each_blocks.length; i += 1) {
|
|
each_blocks[i].d(1);
|
|
}
|
|
each_blocks.length = each_value.length;
|
|
}
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(if_block);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(if_block);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
if (detaching) {
|
|
detach(t0);
|
|
detach(kbd);
|
|
detach(t2);
|
|
detach(each_1_anchor);
|
|
}
|
|
if (if_block)
|
|
if_block.d(detaching);
|
|
destroy_each(each_blocks, detaching);
|
|
}
|
|
};
|
|
}
|
|
function create_if_block16(ctx) {
|
|
let kbd;
|
|
return {
|
|
c() {
|
|
kbd = element("kbd");
|
|
kbd.textContent = "blank";
|
|
attr(kbd, "class", "blank-hotkey svelte-sbdud0");
|
|
},
|
|
m(target, anchor) {
|
|
insert(target, kbd, anchor);
|
|
},
|
|
p: noop,
|
|
i: noop,
|
|
o: noop,
|
|
d(detaching) {
|
|
if (detaching) {
|
|
detach(kbd);
|
|
}
|
|
}
|
|
};
|
|
}
|
|
function create_if_block_17(ctx) {
|
|
let editorstate;
|
|
let current;
|
|
editorstate = new render_editor_state_default({ props: { hotkey: (
|
|
/*hotkey*/
|
|
ctx[2]
|
|
) } });
|
|
return {
|
|
c() {
|
|
create_component(editorstate.$$.fragment);
|
|
},
|
|
m(target, anchor) {
|
|
mount_component(editorstate, target, anchor);
|
|
current = true;
|
|
},
|
|
p(ctx2, dirty) {
|
|
const editorstate_changes = {};
|
|
if (dirty & /*hotkey*/
|
|
4)
|
|
editorstate_changes.hotkey = /*hotkey*/
|
|
ctx2[2];
|
|
editorstate.$set(editorstate_changes);
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(editorstate.$$.fragment, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(editorstate.$$.fragment, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
destroy_component(editorstate, detaching);
|
|
}
|
|
};
|
|
}
|
|
function create_each_block7(ctx) {
|
|
let kbd;
|
|
let t_value = modKeyDictionary[
|
|
/*modifier*/
|
|
ctx[3]
|
|
] + "";
|
|
let t;
|
|
return {
|
|
c() {
|
|
kbd = element("kbd");
|
|
t = text(t_value);
|
|
},
|
|
m(target, anchor) {
|
|
insert(target, kbd, anchor);
|
|
append(kbd, t);
|
|
},
|
|
p(ctx2, dirty) {
|
|
if (dirty & /*hotkey*/
|
|
4 && t_value !== (t_value = modKeyDictionary[
|
|
/*modifier*/
|
|
ctx2[3]
|
|
] + ""))
|
|
set_data(t, t_value);
|
|
},
|
|
d(detaching) {
|
|
if (detaching) {
|
|
detach(kbd);
|
|
}
|
|
}
|
|
};
|
|
}
|
|
function create_fragment80(ctx) {
|
|
let div;
|
|
let button;
|
|
let pen;
|
|
let t0;
|
|
let t1;
|
|
let current_block_type_index;
|
|
let if_block1;
|
|
let if_block1_anchor;
|
|
let current;
|
|
let mounted;
|
|
let dispose;
|
|
pen = new pen_default({ props: { class: "svg-icon", size: 8 } });
|
|
let if_block0 = (
|
|
/*hotkey*/
|
|
ctx[2].key && create_if_block_23(ctx)
|
|
);
|
|
const if_block_creators = [create_if_block16, create_else_block7];
|
|
const if_blocks = [];
|
|
function select_block_type(ctx2, dirty) {
|
|
if (!/*hotkey*/
|
|
ctx2[2].key)
|
|
return 0;
|
|
return 1;
|
|
}
|
|
current_block_type_index = select_block_type(ctx, -1);
|
|
if_block1 = if_blocks[current_block_type_index] = if_block_creators[current_block_type_index](ctx);
|
|
return {
|
|
c() {
|
|
div = element("div");
|
|
button = element("button");
|
|
create_component(pen.$$.fragment);
|
|
t0 = space();
|
|
if (if_block0)
|
|
if_block0.c();
|
|
t1 = space();
|
|
if_block1.c();
|
|
if_block1_anchor = empty();
|
|
attr(button, "class", "hotkey-button svelte-sbdud0");
|
|
attr(div, "class", "hotkey-buttons svelte-sbdud0");
|
|
},
|
|
m(target, anchor) {
|
|
insert(target, div, anchor);
|
|
append(div, button);
|
|
mount_component(pen, button, null);
|
|
append(div, t0);
|
|
if (if_block0)
|
|
if_block0.m(div, null);
|
|
insert(target, t1, anchor);
|
|
if_blocks[current_block_type_index].m(target, anchor);
|
|
insert(target, if_block1_anchor, anchor);
|
|
current = true;
|
|
if (!mounted) {
|
|
dispose = listen(button, "click", function() {
|
|
if (is_function(
|
|
/*enableEditing*/
|
|
ctx[0]
|
|
))
|
|
ctx[0].apply(this, arguments);
|
|
});
|
|
mounted = true;
|
|
}
|
|
},
|
|
p(new_ctx, [dirty]) {
|
|
ctx = new_ctx;
|
|
if (
|
|
/*hotkey*/
|
|
ctx[2].key
|
|
) {
|
|
if (if_block0) {
|
|
if_block0.p(ctx, dirty);
|
|
if (dirty & /*hotkey*/
|
|
4) {
|
|
transition_in(if_block0, 1);
|
|
}
|
|
} else {
|
|
if_block0 = create_if_block_23(ctx);
|
|
if_block0.c();
|
|
transition_in(if_block0, 1);
|
|
if_block0.m(div, null);
|
|
}
|
|
} else if (if_block0) {
|
|
group_outros();
|
|
transition_out(if_block0, 1, 1, () => {
|
|
if_block0 = null;
|
|
});
|
|
check_outros();
|
|
}
|
|
let previous_block_index = current_block_type_index;
|
|
current_block_type_index = select_block_type(ctx, dirty);
|
|
if (current_block_type_index === previous_block_index) {
|
|
if_blocks[current_block_type_index].p(ctx, dirty);
|
|
} else {
|
|
group_outros();
|
|
transition_out(if_blocks[previous_block_index], 1, 1, () => {
|
|
if_blocks[previous_block_index] = null;
|
|
});
|
|
check_outros();
|
|
if_block1 = if_blocks[current_block_type_index];
|
|
if (!if_block1) {
|
|
if_block1 = if_blocks[current_block_type_index] = if_block_creators[current_block_type_index](ctx);
|
|
if_block1.c();
|
|
} else {
|
|
if_block1.p(ctx, dirty);
|
|
}
|
|
transition_in(if_block1, 1);
|
|
if_block1.m(if_block1_anchor.parentNode, if_block1_anchor);
|
|
}
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(pen.$$.fragment, local);
|
|
transition_in(if_block0);
|
|
transition_in(if_block1);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(pen.$$.fragment, local);
|
|
transition_out(if_block0);
|
|
transition_out(if_block1);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
if (detaching) {
|
|
detach(div);
|
|
detach(t1);
|
|
detach(if_block1_anchor);
|
|
}
|
|
destroy_component(pen);
|
|
if (if_block0)
|
|
if_block0.d();
|
|
if_blocks[current_block_type_index].d(detaching);
|
|
mounted = false;
|
|
dispose();
|
|
}
|
|
};
|
|
}
|
|
function instance77($$self, $$props, $$invalidate) {
|
|
let { enableEditing } = $$props;
|
|
let { makeBlank } = $$props;
|
|
let { hotkey } = $$props;
|
|
$$self.$$set = ($$props2) => {
|
|
if ("enableEditing" in $$props2)
|
|
$$invalidate(0, enableEditing = $$props2.enableEditing);
|
|
if ("makeBlank" in $$props2)
|
|
$$invalidate(1, makeBlank = $$props2.makeBlank);
|
|
if ("hotkey" in $$props2)
|
|
$$invalidate(2, hotkey = $$props2.hotkey);
|
|
};
|
|
return [enableEditing, makeBlank, hotkey];
|
|
}
|
|
var Render_hotkey = class extends SvelteComponent {
|
|
constructor(options) {
|
|
super();
|
|
init(
|
|
this,
|
|
options,
|
|
instance77,
|
|
create_fragment80,
|
|
safe_not_equal,
|
|
{
|
|
enableEditing: 0,
|
|
makeBlank: 1,
|
|
hotkey: 2
|
|
},
|
|
add_css23
|
|
);
|
|
}
|
|
};
|
|
var render_hotkey_default = Render_hotkey;
|
|
|
|
// src/view/actions/keyboard-shortcuts/helpers/keyboard-events/hotkey-to-string.ts
|
|
var hotkeyToString = (hotkey) => hotkey.key.toUpperCase() + hotkey.modifiers.sort().join("");
|
|
|
|
// src/view/actions/keyboard-shortcuts/helpers/commands/update-view-hotkeys-dictionary.ts
|
|
var viewHotkeys = {
|
|
current: {}
|
|
};
|
|
var updateViewHotkeysDictionary = (hotkeys) => {
|
|
viewHotkeys.current = {};
|
|
for (const viewHotkey of hotkeys) {
|
|
for (const hotkey of viewHotkey.hotkeys) {
|
|
invariant(hotkey.editorState);
|
|
if (hotkey.key === "")
|
|
continue;
|
|
viewHotkeys.current[hotkeyToString(hotkey)] = {
|
|
...viewHotkey,
|
|
editorState: hotkey.editorState
|
|
};
|
|
}
|
|
}
|
|
};
|
|
|
|
// src/view/components/container/controls-bar/modals/hotkeys/components/hotkey/editor-state/edit-editor-state.svelte
|
|
function create_fragment81(ctx) {
|
|
let editorstate;
|
|
let current;
|
|
editorstate = new render_editor_state_default({
|
|
props: {
|
|
hotkey: (
|
|
/*hotkey*/
|
|
ctx[0]
|
|
),
|
|
onClick: (
|
|
/*onClick*/
|
|
ctx[1]
|
|
)
|
|
}
|
|
});
|
|
return {
|
|
c() {
|
|
create_component(editorstate.$$.fragment);
|
|
},
|
|
m(target, anchor) {
|
|
mount_component(editorstate, target, anchor);
|
|
current = true;
|
|
},
|
|
p(ctx2, [dirty]) {
|
|
const editorstate_changes = {};
|
|
if (dirty & /*hotkey*/
|
|
1)
|
|
editorstate_changes.hotkey = /*hotkey*/
|
|
ctx2[0];
|
|
editorstate.$set(editorstate_changes);
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(editorstate.$$.fragment, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(editorstate.$$.fragment, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
destroy_component(editorstate, detaching);
|
|
}
|
|
};
|
|
}
|
|
function instance78($$self, $$props, $$invalidate) {
|
|
let { hotkey } = $$props;
|
|
let { commandName } = $$props;
|
|
let { isPrimary } = $$props;
|
|
const view = getView();
|
|
const onClick = () => {
|
|
view.plugin.settings.dispatch({
|
|
type: "settings/hotkeys/toggle-editor-state",
|
|
payload: {
|
|
command: commandName,
|
|
type: isPrimary ? "primary" : "secondary"
|
|
}
|
|
});
|
|
};
|
|
$$self.$$set = ($$props2) => {
|
|
if ("hotkey" in $$props2)
|
|
$$invalidate(0, hotkey = $$props2.hotkey);
|
|
if ("commandName" in $$props2)
|
|
$$invalidate(2, commandName = $$props2.commandName);
|
|
if ("isPrimary" in $$props2)
|
|
$$invalidate(3, isPrimary = $$props2.isPrimary);
|
|
};
|
|
return [hotkey, onClick, commandName, isPrimary];
|
|
}
|
|
var Edit_editor_state = class extends SvelteComponent {
|
|
constructor(options) {
|
|
super();
|
|
init(this, options, instance78, create_fragment81, safe_not_equal, { hotkey: 0, commandName: 2, isPrimary: 3 });
|
|
}
|
|
};
|
|
var edit_editor_state_default = Edit_editor_state;
|
|
|
|
// src/view/components/container/controls-bar/modals/hotkeys/components/hotkey/edit-hotkey.svelte
|
|
function add_css24(target) {
|
|
append_styles(target, "svelte-1xi2oy8", ".container.svelte-1xi2oy8{display:flex;gap:5px;align-items:center;justify-content:center}.hotkey-container.svelte-1xi2oy8{display:flex;flex-direction:column;align-items:center;gap:5px}.input.svelte-1xi2oy8{width:115px;height:25px;text-align:center;font-size:14px}.modifiers.svelte-1xi2oy8{display:flex;gap:5px;width:100%;justify-content:center}.disabled.svelte-1xi2oy8{background-color:var(--color-base-50)}button.svelte-1xi2oy8:disabled{cursor:not-allowed}.save-and-cancel-buttons.svelte-1xi2oy8{display:flex;gap:5px;flex-direction:column}.hotkey-button.svelte-1xi2oy8{background-color:transparent;color:var(--color-base-25);border:none;width:20px;height:20px;box-shadow:none;padding:2px;cursor:pointer}.hotkey-key.svelte-1xi2oy8{color:lightgrey;background-color:#175c5a;border-color:#227f7d}");
|
|
}
|
|
function create_if_block17(ctx) {
|
|
let kbd;
|
|
let t_value = "Ctrl" /* Ctrl */ + "";
|
|
let t;
|
|
let kbd_class_value;
|
|
let mounted;
|
|
let dispose;
|
|
return {
|
|
c() {
|
|
kbd = element("kbd");
|
|
t = text(t_value);
|
|
attr(kbd, "class", kbd_class_value = null_to_empty(!/*CTRL*/
|
|
ctx[8] ? "disabled" : "") + " svelte-1xi2oy8");
|
|
},
|
|
m(target, anchor) {
|
|
insert(target, kbd, anchor);
|
|
append(kbd, t);
|
|
if (!mounted) {
|
|
dispose = listen(
|
|
kbd,
|
|
"click",
|
|
/*toggleCtrl*/
|
|
ctx[13]
|
|
);
|
|
mounted = true;
|
|
}
|
|
},
|
|
p(ctx2, dirty) {
|
|
if (dirty & /*CTRL*/
|
|
256 && kbd_class_value !== (kbd_class_value = null_to_empty(!/*CTRL*/
|
|
ctx2[8] ? "disabled" : "") + " svelte-1xi2oy8")) {
|
|
attr(kbd, "class", kbd_class_value);
|
|
}
|
|
},
|
|
d(detaching) {
|
|
if (detaching) {
|
|
detach(kbd);
|
|
}
|
|
mounted = false;
|
|
dispose();
|
|
}
|
|
};
|
|
}
|
|
function create_fragment82(ctx) {
|
|
let div3;
|
|
let editeditorstate;
|
|
let t0;
|
|
let div1;
|
|
let div0;
|
|
let t1;
|
|
let kbd0;
|
|
let t2;
|
|
let kbd0_class_value;
|
|
let t3;
|
|
let kbd1;
|
|
let t4_value = "Alt" /* Alt */ + "";
|
|
let t4;
|
|
let kbd1_class_value;
|
|
let t5;
|
|
let kbd2;
|
|
let t6_value = "Shift" /* Shift */ + "";
|
|
let t6;
|
|
let kbd2_class_value;
|
|
let t7;
|
|
let input;
|
|
let input_placeholder_value;
|
|
let t8;
|
|
let div2;
|
|
let button0;
|
|
let x;
|
|
let button0_aria_label_value;
|
|
let t9;
|
|
let button1;
|
|
let rotateccw;
|
|
let button1_aria_label_value;
|
|
let button1_disabled_value;
|
|
let current;
|
|
let mounted;
|
|
let dispose;
|
|
editeditorstate = new edit_editor_state_default({
|
|
props: {
|
|
hotkey: (
|
|
/*hotkey*/
|
|
ctx[0]
|
|
),
|
|
commandName: (
|
|
/*commandName*/
|
|
ctx[1]
|
|
),
|
|
isPrimary: (
|
|
/*isPrimary*/
|
|
ctx[2]
|
|
)
|
|
}
|
|
});
|
|
let if_block = isMacLike && create_if_block17(ctx);
|
|
x = new x_default({ props: { class: "svg-icon", size: 8 } });
|
|
rotateccw = new rotate_ccw_default({ props: { class: "svg-icon", size: 8 } });
|
|
return {
|
|
c() {
|
|
div3 = element("div");
|
|
create_component(editeditorstate.$$.fragment);
|
|
t0 = space();
|
|
div1 = element("div");
|
|
div0 = element("div");
|
|
if (if_block)
|
|
if_block.c();
|
|
t1 = space();
|
|
kbd0 = element("kbd");
|
|
t2 = text(modKey);
|
|
t3 = space();
|
|
kbd1 = element("kbd");
|
|
t4 = text(t4_value);
|
|
t5 = space();
|
|
kbd2 = element("kbd");
|
|
t6 = text(t6_value);
|
|
t7 = space();
|
|
input = element("input");
|
|
t8 = space();
|
|
div2 = element("div");
|
|
button0 = element("button");
|
|
create_component(x.$$.fragment);
|
|
t9 = space();
|
|
button1 = element("button");
|
|
create_component(rotateccw.$$.fragment);
|
|
attr(kbd0, "class", kbd0_class_value = null_to_empty(!/*MOD*/
|
|
ctx[5] ? "disabled" : "") + " svelte-1xi2oy8");
|
|
attr(kbd1, "class", kbd1_class_value = null_to_empty(!/*ALT*/
|
|
ctx[7] ? "disabled" : "") + " svelte-1xi2oy8");
|
|
attr(kbd2, "class", kbd2_class_value = null_to_empty(!/*SHIFT*/
|
|
ctx[6] ? "disabled" : "") + " svelte-1xi2oy8");
|
|
attr(div0, "class", "modifiers svelte-1xi2oy8");
|
|
attr(input, "class", "search-input input hotkey-key svelte-1xi2oy8");
|
|
attr(input, "placeholder", input_placeholder_value = "Key");
|
|
attr(input, "spellcheck", "false");
|
|
attr(input, "type", "text");
|
|
attr(div1, "class", "hotkey-container svelte-1xi2oy8");
|
|
attr(button0, "aria-label", button0_aria_label_value = lang.modals_hk_editor_cancel);
|
|
attr(button0, "class", "hotkey-button svelte-1xi2oy8");
|
|
attr(button1, "aria-label", button1_aria_label_value = lang.settings_reset);
|
|
attr(button1, "class", "hotkey-button svelte-1xi2oy8");
|
|
button1.disabled = button1_disabled_value = /*hotkey*/
|
|
ctx[0].key.length > 0 && !/*hotkey*/
|
|
ctx[0].isCustom;
|
|
attr(div2, "class", "save-and-cancel-buttons svelte-1xi2oy8");
|
|
attr(div3, "class", "container svelte-1xi2oy8");
|
|
},
|
|
m(target, anchor) {
|
|
insert(target, div3, anchor);
|
|
mount_component(editeditorstate, div3, null);
|
|
append(div3, t0);
|
|
append(div3, div1);
|
|
append(div1, div0);
|
|
if (if_block)
|
|
if_block.m(div0, null);
|
|
append(div0, t1);
|
|
append(div0, kbd0);
|
|
append(kbd0, t2);
|
|
append(div0, t3);
|
|
append(div0, kbd1);
|
|
append(kbd1, t4);
|
|
append(div0, t5);
|
|
append(div0, kbd2);
|
|
append(kbd2, t6);
|
|
append(div1, t7);
|
|
append(div1, input);
|
|
set_input_value(
|
|
input,
|
|
/*key*/
|
|
ctx[4]
|
|
);
|
|
append(div3, t8);
|
|
append(div3, div2);
|
|
append(div2, button0);
|
|
mount_component(x, button0, null);
|
|
append(div2, t9);
|
|
append(div2, button1);
|
|
mount_component(rotateccw, button1, null);
|
|
current = true;
|
|
if (!mounted) {
|
|
dispose = [
|
|
listen(
|
|
kbd0,
|
|
"click",
|
|
/*toggleMod*/
|
|
ctx[10]
|
|
),
|
|
listen(
|
|
kbd1,
|
|
"click",
|
|
/*toggleAlt*/
|
|
ctx[12]
|
|
),
|
|
listen(
|
|
kbd2,
|
|
"click",
|
|
/*toggleShift*/
|
|
ctx[11]
|
|
),
|
|
listen(
|
|
input,
|
|
"input",
|
|
/*input_input_handler*/
|
|
ctx[15]
|
|
),
|
|
listen(
|
|
input,
|
|
"keydown",
|
|
/*onKeyDown*/
|
|
ctx[9]
|
|
),
|
|
listen(button0, "click", function() {
|
|
if (is_function(
|
|
/*onCancel*/
|
|
ctx[3]
|
|
))
|
|
ctx[3].apply(this, arguments);
|
|
}),
|
|
listen(
|
|
button1,
|
|
"click",
|
|
/*reset*/
|
|
ctx[14]
|
|
)
|
|
];
|
|
mounted = true;
|
|
}
|
|
},
|
|
p(new_ctx, [dirty]) {
|
|
ctx = new_ctx;
|
|
const editeditorstate_changes = {};
|
|
if (dirty & /*hotkey*/
|
|
1)
|
|
editeditorstate_changes.hotkey = /*hotkey*/
|
|
ctx[0];
|
|
if (dirty & /*commandName*/
|
|
2)
|
|
editeditorstate_changes.commandName = /*commandName*/
|
|
ctx[1];
|
|
if (dirty & /*isPrimary*/
|
|
4)
|
|
editeditorstate_changes.isPrimary = /*isPrimary*/
|
|
ctx[2];
|
|
editeditorstate.$set(editeditorstate_changes);
|
|
if (isMacLike)
|
|
if_block.p(ctx, dirty);
|
|
if (!current || dirty & /*MOD*/
|
|
32 && kbd0_class_value !== (kbd0_class_value = null_to_empty(!/*MOD*/
|
|
ctx[5] ? "disabled" : "") + " svelte-1xi2oy8")) {
|
|
attr(kbd0, "class", kbd0_class_value);
|
|
}
|
|
if (!current || dirty & /*ALT*/
|
|
128 && kbd1_class_value !== (kbd1_class_value = null_to_empty(!/*ALT*/
|
|
ctx[7] ? "disabled" : "") + " svelte-1xi2oy8")) {
|
|
attr(kbd1, "class", kbd1_class_value);
|
|
}
|
|
if (!current || dirty & /*SHIFT*/
|
|
64 && kbd2_class_value !== (kbd2_class_value = null_to_empty(!/*SHIFT*/
|
|
ctx[6] ? "disabled" : "") + " svelte-1xi2oy8")) {
|
|
attr(kbd2, "class", kbd2_class_value);
|
|
}
|
|
if (dirty & /*key*/
|
|
16 && input.value !== /*key*/
|
|
ctx[4]) {
|
|
set_input_value(
|
|
input,
|
|
/*key*/
|
|
ctx[4]
|
|
);
|
|
}
|
|
if (!current || dirty & /*hotkey*/
|
|
1 && button1_disabled_value !== (button1_disabled_value = /*hotkey*/
|
|
ctx[0].key.length > 0 && !/*hotkey*/
|
|
ctx[0].isCustom)) {
|
|
button1.disabled = button1_disabled_value;
|
|
}
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(editeditorstate.$$.fragment, local);
|
|
transition_in(x.$$.fragment, local);
|
|
transition_in(rotateccw.$$.fragment, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(editeditorstate.$$.fragment, local);
|
|
transition_out(x.$$.fragment, local);
|
|
transition_out(rotateccw.$$.fragment, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
if (detaching) {
|
|
detach(div3);
|
|
}
|
|
destroy_component(editeditorstate);
|
|
if (if_block)
|
|
if_block.d();
|
|
destroy_component(x);
|
|
destroy_component(rotateccw);
|
|
mounted = false;
|
|
run_all(dispose);
|
|
}
|
|
};
|
|
}
|
|
function instance79($$self, $$props, $$invalidate) {
|
|
let { hotkey } = $$props;
|
|
let { commandName } = $$props;
|
|
let { isPrimary } = $$props;
|
|
let { onCancel } = $$props;
|
|
const view = getView();
|
|
let key = hotkey.key;
|
|
let MOD = hotkey.modifiers.includes("Mod");
|
|
let SHIFT = hotkey.modifiers.includes("Shift");
|
|
let ALT = hotkey.modifiers.includes("Alt");
|
|
let CTRL = hotkey.modifiers.includes("Ctrl");
|
|
const onKeyDown = (e) => {
|
|
e.preventDefault();
|
|
if (e.shiftKey || e.ctrlKey || e.altKey || e.metaKey)
|
|
return;
|
|
if (e.key === " " || e.key === "META")
|
|
return;
|
|
$$invalidate(4, key = e.key);
|
|
save();
|
|
};
|
|
const toggleMod = () => {
|
|
$$invalidate(5, MOD = !MOD);
|
|
save();
|
|
};
|
|
const toggleShift = () => {
|
|
$$invalidate(6, SHIFT = !SHIFT);
|
|
save();
|
|
};
|
|
const toggleAlt = () => {
|
|
$$invalidate(7, ALT = !ALT);
|
|
save();
|
|
};
|
|
const toggleCtrl = () => {
|
|
$$invalidate(8, CTRL = !CTRL);
|
|
save();
|
|
};
|
|
const save = () => {
|
|
let modifiers = [];
|
|
if (MOD)
|
|
modifiers.push("Mod");
|
|
if (SHIFT)
|
|
modifiers.push("Shift");
|
|
if (ALT)
|
|
modifiers.push("Alt");
|
|
if (CTRL && isMacLike)
|
|
modifiers.push("Ctrl");
|
|
view.plugin.settings.dispatch({
|
|
type: "settings/hotkeys/set-custom-hotkey",
|
|
payload: {
|
|
hotkey: { key, modifiers },
|
|
type: isPrimary ? "primary" : "secondary",
|
|
command: commandName
|
|
}
|
|
});
|
|
};
|
|
const reset = () => {
|
|
view.plugin.settings.dispatch({
|
|
type: "settings/hotkeys/reset-custom-hotkey",
|
|
payload: {
|
|
command: commandName,
|
|
type: isPrimary ? "primary" : "secondary"
|
|
}
|
|
});
|
|
setTimeout(() => {
|
|
$$invalidate(5, MOD = hotkey.modifiers.includes("Mod"));
|
|
$$invalidate(7, ALT = hotkey.modifiers.includes("Alt"));
|
|
$$invalidate(6, SHIFT = hotkey.modifiers.includes("Shift"));
|
|
$$invalidate(8, CTRL = hotkey.modifiers.includes("Ctrl"));
|
|
$$invalidate(4, key = hotkey.key);
|
|
});
|
|
focusContainer(view);
|
|
};
|
|
function input_input_handler() {
|
|
key = this.value;
|
|
$$invalidate(4, key);
|
|
}
|
|
$$self.$$set = ($$props2) => {
|
|
if ("hotkey" in $$props2)
|
|
$$invalidate(0, hotkey = $$props2.hotkey);
|
|
if ("commandName" in $$props2)
|
|
$$invalidate(1, commandName = $$props2.commandName);
|
|
if ("isPrimary" in $$props2)
|
|
$$invalidate(2, isPrimary = $$props2.isPrimary);
|
|
if ("onCancel" in $$props2)
|
|
$$invalidate(3, onCancel = $$props2.onCancel);
|
|
};
|
|
return [
|
|
hotkey,
|
|
commandName,
|
|
isPrimary,
|
|
onCancel,
|
|
key,
|
|
MOD,
|
|
SHIFT,
|
|
ALT,
|
|
CTRL,
|
|
onKeyDown,
|
|
toggleMod,
|
|
toggleShift,
|
|
toggleAlt,
|
|
toggleCtrl,
|
|
reset,
|
|
input_input_handler
|
|
];
|
|
}
|
|
var Edit_hotkey = class extends SvelteComponent {
|
|
constructor(options) {
|
|
super();
|
|
init(
|
|
this,
|
|
options,
|
|
instance79,
|
|
create_fragment82,
|
|
safe_not_equal,
|
|
{
|
|
hotkey: 0,
|
|
commandName: 1,
|
|
isPrimary: 2,
|
|
onCancel: 3
|
|
},
|
|
add_css24
|
|
);
|
|
}
|
|
};
|
|
var edit_hotkey_default = Edit_hotkey;
|
|
|
|
// src/view/components/container/controls-bar/modals/hotkeys/components/hotkey/hotkey.svelte
|
|
var import_classnames4 = __toESM(require_classnames());
|
|
function add_css25(target) {
|
|
append_styles(target, "svelte-1ctyvzu", ".hotkey.svelte-1ctyvzu{padding:5px;background-color:var(--color-base-50);display:flex;gap:5px;border-radius:3px;width:fit-content;position:relative}.editing.svelte-1ctyvzu{background-color:var(--color-base-60)}.hotkey--is-custom.svelte-1ctyvzu{background-color:var(--custom-hotkey-bg)}.obsidian-conflict.svelte-1ctyvzu{background-color:var(--color-red)}.plugin-conflict.svelte-1ctyvzu{background-color:var(--color-orange)}");
|
|
}
|
|
function create_else_block8(ctx) {
|
|
let renderhotkey;
|
|
let current;
|
|
renderhotkey = new render_hotkey_default({
|
|
props: {
|
|
hotkey: (
|
|
/*hotkey*/
|
|
ctx[0]
|
|
),
|
|
enableEditing: (
|
|
/*func_1*/
|
|
ctx[7]
|
|
),
|
|
makeBlank: (
|
|
/*makeBlank*/
|
|
ctx[5]
|
|
)
|
|
}
|
|
});
|
|
return {
|
|
c() {
|
|
create_component(renderhotkey.$$.fragment);
|
|
},
|
|
m(target, anchor) {
|
|
mount_component(renderhotkey, target, anchor);
|
|
current = true;
|
|
},
|
|
p(ctx2, dirty) {
|
|
const renderhotkey_changes = {};
|
|
if (dirty & /*hotkey*/
|
|
1)
|
|
renderhotkey_changes.hotkey = /*hotkey*/
|
|
ctx2[0];
|
|
renderhotkey.$set(renderhotkey_changes);
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(renderhotkey.$$.fragment, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(renderhotkey.$$.fragment, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
destroy_component(renderhotkey, detaching);
|
|
}
|
|
};
|
|
}
|
|
function create_if_block18(ctx) {
|
|
let edithotkey;
|
|
let current;
|
|
edithotkey = new edit_hotkey_default({
|
|
props: {
|
|
hotkey: (
|
|
/*hotkey*/
|
|
ctx[0]
|
|
),
|
|
onCancel: (
|
|
/*func*/
|
|
ctx[6]
|
|
),
|
|
isPrimary: (
|
|
/*isPrimary*/
|
|
ctx[2]
|
|
),
|
|
commandName: (
|
|
/*commandName*/
|
|
ctx[1]
|
|
)
|
|
}
|
|
});
|
|
return {
|
|
c() {
|
|
create_component(edithotkey.$$.fragment);
|
|
},
|
|
m(target, anchor) {
|
|
mount_component(edithotkey, target, anchor);
|
|
current = true;
|
|
},
|
|
p(ctx2, dirty) {
|
|
const edithotkey_changes = {};
|
|
if (dirty & /*hotkey*/
|
|
1)
|
|
edithotkey_changes.hotkey = /*hotkey*/
|
|
ctx2[0];
|
|
if (dirty & /*isPrimary*/
|
|
4)
|
|
edithotkey_changes.isPrimary = /*isPrimary*/
|
|
ctx2[2];
|
|
if (dirty & /*commandName*/
|
|
2)
|
|
edithotkey_changes.commandName = /*commandName*/
|
|
ctx2[1];
|
|
edithotkey.$set(edithotkey_changes);
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(edithotkey.$$.fragment, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(edithotkey.$$.fragment, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
destroy_component(edithotkey, detaching);
|
|
}
|
|
};
|
|
}
|
|
function create_fragment83(ctx) {
|
|
let div;
|
|
let current_block_type_index;
|
|
let if_block;
|
|
let div_aria_label_value;
|
|
let div_class_value;
|
|
let current;
|
|
const if_block_creators = [create_if_block18, create_else_block8];
|
|
const if_blocks = [];
|
|
function select_block_type(ctx2, dirty) {
|
|
if (
|
|
/*$editing*/
|
|
ctx2[3]
|
|
)
|
|
return 0;
|
|
return 1;
|
|
}
|
|
current_block_type_index = select_block_type(ctx, -1);
|
|
if_block = if_blocks[current_block_type_index] = if_block_creators[current_block_type_index](ctx);
|
|
return {
|
|
c() {
|
|
div = element("div");
|
|
if_block.c();
|
|
attr(div, "aria-label", div_aria_label_value = /*hotkey*/
|
|
ctx[0].obsidianConflict ? `Used by "${/*hotkey*/
|
|
ctx[0].obsidianConflict}"` : (
|
|
/*hotkey*/
|
|
ctx[0].pluginConflict ? `Used by "${/*hotkey*/
|
|
ctx[0].pluginConflict}"` : ""
|
|
));
|
|
attr(div, "class", div_class_value = null_to_empty((0, import_classnames4.default)(
|
|
"hotkey",
|
|
/*hotkey*/
|
|
ctx[0].obsidianConflict && "obsidian-conflict",
|
|
/*hotkey*/
|
|
ctx[0].pluginConflict && "plugin-conflict",
|
|
/*hotkey*/
|
|
ctx[0].isCustom && "hotkey--is-custom",
|
|
/*$editing*/
|
|
ctx[3] && "editing"
|
|
)) + " svelte-1ctyvzu");
|
|
},
|
|
m(target, anchor) {
|
|
insert(target, div, anchor);
|
|
if_blocks[current_block_type_index].m(div, null);
|
|
current = true;
|
|
},
|
|
p(ctx2, [dirty]) {
|
|
let previous_block_index = current_block_type_index;
|
|
current_block_type_index = select_block_type(ctx2, dirty);
|
|
if (current_block_type_index === previous_block_index) {
|
|
if_blocks[current_block_type_index].p(ctx2, dirty);
|
|
} else {
|
|
group_outros();
|
|
transition_out(if_blocks[previous_block_index], 1, 1, () => {
|
|
if_blocks[previous_block_index] = null;
|
|
});
|
|
check_outros();
|
|
if_block = if_blocks[current_block_type_index];
|
|
if (!if_block) {
|
|
if_block = if_blocks[current_block_type_index] = if_block_creators[current_block_type_index](ctx2);
|
|
if_block.c();
|
|
} else {
|
|
if_block.p(ctx2, dirty);
|
|
}
|
|
transition_in(if_block, 1);
|
|
if_block.m(div, null);
|
|
}
|
|
if (!current || dirty & /*hotkey*/
|
|
1 && div_aria_label_value !== (div_aria_label_value = /*hotkey*/
|
|
ctx2[0].obsidianConflict ? `Used by "${/*hotkey*/
|
|
ctx2[0].obsidianConflict}"` : (
|
|
/*hotkey*/
|
|
ctx2[0].pluginConflict ? `Used by "${/*hotkey*/
|
|
ctx2[0].pluginConflict}"` : ""
|
|
))) {
|
|
attr(div, "aria-label", div_aria_label_value);
|
|
}
|
|
if (!current || dirty & /*hotkey, $editing*/
|
|
9 && div_class_value !== (div_class_value = null_to_empty((0, import_classnames4.default)(
|
|
"hotkey",
|
|
/*hotkey*/
|
|
ctx2[0].obsidianConflict && "obsidian-conflict",
|
|
/*hotkey*/
|
|
ctx2[0].pluginConflict && "plugin-conflict",
|
|
/*hotkey*/
|
|
ctx2[0].isCustom && "hotkey--is-custom",
|
|
/*$editing*/
|
|
ctx2[3] && "editing"
|
|
)) + " svelte-1ctyvzu")) {
|
|
attr(div, "class", div_class_value);
|
|
}
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(if_block);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(if_block);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
if (detaching) {
|
|
detach(div);
|
|
}
|
|
if_blocks[current_block_type_index].d();
|
|
}
|
|
};
|
|
}
|
|
function instance80($$self, $$props, $$invalidate) {
|
|
let $editing;
|
|
let { hotkey } = $$props;
|
|
let { commandName } = $$props;
|
|
let { isPrimary } = $$props;
|
|
const view = getView();
|
|
const editing = writable(false);
|
|
component_subscribe($$self, editing, (value) => $$invalidate(3, $editing = value));
|
|
onMount(() => {
|
|
let initialRun = true;
|
|
return editing.subscribe(() => {
|
|
if (initialRun) {
|
|
initialRun = false;
|
|
} else {
|
|
focusContainer(view);
|
|
}
|
|
});
|
|
});
|
|
const makeBlank = () => {
|
|
view.plugin.settings.dispatch({
|
|
type: "settings/hotkeys/set-blank",
|
|
payload: {
|
|
command: commandName,
|
|
type: isPrimary ? "primary" : "secondary"
|
|
}
|
|
});
|
|
};
|
|
const func2 = () => editing.set(false);
|
|
const func_1 = () => editing.set(true);
|
|
$$self.$$set = ($$props2) => {
|
|
if ("hotkey" in $$props2)
|
|
$$invalidate(0, hotkey = $$props2.hotkey);
|
|
if ("commandName" in $$props2)
|
|
$$invalidate(1, commandName = $$props2.commandName);
|
|
if ("isPrimary" in $$props2)
|
|
$$invalidate(2, isPrimary = $$props2.isPrimary);
|
|
};
|
|
return [hotkey, commandName, isPrimary, $editing, editing, makeBlank, func2, func_1];
|
|
}
|
|
var Hotkey = class extends SvelteComponent {
|
|
constructor(options) {
|
|
super();
|
|
init(this, options, instance80, create_fragment83, safe_not_equal, { hotkey: 0, commandName: 1, isPrimary: 2 }, add_css25);
|
|
}
|
|
};
|
|
var hotkey_default = Hotkey;
|
|
|
|
// src/lang/hotkeys-lang.ts
|
|
var hotkeysLang = {
|
|
save_changes_and_exit_card: lang.hk_save_changes,
|
|
enable_edit_mode: lang.hk_enable_edit_mode,
|
|
enable_edit_mode_and_place_cursor_at_start: lang.hk_enable_edit_mode_and_place_cursor_at_start,
|
|
enable_edit_mode_and_place_cursor_at_end: lang.hk_enable_edit_mode_and_place_cursor_at_end,
|
|
disable_edit_mode: lang.hk_disable_edit_mode,
|
|
add_child: lang.card_btn_add_child_card,
|
|
add_below: lang.card_btn_add_card_below,
|
|
add_above: lang.card_btn_add_card_above,
|
|
add_child_and_split: lang.hk_add_child_and_split,
|
|
add_below_and_split: lang.hk_add_below_and_split,
|
|
add_above_and_split: lang.hk_add_above_and_split,
|
|
delete_card: lang.hk_delete_card,
|
|
go_up: lang.hk_go_up,
|
|
go_down: lang.hk_go_down,
|
|
go_right: lang.hk_go_right,
|
|
go_left: lang.hk_go_Left,
|
|
undo_change: lang.hk_undo_change,
|
|
redo_change: lang.hk_redo_change,
|
|
move_node_up: lang.hk_move_node_up,
|
|
move_node_down: lang.hk_move_node_down,
|
|
move_node_right: lang.hk_move_node_right,
|
|
move_node_left: lang.hk_move_node_left,
|
|
merge_with_node_above: lang.hk_merge_with_node_above,
|
|
merge_with_node_below: lang.hk_merge_with_node_below,
|
|
toggle_search_input: lang.hk_toggle_search_input,
|
|
go_to_beginning_of_group: lang.hk_go_to_beginning_of_group,
|
|
go_to_end_of_group: lang.hk_go_to_end_of_group,
|
|
go_to_beginning_of_column: lang.hk_go_to_beginning_of_column,
|
|
go_to_end_of_column: lang.hk_go_to_end_of_column,
|
|
select_parent: lang.hk_select_parent,
|
|
copy_node: lang.hk_copy_node,
|
|
copy_node_unformatted: lang.hk_copy_node_unformatted,
|
|
copy_node_without_subitems: lang.hk_copy_node_without_subitems,
|
|
cut_node: lang.hk_cut_node,
|
|
paste_node: lang.hk_paste_node,
|
|
navigate_back: lang.hk_navigate_back,
|
|
navigate_forward: lang.hk_navigate_forward,
|
|
navigate_to_next_node: lang.hk_navigate_to_next_node,
|
|
navigate_to_previous_node: lang.hk_navigate_to_previous_node,
|
|
extend_select_up: lang.hk_extend_select_up,
|
|
extend_select_down: lang.hk_extend_select_down,
|
|
extend_select_to_start_of_group: lang.hk_extend_select_to_start_of_group,
|
|
extend_select_to_end_of_group: lang.hk_extend_select_to_end_of_group,
|
|
extend_select_to_start_of_column: lang.hk_extend_select_to_start_of_column,
|
|
extend_select_to_end_of_column: lang.hk_extend_select_to_end_of_column,
|
|
scroll_left: lang.hk_scroll_left,
|
|
scroll_right: lang.hk_scroll_right,
|
|
scroll_up: lang.hk_scroll_up,
|
|
scroll_down: lang.hk_scroll_down,
|
|
align_branch: lang.hk_align_branch,
|
|
zoom_in: lang.hk_zoom_in,
|
|
zoom_out: lang.hk_zoom_out,
|
|
zoom_reset: lang.hk_zoom_reset,
|
|
toggle_collapse: lang.hk_outline_toggle_collapse,
|
|
toggle_collapse_all: lang.hk_outline_toggle_collapse_all,
|
|
toggle_outline_mode: lang.hk_toggle_outline_mode
|
|
};
|
|
|
|
// src/view/components/container/controls-bar/modals/hotkeys/components/helpers/get-dynamic-label.ts
|
|
var HotkeysThatBehaveDifferentlyInOutlineMode = /* @__PURE__ */ new Set(["go_down", "go_up", "go_left", "go_right"]);
|
|
var getDynamicLabel = (state2, name) => {
|
|
if (state2.outlineMode) {
|
|
if (name === "go_down") {
|
|
return hotkeysLang["navigate_to_previous_node"];
|
|
} else if (name === "go_up") {
|
|
return hotkeysLang["navigate_to_next_node"];
|
|
} else if (name === "go_left") {
|
|
return lang.hk_select_previous_sibling;
|
|
} else if (name === "go_right") {
|
|
return lang.hk_select_next_sibling;
|
|
}
|
|
}
|
|
return hotkeysLang[name];
|
|
};
|
|
|
|
// src/view/components/container/controls-bar/modals/hotkeys/components/command.svelte
|
|
function add_css26(target) {
|
|
append_styles(target, "svelte-1qxnonu", ".command.svelte-1qxnonu{padding:8px;display:flex;align-items:center;justify-content:space-between;border-radius:4px;gap:8px;background-color:var(--color-base-30);flex-wrap:wrap}.hotkeys.svelte-1qxnonu{display:flex;flex-direction:column;align-items:end;gap:5px}.label.svelte-1qxnonu{font-size:14px;color:var(--text-normal);position:relative;display:flex;align-items:center;gap:5px}.info-icon.svelte-1qxnonu{color:#4973A1FF;margin-bottom:-4px;& svg {\n width: 12px;\n height: 12px;\n }}");
|
|
}
|
|
function get_each_context8(ctx, list, i) {
|
|
const child_ctx = ctx.slice();
|
|
child_ctx[2] = list[i];
|
|
child_ctx[4] = i;
|
|
return child_ctx;
|
|
}
|
|
function create_if_block19(ctx) {
|
|
let span;
|
|
let info;
|
|
let current;
|
|
info = new info_default({ props: { class: "svg-icon" } });
|
|
return {
|
|
c() {
|
|
span = element("span");
|
|
create_component(info.$$.fragment);
|
|
attr(span, "class", "info-icon svelte-1qxnonu");
|
|
attr(span, "aria-label", "Behaves differently in outline mode");
|
|
},
|
|
m(target, anchor) {
|
|
insert(target, span, anchor);
|
|
mount_component(info, span, null);
|
|
current = true;
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(info.$$.fragment, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(info.$$.fragment, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
if (detaching) {
|
|
detach(span);
|
|
}
|
|
destroy_component(info);
|
|
}
|
|
};
|
|
}
|
|
function create_each_block8(ctx) {
|
|
let hotkey_1;
|
|
let current;
|
|
hotkey_1 = new hotkey_default({
|
|
props: {
|
|
hotkey: (
|
|
/*hotkey*/
|
|
ctx[2]
|
|
),
|
|
commandName: (
|
|
/*commandHotkeys*/
|
|
ctx[0].name
|
|
),
|
|
isPrimary: (
|
|
/*i*/
|
|
ctx[4] === 0
|
|
)
|
|
}
|
|
});
|
|
return {
|
|
c() {
|
|
create_component(hotkey_1.$$.fragment);
|
|
},
|
|
m(target, anchor) {
|
|
mount_component(hotkey_1, target, anchor);
|
|
current = true;
|
|
},
|
|
p(ctx2, dirty) {
|
|
const hotkey_1_changes = {};
|
|
if (dirty & /*commandHotkeys*/
|
|
1)
|
|
hotkey_1_changes.hotkey = /*hotkey*/
|
|
ctx2[2];
|
|
if (dirty & /*commandHotkeys*/
|
|
1)
|
|
hotkey_1_changes.commandName = /*commandHotkeys*/
|
|
ctx2[0].name;
|
|
hotkey_1.$set(hotkey_1_changes);
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(hotkey_1.$$.fragment, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(hotkey_1.$$.fragment, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
destroy_component(hotkey_1, detaching);
|
|
}
|
|
};
|
|
}
|
|
function create_fragment84(ctx) {
|
|
let div1;
|
|
let span;
|
|
let t0_value = getDynamicLabel(
|
|
/*labelState*/
|
|
ctx[1],
|
|
/*commandHotkeys*/
|
|
ctx[0].name
|
|
) + "";
|
|
let t0;
|
|
let t1;
|
|
let show_if = HotkeysThatBehaveDifferentlyInOutlineMode.has(
|
|
/*commandHotkeys*/
|
|
ctx[0].name
|
|
);
|
|
let t2;
|
|
let div0;
|
|
let current;
|
|
let if_block = show_if && create_if_block19(ctx);
|
|
let each_value = ensure_array_like(
|
|
/*commandHotkeys*/
|
|
ctx[0].hotkeys
|
|
);
|
|
let each_blocks = [];
|
|
for (let i = 0; i < each_value.length; i += 1) {
|
|
each_blocks[i] = create_each_block8(get_each_context8(ctx, each_value, i));
|
|
}
|
|
const out = (i) => transition_out(each_blocks[i], 1, 1, () => {
|
|
each_blocks[i] = null;
|
|
});
|
|
return {
|
|
c() {
|
|
div1 = element("div");
|
|
span = element("span");
|
|
t0 = text(t0_value);
|
|
t1 = space();
|
|
if (if_block)
|
|
if_block.c();
|
|
t2 = space();
|
|
div0 = element("div");
|
|
for (let i = 0; i < each_blocks.length; i += 1) {
|
|
each_blocks[i].c();
|
|
}
|
|
attr(span, "class", "label svelte-1qxnonu");
|
|
attr(div0, "class", "hotkeys svelte-1qxnonu");
|
|
attr(div1, "class", "command svelte-1qxnonu");
|
|
},
|
|
m(target, anchor) {
|
|
insert(target, div1, anchor);
|
|
append(div1, span);
|
|
append(span, t0);
|
|
append(span, t1);
|
|
if (if_block)
|
|
if_block.m(span, null);
|
|
append(div1, t2);
|
|
append(div1, div0);
|
|
for (let i = 0; i < each_blocks.length; i += 1) {
|
|
if (each_blocks[i]) {
|
|
each_blocks[i].m(div0, null);
|
|
}
|
|
}
|
|
current = true;
|
|
},
|
|
p(ctx2, [dirty]) {
|
|
if ((!current || dirty & /*labelState, commandHotkeys*/
|
|
3) && t0_value !== (t0_value = getDynamicLabel(
|
|
/*labelState*/
|
|
ctx2[1],
|
|
/*commandHotkeys*/
|
|
ctx2[0].name
|
|
) + ""))
|
|
set_data(t0, t0_value);
|
|
if (dirty & /*commandHotkeys*/
|
|
1)
|
|
show_if = HotkeysThatBehaveDifferentlyInOutlineMode.has(
|
|
/*commandHotkeys*/
|
|
ctx2[0].name
|
|
);
|
|
if (show_if) {
|
|
if (if_block) {
|
|
if (dirty & /*commandHotkeys*/
|
|
1) {
|
|
transition_in(if_block, 1);
|
|
}
|
|
} else {
|
|
if_block = create_if_block19(ctx2);
|
|
if_block.c();
|
|
transition_in(if_block, 1);
|
|
if_block.m(span, null);
|
|
}
|
|
} else if (if_block) {
|
|
group_outros();
|
|
transition_out(if_block, 1, 1, () => {
|
|
if_block = null;
|
|
});
|
|
check_outros();
|
|
}
|
|
if (dirty & /*commandHotkeys*/
|
|
1) {
|
|
each_value = ensure_array_like(
|
|
/*commandHotkeys*/
|
|
ctx2[0].hotkeys
|
|
);
|
|
let i;
|
|
for (i = 0; i < each_value.length; i += 1) {
|
|
const child_ctx = get_each_context8(ctx2, each_value, i);
|
|
if (each_blocks[i]) {
|
|
each_blocks[i].p(child_ctx, dirty);
|
|
transition_in(each_blocks[i], 1);
|
|
} else {
|
|
each_blocks[i] = create_each_block8(child_ctx);
|
|
each_blocks[i].c();
|
|
transition_in(each_blocks[i], 1);
|
|
each_blocks[i].m(div0, null);
|
|
}
|
|
}
|
|
group_outros();
|
|
for (i = each_value.length; i < each_blocks.length; i += 1) {
|
|
out(i);
|
|
}
|
|
check_outros();
|
|
}
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(if_block);
|
|
for (let i = 0; i < each_value.length; i += 1) {
|
|
transition_in(each_blocks[i]);
|
|
}
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(if_block);
|
|
each_blocks = each_blocks.filter(Boolean);
|
|
for (let i = 0; i < each_blocks.length; i += 1) {
|
|
transition_out(each_blocks[i]);
|
|
}
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
if (detaching) {
|
|
detach(div1);
|
|
}
|
|
if (if_block)
|
|
if_block.d();
|
|
destroy_each(each_blocks, detaching);
|
|
}
|
|
};
|
|
}
|
|
function instance81($$self, $$props, $$invalidate) {
|
|
let { commandHotkeys } = $$props;
|
|
let { labelState } = $$props;
|
|
$$self.$$set = ($$props2) => {
|
|
if ("commandHotkeys" in $$props2)
|
|
$$invalidate(0, commandHotkeys = $$props2.commandHotkeys);
|
|
if ("labelState" in $$props2)
|
|
$$invalidate(1, labelState = $$props2.labelState);
|
|
};
|
|
return [commandHotkeys, labelState];
|
|
}
|
|
var Command = class extends SvelteComponent {
|
|
constructor(options) {
|
|
super();
|
|
init(this, options, instance81, create_fragment84, safe_not_equal, { commandHotkeys: 0, labelState: 1 }, add_css26);
|
|
}
|
|
};
|
|
var command_default = Command;
|
|
|
|
// src/view/components/container/controls-bar/modals/hotkeys/group.svelte
|
|
function add_css27(target) {
|
|
append_styles(target, "svelte-1njqf5r", ".hotkey-group.svelte-1njqf5r{background-color:var(--background-secondary);padding:var(--size-4-2);border-radius:3px}.hotkeys-list.svelte-1njqf5r{display:flex;flex-direction:column;gap:var(--size-4-2);overflow-y:auto}.hotkey-group-name.svelte-1njqf5r{padding-bottom:10px;padding-left:5px;font-size:16px;color:var(--color-base-70)}");
|
|
}
|
|
function get_each_context9(ctx, list, i) {
|
|
const child_ctx = ctx.slice();
|
|
child_ctx[3] = list[i];
|
|
return child_ctx;
|
|
}
|
|
function create_if_block20(ctx) {
|
|
let hotkey;
|
|
let current;
|
|
hotkey = new command_default({
|
|
props: {
|
|
commandHotkeys: (
|
|
/*commandHotkeys*/
|
|
ctx[3]
|
|
),
|
|
labelState: (
|
|
/*labelState*/
|
|
ctx[1]
|
|
)
|
|
}
|
|
});
|
|
return {
|
|
c() {
|
|
create_component(hotkey.$$.fragment);
|
|
},
|
|
m(target, anchor) {
|
|
mount_component(hotkey, target, anchor);
|
|
current = true;
|
|
},
|
|
p(ctx2, dirty) {
|
|
const hotkey_changes = {};
|
|
if (dirty & /*group*/
|
|
1)
|
|
hotkey_changes.commandHotkeys = /*commandHotkeys*/
|
|
ctx2[3];
|
|
if (dirty & /*labelState*/
|
|
2)
|
|
hotkey_changes.labelState = /*labelState*/
|
|
ctx2[1];
|
|
hotkey.$set(hotkey_changes);
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(hotkey.$$.fragment, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(hotkey.$$.fragment, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
destroy_component(hotkey, detaching);
|
|
}
|
|
};
|
|
}
|
|
function create_each_block9(key_1, ctx) {
|
|
let first;
|
|
let if_block_anchor;
|
|
let current;
|
|
let if_block = !/*labelState*/
|
|
(ctx[1].outlineMode && /*commandHotkeys*/
|
|
(ctx[3].name === "navigate_to_next_node" || /*commandHotkeys*/
|
|
ctx[3].name === "navigate_to_previous_node")) && create_if_block20(ctx);
|
|
return {
|
|
key: key_1,
|
|
first: null,
|
|
c() {
|
|
first = empty();
|
|
if (if_block)
|
|
if_block.c();
|
|
if_block_anchor = empty();
|
|
this.first = first;
|
|
},
|
|
m(target, anchor) {
|
|
insert(target, first, anchor);
|
|
if (if_block)
|
|
if_block.m(target, anchor);
|
|
insert(target, if_block_anchor, anchor);
|
|
current = true;
|
|
},
|
|
p(new_ctx, dirty) {
|
|
ctx = new_ctx;
|
|
if (!/*labelState*/
|
|
(ctx[1].outlineMode && /*commandHotkeys*/
|
|
(ctx[3].name === "navigate_to_next_node" || /*commandHotkeys*/
|
|
ctx[3].name === "navigate_to_previous_node"))) {
|
|
if (if_block) {
|
|
if_block.p(ctx, dirty);
|
|
if (dirty & /*labelState, group*/
|
|
3) {
|
|
transition_in(if_block, 1);
|
|
}
|
|
} else {
|
|
if_block = create_if_block20(ctx);
|
|
if_block.c();
|
|
transition_in(if_block, 1);
|
|
if_block.m(if_block_anchor.parentNode, if_block_anchor);
|
|
}
|
|
} else if (if_block) {
|
|
group_outros();
|
|
transition_out(if_block, 1, 1, () => {
|
|
if_block = null;
|
|
});
|
|
check_outros();
|
|
}
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(if_block);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(if_block);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
if (detaching) {
|
|
detach(first);
|
|
detach(if_block_anchor);
|
|
}
|
|
if (if_block)
|
|
if_block.d(detaching);
|
|
}
|
|
};
|
|
}
|
|
function create_fragment85(ctx) {
|
|
let div2;
|
|
let div0;
|
|
let t0;
|
|
let t1;
|
|
let div1;
|
|
let each_blocks = [];
|
|
let each_1_lookup = /* @__PURE__ */ new Map();
|
|
let current;
|
|
let each_value = ensure_array_like(
|
|
/*group*/
|
|
ctx[0]
|
|
);
|
|
const get_key = (ctx2) => (
|
|
/*commandHotkeys*/
|
|
ctx2[3].name
|
|
);
|
|
for (let i = 0; i < each_value.length; i += 1) {
|
|
let child_ctx = get_each_context9(ctx, each_value, i);
|
|
let key = get_key(child_ctx);
|
|
each_1_lookup.set(key, each_blocks[i] = create_each_block9(key, child_ctx));
|
|
}
|
|
return {
|
|
c() {
|
|
div2 = element("div");
|
|
div0 = element("div");
|
|
t0 = text(
|
|
/*groupName*/
|
|
ctx[2]
|
|
);
|
|
t1 = space();
|
|
div1 = element("div");
|
|
for (let i = 0; i < each_blocks.length; i += 1) {
|
|
each_blocks[i].c();
|
|
}
|
|
attr(div0, "class", "hotkey-group-name svelte-1njqf5r");
|
|
attr(div1, "class", "hotkeys-list svelte-1njqf5r");
|
|
attr(div2, "class", "hotkey-group svelte-1njqf5r");
|
|
},
|
|
m(target, anchor) {
|
|
insert(target, div2, anchor);
|
|
append(div2, div0);
|
|
append(div0, t0);
|
|
append(div2, t1);
|
|
append(div2, div1);
|
|
for (let i = 0; i < each_blocks.length; i += 1) {
|
|
if (each_blocks[i]) {
|
|
each_blocks[i].m(div1, null);
|
|
}
|
|
}
|
|
current = true;
|
|
},
|
|
p(ctx2, [dirty]) {
|
|
if (!current || dirty & /*groupName*/
|
|
4)
|
|
set_data(
|
|
t0,
|
|
/*groupName*/
|
|
ctx2[2]
|
|
);
|
|
if (dirty & /*group, labelState*/
|
|
3) {
|
|
each_value = ensure_array_like(
|
|
/*group*/
|
|
ctx2[0]
|
|
);
|
|
group_outros();
|
|
each_blocks = update_keyed_each(each_blocks, dirty, get_key, 1, ctx2, each_value, each_1_lookup, div1, outro_and_destroy_block, create_each_block9, null, get_each_context9);
|
|
check_outros();
|
|
}
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
for (let i = 0; i < each_value.length; i += 1) {
|
|
transition_in(each_blocks[i]);
|
|
}
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
for (let i = 0; i < each_blocks.length; i += 1) {
|
|
transition_out(each_blocks[i]);
|
|
}
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
if (detaching) {
|
|
detach(div2);
|
|
}
|
|
for (let i = 0; i < each_blocks.length; i += 1) {
|
|
each_blocks[i].d();
|
|
}
|
|
}
|
|
};
|
|
}
|
|
function instance82($$self, $$props, $$invalidate) {
|
|
let { group } = $$props;
|
|
let { labelState } = $$props;
|
|
let { groupName } = $$props;
|
|
$$self.$$set = ($$props2) => {
|
|
if ("group" in $$props2)
|
|
$$invalidate(0, group = $$props2.group);
|
|
if ("labelState" in $$props2)
|
|
$$invalidate(1, labelState = $$props2.labelState);
|
|
if ("groupName" in $$props2)
|
|
$$invalidate(2, groupName = $$props2.groupName);
|
|
};
|
|
return [group, labelState, groupName];
|
|
}
|
|
var Group2 = class extends SvelteComponent {
|
|
constructor(options) {
|
|
super();
|
|
init(this, options, instance82, create_fragment85, safe_not_equal, { group: 0, labelState: 1, groupName: 2 }, add_css27);
|
|
}
|
|
};
|
|
var group_default2 = Group2;
|
|
|
|
// src/view/components/container/controls-bar/modals/hotkeys/front.svelte
|
|
function add_css28(target) {
|
|
append_styles(target, "svelte-105pskz", ".front.svelte-105pskz{display:flex;justify-content:space-between;align-items:center;width:100%}.search-input-container.svelte-105pskz{width:100%}");
|
|
}
|
|
function create_fragment86(ctx) {
|
|
let div2;
|
|
let div1;
|
|
let input;
|
|
let input_placeholder_value;
|
|
let t;
|
|
let div0;
|
|
let div0_aria_label_value;
|
|
let mounted;
|
|
let dispose;
|
|
return {
|
|
c() {
|
|
div2 = element("div");
|
|
div1 = element("div");
|
|
input = element("input");
|
|
t = space();
|
|
div0 = element("div");
|
|
attr(input, "class", "search-input");
|
|
attr(input, "enterkeyhint", "search");
|
|
attr(input, "placeholder", input_placeholder_value = lang.modals_hk_input_placeholder);
|
|
attr(input, "spellcheck", "false");
|
|
attr(input, "type", "search");
|
|
attr(div0, "aria-label", div0_aria_label_value = lang.tlb_search_clear);
|
|
attr(div0, "class", "search-input-clear-button");
|
|
attr(div1, "class", "search-input-container svelte-105pskz");
|
|
attr(div2, "class", "front svelte-105pskz");
|
|
},
|
|
m(target, anchor) {
|
|
insert(target, div2, anchor);
|
|
append(div2, div1);
|
|
append(div1, input);
|
|
set_input_value(
|
|
input,
|
|
/*searchTerm*/
|
|
ctx[0]
|
|
);
|
|
append(div1, t);
|
|
append(div1, div0);
|
|
if (!mounted) {
|
|
dispose = [
|
|
listen(
|
|
input,
|
|
"input",
|
|
/*input_input_handler*/
|
|
ctx[1]
|
|
),
|
|
listen(
|
|
div0,
|
|
"click",
|
|
/*click_handler*/
|
|
ctx[2]
|
|
)
|
|
];
|
|
mounted = true;
|
|
}
|
|
},
|
|
p(ctx2, [dirty]) {
|
|
if (dirty & /*searchTerm*/
|
|
1 && input.value !== /*searchTerm*/
|
|
ctx2[0]) {
|
|
set_input_value(
|
|
input,
|
|
/*searchTerm*/
|
|
ctx2[0]
|
|
);
|
|
}
|
|
},
|
|
i: noop,
|
|
o: noop,
|
|
d(detaching) {
|
|
if (detaching) {
|
|
detach(div2);
|
|
}
|
|
mounted = false;
|
|
run_all(dispose);
|
|
}
|
|
};
|
|
}
|
|
function instance83($$self, $$props, $$invalidate) {
|
|
let searchTerm = "";
|
|
const view = getView();
|
|
function input_input_handler() {
|
|
searchTerm = this.value;
|
|
$$invalidate(0, searchTerm);
|
|
}
|
|
const click_handler = () => {
|
|
$$invalidate(0, searchTerm = "");
|
|
};
|
|
$$self.$$.update = () => {
|
|
if ($$self.$$.dirty & /*searchTerm*/
|
|
1) {
|
|
$: {
|
|
view.viewStore.dispatch({
|
|
type: "view/hotkeys/set-search-term",
|
|
payload: { searchTerm }
|
|
});
|
|
}
|
|
}
|
|
};
|
|
return [searchTerm, input_input_handler, click_handler];
|
|
}
|
|
var Front = class extends SvelteComponent {
|
|
constructor(options) {
|
|
super();
|
|
init(this, options, instance83, create_fragment86, safe_not_equal, {}, add_css28);
|
|
}
|
|
};
|
|
var front_default = Front;
|
|
|
|
// src/view/components/container/controls-bar/modals/hotkeys/status-bar.svelte
|
|
var import_obsidian16 = require("obsidian");
|
|
|
|
// src/view/actions/keyboard-shortcuts/helpers/commands/presets/alt-primary-modifier.ts
|
|
var AltPrimaryModifier = {
|
|
navigate_back: {
|
|
primary: {
|
|
key: "J",
|
|
modifiers: ["Alt", "Mod", "Shift"]
|
|
}
|
|
},
|
|
navigate_forward: {
|
|
primary: {
|
|
key: "K",
|
|
modifiers: ["Alt", "Mod", "Shift"]
|
|
}
|
|
},
|
|
add_below_and_split: {
|
|
primary: {
|
|
key: "J",
|
|
modifiers: ["Alt"]
|
|
}
|
|
},
|
|
add_above_and_split: {
|
|
primary: {
|
|
key: "K",
|
|
modifiers: ["Alt"]
|
|
}
|
|
},
|
|
add_child_and_split: {
|
|
primary: {
|
|
key: "L",
|
|
modifiers: ["Alt"]
|
|
}
|
|
},
|
|
delete_card: {
|
|
primary: {
|
|
key: "Backspace",
|
|
modifiers: ["Alt"]
|
|
}
|
|
},
|
|
save_changes_and_exit_card: {
|
|
primary: {
|
|
key: "Enter",
|
|
modifiers: ["Alt", "Shift"]
|
|
}
|
|
},
|
|
add_above: {
|
|
primary: {
|
|
key: "ArrowUp",
|
|
modifiers: ["Alt"]
|
|
}
|
|
},
|
|
add_below: {
|
|
primary: {
|
|
key: "ArrowDown",
|
|
modifiers: ["Alt"]
|
|
}
|
|
},
|
|
add_child: {
|
|
primary: {
|
|
key: "ArrowRight",
|
|
modifiers: ["Alt"]
|
|
}
|
|
}
|
|
};
|
|
|
|
// src/view/components/container/controls-bar/modals/hotkeys/status-bar.svelte
|
|
function add_css29(target) {
|
|
append_styles(target, "svelte-183y6er", ".hotkeys-status-bar.svelte-183y6er{display:flex;align-items:center}.conflicts-indicator.svelte-183y6er{font-size:12px;color:var(--color-red)}.hotkeys-menu.svelte-183y6er{margin-left:auto;padding:3px;cursor:pointer;transition:opacity ease 100ms;opacity:0.7;& svg {\n width: 14px;\n height: 14px;\n };&:hover {\n opacity: 1;\n }}");
|
|
}
|
|
function create_if_block21(ctx) {
|
|
let span;
|
|
let t0;
|
|
let t1;
|
|
let t2_value = (
|
|
/*conflicts*/
|
|
ctx[0] === 1 ? "" : "s"
|
|
);
|
|
let t2;
|
|
let t3;
|
|
return {
|
|
c() {
|
|
span = element("span");
|
|
t0 = text(
|
|
/*conflicts*/
|
|
ctx[0]
|
|
);
|
|
t1 = text(" command");
|
|
t2 = text(t2_value);
|
|
t3 = text(" with conflicts");
|
|
attr(span, "class", "conflicts-indicator svelte-183y6er");
|
|
},
|
|
m(target, anchor) {
|
|
insert(target, span, anchor);
|
|
append(span, t0);
|
|
append(span, t1);
|
|
append(span, t2);
|
|
append(span, t3);
|
|
},
|
|
p(ctx2, dirty) {
|
|
if (dirty & /*conflicts*/
|
|
1)
|
|
set_data(
|
|
t0,
|
|
/*conflicts*/
|
|
ctx2[0]
|
|
);
|
|
if (dirty & /*conflicts*/
|
|
1 && t2_value !== (t2_value = /*conflicts*/
|
|
ctx2[0] === 1 ? "" : "s"))
|
|
set_data(t2, t2_value);
|
|
},
|
|
d(detaching) {
|
|
if (detaching) {
|
|
detach(span);
|
|
}
|
|
}
|
|
};
|
|
}
|
|
function create_fragment87(ctx) {
|
|
let div;
|
|
let t;
|
|
let span;
|
|
let settings;
|
|
let current;
|
|
let mounted;
|
|
let dispose;
|
|
let if_block = (
|
|
/*conflicts*/
|
|
ctx[0] && create_if_block21(ctx)
|
|
);
|
|
settings = new settings_default({ props: { class: "svg-icon" } });
|
|
return {
|
|
c() {
|
|
div = element("div");
|
|
if (if_block)
|
|
if_block.c();
|
|
t = space();
|
|
span = element("span");
|
|
create_component(settings.$$.fragment);
|
|
attr(span, "class", "hotkeys-menu svelte-183y6er");
|
|
attr(div, "class", "hotkeys-status-bar svelte-183y6er");
|
|
},
|
|
m(target, anchor) {
|
|
insert(target, div, anchor);
|
|
if (if_block)
|
|
if_block.m(div, null);
|
|
append(div, t);
|
|
append(div, span);
|
|
mount_component(settings, span, null);
|
|
current = true;
|
|
if (!mounted) {
|
|
dispose = listen(
|
|
span,
|
|
"click",
|
|
/*showMenu*/
|
|
ctx[1]
|
|
);
|
|
mounted = true;
|
|
}
|
|
},
|
|
p(ctx2, [dirty]) {
|
|
if (
|
|
/*conflicts*/
|
|
ctx2[0]
|
|
) {
|
|
if (if_block) {
|
|
if_block.p(ctx2, dirty);
|
|
} else {
|
|
if_block = create_if_block21(ctx2);
|
|
if_block.c();
|
|
if_block.m(div, t);
|
|
}
|
|
} else if (if_block) {
|
|
if_block.d(1);
|
|
if_block = null;
|
|
}
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(settings.$$.fragment, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(settings.$$.fragment, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
if (detaching) {
|
|
detach(div);
|
|
}
|
|
if (if_block)
|
|
if_block.d();
|
|
destroy_component(settings);
|
|
mounted = false;
|
|
dispose();
|
|
}
|
|
};
|
|
}
|
|
function instance84($$self, $$props, $$invalidate) {
|
|
let { conflicts } = $$props;
|
|
const view = getView();
|
|
const showMenu = (e) => {
|
|
const menu = new import_obsidian16.Menu();
|
|
menu.addItem((item) => {
|
|
item.setTitle(lang.modals_hk_reset_hotkeys);
|
|
item.onClick(() => {
|
|
view.plugin.settings.dispatch({ type: "settings/hotkeys/reset-all" });
|
|
});
|
|
});
|
|
menu.addItem((item) => {
|
|
item.setTitle(lang.modals_hk_load_alt_hotkeys_preset);
|
|
item.onClick(() => {
|
|
view.plugin.settings.dispatch({
|
|
type: "settings/hotkeys/apply-preset",
|
|
payload: { preset: AltPrimaryModifier }
|
|
});
|
|
});
|
|
});
|
|
menu.showAtMouseEvent(e);
|
|
};
|
|
$$self.$$set = ($$props2) => {
|
|
if ("conflicts" in $$props2)
|
|
$$invalidate(0, conflicts = $$props2.conflicts);
|
|
};
|
|
return [conflicts, showMenu];
|
|
}
|
|
var Status_bar = class extends SvelteComponent {
|
|
constructor(options) {
|
|
super();
|
|
init(this, options, instance84, create_fragment87, safe_not_equal, { conflicts: 0 }, add_css29);
|
|
}
|
|
};
|
|
var status_bar_default = Status_bar;
|
|
|
|
// src/view/actions/keyboard-shortcuts/helpers/commands/commands/navigate-commands.ts
|
|
var outlineModeSelector = (view) => view.plugin.settings.getValue().view.outlineMode;
|
|
var maintainEditMode = (view) => view.plugin.settings.getValue().view.maintainEditMode;
|
|
var maybeEnableEditMode = (view) => {
|
|
const viewState = view.viewStore.getValue();
|
|
const isEditing2 = viewState.document.editing.activeNodeId;
|
|
const activeNode = viewState.document.activeNode;
|
|
if (isEditing2 && maintainEditMode(view)) {
|
|
setTimeout(() => {
|
|
const newActiveNode = view.viewStore.getValue().document.activeNode;
|
|
if (newActiveNode !== activeNode) {
|
|
enableEditModeInMainSplit(view, newActiveNode);
|
|
}
|
|
}, 16);
|
|
}
|
|
};
|
|
var spatialNavigation = (view, direction) => {
|
|
maybeEnableEditMode(view);
|
|
view.viewStore.dispatch({
|
|
type: "DOCUMENT/NAVIGATE_USING_KEYBOARD",
|
|
payload: {
|
|
direction,
|
|
columns: view.documentStore.getValue().document.columns
|
|
},
|
|
context: {
|
|
outlineMode: outlineModeSelector(view)
|
|
}
|
|
});
|
|
};
|
|
var sequentialNavigation = (view, direction) => {
|
|
maybeEnableEditMode(view);
|
|
view.viewStore.dispatch({
|
|
type: "NAVIGATION/SELECT_NEXT_NODE",
|
|
payload: {
|
|
direction,
|
|
sections: view.documentStore.getValue().sections
|
|
},
|
|
context: {
|
|
outlineMode: outlineModeSelector(view)
|
|
}
|
|
});
|
|
};
|
|
var jump = (view, target) => {
|
|
maybeEnableEditMode(view);
|
|
view.viewStore.dispatch({
|
|
type: "DOCUMENT/JUMP_TO_NODE",
|
|
payload: {
|
|
target,
|
|
columns: view.documentStore.getValue().document.columns
|
|
}
|
|
});
|
|
};
|
|
var navigateCommands = () => {
|
|
const commands = [];
|
|
commands.push(
|
|
{
|
|
name: "go_right",
|
|
callback: (view, event) => {
|
|
event.preventDefault();
|
|
if (!outlineModeSelector(view)) {
|
|
spatialNavigation(view, "right");
|
|
} else {
|
|
spatialNavigation(view, "down");
|
|
}
|
|
},
|
|
hotkeys: [
|
|
{ key: "L", modifiers: [], editorState: "editor-off" },
|
|
{ key: "ArrowRight", modifiers: [], editorState: "editor-off" }
|
|
]
|
|
},
|
|
{
|
|
name: "go_left",
|
|
callback: (view, event) => {
|
|
event.preventDefault();
|
|
if (!outlineModeSelector(view)) {
|
|
spatialNavigation(view, "left");
|
|
} else {
|
|
spatialNavigation(view, "up");
|
|
}
|
|
},
|
|
hotkeys: [
|
|
{ key: "H", modifiers: [], editorState: "editor-off" },
|
|
{ key: "ArrowLeft", modifiers: [], editorState: "editor-off" }
|
|
]
|
|
},
|
|
{
|
|
name: "go_down",
|
|
callback: (view, event) => {
|
|
event.preventDefault();
|
|
if (!outlineModeSelector(view)) {
|
|
spatialNavigation(view, "down");
|
|
} else {
|
|
sequentialNavigation(view, "forward");
|
|
}
|
|
},
|
|
hotkeys: [
|
|
{ key: "J", modifiers: [], editorState: "editor-off" },
|
|
{ key: "ArrowDown", modifiers: [], editorState: "editor-off" }
|
|
]
|
|
},
|
|
{
|
|
name: "go_up",
|
|
callback: (view, event) => {
|
|
event.preventDefault();
|
|
if (!outlineModeSelector(view)) {
|
|
spatialNavigation(view, "up");
|
|
} else {
|
|
sequentialNavigation(view, "back");
|
|
}
|
|
},
|
|
hotkeys: [
|
|
{ key: "K", modifiers: [], editorState: "editor-off" },
|
|
{ key: "ArrowUp", modifiers: [], editorState: "editor-off" }
|
|
]
|
|
},
|
|
{
|
|
name: "select_parent",
|
|
callback: (view, event) => {
|
|
event.preventDefault();
|
|
spatialNavigation(view, "left");
|
|
},
|
|
hotkeys: [{ key: "G", modifiers: [], editorState: "editor-off" }]
|
|
},
|
|
{
|
|
name: "navigate_to_next_node",
|
|
callback: (view, event) => {
|
|
event.preventDefault();
|
|
sequentialNavigation(view, "forward");
|
|
},
|
|
hotkeys: [{ key: "N", modifiers: [], editorState: "editor-off" }]
|
|
},
|
|
{
|
|
name: "navigate_to_previous_node",
|
|
callback: (view, event) => {
|
|
event.preventDefault();
|
|
sequentialNavigation(view, "back");
|
|
},
|
|
hotkeys: [{ key: "B", modifiers: [], editorState: "editor-off" }]
|
|
},
|
|
{
|
|
name: "go_to_beginning_of_group",
|
|
callback: (view, e) => {
|
|
e.preventDefault();
|
|
e.stopPropagation();
|
|
jump(view, "start-of-group");
|
|
},
|
|
hotkeys: [
|
|
{ key: "PageUp", modifiers: [], editorState: "editor-off" }
|
|
]
|
|
},
|
|
{
|
|
name: "go_to_end_of_group",
|
|
callback: (view, e) => {
|
|
e.preventDefault();
|
|
e.stopPropagation();
|
|
jump(view, "end-of-group");
|
|
},
|
|
hotkeys: [
|
|
{ key: "PageDown", modifiers: [], editorState: "editor-off" }
|
|
]
|
|
},
|
|
{
|
|
name: "go_to_beginning_of_column",
|
|
callback: (view, e) => {
|
|
e.preventDefault();
|
|
e.stopPropagation();
|
|
jump(view, "start-of-column");
|
|
},
|
|
hotkeys: [
|
|
{ key: "Home", modifiers: [], editorState: "editor-off" }
|
|
]
|
|
},
|
|
{
|
|
name: "go_to_end_of_column",
|
|
callback: (view, e) => {
|
|
e.preventDefault();
|
|
e.stopPropagation();
|
|
jump(view, "end-of-column");
|
|
},
|
|
hotkeys: [{ key: "End", modifiers: [], editorState: "editor-off" }]
|
|
},
|
|
{
|
|
name: "navigate_back",
|
|
callback: (view, event) => {
|
|
event.preventDefault();
|
|
view.viewStore.dispatch({
|
|
type: "NAVIGATION/NAVIGATE_BACK"
|
|
});
|
|
},
|
|
hotkeys: [{ key: "J", modifiers: ["Alt"], editorState: "both" }]
|
|
},
|
|
{
|
|
name: "navigate_forward",
|
|
callback: (view, event) => {
|
|
event.preventDefault();
|
|
view.viewStore.dispatch({
|
|
type: "NAVIGATION/NAVIGATE_FORWARD"
|
|
});
|
|
},
|
|
hotkeys: [{ key: "K", modifiers: ["Alt"], editorState: "both" }]
|
|
}
|
|
);
|
|
return commands;
|
|
};
|
|
|
|
// src/view/actions/keyboard-shortcuts/helpers/commands/commands/helpers/cancel-changes.ts
|
|
var cancelChanges = (view) => {
|
|
const documentViewState = view.viewStore.getValue().document;
|
|
if (documentViewState.pendingConfirmation.disableEdit) {
|
|
view.inlineEditor.unloadNode(void 0, true);
|
|
if (documentViewState.editing.isInSidebar) {
|
|
view.viewStore.dispatch({
|
|
type: "view/sidebar/disable-edit"
|
|
});
|
|
} else {
|
|
view.viewStore.dispatch({
|
|
type: "view/main/disable-edit"
|
|
});
|
|
}
|
|
} else {
|
|
view.inlineEditor.onNextChange(() => {
|
|
view.viewStore.dispatch({
|
|
type: "view/confirmation/reset/disable-edit"
|
|
});
|
|
});
|
|
view.viewStore.dispatch({
|
|
type: "view/confirmation/confirm/disable-edit",
|
|
payload: {
|
|
id: documentViewState.editing.activeNodeId
|
|
}
|
|
});
|
|
}
|
|
};
|
|
|
|
// src/view/actions/keyboard-shortcuts/helpers/commands/commands/edit-commands.ts
|
|
var editCommands = () => {
|
|
return [
|
|
{
|
|
name: "enable_edit_mode",
|
|
callback: (view, event) => {
|
|
event.preventDefault();
|
|
view.viewStore.dispatch({
|
|
type: "view/main/enable-edit",
|
|
payload: {
|
|
nodeId: view.viewStore.getValue().document.activeNode
|
|
}
|
|
});
|
|
},
|
|
hotkeys: [
|
|
{ key: "Enter", modifiers: [], editorState: "editor-off" }
|
|
]
|
|
},
|
|
{
|
|
name: "enable_edit_mode_and_place_cursor_at_start",
|
|
callback: (view, event) => {
|
|
event.preventDefault();
|
|
const nodeId = view.viewStore.getValue().document.activeNode;
|
|
view.inlineEditor.setNodeCursor(nodeId, { line: 0, ch: 0 });
|
|
view.viewStore.dispatch({
|
|
type: "view/main/enable-edit",
|
|
payload: {
|
|
nodeId
|
|
}
|
|
});
|
|
},
|
|
hotkeys: [
|
|
{
|
|
key: "Enter",
|
|
modifiers: ["Shift"],
|
|
editorState: "editor-off"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
name: "enable_edit_mode_and_place_cursor_at_end",
|
|
callback: (view, event) => {
|
|
event.preventDefault();
|
|
const nodeId = view.viewStore.getValue().document.activeNode;
|
|
view.inlineEditor.deleteNodeCursor(nodeId);
|
|
view.viewStore.dispatch({
|
|
type: "view/main/enable-edit",
|
|
payload: {
|
|
nodeId
|
|
}
|
|
});
|
|
},
|
|
hotkeys: [
|
|
{ key: "Enter", modifiers: ["Alt"], editorState: "editor-off" }
|
|
]
|
|
},
|
|
{
|
|
name: "save_changes_and_exit_card",
|
|
callback: (view) => {
|
|
saveNodeContent(view);
|
|
},
|
|
hotkeys: [
|
|
{
|
|
key: "Enter",
|
|
modifiers: ["Shift", "Mod"],
|
|
editorState: "editor-on"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
name: "disable_edit_mode",
|
|
callback: (view) => {
|
|
cancelChanges(view);
|
|
},
|
|
hotkeys: [
|
|
{ key: "Escape", modifiers: [], editorState: "editor-on" }
|
|
]
|
|
}
|
|
];
|
|
};
|
|
|
|
// src/view/actions/keyboard-shortcuts/helpers/commands/commands/helpers/add-node-and-split-at-cursor.ts
|
|
var flattenEditorPosition = (value, cursor2) => {
|
|
const lines = value.split("\n");
|
|
let total = 0;
|
|
for (let i = 0; i < lines.length; i++) {
|
|
if (cursor2.line === i) {
|
|
return total + cursor2.ch;
|
|
} else {
|
|
total += lines[i].length + 1;
|
|
}
|
|
}
|
|
throw new Error(`invalid cursor line: ${cursor2.line} ch: ${cursor2.ch}`);
|
|
};
|
|
var addNodeAndSplitAtCursor = (view, direction) => {
|
|
let text2 = "";
|
|
let firstHalf = "", secondHalf = "";
|
|
const value = view.inlineEditor.getContent();
|
|
const cursor2 = flattenEditorPosition(value, view.inlineEditor.getCursor());
|
|
if (cursor2 <= value.length) {
|
|
firstHalf = value.substring(0, cursor2);
|
|
secondHalf = value.substring(cursor2);
|
|
if (direction === "up") {
|
|
view.inlineEditor.setContent(secondHalf.trimStart());
|
|
text2 = firstHalf.trimEnd();
|
|
} else {
|
|
view.inlineEditor.setContent(firstHalf.trimEnd());
|
|
text2 = secondHalf.trimStart();
|
|
}
|
|
}
|
|
saveNodeAndInsertNode(view, direction, text2);
|
|
};
|
|
|
|
// src/view/actions/keyboard-shortcuts/helpers/commands/commands/create-commands.ts
|
|
var createCommands = () => {
|
|
return [
|
|
{
|
|
name: "add_above",
|
|
callback: (view) => {
|
|
saveNodeAndInsertNode(view, "up");
|
|
},
|
|
hotkeys: [
|
|
{
|
|
key: "ArrowUp",
|
|
modifiers: ["Mod"],
|
|
editorState: "editor-off"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
name: "add_below",
|
|
callback: (view) => {
|
|
saveNodeAndInsertNode(view, "down");
|
|
},
|
|
hotkeys: [
|
|
{
|
|
key: "ArrowDown",
|
|
modifiers: ["Mod"],
|
|
editorState: "editor-off"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
name: "add_child",
|
|
callback: (view) => {
|
|
saveNodeAndInsertNode(view, "right");
|
|
},
|
|
hotkeys: [
|
|
{
|
|
key: "ArrowRight",
|
|
modifiers: ["Mod"],
|
|
editorState: "editor-off"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
name: "add_above_and_split",
|
|
callback: (view) => {
|
|
if (isEditing(view))
|
|
addNodeAndSplitAtCursor(view, "up");
|
|
else
|
|
saveNodeAndInsertNode(view, "up");
|
|
},
|
|
hotkeys: [{ key: "K", modifiers: ["Mod"], editorState: "both" }]
|
|
},
|
|
{
|
|
name: "add_below_and_split",
|
|
callback: (view) => {
|
|
if (isEditing(view))
|
|
addNodeAndSplitAtCursor(view, "down");
|
|
else
|
|
saveNodeAndInsertNode(view, "down");
|
|
},
|
|
hotkeys: [{ key: "J", modifiers: ["Mod"], editorState: "both" }]
|
|
},
|
|
{
|
|
name: "add_child_and_split",
|
|
callback: (view) => {
|
|
if (isEditing(view))
|
|
addNodeAndSplitAtCursor(view, "right");
|
|
else
|
|
saveNodeAndInsertNode(view, "right");
|
|
},
|
|
hotkeys: [{ key: "L", modifiers: ["Mod"], editorState: "both" }]
|
|
}
|
|
];
|
|
};
|
|
|
|
// src/view/actions/keyboard-shortcuts/helpers/commands/commands/helpers/move-node.ts
|
|
var restoreEditingState = (view, state2) => {
|
|
setTimeout(() => {
|
|
view.viewStore.dispatch({
|
|
type: "view/main/enable-edit",
|
|
payload: {
|
|
nodeId: state2.editedNode
|
|
}
|
|
});
|
|
});
|
|
};
|
|
var moveNode = async (view, direction) => {
|
|
let state2 = null;
|
|
if (view.inlineEditor.nodeId) {
|
|
state2 = {
|
|
editedNode: view.inlineEditor.nodeId
|
|
};
|
|
}
|
|
saveNodeContent(view);
|
|
const document2 = view.viewStore.getValue().document;
|
|
view.documentStore.dispatch({
|
|
type: "DOCUMENT/MOVE_NODE",
|
|
payload: {
|
|
direction,
|
|
activeNodeId: document2.activeNode,
|
|
selectedNodes: document2.selectedNodes
|
|
}
|
|
});
|
|
if (state2)
|
|
restoreEditingState(view, state2);
|
|
};
|
|
|
|
// src/view/actions/keyboard-shortcuts/helpers/commands/commands/move-commands.ts
|
|
var moveCommands = () => {
|
|
return [
|
|
{
|
|
name: "move_node_up",
|
|
callback: (view) => {
|
|
moveNode(view, "up");
|
|
},
|
|
hotkeys: [
|
|
{ key: "K", modifiers: ["Alt", "Shift"], editorState: "both" },
|
|
{
|
|
key: "ArrowUp",
|
|
modifiers: ["Alt", "Shift"],
|
|
editorState: "both"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
name: "move_node_down",
|
|
callback: (view) => {
|
|
moveNode(view, "down");
|
|
},
|
|
hotkeys: [
|
|
{ key: "J", modifiers: ["Alt", "Shift"], editorState: "both" },
|
|
{
|
|
key: "ArrowDown",
|
|
modifiers: ["Alt", "Shift"],
|
|
editorState: "both"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
name: "move_node_right",
|
|
callback: (view) => {
|
|
moveNode(view, "right");
|
|
},
|
|
hotkeys: [
|
|
{ key: "L", modifiers: ["Alt", "Shift"], editorState: "both" },
|
|
{
|
|
key: "ArrowRight",
|
|
modifiers: ["Alt", "Shift"],
|
|
editorState: "both"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
name: "move_node_left",
|
|
callback: (view) => {
|
|
moveNode(view, "left");
|
|
},
|
|
hotkeys: [
|
|
{ key: "H", modifiers: ["Alt", "Shift"], editorState: "both" },
|
|
{
|
|
key: "ArrowLeft",
|
|
modifiers: ["Alt", "Shift"],
|
|
editorState: "both"
|
|
}
|
|
]
|
|
}
|
|
];
|
|
};
|
|
|
|
// src/view/actions/keyboard-shortcuts/helpers/commands/commands/helpers/merge-node.ts
|
|
var mergeNode = (view, direction) => {
|
|
saveNodeContent(view);
|
|
if (view.viewStore.getValue().document.selectedNodes.size > 1) {
|
|
throw new Error(lang.error_hk_cant_merge_multiple_nodes);
|
|
}
|
|
view.documentStore.dispatch({
|
|
type: "DOCUMENT/MERGE_NODE",
|
|
payload: {
|
|
direction,
|
|
activeNodeId: view.viewStore.getValue().document.activeNode
|
|
}
|
|
});
|
|
};
|
|
|
|
// src/view/actions/keyboard-shortcuts/helpers/commands/commands/merge-commands.ts
|
|
var mergeCommands = () => {
|
|
return [
|
|
{
|
|
name: "merge_with_node_above",
|
|
callback: (view) => {
|
|
mergeNode(view, "up");
|
|
},
|
|
hotkeys: [
|
|
{
|
|
key: "K",
|
|
modifiers: ["Mod", "Shift"],
|
|
editorState: "editor-off"
|
|
},
|
|
{
|
|
key: "ArrowUp",
|
|
modifiers: ["Mod", "Shift"],
|
|
editorState: "editor-off"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
name: "merge_with_node_below",
|
|
callback: (view) => {
|
|
mergeNode(view, "down");
|
|
},
|
|
hotkeys: [
|
|
{
|
|
key: "J",
|
|
modifiers: ["Mod", "Shift"],
|
|
editorState: "editor-off"
|
|
},
|
|
{
|
|
key: "ArrowDown",
|
|
modifiers: ["Mod", "Shift"],
|
|
editorState: "editor-off"
|
|
}
|
|
]
|
|
}
|
|
];
|
|
};
|
|
|
|
// src/view/actions/keyboard-shortcuts/helpers/commands/commands/history-commands.ts
|
|
var historyCommands = () => {
|
|
return [
|
|
{
|
|
name: "undo_change",
|
|
callback: (view) => {
|
|
const path = view.documentStore.getValue().file.path;
|
|
if (path)
|
|
view.documentStore.dispatch({
|
|
type: "HISTORY/APPLY_PREVIOUS_SNAPSHOT"
|
|
});
|
|
},
|
|
hotkeys: [
|
|
{
|
|
key: "Z",
|
|
modifiers: ["Mod", "Shift"],
|
|
editorState: "editor-off"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
name: "redo_change",
|
|
callback: (view) => {
|
|
const path = view.documentStore.getValue().file.path;
|
|
if (path)
|
|
view.documentStore.dispatch({
|
|
type: "HISTORY/APPLY_NEXT_SNAPSHOT"
|
|
});
|
|
},
|
|
hotkeys: [
|
|
{
|
|
key: "Y",
|
|
modifiers: ["Mod", "Shift"],
|
|
editorState: "editor-off"
|
|
}
|
|
]
|
|
}
|
|
];
|
|
};
|
|
|
|
// src/lib/tree-utils/get/get-sorted-child-groups.ts
|
|
var getSortedChildGroups = (columns, currentParentNode, remove = false) => {
|
|
const childGroupsArray = traverseDown(columns, currentParentNode, false);
|
|
const childGroups = new Set(childGroupsArray);
|
|
const sortedChildGroups = [];
|
|
for (const column of columns) {
|
|
const childGroupsOfColumns = [];
|
|
const groups = [];
|
|
for (const group of column.groups) {
|
|
if (childGroups.has(group.parentId)) {
|
|
childGroupsOfColumns.push(group);
|
|
} else {
|
|
groups.push(group);
|
|
}
|
|
}
|
|
if (remove)
|
|
column.groups = groups;
|
|
if (childGroupsOfColumns.length > 0)
|
|
sortedChildGroups.push(childGroupsOfColumns);
|
|
}
|
|
return sortedChildGroups;
|
|
};
|
|
|
|
// src/lib/tree-utils/delete/delete-node-by-id.ts
|
|
var deleteNodeById = (columns, content, nodeId) => {
|
|
for (const column of columns) {
|
|
for (const group of column.groups) {
|
|
for (let i = 0; i < group.nodes.length; i++) {
|
|
const _nodeId2 = group.nodes[i];
|
|
if (_nodeId2 === nodeId) {
|
|
group.nodes.splice(i, 1);
|
|
group.nodes = [...group.nodes];
|
|
if (content)
|
|
delete content[_nodeId2];
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
};
|
|
|
|
// src/view/actions/keyboard-shortcuts/helpers/commands/commands/helpers/get-branch.ts
|
|
var getBranch = (columns, content, nodeId, mode) => {
|
|
const cut = mode === "cut";
|
|
const sortedChildGroups = getSortedChildGroups(columns, nodeId, cut);
|
|
const newContent = {};
|
|
for (const sortedChildGroup of sortedChildGroups) {
|
|
for (const group of sortedChildGroup) {
|
|
for (const node of group.nodes) {
|
|
if (node in content) {
|
|
newContent[node] = content[node];
|
|
if (cut)
|
|
delete content[node];
|
|
}
|
|
}
|
|
}
|
|
}
|
|
newContent[nodeId] = content[nodeId];
|
|
const branch = {
|
|
sortedChildGroups,
|
|
content: newContent,
|
|
nodeId,
|
|
mode
|
|
};
|
|
if (cut)
|
|
deleteNodeById(columns, content, nodeId);
|
|
return clone(branch);
|
|
};
|
|
|
|
// src/lib/data-conversion/helpers/html-comment-marker/create-html-comment-marker.ts
|
|
var level = (parentNumber, index) => `${parentNumber ? parentNumber + "." : ""}${index}`;
|
|
var createHtmlCommentMarker = (parentNumber, index) => `
|
|
<!--section: ${level(parentNumber, index)}-->`;
|
|
|
|
// src/lib/data-conversion/json-to-x/json-to-html-comment.ts
|
|
var jsonToHtmlComment = (tree, parentNumber = "", text2 = "", includeStructure = true) => {
|
|
for (let i = 0; i < tree.length; i++) {
|
|
const node = tree[i];
|
|
const content = node.content;
|
|
const index = i + 1;
|
|
if (text2)
|
|
text2 = text2 + (includeStructure ? "\n" : "\n\n");
|
|
if (includeStructure) {
|
|
text2 += createHtmlCommentMarker(parentNumber, index) + "\n" + content;
|
|
} else {
|
|
text2 += content;
|
|
}
|
|
if (node.children.length > 0) {
|
|
text2 = jsonToHtmlComment(
|
|
node.children,
|
|
level(parentNumber, index),
|
|
text2,
|
|
includeStructure
|
|
);
|
|
}
|
|
}
|
|
return text2;
|
|
};
|
|
|
|
// src/lib/tree-utils/create/create-column.ts
|
|
var createColumn = () => ({
|
|
id: id.column(),
|
|
groups: []
|
|
});
|
|
|
|
// src/lib/tree-utils/create/create-group.ts
|
|
var createGroup = (parentId) => ({
|
|
nodes: [],
|
|
parentId
|
|
});
|
|
|
|
// src/lib/data-conversion/x-to-json/branch-to-json.ts
|
|
var branchToColumns = (branch) => {
|
|
const columns = [];
|
|
columns.push(createColumn());
|
|
columns[columns.length - 1].groups.push(createGroup("root"));
|
|
columns[columns.length - 1].groups[0].nodes.push(branch.nodeId);
|
|
for (const groups of branch.sortedChildGroups) {
|
|
columns.push(createColumn());
|
|
for (const group of groups) {
|
|
columns[columns.length - 1].groups.push(group);
|
|
}
|
|
}
|
|
return columns;
|
|
};
|
|
var branchToJson = (branches) => {
|
|
const trees = [];
|
|
for (const branch of branches) {
|
|
const tree = columnsToJson(branchToColumns(branch), branch.content);
|
|
trees.push(tree[0]);
|
|
}
|
|
return trees;
|
|
};
|
|
|
|
// src/lib/data-conversion/branch-to-x/branch-to-html-comment.ts
|
|
var branchToHtmlComment = (branches) => {
|
|
return jsonToHtmlComment(branchToJson(branches));
|
|
};
|
|
|
|
// src/lib/data-conversion/branch-to-x/branch-to-outline.ts
|
|
var branchToOutline = (branches) => {
|
|
return jsonToOutline(branchToJson(branches));
|
|
};
|
|
|
|
// src/lib/data-conversion/helpers/html-element-marker/create-html-element-marker.ts
|
|
var createHtmlElementMarker = (parentNumber, index) => `<span data-section="${level(parentNumber, index)}"/>`;
|
|
|
|
// src/lib/data-conversion/json-to-x/json-to-html-element.ts
|
|
var jsonToHtmlElement = (tree, parentNumber = "", text2 = "") => {
|
|
for (let i = 0; i < tree.length; i++) {
|
|
const node = tree[i];
|
|
const index = i + 1;
|
|
if (text2)
|
|
text2 = text2 + "\n\n";
|
|
let content = node.content.trimStart();
|
|
const marker = createHtmlElementMarker(parentNumber, index);
|
|
if (content.match(/^#+ /)) {
|
|
const headingLevel = content.match(/^#+/)?.[0];
|
|
content = `${headingLevel} ${marker}${content.slice(headingLevel.length).trim()}`;
|
|
} else if (content.match(/^#[^\s#\uFEFF\u200B]+/)) {
|
|
const tag = content.match(/^#[^\s#\uFEFF\u200B]+/)?.[0];
|
|
content = `${tag}${marker}${content.slice(tag.length)}`;
|
|
} else if (content.startsWith(">")) {
|
|
content = `> ${marker}${content.slice(1).trim()}`;
|
|
} else if (content.match(/^[-*+]\s\[.\]\s/)) {
|
|
const taskPrefix = content.match(/^[-*+]\s\[.\]\s/)?.[0];
|
|
content = `${taskPrefix}${marker}${content.slice(taskPrefix.length).trim()}`;
|
|
} else if (content.match(/^[-*+]\s/)) {
|
|
const bullet = content.match(/^[-*+]\s/)?.[0];
|
|
content = `${bullet}${marker}${content.slice(bullet.length).trim()}`;
|
|
} else if (content.match(/^\d+\.\s/)) {
|
|
const number = content.match(/^\d+\.\s/)?.[0];
|
|
content = `${number} ${marker}${content.slice(number.length).trim()}`;
|
|
} else if (content.startsWith("```")) {
|
|
content = `${marker}
|
|
${content}`;
|
|
} else if (content.startsWith("|")) {
|
|
content = `${marker}
|
|
|
|
${content}`;
|
|
} else {
|
|
content = `${marker}${content}`;
|
|
}
|
|
text2 += content;
|
|
if (node.children.length > 0) {
|
|
text2 = jsonToHtmlElement(
|
|
node.children,
|
|
level(parentNumber, index),
|
|
text2
|
|
);
|
|
}
|
|
}
|
|
return text2;
|
|
};
|
|
|
|
// src/lib/data-conversion/branch-to-x/branch-to-html-element.ts
|
|
var branchToHtmlElement = (branches) => {
|
|
return jsonToHtmlElement(branchToJson(branches));
|
|
};
|
|
|
|
// src/lib/data-conversion/json-to-x/json-to-text.ts
|
|
var jsonToText = (nodes) => {
|
|
return jsonToHtmlComment(nodes, void 0, void 0, false);
|
|
};
|
|
|
|
// src/lib/data-conversion/branch-to-x/branch-to-text.ts
|
|
var branchToText = (branches) => {
|
|
return jsonToText(branchToJson(branches));
|
|
};
|
|
|
|
// src/view/actions/keyboard-shortcuts/helpers/commands/commands/helpers/clipboard/map-branches-to-text.ts
|
|
var mapBranchesToText = (document2, nodes, format2) => {
|
|
const branches = nodes.map(
|
|
(node) => getBranch(document2.columns, document2.content, node, "copy")
|
|
);
|
|
const isSingleNode = nodes.length === 1 && Object.keys(branches[0].content).length === 1;
|
|
if (isSingleNode) {
|
|
return branches[0].content[nodes[0]].content;
|
|
} else if (format2 === "outline") {
|
|
return branchToOutline(branches);
|
|
} else if (format2 === "html-element") {
|
|
return branchToHtmlElement(branches);
|
|
} else if (format2 === "sections") {
|
|
return branchToHtmlComment(branches);
|
|
} else if (format2 === "unformatted-text") {
|
|
return branchToText(branches);
|
|
} else {
|
|
throw new Error(`Invalid format: ${format2}`);
|
|
}
|
|
};
|
|
|
|
// src/view/actions/keyboard-shortcuts/helpers/commands/commands/helpers/clipboard/copy-active-branches-to-clipboard.ts
|
|
var import_obsidian17 = require("obsidian");
|
|
var copyActiveBranchesToClipboard = async (view, formatted) => {
|
|
const document2 = view.viewStore.getValue().document;
|
|
const nodes = document2.selectedNodes.size > 0 ? Array.from(document2.selectedNodes) : [document2.activeNode];
|
|
const text2 = mapBranchesToText(
|
|
view.documentStore.getValue().document,
|
|
nodes,
|
|
formatted ? getDocumentFormat(view) : "unformatted-text"
|
|
);
|
|
await navigator.clipboard.writeText(text2);
|
|
const message = lang.hk_notice_copy(nodes.length, formatted, "branch");
|
|
if (message)
|
|
new import_obsidian17.Notice(message);
|
|
};
|
|
|
|
// src/view/actions/keyboard-shortcuts/helpers/commands/commands/helpers/cut-node.ts
|
|
var cutNode = async (view) => {
|
|
const document2 = view.viewStore.getValue().document;
|
|
await copyActiveBranchesToClipboard(view, true);
|
|
view.documentStore.dispatch({
|
|
type: "DOCUMENT/CUT_NODE",
|
|
payload: {
|
|
nodeId: document2.activeNode,
|
|
selectedNodes: document2.selectedNodes
|
|
}
|
|
});
|
|
};
|
|
|
|
// src/view/actions/keyboard-shortcuts/helpers/commands/commands/helpers/paste-node.ts
|
|
var import_obsidian18 = require("obsidian");
|
|
var pasteNode = async (view) => {
|
|
const viewState = view.viewStore.getValue();
|
|
const clipboardItems = await navigator.clipboard.read();
|
|
let containsImage = false;
|
|
for (const item of clipboardItems) {
|
|
if (item.types.some((type) => type.startsWith("image/"))) {
|
|
containsImage = true;
|
|
break;
|
|
}
|
|
}
|
|
if (containsImage) {
|
|
new import_obsidian18.Notice(lang.error_cant_paste);
|
|
} else {
|
|
const text2 = (await navigator.clipboard.readText()).replace(
|
|
/\r\n/g,
|
|
"\n"
|
|
);
|
|
view.documentStore.dispatch({
|
|
type: "DOCUMENT/PASTE_NODE",
|
|
payload: {
|
|
targetNodeId: viewState.document.activeNode,
|
|
text: text2
|
|
}
|
|
});
|
|
}
|
|
};
|
|
|
|
// src/view/actions/keyboard-shortcuts/helpers/commands/commands/helpers/clipboard/copy-active-nodes-to-clipboard.ts
|
|
var import_obsidian19 = require("obsidian");
|
|
var copyActiveNodesToClipboard = async (view) => {
|
|
const document2 = view.viewStore.getValue().document;
|
|
const nodes = document2.selectedNodes.size > 0 ? Array.from(document2.selectedNodes) : [document2.activeNode];
|
|
const text2 = nodes.map((id2) => view.documentStore.getValue().document.content[id2].content).join("\n\n");
|
|
await navigator.clipboard.writeText(text2);
|
|
if (nodes.length > 1) {
|
|
const message = lang.hk_notice_copy(nodes.length, false, "section");
|
|
if (message)
|
|
new import_obsidian19.Notice(message);
|
|
}
|
|
};
|
|
|
|
// src/view/actions/keyboard-shortcuts/helpers/commands/commands/clipboard-commands.ts
|
|
var clipboardCommands = () => {
|
|
return [
|
|
{
|
|
name: "copy_node",
|
|
callback: async (view, event) => {
|
|
const selectedText = activeWindow.getSelection()?.toString();
|
|
if (selectedText && selectedText.length > 0) {
|
|
return;
|
|
}
|
|
event.preventDefault();
|
|
copyActiveBranchesToClipboard(view, true);
|
|
},
|
|
hotkeys: [
|
|
{ key: "C", modifiers: ["Mod"], editorState: "editor-off" }
|
|
]
|
|
},
|
|
{
|
|
name: "copy_node_unformatted",
|
|
callback: async (view, event) => {
|
|
event.preventDefault();
|
|
copyActiveBranchesToClipboard(view, false);
|
|
},
|
|
hotkeys: [
|
|
{
|
|
key: "C",
|
|
modifiers: ["Mod", "Alt"],
|
|
editorState: "editor-off"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
name: "copy_node_without_subitems",
|
|
callback: async (view, event) => {
|
|
event.preventDefault();
|
|
copyActiveNodesToClipboard(view);
|
|
},
|
|
hotkeys: [
|
|
{
|
|
key: "C",
|
|
modifiers: ["Mod", "Shift"],
|
|
editorState: "editor-off"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
name: "cut_node",
|
|
callback: async (view, event) => {
|
|
event.preventDefault();
|
|
cutNode(view);
|
|
},
|
|
hotkeys: [
|
|
{ key: "X", modifiers: ["Mod"], editorState: "editor-off" }
|
|
]
|
|
},
|
|
{
|
|
name: "paste_node",
|
|
callback: async (view, event) => {
|
|
event.preventDefault();
|
|
pasteNode(view);
|
|
},
|
|
hotkeys: [
|
|
{
|
|
key: "V",
|
|
modifiers: ["Mod"],
|
|
editorState: "editor-off"
|
|
}
|
|
]
|
|
}
|
|
];
|
|
};
|
|
|
|
// src/view/actions/keyboard-shortcuts/helpers/commands/commands/selection-commands.ts
|
|
var selectionCommands = () => {
|
|
const commands = [];
|
|
commands.push(
|
|
{
|
|
name: "extend_select_up",
|
|
callback: (view, event) => {
|
|
event.preventDefault();
|
|
view.viewStore.dispatch({
|
|
type: "DOCUMENT/NAVIGATE_USING_KEYBOARD",
|
|
payload: {
|
|
direction: "up",
|
|
columns: view.documentStore.getValue().document.columns
|
|
},
|
|
context: {
|
|
shiftKey: true,
|
|
outlineMode: view.plugin.settings.getValue().view.outlineMode
|
|
}
|
|
});
|
|
},
|
|
hotkeys: [
|
|
{ key: "K", modifiers: ["Shift"], editorState: "editor-off" },
|
|
{
|
|
key: "ArrowUp",
|
|
modifiers: ["Shift"],
|
|
editorState: "editor-off"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
name: "extend_select_down",
|
|
callback: (view, event) => {
|
|
event.preventDefault();
|
|
view.viewStore.dispatch({
|
|
type: "DOCUMENT/NAVIGATE_USING_KEYBOARD",
|
|
payload: {
|
|
direction: "down",
|
|
columns: view.documentStore.getValue().document.columns
|
|
},
|
|
context: {
|
|
shiftKey: true,
|
|
outlineMode: view.plugin.settings.getValue().view.outlineMode
|
|
}
|
|
});
|
|
},
|
|
hotkeys: [
|
|
{ key: "J", modifiers: ["Shift"], editorState: "editor-off" },
|
|
{
|
|
key: "ArrowDown",
|
|
modifiers: ["Shift"],
|
|
editorState: "editor-off"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
name: "extend_select_to_end_of_column",
|
|
callback: (view, e) => {
|
|
e.preventDefault();
|
|
e.stopPropagation();
|
|
view.viewStore.dispatch({
|
|
type: "DOCUMENT/JUMP_TO_NODE",
|
|
payload: {
|
|
target: "end-of-column",
|
|
columns: view.documentStore.getValue().document.columns
|
|
},
|
|
context: {
|
|
shiftKey: true
|
|
}
|
|
});
|
|
},
|
|
hotkeys: [
|
|
{ key: "End", modifiers: ["Shift"], editorState: "editor-off" }
|
|
]
|
|
},
|
|
{
|
|
name: "extend_select_to_start_of_column",
|
|
callback: (view, e) => {
|
|
e.preventDefault();
|
|
e.stopPropagation();
|
|
view.viewStore.dispatch({
|
|
type: "DOCUMENT/JUMP_TO_NODE",
|
|
payload: {
|
|
target: "start-of-column",
|
|
columns: view.documentStore.getValue().document.columns
|
|
},
|
|
context: {
|
|
shiftKey: true
|
|
}
|
|
});
|
|
},
|
|
hotkeys: [
|
|
{
|
|
key: "Home",
|
|
modifiers: ["Shift"],
|
|
editorState: "editor-off"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
name: "extend_select_to_end_of_group",
|
|
callback: (view, e) => {
|
|
e.preventDefault();
|
|
e.stopPropagation();
|
|
view.viewStore.dispatch({
|
|
type: "DOCUMENT/JUMP_TO_NODE",
|
|
payload: {
|
|
target: "end-of-group",
|
|
columns: view.documentStore.getValue().document.columns
|
|
},
|
|
context: {
|
|
shiftKey: true
|
|
}
|
|
});
|
|
},
|
|
hotkeys: [
|
|
{
|
|
key: "PageDown",
|
|
modifiers: ["Shift"],
|
|
editorState: "editor-off"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
name: "extend_select_to_start_of_group",
|
|
callback: (view, e) => {
|
|
e.preventDefault();
|
|
e.stopPropagation();
|
|
view.viewStore.dispatch({
|
|
type: "DOCUMENT/JUMP_TO_NODE",
|
|
payload: {
|
|
target: "start-of-group",
|
|
columns: view.documentStore.getValue().document.columns
|
|
},
|
|
context: {
|
|
shiftKey: true
|
|
}
|
|
});
|
|
},
|
|
hotkeys: [
|
|
{
|
|
key: "PageUp",
|
|
modifiers: ["Shift"],
|
|
editorState: "editor-off"
|
|
}
|
|
]
|
|
}
|
|
);
|
|
return commands;
|
|
};
|
|
|
|
// src/lib/align-element/helpers/get-element-by-id.ts
|
|
var getElementById = (container, id2) => {
|
|
if (id2)
|
|
return container.querySelector("#" + id2);
|
|
};
|
|
|
|
// src/view/actions/keyboard-shortcuts/helpers/commands/commands/helpers/scroll-node.ts
|
|
var scrollNode = (view, direction) => {
|
|
const container = view.container;
|
|
if (!container)
|
|
return;
|
|
const element2 = getElementById(
|
|
container,
|
|
view.viewStore.getValue().document.activeNode
|
|
);
|
|
if (!element2)
|
|
return;
|
|
const STEP = Math.floor(view.plugin.settings.getValue().view.cardWidth / 4);
|
|
if (direction === "down" || direction === "up") {
|
|
const column = element2.matchParent(".column");
|
|
if (!column)
|
|
return;
|
|
const scrollTop = direction === "up" ? STEP : -STEP;
|
|
requestAnimationFrame(() => {
|
|
column.scrollBy({
|
|
top: scrollTop,
|
|
behavior: "smooth"
|
|
});
|
|
});
|
|
} else {
|
|
const scrollLeft = direction === "left" ? STEP : -STEP;
|
|
requestAnimationFrame(() => {
|
|
container.scrollBy({
|
|
left: scrollLeft,
|
|
behavior: "smooth"
|
|
});
|
|
});
|
|
}
|
|
};
|
|
|
|
// src/view/actions/keyboard-shortcuts/helpers/commands/commands/scroll-commands.ts
|
|
var scrollCommands = () => {
|
|
const modifiers = ["Mod", "Alt"];
|
|
return [
|
|
{
|
|
name: "scroll_right",
|
|
callback: (view) => {
|
|
scrollNode(view, "right");
|
|
},
|
|
hotkeys: [{ key: "L", modifiers, editorState: "both" }]
|
|
},
|
|
{
|
|
name: "scroll_left",
|
|
callback: (view) => {
|
|
scrollNode(view, "left");
|
|
},
|
|
hotkeys: [{ key: "H", modifiers, editorState: "both" }]
|
|
},
|
|
{
|
|
name: "scroll_up",
|
|
callback: (view) => {
|
|
scrollNode(view, "up");
|
|
},
|
|
hotkeys: [{ key: "K", modifiers, editorState: "both" }]
|
|
},
|
|
{
|
|
name: "scroll_down",
|
|
callback: (view) => {
|
|
scrollNode(view, "down");
|
|
},
|
|
hotkeys: [{ key: "J", modifiers, editorState: "both" }]
|
|
},
|
|
{
|
|
name: "align_branch",
|
|
callback: (view) => {
|
|
view.alignBranch.align({
|
|
type: "view/align-branch/center-node"
|
|
});
|
|
},
|
|
hotkeys: [{ key: "G", modifiers, editorState: "both" }]
|
|
}
|
|
];
|
|
};
|
|
|
|
// src/view/actions/keyboard-shortcuts/helpers/commands/default-view-hotkeys.ts
|
|
var defaultViewHotkeys = () => [
|
|
...navigateCommands(),
|
|
...editCommands(),
|
|
...createCommands(),
|
|
...moveCommands(),
|
|
...mergeCommands(),
|
|
...clipboardCommands(),
|
|
...historyCommands(),
|
|
...selectionCommands(),
|
|
...scrollCommands(),
|
|
{
|
|
name: "delete_card",
|
|
callback: (view) => {
|
|
const document2 = view.viewStore.getValue().document;
|
|
deleteNode(view, document2.activeNode, true);
|
|
},
|
|
hotkeys: [
|
|
{ key: "Backspace", modifiers: ["Mod"], editorState: "editor-off" }
|
|
]
|
|
},
|
|
{
|
|
name: "toggle_search_input",
|
|
callback: (view, e) => {
|
|
e.preventDefault();
|
|
e.stopPropagation();
|
|
view.viewStore.dispatch({ type: "SEARCH/TOGGLE_INPUT" });
|
|
},
|
|
hotkeys: [
|
|
{ key: "/", modifiers: [], editorState: "editor-off" },
|
|
{ key: "f", modifiers: ["Alt"], editorState: "both" }
|
|
]
|
|
},
|
|
{
|
|
name: "zoom_in",
|
|
callback: (view, e) => {
|
|
e.preventDefault();
|
|
view.plugin.settings.dispatch({
|
|
type: "UI/CHANGE_ZOOM_LEVEL",
|
|
payload: { direction: "in" }
|
|
});
|
|
},
|
|
hotkeys: [{ key: "=", modifiers: ["Mod"], editorState: "both" }]
|
|
},
|
|
{
|
|
name: "zoom_out",
|
|
callback: (view, e) => {
|
|
e.preventDefault();
|
|
view.plugin.settings.dispatch({
|
|
type: "UI/CHANGE_ZOOM_LEVEL",
|
|
payload: { direction: "out" }
|
|
});
|
|
},
|
|
hotkeys: [{ key: "-", modifiers: ["Mod"], editorState: "both" }]
|
|
},
|
|
{
|
|
name: "zoom_reset",
|
|
callback: (view, e) => {
|
|
e.preventDefault();
|
|
view.plugin.settings.dispatch({
|
|
type: "UI/CHANGE_ZOOM_LEVEL",
|
|
payload: { value: 1 }
|
|
});
|
|
},
|
|
hotkeys: [{ key: "0", modifiers: ["Mod"], editorState: "both" }]
|
|
},
|
|
{
|
|
name: "toggle_outline_mode",
|
|
callback: (view) => {
|
|
view.plugin.settings.dispatch({
|
|
type: "settings/view/modes/toggle-outline-mode"
|
|
});
|
|
},
|
|
hotkeys: [{ key: "o", modifiers: ["Alt"], editorState: "both" }]
|
|
},
|
|
{
|
|
name: "toggle_collapse",
|
|
callback: (view, e) => {
|
|
e.preventDefault();
|
|
if (!get_store_value(singleColumnStore(view)))
|
|
return;
|
|
view.viewStore.dispatch({
|
|
type: "view/outline/toggle-collapse-node",
|
|
payload: {
|
|
id: view.viewStore.getValue().document.activeNode,
|
|
columns: view.documentStore.getValue().document.columns
|
|
}
|
|
});
|
|
},
|
|
hotkeys: [{ key: "=", modifiers: ["Alt"], editorState: "both" }]
|
|
},
|
|
{
|
|
name: "toggle_collapse_all",
|
|
callback: (view, e) => {
|
|
e.preventDefault();
|
|
if (!get_store_value(singleColumnStore(view)))
|
|
return;
|
|
view.viewStore.dispatch({
|
|
type: "view/outline/toggle-collapse-all",
|
|
payload: {
|
|
columns: view.documentStore.getValue().document.columns
|
|
}
|
|
});
|
|
},
|
|
hotkeys: [{ key: "=", modifiers: ["Alt", "Mod"], editorState: "both" }]
|
|
}
|
|
];
|
|
|
|
// src/lang/hotkey-groups.ts
|
|
var hotkeyGroups = {
|
|
[lang.hkg_create_cards]: /* @__PURE__ */ new Set([
|
|
"add_child",
|
|
"add_below",
|
|
"add_above",
|
|
"add_child_and_split",
|
|
"add_below_and_split",
|
|
"add_above_and_split"
|
|
]),
|
|
[lang.hkg_edit_cards]: /* @__PURE__ */ new Set([
|
|
"enable_edit_mode",
|
|
"enable_edit_mode_and_place_cursor_at_start",
|
|
"enable_edit_mode_and_place_cursor_at_end",
|
|
"disable_edit_mode",
|
|
"save_changes_and_exit_card"
|
|
]),
|
|
[lang.hkg_move_cards]: /* @__PURE__ */ new Set([
|
|
"move_node_up",
|
|
"move_node_down",
|
|
"move_node_right",
|
|
"move_node_left"
|
|
]),
|
|
[lang.hkg_merge_cards]: /* @__PURE__ */ new Set([
|
|
"merge_with_node_above",
|
|
"merge_with_node_below"
|
|
]),
|
|
[lang.hkg_delete_cards]: /* @__PURE__ */ new Set(["delete_card"]),
|
|
[lang.hkg_navigation]: /* @__PURE__ */ new Set([
|
|
"go_up",
|
|
"go_down",
|
|
"go_right",
|
|
"go_left",
|
|
"go_to_beginning_of_group",
|
|
"go_to_end_of_group",
|
|
"go_to_beginning_of_column",
|
|
"go_to_end_of_column",
|
|
"navigate_back",
|
|
"navigate_forward",
|
|
"navigate_to_previous_node",
|
|
"navigate_to_next_node",
|
|
"select_parent"
|
|
]),
|
|
[lang.hkg_selection]: /* @__PURE__ */ new Set([
|
|
"extend_select_up",
|
|
"extend_select_down",
|
|
"extend_select_to_start_of_group",
|
|
"extend_select_to_end_of_group",
|
|
"extend_select_to_start_of_column",
|
|
"extend_select_to_end_of_column"
|
|
]),
|
|
[lang.hkg_history]: /* @__PURE__ */ new Set(["undo_change", "redo_change"]),
|
|
[lang.hkg_search]: /* @__PURE__ */ new Set(["toggle_search_input"]),
|
|
[lang.hkg_clipboard]: /* @__PURE__ */ new Set([
|
|
"copy_node",
|
|
"copy_node_unformatted",
|
|
"copy_node_without_subitems",
|
|
"cut_node",
|
|
"paste_node"
|
|
]),
|
|
[lang.hkg_scrolling]: /* @__PURE__ */ new Set([
|
|
"scroll_left",
|
|
"scroll_right",
|
|
"scroll_up",
|
|
"scroll_down",
|
|
"align_branch"
|
|
]),
|
|
[lang.hkg_zoom]: /* @__PURE__ */ new Set(["zoom_in", "zoom_out", "zoom_reset"]),
|
|
[lang.hkg_outline]: /* @__PURE__ */ new Set([
|
|
"toggle_outline_mode",
|
|
"toggle_collapse",
|
|
"toggle_collapse_all"
|
|
])
|
|
};
|
|
var hotkeysGroups = Object.fromEntries(
|
|
Object.entries(hotkeyGroups).map(([group, commands]) => Array.from(commands).map((c) => [c, group])).flat()
|
|
);
|
|
|
|
// src/stores/view/derived/hotkeys-store.ts
|
|
var ConflictingHotkeys = (view) => derived(view.viewStore, (state2) => state2.hotkeys.conflictingHotkeys);
|
|
var HotkeysSearchTerm = (view) => derived(view.viewStore, (state2) => state2.hotkeys.searchTerm);
|
|
|
|
// src/helpers/group-array-by-property.ts
|
|
var groupArrayByProperty = (array, property, grouped = {}) => {
|
|
for (const item of array) {
|
|
const key = String(item[property]);
|
|
if (!grouped[key]) {
|
|
grouped[key] = [];
|
|
}
|
|
grouped[key].push(item);
|
|
}
|
|
for (const key of Object.keys(grouped)) {
|
|
if (grouped[key].length === 0) {
|
|
delete grouped[key];
|
|
}
|
|
}
|
|
return grouped;
|
|
};
|
|
|
|
// src/stores/settings/derived/view-hotkeys-store.ts
|
|
var CustomHotkeysStore = (plugin) => derived2(plugin.settings, (state2) => state2.hotkeys.customHotkeys);
|
|
var ViewHotkeysStore = (plugin) => derived2([CustomHotkeysStore(plugin)], ([customHotkeys]) => {
|
|
const viewHotkeys2 = [];
|
|
for (const defaultViewHotkey of defaultViewHotkeys()) {
|
|
const customHotkey = customHotkeys[defaultViewHotkey.name];
|
|
const hotkeys = defaultViewHotkey.hotkeys.map(
|
|
(hotkey, i) => {
|
|
let isCustom = false;
|
|
const persistedHotkey = i === 0 && customHotkey?.primary ? customHotkey.primary : i === 1 && customHotkey?.secondary ? customHotkey?.secondary : null;
|
|
if (persistedHotkey) {
|
|
if ("key" in persistedHotkey) {
|
|
isCustom = persistedHotkey.key.length > 0 && (hotkey.key !== persistedHotkey.key || hotkey.modifiers.join("") !== persistedHotkey.modifiers.join(""));
|
|
hotkey.key = persistedHotkey.key;
|
|
hotkey.modifiers = persistedHotkey.modifiers;
|
|
}
|
|
if ("editorState" in persistedHotkey) {
|
|
isCustom = persistedHotkey.editorState !== hotkey.editorState;
|
|
hotkey.editorState = persistedHotkey.editorState;
|
|
}
|
|
}
|
|
return {
|
|
...hotkey,
|
|
string_representation: hotkeyToString(hotkey),
|
|
isCustom
|
|
};
|
|
}
|
|
);
|
|
viewHotkeys2.push({
|
|
...defaultViewHotkey,
|
|
hotkeys,
|
|
group: hotkeysGroups[defaultViewHotkey.name]
|
|
});
|
|
}
|
|
return viewHotkeys2;
|
|
});
|
|
var ConflictLabeledHotkeysStore = (view) => derived2(
|
|
[ViewHotkeysStore(view.plugin), ConflictingHotkeys(view)],
|
|
([hotkeys, conflicts]) => {
|
|
let numberOfConflictingHotkeys = 0;
|
|
const groupedByHotkey = /* @__PURE__ */ new Map();
|
|
for (const viewHotkey of hotkeys) {
|
|
for (const hotkey of viewHotkey.hotkeys) {
|
|
delete hotkey.obsidianConflict;
|
|
delete hotkey.pluginConflict;
|
|
const conflict = conflicts.get(
|
|
hotkey.string_representation
|
|
);
|
|
if (conflict) {
|
|
hotkey.obsidianConflict = conflict;
|
|
numberOfConflictingHotkeys++;
|
|
} else {
|
|
let set = groupedByHotkey.get(
|
|
hotkey.string_representation
|
|
);
|
|
if (!set) {
|
|
set = /* @__PURE__ */ new Set();
|
|
groupedByHotkey.set(
|
|
hotkey.string_representation,
|
|
set
|
|
);
|
|
}
|
|
set.add(viewHotkey);
|
|
}
|
|
}
|
|
}
|
|
const conflicting = [...groupedByHotkey.entries()].filter(
|
|
(v) => v[1].size > 1
|
|
);
|
|
for (const [string_representation, hotkeys2] of conflicting) {
|
|
const conflicting2 = Array.from(hotkeys2).map((h) => h.name).join(", ");
|
|
for (const pluginHotkey of hotkeys2) {
|
|
for (const hotkey of pluginHotkey.hotkeys) {
|
|
if (!hotkey.key)
|
|
continue;
|
|
if (hotkey.string_representation === string_representation) {
|
|
hotkey.pluginConflict = conflicting2;
|
|
numberOfConflictingHotkeys++;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return {
|
|
hotkeys: [...hotkeys],
|
|
numberOfConflictingHotkeys
|
|
};
|
|
}
|
|
);
|
|
var FilteredHotkeysStore = (view) => derived2(
|
|
[ConflictLabeledHotkeysStore(view), HotkeysSearchTerm(view)],
|
|
([hotkeys, searchTerm]) => {
|
|
let array = [];
|
|
if (searchTerm) {
|
|
array = hotkeys.hotkeys.filter((c) => {
|
|
const fullName = hotkeysLang[c.name].toLowerCase();
|
|
return fullName.includes(searchTerm) || c.group.toLowerCase().includes(searchTerm);
|
|
});
|
|
} else
|
|
array = hotkeys.hotkeys;
|
|
return {
|
|
hotkeys: groupArrayByProperty(array, "group", {
|
|
[lang.hkg_create_cards]: [],
|
|
[lang.hkg_edit_cards]: [],
|
|
[lang.hkg_move_cards]: [],
|
|
[lang.hkg_merge_cards]: [],
|
|
[lang.hkg_delete_cards]: [],
|
|
[lang.hkg_clipboard]: [],
|
|
[lang.hkg_navigation]: [],
|
|
[lang.hkg_selection]: [],
|
|
[lang.hkg_scrolling]: [],
|
|
[lang.hkg_history]: [],
|
|
[lang.hkg_search]: [],
|
|
[lang.hkg_zoom]: [],
|
|
[lang.hkg_outline]: []
|
|
}),
|
|
numberOfConflictingHotkeys: hotkeys.numberOfConflictingHotkeys
|
|
};
|
|
}
|
|
);
|
|
|
|
// src/view/components/container/controls-bar/modals/hotkeys/hotkeys.svelte
|
|
function add_css30(target) {
|
|
append_styles(target, "svelte-1kffelc", ".groups.svelte-1kffelc{width:500px;display:flex;flex-direction:column;gap:var(--size-4-2);overflow-y:auto;flex:1\n }@media(max-width: 720px){.groups.svelte-1kffelc{width:fit-content}}");
|
|
}
|
|
function get_each_context10(ctx, list, i) {
|
|
const child_ctx = ctx.slice();
|
|
child_ctx[6] = list[i][0];
|
|
child_ctx[7] = list[i][1];
|
|
return child_ctx;
|
|
}
|
|
function create_each_block10(key_1, ctx) {
|
|
let first;
|
|
let group_1;
|
|
let current;
|
|
group_1 = new group_default2({
|
|
props: {
|
|
groupName: (
|
|
/*groupName*/
|
|
ctx[6]
|
|
),
|
|
group: (
|
|
/*group*/
|
|
ctx[7]
|
|
),
|
|
labelState: (
|
|
/*labelState*/
|
|
ctx[0]
|
|
)
|
|
}
|
|
});
|
|
return {
|
|
key: key_1,
|
|
first: null,
|
|
c() {
|
|
first = empty();
|
|
create_component(group_1.$$.fragment);
|
|
this.first = first;
|
|
},
|
|
m(target, anchor) {
|
|
insert(target, first, anchor);
|
|
mount_component(group_1, target, anchor);
|
|
current = true;
|
|
},
|
|
p(new_ctx, dirty) {
|
|
ctx = new_ctx;
|
|
const group_1_changes = {};
|
|
if (dirty & /*$store*/
|
|
2)
|
|
group_1_changes.groupName = /*groupName*/
|
|
ctx[6];
|
|
if (dirty & /*$store*/
|
|
2)
|
|
group_1_changes.group = /*group*/
|
|
ctx[7];
|
|
if (dirty & /*labelState*/
|
|
1)
|
|
group_1_changes.labelState = /*labelState*/
|
|
ctx[0];
|
|
group_1.$set(group_1_changes);
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(group_1.$$.fragment, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(group_1.$$.fragment, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
if (detaching) {
|
|
detach(first);
|
|
}
|
|
destroy_component(group_1, detaching);
|
|
}
|
|
};
|
|
}
|
|
function create_fragment88(ctx) {
|
|
let div1;
|
|
let front;
|
|
let t0;
|
|
let div0;
|
|
let each_blocks = [];
|
|
let each_1_lookup = /* @__PURE__ */ new Map();
|
|
let t1;
|
|
let numberofconflicts;
|
|
let current;
|
|
front = new front_default({});
|
|
let each_value = ensure_array_like(Object.entries(
|
|
/*$store*/
|
|
ctx[1].hotkeys
|
|
));
|
|
const get_key = (ctx2) => (
|
|
/*groupName*/
|
|
ctx2[6]
|
|
);
|
|
for (let i = 0; i < each_value.length; i += 1) {
|
|
let child_ctx = get_each_context10(ctx, each_value, i);
|
|
let key = get_key(child_ctx);
|
|
each_1_lookup.set(key, each_blocks[i] = create_each_block10(key, child_ctx));
|
|
}
|
|
numberofconflicts = new status_bar_default({
|
|
props: {
|
|
conflicts: (
|
|
/*$store*/
|
|
ctx[1].numberOfConflictingHotkeys
|
|
)
|
|
}
|
|
});
|
|
return {
|
|
c() {
|
|
div1 = element("div");
|
|
create_component(front.$$.fragment);
|
|
t0 = space();
|
|
div0 = element("div");
|
|
for (let i = 0; i < each_blocks.length; i += 1) {
|
|
each_blocks[i].c();
|
|
}
|
|
t1 = space();
|
|
create_component(numberofconflicts.$$.fragment);
|
|
attr(div0, "class", "groups svelte-1kffelc");
|
|
attr(div1, "class", "lineage-modal lineage-modal--full-height");
|
|
},
|
|
m(target, anchor) {
|
|
insert(target, div1, anchor);
|
|
mount_component(front, div1, null);
|
|
append(div1, t0);
|
|
append(div1, div0);
|
|
for (let i = 0; i < each_blocks.length; i += 1) {
|
|
if (each_blocks[i]) {
|
|
each_blocks[i].m(div0, null);
|
|
}
|
|
}
|
|
append(div1, t1);
|
|
mount_component(numberofconflicts, div1, null);
|
|
current = true;
|
|
},
|
|
p(ctx2, [dirty]) {
|
|
if (dirty & /*Object, $store, labelState*/
|
|
3) {
|
|
each_value = ensure_array_like(Object.entries(
|
|
/*$store*/
|
|
ctx2[1].hotkeys
|
|
));
|
|
group_outros();
|
|
each_blocks = update_keyed_each(each_blocks, dirty, get_key, 1, ctx2, each_value, each_1_lookup, div0, outro_and_destroy_block, create_each_block10, null, get_each_context10);
|
|
check_outros();
|
|
}
|
|
const numberofconflicts_changes = {};
|
|
if (dirty & /*$store*/
|
|
2)
|
|
numberofconflicts_changes.conflicts = /*$store*/
|
|
ctx2[1].numberOfConflictingHotkeys;
|
|
numberofconflicts.$set(numberofconflicts_changes);
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(front.$$.fragment, local);
|
|
for (let i = 0; i < each_value.length; i += 1) {
|
|
transition_in(each_blocks[i]);
|
|
}
|
|
transition_in(numberofconflicts.$$.fragment, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(front.$$.fragment, local);
|
|
for (let i = 0; i < each_blocks.length; i += 1) {
|
|
transition_out(each_blocks[i]);
|
|
}
|
|
transition_out(numberofconflicts.$$.fragment, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
if (detaching) {
|
|
detach(div1);
|
|
}
|
|
destroy_component(front);
|
|
for (let i = 0; i < each_blocks.length; i += 1) {
|
|
each_blocks[i].d();
|
|
}
|
|
destroy_component(numberofconflicts);
|
|
}
|
|
};
|
|
}
|
|
function instance85($$self, $$props, $$invalidate) {
|
|
let $outlineMode;
|
|
let $store;
|
|
const view = getView();
|
|
const store = FilteredHotkeysStore(view);
|
|
component_subscribe($$self, store, (value) => $$invalidate(1, $store = value));
|
|
const outlineMode = OutlineModeStore(view);
|
|
component_subscribe($$self, outlineMode, (value) => $$invalidate(4, $outlineMode = value));
|
|
let labelState;
|
|
$$self.$$.update = () => {
|
|
if ($$self.$$.dirty & /*$outlineMode*/
|
|
16) {
|
|
$: {
|
|
$$invalidate(0, labelState = { outlineMode: $outlineMode });
|
|
}
|
|
}
|
|
};
|
|
return [labelState, $store, store, outlineMode, $outlineMode];
|
|
}
|
|
var Hotkeys = class extends SvelteComponent {
|
|
constructor(options) {
|
|
super();
|
|
init(this, options, instance85, create_fragment88, safe_not_equal, {}, add_css30);
|
|
}
|
|
};
|
|
var hotkeys_default = Hotkeys;
|
|
|
|
// src/view/actions/keyboard-shortcuts/helpers/keyboard-events/event-to-string.ts
|
|
var eventToString = (event) => {
|
|
let string = event.key.toUpperCase();
|
|
if (event.altKey)
|
|
string += "Alt" /* Alt */;
|
|
if (isMacLike) {
|
|
if (event.ctrlKey)
|
|
string += "Ctrl" /* Ctrl */;
|
|
if (event.metaKey)
|
|
string += "Mod" /* Mod */;
|
|
} else {
|
|
if (event.ctrlKey)
|
|
string += "Mod" /* Mod */;
|
|
}
|
|
if (event.shiftKey)
|
|
string += "Shift" /* Shift */;
|
|
return string;
|
|
};
|
|
|
|
// src/view/actions/on-escape/helpers/handle-escape-key.ts
|
|
var handleEscapeKey = (view) => {
|
|
const viewStore = view.viewStore;
|
|
const value = viewStore.getValue();
|
|
const search2 = value.search;
|
|
const controls = value.ui.controls;
|
|
const selection = value.document.selectedNodes;
|
|
if (controls.showHelpSidebar || controls.showHistorySidebar || controls.showSettingsSidebar || controls.showStyleRulesModal) {
|
|
viewStore.dispatch({
|
|
type: "CLOSE_MODALS",
|
|
payload: {
|
|
closeAllModals: true
|
|
}
|
|
});
|
|
return true;
|
|
} else if (search2.query) {
|
|
viewStore.dispatch({
|
|
type: "SEARCH/SET_QUERY",
|
|
payload: {
|
|
query: ""
|
|
}
|
|
});
|
|
return true;
|
|
} else if (value.document.pendingConfirmation.deleteNode.size > 0) {
|
|
viewStore.dispatch({
|
|
type: "view/confirmation/reset/delete-node"
|
|
});
|
|
return true;
|
|
} else if (search2.showInput) {
|
|
viewStore.dispatch({
|
|
type: "SEARCH/TOGGLE_INPUT"
|
|
});
|
|
return true;
|
|
} else if (selection.size > 1) {
|
|
viewStore.dispatch({
|
|
type: "DOCUMENT/CLEAR_SELECTION"
|
|
});
|
|
return true;
|
|
}
|
|
};
|
|
|
|
// src/lib/errors/errors.ts
|
|
var SilentError = class extends Error {
|
|
};
|
|
|
|
// src/lib/store/on-plugin-error.ts
|
|
var import_obsidian20 = require("obsidian");
|
|
|
|
// src/helpers/logger.ts
|
|
var __dev__ = true;
|
|
var createLogger = () => {
|
|
const debug = (...message) => {
|
|
if (__dev__) {
|
|
console.log(`[DEBUG]: `, ...message);
|
|
}
|
|
};
|
|
const info = (...message) => {
|
|
if (__dev__) {
|
|
console.log(`[INFO]: `, ...message);
|
|
}
|
|
};
|
|
const warn = (...message) => {
|
|
if (__dev__) {
|
|
console.warn(`[WARN]: `, ...message);
|
|
}
|
|
};
|
|
const error = (...message) => {
|
|
console.error(`[ERROR]: `, ...message);
|
|
};
|
|
return { debug, info, warn, error };
|
|
};
|
|
var logger = createLogger();
|
|
|
|
// src/lib/store/on-plugin-error.ts
|
|
var onPluginError = (error, location, action) => {
|
|
if (error instanceof SilentError && !__dev__) {
|
|
return;
|
|
}
|
|
console.error(`[${location}] action: `, action);
|
|
console.error(`[${location}]`, error);
|
|
const message = error.message.replace(/Invariant failed(: )?/, "");
|
|
if (message)
|
|
new import_obsidian20.Notice(message);
|
|
else
|
|
new import_obsidian20.Notice(lang.error_generic);
|
|
};
|
|
|
|
// src/view/actions/keyboard-shortcuts/view-hotkeys-action.ts
|
|
var viewHotkeysAction = (target, {
|
|
view
|
|
}) => {
|
|
const state2 = {
|
|
shift: false
|
|
};
|
|
const keyboardEventHandler = (event) => {
|
|
if (event.key === "Escape") {
|
|
const contain = handleEscapeKey(view);
|
|
if (contain)
|
|
return;
|
|
}
|
|
if (event.target.localName === "input")
|
|
return;
|
|
const command = viewHotkeys.current[eventToString(event)];
|
|
if (command) {
|
|
const allow = command.editorState === "editor-on" ? isEditing(view) : command.editorState === "editor-off" ? !isEditing(view) : true;
|
|
if (allow) {
|
|
try {
|
|
command.callback(view, event);
|
|
} catch (error) {
|
|
onPluginError(error, "command", command);
|
|
}
|
|
}
|
|
}
|
|
if (event.shiftKey !== state2.shift) {
|
|
state2.shift = event.shiftKey;
|
|
view.viewStore.dispatch({
|
|
type: event.shiftKey ? "view/keyboard/shift/down" : "view/keyboard/shift/up"
|
|
});
|
|
}
|
|
};
|
|
const onKeyup = (event) => {
|
|
if (event.shiftKey !== state2.shift) {
|
|
state2.shift = event.shiftKey;
|
|
view.viewStore.dispatch({
|
|
type: event.shiftKey ? "view/keyboard/shift/down" : "view/keyboard/shift/up"
|
|
});
|
|
}
|
|
};
|
|
target.addEventListener("keydown", keyboardEventHandler);
|
|
target.addEventListener("keyup", onKeyup);
|
|
return {
|
|
destroy: () => {
|
|
target.removeEventListener("keydown", keyboardEventHandler);
|
|
target.removeEventListener("keyup", onKeyup);
|
|
}
|
|
};
|
|
};
|
|
|
|
// src/view/actions/mouse-wheel-zoom.ts
|
|
var mouseWheelZoom = (element2, view) => {
|
|
const listener = (e) => {
|
|
const modKey2 = isMacLike ? e.metaKey : e.ctrlKey;
|
|
if (!modKey2)
|
|
return;
|
|
const delta = e.deltaY;
|
|
view.plugin.settings.dispatch({
|
|
type: "UI/CHANGE_ZOOM_LEVEL",
|
|
payload: {
|
|
direction: delta < 0 ? "in" : "out"
|
|
}
|
|
});
|
|
};
|
|
element2.addEventListener("wheel", listener);
|
|
return {
|
|
destroy: () => {
|
|
element2.removeEventListener("wheel", listener);
|
|
}
|
|
};
|
|
};
|
|
|
|
// src/stores/minimap/subscriptions/effects/minimap-canvas/worker/consts/constants.ts
|
|
var CANVAS_WIDTH_DPX = 176;
|
|
var CANVAS_WIDTH_CPX = CANVAS_WIDTH_DPX * 2;
|
|
var CHAR_WIDTH_CPX = 6;
|
|
var LINE_HEIGHT_CPX = 10;
|
|
var N_CHARS_PER_LINE = CANVAS_WIDTH_CPX / CHAR_WIDTH_CPX;
|
|
var INDENT_BLOCK_WIDTH_CPX = CHAR_WIDTH_CPX;
|
|
var INDENT_BLOCK_SPACE_WIDTH_CPX = CHAR_WIDTH_CPX;
|
|
var INDENT_BLOCK_TOTAL_WIDTH_CPX = INDENT_BLOCK_WIDTH_CPX + INDENT_BLOCK_SPACE_WIDTH_CPX;
|
|
|
|
// src/view/components/container/minimap/event-handlers/helpers/find-card-at-position.ts
|
|
var findCardAtPosition = (y, ranges, margin = LINE_HEIGHT_CPX) => {
|
|
const result = Object.values(ranges).find(
|
|
(range) => y >= range.y_start - margin && y <= range.y_end + margin
|
|
);
|
|
return result?.cardId;
|
|
};
|
|
|
|
// src/view/components/container/minimap/event-handlers/on-canvas-click.ts
|
|
var dpx_to_cpx = (px) => px * (CANVAS_WIDTH_CPX / CANVAS_WIDTH_DPX);
|
|
var cpx_to_dpx = (px) => px * (CANVAS_WIDTH_DPX / CANVAS_WIDTH_CPX);
|
|
var LINE_HEIGHT_DPX = cpx_to_dpx(LINE_HEIGHT_CPX);
|
|
var onCanvasClick = (e, view) => {
|
|
const minimapStore = view.getMinimapStore();
|
|
const dom = view.getMinimapDom();
|
|
const rect = dom.canvas.getBoundingClientRect();
|
|
const domY = e.clientY - rect.top;
|
|
const y = dpx_to_cpx(domY);
|
|
const ranges = minimapStore.getValue().ranges.cards;
|
|
const cardId = findCardAtPosition(y, ranges);
|
|
if (cardId) {
|
|
view.viewStore.dispatch({
|
|
type: "view/set-active-node/mouse",
|
|
payload: {
|
|
id: cardId
|
|
}
|
|
});
|
|
focusContainer(view);
|
|
}
|
|
};
|
|
|
|
// src/stores/minimap/derived/minimap-ranges.ts
|
|
var MinimapRangesStore = (view) => derived(view.getMinimapStore(), (state2) => state2.ranges.cards);
|
|
|
|
// src/view/components/container/minimap/components/indicators.svelte
|
|
function add_css31(target) {
|
|
append_styles(target, "svelte-1be7f7d", ".active-card-indicator.svelte-1be7f7d{left:-3px;width:180px;position:absolute;background-color:var(--color-base-70);opacity:0.3;mix-blend-mode:lighten}.search-result-indicator.svelte-1be7f7d{left:-3px;width:180px;position:absolute;background-color:var(--color-yellow);opacity:0.3}");
|
|
}
|
|
function get_each_context11(ctx, list, i) {
|
|
const child_ctx = ctx.slice();
|
|
child_ctx[8] = list[i];
|
|
return child_ctx;
|
|
}
|
|
function create_each_block11(ctx) {
|
|
let div;
|
|
let div_style_value;
|
|
return {
|
|
c() {
|
|
div = element("div");
|
|
attr(div, "class", "search-result-indicator svelte-1be7f7d");
|
|
attr(div, "style", div_style_value = `top:${/*searchResultRange*/
|
|
ctx[8].y_start}px; height:${/*searchResultRange*/
|
|
ctx[8].height}px`);
|
|
},
|
|
m(target, anchor) {
|
|
insert(target, div, anchor);
|
|
},
|
|
p(ctx2, dirty) {
|
|
if (dirty & /*$searchResultsRanges*/
|
|
2 && div_style_value !== (div_style_value = `top:${/*searchResultRange*/
|
|
ctx2[8].y_start}px; height:${/*searchResultRange*/
|
|
ctx2[8].height}px`)) {
|
|
attr(div, "style", div_style_value);
|
|
}
|
|
},
|
|
d(detaching) {
|
|
if (detaching) {
|
|
detach(div);
|
|
}
|
|
}
|
|
};
|
|
}
|
|
function create_fragment89(ctx) {
|
|
let div1;
|
|
let div0;
|
|
let div0_style_value;
|
|
let t;
|
|
let each_value = ensure_array_like(
|
|
/*$searchResultsRanges*/
|
|
ctx[1]
|
|
);
|
|
let each_blocks = [];
|
|
for (let i = 0; i < each_value.length; i += 1) {
|
|
each_blocks[i] = create_each_block11(get_each_context11(ctx, each_value, i));
|
|
}
|
|
return {
|
|
c() {
|
|
div1 = element("div");
|
|
div0 = element("div");
|
|
t = space();
|
|
for (let i = 0; i < each_blocks.length; i += 1) {
|
|
each_blocks[i].c();
|
|
}
|
|
attr(div0, "class", "active-card-indicator svelte-1be7f7d");
|
|
attr(div0, "style", div0_style_value = `top:${/*$activeCardRange*/
|
|
ctx[0].y_start}px; height:${/*$activeCardRange*/
|
|
ctx[0].height}px`);
|
|
attr(div1, "id", "indicators-container");
|
|
},
|
|
m(target, anchor) {
|
|
insert(target, div1, anchor);
|
|
append(div1, div0);
|
|
append(div1, t);
|
|
for (let i = 0; i < each_blocks.length; i += 1) {
|
|
if (each_blocks[i]) {
|
|
each_blocks[i].m(div1, null);
|
|
}
|
|
}
|
|
},
|
|
p(ctx2, [dirty]) {
|
|
if (dirty & /*$activeCardRange*/
|
|
1 && div0_style_value !== (div0_style_value = `top:${/*$activeCardRange*/
|
|
ctx2[0].y_start}px; height:${/*$activeCardRange*/
|
|
ctx2[0].height}px`)) {
|
|
attr(div0, "style", div0_style_value);
|
|
}
|
|
if (dirty & /*$searchResultsRanges*/
|
|
2) {
|
|
each_value = ensure_array_like(
|
|
/*$searchResultsRanges*/
|
|
ctx2[1]
|
|
);
|
|
let i;
|
|
for (i = 0; i < each_value.length; i += 1) {
|
|
const child_ctx = get_each_context11(ctx2, each_value, i);
|
|
if (each_blocks[i]) {
|
|
each_blocks[i].p(child_ctx, dirty);
|
|
} else {
|
|
each_blocks[i] = create_each_block11(child_ctx);
|
|
each_blocks[i].c();
|
|
each_blocks[i].m(div1, null);
|
|
}
|
|
}
|
|
for (; i < each_blocks.length; i += 1) {
|
|
each_blocks[i].d(1);
|
|
}
|
|
each_blocks.length = each_value.length;
|
|
}
|
|
},
|
|
i: noop,
|
|
o: noop,
|
|
d(detaching) {
|
|
if (detaching) {
|
|
detach(div1);
|
|
}
|
|
destroy_each(each_blocks, detaching);
|
|
}
|
|
};
|
|
}
|
|
function instance86($$self, $$props, $$invalidate) {
|
|
let $activeCardRange;
|
|
let $searchResultsRanges;
|
|
const view = getView();
|
|
const activeCard = activeNodeStore(view);
|
|
const searchResults = searchStore(view);
|
|
const ranges = MinimapRangesStore(view);
|
|
const activeCardRange = derived2([activeCard, ranges], ([activeCard2, ranges2]) => {
|
|
if (activeCard2) {
|
|
const range = ranges2 === null || ranges2 === void 0 ? void 0 : ranges2[activeCard2];
|
|
if (range) {
|
|
const y_start = cpx_to_dpx(range.y_start);
|
|
const y_end = cpx_to_dpx(range.y_end);
|
|
return {
|
|
y_start: y_start + 2 - LINE_HEIGHT_DPX,
|
|
height: LINE_HEIGHT_DPX + (y_end - y_start) - 1
|
|
};
|
|
}
|
|
}
|
|
return { y_start: 0, height: 0 };
|
|
});
|
|
component_subscribe($$self, activeCardRange, (value) => $$invalidate(0, $activeCardRange = value));
|
|
const searchResultsRanges = derived2([searchResults, ranges], ([searchResults2, ranges2]) => {
|
|
if (searchResults2) {
|
|
const searchResultsRanges2 = Array.from(searchResults2.results).map((searchResult) => {
|
|
const range = ranges2 === null || ranges2 === void 0 ? void 0 : ranges2[searchResult];
|
|
if (range) {
|
|
const y_start = cpx_to_dpx(range.y_start);
|
|
const y_end = cpx_to_dpx(range.y_end);
|
|
return {
|
|
y_start: y_start + 2 - LINE_HEIGHT_DPX,
|
|
height: LINE_HEIGHT_DPX + (y_end - y_start) - 1
|
|
};
|
|
}
|
|
}).filter((x) => x);
|
|
return searchResultsRanges2;
|
|
}
|
|
return [];
|
|
});
|
|
component_subscribe($$self, searchResultsRanges, (value) => $$invalidate(1, $searchResultsRanges = value));
|
|
return [$activeCardRange, $searchResultsRanges, activeCardRange, searchResultsRanges];
|
|
}
|
|
var Indicators = class extends SvelteComponent {
|
|
constructor(options) {
|
|
super();
|
|
init(this, options, instance86, create_fragment89, safe_not_equal, {}, add_css31);
|
|
}
|
|
};
|
|
var indicators_default = Indicators;
|
|
|
|
// src/view/components/container/minimap/event-handlers/on-canvas-wheel.ts
|
|
var onCanvasWheel = (e, view) => {
|
|
e.preventDefault();
|
|
const minimapStore = view.getMinimapStore();
|
|
const state2 = minimapStore.getValue().scrollInfo;
|
|
const dom = view.getMinimapDom();
|
|
const minimapContainer = dom.canvasContainer.parentElement;
|
|
invariant(minimapContainer);
|
|
const scrollAmount_cpx = dpx_to_cpx(e.deltaY);
|
|
const containerHeight_cpx = dpx_to_cpx(minimapContainer.clientHeight);
|
|
minimapStore.dispatch({
|
|
type: "minimap/set-scroll-position",
|
|
payload: {
|
|
position_cpx: Math.max(
|
|
0,
|
|
Math.min(
|
|
state2.totalDrawnHeight_cpx - containerHeight_cpx,
|
|
state2.scrollPosition_cpx + scrollAmount_cpx
|
|
)
|
|
)
|
|
}
|
|
});
|
|
};
|
|
|
|
// src/view/components/container/minimap/event-handlers/create-on-canvas-mousemove.ts
|
|
var import_obsidian21 = require("obsidian");
|
|
var createOnCanvasMousemove = (view) => {
|
|
let lastActiveCardId = null;
|
|
let minimapStore;
|
|
let dom;
|
|
const hoverHandler = (0, import_obsidian21.debounce)((e) => {
|
|
if (!(e.buttons === 1 || (isMacLike ? e.metaKey : e.ctrlKey)))
|
|
return;
|
|
if (!minimapStore) {
|
|
minimapStore = view.getMinimapStore();
|
|
dom = view.getMinimapDom();
|
|
}
|
|
const rect = dom.canvas.getBoundingClientRect();
|
|
const domY = e.clientY - rect.top;
|
|
const y = dpx_to_cpx(domY);
|
|
const ranges = minimapStore.getValue().ranges.cards;
|
|
const cardId = findCardAtPosition(y, ranges, 0);
|
|
if (cardId && cardId !== lastActiveCardId) {
|
|
lastActiveCardId = cardId;
|
|
view.viewStore.dispatch({
|
|
type: "view/set-active-node/mouse",
|
|
payload: {
|
|
id: cardId
|
|
}
|
|
});
|
|
focusContainer(view);
|
|
}
|
|
}, 100);
|
|
return (e) => hoverHandler(e);
|
|
};
|
|
|
|
// src/lib/store/store.ts
|
|
var NO_UPDATE = Symbol("NO_UPDATE");
|
|
var Store = class {
|
|
constructor(initialValue, reducer, onError) {
|
|
this.subscribers = /* @__PURE__ */ new Set();
|
|
this.isProcessing = false;
|
|
this.actionQueue = [];
|
|
this.reducer = () => this.value;
|
|
// eslint-disable-next-line no-console
|
|
this.onError = (error) => console.error(error);
|
|
this.value = initialValue;
|
|
if (reducer)
|
|
this.reducer = reducer;
|
|
if (onError)
|
|
this.onError = onError;
|
|
}
|
|
getValue() {
|
|
return this.value;
|
|
}
|
|
dispatch(action) {
|
|
this.actionQueue.push(action);
|
|
if (!this.isProcessing) {
|
|
this.processActionQueue();
|
|
}
|
|
}
|
|
set(value) {
|
|
this.value = value;
|
|
this.notifySubscribers();
|
|
}
|
|
subscribe(run2) {
|
|
this.subscribers.add(run2);
|
|
try {
|
|
run2(this.value, void 0, true);
|
|
} catch (error) {
|
|
this.onError(error, "subscriber");
|
|
}
|
|
return () => {
|
|
this.subscribers.delete(run2);
|
|
};
|
|
}
|
|
update(updater) {
|
|
this.value = updater(this.value);
|
|
this.notifySubscribers();
|
|
}
|
|
processActionQueue() {
|
|
this.isProcessing = true;
|
|
while (this.actionQueue.length > 0) {
|
|
const action = this.actionQueue.shift();
|
|
try {
|
|
const newValue = this.reducer(this.value, action);
|
|
if (newValue !== NO_UPDATE) {
|
|
this.value = newValue;
|
|
this.notifySubscribers(action);
|
|
}
|
|
} catch (error) {
|
|
this.onError(error, "reducer", action);
|
|
}
|
|
}
|
|
this.isProcessing = false;
|
|
}
|
|
notifySubscribers(action) {
|
|
for (const subscriber of this.subscribers) {
|
|
try {
|
|
subscriber(this.value, action);
|
|
} catch (error) {
|
|
this.onError(error, "subscriber", action);
|
|
}
|
|
}
|
|
}
|
|
};
|
|
|
|
// src/stores/minimap/default-minimap-state.ts
|
|
var defaultMinimapState = () => ({
|
|
canvasId: id.canvas(),
|
|
activeCardId: "",
|
|
scrollInfo: {
|
|
totalDrawnHeight_cpx: 0,
|
|
scrollPosition_cpx: 0
|
|
},
|
|
ranges: {
|
|
cards: {}
|
|
}
|
|
});
|
|
|
|
// src/stores/minimap/minimap-reducer.ts
|
|
var updateDocumentState = (state2, action) => {
|
|
if (action.type === "minimap/set-card-ranges") {
|
|
state2.ranges.cards = action.payload.ranges;
|
|
state2.scrollInfo.totalDrawnHeight_cpx = action.payload.height_cpx;
|
|
} else if (action.type === "minimap/set-active-node") {
|
|
state2.activeCardId = action.payload.id;
|
|
} else if (action.type === "minimap/set-scroll-position") {
|
|
state2.scrollInfo.scrollPosition_cpx = action.payload.position_cpx;
|
|
}
|
|
};
|
|
var minimapReducer = (store, action) => {
|
|
updateDocumentState(store, action);
|
|
return store;
|
|
};
|
|
|
|
// src/stores/minimap/subscriptions/effects/minimap-canvas/worker/shapes/helpers/chunk-positions-cache.ts
|
|
var ChunkPositionsCache = class {
|
|
constructor() {
|
|
this.caches = {};
|
|
this.getCachedResult = (canvasId, nodeId, content, availableLineCharacters) => {
|
|
const cache = this.caches[canvasId];
|
|
if (!cache)
|
|
return;
|
|
const cached = cache.get(nodeId);
|
|
if (cached) {
|
|
const valid = cached.availableLineCharacters === availableLineCharacters && cached.content === content;
|
|
if (valid) {
|
|
return cached.result;
|
|
} else {
|
|
cache.delete(nodeId);
|
|
}
|
|
}
|
|
};
|
|
this.cacheResult = (canvasId, nodeId, content, availableLineCharacters, result) => {
|
|
if (!this.caches[canvasId]) {
|
|
this.caches[canvasId] = /* @__PURE__ */ new Map();
|
|
}
|
|
const cache = this.caches[canvasId];
|
|
cache.set(nodeId, { availableLineCharacters, content, result });
|
|
};
|
|
this.deleteCanvasCache = (canvasId) => {
|
|
delete this.caches[canvasId];
|
|
};
|
|
}
|
|
};
|
|
var chunkPositionsCache = new ChunkPositionsCache();
|
|
|
|
// src/stores/minimap/subscriptions/effects/minimap-canvas/worker/consts/minimap-theme.ts
|
|
var themes = {
|
|
dark: {
|
|
isLightTheme: false,
|
|
card_active: "#a9a9a9a",
|
|
card_searchResult: "#e0de7177",
|
|
wordBlock: "#99999966",
|
|
indentLine: "#ffffff55",
|
|
chars: {
|
|
["highlight" /* highlight */]: "#e0de7177",
|
|
// brighter yellow
|
|
["wikilink" /* wikilink */]: "#027aff77",
|
|
// brighter blue
|
|
["bold_italic" /* bold_italic */]: "#fb464c66",
|
|
// brighter red
|
|
["heading" /* heading */]: "#44cf6e77",
|
|
// brighter green
|
|
["bullet" /* bullet */]: "#fa99cd66",
|
|
// brighter pink
|
|
["tag" /* tag */]: "#e9973f77",
|
|
// brighter orange
|
|
["period" /* period */]: "#ffffff88",
|
|
// white
|
|
["strikethrough" /* strikethrough */]: "#a882ff66",
|
|
// brighter purple
|
|
["task" /* task */]: "#17e7e077",
|
|
// brighter cyan
|
|
["comma" /* comma */]: "#17e7e088"
|
|
// white
|
|
}
|
|
},
|
|
light: {
|
|
isLightTheme: true,
|
|
wordBlock: "#70707088",
|
|
card_active: "#aaaaaa",
|
|
card_searchResult: "#e0ac0077",
|
|
indentLine: "#777777aa",
|
|
chars: {
|
|
["highlight" /* highlight */]: "#e0ac0077",
|
|
// brighter yellow
|
|
["wikilink" /* wikilink */]: "#086ddd77",
|
|
// brighter blue
|
|
["bold_italic" /* bold_italic */]: "#e9314777",
|
|
// brighter red
|
|
["heading" /* heading */]: "#08b94e77",
|
|
// brighter green
|
|
["bullet" /* bullet */]: "#d5398477",
|
|
// brighter pink
|
|
["tag" /* tag */]: "#ec750077",
|
|
// brighter orange
|
|
["period" /* period */]: "#777777ee",
|
|
// original gray
|
|
["strikethrough" /* strikethrough */]: "#7852ee77",
|
|
// brighter purple
|
|
["task" /* task */]: "#17e7e077",
|
|
// brighter cyan
|
|
["comma" /* comma */]: "#11b3b3"
|
|
// brighter cyan
|
|
}
|
|
}
|
|
};
|
|
var minimapTheme = {
|
|
current: themes.dark
|
|
};
|
|
var refreshMinimapTheme = () => {
|
|
minimapTheme.current = themes[getTheme()];
|
|
};
|
|
|
|
// src/helpers/debounce.ts
|
|
var debounce2 = (func2, delay2) => {
|
|
let timeoutId = null;
|
|
return (...args) => {
|
|
if (timeoutId)
|
|
clearTimeout(timeoutId);
|
|
timeoutId = setTimeout(() => {
|
|
func2(...args);
|
|
}, delay2);
|
|
};
|
|
};
|
|
|
|
// inline-worker:__inline-worker
|
|
function inlineWorker(scriptText) {
|
|
let blob = new Blob([scriptText], { type: "text/javascript" });
|
|
let url = URL.createObjectURL(blob);
|
|
let worker = new Worker(url);
|
|
URL.revokeObjectURL(url);
|
|
return worker;
|
|
}
|
|
|
|
// src/stores/minimap/subscriptions/effects/minimap-canvas/worker/minimap-renderer.worker.ts
|
|
function Worker2() {
|
|
return inlineWorker('var C=class{constructor(){this.caches={};this.getCachedResult=(t,i,r,s)=>{let c=this.caches[t];if(!c)return;let o=c.get(i);if(o){if(o.availableLineCharacters===s&&o.content===r)return o.result;c.delete(i)}};this.cacheResult=(t,i,r,s,c)=>{this.caches[t]||(this.caches[t]=new Map),this.caches[t].set(i,{availableLineCharacters:s,content:r,result:c})};this.deleteCanvasCache=t=>{delete this.caches[t]}}},d=new C;var A={"#":"heading","-":"bullet",".":"period","=":"highlight","*":"bold_italic",_:"bold_italic","[":"wikilink","]":"wikilink","~":"strikethrough",",":"comma"},X=/\\b(dr|mr|mrs|ms|e\\.g|e\\.i|sr|jr|st|ave|rd|no|vs|etc|vol|ed|pp)\\b/i,W=new Set(["^",".","!","`","*","%","?",\'"\',"~","@","\'","(",")","!","{","}","[","]","^","%","$","+","=","\\\\"]),v=(n,t,i,r)=>{let s=d.getCachedResult(r,i,n,t);if(s)return s;let c=!n.trim();c&&(n="empty");let o=[],e={chunk:{chunk:"",length_chars:-1,line:0,type:null,x_chars:0},x:0,line:0,type:null,previousType:null,previousLine:0,category:null,isSpace:!1,isAfterOpeningElement:!1,lineType:null};for(let a=0;a<n.length;a++){let l=n[a];if(l===`\n`){e.line++,e.lineType=null,e.x=0,(e.category==="full_line"||e.category==="block_without_space"||!e.isAfterOpeningElement)&&(e.category=null,e.type=null,e.previousType=null);continue}else if(l===" ")e.category==="block_with_space"||e.category==="full_line"||e.category==="full_line_container"||(e.type=null,e.isSpace=!0);else if(e.category!=="full_line"){let y=A[l];if(y){e.type=y;let p=n[a+1];if(l==="="&&p==="="||l==="~"&&p==="~"||l==="["&&p==="["||l==="]"&&p==="]"||l==="*"&&p==="*"||l==="*"&&n[a-1]!=="*"||l==="_")e.type!==e.previousType?(e.category="block_with_space",e.isAfterOpeningElement=!0):(e.category=null,e.isAfterOpeningElement=!1);else if(l==="#"&&e.x===0&&(p===" "||p==="#"))e.category="full_line",e.lineType=e.type;else if(l==="#"&&!W.has(p))e.type="tag",e.category="block_without_space";else if(l==="-"&&e.x===0)e.category="full_line_container",p===" "&&n[a+2]==="["&&n[a+4]==="]"&&(e.type="task"),e.lineType=e.type;else if(l==="."){let k=(n[a-3]||"")+n[a-2]+n[a-1];!(p&&p.match(/[A-Z\\d]/))&&!n[a-1].match(/[.!?]/)&&!X.test(k)&&!(n[a-1]==="e"&&p==="g")&&!(n[a-1]==="i"&&p==="e")?e.category="single_character":e.type=e.previousType}else if(l===","){let k=n[a-1]||"",S=n[a+1]||"";!k.match(/\\d/)||!S.match(/\\d/)?e.category="single_character":e.type=e.previousType}else e.type=e.previousType}}e.x+1>t?(e.line++,e.x=0,e.lineType=null):!e.type&&e.lineType&&(e.type=e.lineType),e.line!==e.previousLine?(e.chunk.length_chars=e.chunk.chunk.length,e.chunk.length_chars>0&&o.push(e.chunk),e.chunk={chunk:l,line:e.line,x_chars:0,length_chars:-1,type:e.type},e.previousLine=e.line):e.isSpace?(e.chunk.length_chars=e.chunk.chunk.length,e.chunk.length_chars>0&&o.push(e.chunk),e.chunk={chunk:"",line:e.line,x_chars:e.x+1,length_chars:-1,type:e.type},e.isSpace=!1,e.category=null):e.type!==e.previousType||e.category==="single_character"?(e.chunk.length_chars=e.chunk.chunk.length,e.chunk.length_chars>0&&o.push(e.chunk),e.chunk={chunk:l,line:e.line,x_chars:e.x,length_chars:-1,type:e.type},e.category==="single_character"&&(e.type=null)):e.chunk.chunk+=l,e.x++,e.previousType=e.type}e.chunk.length_chars=e.chunk.chunk.length,e.chunk.length_chars>0&&o.push(e.chunk);let u={chunks:o,totalLines:e.line+1,empty:c};return d.cacheResult(r,i,n,t,u),u};var I=58.666666666666664,b=2;var T=6,B=6,m=T+B;var G=1,w=(n,t,i)=>{var u;let r=I-t.depth*b,s=v(n.content,r,n.id,i),c={indentationLines:[],lineNumber:t.nextLineOffset,wordBlocks:[],depth:t.depth,nodeId:n.id,y_px:10*t.nextLineOffset};t.lines.push(c);let o=((u=s.chunks[0])==null?void 0:u.line)||0;for(let a of s.chunks){let l=t.nextLineOffset+a.line;a.line>o&&(c={indentationLines:[],lineNumber:l,wordBlocks:[],depth:t.depth,nodeId:n.id,y_px:10*l},t.lines.push(c),o=a.line),c.wordBlocks.push({width_px:a.length_chars*6,x_px:t.depth*m+a.x_chars*6,empty:s.empty,chunkType:a.type})}t.nextLineOffset=t.nextLineOffset+s.totalLines+1;let e=t.depth;t.depth=e+1;for(let a of n.children)w(a,t,i);t.depth=e},R=(n,t)=>{let i={nextLineOffset:G,depth:0,lines:[]};for(let r of n)w(r,i,t);return{lines:i.lines,totalLines:i.nextLineOffset+1}};var E=n=>{for(let t=0;t<n.length;t++){let i=n[t],r=i.depth,s=n[t+1],c=!0;s&&s.nodeId===i.nodeId&&(c=!1);for(let o=0;o<r;o++){let e=o*m;i.indentationLines.push({x_px:e,height_px:10-(c?4:0)})}}};var P=(n,t="")=>({id:n,content:t.trim(),children:[]}),D=(n,t)=>{var s;let i={};for(let c of n)for(let o of c.groups)for(let e of o.nodes){let u=P(e,(s=t[e])==null?void 0:s.content),a=i[o.parentId];a||(a=P(o.parentId),i[o.parentId]=a),a.children.push(u),i[e]=u}let r=[];if(n[0])for(let c of n[0].groups)for(let o of c.nodes){let e=i[o];if(e)r.push(e);else throw new Error(`could not find node ${o}`)}return r};var H=n=>{let t={};for(let i of n){let r=i.y_px,s=i.y_px+10;t[i.nodeId]?t[i.nodeId]={y_start:Math.min(r,t[i.nodeId].y_start),y_end:Math.max(s,t[i.nodeId].y_end),cardId:i.nodeId}:t[i.nodeId]={y_start:r,y_end:s,cardId:i.nodeId}}return t};var g=class{constructor(){this.lines=[];this.totalLines=0;this.cardRanges={}}calculateDocument(t,i){let r=D(t.columns,t.content),s=R(r,i);return this.lines=s.lines,this.totalLines=s.totalLines,E(s.lines),this.cardRanges=H(this.lines),{totalLines:this.totalLines,totalDrawnHeight_cpx:this.totalLines*10,cardRanges:this.cardRanges}}getLines(){return this.lines}getTotalLines(){return this.totalLines}getCardRange(t){return this.cardRanges[t]}getCardRanges(){return this.cardRanges}};var K=6,M=(n,t,i)=>{let r="",s="";for(let c=0;c<=t.length-1;c++){let o=t[c];for(let e of o.wordBlocks)e.empty||(s=e.chunkType?i.chars[e.chunkType]:i.wordBlock,s!==r&&(r=s,n.fillStyle=s),n.fillRect(e.x_px,o.y_px,e.width_px,K));r="",n.fillStyle=i.indentLine;for(let e of o.indentationLines)n.fillRect(e.x_px,o.y_px,T,e.height_px)}};var f=class{constructor(t,i,r){this.drawDocument=t=>{let i=this.shapes.getTotalLines()*10;this.canvas.height=i,M(this.ctx,this.shapes.getLines(),t)};this.ctx=t,this.canvas=i,this.shapes=r}};var F={dark:{isLightTheme:!1,card_active:"#a9a9a9a",card_searchResult:"#e0de7177",wordBlock:"#99999966",indentLine:"#ffffff55",chars:{highlight:"#e0de7177",wikilink:"#027aff77",bold_italic:"#fb464c66",heading:"#44cf6e77",bullet:"#fa99cd66",tag:"#e9973f77",period:"#ffffff88",strikethrough:"#a882ff66",task:"#17e7e077",comma:"#17e7e088"}},light:{isLightTheme:!0,wordBlock:"#70707088",card_active:"#aaaaaa",card_searchResult:"#e0ac0077",indentLine:"#777777aa",chars:{highlight:"#e0ac0077",wikilink:"#086ddd77",bold_italic:"#e9314777",heading:"#08b94e77",bullet:"#d5398477",tag:"#ec750077",period:"#777777ee",strikethrough:"#7852ee77",task:"#17e7e077",comma:"#11b3b3"}}},O={current:F.dark};var _=class{constructor(t,i,r){this.state={theme:O.current};this.setTheme=t=>{this.state.theme=t};this.setDocument=(t,i)=>{let r=this.shapes.calculateDocument(t,i);return this.renderer.drawDocument(this.state.theme),{totalDrawnHeight_cpx:r.totalDrawnHeight_cpx,cardRanges:r.cardRanges}};this.shapes=new g,this.renderer=new f(t,i,this.shapes),this.state.theme=r}};var L={canvases:{}};self.onmessage=n=>{let t=n.data.payload,i=null;if(t.type==="worker/initialize"){let r=t.payload.canvas.getContext("2d");r&&(L.canvases[t.payload.canvasId]={minimap:new _(r,t.payload.canvas,t.payload.theme)})}else if(t.type==="worker/destroy")delete L.canvases[t.payload.canvasId],d.deleteCanvasCache(t.payload.canvasId);else{let r=L.canvases[t.payload.canvasId];if(!r)throw new Error("no canvas context");t.type==="minimap/update-theme"?r.minimap.setTheme(t.payload.theme):t.type==="minimap/set/document"&&(i=r.minimap.setDocument(t.payload.document,t.payload.canvasId))}self.postMessage({id:n.data.id,payload:i})};\n');
|
|
}
|
|
|
|
// src/stores/view/subscriptions/effects/style-rules/workers/style-rules.worker.ts
|
|
function Worker3() {
|
|
return inlineWorker('var C=(r,u)=>{for(let e of r)for(let t of e.groups)if(t.parentId===u)return t};var y=(r,u)=>{var e,t;return(t=(e=C(r,u))==null?void 0:e.nodes.length)!=null?t:0};var g=r=>r.split(`\n`).filter(u=>u.trim().length>0).length;var N=/(?:[0-9]+(?:(?:,|.)[0-9]+)*|[-\'\u2019A-Za-z\\u00AA\\u00B5\\u00BA\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u08A0-\\u08B4\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0AF9\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D\\u0C58-\\u0C5A\\u0C60\\u0C61\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D5F-\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F5\\u13F8-\\u13FD\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16F1-\\u16F8\\u1700-\\u170C\\u170E-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1877\\u1880-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4B\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1CE9-\\u1CEC\\u1CEE-\\u1CF1\\u1CF5\\u1CF6\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2183\\u2184\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005\\u3006\\u3031-\\u3035\\u303B\\u303C\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA69D\\uA6A0-\\uA6E5\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA7AD\\uA7B0-\\uA7B7\\uA7F7-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA8FD\\uA90A-\\uA925\\uA930-\\uA946\\uA984-\\uA9B2\\uA9CF\\uA9E0-\\uA9E4\\uA9E6-\\uA9EF\\uA9FA-\\uA9FE\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA7E-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB65\\uAB70-\\uABE2\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC\u0B80-\u0BFF\uAC00-\uD7A3\uA960-\uA97C\uD7B0-\uD7C6])+|[\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u4E00-\\u9FD5\\uAC00-\\uD7A3\\uA960-\\uA97C\\uD7B0-\\uD7C6]/g,f=r=>{N.lastIndex=0;let u=r.match(N);return u?u.length:0};var I=/(?:[0-9]+(?:(?:,|.)[0-9]+)*|[-\'\u2019A-Za-z\\u00AA\\u00B5\\u00BA\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u08A0-\\u08B4\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0AF9\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D\\u0C58-\\u0C5A\\u0C60\\u0C61\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D5F-\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F5\\u13F8-\\u13FD\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16F1-\\u16F8\\u1700-\\u170C\\u170E-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1877\\u1880-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4B\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1CE9-\\u1CEC\\u1CEE-\\u1CF1\\u1CF5\\u1CF6\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2183\\u2184\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005\\u3006\\u3031-\\u3035\\u303B\\u303C\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA69D\\uA6A0-\\uA6E5\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA7AD\\uA7B0-\\uA7B7\\uA7F7-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA8FD\\uA90A-\\uA925\\uA930-\\uA946\\uA984-\\uA9B2\\uA9CF\\uA9E0-\\uA9E4\\uA9E6-\\uA9EF\\uA9FA-\\uA9FE\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA7E-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB65\\uAB70-\\uABE2\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC\u0B80-\u0BFF\uAC00-\uD7A3\uA960-\uA97C\uD7B0-\uD7C6])+|[\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u4E00-\\u9FD5\\uAC00-\\uD7A3\\uA960-\\uA97C\\uD7B0-\\uD7C6]/g,S=r=>r.length-r.replace(/--/g,"##").replace(I,"").length;var l=(r,u)=>{for(let e=0;e<r.length;e++){let t=r[e];for(let o of t.groups)if(o.nodes.find(n=>n===u))return e}return-1};var D=(r,u)=>{let e=l(r,u),t=new Set([u]);for(let o=e+1;o<r.length;o++){let n=r[o];for(let A of n.groups)if(t.has(A.parentId))for(let s of A.nodes)t.add(s)}return t.delete(u),Array.from(t)};var T=(r,u)=>D(r,u).length;var O=r=>{var e;return((e=r.match(/^#{1,6} .*/gm))!=null?e:[]).map(t=>t.replace(/^#{1,6} /,""))};var E=new Set(["HISTORY/APPLY_NEXT_SNAPSHOT","HISTORY/APPLY_PREVIOUS_SNAPSHOT","HISTORY/SELECT_SNAPSHOT","DOCUMENT/LOAD_FILE","RESET_STORE","DOCUMENT/MERGE_NODE","DOCUMENT/SPLIT_NODE","DOCUMENT/DELETE_NODE","DOCUMENT/EXTRACT_BRANCH","DOCUMENT/CUT_NODE"]);var p=new Set(["DOCUMENT/DROP_NODE","DOCUMENT/MOVE_NODE","DOCUMENT/INSERT_NODE","DOCUMENT/PASTE_NODE"]);var R=()=>({headings:{},content:{},"line-count":{},"character-count":{},"word-count":{},"headings-word-count":{},"direct-children-count":{},"total-children-count":{},depth:{}}),B=class{constructor(u,e){this.isEmpty=!0;this.resetCache=(u,e,t)=>{this.columns=e,this.content=t,!this.isEmpty&&(E.has(u.type)?(this.cache=R(),this.isEmpty=!0):p.has(u.type)?(this.cache.depth={},this.cache["direct-children-count"]={},this.cache["total-children-count"]={}):u.type==="DOCUMENT/SET_NODE_CONTENT"?(delete this.cache.headings[u.payload.nodeId],delete this.cache.content[u.payload.nodeId],delete this.cache["line-count"][u.payload.nodeId],delete this.cache["character-count"][u.payload.nodeId],delete this.cache["word-count"][u.payload.nodeId],delete this.cache["headings-word-count"][u.payload.nodeId]):u.type==="DOCUMENT/FORMAT_HEADINGS"&&(this.cache.headings={},this.cache.content={},this.cache["line-count"]={},this.cache["character-count"]={},this.cache["word-count"]={},this.cache["headings-word-count"]={}))};this.columns=u,this.content=e,this.cache=R()}cacheResult(u,e,t){this.isEmpty&&(this.isEmpty=!1),this.cache[e][u]=t}getProperty(u,e){var o,n,A,s;if(this.cache[e][u]!==void 0)return this.cache[e][u];let t;switch(e){case"direct-children-count":t=y(this.columns,u);break;case"total-children-count":t=T(this.columns,u);break;case"line-count":t=g((o=this.content[u])==null?void 0:o.content);break;case"word-count":t=f((n=this.content[u])==null?void 0:n.content);break;case"character-count":t=S((A=this.content[u])==null?void 0:A.content);break;case"depth":t=l(this.columns,u)+1;break;case"headings":t=O((s=this.content[u])==null?void 0:s.content).join(" ").toLowerCase();break;case"headings-word-count":t=f(this.getProperty(u,"headings"));break;default:throw new Error(`Unsupported property: ${e}`)}return this.cacheResult(u,e,t),t}};var v=(r,u)=>{for(let e of r)for(let t of e.groups)for(let o of t.nodes)if(o===u)return t};var w=(r,u)=>{for(let e=0;e<r.length;e++){let t=r[e];for(let o of t.groups)for(let n of o.nodes)if(n===u)return[e,o.parentId]}return null};var b=(r,u)=>{let e=[],t=w(r,u);if(!t)return e;let o=t[1],n=t[0];for(let A=n-1;A>=0&&o;A--){e.push(o);let s;for(let c of r[A].groups){for(let i of c.nodes)if(i===o){s=c.parentId;break}if(s)break}o=s}return e};var P=()=>({self:{},"direct-parent":{},"any-parent":{},"direct-children":{},"any-children":{}}),m=class{constructor(u){this.isEmpty=!0;this.resetCache=(u,e)=>{this.columns=e,!this.isEmpty&&(E.has(u.type)||p.has(u.type))&&(this.cache=P(),this.isEmpty=!0)};this.columns=u,this.cache=P()}cacheResult(u,e,t){this.isEmpty&&(this.isEmpty=!1),this.cache[e][u]=t}getTargetNodes(u,e){var o;if(this.cache[u][e]!==void 0)return this.cache[u][e];let t;switch(u){case"self":t=[e];break;case"direct-parent":{let n=v(this.columns,e);t=n?[n.parentId]:[];break}case"any-parent":t=b(this.columns,e);break;case"direct-children":{let n=C(this.columns,e);t=(o=n==null?void 0:n.nodes)!=null?o:[];break}case"any-children":t=D(this.columns,e);break;default:t=[]}return this.cacheResult(e,u,t),t}};var x=new Set(["equals","not-equals","empty","not-empty"]);var _=(r,u,e)=>{switch(u){case"equals":return r===e;case"not-equals":return r!==e;case"empty":return!r;case"not-empty":return!!r;case"contains":return r.includes(e);case"not-contains":return!r.includes(e);case"starts-with":return r.startsWith(e);case"not-starts-with":return!r.startsWith(e);case"ends-with":return r.endsWith(e);case"not-ends-with":return!r.endsWith(e);case"matches-regex":return new RegExp(e).test(r);case"not-matches-regex":return!new RegExp(e).test(r);default:return!1}};var M=(r,u,e,t)=>{switch(u){case"equals":return r===e;case"not-equals":return r!==e;case"empty":return r===0;case"not-empty":return r!==0;case"greater-than":return r>e;case"less-than":return r<e;case"between":return t!==void 0&&r>=e&&r<=t;case"not-between":return t!==void 0&&(r<e||r>t);default:return!1}};var U=(r,u,e,t,o)=>{var A,s;if(!u.enabled)return!1;let n=t.getTargetNodes(u.scope,r);for(let c of n){let i=(s=(A=e[c])==null?void 0:A.content)!=null?s:"";if("value"in u){let a=!1;if(u.property==="content"||u.property==="headings"){let F=u.property==="content"?i.toLowerCase():o.getProperty(r,"headings");a=_(F,u.operator,u.value.toLowerCase())}else{let F=o.getProperty(c,u.property);if(F===null)throw new Error("Value is null:"+u.property+" - "+c);a=M(F,u.operator,u.value,u.valueB)}if(a)return!0}}return!1};var L=(r,u,e,t)=>{let o={nodeStyles:new Map,allMatches:new Map},n=[...u].sort((A,s)=>A.priority-s.priority);for(let A of r.columns)for(let s of A.groups)for(let c of s.nodes)for(let i of n){if(!i.enabled||typeof i.condition.value=="string"&&i.condition.value.length===0&&!x.has(i.condition.operator))continue;if(U(c,i.condition,r.content,t,e)){o.nodeStyles.has(c)||o.nodeStyles.set(c,i.style);let F=o.allMatches.get(i.id);F||(F=[],o.allMatches.set(i.id,F)),F.push(c)}}return o};var d=class{constructor(){this.processStyleRules=(u,e,t)=>(!this.propertyResolver||!this.targetResolver?this.initialize(u):t&&this.resetResolversCache(u,t),L(u,e,this.propertyResolver,this.targetResolver));this.resetResolversCache=(u,e)=>{this.targetResolver.resetCache(e,u.columns),this.propertyResolver.resetCache(e,u.columns,u.content)};this.initialize=u=>{this.targetResolver=new m(u.columns),this.propertyResolver=new B(u.columns,u.content)}}};var h={};self.onmessage=r=>{let u=r.data,{id:e,payload:t}=u,o=null;switch(t.type){case"destroy":{delete h[t.payload.viewId];break}case"process-rules":{h[t.payload.viewId]||(h[t.payload.viewId]=new d),o=h[t.payload.viewId].processStyleRules(t.payload.document,t.payload.rules,t.payload.action);break}default:throw new Error(`Unhandled event type: ${t.type}`)}self.postMessage({id:e,payload:o})};\n');
|
|
}
|
|
|
|
// src/helpers/worker-promise.ts
|
|
var WorkerPromise = class {
|
|
constructor(worker) {
|
|
this.id = 0;
|
|
this.resolvers = {};
|
|
this.run = (payload, shared) => {
|
|
return new Promise((resolve) => {
|
|
if (this.id === 1e3)
|
|
this.id = 0;
|
|
const id2 = this.id++;
|
|
this.resolvers[id2] = resolve;
|
|
if (shared) {
|
|
this.worker.postMessage({ id: id2, payload }, [shared]);
|
|
} else
|
|
this.worker.postMessage({ id: id2, payload });
|
|
});
|
|
};
|
|
this.terminate = () => {
|
|
this.worker.terminate();
|
|
};
|
|
this.onMessage = (message) => {
|
|
const id2 = message.data.id;
|
|
const resolver = this.resolvers[id2];
|
|
if (resolver) {
|
|
resolver(message.data.payload);
|
|
delete this.resolvers[id2];
|
|
}
|
|
};
|
|
this.worker = worker;
|
|
this.worker.addEventListener("message", this.onMessage);
|
|
}
|
|
};
|
|
|
|
// src/obsidian/status-bar/helpers/status-bar.worker.ts
|
|
function Worker4() {
|
|
return inlineWorker('var i=(e,t="")=>({id:e,content:t.trim(),children:[]}),p=(e,t)=>{var r;let o={};for(let c of e)for(let s of c.groups)for(let d of s.nodes){let l=i(d,(r=t[d])==null?void 0:r.content),u=o[s.parentId];u||(u=i(s.parentId),o[s.parentId]=u),u.children.push(l),o[d]=l}let n=[];if(e[0])for(let c of e[0].groups)for(let s of c.nodes){let d=o[s];if(d)n.push(d);else throw new Error(`could not find node ${s}`)}return n};var a=(e,t=[])=>{for(let o of e)t.push(o),o.children.length>0&&a(o.children,t);return t},m=e=>e.reduce((t,o)=>t+o.content.length,0),f=e=>{let t=p(e.document.columns,e.document.content),o=a(t),n=m(o);if(n===0)return 0;let r=o.findIndex(d=>d.id===e.activeNode);if(r===-1)return 0;let c=o.slice(0,r+1),s=m(c);return Math.round(s/n*100)};var g=(e,t)=>{for(let o=0;o<e.length;o++){let n=e[o];for(let r of n.groups)if(r.nodes.find(c=>c===t))return o}return-1};var h=(e,t)=>{let o=g(e,t),n=new Set([t]);for(let r=o+1;r<e.length;r++){let c=e[r];for(let s of c.groups)if(n.has(s.parentId))for(let d of s.nodes)n.add(d)}return n.delete(t),Array.from(n)};var C=(e,t)=>h(e,t).length;self.onmessage=e=>{let t=e.data.payload,o=f(t),r={totalChildCount:C(t.document.columns,t.activeNode),progress:o};self.postMessage({id:e.data.id,payload:r})};\n');
|
|
}
|
|
|
|
// src/workers/worker-instances.ts
|
|
var minimapWorker = new WorkerPromise(new Worker2());
|
|
var rulesWorker = new WorkerPromise(new Worker3());
|
|
var statusBarWorker = new WorkerPromise(new Worker4());
|
|
|
|
// src/stores/minimap/subscriptions/effects/draw-document.ts
|
|
var drawDocument = async (view) => {
|
|
const minimapStore = view.getMinimapStore();
|
|
const state2 = minimapStore.getValue();
|
|
const lineageDocument = view.documentStore.getValue().document;
|
|
const canvasId = state2.canvasId;
|
|
const activeCardId = state2.activeCardId;
|
|
const payload = await minimapWorker.run({
|
|
type: "minimap/set/document",
|
|
payload: {
|
|
document: lineageDocument,
|
|
canvasId,
|
|
activeNodeId: activeCardId
|
|
}
|
|
});
|
|
invariant(payload);
|
|
minimapStore.dispatch({
|
|
type: "minimap/set-card-ranges",
|
|
payload: {
|
|
ranges: payload.cardRanges,
|
|
height_cpx: payload.totalDrawnHeight_cpx
|
|
}
|
|
});
|
|
};
|
|
var debouncedDrawDocument = debounce2(drawDocument, 100);
|
|
|
|
// src/stores/minimap/subscriptions/effects/set-minimap-dom.ts
|
|
var setMinimapDom = (view) => {
|
|
const minimapContainer = view.contentEl.querySelector(
|
|
".minimap-container"
|
|
);
|
|
if (!minimapContainer)
|
|
throw new SilentError("minimapContainer is undefined");
|
|
const canvasContainer = minimapContainer.querySelector(
|
|
".canvas-container"
|
|
);
|
|
invariant(canvasContainer);
|
|
const scrollIndicator = minimapContainer.querySelector(
|
|
"#scrollIndicator"
|
|
);
|
|
const canvas = minimapContainer.querySelector("canvas");
|
|
invariant(scrollIndicator);
|
|
invariant(canvas);
|
|
canvas.width = CANVAS_WIDTH_CPX;
|
|
const offscreen = canvas.transferControlToOffscreen();
|
|
const dom = {
|
|
offscreen,
|
|
canvas,
|
|
scrollIndicator,
|
|
canvasContainer
|
|
};
|
|
view.setMinimapDom(dom);
|
|
};
|
|
|
|
// src/stores/minimap/subscriptions/effects/initialize-minimap-worker.ts
|
|
var initializeMinimapWorker = async (view) => {
|
|
await minimapWorker.run(
|
|
{
|
|
type: "worker/initialize",
|
|
payload: {
|
|
canvas: view.getMinimapDom().offscreen,
|
|
canvasId: view.getMinimapStore().getValue().canvasId,
|
|
theme: minimapTheme.current
|
|
}
|
|
},
|
|
view.getMinimapDom().offscreen
|
|
);
|
|
};
|
|
|
|
// src/stores/minimap/subscriptions/actions/set-minimap-active-node.ts
|
|
var setMinimapActiveNode = (view) => {
|
|
view.getMinimapStore().dispatch({
|
|
type: "minimap/set-active-node",
|
|
payload: {
|
|
id: view.viewStore.getValue().document.activeNode
|
|
}
|
|
});
|
|
};
|
|
|
|
// src/stores/minimap/subscriptions/effects/scroll-indicator/apply-scroll-position.ts
|
|
var import_obsidian22 = require("obsidian");
|
|
var getContainerDimensions = (dom) => {
|
|
const minimapContainer = dom.scrollIndicator.parentElement;
|
|
if (!minimapContainer)
|
|
return null;
|
|
return {
|
|
clientHeight_dpx: minimapContainer.clientHeight,
|
|
containerHeight_cpx: dpx_to_cpx(minimapContainer.clientHeight)
|
|
};
|
|
};
|
|
var calculateScrollDimensions = (state2, clientHeight_dpx, containerHeight_cpx) => {
|
|
const indicatorHeight_cpx = containerHeight_cpx / state2.totalDrawnHeight_cpx * containerHeight_cpx;
|
|
const maxScroll_cpx = state2.totalDrawnHeight_cpx - containerHeight_cpx;
|
|
const scrollPercent = state2.scrollPosition_cpx / maxScroll_cpx;
|
|
const indicatorHeight_dpx = cpx_to_dpx(indicatorHeight_cpx);
|
|
const indicatorPosition_dpx = scrollPercent * (clientHeight_dpx - indicatorHeight_dpx);
|
|
const scrollPosition_dpx = cpx_to_dpx(state2.scrollPosition_cpx);
|
|
return {
|
|
indicatorHeight_dpx,
|
|
indicatorPosition_dpx,
|
|
scrollPosition_dpx
|
|
};
|
|
};
|
|
var applyDomUpdates = (dom, dimensions) => {
|
|
requestAnimationFrame(() => {
|
|
dom.scrollIndicator.style.height = `${dimensions.indicatorHeight_dpx}px`;
|
|
dom.scrollIndicator.style.transform = `translateY(${dimensions.indicatorPosition_dpx}px)`;
|
|
dom.canvasContainer.style.transform = `translateY(${-dimensions.scrollPosition_dpx}px)`;
|
|
});
|
|
};
|
|
var applyScrollPosition = (state2, dom) => {
|
|
const dimensions = getContainerDimensions(dom);
|
|
if (!dimensions)
|
|
return;
|
|
const isScrollIndicatorHidden = state2.totalDrawnHeight_cpx <= dimensions.containerHeight_cpx;
|
|
if (isScrollIndicatorHidden) {
|
|
dom.scrollIndicator.style.display = "none";
|
|
dom.canvasContainer.style.transform = "translateY(0)";
|
|
return;
|
|
}
|
|
dom.scrollIndicator.style.display = "block";
|
|
const scrollDimensions = calculateScrollDimensions(
|
|
state2,
|
|
dimensions.clientHeight_dpx,
|
|
dimensions.containerHeight_cpx
|
|
);
|
|
applyDomUpdates(dom, scrollDimensions);
|
|
};
|
|
var debouncedApplyScrollPosition = (0, import_obsidian22.debounce)(applyScrollPosition, 16);
|
|
|
|
// src/stores/minimap/subscriptions/on-minimap-mount.ts
|
|
var onMinimapMount = async (view) => {
|
|
const minimapStore = view.minimapStore;
|
|
invariant(minimapStore);
|
|
refreshMinimapTheme();
|
|
setMinimapDom(view);
|
|
initializeMinimapWorker(view);
|
|
setMinimapActiveNode(view);
|
|
await drawDocument(view);
|
|
debouncedApplyScrollPosition(
|
|
minimapStore.getValue().scrollInfo,
|
|
view.getMinimapDom()
|
|
);
|
|
};
|
|
|
|
// src/stores/minimap/subscriptions/actions/set-scrollbar-position/calculate-scroll-delta-to-active-card.ts
|
|
var calculateScrollDeltaToActiveCard = (y_start_cpx, y_end_cpx, totalDrawnHeight_cpx, scrollPosition_cpx, clientHeight_dpx) => {
|
|
const containerHeight_cpx = dpx_to_cpx(clientHeight_dpx);
|
|
const contentFitsContainer = totalDrawnHeight_cpx <= containerHeight_cpx;
|
|
if (contentFitsContainer) {
|
|
return null;
|
|
}
|
|
const currentScroll_cpx = scrollPosition_cpx;
|
|
const visibleStart_cpx = currentScroll_cpx;
|
|
const visibleEnd_cpx = currentScroll_cpx + containerHeight_cpx;
|
|
const startIsVisible = y_start_cpx > visibleStart_cpx && y_start_cpx < visibleEnd_cpx;
|
|
const endIsVisible = y_end_cpx > visibleStart_cpx && y_end_cpx < visibleEnd_cpx;
|
|
if (startIsVisible && endIsVisible) {
|
|
return null;
|
|
}
|
|
let newScroll_cpx = 0;
|
|
const range_height_cpx = y_end_cpx - y_start_cpx;
|
|
const rangeIsTallerThanContainer = range_height_cpx > containerHeight_cpx;
|
|
if (rangeIsTallerThanContainer) {
|
|
newScroll_cpx = y_start_cpx;
|
|
} else {
|
|
if (!startIsVisible) {
|
|
newScroll_cpx = y_start_cpx - 10;
|
|
} else if (!endIsVisible) {
|
|
newScroll_cpx = y_end_cpx - containerHeight_cpx + 10;
|
|
}
|
|
}
|
|
const maxScroll_cpx = totalDrawnHeight_cpx - containerHeight_cpx;
|
|
newScroll_cpx = Math.max(0, Math.min(newScroll_cpx, maxScroll_cpx));
|
|
return newScroll_cpx;
|
|
};
|
|
|
|
// src/stores/minimap/subscriptions/actions/set-scrollbar-position/set-scrollbar-position.ts
|
|
var setScrollbarPosition = debounce2((view) => {
|
|
const minimapStore = view.getMinimapStore();
|
|
const state2 = minimapStore.getValue();
|
|
const activeCardRange = state2.ranges.cards[state2.activeCardId];
|
|
invariant(activeCardRange);
|
|
const minimapContainer = view.getMinimapDom().canvasContainer.parentElement;
|
|
invariant(minimapContainer);
|
|
const delta_cpx = calculateScrollDeltaToActiveCard(
|
|
activeCardRange.y_start,
|
|
activeCardRange.y_end,
|
|
state2.scrollInfo.totalDrawnHeight_cpx,
|
|
state2.scrollInfo.scrollPosition_cpx,
|
|
minimapContainer.clientHeight
|
|
);
|
|
if (typeof delta_cpx === "number") {
|
|
minimapStore.dispatch({
|
|
type: "minimap/set-scroll-position",
|
|
payload: {
|
|
position_cpx: Number(delta_cpx)
|
|
}
|
|
});
|
|
}
|
|
}, 16);
|
|
|
|
// src/stores/minimap/subscriptions/on-minimap-state-update.ts
|
|
var onMinimapStateUpdate = (view, action, state2) => {
|
|
const minimapStore = view.minimapStore;
|
|
invariant(minimapStore);
|
|
if (action.type === "minimap/set-card-ranges") {
|
|
setScrollbarPosition(view);
|
|
} else if (action.type === "minimap/set-active-node") {
|
|
if (state2.ranges.cards[state2.activeCardId]) {
|
|
setScrollbarPosition(view);
|
|
}
|
|
} else if (action.type === "minimap/set-scroll-position") {
|
|
debouncedApplyScrollPosition(state2.scrollInfo, view.getMinimapDom());
|
|
}
|
|
};
|
|
|
|
// src/stores/minimap/subscriptions/minimap-subscriptions.ts
|
|
var minimapSubscriptions = (view) => {
|
|
const unsub = view.minimapStore.subscribe(
|
|
(viewState, action, initialRun) => {
|
|
if (initialRun) {
|
|
onMinimapMount(view);
|
|
} else if (action) {
|
|
onMinimapStateUpdate(view, action, viewState);
|
|
}
|
|
}
|
|
);
|
|
return () => {
|
|
unsub();
|
|
minimapWorker.run({
|
|
type: "worker/destroy",
|
|
payload: { canvasId: view.minimapStore.getValue().canvasId }
|
|
});
|
|
view.minimapStore = null;
|
|
};
|
|
};
|
|
|
|
// src/view/components/container/minimap/minimap.svelte
|
|
function add_css32(target) {
|
|
append_styles(target, "svelte-lp1si7", ":root{--scroll-indicator-color:rgba(255, 255, 255, 0.2)}.minimap-container.svelte-lp1si7{position:relative;height:100%;width:184px;padding:4px;background:var(--background-primary);overflow:hidden;flex:0 0 auto}canvas.svelte-lp1si7{width:176px;margin-right:4px}.canvas-container.svelte-lp1si7{transition:transform 0.1s ease-out;width:176px}.scroll-indicator.svelte-lp1si7{position:absolute;right:0;top:0;width:4px;background:var(--color-base-50);border-radius:2px;transition:transform 0.1s ease-out}");
|
|
}
|
|
function create_fragment90(ctx) {
|
|
let div2;
|
|
let div0;
|
|
let indicators;
|
|
let t0;
|
|
let canvas;
|
|
let t1;
|
|
let div1;
|
|
let current;
|
|
let mounted;
|
|
let dispose;
|
|
indicators = new indicators_default({});
|
|
return {
|
|
c() {
|
|
div2 = element("div");
|
|
div0 = element("div");
|
|
create_component(indicators.$$.fragment);
|
|
t0 = space();
|
|
canvas = element("canvas");
|
|
t1 = space();
|
|
div1 = element("div");
|
|
attr(canvas, "id", "minimap");
|
|
attr(canvas, "class", "svelte-lp1si7");
|
|
attr(div0, "class", "canvas-container svelte-lp1si7");
|
|
attr(div1, "class", "scroll-indicator svelte-lp1si7");
|
|
attr(div1, "id", "scrollIndicator");
|
|
attr(div2, "class", "minimap-container svelte-lp1si7");
|
|
},
|
|
m(target, anchor) {
|
|
insert(target, div2, anchor);
|
|
append(div2, div0);
|
|
mount_component(indicators, div0, null);
|
|
append(div0, t0);
|
|
append(div0, canvas);
|
|
append(div2, t1);
|
|
append(div2, div1);
|
|
current = true;
|
|
if (!mounted) {
|
|
dispose = [
|
|
listen(
|
|
div0,
|
|
"click",
|
|
/*onClick*/
|
|
ctx[0]
|
|
),
|
|
listen(
|
|
div0,
|
|
"mousemove",
|
|
/*onMousemove*/
|
|
ctx[2]
|
|
),
|
|
listen(
|
|
div2,
|
|
"wheel",
|
|
/*onWheel*/
|
|
ctx[1]
|
|
)
|
|
];
|
|
mounted = true;
|
|
}
|
|
},
|
|
p: noop,
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(indicators.$$.fragment, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(indicators.$$.fragment, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
if (detaching) {
|
|
detach(div2);
|
|
}
|
|
destroy_component(indicators);
|
|
mounted = false;
|
|
run_all(dispose);
|
|
}
|
|
};
|
|
}
|
|
function instance87($$self) {
|
|
const view = getView();
|
|
view.minimapStore = new Store(defaultMinimapState(), minimapReducer, this.onViewStoreError);
|
|
const onClick = (e) => onCanvasClick(e, view);
|
|
const onWheel = (e) => onCanvasWheel(e, view);
|
|
const onMousemove = createOnCanvasMousemove(view);
|
|
onMount(() => {
|
|
let unsub = null;
|
|
setTimeout(
|
|
() => {
|
|
unsub = minimapSubscriptions(view);
|
|
},
|
|
300
|
|
);
|
|
return () => {
|
|
if (unsub)
|
|
unsub();
|
|
};
|
|
});
|
|
return [onClick, onWheel, onMousemove];
|
|
}
|
|
var Minimap = class extends SvelteComponent {
|
|
constructor(options) {
|
|
super();
|
|
init(this, options, instance87, create_fragment90, safe_not_equal, {}, add_css32);
|
|
}
|
|
};
|
|
var minimap_default = Minimap;
|
|
|
|
// src/view/components/container/right-sidebar/right-sidebar.svelte
|
|
function add_css33(target) {
|
|
append_styles(target, "svelte-wtyjlq", ".lineage-right-sidebar.svelte-wtyjlq{--node-width:calc(var(--sidebar-width) - 40px);flex:0 0 auto;width:var(--animated-sidebar-width);position:relative;overflow:hidden;transition:width 0.3s ease}");
|
|
}
|
|
function create_if_block22(ctx) {
|
|
let minimap;
|
|
let current;
|
|
minimap = new minimap_default({});
|
|
return {
|
|
c() {
|
|
create_component(minimap.$$.fragment);
|
|
},
|
|
m(target, anchor) {
|
|
mount_component(minimap, target, anchor);
|
|
current = true;
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(minimap.$$.fragment, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(minimap.$$.fragment, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
destroy_component(minimap, detaching);
|
|
}
|
|
};
|
|
}
|
|
function create_fragment91(ctx) {
|
|
let div;
|
|
let div_class_value;
|
|
let div_style_value;
|
|
let current;
|
|
let if_block = (
|
|
/*showMinimap*/
|
|
ctx[2] && create_if_block22(ctx)
|
|
);
|
|
return {
|
|
c() {
|
|
div = element("div");
|
|
if (if_block)
|
|
if_block.c();
|
|
attr(div, "class", div_class_value = null_to_empty("lineage-right-sidebar") + " svelte-wtyjlq");
|
|
attr(div, "style", div_style_value = "--animated-sidebar-width: " + /*animatedSidebarWidth*/
|
|
ctx[0] + "px; --sidebar-width: " + /*sidebarWidth*/
|
|
ctx[1] + "px; }");
|
|
},
|
|
m(target, anchor) {
|
|
insert(target, div, anchor);
|
|
if (if_block)
|
|
if_block.m(div, null);
|
|
current = true;
|
|
},
|
|
p(ctx2, [dirty]) {
|
|
if (
|
|
/*showMinimap*/
|
|
ctx2[2]
|
|
) {
|
|
if (if_block) {
|
|
if (dirty & /*showMinimap*/
|
|
4) {
|
|
transition_in(if_block, 1);
|
|
}
|
|
} else {
|
|
if_block = create_if_block22(ctx2);
|
|
if_block.c();
|
|
transition_in(if_block, 1);
|
|
if_block.m(div, null);
|
|
}
|
|
} else if (if_block) {
|
|
group_outros();
|
|
transition_out(if_block, 1, 1, () => {
|
|
if_block = null;
|
|
});
|
|
check_outros();
|
|
}
|
|
if (!current || dirty & /*animatedSidebarWidth, sidebarWidth*/
|
|
3 && div_style_value !== (div_style_value = "--animated-sidebar-width: " + /*animatedSidebarWidth*/
|
|
ctx2[0] + "px; --sidebar-width: " + /*sidebarWidth*/
|
|
ctx2[1] + "px; }")) {
|
|
attr(div, "style", div_style_value);
|
|
}
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(if_block);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(if_block);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
if (detaching) {
|
|
detach(div);
|
|
}
|
|
if (if_block)
|
|
if_block.d();
|
|
}
|
|
};
|
|
}
|
|
var MIN_WIDTH = 184;
|
|
function instance88($$self, $$props, $$invalidate) {
|
|
let $showSidebarStore;
|
|
let animatedSidebarWidth = 0;
|
|
let sidebarWidth = MIN_WIDTH;
|
|
let showMinimap = false;
|
|
let showMinimapTimeout = null;
|
|
const view = getView();
|
|
const showSidebarStore = showMinimapStore(view);
|
|
component_subscribe($$self, showSidebarStore, (value) => $$invalidate(5, $showSidebarStore = value));
|
|
const toggleMinimap = (on) => {
|
|
if (on) {
|
|
$$invalidate(2, showMinimap = true);
|
|
$$invalidate(4, showMinimapTimeout = setTimeout(
|
|
() => {
|
|
view.contentEl.addClass("lineage-view__content-el--minimap-on");
|
|
},
|
|
150
|
|
));
|
|
} else {
|
|
setTimeout(
|
|
() => {
|
|
view.contentEl.removeClass("lineage-view__content-el--minimap-on");
|
|
},
|
|
150
|
|
);
|
|
$$invalidate(4, showMinimapTimeout = setTimeout(
|
|
() => {
|
|
$$invalidate(2, showMinimap = false);
|
|
},
|
|
400
|
|
));
|
|
}
|
|
};
|
|
$$self.$$.update = () => {
|
|
if ($$self.$$.dirty & /*showMinimapTimeout, $showSidebarStore*/
|
|
48) {
|
|
$: {
|
|
if (showMinimapTimeout)
|
|
clearTimeout(showMinimapTimeout);
|
|
if ($showSidebarStore) {
|
|
$$invalidate(0, animatedSidebarWidth = MIN_WIDTH);
|
|
$$invalidate(1, sidebarWidth = MIN_WIDTH);
|
|
toggleMinimap(true);
|
|
} else {
|
|
$$invalidate(0, animatedSidebarWidth = 0);
|
|
toggleMinimap(false);
|
|
}
|
|
}
|
|
}
|
|
};
|
|
return [
|
|
animatedSidebarWidth,
|
|
sidebarWidth,
|
|
showMinimap,
|
|
showSidebarStore,
|
|
showMinimapTimeout,
|
|
$showSidebarStore
|
|
];
|
|
}
|
|
var Right_sidebar = class extends SvelteComponent {
|
|
constructor(options) {
|
|
super();
|
|
init(this, options, instance88, create_fragment91, safe_not_equal, {}, add_css33);
|
|
}
|
|
};
|
|
var right_sidebar_default = Right_sidebar;
|
|
|
|
// src/view/actions/click-and-drag/click-and-drag.ts
|
|
var clickAndDrag = (element2, view) => {
|
|
let pressed = false;
|
|
let initializedValues = false;
|
|
let container_startX = 0;
|
|
let container_scrollLeft = 0;
|
|
let container_rectLeft = 0;
|
|
let zoomLevel = 1;
|
|
const columns_startY = [];
|
|
const columns_scrollTop = [];
|
|
const columns_rectTop = [];
|
|
let columns = [];
|
|
const onMouseMove = (e) => {
|
|
if (!pressed || e.buttons !== 1)
|
|
return;
|
|
if (!initializedValues) {
|
|
const rect = view.container.getBoundingClientRect();
|
|
container_rectLeft = rect.left;
|
|
container_startX = e.clientX - container_rectLeft;
|
|
container_scrollLeft = view.container.scrollLeft;
|
|
columns = Array.from(view.container.querySelectorAll(".column"));
|
|
for (let i = 0; i < columns.length; i++) {
|
|
const column = columns[i];
|
|
const rect2 = column.getBoundingClientRect();
|
|
columns_scrollTop[i] = column.scrollTop;
|
|
columns_startY[i] = e.clientY - rect2.top;
|
|
columns_rectTop[i] = rect2.top;
|
|
}
|
|
zoomLevel = view.plugin.settings.getValue().view.zoomLevel;
|
|
initializedValues = true;
|
|
}
|
|
const _columns_rectTop = Array.from(columns_rectTop);
|
|
const _columns_scrollTop = Array.from(columns_scrollTop);
|
|
const _columns_startY = Array.from(columns_startY);
|
|
requestAnimationFrame(() => {
|
|
const dx = e.clientX - container_rectLeft - container_startX;
|
|
view.container.scrollLeft = container_scrollLeft - dx;
|
|
for (let i = 0; i < columns.length; i++) {
|
|
const dy = e.clientY - _columns_rectTop[i] - _columns_startY[i];
|
|
const column = columns[i];
|
|
column.scrollTop = _columns_scrollTop[i] - dy / zoomLevel;
|
|
}
|
|
});
|
|
};
|
|
const onKeyDown = (e) => {
|
|
if (e.key === " " && !pressed) {
|
|
const enabled = !isEditing(view) && e.target.tagName !== "INPUT";
|
|
if (enabled) {
|
|
pressed = true;
|
|
view.container.style.cursor = "grab";
|
|
e.preventDefault();
|
|
}
|
|
}
|
|
};
|
|
const onKeyUp = (e) => {
|
|
if (e.key === " " && pressed) {
|
|
pressed = false;
|
|
initializedValues = false;
|
|
setTimeout(() => {
|
|
view.container.style.cursor = "initial";
|
|
}, 50);
|
|
}
|
|
};
|
|
const onMouseDown = (e) => {
|
|
if (pressed) {
|
|
e.preventDefault();
|
|
e.stopPropagation();
|
|
}
|
|
};
|
|
const onMouseUp = (e) => {
|
|
if (pressed) {
|
|
initializedValues = false;
|
|
e.preventDefault();
|
|
e.stopPropagation();
|
|
}
|
|
};
|
|
const hookEvents = () => {
|
|
element2.addEventListener("mousemove", onMouseMove);
|
|
element2.addEventListener("keydown", onKeyDown);
|
|
element2.addEventListener("keyup", onKeyUp);
|
|
element2.addEventListener("mouseup", onMouseUp);
|
|
element2.addEventListener("mousedown", onMouseDown);
|
|
};
|
|
const unhookEvents = () => {
|
|
element2.removeEventListener("mousemove", onMouseMove);
|
|
element2.removeEventListener("keydown", onKeyDown);
|
|
element2.removeEventListener("keyup", onKeyUp);
|
|
element2.removeEventListener("mouseup", onMouseUp);
|
|
element2.removeEventListener("mousedown", onMouseDown);
|
|
};
|
|
hookEvents();
|
|
return {
|
|
destroy: () => {
|
|
unhookEvents();
|
|
}
|
|
};
|
|
};
|
|
|
|
// src/view/components/container/left-sidebar/components/tab-header/components/clickable-icon.svelte
|
|
function add_css34(target) {
|
|
append_styles(target, "svelte-1uy9r89", ".asterisk.svelte-1uy9r89{position:absolute;top:1px;right:1px;opacity:0.8}.theme-dark{& .clickable-icon {\n color: var(--color-base-60);\n };& .clickable-icon:active {\n color: var(--icon-color-active);\n }}.theme-light{& .lineage-view .sidebar-tabs-header .clickable-icon {\n color: var(--color-base-10);\n };& .lineage-view .sidebar-tabs-header .clickable-icon:active {\n color: var(--icon-color-active);\n }}.clickable-icon--active.svelte-1uy9r89{color:var(--icon-color-active);background-color:rgba(0, 0, 0, 0.3);background-blend-mode:multiply}");
|
|
}
|
|
function create_if_block23(ctx) {
|
|
let span;
|
|
return {
|
|
c() {
|
|
span = element("span");
|
|
span.textContent = "*";
|
|
attr(span, "class", "asterisk svelte-1uy9r89");
|
|
},
|
|
m(target, anchor) {
|
|
insert(target, span, anchor);
|
|
},
|
|
d(detaching) {
|
|
if (detaching) {
|
|
detach(span);
|
|
}
|
|
}
|
|
};
|
|
}
|
|
function create_fragment92(ctx) {
|
|
let button;
|
|
let t;
|
|
let button_class_value;
|
|
let current;
|
|
let mounted;
|
|
let dispose;
|
|
let if_block = (
|
|
/*hasEnabledItems*/
|
|
ctx[3] && create_if_block23(ctx)
|
|
);
|
|
const default_slot_template = (
|
|
/*#slots*/
|
|
ctx[6].default
|
|
);
|
|
const default_slot = create_slot(
|
|
default_slot_template,
|
|
ctx,
|
|
/*$$scope*/
|
|
ctx[5],
|
|
null
|
|
);
|
|
return {
|
|
c() {
|
|
button = element("button");
|
|
if (if_block)
|
|
if_block.c();
|
|
t = space();
|
|
if (default_slot)
|
|
default_slot.c();
|
|
attr(
|
|
button,
|
|
"aria-label",
|
|
/*label*/
|
|
ctx[1]
|
|
);
|
|
attr(button, "class", button_class_value = null_to_empty("clickable-icon nav-action-button " + /*isActive*/
|
|
(ctx[2] ? "clickable-icon--active " : "")) + " svelte-1uy9r89");
|
|
button.disabled = /*disabled*/
|
|
ctx[4];
|
|
set_style(button, "position", "relative");
|
|
},
|
|
m(target, anchor) {
|
|
insert(target, button, anchor);
|
|
if (if_block)
|
|
if_block.m(button, null);
|
|
append(button, t);
|
|
if (default_slot) {
|
|
default_slot.m(button, null);
|
|
}
|
|
current = true;
|
|
if (!mounted) {
|
|
dispose = listen(button, "click", function() {
|
|
if (is_function(
|
|
/*onClick*/
|
|
ctx[0]
|
|
))
|
|
ctx[0].apply(this, arguments);
|
|
});
|
|
mounted = true;
|
|
}
|
|
},
|
|
p(new_ctx, [dirty]) {
|
|
ctx = new_ctx;
|
|
if (
|
|
/*hasEnabledItems*/
|
|
ctx[3]
|
|
) {
|
|
if (if_block) {
|
|
} else {
|
|
if_block = create_if_block23(ctx);
|
|
if_block.c();
|
|
if_block.m(button, t);
|
|
}
|
|
} else if (if_block) {
|
|
if_block.d(1);
|
|
if_block = null;
|
|
}
|
|
if (default_slot) {
|
|
if (default_slot.p && (!current || dirty & /*$$scope*/
|
|
32)) {
|
|
update_slot_base(
|
|
default_slot,
|
|
default_slot_template,
|
|
ctx,
|
|
/*$$scope*/
|
|
ctx[5],
|
|
!current ? get_all_dirty_from_scope(
|
|
/*$$scope*/
|
|
ctx[5]
|
|
) : get_slot_changes(
|
|
default_slot_template,
|
|
/*$$scope*/
|
|
ctx[5],
|
|
dirty,
|
|
null
|
|
),
|
|
null
|
|
);
|
|
}
|
|
}
|
|
if (!current || dirty & /*label*/
|
|
2) {
|
|
attr(
|
|
button,
|
|
"aria-label",
|
|
/*label*/
|
|
ctx[1]
|
|
);
|
|
}
|
|
if (!current || dirty & /*isActive*/
|
|
4 && button_class_value !== (button_class_value = null_to_empty("clickable-icon nav-action-button " + /*isActive*/
|
|
(ctx[2] ? "clickable-icon--active " : "")) + " svelte-1uy9r89")) {
|
|
attr(button, "class", button_class_value);
|
|
}
|
|
if (!current || dirty & /*disabled*/
|
|
16) {
|
|
button.disabled = /*disabled*/
|
|
ctx[4];
|
|
}
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(default_slot, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(default_slot, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
if (detaching) {
|
|
detach(button);
|
|
}
|
|
if (if_block)
|
|
if_block.d();
|
|
if (default_slot)
|
|
default_slot.d(detaching);
|
|
mounted = false;
|
|
dispose();
|
|
}
|
|
};
|
|
}
|
|
function instance89($$self, $$props, $$invalidate) {
|
|
let { $$slots: slots = {}, $$scope } = $$props;
|
|
let { onClick } = $$props;
|
|
let { label } = $$props;
|
|
let { isActive = false } = $$props;
|
|
let { hasEnabledItems = false } = $$props;
|
|
let { disabled = false } = $$props;
|
|
$$self.$$set = ($$props2) => {
|
|
if ("onClick" in $$props2)
|
|
$$invalidate(0, onClick = $$props2.onClick);
|
|
if ("label" in $$props2)
|
|
$$invalidate(1, label = $$props2.label);
|
|
if ("isActive" in $$props2)
|
|
$$invalidate(2, isActive = $$props2.isActive);
|
|
if ("hasEnabledItems" in $$props2)
|
|
$$invalidate(3, hasEnabledItems = $$props2.hasEnabledItems);
|
|
if ("disabled" in $$props2)
|
|
$$invalidate(4, disabled = $$props2.disabled);
|
|
if ("$$scope" in $$props2)
|
|
$$invalidate(5, $$scope = $$props2.$$scope);
|
|
};
|
|
return [onClick, label, isActive, hasEnabledItems, disabled, $$scope, slots];
|
|
}
|
|
var Clickable_icon = class extends SvelteComponent {
|
|
constructor(options) {
|
|
super();
|
|
init(
|
|
this,
|
|
options,
|
|
instance89,
|
|
create_fragment92,
|
|
safe_not_equal,
|
|
{
|
|
onClick: 0,
|
|
label: 1,
|
|
isActive: 2,
|
|
hasEnabledItems: 3,
|
|
disabled: 4
|
|
},
|
|
add_css34
|
|
);
|
|
}
|
|
};
|
|
var clickable_icon_default = Clickable_icon;
|
|
|
|
// src/view/components/container/left-sidebar/components/tab-header/tab-header.svelte
|
|
function add_css35(target) {
|
|
append_styles(target, "svelte-rqh5hd", ".sidebar-tabs-header.svelte-rqh5hd{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;align-self:center;justify-self:center;box-sizing:border-box;height:auto}.tab-header-buttons.svelte-rqh5hd{display:flex;align-items:center;justify-content:center;gap:5px}");
|
|
}
|
|
function create_default_slot_15(ctx) {
|
|
let pin;
|
|
let current;
|
|
pin = new pin_default({ props: { class: "svg-icon" } });
|
|
return {
|
|
c() {
|
|
create_component(pin.$$.fragment);
|
|
},
|
|
m(target, anchor) {
|
|
mount_component(pin, target, anchor);
|
|
current = true;
|
|
},
|
|
p: noop,
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(pin.$$.fragment, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(pin.$$.fragment, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
destroy_component(pin, detaching);
|
|
}
|
|
};
|
|
}
|
|
function create_default_slot56(ctx) {
|
|
let clock;
|
|
let current;
|
|
clock = new clock_default({ props: { class: "svg-icon" } });
|
|
return {
|
|
c() {
|
|
create_component(clock.$$.fragment);
|
|
},
|
|
m(target, anchor) {
|
|
mount_component(clock, target, anchor);
|
|
current = true;
|
|
},
|
|
p: noop,
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(clock.$$.fragment, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(clock.$$.fragment, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
destroy_component(clock, detaching);
|
|
}
|
|
};
|
|
}
|
|
function create_fragment93(ctx) {
|
|
let div1;
|
|
let div0;
|
|
let clickableicon0;
|
|
let t;
|
|
let clickableicon1;
|
|
let current;
|
|
clickableicon0 = new clickable_icon_default({
|
|
props: {
|
|
hasEnabledItems: false,
|
|
isActive: (
|
|
/*$activeTab*/
|
|
ctx[0] === "pinned-cards"
|
|
),
|
|
label: lang.sidebar_tab_pinned_cards,
|
|
onClick: (
|
|
/*func*/
|
|
ctx[3]
|
|
),
|
|
$$slots: { default: [create_default_slot_15] },
|
|
$$scope: { ctx }
|
|
}
|
|
});
|
|
clickableicon1 = new clickable_icon_default({
|
|
props: {
|
|
hasEnabledItems: false,
|
|
isActive: (
|
|
/*$activeTab*/
|
|
ctx[0] === "recent-cards"
|
|
),
|
|
label: lang.sidebar_tab_recent_cards,
|
|
onClick: (
|
|
/*func_1*/
|
|
ctx[4]
|
|
),
|
|
$$slots: { default: [create_default_slot56] },
|
|
$$scope: { ctx }
|
|
}
|
|
});
|
|
return {
|
|
c() {
|
|
div1 = element("div");
|
|
div0 = element("div");
|
|
create_component(clickableicon0.$$.fragment);
|
|
t = space();
|
|
create_component(clickableicon1.$$.fragment);
|
|
attr(div0, "class", "tab-header-buttons svelte-rqh5hd");
|
|
attr(div1, "class", "sidebar-tabs-header svelte-rqh5hd");
|
|
},
|
|
m(target, anchor) {
|
|
insert(target, div1, anchor);
|
|
append(div1, div0);
|
|
mount_component(clickableicon0, div0, null);
|
|
append(div0, t);
|
|
mount_component(clickableicon1, div0, null);
|
|
current = true;
|
|
},
|
|
p(ctx2, [dirty]) {
|
|
const clickableicon0_changes = {};
|
|
if (dirty & /*$activeTab*/
|
|
1)
|
|
clickableicon0_changes.isActive = /*$activeTab*/
|
|
ctx2[0] === "pinned-cards";
|
|
if (dirty & /*$$scope*/
|
|
64) {
|
|
clickableicon0_changes.$$scope = { dirty, ctx: ctx2 };
|
|
}
|
|
clickableicon0.$set(clickableicon0_changes);
|
|
const clickableicon1_changes = {};
|
|
if (dirty & /*$activeTab*/
|
|
1)
|
|
clickableicon1_changes.isActive = /*$activeTab*/
|
|
ctx2[0] === "recent-cards";
|
|
if (dirty & /*$$scope*/
|
|
64) {
|
|
clickableicon1_changes.$$scope = { dirty, ctx: ctx2 };
|
|
}
|
|
clickableicon1.$set(clickableicon1_changes);
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(clickableicon0.$$.fragment, local);
|
|
transition_in(clickableicon1.$$.fragment, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(clickableicon0.$$.fragment, local);
|
|
transition_out(clickableicon1.$$.fragment, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
if (detaching) {
|
|
detach(div1);
|
|
}
|
|
destroy_component(clickableicon0);
|
|
destroy_component(clickableicon1);
|
|
}
|
|
};
|
|
}
|
|
function instance90($$self, $$props, $$invalidate) {
|
|
let $activeTab;
|
|
const view = getView();
|
|
const activeTab = LeftSidebarActiveTabStore(view);
|
|
component_subscribe($$self, activeTab, (value) => $$invalidate(0, $activeTab = value));
|
|
const setActiveTab = (tab) => {
|
|
view.plugin.settings.dispatch({
|
|
type: "view/left-sidebar/set-active-tab",
|
|
payload: { tab }
|
|
});
|
|
};
|
|
const func2 = () => setActiveTab("pinned-cards");
|
|
const func_1 = () => setActiveTab("recent-cards");
|
|
return [$activeTab, activeTab, setActiveTab, func2, func_1];
|
|
}
|
|
var Tab_header = class extends SvelteComponent {
|
|
constructor(options) {
|
|
super();
|
|
init(this, options, instance90, create_fragment93, safe_not_equal, {}, add_css35);
|
|
}
|
|
};
|
|
var tab_header_default = Tab_header;
|
|
|
|
// src/stores/view/derived/pinned-cards-sidebar.ts
|
|
var ActivePinnedCardStore = (view) => derived(view.viewStore, (state2) => state2.pinnedNodes.activeNode);
|
|
|
|
// src/view/components/container/left-sidebar/components/no-items/no-items.svelte
|
|
function create_fragment94(ctx) {
|
|
let div;
|
|
let t_value = (
|
|
/*variant*/
|
|
(ctx[0] === "pinned" ? lang.sidebar_no_pinned_cards : lang.sidebar_no_recent_cards) + ""
|
|
);
|
|
let t;
|
|
return {
|
|
c() {
|
|
div = element("div");
|
|
t = text(t_value);
|
|
attr(div, "class", "pane-empty");
|
|
},
|
|
m(target, anchor) {
|
|
insert(target, div, anchor);
|
|
append(div, t);
|
|
},
|
|
p(ctx2, [dirty]) {
|
|
if (dirty & /*variant*/
|
|
1 && t_value !== (t_value = /*variant*/
|
|
(ctx2[0] === "pinned" ? lang.sidebar_no_pinned_cards : lang.sidebar_no_recent_cards) + ""))
|
|
set_data(t, t_value);
|
|
},
|
|
i: noop,
|
|
o: noop,
|
|
d(detaching) {
|
|
if (detaching) {
|
|
detach(div);
|
|
}
|
|
}
|
|
};
|
|
}
|
|
function instance91($$self, $$props, $$invalidate) {
|
|
let { variant } = $$props;
|
|
$$self.$$set = ($$props2) => {
|
|
if ("variant" in $$props2)
|
|
$$invalidate(0, variant = $$props2.variant);
|
|
};
|
|
return [variant];
|
|
}
|
|
var No_items = class extends SvelteComponent {
|
|
constructor(options) {
|
|
super();
|
|
init(this, options, instance91, create_fragment94, safe_not_equal, { variant: 0 });
|
|
}
|
|
};
|
|
var no_items_default = No_items;
|
|
|
|
// src/view/components/container/left-sidebar/components/recent-cards/helpers/scroll-card-into-view.ts
|
|
var scrollCardIntoView = (container, activeNodeId) => {
|
|
const activeCard = container.querySelector(
|
|
`#${activeNodeId}`
|
|
);
|
|
if (activeCard) {
|
|
activeCard.scrollIntoView({ behavior: "smooth", block: "nearest" });
|
|
}
|
|
};
|
|
|
|
// src/view/components/container/left-sidebar/components/pinned-cards/actions/scroll-active-pinned-node.ts
|
|
var scrollActivePinnedNode = (containerRef) => {
|
|
const view = getView();
|
|
let timeout = null;
|
|
const activePinnedCardStore = ActivePinnedCardStore(view);
|
|
const activePinnedNodeSub = activePinnedCardStore.subscribe(
|
|
(activeNodeId) => {
|
|
if (timeout)
|
|
clearTimeout(timeout);
|
|
timeout = setTimeout(() => {
|
|
if (!containerRef)
|
|
return;
|
|
if (!activeNodeId)
|
|
return;
|
|
scrollCardIntoView(containerRef, activeNodeId);
|
|
}, 200);
|
|
}
|
|
);
|
|
const pinnedNodesStore = PinnedNodesStore(view);
|
|
const pinnedNodesSub = pinnedNodesStore.subscribe(() => {
|
|
if (timeout)
|
|
clearTimeout(timeout);
|
|
timeout = setTimeout(() => {
|
|
if (!containerRef)
|
|
return;
|
|
const activeNodeId = view.viewStore.getValue().pinnedNodes.activeNode;
|
|
if (!activeNodeId)
|
|
return;
|
|
scrollCardIntoView(containerRef, activeNodeId);
|
|
}, 200);
|
|
});
|
|
return {
|
|
destroy: () => {
|
|
activePinnedNodeSub();
|
|
pinnedNodesSub();
|
|
}
|
|
};
|
|
};
|
|
|
|
// src/view/components/container/left-sidebar/components/pinned-cards/pinned-cards-sidebar.svelte
|
|
function add_css36(target) {
|
|
append_styles(target, "svelte-1l2hv0v", ".pinned-cards-container.svelte-1l2hv0v{height:100%;width:100%;display:flex;flex-direction:column;align-items:center;gap:20px;flex:1 1 auto;padding-bottom:10px}");
|
|
}
|
|
function get_each_context12(ctx, list, i) {
|
|
const child_ctx = ctx.slice();
|
|
child_ctx[13] = list[i];
|
|
return child_ctx;
|
|
}
|
|
function create_else_block9(ctx) {
|
|
let noitems;
|
|
let current;
|
|
noitems = new no_items_default({ props: { variant: "pinned" } });
|
|
return {
|
|
c() {
|
|
create_component(noitems.$$.fragment);
|
|
},
|
|
m(target, anchor) {
|
|
mount_component(noitems, target, anchor);
|
|
current = true;
|
|
},
|
|
p: noop,
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(noitems.$$.fragment, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(noitems.$$.fragment, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
destroy_component(noitems, detaching);
|
|
}
|
|
};
|
|
}
|
|
function create_if_block24(ctx) {
|
|
let each_blocks = [];
|
|
let each_1_lookup = /* @__PURE__ */ new Map();
|
|
let each_1_anchor;
|
|
let current;
|
|
let each_value = ensure_array_like(
|
|
/*$pinnedNodesArray*/
|
|
ctx[0]
|
|
);
|
|
const get_key = (ctx2) => (
|
|
/*node*/
|
|
ctx2[13]
|
|
);
|
|
for (let i = 0; i < each_value.length; i += 1) {
|
|
let child_ctx = get_each_context12(ctx, each_value, i);
|
|
let key = get_key(child_ctx);
|
|
each_1_lookup.set(key, each_blocks[i] = create_each_block12(key, child_ctx));
|
|
}
|
|
return {
|
|
c() {
|
|
for (let i = 0; i < each_blocks.length; i += 1) {
|
|
each_blocks[i].c();
|
|
}
|
|
each_1_anchor = empty();
|
|
},
|
|
m(target, anchor) {
|
|
for (let i = 0; i < each_blocks.length; i += 1) {
|
|
if (each_blocks[i]) {
|
|
each_blocks[i].m(target, anchor);
|
|
}
|
|
}
|
|
insert(target, each_1_anchor, anchor);
|
|
current = true;
|
|
},
|
|
p(ctx2, dirty) {
|
|
if (dirty & /*$pinnedNodesArray, $activePinnedCard, $editingStateStore, $pendingConfirmation, $idSection, $styleRules*/
|
|
63) {
|
|
each_value = ensure_array_like(
|
|
/*$pinnedNodesArray*/
|
|
ctx2[0]
|
|
);
|
|
group_outros();
|
|
each_blocks = update_keyed_each(each_blocks, dirty, get_key, 1, ctx2, each_value, each_1_lookup, each_1_anchor.parentNode, outro_and_destroy_block, create_each_block12, each_1_anchor, get_each_context12);
|
|
check_outros();
|
|
}
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
for (let i = 0; i < each_value.length; i += 1) {
|
|
transition_in(each_blocks[i]);
|
|
}
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
for (let i = 0; i < each_blocks.length; i += 1) {
|
|
transition_out(each_blocks[i]);
|
|
}
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
if (detaching) {
|
|
detach(each_1_anchor);
|
|
}
|
|
for (let i = 0; i < each_blocks.length; i += 1) {
|
|
each_blocks[i].d(detaching);
|
|
}
|
|
}
|
|
};
|
|
}
|
|
function create_each_block12(key_1, ctx) {
|
|
let first;
|
|
let node_1;
|
|
let current;
|
|
node_1 = new card_default({
|
|
props: {
|
|
node: (
|
|
/*node*/
|
|
ctx[13]
|
|
),
|
|
active: (
|
|
/*$activePinnedCard*/
|
|
ctx[1] === /*node*/
|
|
ctx[13] ? "node" /* node */ : "sibling" /* sibling */
|
|
),
|
|
editing: (
|
|
/*$editingStateStore*/
|
|
ctx[2].activeNodeId === /*node*/
|
|
ctx[13] && /*$editingStateStore*/
|
|
ctx[2].isInSidebar === true
|
|
),
|
|
confirmDisableEdit: (
|
|
/*$editingStateStore*/
|
|
ctx[2].activeNodeId === /*node*/
|
|
ctx[13] && /*$pendingConfirmation*/
|
|
ctx[3].disableEdit === /*node*/
|
|
ctx[13] && /*$editingStateStore*/
|
|
ctx[2].isInSidebar === true
|
|
),
|
|
confirmDelete: (
|
|
/*$pendingConfirmation*/
|
|
ctx[3].deleteNode.has(
|
|
/*node*/
|
|
ctx[13]
|
|
)
|
|
),
|
|
isInSidebar: true,
|
|
firstColumn: true,
|
|
section: (
|
|
/*$idSection*/
|
|
ctx[4][
|
|
/*node*/
|
|
ctx[13]
|
|
]
|
|
),
|
|
hasActiveChildren: false,
|
|
hasChildren: false,
|
|
selected: false,
|
|
pinned: false,
|
|
style: (
|
|
/*$styleRules*/
|
|
ctx[5].get(
|
|
/*node*/
|
|
ctx[13]
|
|
)
|
|
),
|
|
outlineMode: false,
|
|
collapsed: false,
|
|
hidden: false,
|
|
alwaysShowCardButtons: true
|
|
}
|
|
});
|
|
return {
|
|
key: key_1,
|
|
first: null,
|
|
c() {
|
|
first = empty();
|
|
create_component(node_1.$$.fragment);
|
|
this.first = first;
|
|
},
|
|
m(target, anchor) {
|
|
insert(target, first, anchor);
|
|
mount_component(node_1, target, anchor);
|
|
current = true;
|
|
},
|
|
p(new_ctx, dirty) {
|
|
ctx = new_ctx;
|
|
const node_1_changes = {};
|
|
if (dirty & /*$pinnedNodesArray*/
|
|
1)
|
|
node_1_changes.node = /*node*/
|
|
ctx[13];
|
|
if (dirty & /*$activePinnedCard, $pinnedNodesArray*/
|
|
3)
|
|
node_1_changes.active = /*$activePinnedCard*/
|
|
ctx[1] === /*node*/
|
|
ctx[13] ? "node" /* node */ : "sibling" /* sibling */;
|
|
if (dirty & /*$editingStateStore, $pinnedNodesArray*/
|
|
5)
|
|
node_1_changes.editing = /*$editingStateStore*/
|
|
ctx[2].activeNodeId === /*node*/
|
|
ctx[13] && /*$editingStateStore*/
|
|
ctx[2].isInSidebar === true;
|
|
if (dirty & /*$editingStateStore, $pinnedNodesArray, $pendingConfirmation*/
|
|
13)
|
|
node_1_changes.confirmDisableEdit = /*$editingStateStore*/
|
|
ctx[2].activeNodeId === /*node*/
|
|
ctx[13] && /*$pendingConfirmation*/
|
|
ctx[3].disableEdit === /*node*/
|
|
ctx[13] && /*$editingStateStore*/
|
|
ctx[2].isInSidebar === true;
|
|
if (dirty & /*$pendingConfirmation, $pinnedNodesArray*/
|
|
9)
|
|
node_1_changes.confirmDelete = /*$pendingConfirmation*/
|
|
ctx[3].deleteNode.has(
|
|
/*node*/
|
|
ctx[13]
|
|
);
|
|
if (dirty & /*$idSection, $pinnedNodesArray*/
|
|
17)
|
|
node_1_changes.section = /*$idSection*/
|
|
ctx[4][
|
|
/*node*/
|
|
ctx[13]
|
|
];
|
|
if (dirty & /*$styleRules, $pinnedNodesArray*/
|
|
33)
|
|
node_1_changes.style = /*$styleRules*/
|
|
ctx[5].get(
|
|
/*node*/
|
|
ctx[13]
|
|
);
|
|
node_1.$set(node_1_changes);
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(node_1.$$.fragment, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(node_1.$$.fragment, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
if (detaching) {
|
|
detach(first);
|
|
}
|
|
destroy_component(node_1, detaching);
|
|
}
|
|
};
|
|
}
|
|
function create_fragment95(ctx) {
|
|
let div;
|
|
let current_block_type_index;
|
|
let if_block;
|
|
let scrollActivePinnedNode_action;
|
|
let current;
|
|
let mounted;
|
|
let dispose;
|
|
const if_block_creators = [create_if_block24, create_else_block9];
|
|
const if_blocks = [];
|
|
function select_block_type(ctx2, dirty) {
|
|
if (
|
|
/*$pinnedNodesArray*/
|
|
ctx2[0].length > 0
|
|
)
|
|
return 0;
|
|
return 1;
|
|
}
|
|
current_block_type_index = select_block_type(ctx, -1);
|
|
if_block = if_blocks[current_block_type_index] = if_block_creators[current_block_type_index](ctx);
|
|
return {
|
|
c() {
|
|
div = element("div");
|
|
if_block.c();
|
|
attr(div, "class", "pinned-cards-container svelte-1l2hv0v");
|
|
},
|
|
m(target, anchor) {
|
|
insert(target, div, anchor);
|
|
if_blocks[current_block_type_index].m(div, null);
|
|
current = true;
|
|
if (!mounted) {
|
|
dispose = action_destroyer(scrollActivePinnedNode_action = scrollActivePinnedNode.call(null, div));
|
|
mounted = true;
|
|
}
|
|
},
|
|
p(ctx2, [dirty]) {
|
|
let previous_block_index = current_block_type_index;
|
|
current_block_type_index = select_block_type(ctx2, dirty);
|
|
if (current_block_type_index === previous_block_index) {
|
|
if_blocks[current_block_type_index].p(ctx2, dirty);
|
|
} else {
|
|
group_outros();
|
|
transition_out(if_blocks[previous_block_index], 1, 1, () => {
|
|
if_blocks[previous_block_index] = null;
|
|
});
|
|
check_outros();
|
|
if_block = if_blocks[current_block_type_index];
|
|
if (!if_block) {
|
|
if_block = if_blocks[current_block_type_index] = if_block_creators[current_block_type_index](ctx2);
|
|
if_block.c();
|
|
} else {
|
|
if_block.p(ctx2, dirty);
|
|
}
|
|
transition_in(if_block, 1);
|
|
if_block.m(div, null);
|
|
}
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(if_block);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(if_block);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
if (detaching) {
|
|
detach(div);
|
|
}
|
|
if_blocks[current_block_type_index].d();
|
|
mounted = false;
|
|
dispose();
|
|
}
|
|
};
|
|
}
|
|
function instance92($$self, $$props, $$invalidate) {
|
|
let $pinnedNodesArray;
|
|
let $activePinnedCard;
|
|
let $editingStateStore;
|
|
let $pendingConfirmation;
|
|
let $idSection;
|
|
let $styleRules;
|
|
const view = getView();
|
|
const pinnedNodesArray = PinnedNodesStore(view);
|
|
component_subscribe($$self, pinnedNodesArray, (value) => $$invalidate(0, $pinnedNodesArray = value));
|
|
const idSection = IdSectionStore(view);
|
|
component_subscribe($$self, idSection, (value) => $$invalidate(4, $idSection = value));
|
|
const editingStateStore = documentStateStore(view);
|
|
component_subscribe($$self, editingStateStore, (value) => $$invalidate(2, $editingStateStore = value));
|
|
const activePinnedCard = ActivePinnedCardStore(view);
|
|
component_subscribe($$self, activePinnedCard, (value) => $$invalidate(1, $activePinnedCard = value));
|
|
const pendingConfirmation = PendingConfirmationStore(view);
|
|
component_subscribe($$self, pendingConfirmation, (value) => $$invalidate(3, $pendingConfirmation = value));
|
|
const styleRules = NodeStylesStore(view);
|
|
component_subscribe($$self, styleRules, (value) => $$invalidate(5, $styleRules = value));
|
|
return [
|
|
$pinnedNodesArray,
|
|
$activePinnedCard,
|
|
$editingStateStore,
|
|
$pendingConfirmation,
|
|
$idSection,
|
|
$styleRules,
|
|
pinnedNodesArray,
|
|
idSection,
|
|
editingStateStore,
|
|
activePinnedCard,
|
|
pendingConfirmation,
|
|
styleRules
|
|
];
|
|
}
|
|
var Pinned_cards_sidebar = class extends SvelteComponent {
|
|
constructor(options) {
|
|
super();
|
|
init(this, options, instance92, create_fragment95, safe_not_equal, {}, add_css36);
|
|
}
|
|
};
|
|
var pinned_cards_sidebar_default = Pinned_cards_sidebar;
|
|
|
|
// src/stores/view/derived/recent-nodes.ts
|
|
var ActiveRecentNodeStore = (view) => derived(view.viewStore, (state2) => state2.recentNodes.activeNode);
|
|
|
|
// src/helpers/remove-duplicates-from-array.ts
|
|
var removeDuplicatesFromArray = (array, reverse = false) => {
|
|
const uniqueItems = /* @__PURE__ */ new Set();
|
|
const newArray = [];
|
|
for (let i = array.length - 1; i >= 0; i--) {
|
|
const item = array[i];
|
|
if (!uniqueItems.has(item)) {
|
|
newArray.push(item);
|
|
uniqueItems.add(item);
|
|
}
|
|
}
|
|
return reverse ? newArray : newArray.reverse();
|
|
};
|
|
|
|
// src/view/components/container/left-sidebar/components/recent-cards/recent-cards.svelte
|
|
function add_css37(target) {
|
|
append_styles(target, "svelte-uest1q", ".recent-cards-container.svelte-uest1q{height:100%;width:100%;display:flex;flex-direction:column;align-items:center;gap:20px;flex:1 1 auto;padding-bottom:10px}");
|
|
}
|
|
function get_each_context13(ctx, list, i) {
|
|
const child_ctx = ctx.slice();
|
|
child_ctx[15] = list[i];
|
|
return child_ctx;
|
|
}
|
|
function create_else_block10(ctx) {
|
|
let noitems;
|
|
let current;
|
|
noitems = new no_items_default({ props: { variant: "recent" } });
|
|
return {
|
|
c() {
|
|
create_component(noitems.$$.fragment);
|
|
},
|
|
m(target, anchor) {
|
|
mount_component(noitems, target, anchor);
|
|
current = true;
|
|
},
|
|
p: noop,
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(noitems.$$.fragment, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(noitems.$$.fragment, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
destroy_component(noitems, detaching);
|
|
}
|
|
};
|
|
}
|
|
function create_if_block25(ctx) {
|
|
let each_blocks = [];
|
|
let each_1_lookup = /* @__PURE__ */ new Map();
|
|
let each_1_anchor;
|
|
let current;
|
|
let each_value = ensure_array_like(
|
|
/*recentNodes*/
|
|
ctx[0]
|
|
);
|
|
const get_key = (ctx2) => (
|
|
/*node*/
|
|
ctx2[15]
|
|
);
|
|
for (let i = 0; i < each_value.length; i += 1) {
|
|
let child_ctx = get_each_context13(ctx, each_value, i);
|
|
let key = get_key(child_ctx);
|
|
each_1_lookup.set(key, each_blocks[i] = create_each_block13(key, child_ctx));
|
|
}
|
|
return {
|
|
c() {
|
|
for (let i = 0; i < each_blocks.length; i += 1) {
|
|
each_blocks[i].c();
|
|
}
|
|
each_1_anchor = empty();
|
|
},
|
|
m(target, anchor) {
|
|
for (let i = 0; i < each_blocks.length; i += 1) {
|
|
if (each_blocks[i]) {
|
|
each_blocks[i].m(target, anchor);
|
|
}
|
|
}
|
|
insert(target, each_1_anchor, anchor);
|
|
current = true;
|
|
},
|
|
p(ctx2, dirty) {
|
|
if (dirty & /*recentNodes, $activeRecentCard, $editingStateStore, $pendingConfirmation, $idSection, $styleRules*/
|
|
125) {
|
|
each_value = ensure_array_like(
|
|
/*recentNodes*/
|
|
ctx2[0]
|
|
);
|
|
group_outros();
|
|
each_blocks = update_keyed_each(each_blocks, dirty, get_key, 1, ctx2, each_value, each_1_lookup, each_1_anchor.parentNode, outro_and_destroy_block, create_each_block13, each_1_anchor, get_each_context13);
|
|
check_outros();
|
|
}
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
for (let i = 0; i < each_value.length; i += 1) {
|
|
transition_in(each_blocks[i]);
|
|
}
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
for (let i = 0; i < each_blocks.length; i += 1) {
|
|
transition_out(each_blocks[i]);
|
|
}
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
if (detaching) {
|
|
detach(each_1_anchor);
|
|
}
|
|
for (let i = 0; i < each_blocks.length; i += 1) {
|
|
each_blocks[i].d(detaching);
|
|
}
|
|
}
|
|
};
|
|
}
|
|
function create_each_block13(key_1, ctx) {
|
|
let first;
|
|
let node_1;
|
|
let current;
|
|
node_1 = new card_default({
|
|
props: {
|
|
node: (
|
|
/*node*/
|
|
ctx[15]
|
|
),
|
|
active: (
|
|
/*$activeRecentCard*/
|
|
ctx[2] === /*node*/
|
|
ctx[15] ? "node" /* node */ : "sibling" /* sibling */
|
|
),
|
|
editing: (
|
|
/*$editingStateStore*/
|
|
ctx[3].activeNodeId === /*node*/
|
|
ctx[15] && /*$editingStateStore*/
|
|
ctx[3].isInSidebar === true
|
|
),
|
|
confirmDisableEdit: (
|
|
/*$editingStateStore*/
|
|
ctx[3].activeNodeId === /*node*/
|
|
ctx[15] && /*$pendingConfirmation*/
|
|
ctx[4].disableEdit === /*node*/
|
|
ctx[15] && /*$editingStateStore*/
|
|
ctx[3].isInSidebar === true
|
|
),
|
|
confirmDelete: (
|
|
/*$pendingConfirmation*/
|
|
ctx[4].deleteNode.has(
|
|
/*node*/
|
|
ctx[15]
|
|
)
|
|
),
|
|
isInSidebar: true,
|
|
firstColumn: true,
|
|
section: (
|
|
/*$idSection*/
|
|
ctx[5][
|
|
/*node*/
|
|
ctx[15]
|
|
]
|
|
),
|
|
hasActiveChildren: false,
|
|
hasChildren: false,
|
|
selected: false,
|
|
pinned: false,
|
|
style: (
|
|
/*$styleRules*/
|
|
ctx[6].get(
|
|
/*node*/
|
|
ctx[15]
|
|
)
|
|
),
|
|
outlineMode: false,
|
|
collapsed: false,
|
|
hidden: false,
|
|
alwaysShowCardButtons: true
|
|
}
|
|
});
|
|
return {
|
|
key: key_1,
|
|
first: null,
|
|
c() {
|
|
first = empty();
|
|
create_component(node_1.$$.fragment);
|
|
this.first = first;
|
|
},
|
|
m(target, anchor) {
|
|
insert(target, first, anchor);
|
|
mount_component(node_1, target, anchor);
|
|
current = true;
|
|
},
|
|
p(new_ctx, dirty) {
|
|
ctx = new_ctx;
|
|
const node_1_changes = {};
|
|
if (dirty & /*recentNodes*/
|
|
1)
|
|
node_1_changes.node = /*node*/
|
|
ctx[15];
|
|
if (dirty & /*$activeRecentCard, recentNodes*/
|
|
5)
|
|
node_1_changes.active = /*$activeRecentCard*/
|
|
ctx[2] === /*node*/
|
|
ctx[15] ? "node" /* node */ : "sibling" /* sibling */;
|
|
if (dirty & /*$editingStateStore, recentNodes*/
|
|
9)
|
|
node_1_changes.editing = /*$editingStateStore*/
|
|
ctx[3].activeNodeId === /*node*/
|
|
ctx[15] && /*$editingStateStore*/
|
|
ctx[3].isInSidebar === true;
|
|
if (dirty & /*$editingStateStore, recentNodes, $pendingConfirmation*/
|
|
25)
|
|
node_1_changes.confirmDisableEdit = /*$editingStateStore*/
|
|
ctx[3].activeNodeId === /*node*/
|
|
ctx[15] && /*$pendingConfirmation*/
|
|
ctx[4].disableEdit === /*node*/
|
|
ctx[15] && /*$editingStateStore*/
|
|
ctx[3].isInSidebar === true;
|
|
if (dirty & /*$pendingConfirmation, recentNodes*/
|
|
17)
|
|
node_1_changes.confirmDelete = /*$pendingConfirmation*/
|
|
ctx[4].deleteNode.has(
|
|
/*node*/
|
|
ctx[15]
|
|
);
|
|
if (dirty & /*$idSection, recentNodes*/
|
|
33)
|
|
node_1_changes.section = /*$idSection*/
|
|
ctx[5][
|
|
/*node*/
|
|
ctx[15]
|
|
];
|
|
if (dirty & /*$styleRules, recentNodes*/
|
|
65)
|
|
node_1_changes.style = /*$styleRules*/
|
|
ctx[6].get(
|
|
/*node*/
|
|
ctx[15]
|
|
);
|
|
node_1.$set(node_1_changes);
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(node_1.$$.fragment, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(node_1.$$.fragment, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
if (detaching) {
|
|
detach(first);
|
|
}
|
|
destroy_component(node_1, detaching);
|
|
}
|
|
};
|
|
}
|
|
function create_fragment96(ctx) {
|
|
let div;
|
|
let current_block_type_index;
|
|
let if_block;
|
|
let current;
|
|
const if_block_creators = [create_if_block25, create_else_block10];
|
|
const if_blocks = [];
|
|
function select_block_type(ctx2, dirty) {
|
|
if (
|
|
/*recentNodes*/
|
|
ctx2[0].length > 0
|
|
)
|
|
return 0;
|
|
return 1;
|
|
}
|
|
current_block_type_index = select_block_type(ctx, -1);
|
|
if_block = if_blocks[current_block_type_index] = if_block_creators[current_block_type_index](ctx);
|
|
return {
|
|
c() {
|
|
div = element("div");
|
|
if_block.c();
|
|
attr(div, "class", "recent-cards-container svelte-uest1q");
|
|
},
|
|
m(target, anchor) {
|
|
insert(target, div, anchor);
|
|
if_blocks[current_block_type_index].m(div, null);
|
|
ctx[12](div);
|
|
current = true;
|
|
},
|
|
p(ctx2, [dirty]) {
|
|
let previous_block_index = current_block_type_index;
|
|
current_block_type_index = select_block_type(ctx2, dirty);
|
|
if (current_block_type_index === previous_block_index) {
|
|
if_blocks[current_block_type_index].p(ctx2, dirty);
|
|
} else {
|
|
group_outros();
|
|
transition_out(if_blocks[previous_block_index], 1, 1, () => {
|
|
if_blocks[previous_block_index] = null;
|
|
});
|
|
check_outros();
|
|
if_block = if_blocks[current_block_type_index];
|
|
if (!if_block) {
|
|
if_block = if_blocks[current_block_type_index] = if_block_creators[current_block_type_index](ctx2);
|
|
if_block.c();
|
|
} else {
|
|
if_block.p(ctx2, dirty);
|
|
}
|
|
transition_in(if_block, 1);
|
|
if_block.m(div, null);
|
|
}
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(if_block);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(if_block);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
if (detaching) {
|
|
detach(div);
|
|
}
|
|
if_blocks[current_block_type_index].d();
|
|
ctx[12](null);
|
|
}
|
|
};
|
|
}
|
|
var RECENT_NODES_LIMIT = 30;
|
|
function instance93($$self, $$props, $$invalidate) {
|
|
let $activeRecentCard;
|
|
let $editingStateStore;
|
|
let $pendingConfirmation;
|
|
let $idSection;
|
|
let $styleRules;
|
|
const view = getView();
|
|
let recentNodes = [];
|
|
let containerRef = null;
|
|
const idSection = IdSectionStore(view);
|
|
component_subscribe($$self, idSection, (value) => $$invalidate(5, $idSection = value));
|
|
const editingStateStore = documentStateStore(view);
|
|
component_subscribe($$self, editingStateStore, (value) => $$invalidate(3, $editingStateStore = value));
|
|
const activeRecentCard = ActiveRecentNodeStore(view);
|
|
component_subscribe($$self, activeRecentCard, (value) => $$invalidate(2, $activeRecentCard = value));
|
|
const pendingConfirmation = PendingConfirmationStore(view);
|
|
component_subscribe($$self, pendingConfirmation, (value) => $$invalidate(4, $pendingConfirmation = value));
|
|
const styleRules = NodeStylesStore(view);
|
|
component_subscribe($$self, styleRules, (value) => $$invalidate(6, $styleRules = value));
|
|
const subscriptions = [];
|
|
subscriptions.push(ActiveRecentNodeStore(view).subscribe((activeNodeId) => {
|
|
setTimeout(
|
|
() => {
|
|
if (!containerRef)
|
|
return;
|
|
if (!activeNodeId)
|
|
return;
|
|
scrollCardIntoView(containerRef, activeNodeId);
|
|
},
|
|
200
|
|
);
|
|
}));
|
|
subscriptions.push(navigationHistoryStore(view).subscribe((state2) => {
|
|
const items = state2.items;
|
|
if (items.length > RECENT_NODES_LIMIT) {
|
|
const itemsToRemove = items.length - RECENT_NODES_LIMIT + 1;
|
|
items.splice(0, itemsToRemove);
|
|
}
|
|
$$invalidate(0, recentNodes = removeDuplicatesFromArray(items, true));
|
|
}));
|
|
onDestroy(() => {
|
|
for (const unsub of subscriptions) {
|
|
unsub();
|
|
}
|
|
});
|
|
function div_binding($$value) {
|
|
binding_callbacks[$$value ? "unshift" : "push"](() => {
|
|
containerRef = $$value;
|
|
$$invalidate(1, containerRef);
|
|
});
|
|
}
|
|
return [
|
|
recentNodes,
|
|
containerRef,
|
|
$activeRecentCard,
|
|
$editingStateStore,
|
|
$pendingConfirmation,
|
|
$idSection,
|
|
$styleRules,
|
|
idSection,
|
|
editingStateStore,
|
|
activeRecentCard,
|
|
pendingConfirmation,
|
|
styleRules,
|
|
div_binding
|
|
];
|
|
}
|
|
var Recent_cards = class extends SvelteComponent {
|
|
constructor(options) {
|
|
super();
|
|
init(this, options, instance93, create_fragment96, safe_not_equal, {}, add_css37);
|
|
}
|
|
};
|
|
var recent_cards_default = Recent_cards;
|
|
|
|
// src/view/components/container/left-sidebar/left-sidebar.svelte
|
|
function add_css38(target) {
|
|
append_styles(target, "svelte-11s0o0n", ".sidebar.svelte-11s0o0n{--node-width:calc(var(--sidebar-width) - 40px);flex:0 0 auto;width:var(--animated-sidebar-width);position:relative;overflow:hidden;background-color:rgba(0, 0, 0, 0.2);background-blend-mode:multiply;display:flex;flex-direction:column;padding:10px 0;gap:10px}.width-transition.svelte-11s0o0n{transition:width 0.3s ease}.resizer.svelte-11s0o0n{position:absolute;top:0;height:100%;bottom:0;background-color:transparent;transition:background-color 0.2s;cursor:col-resize;right:0px;width:4px}.resizer.svelte-11s0o0n:hover{background-color:var(--color-accent)}.limit-card-height.svelte-11s0o0n{& .lng-prev {\n max-height: 65vh;\n };& .editor-container {\n max-height: 65vh;\n }}");
|
|
}
|
|
function create_if_block_18(ctx) {
|
|
let recentcards;
|
|
let current;
|
|
recentcards = new recent_cards_default({});
|
|
return {
|
|
c() {
|
|
create_component(recentcards.$$.fragment);
|
|
},
|
|
m(target, anchor) {
|
|
mount_component(recentcards, target, anchor);
|
|
current = true;
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(recentcards.$$.fragment, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(recentcards.$$.fragment, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
destroy_component(recentcards, detaching);
|
|
}
|
|
};
|
|
}
|
|
function create_if_block26(ctx) {
|
|
let pinnedcards;
|
|
let current;
|
|
pinnedcards = new pinned_cards_sidebar_default({});
|
|
return {
|
|
c() {
|
|
create_component(pinnedcards.$$.fragment);
|
|
},
|
|
m(target, anchor) {
|
|
mount_component(pinnedcards, target, anchor);
|
|
current = true;
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(pinnedcards.$$.fragment, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(pinnedcards.$$.fragment, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
destroy_component(pinnedcards, detaching);
|
|
}
|
|
};
|
|
}
|
|
function create_fragment97(ctx) {
|
|
let div1;
|
|
let tabheader;
|
|
let t0;
|
|
let div0;
|
|
let t1;
|
|
let current_block_type_index;
|
|
let if_block;
|
|
let div1_class_value;
|
|
let div1_style_value;
|
|
let current;
|
|
let mounted;
|
|
let dispose;
|
|
tabheader = new tab_header_default({});
|
|
const if_block_creators = [create_if_block26, create_if_block_18];
|
|
const if_blocks = [];
|
|
function select_block_type(ctx2, dirty) {
|
|
if (
|
|
/*$activeTab*/
|
|
ctx2[4] === "pinned-cards"
|
|
)
|
|
return 0;
|
|
if (
|
|
/*$activeTab*/
|
|
ctx2[4] === "recent-cards"
|
|
)
|
|
return 1;
|
|
return -1;
|
|
}
|
|
if (~(current_block_type_index = select_block_type(ctx, -1))) {
|
|
if_block = if_blocks[current_block_type_index] = if_block_creators[current_block_type_index](ctx);
|
|
}
|
|
return {
|
|
c() {
|
|
div1 = element("div");
|
|
create_component(tabheader.$$.fragment);
|
|
t0 = space();
|
|
div0 = element("div");
|
|
t1 = space();
|
|
if (if_block)
|
|
if_block.c();
|
|
attr(div0, "class", "resizer svelte-11s0o0n");
|
|
attr(div1, "class", div1_class_value = null_to_empty("sidebar" + /*isResizing*/
|
|
(ctx[2] ? "" : " width-transition") + /*$limitPreviewHeight*/
|
|
(ctx[3] ? " limit-card-height" : "")) + " svelte-11s0o0n");
|
|
attr(div1, "style", div1_style_value = "--animated-sidebar-width: " + /*animatedSidebarWidth*/
|
|
ctx[0] + "px; --sidebar-width: " + /*sidebarWidth*/
|
|
ctx[1] + "px; }");
|
|
},
|
|
m(target, anchor) {
|
|
insert(target, div1, anchor);
|
|
mount_component(tabheader, div1, null);
|
|
append(div1, t0);
|
|
append(div1, div0);
|
|
append(div1, t1);
|
|
if (~current_block_type_index) {
|
|
if_blocks[current_block_type_index].m(div1, null);
|
|
}
|
|
current = true;
|
|
if (!mounted) {
|
|
dispose = listen(
|
|
div0,
|
|
"mousedown",
|
|
/*onStartResize*/
|
|
ctx[6]
|
|
);
|
|
mounted = true;
|
|
}
|
|
},
|
|
p(ctx2, [dirty]) {
|
|
let previous_block_index = current_block_type_index;
|
|
current_block_type_index = select_block_type(ctx2, dirty);
|
|
if (current_block_type_index !== previous_block_index) {
|
|
if (if_block) {
|
|
group_outros();
|
|
transition_out(if_blocks[previous_block_index], 1, 1, () => {
|
|
if_blocks[previous_block_index] = null;
|
|
});
|
|
check_outros();
|
|
}
|
|
if (~current_block_type_index) {
|
|
if_block = if_blocks[current_block_type_index];
|
|
if (!if_block) {
|
|
if_block = if_blocks[current_block_type_index] = if_block_creators[current_block_type_index](ctx2);
|
|
if_block.c();
|
|
} else {
|
|
}
|
|
transition_in(if_block, 1);
|
|
if_block.m(div1, null);
|
|
} else {
|
|
if_block = null;
|
|
}
|
|
}
|
|
if (!current || dirty & /*isResizing, $limitPreviewHeight*/
|
|
12 && div1_class_value !== (div1_class_value = null_to_empty("sidebar" + /*isResizing*/
|
|
(ctx2[2] ? "" : " width-transition") + /*$limitPreviewHeight*/
|
|
(ctx2[3] ? " limit-card-height" : "")) + " svelte-11s0o0n")) {
|
|
attr(div1, "class", div1_class_value);
|
|
}
|
|
if (!current || dirty & /*animatedSidebarWidth, sidebarWidth*/
|
|
3 && div1_style_value !== (div1_style_value = "--animated-sidebar-width: " + /*animatedSidebarWidth*/
|
|
ctx2[0] + "px; --sidebar-width: " + /*sidebarWidth*/
|
|
ctx2[1] + "px; }")) {
|
|
attr(div1, "style", div1_style_value);
|
|
}
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(tabheader.$$.fragment, local);
|
|
transition_in(if_block);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(tabheader.$$.fragment, local);
|
|
transition_out(if_block);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
if (detaching) {
|
|
detach(div1);
|
|
}
|
|
destroy_component(tabheader);
|
|
if (~current_block_type_index) {
|
|
if_blocks[current_block_type_index].d();
|
|
}
|
|
mounted = false;
|
|
dispose();
|
|
}
|
|
};
|
|
}
|
|
var MIN_WIDTH2 = 250;
|
|
function instance94($$self, $$props, $$invalidate) {
|
|
let $limitPreviewHeight;
|
|
let $activeTab;
|
|
let animatedSidebarWidth = 0;
|
|
let sidebarWidth = MIN_WIDTH2;
|
|
let isResizing = false;
|
|
let startX = 0;
|
|
const view = getView();
|
|
const limitPreviewHeight = limitPreviewHeightStore(view);
|
|
component_subscribe($$self, limitPreviewHeight, (value) => $$invalidate(3, $limitPreviewHeight = value));
|
|
const showSidebarStore = ShowLeftSidebarStore(view);
|
|
const unsub = showSidebarStore.subscribe((show) => {
|
|
if (show) {
|
|
$$invalidate(0, animatedSidebarWidth = view.plugin.settings.getValue().view.leftSidebarWidth);
|
|
$$invalidate(1, sidebarWidth = animatedSidebarWidth);
|
|
} else {
|
|
$$invalidate(0, animatedSidebarWidth = 0);
|
|
}
|
|
});
|
|
onDestroy(() => {
|
|
unsub();
|
|
});
|
|
const onStartResize = (event) => {
|
|
$$invalidate(2, isResizing = true);
|
|
startX = event.clientX;
|
|
view.contentEl.addEventListener("mousemove", onResize);
|
|
view.contentEl.addEventListener("mouseup", onStopResize);
|
|
};
|
|
const onResize = (event) => {
|
|
if (!isResizing)
|
|
return;
|
|
const dx = event.clientX - startX;
|
|
$$invalidate(0, animatedSidebarWidth += dx);
|
|
startX = event.clientX;
|
|
if (animatedSidebarWidth > MIN_WIDTH2) {
|
|
$$invalidate(1, sidebarWidth = animatedSidebarWidth);
|
|
}
|
|
};
|
|
const onStopResize = () => {
|
|
$$invalidate(2, isResizing = false);
|
|
view.contentEl.removeEventListener("mousemove", onResize);
|
|
view.contentEl.removeEventListener("mouseup", onStopResize);
|
|
if (animatedSidebarWidth < MIN_WIDTH2) {
|
|
$$invalidate(0, animatedSidebarWidth = MIN_WIDTH2);
|
|
}
|
|
$$invalidate(1, sidebarWidth = animatedSidebarWidth);
|
|
view.plugin.settings.dispatch({
|
|
type: "view/left-sidebar/set-width",
|
|
payload: { width: animatedSidebarWidth }
|
|
});
|
|
};
|
|
const activeTab = LeftSidebarActiveTabStore(view);
|
|
component_subscribe($$self, activeTab, (value) => $$invalidate(4, $activeTab = value));
|
|
return [
|
|
animatedSidebarWidth,
|
|
sidebarWidth,
|
|
isResizing,
|
|
$limitPreviewHeight,
|
|
$activeTab,
|
|
limitPreviewHeight,
|
|
onStartResize,
|
|
activeTab
|
|
];
|
|
}
|
|
var Left_sidebar = class extends SvelteComponent {
|
|
constructor(options) {
|
|
super();
|
|
init(this, options, instance94, create_fragment97, safe_not_equal, {}, add_css38);
|
|
}
|
|
};
|
|
var left_sidebar_default = Left_sidebar;
|
|
|
|
// src/view/actions/context-menu/context-menu.ts
|
|
var import_obsidian29 = require("obsidian");
|
|
|
|
// src/view/actions/context-menu/helpers/on-long-press.ts
|
|
var onLongPress = (element2, callback, preventDefaultPredicate) => {
|
|
const state2 = { timer: null, longPress: false };
|
|
const onTouchEnd = (e) => {
|
|
if (state2.longPress) {
|
|
state2.longPress = false;
|
|
if (preventDefaultPredicate(e)) {
|
|
e.stopPropagation();
|
|
e.preventDefault();
|
|
}
|
|
}
|
|
if (state2.timer)
|
|
clearTimeout(state2.timer);
|
|
};
|
|
const onTouchStart = (e) => {
|
|
if (state2.timer)
|
|
clearTimeout(state2.timer);
|
|
state2.timer = setTimeout(() => {
|
|
state2.longPress = true;
|
|
callback(e);
|
|
}, 500);
|
|
};
|
|
element2.addEventListener("touchstart", onTouchStart);
|
|
element2.addEventListener("touchend", onTouchEnd);
|
|
element2.addEventListener("touchmove", onTouchEnd);
|
|
return () => {
|
|
element2.removeEventListener("touchstart", onTouchStart);
|
|
element2.removeEventListener("touchend", onTouchEnd);
|
|
element2.removeEventListener("touchmove", onTouchEnd);
|
|
};
|
|
};
|
|
|
|
// src/obsidian/events/workspace/effects/create-new-file.ts
|
|
var import_obsidian23 = require("obsidian");
|
|
|
|
// src/helpers/sanitize-file-name.ts
|
|
var sanitizeFileName = (path, replacement = "-") => {
|
|
const illegalCharacters = /[*"\\/<>:|?]/g;
|
|
const unsafeCharactersForObsidianLinks = /[#^[\]|]/g;
|
|
const dotAtTheStart = /^\./g;
|
|
const controlRe = /[\x00-\x1f\x80-\x9f]/g;
|
|
const reservedRe = /^\.+$/;
|
|
const windowsReservedRe = /^(con|prn|aux|nul|com[0-9]|lpt[0-9])(\..*)?$/i;
|
|
const windowsTrailingRe = /[. ]+$/;
|
|
let sanitized = path.replace(/"/g, "'").replace(illegalCharacters, replacement).replace(unsafeCharactersForObsidianLinks, replacement).replace(dotAtTheStart, replacement).replace(controlRe, replacement).replace(reservedRe, replacement).replace(windowsReservedRe, replacement).replace(windowsTrailingRe, replacement);
|
|
if (replacement)
|
|
sanitized = sanitized.replace(new RegExp(`${replacement}+`, "g"), replacement).replace(
|
|
new RegExp(`^${replacement}(.)|(.)${replacement}$`, "g"),
|
|
"$1$2"
|
|
);
|
|
return sanitized.trim();
|
|
};
|
|
|
|
// src/obsidian/events/workspace/effects/get-unique-file-name.ts
|
|
var getUniqueFileName = (folderPath, files, basename) => {
|
|
basename = sanitizeFileName(basename);
|
|
let index = 1;
|
|
let newFileName = basename;
|
|
while (files.includes(`${newFileName}`)) {
|
|
newFileName = `${basename} (${index})`;
|
|
index++;
|
|
}
|
|
return `${folderPath}/${newFileName}`;
|
|
};
|
|
|
|
// src/obsidian/events/workspace/effects/create-new-file.ts
|
|
var createNewFile = async (plugin, folder, data = "", basename = "Untitled") => {
|
|
invariant(folder);
|
|
const children2 = folder.children.map(
|
|
(c) => c instanceof import_obsidian23.TFile && c.extension === "md" ? c.basename : null
|
|
).filter((f) => f);
|
|
const path = getUniqueFileName(folder.path, children2, basename);
|
|
const newFilePath = path + ".md";
|
|
const file = await plugin.app.vault.create(newFilePath, data);
|
|
invariant(file);
|
|
return file;
|
|
};
|
|
|
|
// src/obsidian/events/workspace/effects/open-file.ts
|
|
var openFile = async (plugin, file, newLeaf) => {
|
|
const leaf = plugin.app.workspace.getLeaf(newLeaf);
|
|
await leaf.openFile(file);
|
|
return leaf;
|
|
};
|
|
|
|
// src/obsidian/events/workspace/effects/toggle-obsidian-view-type.ts
|
|
var toggleObsidianViewType = (plugin, leaf, type) => {
|
|
setTimeout(() => {
|
|
leaf.setViewState({
|
|
type,
|
|
popstate: true,
|
|
state: leaf.view.getState()
|
|
});
|
|
const activeLeaf = plugin.app.workspace.getLeaf();
|
|
if (activeLeaf !== leaf) {
|
|
plugin.app.workspace.revealLeaf(leaf);
|
|
}
|
|
plugin.app.workspace.setActiveLeaf(leaf);
|
|
}, 0);
|
|
};
|
|
|
|
// src/obsidian/events/workspace/actions/set-document-format.ts
|
|
var setDocumentFormat = (plugin, path, type) => {
|
|
plugin.settings.dispatch({
|
|
type: "SET_DOCUMENT_TYPE",
|
|
payload: {
|
|
path,
|
|
format: type
|
|
}
|
|
});
|
|
};
|
|
|
|
// src/obsidian/events/workspace/effects/open-file-in-lineage.ts
|
|
var openFileInLineage = async (plugin, file, type, newLeaf) => {
|
|
const leaf = await openFile(plugin, file, newLeaf);
|
|
toggleObsidianViewType(plugin, leaf, "lineage");
|
|
setDocumentFormat(plugin, file.path, type);
|
|
};
|
|
|
|
// src/obsidian/commands/helpers/extract-branch/helpers/get-file-name-of-extracted-branch/get-file-name-from-content.ts
|
|
var getFileNameFromContent = (text2) => {
|
|
const lines = text2.split("\n").map((line) => line.trim().replace(/\s+/g, " ")).filter((line) => line);
|
|
if (lines.length === 0)
|
|
return;
|
|
let result = void 0;
|
|
const headingLine = lines.find((line) => /^(#+)\s(.+)/.test(line));
|
|
if (headingLine) {
|
|
const headingMatch = headingLine.match(/^(#+)\s(.+)/);
|
|
result = headingMatch[2];
|
|
} else if (lines[0].startsWith("- ")) {
|
|
result = lines[0].replace(/^- /, "");
|
|
} else {
|
|
result = lines.join(" ");
|
|
}
|
|
return result.substring(0, 100).trim();
|
|
};
|
|
|
|
// src/obsidian/commands/helpers/extract-branch/helpers/get-file-name-of-extracted-branch/get-file-name-of-extracted-branch.ts
|
|
var getFileNameOfExtractedBranch = (nodeContent, currentFileName, sectionNumber) => {
|
|
const name = getFileNameFromContent(nodeContent);
|
|
if (name)
|
|
return name;
|
|
return `${currentFileName.trim()} - ${sectionNumber}`;
|
|
};
|
|
|
|
// src/obsidian/commands/helpers/extract-branch/extract-branch.ts
|
|
var extractBranch = async (view) => {
|
|
try {
|
|
invariant(view.file);
|
|
invariant(view.file.parent);
|
|
const viewState = view.viewStore.getValue();
|
|
const isEditing2 = Boolean(viewState.document.editing.activeNodeId);
|
|
if (isEditing2) {
|
|
saveNodeContent(view);
|
|
setTimeout(() => {
|
|
extractBranch(view);
|
|
}, 100);
|
|
return;
|
|
}
|
|
const documentState = view.documentStore.getValue();
|
|
const branch = getBranch(
|
|
documentState.document.columns,
|
|
documentState.document.content,
|
|
viewState.document.activeNode,
|
|
"copy"
|
|
);
|
|
const format2 = getDocumentFormat(view);
|
|
const text2 = format2 === "outline" ? branchToOutline([branch]) : format2 === "html-element" ? branchToHtmlElement([branch]) : branchToHtmlComment([branch]);
|
|
const fileName = getFileNameOfExtractedBranch(
|
|
branch.content[branch.nodeId].content,
|
|
view.file.basename,
|
|
documentState.sections.id_section[branch.nodeId]
|
|
);
|
|
const newFile = await createNewFile(
|
|
view.plugin,
|
|
view.file.parent,
|
|
text2,
|
|
fileName
|
|
);
|
|
await openFileInLineage(view.plugin, newFile, format2, "split");
|
|
view.documentStore.dispatch({
|
|
type: "DOCUMENT/EXTRACT_BRANCH",
|
|
payload: {
|
|
nodeId: branch.nodeId,
|
|
documentName: newFile.basename
|
|
}
|
|
});
|
|
} catch (e) {
|
|
onPluginError(e, "command", { type: "extract-branch" });
|
|
}
|
|
};
|
|
|
|
// src/view/modals/split-node-modal/split-node-modal.ts
|
|
var import_obsidian24 = require("obsidian");
|
|
|
|
// src/view/modals/split-node-modal/helpers/get-modal-state.ts
|
|
var getModalState = () => {
|
|
return getContext("modal-state");
|
|
};
|
|
|
|
// src/view/modals/split-node-modal/components/components/content-preview.svelte
|
|
function add_css39(target) {
|
|
append_styles(target, "svelte-20u69o", ".preview.svelte-20u69o{flex-grow:1;max-height:500px;overflow:auto}");
|
|
}
|
|
function create_if_block27(ctx) {
|
|
let p;
|
|
return {
|
|
c() {
|
|
p = element("p");
|
|
p.textContent = "This card's content does not match any splitting pattern";
|
|
attr(p, "class", "mod-warning");
|
|
},
|
|
m(target, anchor) {
|
|
insert(target, p, anchor);
|
|
},
|
|
d(detaching) {
|
|
if (detaching) {
|
|
detach(p);
|
|
}
|
|
}
|
|
};
|
|
}
|
|
function create_fragment98(ctx) {
|
|
let div0;
|
|
let t;
|
|
let div1;
|
|
let if_block = !/*$mode*/
|
|
ctx[0] && create_if_block27(ctx);
|
|
return {
|
|
c() {
|
|
div0 = element("div");
|
|
if (if_block)
|
|
if_block.c();
|
|
t = space();
|
|
div1 = element("div");
|
|
attr(div1, "class", "preview svelte-20u69o");
|
|
},
|
|
m(target, anchor) {
|
|
insert(target, div0, anchor);
|
|
if (if_block)
|
|
if_block.m(div0, null);
|
|
insert(target, t, anchor);
|
|
insert(target, div1, anchor);
|
|
div1.innerHTML = /*$content*/
|
|
ctx[1];
|
|
},
|
|
p(ctx2, [dirty]) {
|
|
if (!/*$mode*/
|
|
ctx2[0]) {
|
|
if (if_block) {
|
|
} else {
|
|
if_block = create_if_block27(ctx2);
|
|
if_block.c();
|
|
if_block.m(div0, null);
|
|
}
|
|
} else if (if_block) {
|
|
if_block.d(1);
|
|
if_block = null;
|
|
}
|
|
if (dirty & /*$content*/
|
|
2)
|
|
div1.innerHTML = /*$content*/
|
|
ctx2[1];
|
|
;
|
|
},
|
|
i: noop,
|
|
o: noop,
|
|
d(detaching) {
|
|
if (detaching) {
|
|
detach(div0);
|
|
detach(t);
|
|
detach(div1);
|
|
}
|
|
if (if_block)
|
|
if_block.d();
|
|
}
|
|
};
|
|
}
|
|
function instance95($$self, $$props, $$invalidate) {
|
|
let $mode;
|
|
let $content;
|
|
const state2 = getModalState();
|
|
const mode = state2.mode;
|
|
component_subscribe($$self, mode, (value) => $$invalidate(0, $mode = value));
|
|
const content = state2.content;
|
|
component_subscribe($$self, content, (value) => $$invalidate(1, $content = value));
|
|
return [$mode, $content, mode, content];
|
|
}
|
|
var Content_preview = class extends SvelteComponent {
|
|
constructor(options) {
|
|
super();
|
|
init(this, options, instance95, create_fragment98, safe_not_equal, {}, add_css39);
|
|
}
|
|
};
|
|
var content_preview_default = Content_preview;
|
|
|
|
// src/view/modals/split-node-modal/helpers/get-modal-props.ts
|
|
var getModalProps = () => {
|
|
return getContext("modal-props");
|
|
};
|
|
|
|
// src/view/modals/split-node-modal/components/components/modal-buttons.svelte
|
|
function add_css40(target) {
|
|
append_styles(target, "svelte-6fani8", ".split-content-footer.svelte-6fani8{display:flex;align-items:center;justify-content:space-between}.modes-container.svelte-6fani8{height:50px;display:flex;align-items:center}.buttons-container.svelte-6fani8{display:flex;gap:5px;width:fit-content}label.svelte-6fani8{display:block;text-transform:capitalize}label[data-disabled='true'].svelte-6fani8{opacity:0.6}");
|
|
}
|
|
function get_each_context14(ctx, list, i) {
|
|
const child_ctx = ctx.slice();
|
|
child_ctx[10] = list[i];
|
|
return child_ctx;
|
|
}
|
|
function create_each_block14(ctx) {
|
|
let label;
|
|
let input;
|
|
let input_checked_value;
|
|
let input_disabled_value;
|
|
let input_value_value;
|
|
let t0;
|
|
let t1_value = (
|
|
/*_mode*/
|
|
ctx[10] + ""
|
|
);
|
|
let t1;
|
|
let t2;
|
|
let label_data_disabled_value;
|
|
let mounted;
|
|
let dispose;
|
|
return {
|
|
c() {
|
|
label = element("label");
|
|
input = element("input");
|
|
t0 = space();
|
|
t1 = text(t1_value);
|
|
t2 = space();
|
|
input.checked = input_checked_value = /*$mode*/
|
|
ctx[0] === /*_mode*/
|
|
ctx[10];
|
|
input.disabled = input_disabled_value = /*disabledModes*/
|
|
ctx[4].has(
|
|
/*_mode*/
|
|
ctx[10]
|
|
);
|
|
attr(input, "name", "mode");
|
|
attr(input, "type", "radio");
|
|
input.value = input_value_value = /*_mode*/
|
|
ctx[10];
|
|
attr(input, "tabindex", "0");
|
|
attr(label, "data-disabled", label_data_disabled_value = /*disabledModes*/
|
|
ctx[4].has(
|
|
/*_mode*/
|
|
ctx[10]
|
|
));
|
|
attr(label, "class", "svelte-6fani8");
|
|
},
|
|
m(target, anchor) {
|
|
insert(target, label, anchor);
|
|
append(label, input);
|
|
append(label, t0);
|
|
append(label, t1);
|
|
append(label, t2);
|
|
if (!mounted) {
|
|
dispose = listen(
|
|
input,
|
|
"change",
|
|
/*change_handler*/
|
|
ctx[6]
|
|
);
|
|
mounted = true;
|
|
}
|
|
},
|
|
p(ctx2, dirty) {
|
|
if (dirty & /*$mode*/
|
|
1 && input_checked_value !== (input_checked_value = /*$mode*/
|
|
ctx2[0] === /*_mode*/
|
|
ctx2[10])) {
|
|
input.checked = input_checked_value;
|
|
}
|
|
},
|
|
d(detaching) {
|
|
if (detaching) {
|
|
detach(label);
|
|
}
|
|
mounted = false;
|
|
dispose();
|
|
}
|
|
};
|
|
}
|
|
function create_fragment99(ctx) {
|
|
let div2;
|
|
let div0;
|
|
let t0;
|
|
let div1;
|
|
let button0;
|
|
let t1;
|
|
let button0_disabled_value;
|
|
let t2;
|
|
let button1;
|
|
let mounted;
|
|
let dispose;
|
|
let each_value = ensure_array_like(
|
|
/*modes*/
|
|
ctx[5]
|
|
);
|
|
let each_blocks = [];
|
|
for (let i = 0; i < each_value.length; i += 1) {
|
|
each_blocks[i] = create_each_block14(get_each_context14(ctx, each_value, i));
|
|
}
|
|
return {
|
|
c() {
|
|
div2 = element("div");
|
|
div0 = element("div");
|
|
for (let i = 0; i < each_blocks.length; i += 1) {
|
|
each_blocks[i].c();
|
|
}
|
|
t0 = space();
|
|
div1 = element("div");
|
|
button0 = element("button");
|
|
t1 = text("Split");
|
|
t2 = space();
|
|
button1 = element("button");
|
|
button1.textContent = "Cancel";
|
|
attr(div0, "class", "modes-container svelte-6fani8");
|
|
attr(div0, "tabindex", "0");
|
|
attr(button0, "class", "mod-cta");
|
|
button0.disabled = button0_disabled_value = !/*$mode*/
|
|
ctx[0];
|
|
attr(div1, "class", "buttons-container svelte-6fani8");
|
|
attr(div2, "class", "split-content-footer svelte-6fani8");
|
|
attr(div2, "tabindex", "0");
|
|
},
|
|
m(target, anchor) {
|
|
insert(target, div2, anchor);
|
|
append(div2, div0);
|
|
for (let i = 0; i < each_blocks.length; i += 1) {
|
|
if (each_blocks[i]) {
|
|
each_blocks[i].m(div0, null);
|
|
}
|
|
}
|
|
append(div2, t0);
|
|
append(div2, div1);
|
|
append(div1, button0);
|
|
append(button0, t1);
|
|
append(div1, t2);
|
|
append(div1, button1);
|
|
if (!mounted) {
|
|
dispose = [
|
|
listen(
|
|
button0,
|
|
"click",
|
|
/*click_handler*/
|
|
ctx[7]
|
|
),
|
|
listen(
|
|
button1,
|
|
"click",
|
|
/*click_handler_1*/
|
|
ctx[8]
|
|
)
|
|
];
|
|
mounted = true;
|
|
}
|
|
},
|
|
p(ctx2, [dirty]) {
|
|
if (dirty & /*disabledModes, modes, $mode, onModeChange*/
|
|
53) {
|
|
each_value = ensure_array_like(
|
|
/*modes*/
|
|
ctx2[5]
|
|
);
|
|
let i;
|
|
for (i = 0; i < each_value.length; i += 1) {
|
|
const child_ctx = get_each_context14(ctx2, each_value, i);
|
|
if (each_blocks[i]) {
|
|
each_blocks[i].p(child_ctx, dirty);
|
|
} else {
|
|
each_blocks[i] = create_each_block14(child_ctx);
|
|
each_blocks[i].c();
|
|
each_blocks[i].m(div0, null);
|
|
}
|
|
}
|
|
for (; i < each_blocks.length; i += 1) {
|
|
each_blocks[i].d(1);
|
|
}
|
|
each_blocks.length = each_value.length;
|
|
}
|
|
if (dirty & /*$mode*/
|
|
1 && button0_disabled_value !== (button0_disabled_value = !/*$mode*/
|
|
ctx2[0])) {
|
|
button0.disabled = button0_disabled_value;
|
|
}
|
|
},
|
|
i: noop,
|
|
o: noop,
|
|
d(detaching) {
|
|
if (detaching) {
|
|
detach(div2);
|
|
}
|
|
destroy_each(each_blocks, detaching);
|
|
mounted = false;
|
|
run_all(dispose);
|
|
}
|
|
};
|
|
}
|
|
function instance96($$self, $$props, $$invalidate) {
|
|
let $mode;
|
|
const state2 = getModalState();
|
|
const props = getModalProps();
|
|
const onModeChange = (value) => {
|
|
state2.mode.set(value);
|
|
};
|
|
const mode = state2.mode;
|
|
component_subscribe($$self, mode, (value) => $$invalidate(0, $mode = value));
|
|
const disabledModes = state2.disabledModes;
|
|
const modes = ["headings", "outline", "blocks"];
|
|
const change_handler = (e) => onModeChange(e.currentTarget.value);
|
|
const click_handler = () => props.callbacks.accept();
|
|
const click_handler_1 = () => props.callbacks.reject();
|
|
return [
|
|
$mode,
|
|
props,
|
|
onModeChange,
|
|
mode,
|
|
disabledModes,
|
|
modes,
|
|
change_handler,
|
|
click_handler,
|
|
click_handler_1
|
|
];
|
|
}
|
|
var Modal_buttons = class extends SvelteComponent {
|
|
constructor(options) {
|
|
super();
|
|
init(this, options, instance96, create_fragment99, safe_not_equal, {}, add_css40);
|
|
}
|
|
};
|
|
var modal_buttons_default = Modal_buttons;
|
|
|
|
// src/view/modals/split-node-modal/components/modal-content.svelte
|
|
function add_css41(target) {
|
|
append_styles(target, "svelte-1axt1o3", ".split-content-modal.svelte-1axt1o3{display:flex;flex-direction:column}");
|
|
}
|
|
function create_fragment100(ctx) {
|
|
let div;
|
|
let content;
|
|
let t;
|
|
let buttons;
|
|
let current;
|
|
content = new content_preview_default({});
|
|
buttons = new modal_buttons_default({});
|
|
return {
|
|
c() {
|
|
div = element("div");
|
|
create_component(content.$$.fragment);
|
|
t = space();
|
|
create_component(buttons.$$.fragment);
|
|
attr(div, "class", "split-content-modal svelte-1axt1o3");
|
|
},
|
|
m(target, anchor) {
|
|
insert(target, div, anchor);
|
|
mount_component(content, div, null);
|
|
append(div, t);
|
|
mount_component(buttons, div, null);
|
|
current = true;
|
|
},
|
|
p: noop,
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(content.$$.fragment, local);
|
|
transition_in(buttons.$$.fragment, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(content.$$.fragment, local);
|
|
transition_out(buttons.$$.fragment, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
if (detaching) {
|
|
detach(div);
|
|
}
|
|
destroy_component(content);
|
|
destroy_component(buttons);
|
|
}
|
|
};
|
|
}
|
|
function instance97($$self, $$props, $$invalidate) {
|
|
let { state: state2 } = $$props;
|
|
let { props } = $$props;
|
|
setContext("modal-state", state2);
|
|
setContext("modal-props", props);
|
|
$$self.$$set = ($$props2) => {
|
|
if ("state" in $$props2)
|
|
$$invalidate(0, state2 = $$props2.state);
|
|
if ("props" in $$props2)
|
|
$$invalidate(1, props = $$props2.props);
|
|
};
|
|
return [state2, props];
|
|
}
|
|
var Modal_content = class extends SvelteComponent {
|
|
constructor(options) {
|
|
super();
|
|
init(this, options, instance97, create_fragment100, safe_not_equal, { state: 0, props: 1 }, add_css41);
|
|
}
|
|
};
|
|
var modal_content_default = Modal_content;
|
|
|
|
// src/lib/format-detection/has-n-headings.ts
|
|
var hasNHeadings = (input, n = 2) => {
|
|
const lines = input.split("\n");
|
|
let count = 0;
|
|
for (const line of lines) {
|
|
if (/^((\t*)- )?#+ +/.test(line)) {
|
|
count++;
|
|
if (count >= n)
|
|
return true;
|
|
}
|
|
}
|
|
return false;
|
|
};
|
|
|
|
// src/lib/format-detection/is-outline.ts
|
|
var isOutline = (text2) => {
|
|
const lines = text2.split("\n").filter((x) => x.trim());
|
|
if (lines.length <= 1)
|
|
return false;
|
|
let level2 = 0;
|
|
for (const line of lines) {
|
|
if (!line)
|
|
continue;
|
|
const match = line.match(/^(\t*)- (.*)/);
|
|
if (match) {
|
|
const itemLevel = match[1].length + 1;
|
|
if (itemLevel - level2 > 1) {
|
|
return false;
|
|
}
|
|
level2 = itemLevel;
|
|
} else {
|
|
const match2 = line.match(/^(\t*) {2}/);
|
|
if (match2) {
|
|
const itemLevel = (match2[1] ? match2[1].length : 0) + 1;
|
|
if (itemLevel !== level2) {
|
|
return false;
|
|
}
|
|
} else {
|
|
return false;
|
|
}
|
|
}
|
|
}
|
|
return true;
|
|
};
|
|
|
|
// node_modules/diff/lib/index.mjs
|
|
function Diff() {
|
|
}
|
|
Diff.prototype = {
|
|
diff: function diff(oldString, newString) {
|
|
var _options$timeout;
|
|
var options = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {};
|
|
var callback = options.callback;
|
|
if (typeof options === "function") {
|
|
callback = options;
|
|
options = {};
|
|
}
|
|
this.options = options;
|
|
var self = this;
|
|
function done(value) {
|
|
if (callback) {
|
|
setTimeout(function() {
|
|
callback(void 0, value);
|
|
}, 0);
|
|
return true;
|
|
} else {
|
|
return value;
|
|
}
|
|
}
|
|
oldString = this.castInput(oldString);
|
|
newString = this.castInput(newString);
|
|
oldString = this.removeEmpty(this.tokenize(oldString));
|
|
newString = this.removeEmpty(this.tokenize(newString));
|
|
var newLen = newString.length, oldLen = oldString.length;
|
|
var editLength = 1;
|
|
var maxEditLength = newLen + oldLen;
|
|
if (options.maxEditLength) {
|
|
maxEditLength = Math.min(maxEditLength, options.maxEditLength);
|
|
}
|
|
var maxExecutionTime = (_options$timeout = options.timeout) !== null && _options$timeout !== void 0 ? _options$timeout : Infinity;
|
|
var abortAfterTimestamp = Date.now() + maxExecutionTime;
|
|
var bestPath = [{
|
|
oldPos: -1,
|
|
lastComponent: void 0
|
|
}];
|
|
var newPos = this.extractCommon(bestPath[0], newString, oldString, 0);
|
|
if (bestPath[0].oldPos + 1 >= oldLen && newPos + 1 >= newLen) {
|
|
return done([{
|
|
value: this.join(newString),
|
|
count: newString.length
|
|
}]);
|
|
}
|
|
var minDiagonalToConsider = -Infinity, maxDiagonalToConsider = Infinity;
|
|
function execEditLength() {
|
|
for (var diagonalPath = Math.max(minDiagonalToConsider, -editLength); diagonalPath <= Math.min(maxDiagonalToConsider, editLength); diagonalPath += 2) {
|
|
var basePath = void 0;
|
|
var removePath = bestPath[diagonalPath - 1], addPath = bestPath[diagonalPath + 1];
|
|
if (removePath) {
|
|
bestPath[diagonalPath - 1] = void 0;
|
|
}
|
|
var canAdd = false;
|
|
if (addPath) {
|
|
var addPathNewPos = addPath.oldPos - diagonalPath;
|
|
canAdd = addPath && 0 <= addPathNewPos && addPathNewPos < newLen;
|
|
}
|
|
var canRemove = removePath && removePath.oldPos + 1 < oldLen;
|
|
if (!canAdd && !canRemove) {
|
|
bestPath[diagonalPath] = void 0;
|
|
continue;
|
|
}
|
|
if (!canRemove || canAdd && removePath.oldPos + 1 < addPath.oldPos) {
|
|
basePath = self.addToPath(addPath, true, void 0, 0);
|
|
} else {
|
|
basePath = self.addToPath(removePath, void 0, true, 1);
|
|
}
|
|
newPos = self.extractCommon(basePath, newString, oldString, diagonalPath);
|
|
if (basePath.oldPos + 1 >= oldLen && newPos + 1 >= newLen) {
|
|
return done(buildValues(self, basePath.lastComponent, newString, oldString, self.useLongestToken));
|
|
} else {
|
|
bestPath[diagonalPath] = basePath;
|
|
if (basePath.oldPos + 1 >= oldLen) {
|
|
maxDiagonalToConsider = Math.min(maxDiagonalToConsider, diagonalPath - 1);
|
|
}
|
|
if (newPos + 1 >= newLen) {
|
|
minDiagonalToConsider = Math.max(minDiagonalToConsider, diagonalPath + 1);
|
|
}
|
|
}
|
|
}
|
|
editLength++;
|
|
}
|
|
if (callback) {
|
|
(function exec() {
|
|
setTimeout(function() {
|
|
if (editLength > maxEditLength || Date.now() > abortAfterTimestamp) {
|
|
return callback();
|
|
}
|
|
if (!execEditLength()) {
|
|
exec();
|
|
}
|
|
}, 0);
|
|
})();
|
|
} else {
|
|
while (editLength <= maxEditLength && Date.now() <= abortAfterTimestamp) {
|
|
var ret = execEditLength();
|
|
if (ret) {
|
|
return ret;
|
|
}
|
|
}
|
|
}
|
|
},
|
|
addToPath: function addToPath(path, added, removed, oldPosInc) {
|
|
var last = path.lastComponent;
|
|
if (last && last.added === added && last.removed === removed) {
|
|
return {
|
|
oldPos: path.oldPos + oldPosInc,
|
|
lastComponent: {
|
|
count: last.count + 1,
|
|
added,
|
|
removed,
|
|
previousComponent: last.previousComponent
|
|
}
|
|
};
|
|
} else {
|
|
return {
|
|
oldPos: path.oldPos + oldPosInc,
|
|
lastComponent: {
|
|
count: 1,
|
|
added,
|
|
removed,
|
|
previousComponent: last
|
|
}
|
|
};
|
|
}
|
|
},
|
|
extractCommon: function extractCommon(basePath, newString, oldString, diagonalPath) {
|
|
var newLen = newString.length, oldLen = oldString.length, oldPos = basePath.oldPos, newPos = oldPos - diagonalPath, commonCount = 0;
|
|
while (newPos + 1 < newLen && oldPos + 1 < oldLen && this.equals(newString[newPos + 1], oldString[oldPos + 1])) {
|
|
newPos++;
|
|
oldPos++;
|
|
commonCount++;
|
|
}
|
|
if (commonCount) {
|
|
basePath.lastComponent = {
|
|
count: commonCount,
|
|
previousComponent: basePath.lastComponent
|
|
};
|
|
}
|
|
basePath.oldPos = oldPos;
|
|
return newPos;
|
|
},
|
|
equals: function equals(left, right) {
|
|
if (this.options.comparator) {
|
|
return this.options.comparator(left, right);
|
|
} else {
|
|
return left === right || this.options.ignoreCase && left.toLowerCase() === right.toLowerCase();
|
|
}
|
|
},
|
|
removeEmpty: function removeEmpty(array) {
|
|
var ret = [];
|
|
for (var i = 0; i < array.length; i++) {
|
|
if (array[i]) {
|
|
ret.push(array[i]);
|
|
}
|
|
}
|
|
return ret;
|
|
},
|
|
castInput: function castInput(value) {
|
|
return value;
|
|
},
|
|
tokenize: function tokenize(value) {
|
|
return value.split("");
|
|
},
|
|
join: function join(chars) {
|
|
return chars.join("");
|
|
}
|
|
};
|
|
function buildValues(diff2, lastComponent, newString, oldString, useLongestToken) {
|
|
var components = [];
|
|
var nextComponent;
|
|
while (lastComponent) {
|
|
components.push(lastComponent);
|
|
nextComponent = lastComponent.previousComponent;
|
|
delete lastComponent.previousComponent;
|
|
lastComponent = nextComponent;
|
|
}
|
|
components.reverse();
|
|
var componentPos = 0, componentLen = components.length, newPos = 0, oldPos = 0;
|
|
for (; componentPos < componentLen; componentPos++) {
|
|
var component = components[componentPos];
|
|
if (!component.removed) {
|
|
if (!component.added && useLongestToken) {
|
|
var value = newString.slice(newPos, newPos + component.count);
|
|
value = value.map(function(value2, i) {
|
|
var oldValue = oldString[oldPos + i];
|
|
return oldValue.length > value2.length ? oldValue : value2;
|
|
});
|
|
component.value = diff2.join(value);
|
|
} else {
|
|
component.value = diff2.join(newString.slice(newPos, newPos + component.count));
|
|
}
|
|
newPos += component.count;
|
|
if (!component.added) {
|
|
oldPos += component.count;
|
|
}
|
|
} else {
|
|
component.value = diff2.join(oldString.slice(oldPos, oldPos + component.count));
|
|
oldPos += component.count;
|
|
if (componentPos && components[componentPos - 1].added) {
|
|
var tmp = components[componentPos - 1];
|
|
components[componentPos - 1] = components[componentPos];
|
|
components[componentPos] = tmp;
|
|
}
|
|
}
|
|
}
|
|
var finalComponent = components[componentLen - 1];
|
|
if (componentLen > 1 && typeof finalComponent.value === "string" && (finalComponent.added || finalComponent.removed) && diff2.equals("", finalComponent.value)) {
|
|
components[componentLen - 2].value += finalComponent.value;
|
|
components.pop();
|
|
}
|
|
return components;
|
|
}
|
|
var characterDiff = new Diff();
|
|
function generateOptions(options, defaults) {
|
|
if (typeof options === "function") {
|
|
defaults.callback = options;
|
|
} else if (options) {
|
|
for (var name in options) {
|
|
if (options.hasOwnProperty(name)) {
|
|
defaults[name] = options[name];
|
|
}
|
|
}
|
|
}
|
|
return defaults;
|
|
}
|
|
var extendedWordChars = /^[A-Za-z\xC0-\u02C6\u02C8-\u02D7\u02DE-\u02FF\u1E00-\u1EFF]+$/;
|
|
var reWhitespace = /\S/;
|
|
var wordDiff = new Diff();
|
|
wordDiff.equals = function(left, right) {
|
|
if (this.options.ignoreCase) {
|
|
left = left.toLowerCase();
|
|
right = right.toLowerCase();
|
|
}
|
|
return left === right || this.options.ignoreWhitespace && !reWhitespace.test(left) && !reWhitespace.test(right);
|
|
};
|
|
wordDiff.tokenize = function(value) {
|
|
var tokens = value.split(/([^\S\r\n]+|[()[\]{}'"\r\n]|\b)/);
|
|
for (var i = 0; i < tokens.length - 1; i++) {
|
|
if (!tokens[i + 1] && tokens[i + 2] && extendedWordChars.test(tokens[i]) && extendedWordChars.test(tokens[i + 2])) {
|
|
tokens[i] += tokens[i + 2];
|
|
tokens.splice(i + 1, 2);
|
|
i--;
|
|
}
|
|
}
|
|
return tokens;
|
|
};
|
|
function diffWords(oldStr, newStr, options) {
|
|
options = generateOptions(options, {
|
|
ignoreWhitespace: true
|
|
});
|
|
return wordDiff.diff(oldStr, newStr, options);
|
|
}
|
|
var lineDiff = new Diff();
|
|
lineDiff.tokenize = function(value) {
|
|
if (this.options.stripTrailingCr) {
|
|
value = value.replace(/\r\n/g, "\n");
|
|
}
|
|
var retLines = [], linesAndNewlines = value.split(/(\n|\r\n)/);
|
|
if (!linesAndNewlines[linesAndNewlines.length - 1]) {
|
|
linesAndNewlines.pop();
|
|
}
|
|
for (var i = 0; i < linesAndNewlines.length; i++) {
|
|
var line = linesAndNewlines[i];
|
|
if (i % 2 && !this.options.newlineIsToken) {
|
|
retLines[retLines.length - 1] += line;
|
|
} else {
|
|
if (this.options.ignoreWhitespace) {
|
|
line = line.trim();
|
|
}
|
|
retLines.push(line);
|
|
}
|
|
}
|
|
return retLines;
|
|
};
|
|
var sentenceDiff = new Diff();
|
|
sentenceDiff.tokenize = function(value) {
|
|
return value.split(/(\S.+?[.!?])(?=\s+|$)/);
|
|
};
|
|
var cssDiff = new Diff();
|
|
cssDiff.tokenize = function(value) {
|
|
return value.split(/([{}:;,]|\s+)/);
|
|
};
|
|
function _typeof(obj) {
|
|
"@babel/helpers - typeof";
|
|
if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
|
|
_typeof = function(obj2) {
|
|
return typeof obj2;
|
|
};
|
|
} else {
|
|
_typeof = function(obj2) {
|
|
return obj2 && typeof Symbol === "function" && obj2.constructor === Symbol && obj2 !== Symbol.prototype ? "symbol" : typeof obj2;
|
|
};
|
|
}
|
|
return _typeof(obj);
|
|
}
|
|
var objectPrototypeToString = Object.prototype.toString;
|
|
var jsonDiff = new Diff();
|
|
jsonDiff.useLongestToken = true;
|
|
jsonDiff.tokenize = lineDiff.tokenize;
|
|
jsonDiff.castInput = function(value) {
|
|
var _this$options = this.options, undefinedReplacement = _this$options.undefinedReplacement, _this$options$stringi = _this$options.stringifyReplacer, stringifyReplacer = _this$options$stringi === void 0 ? function(k, v) {
|
|
return typeof v === "undefined" ? undefinedReplacement : v;
|
|
} : _this$options$stringi;
|
|
return typeof value === "string" ? value : JSON.stringify(canonicalize(value, null, null, stringifyReplacer), stringifyReplacer, " ");
|
|
};
|
|
jsonDiff.equals = function(left, right) {
|
|
return Diff.prototype.equals.call(jsonDiff, left.replace(/,([\r\n])/g, "$1"), right.replace(/,([\r\n])/g, "$1"));
|
|
};
|
|
function canonicalize(obj, stack, replacementStack, replacer, key) {
|
|
stack = stack || [];
|
|
replacementStack = replacementStack || [];
|
|
if (replacer) {
|
|
obj = replacer(key, obj);
|
|
}
|
|
var i;
|
|
for (i = 0; i < stack.length; i += 1) {
|
|
if (stack[i] === obj) {
|
|
return replacementStack[i];
|
|
}
|
|
}
|
|
var canonicalizedObj;
|
|
if ("[object Array]" === objectPrototypeToString.call(obj)) {
|
|
stack.push(obj);
|
|
canonicalizedObj = new Array(obj.length);
|
|
replacementStack.push(canonicalizedObj);
|
|
for (i = 0; i < obj.length; i += 1) {
|
|
canonicalizedObj[i] = canonicalize(obj[i], stack, replacementStack, replacer, key);
|
|
}
|
|
stack.pop();
|
|
replacementStack.pop();
|
|
return canonicalizedObj;
|
|
}
|
|
if (obj && obj.toJSON) {
|
|
obj = obj.toJSON();
|
|
}
|
|
if (_typeof(obj) === "object" && obj !== null) {
|
|
stack.push(obj);
|
|
canonicalizedObj = {};
|
|
replacementStack.push(canonicalizedObj);
|
|
var sortedKeys = [], _key;
|
|
for (_key in obj) {
|
|
if (obj.hasOwnProperty(_key)) {
|
|
sortedKeys.push(_key);
|
|
}
|
|
}
|
|
sortedKeys.sort();
|
|
for (i = 0; i < sortedKeys.length; i += 1) {
|
|
_key = sortedKeys[i];
|
|
canonicalizedObj[_key] = canonicalize(obj[_key], stack, replacementStack, replacer, _key);
|
|
}
|
|
stack.pop();
|
|
replacementStack.pop();
|
|
} else {
|
|
canonicalizedObj = obj;
|
|
}
|
|
return canonicalizedObj;
|
|
}
|
|
var arrayDiff = new Diff();
|
|
arrayDiff.tokenize = function(value) {
|
|
return value.slice();
|
|
};
|
|
arrayDiff.join = arrayDiff.removeEmpty = function(value) {
|
|
return value;
|
|
};
|
|
|
|
// src/lib/data-conversion/x-to-json/outline-to-json.ts
|
|
var addNewNode = (state2, level2, text2, root = 1) => {
|
|
state2.currentNode = {
|
|
content: text2,
|
|
children: []
|
|
};
|
|
for (const key of Object.keys(state2.currentParents)) {
|
|
const parentLevel = +key;
|
|
if (parentLevel >= level2) {
|
|
delete state2.currentParents[key];
|
|
}
|
|
}
|
|
if (level2 === root) {
|
|
state2.tree.push(state2.currentNode);
|
|
}
|
|
state2.currentParents[level2] = state2.currentNode;
|
|
const parent = state2.currentParents[level2 - 1];
|
|
if (parent) {
|
|
parent.children.push(state2.currentNode);
|
|
} else if (level2 > root)
|
|
throw new Error(`Item [${text2}] does not have a parent`);
|
|
};
|
|
var updateCurrentNode = (state2, text2) => {
|
|
if (state2.currentNode) {
|
|
if (state2.currentNode.content)
|
|
state2.currentNode.content += "\n";
|
|
state2.currentNode.content += text2;
|
|
} else if (text2.trim()) {
|
|
state2.currentNode = {
|
|
content: text2,
|
|
children: []
|
|
};
|
|
state2.tree.push(state2.currentNode);
|
|
}
|
|
};
|
|
var outlineToJson = (input) => {
|
|
const lines = input.split("\n");
|
|
const state2 = {
|
|
currentParents: {},
|
|
currentNode: null,
|
|
tree: []
|
|
};
|
|
for (const line of lines) {
|
|
if (parseHtmlCommentMarker(line))
|
|
throw new Error("Outline has a section annotation");
|
|
const outlineMatch = line.match(/^(\t*)- (.*)/);
|
|
if (outlineMatch) {
|
|
const level2 = outlineMatch[1].length + 1;
|
|
addNewNode(state2, level2, outlineMatch[2]);
|
|
} else {
|
|
updateCurrentNode(state2, line.replace(/^\t* {2}|/g, ""));
|
|
}
|
|
}
|
|
return state2.tree;
|
|
};
|
|
|
|
// src/lib/data-conversion/helpers/find-highest-heading-level.ts
|
|
var findHighestHeadingLevel = (lines) => {
|
|
let isInCodeBlock = false;
|
|
return lines.reduce((acc, val) => {
|
|
if (val.startsWith("```")) {
|
|
isInCodeBlock = !isInCodeBlock;
|
|
}
|
|
if (isInCodeBlock)
|
|
return acc;
|
|
const match = val.match(/^(#+) +(.*)$/);
|
|
if (match) {
|
|
const level2 = match[1].length;
|
|
if (level2 < acc)
|
|
acc = level2;
|
|
}
|
|
return acc;
|
|
}, 6);
|
|
};
|
|
|
|
// src/lib/data-conversion/x-to-json/headings-to-json.ts
|
|
var headingsToJson = (input) => {
|
|
const lines = input.split("\n");
|
|
const highestHeadingLevel = findHighestHeadingLevel(lines);
|
|
const state2 = {
|
|
currentParents: {},
|
|
currentNode: null,
|
|
tree: [],
|
|
isInCodeBlock: false
|
|
};
|
|
for (const line of lines) {
|
|
if (parseHtmlCommentMarker(line))
|
|
throw new Error("input has a section");
|
|
if (line.startsWith("```")) {
|
|
state2.isInCodeBlock = !state2.isInCodeBlock;
|
|
}
|
|
const match = state2.isInCodeBlock ? null : line.match(/^(#+) (.+)/);
|
|
if (match) {
|
|
const level2 = match[1].length;
|
|
addNewNode(state2, level2, line, highestHeadingLevel);
|
|
} else {
|
|
updateCurrentNode(state2, line);
|
|
}
|
|
}
|
|
return state2.tree;
|
|
};
|
|
|
|
// src/lib/data-conversion/helpers/correct-headings.ts
|
|
var correctHeadings = (markdown) => {
|
|
const lines = markdown.split("\n");
|
|
const headingRegex = /^(#+) +(.*)$/;
|
|
const highestHeadingLevel = findHighestHeadingLevel(lines);
|
|
const state2 = {
|
|
previousLevel: 0,
|
|
previousCorrectedLevel: 0,
|
|
previousLevels: [],
|
|
isInCodeBlock: false
|
|
};
|
|
const updatedLines = [];
|
|
for (const line of lines) {
|
|
if (line.startsWith("```")) {
|
|
state2.isInCodeBlock = !state2.isInCodeBlock;
|
|
}
|
|
const match = state2.isInCodeBlock ? null : line.match(headingRegex);
|
|
let updatedLine = null;
|
|
if (match) {
|
|
const level2 = match[1].length;
|
|
const text2 = match[2];
|
|
let correctedLevel;
|
|
const parentIndex = state2.previousLevels.findLastIndex(
|
|
(l) => l.level < level2
|
|
);
|
|
const parent = state2.previousLevels[parentIndex];
|
|
if (!parent) {
|
|
correctedLevel = highestHeadingLevel;
|
|
} else if (level2 > state2.previousLevel) {
|
|
correctedLevel = state2.previousCorrectedLevel + 1;
|
|
} else if (level2 < state2.previousLevel) {
|
|
correctedLevel = Math.min(
|
|
highestHeadingLevel,
|
|
level2,
|
|
state2.previousCorrectedLevel - 1
|
|
);
|
|
if (parent) {
|
|
if (correctedLevel <= parent.level && level2 > parent.level) {
|
|
correctedLevel = parent.correctedLevel + 1;
|
|
}
|
|
}
|
|
} else if (level2 === state2.previousLevel) {
|
|
correctedLevel = state2.previousCorrectedLevel;
|
|
} else {
|
|
correctedLevel = level2;
|
|
}
|
|
updatedLine = `${"#".repeat(correctedLevel)} ${text2}`;
|
|
state2.previousLevel = level2;
|
|
state2.previousCorrectedLevel = correctedLevel;
|
|
state2.previousLevels.push({ level: level2, correctedLevel });
|
|
}
|
|
if (updatedLine)
|
|
updatedLines.push(updatedLine);
|
|
else
|
|
updatedLines.push(line);
|
|
}
|
|
return updatedLines.join("\n");
|
|
};
|
|
|
|
// src/lib/data-conversion/x-to-html-comment/headings-to-html-comment.ts
|
|
var headingsToHtmlComment = (input) => {
|
|
const tree = headingsToJson(correctHeadings(input));
|
|
if (tree.length === 1 && tree[0].children.length === 0)
|
|
return input;
|
|
return jsonToHtmlComment(tree);
|
|
};
|
|
|
|
// src/lib/data-conversion/x-to-html-comment/paragraphs-to-html-comment.ts
|
|
var splitByParagraph = (text2) => {
|
|
const codeBlockRegex = /```[\s\S]*?```/g;
|
|
const codeBlocks = [];
|
|
const textWithPlaceholders = text2.replace(codeBlockRegex, (match) => {
|
|
codeBlocks.push(match);
|
|
return `__CODE_BLOCK_${codeBlocks.length - 1}__`;
|
|
});
|
|
const paragraphs = textWithPlaceholders.split(/\n\s*\n/).map((paragraph) => {
|
|
return paragraph.replace(
|
|
/__CODE_BLOCK_(\d+)__/g,
|
|
(_, index) => codeBlocks[+index]
|
|
);
|
|
});
|
|
return paragraphs;
|
|
};
|
|
var paragraphsToHtmlComment = (input) => {
|
|
const paragraphs = splitByParagraph(input);
|
|
if (paragraphs.length === 1)
|
|
return input;
|
|
const tree = paragraphs.map((p) => ({
|
|
content: p,
|
|
children: []
|
|
}));
|
|
return jsonToHtmlComment(tree);
|
|
};
|
|
|
|
// src/lib/data-conversion/x-to-html-comment/outline-to-html-comment.ts
|
|
var outlineToHtmlComment = (input) => {
|
|
const tree = outlineToJson(input);
|
|
if (tree.length === 1 && tree[0].children.length === 0)
|
|
return input;
|
|
return jsonToHtmlComment(tree);
|
|
};
|
|
|
|
// src/stores/document/reducers/split-node/helpers/split-text.ts
|
|
var splitText = (text2, mode) => {
|
|
if (mode === "headings") {
|
|
return headingsToHtmlComment(text2);
|
|
} else if (mode === "blocks") {
|
|
return paragraphsToHtmlComment(text2);
|
|
} else {
|
|
return outlineToHtmlComment(text2);
|
|
}
|
|
};
|
|
|
|
// src/view/modals/split-node-modal/helpers/map-content.ts
|
|
var escapeHtmlComment = (text2) => {
|
|
return text2.replace(/</g, "<").replace(/>/g, ">");
|
|
};
|
|
var makeTabsVisible = (text2) => {
|
|
return text2.replace(/\t/g, " ");
|
|
};
|
|
var makeNewlinesVisible = (text2) => {
|
|
return text2.replace(/\n/g, "<br>");
|
|
};
|
|
var mapContent = (text2, mode) => {
|
|
let newContent = text2;
|
|
if (mode) {
|
|
try {
|
|
newContent = splitText(text2, mode);
|
|
} catch (e) {
|
|
onPluginError(e, "command", { text: text2, mode });
|
|
}
|
|
}
|
|
const differences = diffWords(text2, newContent);
|
|
return differences.map((part) => {
|
|
const style = part.added ? "color:green; background-color:lightgreen" : part.removed ? "color:red; background-color:#ffdddd" : "color: grey";
|
|
const escapedComments = escapeHtmlComment(part.value);
|
|
const visibleTabs = makeTabsVisible(escapedComments);
|
|
const value = makeNewlinesVisible(visibleTabs);
|
|
return `<span style="${style}">${value}</span>`;
|
|
}).join("");
|
|
};
|
|
|
|
// src/lib/format-detection/has-n-paragraph.ts
|
|
var hasNParagraph = (text2, n = 2) => splitByParagraph(text2).length >= n;
|
|
|
|
// src/view/modals/split-node-modal/split-node-modal.ts
|
|
var SplitNodeModal = class extends import_obsidian24.Modal {
|
|
constructor(props) {
|
|
super(props.plugin.app);
|
|
this.props = props;
|
|
this.subscriptions = /* @__PURE__ */ new Set();
|
|
this.open = () => {
|
|
this.setTitle("Choose how to split this card");
|
|
this.initState();
|
|
new modal_content_default({
|
|
target: this.contentEl,
|
|
props: {
|
|
state: this.state,
|
|
props: this.props
|
|
}
|
|
});
|
|
const promise = new Promise((resolve) => {
|
|
this.resolve = resolve;
|
|
});
|
|
super.open();
|
|
return promise;
|
|
};
|
|
this.close = () => {
|
|
this.resolve(void 0);
|
|
super.close();
|
|
for (const unsub of this.subscriptions) {
|
|
unsub();
|
|
}
|
|
};
|
|
this.initState = () => {
|
|
const content = this.props.nodeContent;
|
|
this.state = {
|
|
content: writable(content),
|
|
mode: writable(null),
|
|
disabledModes: /* @__PURE__ */ new Set()
|
|
};
|
|
const hasHeadings = hasNHeadings(content);
|
|
const _isOutline = isOutline(content);
|
|
const hasParagraphs = hasNParagraph(content);
|
|
if (!hasHeadings) {
|
|
this.state.disabledModes.add("headings");
|
|
}
|
|
if (!_isOutline) {
|
|
this.state.disabledModes.add("outline");
|
|
}
|
|
if (!hasParagraphs) {
|
|
this.state.disabledModes.add("blocks");
|
|
}
|
|
if (hasHeadings) {
|
|
this.state.mode.set("headings");
|
|
} else if (_isOutline) {
|
|
this.state.mode.set("outline");
|
|
} else if (hasParagraphs) {
|
|
this.state.mode.set("blocks");
|
|
}
|
|
const unsubFromMod = this.state.mode.subscribe((mode) => {
|
|
if (mode)
|
|
this.state.content.set(mapContent(content, mode));
|
|
});
|
|
this.state.content.set(mapContent(content, get_store_value(this.state.mode)));
|
|
this.subscriptions.add(unsubFromMod);
|
|
};
|
|
}
|
|
};
|
|
|
|
// src/view/modals/split-node-modal/open-split-node-modal.ts
|
|
var openSplitNodeModal = async (view) => {
|
|
const viewState = view.viewStore.getValue();
|
|
const activeNode = viewState.document.activeNode;
|
|
if (!activeNode)
|
|
return;
|
|
const isEditing2 = Boolean(viewState.document.editing.activeNodeId);
|
|
if (isEditing2) {
|
|
saveNodeContent(view);
|
|
setTimeout(() => {
|
|
openSplitNodeModal(view);
|
|
}, 100);
|
|
return;
|
|
}
|
|
const documentState = view.documentStore.getValue();
|
|
const nodeContent = documentState.document.content[activeNode].content;
|
|
const modal = new SplitNodeModal({
|
|
plugin: view.plugin,
|
|
callbacks: {
|
|
accept: () => {
|
|
modal.close();
|
|
const newContent = get_store_value(modal.state.content);
|
|
const mode = get_store_value(modal.state.mode);
|
|
if (mode && newContent !== nodeContent) {
|
|
view.documentStore.dispatch({
|
|
type: "DOCUMENT/SPLIT_NODE",
|
|
payload: {
|
|
target: activeNode,
|
|
mode
|
|
}
|
|
});
|
|
}
|
|
},
|
|
reject: () => {
|
|
modal.close();
|
|
}
|
|
},
|
|
nodeContent
|
|
});
|
|
await modal.open();
|
|
};
|
|
|
|
// src/view/actions/context-menu/card-context-menu/helpers/insert-block-id.ts
|
|
var getExistingBlockId = (lines) => {
|
|
const reversed = [...lines].reverse();
|
|
for (let line of reversed) {
|
|
line = line.trim();
|
|
const match = /\s+\^([a-zA-Z0-9]{4,})$/.exec(line);
|
|
if (match) {
|
|
return match[1];
|
|
}
|
|
}
|
|
};
|
|
var generateBlockId = () => Math.random().toString(36).substring(2, 8);
|
|
var insertBlockId = (text2, __id__) => {
|
|
const lines = text2.trimEnd().split("\n");
|
|
const existingId = getExistingBlockId(lines);
|
|
if (existingId) {
|
|
return {
|
|
blockId: existingId,
|
|
text: text2
|
|
};
|
|
} else {
|
|
const lastLine = lines[lines.length - 1];
|
|
let blockId = null;
|
|
if (lastLine) {
|
|
blockId = __id__ || generateBlockId();
|
|
lines[lines.length - 1] = lines[lines.length - 1] + ` ^${blockId}`;
|
|
return {
|
|
blockId,
|
|
text: lines.join("\n")
|
|
};
|
|
}
|
|
}
|
|
};
|
|
|
|
// src/view/actions/context-menu/card-context-menu/helpers/copy-link-to-block.ts
|
|
var import_obsidian25 = require("obsidian");
|
|
var copyLinkToBlock = async (view) => {
|
|
const file = view.file;
|
|
if (!file)
|
|
return;
|
|
const viewState = view.viewStore.getValue();
|
|
const activeNode = viewState.document.activeNode;
|
|
const isEditing2 = Boolean(viewState.document.editing.activeNodeId);
|
|
if (isEditing2) {
|
|
saveNodeContent(view);
|
|
setTimeout(() => {
|
|
copyLinkToBlock(view);
|
|
}, 100);
|
|
return;
|
|
}
|
|
const documentState = view.documentStore.getValue();
|
|
const content = documentState.document.content[activeNode];
|
|
const text2 = content?.content;
|
|
const output = insertBlockId(text2);
|
|
if (output) {
|
|
const fileName = file.basename;
|
|
view.documentStore.dispatch({
|
|
type: "DOCUMENT/SET_NODE_CONTENT",
|
|
payload: {
|
|
content: output.text,
|
|
nodeId: activeNode
|
|
},
|
|
context: {
|
|
isInSidebar: viewState.document.editing.isInSidebar
|
|
}
|
|
});
|
|
const link = `[[${fileName}#^${output.blockId}]]`;
|
|
await navigator.clipboard.writeText(link);
|
|
new import_obsidian25.Notice("Link copied to clipboard");
|
|
} else {
|
|
new import_obsidian25.Notice("Could not copy link to clipboard");
|
|
}
|
|
};
|
|
|
|
// src/view/actions/context-menu/card-context-menu/helpers/export-column.ts
|
|
var import_obsidian26 = require("obsidian");
|
|
var exportColumn = async (view) => {
|
|
const viewState = view.viewStore.getValue();
|
|
const isEditing2 = Boolean(viewState.document.editing.activeNodeId);
|
|
if (isEditing2) {
|
|
saveNodeContent(view);
|
|
setTimeout(() => {
|
|
exportColumn(view);
|
|
}, 100);
|
|
return;
|
|
}
|
|
const activeNode = viewState.document.activeNode;
|
|
invariant(activeNode);
|
|
const document2 = view.documentStore.getValue().document;
|
|
const columnIndex = findNodeColumn(document2.columns, activeNode);
|
|
const column = document2.columns[columnIndex];
|
|
invariant(column);
|
|
const nodes = column.groups.map((g) => g.nodes).flat();
|
|
const content = nodes.map((n) => document2.content[n].content);
|
|
const text2 = content.filter((c) => c.trim().length > 0).join("\n\n");
|
|
if (!text2.trim()) {
|
|
new import_obsidian26.Notice("This column is empty");
|
|
return;
|
|
}
|
|
const file = view.file;
|
|
invariant(file);
|
|
invariant(file.parent);
|
|
const newFile = await createNewFile(
|
|
view.plugin,
|
|
file.parent,
|
|
text2,
|
|
`${file.basename} - column ${columnIndex + 1}`
|
|
);
|
|
await openFile(view.plugin, newFile, "split");
|
|
};
|
|
|
|
// src/obsidian/context-menu/render-context-menu.ts
|
|
var import_obsidian27 = require("obsidian");
|
|
var addMenuItem = (menu, menuItem) => {
|
|
if ("type" in menuItem && menuItem.type === "separator") {
|
|
menu.addSeparator();
|
|
} else if ("title" in menuItem) {
|
|
menu.addItem((item) => {
|
|
item.setTitle(menuItem.title).setIcon(menuItem.icon).setDisabled(menuItem.disabled || false).setChecked(menuItem.checked || false);
|
|
if ("submenu" in menuItem) {
|
|
const subMenu = item.setSubmenu();
|
|
for (const subItem of menuItem.submenu) {
|
|
addMenuItem(subMenu, subItem);
|
|
}
|
|
} else {
|
|
item.onClick(menuItem.action);
|
|
}
|
|
});
|
|
}
|
|
};
|
|
var renderContextMenu = (event, menuItems) => {
|
|
const menu = new import_obsidian27.Menu();
|
|
for (const menuItem of menuItems) {
|
|
addMenuItem(menu, menuItem);
|
|
}
|
|
menu.showAtMouseEvent(event);
|
|
};
|
|
|
|
// src/obsidian/context-menu/select-inactive-card.ts
|
|
var selectInactiveCard = (view, closestCardElement, isInSidebar, isInRecentCardsList) => {
|
|
const id2 = closestCardElement?.id;
|
|
if (!isInSidebar) {
|
|
view.viewStore.dispatch({
|
|
type: "view/set-active-node/mouse-silent",
|
|
payload: {
|
|
id: id2
|
|
}
|
|
});
|
|
} else if (isInRecentCardsList) {
|
|
view.viewStore.dispatch({
|
|
type: "view/recent-nodes/set-active-node",
|
|
payload: {
|
|
id: id2
|
|
}
|
|
});
|
|
} else {
|
|
view.viewStore.dispatch({
|
|
type: "view/pinned-nodes/set-active-node",
|
|
payload: {
|
|
id: id2
|
|
}
|
|
});
|
|
}
|
|
};
|
|
|
|
// src/view/actions/context-menu/card-context-menu/show-card-context-menu.ts
|
|
var import_obsidian28 = require("obsidian");
|
|
var showCardContextMenu = (event, view) => {
|
|
const target = event.target;
|
|
const closestCardElement = target.closest(
|
|
".lineage-card"
|
|
);
|
|
if (!closestCardElement)
|
|
return;
|
|
if (textIsSelected())
|
|
return;
|
|
const isInSidebar = Boolean(target.closest(".sidebar"));
|
|
const isInRecentCardsList = isInSidebar && Boolean(target.closest(".recent-cards-container"));
|
|
const targetIsActive = closestCardElement.hasClass("active-node");
|
|
if (!targetIsActive) {
|
|
selectInactiveCard(
|
|
view,
|
|
closestCardElement,
|
|
isInSidebar,
|
|
isInRecentCardsList
|
|
);
|
|
}
|
|
const viewState = view.viewStore.getValue();
|
|
const multipleNodesAreSelected = !isInSidebar && viewState.document.selectedNodes.size > 1;
|
|
const documentStore = view.documentStore;
|
|
const documentState = documentStore.getValue();
|
|
const activeNode = viewState.document.activeNode;
|
|
const isPinned = isInSidebar && !isInRecentCardsList || documentState.pinnedNodes.Ids.includes(activeNode);
|
|
const hasChildren = documentState.meta.groupParentIds.has(activeNode);
|
|
const menuItems = [
|
|
{
|
|
title: lang.cm_split_card,
|
|
icon: customIcons.split.name,
|
|
action: () => {
|
|
if (hasChildren) {
|
|
new import_obsidian28.Notice(lang.error_cm_cant_split_card_that_has_children);
|
|
} else {
|
|
openSplitNodeModal(view);
|
|
}
|
|
},
|
|
disabled: multipleNodesAreSelected || isInSidebar
|
|
},
|
|
{ type: "separator" },
|
|
{
|
|
title: lang.cm_merge_above,
|
|
icon: "merge",
|
|
action: () => mergeNode(view, "up"),
|
|
disabled: multipleNodesAreSelected || isInSidebar
|
|
},
|
|
{
|
|
title: lang.cm_merge_below,
|
|
icon: "merge",
|
|
action: () => mergeNode(view, "down"),
|
|
disabled: multipleNodesAreSelected || isInSidebar
|
|
},
|
|
{ type: "separator" },
|
|
{
|
|
title: lang.cm_copy_link_to_block,
|
|
icon: "links-coming-in",
|
|
action: () => copyLinkToBlock(view),
|
|
disabled: multipleNodesAreSelected
|
|
},
|
|
{ type: "separator" },
|
|
!multipleNodesAreSelected && !hasChildren ? {
|
|
title: lang.cm_copy,
|
|
icon: "documents",
|
|
action: () => copyActiveNodesToClipboard(view)
|
|
} : {
|
|
title: lang.cm_copy,
|
|
icon: "documents",
|
|
submenu: [
|
|
{
|
|
title: multipleNodesAreSelected ? lang.cm_copy_branches : lang.cm_copy_branch,
|
|
icon: "lineage-cards",
|
|
action: () => copyActiveBranchesToClipboard(view, true)
|
|
},
|
|
{
|
|
title: multipleNodesAreSelected ? lang.cm_copy_branches_wo_formatting : lang.cm_copy_branch_wo_formatting,
|
|
icon: "file-text",
|
|
action: () => copyActiveBranchesToClipboard(view, false)
|
|
},
|
|
{
|
|
title: multipleNodesAreSelected ? lang.cm_copy_section_wo_subitems : lang.cm_copy_sections_wo_subitems,
|
|
icon: "file-text",
|
|
action: () => copyActiveNodesToClipboard(view)
|
|
}
|
|
]
|
|
},
|
|
{
|
|
title: lang.cm_cut,
|
|
icon: "scissors",
|
|
action: () => cutNode(view),
|
|
disabled: isInSidebar
|
|
},
|
|
{
|
|
title: lang.cm_paste,
|
|
icon: "paste",
|
|
action: () => pasteNode(view),
|
|
disabled: isInSidebar
|
|
},
|
|
{ type: "separator" },
|
|
{
|
|
title: isPinned ? lang.cm_unpin_from_left_sidebar : lang.cm_pin_in_left_sidebar,
|
|
icon: isPinned ? "pin-off" : "pin",
|
|
action: () => {
|
|
documentStore.dispatch({
|
|
type: isPinned ? "document/pinned-nodes/unpin" : "document/pinned-nodes/pin",
|
|
payload: { id: activeNode }
|
|
});
|
|
},
|
|
disabled: isInRecentCardsList || multipleNodesAreSelected
|
|
},
|
|
{ type: "separator" },
|
|
{
|
|
title: lang.cm_extract_branch,
|
|
icon: customIcons.cards.name,
|
|
action: () => extractBranch(view),
|
|
disabled: multipleNodesAreSelected || isInSidebar
|
|
},
|
|
{
|
|
title: lang.cm_export_column,
|
|
icon: "file-text",
|
|
action: () => exportColumn(view),
|
|
disabled: multipleNodesAreSelected || isInSidebar
|
|
}
|
|
];
|
|
renderContextMenu(event, menuItems);
|
|
};
|
|
|
|
// src/view/actions/context-menu/card-context-menu/card-context-menu-predicate.ts
|
|
var cardContextMenuPredicate = (e) => {
|
|
const target = e.target;
|
|
return !target.hasClass("drag-handle") && Boolean(target.closest(".lineage-card"));
|
|
};
|
|
|
|
// src/view/actions/context-menu/view-context-menu/view-context-menu-predicate.ts
|
|
var viewContextMenuPredicate = (e) => {
|
|
const target = e.target;
|
|
return target.hasClass("column-buffer") || target.hasClass("column") || target.hasClass("group") || target.hasClass("columns") || target.hasClass("columns-container");
|
|
};
|
|
|
|
// src/lib/data-conversion/x-to-json/html-comment-to-json.ts
|
|
var getDepthLevel = (number) => {
|
|
if (number.includes(".")) {
|
|
return number.split(".").length;
|
|
} else
|
|
return /\d+/.test(number) ? 1 : 0;
|
|
};
|
|
var trimCurrentNode = (node) => {
|
|
if (node) {
|
|
node.content = node.content.trim();
|
|
}
|
|
};
|
|
var htmlCommentToJson = (text2) => {
|
|
const lines = text2.split("\n");
|
|
const map = {};
|
|
const tree = [];
|
|
let currentNode = null;
|
|
let currentParentNumber = "";
|
|
for (const line of lines) {
|
|
const sectionNumber = parseHtmlCommentMarker(line);
|
|
if (sectionNumber) {
|
|
const [parent, , full] = sectionNumber;
|
|
const isASibling = parent === currentParentNumber;
|
|
const newNode = {
|
|
content: "",
|
|
children: []
|
|
};
|
|
map[full] = newNode;
|
|
if (isASibling) {
|
|
if (currentNode)
|
|
trimCurrentNode(currentNode);
|
|
const parentNode = map[parent];
|
|
if (parentNode) {
|
|
parentNode.children.push(newNode);
|
|
} else {
|
|
tree.push(newNode);
|
|
}
|
|
currentNode = newNode;
|
|
} else {
|
|
const isChild = getDepthLevel(parent) > getDepthLevel(currentParentNumber);
|
|
if (isChild) {
|
|
if (!currentNode) {
|
|
throw new Error(lang.error_parent_not_found(full));
|
|
}
|
|
trimCurrentNode(currentNode);
|
|
currentNode.children.push(newNode);
|
|
currentNode = newNode;
|
|
} else {
|
|
if (!parent) {
|
|
if (currentNode)
|
|
trimCurrentNode(currentNode);
|
|
tree.push(newNode);
|
|
currentNode = newNode;
|
|
} else {
|
|
const parentNode = map[parent];
|
|
if (!parentNode) {
|
|
throw new Error(lang.error_parent_not_found(full));
|
|
}
|
|
if (currentNode)
|
|
trimCurrentNode(currentNode);
|
|
parentNode.children.push(newNode);
|
|
currentNode = newNode;
|
|
}
|
|
}
|
|
}
|
|
currentParentNumber = parent;
|
|
} else {
|
|
if (currentNode) {
|
|
if (currentNode.content)
|
|
currentNode.content += "\n";
|
|
currentNode.content += line;
|
|
} else if (line.trim()) {
|
|
currentNode = {
|
|
content: line,
|
|
children: []
|
|
};
|
|
tree.push(currentNode);
|
|
}
|
|
}
|
|
}
|
|
return tree;
|
|
};
|
|
|
|
// src/lib/data-conversion/x-to-json/html-element-to-json.ts
|
|
var htmlElementToJson = (text2) => {
|
|
const lines = text2.split("\n");
|
|
const map = {};
|
|
const tree = [];
|
|
let currentNode = null;
|
|
let currentParentNumber = "";
|
|
for (const line of lines) {
|
|
const sectionNumber = parseHtmlElementMarker(line);
|
|
if (sectionNumber) {
|
|
const [parent, , full] = sectionNumber;
|
|
const isASibling = parent === currentParentNumber;
|
|
const newNode = {
|
|
content: line.replace(htmlCommentRegex2, ""),
|
|
children: []
|
|
};
|
|
map[full] = newNode;
|
|
if (isASibling) {
|
|
if (currentNode)
|
|
trimCurrentNode(currentNode);
|
|
const parentNode = map[parent];
|
|
if (parentNode) {
|
|
parentNode.children.push(newNode);
|
|
} else {
|
|
tree.push(newNode);
|
|
}
|
|
currentNode = newNode;
|
|
} else {
|
|
const isChild = getDepthLevel(parent) > getDepthLevel(currentParentNumber);
|
|
if (isChild) {
|
|
if (!currentNode) {
|
|
throw new Error(lang.error_parent_not_found(full));
|
|
}
|
|
trimCurrentNode(currentNode);
|
|
currentNode.children.push(newNode);
|
|
currentNode = newNode;
|
|
} else {
|
|
if (!parent) {
|
|
if (currentNode)
|
|
trimCurrentNode(currentNode);
|
|
tree.push(newNode);
|
|
currentNode = newNode;
|
|
} else {
|
|
const parentNode = map[parent];
|
|
if (!parentNode) {
|
|
throw new Error(lang.error_parent_not_found(full));
|
|
}
|
|
if (currentNode)
|
|
trimCurrentNode(currentNode);
|
|
parentNode.children.push(newNode);
|
|
currentNode = newNode;
|
|
}
|
|
}
|
|
}
|
|
currentParentNumber = parent;
|
|
} else {
|
|
if (currentNode) {
|
|
if (currentNode.content)
|
|
currentNode.content += "\n";
|
|
currentNode.content += line;
|
|
} else if (line.trim()) {
|
|
currentNode = {
|
|
content: line,
|
|
children: []
|
|
};
|
|
tree.push(currentNode);
|
|
}
|
|
}
|
|
}
|
|
return tree;
|
|
};
|
|
|
|
// src/obsidian/commands/helpers/export-document/map-document-to-text.ts
|
|
var mapDocumentToText = (fileData, basename, format2) => {
|
|
const { data, frontmatter } = extractFrontmatter(fileData);
|
|
const tree = format2 === "outline" ? outlineToJson(data) : format2 === "html-element" ? htmlElementToJson(data) : htmlCommentToJson(data);
|
|
return (frontmatter ? frontmatter + "\n" : "") + jsonToText(tree);
|
|
};
|
|
|
|
// src/obsidian/commands/helpers/export-document/export-document.ts
|
|
var exportDocument = async (view) => {
|
|
try {
|
|
const file = view.file;
|
|
if (!file)
|
|
return;
|
|
if (!file.parent)
|
|
return;
|
|
const viewState = view.viewStore.getValue();
|
|
const isEditing2 = Boolean(viewState.document.editing.activeNodeId);
|
|
if (isEditing2) {
|
|
saveNodeContent(view);
|
|
setTimeout(() => {
|
|
exportDocument(view);
|
|
}, 100);
|
|
return;
|
|
}
|
|
const fileData = await view.plugin.app.vault.read(file);
|
|
const format2 = getDocumentFormat(view);
|
|
const output = mapDocumentToText(fileData, file.basename, format2);
|
|
const newFile = await createNewFile(
|
|
view.plugin,
|
|
file.parent,
|
|
output,
|
|
file.basename
|
|
);
|
|
if (newFile) {
|
|
await openFile(view.plugin, newFile, "split");
|
|
}
|
|
} catch (e) {
|
|
onPluginError(e, "command", { type: "export-document" });
|
|
}
|
|
};
|
|
|
|
// src/view/actions/context-menu/view-context-menu/show-view-context-menu.ts
|
|
var showViewContextMenu = (event, view) => {
|
|
const file = view.file;
|
|
if (!file)
|
|
return;
|
|
const format2 = getDocumentFormat(view);
|
|
const isOutline2 = format2 === "outline";
|
|
const isHtmlElement = format2 === "html-element";
|
|
const isHtmlComments = format2 === "sections";
|
|
const _hasHeading = hasNHeadings(view.data, 1);
|
|
const menuItems = [
|
|
{
|
|
title: lang.cm_format_headings,
|
|
icon: "heading-1",
|
|
action: () => {
|
|
saveNodeContent(view);
|
|
view.documentStore.dispatch({
|
|
type: "DOCUMENT/FORMAT_HEADINGS"
|
|
});
|
|
},
|
|
disabled: !_hasHeading
|
|
},
|
|
{ type: "separator" },
|
|
{
|
|
title: lang.cm_change_format_to_html_element,
|
|
icon: "file-cog",
|
|
action: () => {
|
|
setDocumentFormat(view.plugin, file.path, "html-element");
|
|
},
|
|
checked: isHtmlElement
|
|
},
|
|
{
|
|
title: lang.cm_change_format_to_document,
|
|
icon: "file-cog",
|
|
action: () => {
|
|
setDocumentFormat(view.plugin, file.path, "sections");
|
|
},
|
|
checked: isHtmlComments
|
|
},
|
|
{
|
|
title: lang.cm_change_format_to_outline,
|
|
icon: "file-cog",
|
|
action: () => {
|
|
setDocumentFormat(view.plugin, file.path, "outline");
|
|
},
|
|
checked: isOutline2
|
|
},
|
|
{ type: "separator" },
|
|
{
|
|
title: lang.cm_export_document,
|
|
icon: "file-text",
|
|
action: () => {
|
|
exportDocument(view);
|
|
}
|
|
}
|
|
];
|
|
renderContextMenu(event, menuItems);
|
|
};
|
|
|
|
// src/view/actions/context-menu/context-menu.ts
|
|
var contextMenu = (element2, view) => {
|
|
const listener = (e) => {
|
|
if (cardContextMenuPredicate(e)) {
|
|
if (e.instanceOf(MouseEvent))
|
|
showCardContextMenu(e, view);
|
|
else
|
|
showCardContextMenu(new MouseEvent("contextmenu", e), view);
|
|
} else if (viewContextMenuPredicate(e)) {
|
|
if (e.instanceOf(MouseEvent))
|
|
showViewContextMenu(e, view);
|
|
else
|
|
showViewContextMenu(new MouseEvent("contextmenu", e), view);
|
|
}
|
|
};
|
|
element2.addEventListener("contextmenu", listener);
|
|
let unsubFromLongPress = null;
|
|
if (import_obsidian29.Platform.isMobile) {
|
|
unsubFromLongPress = onLongPress(
|
|
element2,
|
|
listener,
|
|
cardContextMenuPredicate
|
|
);
|
|
}
|
|
return {
|
|
destroy: () => {
|
|
element2.removeEventListener("contextmenu", listener);
|
|
if (unsubFromLongPress) {
|
|
unsubFromLongPress();
|
|
}
|
|
}
|
|
};
|
|
};
|
|
|
|
// src/view/components/container/dnd/dnd-edges.svelte
|
|
function add_css42(target) {
|
|
append_styles(target, "svelte-gs5nl7", ".hide.svelte-gs5nl7{display:none}#dnd-edge-top.svelte-gs5nl7,#dnd-edge-bottom.svelte-gs5nl7{height:40px;position:absolute;left:0;right:0;z-index:100;background-color:var(--color-base-20);opacity:0.1}#dnd-edge-top.svelte-gs5nl7{top:0}#dnd-edge-bottom.svelte-gs5nl7{bottom:0}#dnd-edge-left.svelte-gs5nl7,#dnd-edge-right.svelte-gs5nl7{width:40px;position:absolute;top:40px;bottom:40px;z-index:100;background-color:var(--color-base-20);opacity:0.1}#dnd-edge-left.svelte-gs5nl7{left:0}#dnd-edge-right.svelte-gs5nl7{right:0}");
|
|
}
|
|
function create_fragment101(ctx) {
|
|
let div0;
|
|
let div0_class_value;
|
|
let t0;
|
|
let div1;
|
|
let div1_class_value;
|
|
let t1;
|
|
let div2;
|
|
let div2_class_value;
|
|
let t2;
|
|
let div3;
|
|
let div3_class_value;
|
|
return {
|
|
c() {
|
|
div0 = element("div");
|
|
t0 = space();
|
|
div1 = element("div");
|
|
t1 = space();
|
|
div2 = element("div");
|
|
t2 = space();
|
|
div3 = element("div");
|
|
attr(div0, "id", "dnd-edge-top");
|
|
attr(div0, "class", div0_class_value = null_to_empty(
|
|
/*$dnd*/
|
|
ctx[0].node ? "" : "hide"
|
|
) + " svelte-gs5nl7");
|
|
attr(div1, "id", "dnd-edge-bottom");
|
|
attr(div1, "class", div1_class_value = null_to_empty(
|
|
/*$dnd*/
|
|
ctx[0].node ? "" : "hide"
|
|
) + " svelte-gs5nl7");
|
|
attr(div2, "id", "dnd-edge-left");
|
|
attr(div2, "class", div2_class_value = null_to_empty(
|
|
/*$dnd*/
|
|
ctx[0].node ? "" : "hide"
|
|
) + " svelte-gs5nl7");
|
|
attr(div3, "id", "dnd-edge-right");
|
|
attr(div3, "class", div3_class_value = null_to_empty(
|
|
/*$dnd*/
|
|
ctx[0].node ? "" : "hide"
|
|
) + " svelte-gs5nl7");
|
|
},
|
|
m(target, anchor) {
|
|
insert(target, div0, anchor);
|
|
insert(target, t0, anchor);
|
|
insert(target, div1, anchor);
|
|
insert(target, t1, anchor);
|
|
insert(target, div2, anchor);
|
|
insert(target, t2, anchor);
|
|
insert(target, div3, anchor);
|
|
},
|
|
p(ctx2, [dirty]) {
|
|
if (dirty & /*$dnd*/
|
|
1 && div0_class_value !== (div0_class_value = null_to_empty(
|
|
/*$dnd*/
|
|
ctx2[0].node ? "" : "hide"
|
|
) + " svelte-gs5nl7")) {
|
|
attr(div0, "class", div0_class_value);
|
|
}
|
|
if (dirty & /*$dnd*/
|
|
1 && div1_class_value !== (div1_class_value = null_to_empty(
|
|
/*$dnd*/
|
|
ctx2[0].node ? "" : "hide"
|
|
) + " svelte-gs5nl7")) {
|
|
attr(div1, "class", div1_class_value);
|
|
}
|
|
if (dirty & /*$dnd*/
|
|
1 && div2_class_value !== (div2_class_value = null_to_empty(
|
|
/*$dnd*/
|
|
ctx2[0].node ? "" : "hide"
|
|
) + " svelte-gs5nl7")) {
|
|
attr(div2, "class", div2_class_value);
|
|
}
|
|
if (dirty & /*$dnd*/
|
|
1 && div3_class_value !== (div3_class_value = null_to_empty(
|
|
/*$dnd*/
|
|
ctx2[0].node ? "" : "hide"
|
|
) + " svelte-gs5nl7")) {
|
|
attr(div3, "class", div3_class_value);
|
|
}
|
|
},
|
|
i: noop,
|
|
o: noop,
|
|
d(detaching) {
|
|
if (detaching) {
|
|
detach(div0);
|
|
detach(t0);
|
|
detach(div1);
|
|
detach(t1);
|
|
detach(div2);
|
|
detach(t2);
|
|
detach(div3);
|
|
}
|
|
}
|
|
};
|
|
}
|
|
function instance98($$self, $$props, $$invalidate) {
|
|
let $dnd;
|
|
const view = getView();
|
|
const dnd = dndStore(view);
|
|
component_subscribe($$self, dnd, (value) => $$invalidate(0, $dnd = value));
|
|
return [$dnd, dnd];
|
|
}
|
|
var Dnd_edges = class extends SvelteComponent {
|
|
constructor(options) {
|
|
super();
|
|
init(this, options, instance98, create_fragment101, safe_not_equal, {}, add_css42);
|
|
}
|
|
};
|
|
var dnd_edges_default = Dnd_edges;
|
|
|
|
// src/stores/settings/derived/style-rules.ts
|
|
var DocumentStyleRulesStore = (view) => derived(view.plugin.settings, (state2) => {
|
|
if (!view.file?.path)
|
|
return [];
|
|
return state2.styleRules.documents[view.file.path]?.rules || [];
|
|
});
|
|
|
|
// src/view/components/container/style-rules/components/style-rules-list/components/style-rule/components/rule-info.svelte
|
|
function add_css43(target) {
|
|
append_styles(target, "svelte-1pay5a3", ".rule-info.svelte-1pay5a3{width:fit-content;padding-top:4px;padding-bottom:4px;padding-right:8px;border-right:1px solid var(--text-faint);display:flex;align-items:center;justify-content:center}");
|
|
}
|
|
function create_fragment102(ctx) {
|
|
let div;
|
|
let navigationbuttons;
|
|
let current;
|
|
navigationbuttons = new search_navigation_buttons_default({
|
|
props: { results: (
|
|
/*results*/
|
|
ctx[0] || []
|
|
) }
|
|
});
|
|
return {
|
|
c() {
|
|
div = element("div");
|
|
create_component(navigationbuttons.$$.fragment);
|
|
attr(div, "class", "rule-info svelte-1pay5a3");
|
|
},
|
|
m(target, anchor) {
|
|
insert(target, div, anchor);
|
|
mount_component(navigationbuttons, div, null);
|
|
current = true;
|
|
},
|
|
p(ctx2, [dirty]) {
|
|
const navigationbuttons_changes = {};
|
|
if (dirty & /*results*/
|
|
1)
|
|
navigationbuttons_changes.results = /*results*/
|
|
ctx2[0] || [];
|
|
navigationbuttons.$set(navigationbuttons_changes);
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(navigationbuttons.$$.fragment, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(navigationbuttons.$$.fragment, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
if (detaching) {
|
|
detach(div);
|
|
}
|
|
destroy_component(navigationbuttons);
|
|
}
|
|
};
|
|
}
|
|
function instance99($$self, $$props, $$invalidate) {
|
|
let { rule } = $$props;
|
|
let { results } = $$props;
|
|
$$self.$$set = ($$props2) => {
|
|
if ("rule" in $$props2)
|
|
$$invalidate(1, rule = $$props2.rule);
|
|
if ("results" in $$props2)
|
|
$$invalidate(0, results = $$props2.results);
|
|
};
|
|
return [results, rule];
|
|
}
|
|
var Rule_info = class extends SvelteComponent {
|
|
constructor(options) {
|
|
super();
|
|
init(this, options, instance99, create_fragment102, safe_not_equal, { rule: 1, results: 0 }, add_css43);
|
|
}
|
|
};
|
|
var rule_info_default = Rule_info;
|
|
|
|
// src/view/components/container/style-rules/helpers/constants.ts
|
|
var targets = [
|
|
"self",
|
|
"direct-parent",
|
|
"any-parent",
|
|
"direct-children",
|
|
"any-children"
|
|
];
|
|
var stringOperators = [
|
|
"contains",
|
|
"not-contains",
|
|
"equals",
|
|
"not-equals",
|
|
"empty",
|
|
"not-empty",
|
|
"starts-with",
|
|
"not-starts-with",
|
|
"ends-with",
|
|
"not-ends-with",
|
|
"matches-regex",
|
|
"not-matches-regex"
|
|
];
|
|
var numericOperators = [
|
|
"equals",
|
|
"not-equals",
|
|
"empty",
|
|
"not-empty",
|
|
"greater-than",
|
|
"less-than",
|
|
"between",
|
|
"not-between"
|
|
];
|
|
var properties = [
|
|
"content",
|
|
"headings",
|
|
"headings-word-count",
|
|
"depth",
|
|
"character-count",
|
|
"word-count",
|
|
"line-count",
|
|
"direct-children-count",
|
|
"total-children-count"
|
|
];
|
|
var styleVariants = [
|
|
"background-color",
|
|
"left-border"
|
|
];
|
|
|
|
// src/view/components/container/style-rules/helpers/rule-editor-event-handlers.ts
|
|
var ruleEditorEventHandlers = (view, ruleId) => {
|
|
const documentPath = () => view.file?.path ?? "";
|
|
const updateCondition = (updates) => {
|
|
view.plugin.settings.dispatch({
|
|
type: "settings/style-rules/update-condition",
|
|
payload: {
|
|
documentPath: documentPath(),
|
|
ruleId,
|
|
updates
|
|
}
|
|
});
|
|
};
|
|
const handleScopeChange = (e) => {
|
|
const target = e.target;
|
|
updateCondition({ scope: target.value });
|
|
};
|
|
const handlePropertyChange = (e) => {
|
|
const target = e.target;
|
|
updateCondition({
|
|
property: target.value
|
|
});
|
|
};
|
|
const handleOperatorChange = (e) => {
|
|
const target = e.target;
|
|
updateCondition({ operator: target.value });
|
|
};
|
|
const handleValueChange = (e) => {
|
|
const target = e.target;
|
|
updateCondition({ value: target.value });
|
|
};
|
|
const handleValueBChange = (e) => {
|
|
const target = e.target;
|
|
updateCondition({ valueB: parseFloat(target.value) });
|
|
};
|
|
return {
|
|
handleScopeChange,
|
|
handlePropertyChange,
|
|
handleOperatorChange,
|
|
handleValueChange,
|
|
handleValueBChange
|
|
};
|
|
};
|
|
|
|
// src/lang/style-rules-lang.ts
|
|
var styleRulesLang = {
|
|
targets: {
|
|
self: "Of card",
|
|
"direct-parent": "Of immediate parent",
|
|
"any-parent": "Of any parent",
|
|
"direct-children": "Of immediate child",
|
|
"any-children": "Of any child"
|
|
},
|
|
operators: {
|
|
contains: "Contains",
|
|
"not-contains": "Does not contain",
|
|
equals: "Equals",
|
|
"not-equals": "Does not equal",
|
|
empty: "Is empty",
|
|
"not-empty": "is not empty",
|
|
"greater-than": "Is greater than",
|
|
"less-than": "Is less than",
|
|
between: "Is between",
|
|
"not-between": "Is not between",
|
|
"starts-with": "Starts with",
|
|
"not-starts-with": "Does not start with",
|
|
"ends-with": "Ends with",
|
|
"not-ends-with": "Does not end with",
|
|
"matches-regex": "Matches regex",
|
|
"not-matches-regex": "Does not match regex"
|
|
},
|
|
properties: {
|
|
depth: "Depth",
|
|
"character-count": "Character count",
|
|
"word-count": "Word count",
|
|
"line-count": "Line count",
|
|
"direct-children-count": "Direct children count",
|
|
"total-children-count": "Total children count",
|
|
content: "Content",
|
|
headings: "Headings",
|
|
"headings-word-count": "Headings word count"
|
|
},
|
|
styleVariants: {
|
|
"left-border": "Left border",
|
|
"background-color": "Background color"
|
|
}
|
|
};
|
|
|
|
// src/view/components/container/style-rules/components/style-rules-list/components/style-rule/components/rule-editor.svelte
|
|
function add_css44(target) {
|
|
append_styles(target, "svelte-1yba036", ".rule-editor.svelte-1yba036{display:flex;gap:8px;align-items:center;position:relative;width:90%;flex:1;flex-wrap:wrap}.select-elements.svelte-1yba036{display:flex;gap:8px;align-items:center;justify-content:space-between;flex-wrap:wrap;& select {\n font-size: 12px;\n width: 130px;\n }}.input-elements.svelte-1yba036{width:130px;display:flex;gap:8px;align-items:center;justify-content:space-between;& input {\n font-size: 12px;\n width: 100%;\n }}");
|
|
}
|
|
function get_each_context_1(ctx, list, i) {
|
|
const child_ctx = ctx.slice();
|
|
child_ctx[5] = list[i];
|
|
return child_ctx;
|
|
}
|
|
function get_each_context15(ctx, list, i) {
|
|
const child_ctx = ctx.slice();
|
|
child_ctx[5] = list[i];
|
|
return child_ctx;
|
|
}
|
|
function get_each_context_2(ctx, list, i) {
|
|
const child_ctx = ctx.slice();
|
|
child_ctx[10] = list[i];
|
|
return child_ctx;
|
|
}
|
|
function get_each_context_3(ctx, list, i) {
|
|
const child_ctx = ctx.slice();
|
|
child_ctx[13] = list[i];
|
|
return child_ctx;
|
|
}
|
|
function create_each_block_3(ctx) {
|
|
let option;
|
|
let option_value_value;
|
|
return {
|
|
c() {
|
|
option = element("option");
|
|
option.textContent = `${styleRulesLang.properties[
|
|
/*property*/
|
|
ctx[13]
|
|
]}`;
|
|
option.__value = option_value_value = /*property*/
|
|
ctx[13];
|
|
set_input_value(option, option.__value);
|
|
},
|
|
m(target, anchor) {
|
|
insert(target, option, anchor);
|
|
},
|
|
p: noop,
|
|
d(detaching) {
|
|
if (detaching) {
|
|
detach(option);
|
|
}
|
|
}
|
|
};
|
|
}
|
|
function create_each_block_2(ctx) {
|
|
let option;
|
|
let option_value_value;
|
|
return {
|
|
c() {
|
|
option = element("option");
|
|
option.textContent = `${styleRulesLang.targets[
|
|
/*target*/
|
|
ctx[10]
|
|
]}`;
|
|
option.__value = option_value_value = /*target*/
|
|
ctx[10];
|
|
set_input_value(option, option.__value);
|
|
},
|
|
m(target, anchor) {
|
|
insert(target, option, anchor);
|
|
},
|
|
p: noop,
|
|
d(detaching) {
|
|
if (detaching) {
|
|
detach(option);
|
|
}
|
|
}
|
|
};
|
|
}
|
|
function create_else_block11(ctx) {
|
|
let each_1_anchor;
|
|
let each_value_1 = ensure_array_like(numericOperators);
|
|
let each_blocks = [];
|
|
for (let i = 0; i < each_value_1.length; i += 1) {
|
|
each_blocks[i] = create_each_block_1(get_each_context_1(ctx, each_value_1, i));
|
|
}
|
|
return {
|
|
c() {
|
|
for (let i = 0; i < each_blocks.length; i += 1) {
|
|
each_blocks[i].c();
|
|
}
|
|
each_1_anchor = empty();
|
|
},
|
|
m(target, anchor) {
|
|
for (let i = 0; i < each_blocks.length; i += 1) {
|
|
if (each_blocks[i]) {
|
|
each_blocks[i].m(target, anchor);
|
|
}
|
|
}
|
|
insert(target, each_1_anchor, anchor);
|
|
},
|
|
d(detaching) {
|
|
if (detaching) {
|
|
detach(each_1_anchor);
|
|
}
|
|
destroy_each(each_blocks, detaching);
|
|
}
|
|
};
|
|
}
|
|
function create_if_block_24(ctx) {
|
|
let each_1_anchor;
|
|
let each_value = ensure_array_like(stringOperators);
|
|
let each_blocks = [];
|
|
for (let i = 0; i < each_value.length; i += 1) {
|
|
each_blocks[i] = create_each_block15(get_each_context15(ctx, each_value, i));
|
|
}
|
|
return {
|
|
c() {
|
|
for (let i = 0; i < each_blocks.length; i += 1) {
|
|
each_blocks[i].c();
|
|
}
|
|
each_1_anchor = empty();
|
|
},
|
|
m(target, anchor) {
|
|
for (let i = 0; i < each_blocks.length; i += 1) {
|
|
if (each_blocks[i]) {
|
|
each_blocks[i].m(target, anchor);
|
|
}
|
|
}
|
|
insert(target, each_1_anchor, anchor);
|
|
},
|
|
d(detaching) {
|
|
if (detaching) {
|
|
detach(each_1_anchor);
|
|
}
|
|
destroy_each(each_blocks, detaching);
|
|
}
|
|
};
|
|
}
|
|
function create_each_block_1(ctx) {
|
|
let option;
|
|
let option_value_value;
|
|
return {
|
|
c() {
|
|
option = element("option");
|
|
option.textContent = `${styleRulesLang.operators[
|
|
/*operator*/
|
|
ctx[5]
|
|
]}`;
|
|
option.__value = option_value_value = /*operator*/
|
|
ctx[5];
|
|
set_input_value(option, option.__value);
|
|
},
|
|
m(target, anchor) {
|
|
insert(target, option, anchor);
|
|
},
|
|
p: noop,
|
|
d(detaching) {
|
|
if (detaching) {
|
|
detach(option);
|
|
}
|
|
}
|
|
};
|
|
}
|
|
function create_each_block15(ctx) {
|
|
let option;
|
|
let option_value_value;
|
|
return {
|
|
c() {
|
|
option = element("option");
|
|
option.textContent = `${styleRulesLang.operators[
|
|
/*operator*/
|
|
ctx[5]
|
|
]}`;
|
|
option.__value = option_value_value = /*operator*/
|
|
ctx[5];
|
|
set_input_value(option, option.__value);
|
|
},
|
|
m(target, anchor) {
|
|
insert(target, option, anchor);
|
|
},
|
|
p: noop,
|
|
d(detaching) {
|
|
if (detaching) {
|
|
detach(option);
|
|
}
|
|
}
|
|
};
|
|
}
|
|
function create_if_block_19(ctx) {
|
|
let input;
|
|
let input_type_value;
|
|
let input_value_value;
|
|
let input_placeholder_value;
|
|
let input_style_value;
|
|
let input_aria_label_value;
|
|
let mounted;
|
|
let dispose;
|
|
return {
|
|
c() {
|
|
input = element("input");
|
|
attr(input, "type", input_type_value = /*isStringCondition*/
|
|
ctx[1] ? "text" : "number");
|
|
input.value = input_value_value = /*rule*/
|
|
ctx[0].condition.value;
|
|
attr(input, "placeholder", input_placeholder_value = /*isStringCondition*/
|
|
ctx[1] ? "Text" : "Number");
|
|
attr(input, "style", input_style_value = /*isStringCondition*/
|
|
ctx[1] ? "" : (
|
|
/*operatorIsBetween*/
|
|
ctx[2] ? "width: 50%" : ""
|
|
));
|
|
attr(input, "aria-label", input_aria_label_value = /*operatorIsBetween*/
|
|
ctx[2] ? "Value 1" : "Value");
|
|
},
|
|
m(target, anchor) {
|
|
insert(target, input, anchor);
|
|
if (!mounted) {
|
|
dispose = listen(
|
|
input,
|
|
"input",
|
|
/*h*/
|
|
ctx[3].handleValueChange
|
|
);
|
|
mounted = true;
|
|
}
|
|
},
|
|
p(ctx2, dirty) {
|
|
if (dirty & /*isStringCondition*/
|
|
2 && input_type_value !== (input_type_value = /*isStringCondition*/
|
|
ctx2[1] ? "text" : "number")) {
|
|
attr(input, "type", input_type_value);
|
|
}
|
|
if (dirty & /*rule*/
|
|
1 && input_value_value !== (input_value_value = /*rule*/
|
|
ctx2[0].condition.value) && input.value !== input_value_value) {
|
|
input.value = input_value_value;
|
|
}
|
|
if (dirty & /*isStringCondition*/
|
|
2 && input_placeholder_value !== (input_placeholder_value = /*isStringCondition*/
|
|
ctx2[1] ? "Text" : "Number")) {
|
|
attr(input, "placeholder", input_placeholder_value);
|
|
}
|
|
if (dirty & /*isStringCondition, operatorIsBetween*/
|
|
6 && input_style_value !== (input_style_value = /*isStringCondition*/
|
|
ctx2[1] ? "" : (
|
|
/*operatorIsBetween*/
|
|
ctx2[2] ? "width: 50%" : ""
|
|
))) {
|
|
attr(input, "style", input_style_value);
|
|
}
|
|
if (dirty & /*operatorIsBetween*/
|
|
4 && input_aria_label_value !== (input_aria_label_value = /*operatorIsBetween*/
|
|
ctx2[2] ? "Value 1" : "Value")) {
|
|
attr(input, "aria-label", input_aria_label_value);
|
|
}
|
|
},
|
|
d(detaching) {
|
|
if (detaching) {
|
|
detach(input);
|
|
}
|
|
mounted = false;
|
|
dispose();
|
|
}
|
|
};
|
|
}
|
|
function create_if_block28(ctx) {
|
|
let input;
|
|
let input_value_value;
|
|
let input_placeholder_value;
|
|
let input_style_value;
|
|
let mounted;
|
|
let dispose;
|
|
return {
|
|
c() {
|
|
input = element("input");
|
|
attr(input, "type", "number");
|
|
input.value = input_value_value = "valueB" in /*rule*/
|
|
ctx[0].condition ? (
|
|
/*rule*/
|
|
ctx[0].condition.valueB
|
|
) : 0;
|
|
attr(input, "placeholder", input_placeholder_value = "Number");
|
|
attr(input, "style", input_style_value = "width: 60px");
|
|
attr(input, "aria-label", "Value 2");
|
|
},
|
|
m(target, anchor) {
|
|
insert(target, input, anchor);
|
|
if (!mounted) {
|
|
dispose = listen(
|
|
input,
|
|
"input",
|
|
/*h*/
|
|
ctx[3].handleValueBChange
|
|
);
|
|
mounted = true;
|
|
}
|
|
},
|
|
p(ctx2, dirty) {
|
|
if (dirty & /*rule*/
|
|
1 && input_value_value !== (input_value_value = "valueB" in /*rule*/
|
|
ctx2[0].condition ? (
|
|
/*rule*/
|
|
ctx2[0].condition.valueB
|
|
) : 0) && input.value !== input_value_value) {
|
|
input.value = input_value_value;
|
|
}
|
|
},
|
|
d(detaching) {
|
|
if (detaching) {
|
|
detach(input);
|
|
}
|
|
mounted = false;
|
|
dispose();
|
|
}
|
|
};
|
|
}
|
|
function create_fragment103(ctx) {
|
|
let div2;
|
|
let div0;
|
|
let select0;
|
|
let select0_value_value;
|
|
let t0;
|
|
let select1;
|
|
let select1_value_value;
|
|
let t1;
|
|
let select2;
|
|
let select2_value_value;
|
|
let t2;
|
|
let div1;
|
|
let show_if = !["empty", "not-empty"].includes(
|
|
/*rule*/
|
|
ctx[0].condition.operator
|
|
);
|
|
let t3;
|
|
let mounted;
|
|
let dispose;
|
|
let each_value_3 = ensure_array_like(properties);
|
|
let each_blocks_1 = [];
|
|
for (let i = 0; i < each_value_3.length; i += 1) {
|
|
each_blocks_1[i] = create_each_block_3(get_each_context_3(ctx, each_value_3, i));
|
|
}
|
|
let each_value_2 = ensure_array_like(targets);
|
|
let each_blocks = [];
|
|
for (let i = 0; i < each_value_2.length; i += 1) {
|
|
each_blocks[i] = create_each_block_2(get_each_context_2(ctx, each_value_2, i));
|
|
}
|
|
function select_block_type(ctx2, dirty) {
|
|
if (
|
|
/*isStringCondition*/
|
|
ctx2[1]
|
|
)
|
|
return create_if_block_24;
|
|
return create_else_block11;
|
|
}
|
|
let current_block_type = select_block_type(ctx, -1);
|
|
let if_block0 = current_block_type(ctx);
|
|
let if_block1 = show_if && create_if_block_19(ctx);
|
|
let if_block2 = (
|
|
/*operatorIsBetween*/
|
|
ctx[2] && create_if_block28(ctx)
|
|
);
|
|
return {
|
|
c() {
|
|
div2 = element("div");
|
|
div0 = element("div");
|
|
select0 = element("select");
|
|
for (let i = 0; i < each_blocks_1.length; i += 1) {
|
|
each_blocks_1[i].c();
|
|
}
|
|
t0 = space();
|
|
select1 = element("select");
|
|
for (let i = 0; i < each_blocks.length; i += 1) {
|
|
each_blocks[i].c();
|
|
}
|
|
t1 = space();
|
|
select2 = element("select");
|
|
if_block0.c();
|
|
t2 = space();
|
|
div1 = element("div");
|
|
if (if_block1)
|
|
if_block1.c();
|
|
t3 = space();
|
|
if (if_block2)
|
|
if_block2.c();
|
|
attr(select0, "aria-label", "Property");
|
|
attr(select1, "aria-label", "Scope");
|
|
attr(select2, "aria-label", "Operator");
|
|
attr(div0, "class", "select-elements svelte-1yba036");
|
|
attr(div1, "class", "input-elements svelte-1yba036");
|
|
attr(div2, "class", "rule-editor svelte-1yba036");
|
|
},
|
|
m(target, anchor) {
|
|
insert(target, div2, anchor);
|
|
append(div2, div0);
|
|
append(div0, select0);
|
|
for (let i = 0; i < each_blocks_1.length; i += 1) {
|
|
if (each_blocks_1[i]) {
|
|
each_blocks_1[i].m(select0, null);
|
|
}
|
|
}
|
|
select_option(
|
|
select0,
|
|
/*rule*/
|
|
ctx[0].condition.property
|
|
);
|
|
append(div0, t0);
|
|
append(div0, select1);
|
|
for (let i = 0; i < each_blocks.length; i += 1) {
|
|
if (each_blocks[i]) {
|
|
each_blocks[i].m(select1, null);
|
|
}
|
|
}
|
|
select_option(
|
|
select1,
|
|
/*rule*/
|
|
ctx[0].condition.scope
|
|
);
|
|
append(div0, t1);
|
|
append(div0, select2);
|
|
if_block0.m(select2, null);
|
|
select_option(
|
|
select2,
|
|
/*rule*/
|
|
ctx[0].condition.operator
|
|
);
|
|
append(div2, t2);
|
|
append(div2, div1);
|
|
if (if_block1)
|
|
if_block1.m(div1, null);
|
|
append(div1, t3);
|
|
if (if_block2)
|
|
if_block2.m(div1, null);
|
|
if (!mounted) {
|
|
dispose = [
|
|
listen(
|
|
select0,
|
|
"change",
|
|
/*h*/
|
|
ctx[3].handlePropertyChange
|
|
),
|
|
listen(
|
|
select1,
|
|
"change",
|
|
/*h*/
|
|
ctx[3].handleScopeChange
|
|
),
|
|
listen(
|
|
select2,
|
|
"change",
|
|
/*h*/
|
|
ctx[3].handleOperatorChange
|
|
)
|
|
];
|
|
mounted = true;
|
|
}
|
|
},
|
|
p(ctx2, [dirty]) {
|
|
if (dirty & /*rule*/
|
|
1 && select0_value_value !== (select0_value_value = /*rule*/
|
|
ctx2[0].condition.property)) {
|
|
select_option(
|
|
select0,
|
|
/*rule*/
|
|
ctx2[0].condition.property
|
|
);
|
|
}
|
|
if (dirty & /*rule*/
|
|
1 && select1_value_value !== (select1_value_value = /*rule*/
|
|
ctx2[0].condition.scope)) {
|
|
select_option(
|
|
select1,
|
|
/*rule*/
|
|
ctx2[0].condition.scope
|
|
);
|
|
}
|
|
if (current_block_type !== (current_block_type = select_block_type(ctx2, dirty))) {
|
|
if_block0.d(1);
|
|
if_block0 = current_block_type(ctx2);
|
|
if (if_block0) {
|
|
if_block0.c();
|
|
if_block0.m(select2, null);
|
|
}
|
|
}
|
|
if (dirty & /*rule*/
|
|
1 && select2_value_value !== (select2_value_value = /*rule*/
|
|
ctx2[0].condition.operator)) {
|
|
select_option(
|
|
select2,
|
|
/*rule*/
|
|
ctx2[0].condition.operator
|
|
);
|
|
}
|
|
if (dirty & /*rule*/
|
|
1)
|
|
show_if = !["empty", "not-empty"].includes(
|
|
/*rule*/
|
|
ctx2[0].condition.operator
|
|
);
|
|
if (show_if) {
|
|
if (if_block1) {
|
|
if_block1.p(ctx2, dirty);
|
|
} else {
|
|
if_block1 = create_if_block_19(ctx2);
|
|
if_block1.c();
|
|
if_block1.m(div1, t3);
|
|
}
|
|
} else if (if_block1) {
|
|
if_block1.d(1);
|
|
if_block1 = null;
|
|
}
|
|
if (
|
|
/*operatorIsBetween*/
|
|
ctx2[2]
|
|
) {
|
|
if (if_block2) {
|
|
if_block2.p(ctx2, dirty);
|
|
} else {
|
|
if_block2 = create_if_block28(ctx2);
|
|
if_block2.c();
|
|
if_block2.m(div1, null);
|
|
}
|
|
} else if (if_block2) {
|
|
if_block2.d(1);
|
|
if_block2 = null;
|
|
}
|
|
},
|
|
i: noop,
|
|
o: noop,
|
|
d(detaching) {
|
|
if (detaching) {
|
|
detach(div2);
|
|
}
|
|
destroy_each(each_blocks_1, detaching);
|
|
destroy_each(each_blocks, detaching);
|
|
if_block0.d();
|
|
if (if_block1)
|
|
if_block1.d();
|
|
if (if_block2)
|
|
if_block2.d();
|
|
mounted = false;
|
|
run_all(dispose);
|
|
}
|
|
};
|
|
}
|
|
function instance100($$self, $$props, $$invalidate) {
|
|
let operatorIsBetween;
|
|
let isStringCondition;
|
|
let { rule } = $$props;
|
|
const view = getView();
|
|
const h = ruleEditorEventHandlers(view, rule.id);
|
|
$$self.$$set = ($$props2) => {
|
|
if ("rule" in $$props2)
|
|
$$invalidate(0, rule = $$props2.rule);
|
|
};
|
|
$$self.$$.update = () => {
|
|
if ($$self.$$.dirty & /*rule*/
|
|
1) {
|
|
$:
|
|
$$invalidate(2, operatorIsBetween = rule.condition.operator === "between" || rule.condition.operator === "not-between");
|
|
}
|
|
if ($$self.$$.dirty & /*rule*/
|
|
1) {
|
|
$:
|
|
$$invalidate(1, isStringCondition = rule.condition.property === "content" || rule.condition.property === "headings");
|
|
}
|
|
};
|
|
return [rule, isStringCondition, operatorIsBetween, h];
|
|
}
|
|
var Rule_editor = class extends SvelteComponent {
|
|
constructor(options) {
|
|
super();
|
|
init(this, options, instance100, create_fragment103, safe_not_equal, { rule: 0 }, add_css44);
|
|
}
|
|
};
|
|
var rule_editor_default = Rule_editor;
|
|
|
|
// src/view/components/container/style-rules/helpers/rule-style-editor-event-handlers.ts
|
|
var ruleStyleEditorEventHandlers = (view, ruleId) => {
|
|
const documentPath = () => view.file?.path ?? "";
|
|
const updateStyle = (id2, style) => {
|
|
view.plugin.settings.dispatch({
|
|
type: "settings/style-rules/update-style",
|
|
payload: { documentPath: documentPath(), id: id2, style }
|
|
});
|
|
};
|
|
const handleColorChange = (e) => {
|
|
const target = e.target;
|
|
updateStyle(ruleId, { color: target.value });
|
|
};
|
|
const handleStyleVariantChange = (e) => {
|
|
const target = e.target;
|
|
updateStyle(ruleId, {
|
|
styleVariant: target.value
|
|
});
|
|
};
|
|
return {
|
|
handleColorChange,
|
|
handleStyleVariantChange
|
|
};
|
|
};
|
|
|
|
// src/view/components/container/style-rules/components/style-rules-list/components/style-rule/components/rule-style-editor.svelte
|
|
function add_css45(target) {
|
|
append_styles(target, "svelte-13w1xs", ".rule-style-config.svelte-13w1xs{width:fit-content;padding:4px;padding-right:0px;border-left:1px solid var(--text-faint);display:flex;align-items:center;gap:8px;justify-content:center}.select-elements.svelte-13w1xs{display:flex;gap:8px;align-items:center;justify-content:space-between;flex-wrap:wrap;& select {\n font-size: 12px;\n width: 130px;\n }}");
|
|
}
|
|
function get_each_context16(ctx, list, i) {
|
|
const child_ctx = ctx.slice();
|
|
child_ctx[3] = list[i];
|
|
return child_ctx;
|
|
}
|
|
function create_each_block16(ctx) {
|
|
let option;
|
|
let option_value_value;
|
|
return {
|
|
c() {
|
|
option = element("option");
|
|
option.textContent = `${styleRulesLang.styleVariants[
|
|
/*styleType*/
|
|
ctx[3]
|
|
]}`;
|
|
option.__value = option_value_value = /*styleType*/
|
|
ctx[3];
|
|
set_input_value(option, option.__value);
|
|
},
|
|
m(target, anchor) {
|
|
insert(target, option, anchor);
|
|
},
|
|
p: noop,
|
|
d(detaching) {
|
|
if (detaching) {
|
|
detach(option);
|
|
}
|
|
}
|
|
};
|
|
}
|
|
function create_fragment104(ctx) {
|
|
let div1;
|
|
let input;
|
|
let input_value_value;
|
|
let t;
|
|
let div0;
|
|
let select;
|
|
let select_value_value;
|
|
let mounted;
|
|
let dispose;
|
|
let each_value = ensure_array_like(styleVariants);
|
|
let each_blocks = [];
|
|
for (let i = 0; i < each_value.length; i += 1) {
|
|
each_blocks[i] = create_each_block16(get_each_context16(ctx, each_value, i));
|
|
}
|
|
return {
|
|
c() {
|
|
div1 = element("div");
|
|
input = element("input");
|
|
t = space();
|
|
div0 = element("div");
|
|
select = element("select");
|
|
for (let i = 0; i < each_blocks.length; i += 1) {
|
|
each_blocks[i].c();
|
|
}
|
|
attr(input, "type", "color");
|
|
input.value = input_value_value = /*rule*/
|
|
ctx[0].style.color;
|
|
attr(div0, "class", "select-elements svelte-13w1xs");
|
|
attr(div1, "class", "rule-style-config svelte-13w1xs");
|
|
},
|
|
m(target, anchor) {
|
|
insert(target, div1, anchor);
|
|
append(div1, input);
|
|
append(div1, t);
|
|
append(div1, div0);
|
|
append(div0, select);
|
|
for (let i = 0; i < each_blocks.length; i += 1) {
|
|
if (each_blocks[i]) {
|
|
each_blocks[i].m(select, null);
|
|
}
|
|
}
|
|
select_option(
|
|
select,
|
|
/*rule*/
|
|
ctx[0].style.styleVariant
|
|
);
|
|
if (!mounted) {
|
|
dispose = [
|
|
listen(
|
|
input,
|
|
"input",
|
|
/*h*/
|
|
ctx[1].handleColorChange
|
|
),
|
|
listen(
|
|
select,
|
|
"change",
|
|
/*h*/
|
|
ctx[1].handleStyleVariantChange
|
|
)
|
|
];
|
|
mounted = true;
|
|
}
|
|
},
|
|
p(ctx2, [dirty]) {
|
|
if (dirty & /*rule*/
|
|
1 && input_value_value !== (input_value_value = /*rule*/
|
|
ctx2[0].style.color)) {
|
|
input.value = input_value_value;
|
|
}
|
|
if (dirty & /*rule*/
|
|
1 && select_value_value !== (select_value_value = /*rule*/
|
|
ctx2[0].style.styleVariant)) {
|
|
select_option(
|
|
select,
|
|
/*rule*/
|
|
ctx2[0].style.styleVariant
|
|
);
|
|
}
|
|
},
|
|
i: noop,
|
|
o: noop,
|
|
d(detaching) {
|
|
if (detaching) {
|
|
detach(div1);
|
|
}
|
|
destroy_each(each_blocks, detaching);
|
|
mounted = false;
|
|
run_all(dispose);
|
|
}
|
|
};
|
|
}
|
|
function instance101($$self, $$props, $$invalidate) {
|
|
let { rule } = $$props;
|
|
const view = getView();
|
|
const h = ruleStyleEditorEventHandlers(view, rule.id);
|
|
$$self.$$set = ($$props2) => {
|
|
if ("rule" in $$props2)
|
|
$$invalidate(0, rule = $$props2.rule);
|
|
};
|
|
return [rule, h];
|
|
}
|
|
var Rule_style_editor = class extends SvelteComponent {
|
|
constructor(options) {
|
|
super();
|
|
init(this, options, instance101, create_fragment104, safe_not_equal, { rule: 0 }, add_css45);
|
|
}
|
|
};
|
|
var rule_style_editor_default = Rule_style_editor;
|
|
|
|
// src/view/components/container/style-rules/components/style-rules-list/components/style-rule/components/actions/rule-dnd.ts
|
|
var ruleDndAction = (element2, {
|
|
setDraggedRule,
|
|
setDropTarget,
|
|
resetDragState,
|
|
rule,
|
|
view
|
|
}) => {
|
|
const handleDragStart = (e) => {
|
|
const target = e.currentTarget;
|
|
const dragHandleRect = target.querySelector(".drag-handle")?.getBoundingClientRect();
|
|
const isWithinDragHandle = dragHandleRect && e.clientX >= dragHandleRect.left && e.clientX <= dragHandleRect.right && e.clientY >= dragHandleRect.top && e.clientY <= dragHandleRect.bottom;
|
|
if (!isWithinDragHandle) {
|
|
e.preventDefault();
|
|
return;
|
|
}
|
|
const rules = get_store_value(DocumentStyleRulesStore(view));
|
|
if (rules.length === 1) {
|
|
e.preventDefault();
|
|
return;
|
|
}
|
|
if (!e.dataTransfer)
|
|
return;
|
|
e.dataTransfer.effectAllowed = "move";
|
|
const data = { id: rule.id };
|
|
e.dataTransfer.setData("text/plain", JSON.stringify(data));
|
|
setTimeout(() => {
|
|
setDraggedRule(rule);
|
|
});
|
|
};
|
|
const handleDragOver = (e) => {
|
|
e.preventDefault();
|
|
const target = e.currentTarget;
|
|
const rect = target.getBoundingClientRect();
|
|
const y = e.clientY - rect.top;
|
|
const isAbove = y < rect.height / 2;
|
|
setDropTarget(rule, isAbove ? "before" : "after");
|
|
};
|
|
const handleDrop = (e) => {
|
|
e.preventDefault();
|
|
const target = e.currentTarget;
|
|
const data = JSON.parse(e.dataTransfer?.getData("text/plain") || "{}");
|
|
if (!data.id)
|
|
return;
|
|
const rect = target.getBoundingClientRect();
|
|
const y = e.clientY - rect.top;
|
|
const isAbove = y < rect.height / 2;
|
|
view.plugin.settings.dispatch({
|
|
type: "settings/style-rules/move",
|
|
payload: {
|
|
documentPath: view.file?.path,
|
|
droppedId: data.id,
|
|
targetId: rule.id,
|
|
position: isAbove ? "before" : "after"
|
|
}
|
|
});
|
|
setTimeout(() => {
|
|
resetDragState();
|
|
});
|
|
};
|
|
const handleDragEnd = (e) => {
|
|
e.preventDefault();
|
|
resetDragState();
|
|
};
|
|
element2.addEventListener("dragstart", handleDragStart);
|
|
element2.addEventListener("dragover", handleDragOver);
|
|
element2.addEventListener("drop", handleDrop);
|
|
element2.addEventListener("dragend", handleDragEnd);
|
|
return {
|
|
destroy: () => {
|
|
element2.removeEventListener("dragstart", handleDragStart);
|
|
element2.removeEventListener("dragover", handleDragOver);
|
|
element2.removeEventListener("drop", handleDrop);
|
|
element2.removeEventListener("dragend", handleDragEnd);
|
|
}
|
|
};
|
|
};
|
|
|
|
// src/view/components/container/style-rules/components/style-rules-list/components/style-rule/components/rule-actions.svelte
|
|
function add_css46(target) {
|
|
append_styles(target, "svelte-g9rst9", ".rule-actions.svelte-g9rst9{display:flex;align-items:center;gap:8px;padding-top:4px;padding-bottom:4px;padding-left:8px;border-left:1px solid var(--text-faint);justify-content:center}.delete-button.svelte-g9rst9{color:var(--color-red)\n }");
|
|
}
|
|
function create_fragment105(ctx) {
|
|
let div1;
|
|
let input;
|
|
let input_checked_value;
|
|
let t;
|
|
let div0;
|
|
let trash;
|
|
let current;
|
|
let mounted;
|
|
let dispose;
|
|
trash = new trash_default({ props: { class: "svg-icon" } });
|
|
return {
|
|
c() {
|
|
div1 = element("div");
|
|
input = element("input");
|
|
t = space();
|
|
div0 = element("div");
|
|
create_component(trash.$$.fragment);
|
|
attr(input, "type", "checkbox");
|
|
input.checked = input_checked_value = /*rule*/
|
|
ctx[0].enabled;
|
|
attr(input, "aria-label", "Enable");
|
|
attr(div0, "class", "clickable-icon delete-button svelte-g9rst9");
|
|
attr(div0, "aria-label", "Delete");
|
|
attr(div1, "class", "rule-actions svelte-g9rst9");
|
|
},
|
|
m(target, anchor) {
|
|
insert(target, div1, anchor);
|
|
append(div1, input);
|
|
append(div1, t);
|
|
append(div1, div0);
|
|
mount_component(trash, div0, null);
|
|
current = true;
|
|
if (!mounted) {
|
|
dispose = [
|
|
listen(
|
|
input,
|
|
"change",
|
|
/*toggleRule*/
|
|
ctx[1]
|
|
),
|
|
listen(
|
|
div0,
|
|
"click",
|
|
/*deleteRule*/
|
|
ctx[2]
|
|
)
|
|
];
|
|
mounted = true;
|
|
}
|
|
},
|
|
p(ctx2, [dirty]) {
|
|
if (!current || dirty & /*rule*/
|
|
1 && input_checked_value !== (input_checked_value = /*rule*/
|
|
ctx2[0].enabled)) {
|
|
input.checked = input_checked_value;
|
|
}
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(trash.$$.fragment, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(trash.$$.fragment, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
if (detaching) {
|
|
detach(div1);
|
|
}
|
|
destroy_component(trash);
|
|
mounted = false;
|
|
run_all(dispose);
|
|
}
|
|
};
|
|
}
|
|
function instance102($$self, $$props, $$invalidate) {
|
|
let { rule } = $$props;
|
|
const view = getView();
|
|
const toggleRule = (e) => {
|
|
const target = e.target;
|
|
view.plugin.settings.dispatch({
|
|
type: target.checked ? "settings/style-rules/enable-rule" : "settings/style-rules/disable-rule",
|
|
payload: {
|
|
documentPath: view.file.path,
|
|
id: rule.id
|
|
}
|
|
});
|
|
};
|
|
const deleteRule = () => {
|
|
view.plugin.settings.dispatch({
|
|
type: "settings/style-rules/delete",
|
|
payload: {
|
|
documentPath: view.file.path,
|
|
id: rule.id
|
|
}
|
|
});
|
|
};
|
|
$$self.$$set = ($$props2) => {
|
|
if ("rule" in $$props2)
|
|
$$invalidate(0, rule = $$props2.rule);
|
|
};
|
|
return [rule, toggleRule, deleteRule];
|
|
}
|
|
var Rule_actions = class extends SvelteComponent {
|
|
constructor(options) {
|
|
super();
|
|
init(this, options, instance102, create_fragment105, safe_not_equal, { rule: 0 }, add_css46);
|
|
}
|
|
};
|
|
var rule_actions_default = Rule_actions;
|
|
|
|
// src/view/components/container/style-rules/components/style-rules-list/components/style-rule/style-rule.svelte
|
|
function add_css47(target) {
|
|
append_styles(target, "svelte-13uscz", ".rule-container.svelte-13uscz{margin-top:10px;display:flex;border-radius:4px;overflow:hidden;background-color:var(--color-base-20);padding:12px;gap:8px;flex-wrap:wrap}.drag-handle.svelte-13uscz{cursor:grab;color:var(--text-muted);padding:4px;display:flex;align-items:center}.drag-handle.svelte-13uscz:hover{color:var(--text-normal)}.rule-container.svelte-13uscz:nth-child(-n + 1){margin-top:0}");
|
|
}
|
|
function create_fragment106(ctx) {
|
|
let div1;
|
|
let div0;
|
|
let gripvertical;
|
|
let div0_aria_label_value;
|
|
let t0;
|
|
let ruleinfo;
|
|
let t1;
|
|
let ruleeditor;
|
|
let t2;
|
|
let rulestyleeditor;
|
|
let t3;
|
|
let ruleactions;
|
|
let ruleDndAction_action;
|
|
let current;
|
|
let mounted;
|
|
let dispose;
|
|
gripvertical = new grip_vertical_default({ props: { class: "svg-icon" } });
|
|
ruleinfo = new rule_info_default({
|
|
props: {
|
|
rule: (
|
|
/*rule*/
|
|
ctx[3]
|
|
),
|
|
results: (
|
|
/*results*/
|
|
ctx[4]
|
|
)
|
|
}
|
|
});
|
|
ruleeditor = new rule_editor_default({ props: { rule: (
|
|
/*rule*/
|
|
ctx[3]
|
|
) } });
|
|
rulestyleeditor = new rule_style_editor_default({ props: { rule: (
|
|
/*rule*/
|
|
ctx[3]
|
|
) } });
|
|
ruleactions = new rule_actions_default({ props: { rule: (
|
|
/*rule*/
|
|
ctx[3]
|
|
) } });
|
|
return {
|
|
c() {
|
|
div1 = element("div");
|
|
div0 = element("div");
|
|
create_component(gripvertical.$$.fragment);
|
|
t0 = space();
|
|
create_component(ruleinfo.$$.fragment);
|
|
t1 = space();
|
|
create_component(ruleeditor.$$.fragment);
|
|
t2 = space();
|
|
create_component(rulestyleeditor.$$.fragment);
|
|
t3 = space();
|
|
create_component(ruleactions.$$.fragment);
|
|
attr(div0, "class", "drag-handle svelte-13uscz");
|
|
attr(div0, "aria-label", div0_aria_label_value = lang.modals_rules_drag_handle);
|
|
attr(div1, "class", "rule-container svelte-13uscz");
|
|
attr(div1, "draggable", "true");
|
|
},
|
|
m(target, anchor) {
|
|
insert(target, div1, anchor);
|
|
append(div1, div0);
|
|
mount_component(gripvertical, div0, null);
|
|
append(div1, t0);
|
|
mount_component(ruleinfo, div1, null);
|
|
append(div1, t1);
|
|
mount_component(ruleeditor, div1, null);
|
|
append(div1, t2);
|
|
mount_component(rulestyleeditor, div1, null);
|
|
append(div1, t3);
|
|
mount_component(ruleactions, div1, null);
|
|
current = true;
|
|
if (!mounted) {
|
|
dispose = action_destroyer(ruleDndAction_action = ruleDndAction.call(null, div1, {
|
|
setDraggedRule: (
|
|
/*setDraggedRule*/
|
|
ctx[0]
|
|
),
|
|
setDropTarget: (
|
|
/*setDropTarget*/
|
|
ctx[1]
|
|
),
|
|
resetDragState: (
|
|
/*resetDragState*/
|
|
ctx[2]
|
|
),
|
|
rule: (
|
|
/*rule*/
|
|
ctx[3]
|
|
),
|
|
view: (
|
|
/*view*/
|
|
ctx[5]
|
|
)
|
|
}));
|
|
mounted = true;
|
|
}
|
|
},
|
|
p(ctx2, [dirty]) {
|
|
const ruleinfo_changes = {};
|
|
if (dirty & /*rule*/
|
|
8)
|
|
ruleinfo_changes.rule = /*rule*/
|
|
ctx2[3];
|
|
if (dirty & /*results*/
|
|
16)
|
|
ruleinfo_changes.results = /*results*/
|
|
ctx2[4];
|
|
ruleinfo.$set(ruleinfo_changes);
|
|
const ruleeditor_changes = {};
|
|
if (dirty & /*rule*/
|
|
8)
|
|
ruleeditor_changes.rule = /*rule*/
|
|
ctx2[3];
|
|
ruleeditor.$set(ruleeditor_changes);
|
|
const rulestyleeditor_changes = {};
|
|
if (dirty & /*rule*/
|
|
8)
|
|
rulestyleeditor_changes.rule = /*rule*/
|
|
ctx2[3];
|
|
rulestyleeditor.$set(rulestyleeditor_changes);
|
|
const ruleactions_changes = {};
|
|
if (dirty & /*rule*/
|
|
8)
|
|
ruleactions_changes.rule = /*rule*/
|
|
ctx2[3];
|
|
ruleactions.$set(ruleactions_changes);
|
|
if (ruleDndAction_action && is_function(ruleDndAction_action.update) && dirty & /*setDraggedRule, setDropTarget, resetDragState, rule*/
|
|
15)
|
|
ruleDndAction_action.update.call(null, {
|
|
setDraggedRule: (
|
|
/*setDraggedRule*/
|
|
ctx2[0]
|
|
),
|
|
setDropTarget: (
|
|
/*setDropTarget*/
|
|
ctx2[1]
|
|
),
|
|
resetDragState: (
|
|
/*resetDragState*/
|
|
ctx2[2]
|
|
),
|
|
rule: (
|
|
/*rule*/
|
|
ctx2[3]
|
|
),
|
|
view: (
|
|
/*view*/
|
|
ctx2[5]
|
|
)
|
|
});
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(gripvertical.$$.fragment, local);
|
|
transition_in(ruleinfo.$$.fragment, local);
|
|
transition_in(ruleeditor.$$.fragment, local);
|
|
transition_in(rulestyleeditor.$$.fragment, local);
|
|
transition_in(ruleactions.$$.fragment, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(gripvertical.$$.fragment, local);
|
|
transition_out(ruleinfo.$$.fragment, local);
|
|
transition_out(ruleeditor.$$.fragment, local);
|
|
transition_out(rulestyleeditor.$$.fragment, local);
|
|
transition_out(ruleactions.$$.fragment, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
if (detaching) {
|
|
detach(div1);
|
|
}
|
|
destroy_component(gripvertical);
|
|
destroy_component(ruleinfo);
|
|
destroy_component(ruleeditor);
|
|
destroy_component(rulestyleeditor);
|
|
destroy_component(ruleactions);
|
|
mounted = false;
|
|
dispose();
|
|
}
|
|
};
|
|
}
|
|
function instance103($$self, $$props, $$invalidate) {
|
|
let { setDraggedRule } = $$props;
|
|
let { setDropTarget } = $$props;
|
|
let { resetDragState } = $$props;
|
|
let { rule } = $$props;
|
|
let { results } = $$props;
|
|
const view = getView();
|
|
$$self.$$set = ($$props2) => {
|
|
if ("setDraggedRule" in $$props2)
|
|
$$invalidate(0, setDraggedRule = $$props2.setDraggedRule);
|
|
if ("setDropTarget" in $$props2)
|
|
$$invalidate(1, setDropTarget = $$props2.setDropTarget);
|
|
if ("resetDragState" in $$props2)
|
|
$$invalidate(2, resetDragState = $$props2.resetDragState);
|
|
if ("rule" in $$props2)
|
|
$$invalidate(3, rule = $$props2.rule);
|
|
if ("results" in $$props2)
|
|
$$invalidate(4, results = $$props2.results);
|
|
};
|
|
return [setDraggedRule, setDropTarget, resetDragState, rule, results, view];
|
|
}
|
|
var Style_rule = class extends SvelteComponent {
|
|
constructor(options) {
|
|
super();
|
|
init(
|
|
this,
|
|
options,
|
|
instance103,
|
|
create_fragment106,
|
|
safe_not_equal,
|
|
{
|
|
setDraggedRule: 0,
|
|
setDropTarget: 1,
|
|
resetDragState: 2,
|
|
rule: 3,
|
|
results: 4
|
|
},
|
|
add_css47
|
|
);
|
|
}
|
|
};
|
|
var style_rule_default = Style_rule;
|
|
|
|
// src/view/components/container/style-rules/components/style-rules-list/components/drop-target.svelte
|
|
function add_css48(target) {
|
|
append_styles(target, "svelte-1xjkxat", ".drop-target.svelte-1xjkxat{height:50px;background-color:var(--interactive-hover);border-radius:4px}");
|
|
}
|
|
function create_if_block_110(ctx) {
|
|
let div;
|
|
let mounted;
|
|
let dispose;
|
|
return {
|
|
c() {
|
|
div = element("div");
|
|
attr(div, "class", "drop-target svelte-1xjkxat");
|
|
},
|
|
m(target, anchor) {
|
|
insert(target, div, anchor);
|
|
if (!mounted) {
|
|
dispose = [
|
|
listen(div, "dragover", dragover_handler),
|
|
listen(
|
|
div,
|
|
"drop",
|
|
/*drop_handler*/
|
|
ctx[7]
|
|
)
|
|
];
|
|
mounted = true;
|
|
}
|
|
},
|
|
p: noop,
|
|
d(detaching) {
|
|
if (detaching) {
|
|
detach(div);
|
|
}
|
|
mounted = false;
|
|
run_all(dispose);
|
|
}
|
|
};
|
|
}
|
|
function create_if_block29(ctx) {
|
|
let div;
|
|
let mounted;
|
|
let dispose;
|
|
return {
|
|
c() {
|
|
div = element("div");
|
|
attr(div, "class", "drop-target svelte-1xjkxat");
|
|
},
|
|
m(target, anchor) {
|
|
insert(target, div, anchor);
|
|
if (!mounted) {
|
|
dispose = [
|
|
listen(div, "dragover", dragover_handler_1),
|
|
listen(
|
|
div,
|
|
"drop",
|
|
/*drop_handler_1*/
|
|
ctx[8]
|
|
)
|
|
];
|
|
mounted = true;
|
|
}
|
|
},
|
|
p: noop,
|
|
d(detaching) {
|
|
if (detaching) {
|
|
detach(div);
|
|
}
|
|
mounted = false;
|
|
run_all(dispose);
|
|
}
|
|
};
|
|
}
|
|
function create_fragment107(ctx) {
|
|
let t0;
|
|
let t1;
|
|
let if_block1_anchor;
|
|
let current;
|
|
let if_block0 = (
|
|
/*dropPosition*/
|
|
ctx[0] === "before" && create_if_block_110(ctx)
|
|
);
|
|
const default_slot_template = (
|
|
/*#slots*/
|
|
ctx[6].default
|
|
);
|
|
const default_slot = create_slot(
|
|
default_slot_template,
|
|
ctx,
|
|
/*$$scope*/
|
|
ctx[5],
|
|
null
|
|
);
|
|
let if_block1 = (
|
|
/*dropPosition*/
|
|
ctx[0] === "after" && create_if_block29(ctx)
|
|
);
|
|
return {
|
|
c() {
|
|
if (if_block0)
|
|
if_block0.c();
|
|
t0 = space();
|
|
if (default_slot)
|
|
default_slot.c();
|
|
t1 = space();
|
|
if (if_block1)
|
|
if_block1.c();
|
|
if_block1_anchor = empty();
|
|
},
|
|
m(target, anchor) {
|
|
if (if_block0)
|
|
if_block0.m(target, anchor);
|
|
insert(target, t0, anchor);
|
|
if (default_slot) {
|
|
default_slot.m(target, anchor);
|
|
}
|
|
insert(target, t1, anchor);
|
|
if (if_block1)
|
|
if_block1.m(target, anchor);
|
|
insert(target, if_block1_anchor, anchor);
|
|
current = true;
|
|
},
|
|
p(ctx2, [dirty]) {
|
|
if (
|
|
/*dropPosition*/
|
|
ctx2[0] === "before"
|
|
) {
|
|
if (if_block0) {
|
|
if_block0.p(ctx2, dirty);
|
|
} else {
|
|
if_block0 = create_if_block_110(ctx2);
|
|
if_block0.c();
|
|
if_block0.m(t0.parentNode, t0);
|
|
}
|
|
} else if (if_block0) {
|
|
if_block0.d(1);
|
|
if_block0 = null;
|
|
}
|
|
if (default_slot) {
|
|
if (default_slot.p && (!current || dirty & /*$$scope*/
|
|
32)) {
|
|
update_slot_base(
|
|
default_slot,
|
|
default_slot_template,
|
|
ctx2,
|
|
/*$$scope*/
|
|
ctx2[5],
|
|
!current ? get_all_dirty_from_scope(
|
|
/*$$scope*/
|
|
ctx2[5]
|
|
) : get_slot_changes(
|
|
default_slot_template,
|
|
/*$$scope*/
|
|
ctx2[5],
|
|
dirty,
|
|
null
|
|
),
|
|
null
|
|
);
|
|
}
|
|
}
|
|
if (
|
|
/*dropPosition*/
|
|
ctx2[0] === "after"
|
|
) {
|
|
if (if_block1) {
|
|
if_block1.p(ctx2, dirty);
|
|
} else {
|
|
if_block1 = create_if_block29(ctx2);
|
|
if_block1.c();
|
|
if_block1.m(if_block1_anchor.parentNode, if_block1_anchor);
|
|
}
|
|
} else if (if_block1) {
|
|
if_block1.d(1);
|
|
if_block1 = null;
|
|
}
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(default_slot, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(default_slot, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
if (detaching) {
|
|
detach(t0);
|
|
detach(t1);
|
|
detach(if_block1_anchor);
|
|
}
|
|
if (if_block0)
|
|
if_block0.d(detaching);
|
|
if (default_slot)
|
|
default_slot.d(detaching);
|
|
if (if_block1)
|
|
if_block1.d(detaching);
|
|
}
|
|
};
|
|
}
|
|
var dragover_handler = (e) => e.preventDefault();
|
|
var dragover_handler_1 = (e) => e.preventDefault();
|
|
function instance104($$self, $$props, $$invalidate) {
|
|
let { $$slots: slots = {}, $$scope } = $$props;
|
|
var _a;
|
|
let { rule } = $$props;
|
|
let { resetDragState } = $$props;
|
|
let { dropPosition } = $$props;
|
|
let { draggedRule } = $$props;
|
|
const view = getView();
|
|
const documentPath = (_a = view.file) === null || _a === void 0 ? void 0 : _a.path;
|
|
const handleDrop = () => {
|
|
if (draggedRule) {
|
|
view.plugin.settings.dispatch({
|
|
type: "settings/style-rules/move",
|
|
payload: {
|
|
documentPath,
|
|
droppedId: draggedRule.id,
|
|
targetId: rule.id,
|
|
position: dropPosition
|
|
}
|
|
});
|
|
}
|
|
resetDragState();
|
|
};
|
|
const drop_handler = () => handleDrop();
|
|
const drop_handler_1 = () => handleDrop();
|
|
$$self.$$set = ($$props2) => {
|
|
if ("rule" in $$props2)
|
|
$$invalidate(2, rule = $$props2.rule);
|
|
if ("resetDragState" in $$props2)
|
|
$$invalidate(3, resetDragState = $$props2.resetDragState);
|
|
if ("dropPosition" in $$props2)
|
|
$$invalidate(0, dropPosition = $$props2.dropPosition);
|
|
if ("draggedRule" in $$props2)
|
|
$$invalidate(4, draggedRule = $$props2.draggedRule);
|
|
if ("$$scope" in $$props2)
|
|
$$invalidate(5, $$scope = $$props2.$$scope);
|
|
};
|
|
return [
|
|
dropPosition,
|
|
handleDrop,
|
|
rule,
|
|
resetDragState,
|
|
draggedRule,
|
|
$$scope,
|
|
slots,
|
|
drop_handler,
|
|
drop_handler_1
|
|
];
|
|
}
|
|
var Drop_target = class extends SvelteComponent {
|
|
constructor(options) {
|
|
super();
|
|
init(
|
|
this,
|
|
options,
|
|
instance104,
|
|
create_fragment107,
|
|
safe_not_equal,
|
|
{
|
|
rule: 2,
|
|
resetDragState: 3,
|
|
dropPosition: 0,
|
|
draggedRule: 4
|
|
},
|
|
add_css48
|
|
);
|
|
}
|
|
};
|
|
var drop_target_default = Drop_target;
|
|
|
|
// src/view/components/container/style-rules/components/style-rules-list/components/empty-list.svelte
|
|
function add_css49(target) {
|
|
append_styles(target, "svelte-1tkjjmq", ".pane-empty.svelte-1tkjjmq{height:100%;flex:1;display:flex;align-items:center;justify-content:center}");
|
|
}
|
|
function create_fragment108(ctx) {
|
|
let div2;
|
|
let div0;
|
|
let stylerulecontainer;
|
|
let t0;
|
|
let div1;
|
|
let current;
|
|
stylerulecontainer = new style_rule_default({
|
|
props: {
|
|
rule: (
|
|
/*rule*/
|
|
ctx[0]
|
|
),
|
|
setDraggedRule: (
|
|
/*noop*/
|
|
ctx[1]
|
|
),
|
|
setDropTarget: (
|
|
/*noop*/
|
|
ctx[1]
|
|
),
|
|
resetDragState: (
|
|
/*noop*/
|
|
ctx[1]
|
|
),
|
|
results: []
|
|
}
|
|
});
|
|
return {
|
|
c() {
|
|
div2 = element("div");
|
|
div0 = element("div");
|
|
create_component(stylerulecontainer.$$.fragment);
|
|
t0 = space();
|
|
div1 = element("div");
|
|
div1.textContent = `${lang.modals_rules_no_rules}`;
|
|
set_style(div0, "height", "1px");
|
|
set_style(div0, "overflow", "hidden");
|
|
set_style(div0, "visibility", "hidden");
|
|
attr(div1, "class", "pane-empty svelte-1tkjjmq");
|
|
set_style(div2, "height", "95%");
|
|
},
|
|
m(target, anchor) {
|
|
insert(target, div2, anchor);
|
|
append(div2, div0);
|
|
mount_component(stylerulecontainer, div0, null);
|
|
append(div2, t0);
|
|
append(div2, div1);
|
|
current = true;
|
|
},
|
|
p: noop,
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(stylerulecontainer.$$.fragment, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(stylerulecontainer.$$.fragment, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
if (detaching) {
|
|
detach(div2);
|
|
}
|
|
destroy_component(stylerulecontainer);
|
|
}
|
|
};
|
|
}
|
|
function instance105($$self) {
|
|
const rule = {
|
|
style: { color: "", styleVariant: "left-border" },
|
|
enabled: false,
|
|
condition: {
|
|
value: 0,
|
|
property: "character-count",
|
|
enabled: false,
|
|
operator: "greater-than",
|
|
scope: "any-children",
|
|
type: "condition"
|
|
},
|
|
id: "",
|
|
name: "",
|
|
priority: 0
|
|
};
|
|
const noop4 = () => {
|
|
};
|
|
return [rule, noop4];
|
|
}
|
|
var Empty_list = class extends SvelteComponent {
|
|
constructor(options) {
|
|
super();
|
|
init(this, options, instance105, create_fragment108, safe_not_equal, {}, add_css49);
|
|
}
|
|
};
|
|
var empty_list_default = Empty_list;
|
|
|
|
// src/view/components/container/style-rules/components/style-rules-list/style-rules-list.svelte
|
|
function add_css50(target) {
|
|
append_styles(target, "svelte-1se33m3", ".rules-list.svelte-1se33m3{padding:10px;height:100%}.rules-list.dragging.svelte-1se33m3{background-color:var(--interactive-hover)}");
|
|
}
|
|
function get_each_context17(ctx, list, i) {
|
|
const child_ctx = ctx.slice();
|
|
child_ctx[9] = list[i];
|
|
return child_ctx;
|
|
}
|
|
function create_else_block12(ctx) {
|
|
let each_blocks = [];
|
|
let each_1_lookup = /* @__PURE__ */ new Map();
|
|
let each_1_anchor;
|
|
let current;
|
|
let each_value = ensure_array_like(
|
|
/*rules*/
|
|
ctx[0]
|
|
);
|
|
const get_key = (ctx2) => (
|
|
/*rule*/
|
|
ctx2[9].id
|
|
);
|
|
for (let i = 0; i < each_value.length; i += 1) {
|
|
let child_ctx = get_each_context17(ctx, each_value, i);
|
|
let key = get_key(child_ctx);
|
|
each_1_lookup.set(key, each_blocks[i] = create_each_block17(key, child_ctx));
|
|
}
|
|
return {
|
|
c() {
|
|
for (let i = 0; i < each_blocks.length; i += 1) {
|
|
each_blocks[i].c();
|
|
}
|
|
each_1_anchor = empty();
|
|
},
|
|
m(target, anchor) {
|
|
for (let i = 0; i < each_blocks.length; i += 1) {
|
|
if (each_blocks[i]) {
|
|
each_blocks[i].m(target, anchor);
|
|
}
|
|
}
|
|
insert(target, each_1_anchor, anchor);
|
|
current = true;
|
|
},
|
|
p(ctx2, dirty) {
|
|
if (dirty & /*rules, resetDragState, $dragState, setDraggedRule, setDropTarget, $allMatches*/
|
|
231) {
|
|
each_value = ensure_array_like(
|
|
/*rules*/
|
|
ctx2[0]
|
|
);
|
|
group_outros();
|
|
each_blocks = update_keyed_each(each_blocks, dirty, get_key, 1, ctx2, each_value, each_1_lookup, each_1_anchor.parentNode, outro_and_destroy_block, create_each_block17, each_1_anchor, get_each_context17);
|
|
check_outros();
|
|
}
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
for (let i = 0; i < each_value.length; i += 1) {
|
|
transition_in(each_blocks[i]);
|
|
}
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
for (let i = 0; i < each_blocks.length; i += 1) {
|
|
transition_out(each_blocks[i]);
|
|
}
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
if (detaching) {
|
|
detach(each_1_anchor);
|
|
}
|
|
for (let i = 0; i < each_blocks.length; i += 1) {
|
|
each_blocks[i].d(detaching);
|
|
}
|
|
}
|
|
};
|
|
}
|
|
function create_if_block30(ctx) {
|
|
let emptylist;
|
|
let current;
|
|
emptylist = new empty_list_default({});
|
|
return {
|
|
c() {
|
|
create_component(emptylist.$$.fragment);
|
|
},
|
|
m(target, anchor) {
|
|
mount_component(emptylist, target, anchor);
|
|
current = true;
|
|
},
|
|
p: noop,
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(emptylist.$$.fragment, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(emptylist.$$.fragment, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
destroy_component(emptylist, detaching);
|
|
}
|
|
};
|
|
}
|
|
function create_if_block_25(ctx) {
|
|
let stylerulecontainer;
|
|
let current;
|
|
stylerulecontainer = new style_rule_default({
|
|
props: {
|
|
rule: (
|
|
/*rule*/
|
|
ctx[9]
|
|
),
|
|
setDraggedRule: (
|
|
/*setDraggedRule*/
|
|
ctx[5]
|
|
),
|
|
setDropTarget: (
|
|
/*setDropTarget*/
|
|
ctx[6]
|
|
),
|
|
resetDragState: (
|
|
/*resetDragState*/
|
|
ctx[7]
|
|
),
|
|
results: (
|
|
/*$allMatches*/
|
|
ctx[2].get(
|
|
/*rule*/
|
|
ctx[9].id
|
|
)
|
|
)
|
|
}
|
|
});
|
|
return {
|
|
c() {
|
|
create_component(stylerulecontainer.$$.fragment);
|
|
},
|
|
m(target, anchor) {
|
|
mount_component(stylerulecontainer, target, anchor);
|
|
current = true;
|
|
},
|
|
p(ctx2, dirty) {
|
|
const stylerulecontainer_changes = {};
|
|
if (dirty & /*rules*/
|
|
1)
|
|
stylerulecontainer_changes.rule = /*rule*/
|
|
ctx2[9];
|
|
if (dirty & /*$allMatches, rules*/
|
|
5)
|
|
stylerulecontainer_changes.results = /*$allMatches*/
|
|
ctx2[2].get(
|
|
/*rule*/
|
|
ctx2[9].id
|
|
);
|
|
stylerulecontainer.$set(stylerulecontainer_changes);
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(stylerulecontainer.$$.fragment, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(stylerulecontainer.$$.fragment, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
destroy_component(stylerulecontainer, detaching);
|
|
}
|
|
};
|
|
}
|
|
function create_if_block_111(ctx) {
|
|
let droptarget;
|
|
let current;
|
|
droptarget = new drop_target_default({
|
|
props: {
|
|
rule: (
|
|
/*rule*/
|
|
ctx[9]
|
|
),
|
|
resetDragState: (
|
|
/*resetDragState*/
|
|
ctx[7]
|
|
),
|
|
dropPosition: (
|
|
/*$dragState*/
|
|
ctx[1].dropPosition
|
|
),
|
|
draggedRule: (
|
|
/*$dragState*/
|
|
ctx[1].draggedRule
|
|
),
|
|
$$slots: { default: [create_default_slot57] },
|
|
$$scope: { ctx }
|
|
}
|
|
});
|
|
return {
|
|
c() {
|
|
create_component(droptarget.$$.fragment);
|
|
},
|
|
m(target, anchor) {
|
|
mount_component(droptarget, target, anchor);
|
|
current = true;
|
|
},
|
|
p(ctx2, dirty) {
|
|
const droptarget_changes = {};
|
|
if (dirty & /*rules*/
|
|
1)
|
|
droptarget_changes.rule = /*rule*/
|
|
ctx2[9];
|
|
if (dirty & /*$dragState*/
|
|
2)
|
|
droptarget_changes.dropPosition = /*$dragState*/
|
|
ctx2[1].dropPosition;
|
|
if (dirty & /*$dragState*/
|
|
2)
|
|
droptarget_changes.draggedRule = /*$dragState*/
|
|
ctx2[1].draggedRule;
|
|
if (dirty & /*$$scope, rules, $allMatches*/
|
|
4101) {
|
|
droptarget_changes.$$scope = { dirty, ctx: ctx2 };
|
|
}
|
|
droptarget.$set(droptarget_changes);
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(droptarget.$$.fragment, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(droptarget.$$.fragment, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
destroy_component(droptarget, detaching);
|
|
}
|
|
};
|
|
}
|
|
function create_default_slot57(ctx) {
|
|
let stylerulecontainer;
|
|
let t;
|
|
let current;
|
|
stylerulecontainer = new style_rule_default({
|
|
props: {
|
|
rule: (
|
|
/*rule*/
|
|
ctx[9]
|
|
),
|
|
setDraggedRule: (
|
|
/*setDraggedRule*/
|
|
ctx[5]
|
|
),
|
|
setDropTarget: (
|
|
/*setDropTarget*/
|
|
ctx[6]
|
|
),
|
|
resetDragState: (
|
|
/*resetDragState*/
|
|
ctx[7]
|
|
),
|
|
results: (
|
|
/*$allMatches*/
|
|
ctx[2].get(
|
|
/*rule*/
|
|
ctx[9].id
|
|
)
|
|
)
|
|
}
|
|
});
|
|
return {
|
|
c() {
|
|
create_component(stylerulecontainer.$$.fragment);
|
|
t = space();
|
|
},
|
|
m(target, anchor) {
|
|
mount_component(stylerulecontainer, target, anchor);
|
|
insert(target, t, anchor);
|
|
current = true;
|
|
},
|
|
p(ctx2, dirty) {
|
|
const stylerulecontainer_changes = {};
|
|
if (dirty & /*rules*/
|
|
1)
|
|
stylerulecontainer_changes.rule = /*rule*/
|
|
ctx2[9];
|
|
if (dirty & /*$allMatches, rules*/
|
|
5)
|
|
stylerulecontainer_changes.results = /*$allMatches*/
|
|
ctx2[2].get(
|
|
/*rule*/
|
|
ctx2[9].id
|
|
);
|
|
stylerulecontainer.$set(stylerulecontainer_changes);
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(stylerulecontainer.$$.fragment, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(stylerulecontainer.$$.fragment, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
if (detaching) {
|
|
detach(t);
|
|
}
|
|
destroy_component(stylerulecontainer, detaching);
|
|
}
|
|
};
|
|
}
|
|
function create_each_block17(key_1, ctx) {
|
|
let first;
|
|
let current_block_type_index;
|
|
let if_block;
|
|
let if_block_anchor;
|
|
let current;
|
|
const if_block_creators = [create_if_block_111, create_if_block_25];
|
|
const if_blocks = [];
|
|
function select_block_type_1(ctx2, dirty) {
|
|
if (
|
|
/*$dragState*/
|
|
ctx2[1]?.dropTarget?.id === /*rule*/
|
|
ctx2[9].id
|
|
)
|
|
return 0;
|
|
if (
|
|
/*$dragState*/
|
|
ctx2[1]?.draggedRule !== /*rule*/
|
|
ctx2[9]
|
|
)
|
|
return 1;
|
|
return -1;
|
|
}
|
|
if (~(current_block_type_index = select_block_type_1(ctx, -1))) {
|
|
if_block = if_blocks[current_block_type_index] = if_block_creators[current_block_type_index](ctx);
|
|
}
|
|
return {
|
|
key: key_1,
|
|
first: null,
|
|
c() {
|
|
first = empty();
|
|
if (if_block)
|
|
if_block.c();
|
|
if_block_anchor = empty();
|
|
this.first = first;
|
|
},
|
|
m(target, anchor) {
|
|
insert(target, first, anchor);
|
|
if (~current_block_type_index) {
|
|
if_blocks[current_block_type_index].m(target, anchor);
|
|
}
|
|
insert(target, if_block_anchor, anchor);
|
|
current = true;
|
|
},
|
|
p(new_ctx, dirty) {
|
|
ctx = new_ctx;
|
|
let previous_block_index = current_block_type_index;
|
|
current_block_type_index = select_block_type_1(ctx, dirty);
|
|
if (current_block_type_index === previous_block_index) {
|
|
if (~current_block_type_index) {
|
|
if_blocks[current_block_type_index].p(ctx, dirty);
|
|
}
|
|
} else {
|
|
if (if_block) {
|
|
group_outros();
|
|
transition_out(if_blocks[previous_block_index], 1, 1, () => {
|
|
if_blocks[previous_block_index] = null;
|
|
});
|
|
check_outros();
|
|
}
|
|
if (~current_block_type_index) {
|
|
if_block = if_blocks[current_block_type_index];
|
|
if (!if_block) {
|
|
if_block = if_blocks[current_block_type_index] = if_block_creators[current_block_type_index](ctx);
|
|
if_block.c();
|
|
} else {
|
|
if_block.p(ctx, dirty);
|
|
}
|
|
transition_in(if_block, 1);
|
|
if_block.m(if_block_anchor.parentNode, if_block_anchor);
|
|
} else {
|
|
if_block = null;
|
|
}
|
|
}
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(if_block);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(if_block);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
if (detaching) {
|
|
detach(first);
|
|
detach(if_block_anchor);
|
|
}
|
|
if (~current_block_type_index) {
|
|
if_blocks[current_block_type_index].d(detaching);
|
|
}
|
|
}
|
|
};
|
|
}
|
|
function create_fragment109(ctx) {
|
|
let div;
|
|
let current_block_type_index;
|
|
let if_block;
|
|
let div_class_value;
|
|
let current;
|
|
let mounted;
|
|
let dispose;
|
|
const if_block_creators = [create_if_block30, create_else_block12];
|
|
const if_blocks = [];
|
|
function select_block_type(ctx2, dirty) {
|
|
if (
|
|
/*rules*/
|
|
ctx2[0].length === 0
|
|
)
|
|
return 0;
|
|
return 1;
|
|
}
|
|
current_block_type_index = select_block_type(ctx, -1);
|
|
if_block = if_blocks[current_block_type_index] = if_block_creators[current_block_type_index](ctx);
|
|
return {
|
|
c() {
|
|
div = element("div");
|
|
if_block.c();
|
|
attr(div, "class", div_class_value = null_to_empty("rules-list" + /*$dragState*/
|
|
(ctx[1]?.draggedRule ? " dragging" : "")) + " svelte-1se33m3");
|
|
},
|
|
m(target, anchor) {
|
|
insert(target, div, anchor);
|
|
if_blocks[current_block_type_index].m(div, null);
|
|
current = true;
|
|
if (!mounted) {
|
|
dispose = listen(
|
|
div,
|
|
"mouseleave",
|
|
/*resetDragState*/
|
|
ctx[7]
|
|
);
|
|
mounted = true;
|
|
}
|
|
},
|
|
p(ctx2, [dirty]) {
|
|
let previous_block_index = current_block_type_index;
|
|
current_block_type_index = select_block_type(ctx2, dirty);
|
|
if (current_block_type_index === previous_block_index) {
|
|
if_blocks[current_block_type_index].p(ctx2, dirty);
|
|
} else {
|
|
group_outros();
|
|
transition_out(if_blocks[previous_block_index], 1, 1, () => {
|
|
if_blocks[previous_block_index] = null;
|
|
});
|
|
check_outros();
|
|
if_block = if_blocks[current_block_type_index];
|
|
if (!if_block) {
|
|
if_block = if_blocks[current_block_type_index] = if_block_creators[current_block_type_index](ctx2);
|
|
if_block.c();
|
|
} else {
|
|
if_block.p(ctx2, dirty);
|
|
}
|
|
transition_in(if_block, 1);
|
|
if_block.m(div, null);
|
|
}
|
|
if (!current || dirty & /*$dragState*/
|
|
2 && div_class_value !== (div_class_value = null_to_empty("rules-list" + /*$dragState*/
|
|
(ctx2[1]?.draggedRule ? " dragging" : "")) + " svelte-1se33m3")) {
|
|
attr(div, "class", div_class_value);
|
|
}
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(if_block);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(if_block);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
if (detaching) {
|
|
detach(div);
|
|
}
|
|
if_blocks[current_block_type_index].d();
|
|
mounted = false;
|
|
dispose();
|
|
}
|
|
};
|
|
}
|
|
function instance106($$self, $$props, $$invalidate) {
|
|
let $dragState;
|
|
let $allMatches;
|
|
let { rules } = $$props;
|
|
const view = getView();
|
|
const allMatches = AllRuleMatchesStore(view);
|
|
component_subscribe($$self, allMatches, (value) => $$invalidate(2, $allMatches = value));
|
|
const dragState = writable(null);
|
|
component_subscribe($$self, dragState, (value) => $$invalidate(1, $dragState = value));
|
|
const setDraggedRule = (rule) => {
|
|
dragState.update((dragState2) => {
|
|
return {
|
|
dropTarget: (dragState2 === null || dragState2 === void 0 ? void 0 : dragState2.dropTarget) || null,
|
|
dropPosition: (dragState2 === null || dragState2 === void 0 ? void 0 : dragState2.dropPosition) || "before",
|
|
draggedRule: rule
|
|
};
|
|
});
|
|
};
|
|
const setDropTarget = (rule, position) => {
|
|
dragState.update((dragState2) => {
|
|
return {
|
|
draggedRule: (dragState2 === null || dragState2 === void 0 ? void 0 : dragState2.draggedRule) || null,
|
|
dropTarget: rule,
|
|
dropPosition: position
|
|
};
|
|
});
|
|
};
|
|
const resetDragState = () => {
|
|
dragState.set(null);
|
|
};
|
|
$$self.$$set = ($$props2) => {
|
|
if ("rules" in $$props2)
|
|
$$invalidate(0, rules = $$props2.rules);
|
|
};
|
|
return [
|
|
rules,
|
|
$dragState,
|
|
$allMatches,
|
|
allMatches,
|
|
dragState,
|
|
setDraggedRule,
|
|
setDropTarget,
|
|
resetDragState
|
|
];
|
|
}
|
|
var Style_rules_list = class extends SvelteComponent {
|
|
constructor(options) {
|
|
super();
|
|
init(this, options, instance106, create_fragment109, safe_not_equal, { rules: 0 }, add_css50);
|
|
}
|
|
};
|
|
var style_rules_list_default = Style_rules_list;
|
|
|
|
// src/view/components/container/style-rules/components/style-rules-footer.svelte
|
|
function add_css51(target) {
|
|
append_styles(target, "svelte-n13666", ".modal-footer.svelte-n13666{width:100%;padding-bottom:10px;display:flex;justify-content:end}.add-rule.svelte-n13666{border:none;border-radius:4px;cursor:pointer;align-self:end;margin-right:10px;padding:8px}");
|
|
}
|
|
function create_fragment110(ctx) {
|
|
let div;
|
|
let button;
|
|
let mounted;
|
|
let dispose;
|
|
return {
|
|
c() {
|
|
div = element("div");
|
|
button = element("button");
|
|
button.textContent = `${lang.modals_rules_add_rule}`;
|
|
attr(button, "class", "add-rule svelte-n13666");
|
|
attr(div, "class", "modal-footer svelte-n13666");
|
|
},
|
|
m(target, anchor) {
|
|
insert(target, div, anchor);
|
|
append(div, button);
|
|
if (!mounted) {
|
|
dispose = listen(
|
|
button,
|
|
"click",
|
|
/*addRule*/
|
|
ctx[0]
|
|
);
|
|
mounted = true;
|
|
}
|
|
},
|
|
p: noop,
|
|
i: noop,
|
|
o: noop,
|
|
d(detaching) {
|
|
if (detaching) {
|
|
detach(div);
|
|
}
|
|
mounted = false;
|
|
dispose();
|
|
}
|
|
};
|
|
}
|
|
function instance107($$self) {
|
|
const view = getView();
|
|
const addRule = () => {
|
|
var _a;
|
|
const documentPath = (_a = view.file) === null || _a === void 0 ? void 0 : _a.path;
|
|
view.plugin.settings.dispatch({
|
|
type: "settings/style-rules/add",
|
|
payload: { documentPath }
|
|
});
|
|
};
|
|
return [addRule];
|
|
}
|
|
var Style_rules_footer = class extends SvelteComponent {
|
|
constructor(options) {
|
|
super();
|
|
init(this, options, instance107, create_fragment110, safe_not_equal, {}, add_css51);
|
|
}
|
|
};
|
|
var style_rules_footer_default = Style_rules_footer;
|
|
|
|
// src/view/components/container/shared/draggable-modal/draggable-modal.svelte
|
|
function add_css52(target) {
|
|
append_styles(target, "svelte-1l68k51", ".drag-handle.svelte-1l68k51.svelte-1l68k51{position:absolute;left:0;top:0;bottom:0;width:8px;cursor:grab;background-color:transparent;z-index:1}.lineage-modal.svelte-1l68k51:hover .drag-handle.svelte-1l68k51{background-size:2px 4px;background-image:linear-gradient(\n 0deg,\n hsla(0, 0%, 60%, 0.35) 20%,\n transparent 40%\n )}.drag-handle.svelte-1l68k51.svelte-1l68k51:active{cursor:grabbing}");
|
|
}
|
|
function create_fragment111(ctx) {
|
|
let div1;
|
|
let div0;
|
|
let t;
|
|
let current;
|
|
let mounted;
|
|
let dispose;
|
|
const default_slot_template = (
|
|
/*#slots*/
|
|
ctx[3].default
|
|
);
|
|
const default_slot = create_slot(
|
|
default_slot_template,
|
|
ctx,
|
|
/*$$scope*/
|
|
ctx[2],
|
|
null
|
|
);
|
|
return {
|
|
c() {
|
|
div1 = element("div");
|
|
div0 = element("div");
|
|
t = space();
|
|
if (default_slot)
|
|
default_slot.c();
|
|
attr(div0, "class", "drag-handle svelte-1l68k51");
|
|
attr(div1, "class", "lineage-modal svelte-1l68k51");
|
|
set_style(div1, "transform", "translate(0px, 0px)");
|
|
},
|
|
m(target, anchor) {
|
|
insert(target, div1, anchor);
|
|
append(div1, div0);
|
|
append(div1, t);
|
|
if (default_slot) {
|
|
default_slot.m(div1, null);
|
|
}
|
|
ctx[4](div1);
|
|
current = true;
|
|
if (!mounted) {
|
|
dispose = listen(
|
|
div0,
|
|
"mousedown",
|
|
/*startDrag*/
|
|
ctx[1]
|
|
);
|
|
mounted = true;
|
|
}
|
|
},
|
|
p(ctx2, [dirty]) {
|
|
if (default_slot) {
|
|
if (default_slot.p && (!current || dirty & /*$$scope*/
|
|
4)) {
|
|
update_slot_base(
|
|
default_slot,
|
|
default_slot_template,
|
|
ctx2,
|
|
/*$$scope*/
|
|
ctx2[2],
|
|
!current ? get_all_dirty_from_scope(
|
|
/*$$scope*/
|
|
ctx2[2]
|
|
) : get_slot_changes(
|
|
default_slot_template,
|
|
/*$$scope*/
|
|
ctx2[2],
|
|
dirty,
|
|
null
|
|
),
|
|
null
|
|
);
|
|
}
|
|
}
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(default_slot, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(default_slot, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
if (detaching) {
|
|
detach(div1);
|
|
}
|
|
if (default_slot)
|
|
default_slot.d(detaching);
|
|
ctx[4](null);
|
|
mounted = false;
|
|
dispose();
|
|
}
|
|
};
|
|
}
|
|
function instance108($$self, $$props, $$invalidate) {
|
|
let { $$slots: slots = {}, $$scope } = $$props;
|
|
let modal;
|
|
let startX;
|
|
let startY;
|
|
let modalX = 0;
|
|
let modalY = 0;
|
|
let isDragging = false;
|
|
const view = getView();
|
|
const container = view.contentEl;
|
|
const startDrag = (event) => {
|
|
isDragging = true;
|
|
startX = event.clientX;
|
|
startY = event.clientY;
|
|
const computedStyle = getComputedStyle(modal);
|
|
const transform = computedStyle.transform;
|
|
if (transform && transform !== "none") {
|
|
const matrix = transform.match(/matrix.*\((.+)\)/);
|
|
if (matrix) {
|
|
const [x, y] = matrix[1].split(", ").slice(4, 6).map(Number);
|
|
modalX = x || 0;
|
|
modalY = y || 0;
|
|
}
|
|
}
|
|
container.addEventListener("mousemove", onDrag);
|
|
container.addEventListener("mouseup", stopDrag);
|
|
};
|
|
const onDrag = (event) => {
|
|
if (!isDragging)
|
|
return;
|
|
modalX += event.clientX - startX;
|
|
modalY += event.clientY - startY;
|
|
startX = event.clientX;
|
|
startY = event.clientY;
|
|
$$invalidate(0, modal.style.transform = `translate(${modalX}px, ${modalY}px)`, modal);
|
|
};
|
|
const stopDrag = () => {
|
|
isDragging = false;
|
|
container.removeEventListener("mousemove", onDrag);
|
|
container.removeEventListener("mouseup", stopDrag);
|
|
};
|
|
function div1_binding($$value) {
|
|
binding_callbacks[$$value ? "unshift" : "push"](() => {
|
|
modal = $$value;
|
|
$$invalidate(0, modal);
|
|
});
|
|
}
|
|
$$self.$$set = ($$props2) => {
|
|
if ("$$scope" in $$props2)
|
|
$$invalidate(2, $$scope = $$props2.$$scope);
|
|
};
|
|
return [modal, startDrag, $$scope, slots, div1_binding];
|
|
}
|
|
var Draggable_modal = class extends SvelteComponent {
|
|
constructor(options) {
|
|
super();
|
|
init(this, options, instance108, create_fragment111, safe_not_equal, {}, add_css52);
|
|
}
|
|
};
|
|
var draggable_modal_default = Draggable_modal;
|
|
|
|
// src/view/components/container/style-rules/style-rules.svelte
|
|
function add_css53(target) {
|
|
append_styles(target, "svelte-rft3in", ".modal-content.svelte-rft3in{max-width:100%;height:230px;overflow:auto}");
|
|
}
|
|
function create_default_slot58(ctx) {
|
|
let div;
|
|
let styleruleslist;
|
|
let t;
|
|
let stylerulesfooter;
|
|
let current;
|
|
styleruleslist = new style_rules_list_default({ props: { rules: (
|
|
/*$rulesStore*/
|
|
ctx[0]
|
|
) } });
|
|
stylerulesfooter = new style_rules_footer_default({});
|
|
return {
|
|
c() {
|
|
div = element("div");
|
|
create_component(styleruleslist.$$.fragment);
|
|
t = space();
|
|
create_component(stylerulesfooter.$$.fragment);
|
|
attr(div, "class", "modal-content svelte-rft3in");
|
|
},
|
|
m(target, anchor) {
|
|
insert(target, div, anchor);
|
|
mount_component(styleruleslist, div, null);
|
|
insert(target, t, anchor);
|
|
mount_component(stylerulesfooter, target, anchor);
|
|
current = true;
|
|
},
|
|
p(ctx2, dirty) {
|
|
const styleruleslist_changes = {};
|
|
if (dirty & /*$rulesStore*/
|
|
1)
|
|
styleruleslist_changes.rules = /*$rulesStore*/
|
|
ctx2[0];
|
|
styleruleslist.$set(styleruleslist_changes);
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(styleruleslist.$$.fragment, local);
|
|
transition_in(stylerulesfooter.$$.fragment, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(styleruleslist.$$.fragment, local);
|
|
transition_out(stylerulesfooter.$$.fragment, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
if (detaching) {
|
|
detach(div);
|
|
detach(t);
|
|
}
|
|
destroy_component(styleruleslist);
|
|
destroy_component(stylerulesfooter, detaching);
|
|
}
|
|
};
|
|
}
|
|
function create_fragment112(ctx) {
|
|
let draggablemodal;
|
|
let current;
|
|
draggablemodal = new draggable_modal_default({
|
|
props: {
|
|
$$slots: { default: [create_default_slot58] },
|
|
$$scope: { ctx }
|
|
}
|
|
});
|
|
return {
|
|
c() {
|
|
create_component(draggablemodal.$$.fragment);
|
|
},
|
|
m(target, anchor) {
|
|
mount_component(draggablemodal, target, anchor);
|
|
current = true;
|
|
},
|
|
p(ctx2, [dirty]) {
|
|
const draggablemodal_changes = {};
|
|
if (dirty & /*$$scope, $rulesStore*/
|
|
9) {
|
|
draggablemodal_changes.$$scope = { dirty, ctx: ctx2 };
|
|
}
|
|
draggablemodal.$set(draggablemodal_changes);
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(draggablemodal.$$.fragment, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(draggablemodal.$$.fragment, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
destroy_component(draggablemodal, detaching);
|
|
}
|
|
};
|
|
}
|
|
function instance109($$self, $$props, $$invalidate) {
|
|
let $rulesStore;
|
|
const view = getView();
|
|
const rulesStore = DocumentStyleRulesStore(view);
|
|
component_subscribe($$self, rulesStore, (value) => $$invalidate(0, $rulesStore = value));
|
|
return [$rulesStore, rulesStore];
|
|
}
|
|
var Style_rules = class extends SvelteComponent {
|
|
constructor(options) {
|
|
super();
|
|
init(this, options, instance109, create_fragment112, safe_not_equal, {}, add_css53);
|
|
}
|
|
};
|
|
var style_rules_default = Style_rules;
|
|
|
|
// src/view/components/container/main.svelte
|
|
function add_css54(target) {
|
|
append_styles(target, "svelte-1g9h6to", ".lineage-main.svelte-1g9h6to{--z-index-breadcrumbs:10;display:flex;height:100%;flex:1 1 auto;width:0;position:relative}.lineage-view.svelte-1g9h6to{background-color:var(--background-container);display:flex;height:100%;width:100%}");
|
|
}
|
|
function create_if_block_32(ctx) {
|
|
let stylerules;
|
|
let current;
|
|
stylerules = new style_rules_default({});
|
|
return {
|
|
c() {
|
|
create_component(stylerules.$$.fragment);
|
|
},
|
|
m(target, anchor) {
|
|
mount_component(stylerules, target, anchor);
|
|
current = true;
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(stylerules.$$.fragment, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(stylerules.$$.fragment, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
destroy_component(stylerules, detaching);
|
|
}
|
|
};
|
|
}
|
|
function create_if_block_26(ctx) {
|
|
let settings;
|
|
let current;
|
|
settings = new settings_default2({});
|
|
return {
|
|
c() {
|
|
create_component(settings.$$.fragment);
|
|
},
|
|
m(target, anchor) {
|
|
mount_component(settings, target, anchor);
|
|
current = true;
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(settings.$$.fragment, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(settings.$$.fragment, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
destroy_component(settings, detaching);
|
|
}
|
|
};
|
|
}
|
|
function create_if_block_112(ctx) {
|
|
let hotkeys;
|
|
let current;
|
|
hotkeys = new hotkeys_default({});
|
|
return {
|
|
c() {
|
|
create_component(hotkeys.$$.fragment);
|
|
},
|
|
m(target, anchor) {
|
|
mount_component(hotkeys, target, anchor);
|
|
current = true;
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(hotkeys.$$.fragment, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(hotkeys.$$.fragment, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
destroy_component(hotkeys, detaching);
|
|
}
|
|
};
|
|
}
|
|
function create_if_block31(ctx) {
|
|
let filehistory;
|
|
let current;
|
|
filehistory = new file_histoy_default({});
|
|
return {
|
|
c() {
|
|
create_component(filehistory.$$.fragment);
|
|
},
|
|
m(target, anchor) {
|
|
mount_component(filehistory, target, anchor);
|
|
current = true;
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(filehistory.$$.fragment, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(filehistory.$$.fragment, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
destroy_component(filehistory, detaching);
|
|
}
|
|
};
|
|
}
|
|
function create_fragment113(ctx) {
|
|
let div1;
|
|
let leftsidebar;
|
|
let t0;
|
|
let div0;
|
|
let container;
|
|
let t1;
|
|
let toolbar;
|
|
let t2;
|
|
let breadcrumbs;
|
|
let t3;
|
|
let controlsbar;
|
|
let t4;
|
|
let current_block_type_index;
|
|
let if_block;
|
|
let t5;
|
|
let dndedges;
|
|
let div0_class_value;
|
|
let mouseWheelZoom_action;
|
|
let clickAndDrag_action;
|
|
let t6;
|
|
let rightsidebar;
|
|
let viewHotkeysAction_action;
|
|
let contextMenu_action;
|
|
let current;
|
|
let mounted;
|
|
let dispose;
|
|
leftsidebar = new left_sidebar_default({});
|
|
container = new container_wrapper_default({});
|
|
toolbar = new toolbar_default({});
|
|
breadcrumbs = new breadcrumbs_default({});
|
|
controlsbar = new controls_container_default({});
|
|
const if_block_creators = [create_if_block31, create_if_block_112, create_if_block_26, create_if_block_32];
|
|
const if_blocks = [];
|
|
function select_block_type(ctx2, dirty) {
|
|
if (
|
|
/*$controls*/
|
|
ctx2[1].showHistorySidebar
|
|
)
|
|
return 0;
|
|
if (
|
|
/*$controls*/
|
|
ctx2[1].showHelpSidebar
|
|
)
|
|
return 1;
|
|
if (
|
|
/*$controls*/
|
|
ctx2[1].showSettingsSidebar
|
|
)
|
|
return 2;
|
|
if (
|
|
/*$controls*/
|
|
ctx2[1].showStyleRulesModal
|
|
)
|
|
return 3;
|
|
return -1;
|
|
}
|
|
if (~(current_block_type_index = select_block_type(ctx, -1))) {
|
|
if_block = if_blocks[current_block_type_index] = if_block_creators[current_block_type_index](ctx);
|
|
}
|
|
dndedges = new dnd_edges_default({});
|
|
rightsidebar = new right_sidebar_default({});
|
|
return {
|
|
c() {
|
|
div1 = element("div");
|
|
create_component(leftsidebar.$$.fragment);
|
|
t0 = space();
|
|
div0 = element("div");
|
|
create_component(container.$$.fragment);
|
|
t1 = space();
|
|
create_component(toolbar.$$.fragment);
|
|
t2 = space();
|
|
create_component(breadcrumbs.$$.fragment);
|
|
t3 = space();
|
|
create_component(controlsbar.$$.fragment);
|
|
t4 = space();
|
|
if (if_block)
|
|
if_block.c();
|
|
t5 = space();
|
|
create_component(dndedges.$$.fragment);
|
|
t6 = space();
|
|
create_component(rightsidebar.$$.fragment);
|
|
attr(div0, "class", div0_class_value = null_to_empty(`lineage-main`) + " svelte-1g9h6to");
|
|
attr(div1, "class", "lineage-view svelte-1g9h6to");
|
|
attr(div1, "tabindex", "0");
|
|
},
|
|
m(target, anchor) {
|
|
insert(target, div1, anchor);
|
|
mount_component(leftsidebar, div1, null);
|
|
append(div1, t0);
|
|
append(div1, div0);
|
|
mount_component(container, div0, null);
|
|
append(div0, t1);
|
|
mount_component(toolbar, div0, null);
|
|
append(div0, t2);
|
|
mount_component(breadcrumbs, div0, null);
|
|
append(div0, t3);
|
|
mount_component(controlsbar, div0, null);
|
|
append(div0, t4);
|
|
if (~current_block_type_index) {
|
|
if_blocks[current_block_type_index].m(div0, null);
|
|
}
|
|
append(div0, t5);
|
|
mount_component(dndedges, div0, null);
|
|
append(div1, t6);
|
|
mount_component(rightsidebar, div1, null);
|
|
current = true;
|
|
if (!mounted) {
|
|
dispose = [
|
|
action_destroyer(mouseWheelZoom_action = mouseWheelZoom.call(
|
|
null,
|
|
div0,
|
|
/*view*/
|
|
ctx[0]
|
|
)),
|
|
action_destroyer(clickAndDrag_action = clickAndDrag.call(
|
|
null,
|
|
div0,
|
|
/*view*/
|
|
ctx[0]
|
|
)),
|
|
action_destroyer(viewHotkeysAction_action = viewHotkeysAction.call(null, div1, { view: (
|
|
/*view*/
|
|
ctx[0]
|
|
) })),
|
|
action_destroyer(contextMenu_action = contextMenu.call(
|
|
null,
|
|
div1,
|
|
/*view*/
|
|
ctx[0]
|
|
))
|
|
];
|
|
mounted = true;
|
|
}
|
|
},
|
|
p(ctx2, [dirty]) {
|
|
let previous_block_index = current_block_type_index;
|
|
current_block_type_index = select_block_type(ctx2, dirty);
|
|
if (current_block_type_index !== previous_block_index) {
|
|
if (if_block) {
|
|
group_outros();
|
|
transition_out(if_blocks[previous_block_index], 1, 1, () => {
|
|
if_blocks[previous_block_index] = null;
|
|
});
|
|
check_outros();
|
|
}
|
|
if (~current_block_type_index) {
|
|
if_block = if_blocks[current_block_type_index];
|
|
if (!if_block) {
|
|
if_block = if_blocks[current_block_type_index] = if_block_creators[current_block_type_index](ctx2);
|
|
if_block.c();
|
|
} else {
|
|
}
|
|
transition_in(if_block, 1);
|
|
if_block.m(div0, t5);
|
|
} else {
|
|
if_block = null;
|
|
}
|
|
}
|
|
if (mouseWheelZoom_action && is_function(mouseWheelZoom_action.update) && dirty & /*view*/
|
|
1)
|
|
mouseWheelZoom_action.update.call(
|
|
null,
|
|
/*view*/
|
|
ctx2[0]
|
|
);
|
|
if (clickAndDrag_action && is_function(clickAndDrag_action.update) && dirty & /*view*/
|
|
1)
|
|
clickAndDrag_action.update.call(
|
|
null,
|
|
/*view*/
|
|
ctx2[0]
|
|
);
|
|
if (viewHotkeysAction_action && is_function(viewHotkeysAction_action.update) && dirty & /*view*/
|
|
1)
|
|
viewHotkeysAction_action.update.call(null, { view: (
|
|
/*view*/
|
|
ctx2[0]
|
|
) });
|
|
if (contextMenu_action && is_function(contextMenu_action.update) && dirty & /*view*/
|
|
1)
|
|
contextMenu_action.update.call(
|
|
null,
|
|
/*view*/
|
|
ctx2[0]
|
|
);
|
|
},
|
|
i(local) {
|
|
if (current)
|
|
return;
|
|
transition_in(leftsidebar.$$.fragment, local);
|
|
transition_in(container.$$.fragment, local);
|
|
transition_in(toolbar.$$.fragment, local);
|
|
transition_in(breadcrumbs.$$.fragment, local);
|
|
transition_in(controlsbar.$$.fragment, local);
|
|
transition_in(if_block);
|
|
transition_in(dndedges.$$.fragment, local);
|
|
transition_in(rightsidebar.$$.fragment, local);
|
|
current = true;
|
|
},
|
|
o(local) {
|
|
transition_out(leftsidebar.$$.fragment, local);
|
|
transition_out(container.$$.fragment, local);
|
|
transition_out(toolbar.$$.fragment, local);
|
|
transition_out(breadcrumbs.$$.fragment, local);
|
|
transition_out(controlsbar.$$.fragment, local);
|
|
transition_out(if_block);
|
|
transition_out(dndedges.$$.fragment, local);
|
|
transition_out(rightsidebar.$$.fragment, local);
|
|
current = false;
|
|
},
|
|
d(detaching) {
|
|
if (detaching) {
|
|
detach(div1);
|
|
}
|
|
destroy_component(leftsidebar);
|
|
destroy_component(container);
|
|
destroy_component(toolbar);
|
|
destroy_component(breadcrumbs);
|
|
destroy_component(controlsbar);
|
|
if (~current_block_type_index) {
|
|
if_blocks[current_block_type_index].d();
|
|
}
|
|
destroy_component(dndedges);
|
|
destroy_component(rightsidebar);
|
|
mounted = false;
|
|
run_all(dispose);
|
|
}
|
|
};
|
|
}
|
|
function instance110($$self, $$props, $$invalidate) {
|
|
let $controls;
|
|
let { plugin } = $$props;
|
|
let { view } = $$props;
|
|
setContext("plugin", plugin);
|
|
setContext("view", view);
|
|
const controls = uiControlsStore(view);
|
|
component_subscribe($$self, controls, (value) => $$invalidate(1, $controls = value));
|
|
$$self.$$set = ($$props2) => {
|
|
if ("plugin" in $$props2)
|
|
$$invalidate(3, plugin = $$props2.plugin);
|
|
if ("view" in $$props2)
|
|
$$invalidate(0, view = $$props2.view);
|
|
};
|
|
return [view, $controls, controls, plugin];
|
|
}
|
|
var Main = class extends SvelteComponent {
|
|
constructor(options) {
|
|
super();
|
|
init(this, options, instance110, create_fragment113, safe_not_equal, { plugin: 3, view: 0 }, add_css54);
|
|
}
|
|
};
|
|
var main_default = Main;
|
|
|
|
// src/lib/tree-utils/sort/sort-groups.ts
|
|
var sortGroups = (parents, children2) => {
|
|
const parentsIndices = Object.fromEntries(
|
|
parents.map((x) => x.nodes).flat().map((x, i) => [x, i])
|
|
);
|
|
return children2.sort((a, b) => {
|
|
return parentsIndices[a.parentId] - parentsIndices[b.parentId];
|
|
});
|
|
};
|
|
|
|
// src/lib/tree-utils/insert/insert-child.ts
|
|
var insertChild = (document2, nodeIdOfParent, newNodeId, insertChildAtTheStart) => {
|
|
const parentColumnIndex = findNodeColumn(document2.columns, nodeIdOfParent);
|
|
if (parentColumnIndex === -1) {
|
|
throw new Error("could not find parent column");
|
|
}
|
|
const childColumnIndex = parentColumnIndex + 1;
|
|
const childColumn = document2.columns[childColumnIndex];
|
|
if (childColumn) {
|
|
const childGroup = childColumn.groups.find(
|
|
(g) => g.parentId === nodeIdOfParent
|
|
);
|
|
if (childGroup) {
|
|
if (insertChildAtTheStart) {
|
|
childGroup.nodes = [newNodeId, ...childGroup.nodes];
|
|
} else {
|
|
childGroup.nodes = [...childGroup.nodes, newNodeId];
|
|
}
|
|
} else {
|
|
childColumn.groups.push({
|
|
nodes: [newNodeId],
|
|
parentId: nodeIdOfParent
|
|
});
|
|
childColumn.groups = [...childColumn.groups];
|
|
}
|
|
childColumn.groups = sortGroups(
|
|
document2.columns[parentColumnIndex].groups,
|
|
childColumn.groups
|
|
);
|
|
} else {
|
|
document2.columns.push({
|
|
id: id.column(),
|
|
groups: [
|
|
{
|
|
nodes: [newNodeId],
|
|
parentId: nodeIdOfParent
|
|
}
|
|
]
|
|
});
|
|
document2.columns = [...document2.columns];
|
|
}
|
|
};
|
|
|
|
// src/lib/tree-utils/find/find-group-by-node-id.ts
|
|
var findGroupByNodeId = (columns, nodeId) => {
|
|
for (const column of columns) {
|
|
for (const group of column.groups) {
|
|
for (const _nodeId2 of group.nodes) {
|
|
if (_nodeId2 === nodeId)
|
|
return group;
|
|
}
|
|
}
|
|
}
|
|
};
|
|
var findGroupByParentId = (columns, parentId) => {
|
|
for (const column of columns) {
|
|
for (const group of column.groups) {
|
|
if (group.parentId === parentId) {
|
|
return { group, column };
|
|
}
|
|
}
|
|
}
|
|
};
|
|
|
|
// src/stores/document/reducers/insert-node/insert-node.ts
|
|
var insertNode = (document2, action, newNodeId = id.node()) => {
|
|
const payload = action.payload;
|
|
invariant(payload.activeNodeId);
|
|
if (payload.position === "right") {
|
|
insertChild(
|
|
document2,
|
|
payload.activeNodeId,
|
|
newNodeId,
|
|
!!action.payload.content
|
|
);
|
|
} else {
|
|
const columnIndex = findNodeColumn(
|
|
document2.columns,
|
|
payload.activeNodeId
|
|
);
|
|
const column = document2.columns[columnIndex];
|
|
invariant(column);
|
|
const group = findGroupByNodeId([column], payload.activeNodeId);
|
|
invariant(group, "could not find group of " + payload.activeNodeId);
|
|
const groupIndex = group.nodes.findIndex(
|
|
(c) => c === payload.activeNodeId
|
|
);
|
|
const insertionIndex = action.payload.position === "up" ? groupIndex : groupIndex + 1;
|
|
group.nodes.splice(insertionIndex, 0, newNodeId);
|
|
group.nodes = [...group.nodes];
|
|
}
|
|
document2.content[newNodeId] = {
|
|
content: action.payload.content || ""
|
|
};
|
|
return newNodeId;
|
|
};
|
|
|
|
// src/lib/tree-utils/find/find-child-group.ts
|
|
var findChildGroup = (columns, node) => {
|
|
for (const column of columns) {
|
|
for (const group of column.groups) {
|
|
if (group.parentId === node) {
|
|
return group;
|
|
}
|
|
}
|
|
}
|
|
};
|
|
|
|
// src/lib/tree-utils/move/move-node-as-child.ts
|
|
var moveNodeAsChild = (document2, node, targetNode, moveToTheStart) => {
|
|
const targetGroup = findChildGroup(document2.columns, targetNode);
|
|
if (targetGroup) {
|
|
if (moveToTheStart) {
|
|
targetGroup.nodes = [node, ...targetGroup.nodes];
|
|
} else {
|
|
targetGroup.nodes = [...targetGroup.nodes, node];
|
|
}
|
|
} else {
|
|
const currentColumnIndex = findNodeColumn(document2.columns, targetNode);
|
|
let targetColumn;
|
|
targetColumn = document2.columns[currentColumnIndex + 1];
|
|
if (!targetColumn) {
|
|
const newColumn = createColumn();
|
|
document2.columns.push(newColumn);
|
|
document2.columns = [...document2.columns];
|
|
targetColumn = newColumn;
|
|
}
|
|
const newGroup = createGroup(targetNode);
|
|
newGroup.nodes.push(node);
|
|
targetColumn.groups.push(newGroup);
|
|
targetColumn.groups = [...targetColumn.groups];
|
|
}
|
|
};
|
|
|
|
// src/lib/tree-utils/move/move-node-as-sibling.ts
|
|
var moveNodeAsSibling = (columns, direction, node, targetNode, adjacentGroup) => {
|
|
const targetGroup = findGroupByNodeId(columns, targetNode);
|
|
if (targetGroup) {
|
|
let insertionIndex;
|
|
if (adjacentGroup && adjacentGroup.parentId !== targetGroup.parentId) {
|
|
if (direction === "down") {
|
|
targetGroup.nodes.splice(0, 0, node);
|
|
targetGroup.nodes = [...targetGroup.nodes];
|
|
} else if (direction === "up") {
|
|
targetGroup.nodes.push(node);
|
|
targetGroup.nodes = [...targetGroup.nodes];
|
|
}
|
|
} else {
|
|
direction = direction === "left" ? "down" : direction;
|
|
const index = targetGroup.nodes.findIndex((n) => n === targetNode);
|
|
insertionIndex = direction === "up" ? index : index + 1;
|
|
targetGroup.nodes.splice(insertionIndex, 0, node);
|
|
targetGroup.nodes = [...targetGroup.nodes];
|
|
}
|
|
}
|
|
};
|
|
|
|
// src/lib/tree-utils/move/move-child-groups-next-to-their-parent.ts
|
|
var moveChildGroupsNextToTheirParent = (document2, parentNode) => {
|
|
const sortedChildGroups = getSortedChildGroups(
|
|
document2.columns,
|
|
parentNode,
|
|
true
|
|
);
|
|
const parentColumnIndex = findNodeColumn(document2.columns, parentNode);
|
|
for (let i = 0; i < sortedChildGroups.length; i++) {
|
|
const groups = sortedChildGroups[i];
|
|
for (const group of groups) {
|
|
const targetColumnIndex = parentColumnIndex + 1 + i;
|
|
if (!document2.columns[targetColumnIndex]) {
|
|
document2.columns.push({
|
|
id: id.column(),
|
|
groups: []
|
|
});
|
|
document2.columns = [...document2.columns];
|
|
}
|
|
document2.columns[targetColumnIndex].groups.push(group);
|
|
document2.columns[targetColumnIndex].groups = [
|
|
...document2.columns[targetColumnIndex].groups
|
|
];
|
|
}
|
|
}
|
|
};
|
|
|
|
// src/lib/tree-utils/move/change-node-position.ts
|
|
var changeNodePosition = (document2, node, targetNode, direction, type, moveChildToTheStart) => {
|
|
const group = findGroupByNodeId(document2.columns, node);
|
|
invariant(group);
|
|
deleteNodeById(document2.columns, null, node);
|
|
if (direction === "right") {
|
|
moveNodeAsChild(document2, node, targetNode, moveChildToTheStart);
|
|
} else {
|
|
moveNodeAsSibling(
|
|
document2.columns,
|
|
direction,
|
|
node,
|
|
targetNode,
|
|
type === "move" && direction !== "left" ? group : void 0
|
|
);
|
|
}
|
|
moveChildGroupsNextToTheirParent(document2, node);
|
|
};
|
|
|
|
// src/lib/tree-utils/sort/clean-and-sort-columns.ts
|
|
var cleanAndSortColumns = (document2) => {
|
|
const emptyColumns = /* @__PURE__ */ new Set();
|
|
for (let i = 1; i < document2.columns.length; i++) {
|
|
const column = document2.columns[i];
|
|
column.groups = column.groups.filter((g) => g.nodes.length > 0);
|
|
if (column.groups.length === 0) {
|
|
emptyColumns.add(column.id);
|
|
}
|
|
}
|
|
for (const emptyColumn of emptyColumns) {
|
|
const i = document2.columns.findIndex((c) => c.id === emptyColumn);
|
|
if (i > 0) {
|
|
document2.columns.splice(i, 1);
|
|
document2.columns = [...document2.columns];
|
|
}
|
|
}
|
|
for (let i = 1; i < document2.columns.length; i++) {
|
|
const column = document2.columns[i];
|
|
if (column.groups.length) {
|
|
const previousColumn = document2.columns[i - 1];
|
|
if (column.groups.length > 0) {
|
|
column.groups = sortGroups(
|
|
previousColumn.groups,
|
|
column.groups
|
|
);
|
|
}
|
|
}
|
|
}
|
|
};
|
|
|
|
// src/stores/document/reducers/drop-node/drop-node.ts
|
|
var dropNode = (document2, action) => {
|
|
const droppedNode = action.payload.droppedNodeId;
|
|
const targetNode = action.payload.targetNodeId;
|
|
invariant(droppedNode);
|
|
invariant(targetNode);
|
|
changeNodePosition(
|
|
document2,
|
|
droppedNode,
|
|
targetNode,
|
|
action.payload.position,
|
|
"drop",
|
|
false
|
|
);
|
|
cleanAndSortColumns(document2);
|
|
};
|
|
|
|
// src/lib/data-conversion/json-to-x/json-to-columns.ts
|
|
var groupsCache = {};
|
|
var findGroup2 = (column, parentId) => {
|
|
if (!groupsCache[parentId]) {
|
|
groupsCache[parentId] = column.groups.find(
|
|
(g) => g.parentId === parentId
|
|
);
|
|
}
|
|
return groupsCache[parentId];
|
|
};
|
|
var jsonToColumns = (tree, parentId = id.rootNode(), columns = [], content = {}, level2 = 0) => {
|
|
for (const treeNode of tree) {
|
|
const node = id.node();
|
|
content[node] = {
|
|
content: treeNode.content
|
|
};
|
|
if (!columns[level2]) {
|
|
columns.push(createColumn());
|
|
}
|
|
const column = columns[level2];
|
|
let group;
|
|
group = findGroup2(column, parentId);
|
|
if (!group) {
|
|
group = createGroup(parentId);
|
|
column.groups.push(group);
|
|
}
|
|
group.nodes.push(node);
|
|
if (treeNode.children.length > 0) {
|
|
jsonToColumns(treeNode.children, node, columns, content, level2 + 1);
|
|
}
|
|
}
|
|
return { content, columns };
|
|
};
|
|
|
|
// src/lib/tree-utils/insert/insert-first-node.ts
|
|
var insertFirstNode = (columns, content) => {
|
|
if (columns.length === 0) {
|
|
const rootId = id.rootNode();
|
|
const createdNode = id.node();
|
|
content[createdNode] = { content: "" };
|
|
columns.push({
|
|
id: id.column(),
|
|
groups: [
|
|
{
|
|
parentId: rootId,
|
|
nodes: [createdNode]
|
|
}
|
|
]
|
|
});
|
|
}
|
|
};
|
|
|
|
// src/stores/document/reducers/load-document-from-file/load-document-from-file.ts
|
|
var loadDocumentFromFile = (state2, action) => {
|
|
const tree = action.payload.format === "outline" ? outlineToJson(action.payload.document.data) : action.payload.format === "html-element" ? htmlElementToJson(action.payload.document.data) : htmlCommentToJson(action.payload.document.data);
|
|
const document2 = jsonToColumns(tree);
|
|
state2.document.columns = document2.columns;
|
|
state2.document.content = document2.content;
|
|
const emptyTree = tree.length === 0;
|
|
if (emptyTree) {
|
|
insertFirstNode(state2.document.columns, state2.document.content);
|
|
}
|
|
if (action.type === "DOCUMENT/LOAD_FILE")
|
|
state2.file.frontmatter = action.payload.document.frontmatter;
|
|
const activeNode = state2.document.columns[0].groups[0].nodes[0];
|
|
invariant(activeNode);
|
|
return activeNode;
|
|
};
|
|
|
|
// src/stores/document/reducers/content/set-node-content.ts
|
|
var setNodeContent = (content, action) => {
|
|
const nodeContent = content[action.payload.nodeId];
|
|
const contentString = nodeContent?.content || "";
|
|
if (contentString === action.payload.content)
|
|
return false;
|
|
const nodeId = action.payload.nodeId;
|
|
if (!nodeContent)
|
|
content[nodeId] = { content: action.payload.content };
|
|
else
|
|
nodeContent.content = action.payload.content;
|
|
return true;
|
|
};
|
|
|
|
// src/lib/tree-utils/delete/delete-groups-by-parent-id.ts
|
|
var deleteGroupsByParentId = (columns, content, parentIds) => {
|
|
for (const column of columns) {
|
|
const groups = [];
|
|
for (const group of column.groups) {
|
|
if (parentIds.has(group.parentId)) {
|
|
for (const node of group.nodes) {
|
|
delete content[node];
|
|
}
|
|
} else {
|
|
groups.push(group);
|
|
}
|
|
}
|
|
column.groups = groups;
|
|
}
|
|
};
|
|
|
|
// src/lib/tree-utils/delete/delete-child-nodes.ts
|
|
var deleteChildNodes = (document2, node) => {
|
|
const childGroups = traverseDown(document2.columns, node, false);
|
|
if (childGroups.length > 0)
|
|
deleteGroupsByParentId(
|
|
document2.columns,
|
|
document2.content,
|
|
new Set(childGroups)
|
|
);
|
|
};
|
|
|
|
// src/lib/tree-utils/assert/is-last-root-node.ts
|
|
var isLastRootNode = (columns, node) => {
|
|
const column = columns[0];
|
|
if (node && column.groups.length === 1) {
|
|
const group = column.groups[0];
|
|
if (group.nodes.length === 1 && group.nodes[0] === node)
|
|
return true;
|
|
}
|
|
return false;
|
|
};
|
|
|
|
// src/lib/tree-utils/find/find-next-node-after-deletion.ts
|
|
var findNextNodeAfterDeletion = (columns, node) => {
|
|
let nextNode = null;
|
|
const group = findGroupByNodeId(columns, node);
|
|
const columnIndex = findNodeColumn(columns, node);
|
|
const column = columns[columnIndex];
|
|
if (group) {
|
|
const nodeIndex = group.nodes.findIndex((n) => n === node);
|
|
if (nodeIndex === 0)
|
|
nextNode = group.nodes[1];
|
|
else if (nodeIndex > 0)
|
|
nextNode = group.nodes[nodeIndex - 1];
|
|
else
|
|
nextNode = group.nodes[group.nodes.length - 1];
|
|
}
|
|
if (!nextNode) {
|
|
if (group && columnIndex > 0)
|
|
nextNode = group?.parentId;
|
|
else
|
|
nextNode = column.groups[0].nodes[0];
|
|
}
|
|
return nextNode;
|
|
};
|
|
|
|
// src/lib/tree-utils/find/find-node-to-jump-to.ts
|
|
var findNodeToJumpTo = (columns, node, target) => {
|
|
const columnIndex = findNodeColumn(columns, node);
|
|
const column = columns[columnIndex];
|
|
if (target === "start-of-column") {
|
|
return column.groups[0].nodes[0];
|
|
} else if (target === "end-of-column") {
|
|
const nodeGroup = column.groups[column.groups.length - 1];
|
|
return nodeGroup.nodes[nodeGroup.nodes.length - 1];
|
|
} else {
|
|
const group = column.groups.find((g) => g.nodes.includes(node));
|
|
if (group) {
|
|
if (target === "start-of-group")
|
|
return group.nodes[0];
|
|
else if (target === "end-of-group") {
|
|
return group.nodes[group.nodes.length - 1];
|
|
}
|
|
}
|
|
}
|
|
};
|
|
|
|
// src/lib/tree-utils/find/find-next-active-node.ts
|
|
var findNextActiveNode = (columns, node, action) => {
|
|
if (action.type === "DOCUMENT/DELETE_NODE") {
|
|
return findNextNodeAfterDeletion(columns, node);
|
|
} else if (action.type === "DOCUMENT/JUMP_TO_NODE") {
|
|
return findNodeToJumpTo(columns, node, action.payload.target);
|
|
}
|
|
};
|
|
|
|
// src/stores/document/reducers/delete-node/delete-node.ts
|
|
var deleteNode2 = (document2, nodeId, selectedNodes) => {
|
|
invariant(nodeId);
|
|
const isSelection = selectedNodes && selectedNodes.size > 1;
|
|
const nodes = isSelection ? [...selectedNodes] : [nodeId];
|
|
let nextNode = void 0;
|
|
for (const nodeId2 of nodes) {
|
|
const lastNode = isLastRootNode(document2.columns, nodeId2);
|
|
if (lastNode) {
|
|
if (isSelection)
|
|
break;
|
|
else
|
|
throw new Error(lang.error_delete_last_node);
|
|
}
|
|
nextNode = findNextActiveNode(document2.columns, nodeId2, {
|
|
type: "DOCUMENT/DELETE_NODE",
|
|
payload: {
|
|
activeNodeId: nodeId2
|
|
}
|
|
});
|
|
invariant(nextNode);
|
|
deleteChildNodes(document2, nodeId2);
|
|
deleteNodeById(document2.columns, document2.content, nodeId2);
|
|
cleanAndSortColumns(document2);
|
|
}
|
|
invariant(nextNode);
|
|
return nextNode;
|
|
};
|
|
|
|
// src/lib/tree-utils/find/find-sibling-node-in-group.ts
|
|
var findSiblingNodeInGroup = (columns, node, direction) => {
|
|
const group = findGroupByNodeId(columns, node);
|
|
invariant(group);
|
|
const nodeIndex = group.nodes.findIndex((n) => n === node);
|
|
return group.nodes[nodeIndex + (direction === "up" ? -1 : 1)];
|
|
};
|
|
|
|
// src/lib/tree-utils/find/find-sibling-node.ts
|
|
var findSiblingNode = (columns, node, direction) => {
|
|
return findSiblingNodeInGroup(
|
|
columns,
|
|
node,
|
|
direction === "right" ? "up" : direction
|
|
);
|
|
};
|
|
|
|
// src/lib/tree-utils/find/find-adjacent-node.ts
|
|
var findAdjacentNode = (columns, nodeToMove, direction) => {
|
|
let targetNode = null;
|
|
if (direction === "left") {
|
|
const group = findGroupByNodeId(columns, nodeToMove);
|
|
if (group && !group.parentId.startsWith("r"))
|
|
targetNode = group.parentId;
|
|
} else {
|
|
targetNode = findSiblingNode(columns, nodeToMove, direction);
|
|
}
|
|
if (!targetNode && direction === "right") {
|
|
const columnIndex = findNodeColumn(columns, nodeToMove);
|
|
const isFirstNodeOfColumn = columns[columnIndex].groups[0]?.nodes[0] === nodeToMove;
|
|
if (isFirstNodeOfColumn) {
|
|
targetNode = findSiblingNode(columns, nodeToMove, "down");
|
|
}
|
|
}
|
|
return targetNode;
|
|
};
|
|
|
|
// src/lib/tree-utils/find/find-adjacent-node-of-selection.ts
|
|
var findAdjacentNodeOfSelection = (document2, activeNodeId, selectedNodes, direction) => {
|
|
const searchColumns = clone(document2.columns);
|
|
if (selectedNodes && selectedNodes.size > 1) {
|
|
const column = searchColumns[findNodeColumn(searchColumns, activeNodeId)];
|
|
invariant(column);
|
|
for (const group of column.groups) {
|
|
group.nodes = group.nodes.filter(
|
|
(n) => n === activeNodeId || !selectedNodes?.has(n)
|
|
);
|
|
}
|
|
}
|
|
return findAdjacentNode(searchColumns, activeNodeId, direction);
|
|
};
|
|
|
|
// src/lib/tree-utils/find/find-node-column-and-parent.ts
|
|
var findNodeColumnAndParent = (columns, nodeId) => {
|
|
for (let i = 0; i < columns.length; i++) {
|
|
const column = columns[i];
|
|
for (const group of column.groups) {
|
|
for (const node of group.nodes) {
|
|
if (node === nodeId) {
|
|
return [i, group.parentId];
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return null;
|
|
};
|
|
|
|
// src/lib/tree-utils/find/find-adjacent-parent.ts
|
|
var findAdjacentParent = (columns, nodeToMove, direction) => {
|
|
const [columnIndex, parentId] = findNodeColumnAndParent(
|
|
columns,
|
|
nodeToMove
|
|
);
|
|
if (columnIndex > 0) {
|
|
return findSiblingNode(columns, parentId, direction);
|
|
}
|
|
return null;
|
|
};
|
|
|
|
// src/stores/document/reducers/move-node/move-node.ts
|
|
var moveNode2 = (document2, action) => {
|
|
const selectedNodes = action.payload.selectedNodes;
|
|
const isSelection = selectedNodes && selectedNodes.size > 1;
|
|
const nodes = isSelection ? [...selectedNodes] : [action.payload.activeNodeId];
|
|
let direction = action.payload.direction;
|
|
const shouldReverseOrder = isSelection && (direction === "down" || direction === "left");
|
|
if (shouldReverseOrder)
|
|
nodes.reverse();
|
|
invariant(action.payload.activeNodeId);
|
|
let targetNode = isSelection ? findAdjacentNodeOfSelection(
|
|
document2,
|
|
action.payload.activeNodeId,
|
|
selectedNodes,
|
|
direction
|
|
) : findAdjacentNode(
|
|
document2.columns,
|
|
action.payload.activeNodeId,
|
|
direction
|
|
);
|
|
let moveNodeToTheStart = false;
|
|
if (!targetNode && (direction === "down" || direction === "up")) {
|
|
targetNode = findAdjacentParent(
|
|
document2.columns,
|
|
action.payload.activeNodeId,
|
|
direction
|
|
);
|
|
moveNodeToTheStart = direction === "down";
|
|
direction = "right";
|
|
}
|
|
if (!targetNode)
|
|
throw new SilentError("could not find adjacent node");
|
|
for (const nodeToMove of nodes) {
|
|
changeNodePosition(
|
|
document2,
|
|
nodeToMove,
|
|
targetNode,
|
|
direction,
|
|
"move",
|
|
moveNodeToTheStart
|
|
);
|
|
cleanAndSortColumns(document2);
|
|
}
|
|
};
|
|
|
|
// src/lib/tree-utils/find/find-sibling-node-in-column.ts
|
|
var findSiblingNodeInColumn = (columns, node, direction) => {
|
|
const columnIndex = findNodeColumn(columns, node);
|
|
const column = columns[columnIndex];
|
|
const flatColumn = column.groups.map((g) => g.nodes).flat();
|
|
const nodeIndex = flatColumn.findIndex((n) => n === node);
|
|
return flatColumn[nodeIndex + (direction === "up" ? -1 : 1)];
|
|
};
|
|
|
|
// src/lib/tree-utils/move/move-orphan-groups-to-a-new-parent.ts
|
|
var moveOrphanGroupsToANewParent = (document2, currentParentNode, newParentNode, direction) => {
|
|
const groupOfMergedNode = findGroupByParentId(
|
|
document2.columns,
|
|
currentParentNode
|
|
);
|
|
if (!groupOfMergedNode)
|
|
return;
|
|
groupOfMergedNode.column.groups = groupOfMergedNode.column.groups.filter(
|
|
(g) => g.parentId !== groupOfMergedNode.group.parentId
|
|
);
|
|
const parentColumnIndex = findNodeColumn(document2.columns, newParentNode);
|
|
const targetColumnIndex = parentColumnIndex + 1;
|
|
const existingGroupOfNewParent = findGroupByParentId(
|
|
document2.columns,
|
|
newParentNode
|
|
);
|
|
if (existingGroupOfNewParent) {
|
|
if (direction === "up")
|
|
existingGroupOfNewParent.group.nodes = [
|
|
...existingGroupOfNewParent.group.nodes,
|
|
...groupOfMergedNode.group.nodes
|
|
];
|
|
else {
|
|
existingGroupOfNewParent.group.nodes = [
|
|
...groupOfMergedNode.group.nodes,
|
|
...existingGroupOfNewParent.group.nodes
|
|
];
|
|
}
|
|
} else {
|
|
if (!document2.columns[targetColumnIndex]) {
|
|
document2.columns.push({
|
|
id: id.column(),
|
|
groups: []
|
|
});
|
|
document2.columns = [...document2.columns];
|
|
}
|
|
groupOfMergedNode.group.parentId = newParentNode;
|
|
document2.columns[targetColumnIndex].groups.push(
|
|
groupOfMergedNode.group
|
|
);
|
|
document2.columns[targetColumnIndex].groups = [
|
|
...document2.columns[targetColumnIndex].groups
|
|
];
|
|
}
|
|
};
|
|
|
|
// src/stores/document/reducers/merge-node/merge-node.ts
|
|
var mergeNode2 = (document2, action) => {
|
|
const mergedNode = action.payload.activeNodeId;
|
|
const adjacentNode = findSiblingNodeInColumn(
|
|
document2.columns,
|
|
mergedNode,
|
|
action.payload.direction
|
|
);
|
|
invariant(mergedNode, "merged node is undefined");
|
|
if (!adjacentNode)
|
|
throw new SilentError("could not find adjacent node");
|
|
const mergedNodeContent = document2.content[mergedNode] || { content: "" };
|
|
const adjacentNodeContent = document2.content[adjacentNode] || {
|
|
content: ""
|
|
};
|
|
let newContent = "";
|
|
if (action.payload.direction === "up") {
|
|
newContent = (adjacentNodeContent.content + "\n" + mergedNodeContent.content).trim();
|
|
} else if (action.payload.direction === "down") {
|
|
newContent = (mergedNodeContent.content + "\n" + adjacentNodeContent.content).trim();
|
|
}
|
|
if (newContent) {
|
|
const adjacentNodeContentObject = document2.content[adjacentNode];
|
|
if (adjacentNodeContentObject) {
|
|
adjacentNodeContentObject.content = newContent;
|
|
} else {
|
|
document2.content[adjacentNode] = { content: newContent };
|
|
}
|
|
}
|
|
moveOrphanGroupsToANewParent(
|
|
document2,
|
|
mergedNode,
|
|
adjacentNode,
|
|
action.payload.direction
|
|
);
|
|
deleteNodeById(document2.columns, document2.content, mergedNode);
|
|
cleanAndSortColumns(document2);
|
|
return adjacentNode;
|
|
};
|
|
|
|
// src/stores/document/reducers/history/helpers/update-navigation-state.ts
|
|
var updateNavigationState = (document2) => {
|
|
const activeIndex = document2.state.activeIndex;
|
|
document2.state.canGoBack = activeIndex > 0;
|
|
document2.state.canGoForward = activeIndex < document2.items.length - 1;
|
|
};
|
|
|
|
// src/stores/document/reducers/history/helpers/create-snapshot.ts
|
|
var createSnapshot = (document2, context) => {
|
|
return {
|
|
data: {
|
|
columns: JSON.stringify(document2.columns),
|
|
content: JSON.stringify(document2.content)
|
|
},
|
|
context,
|
|
created: Date.now(),
|
|
id: id.snapshot()
|
|
};
|
|
};
|
|
|
|
// src/stores/document/reducers/history/helpers/remove-old-history-items.ts
|
|
var removeOldHistoryItems = (history, MAX_ITEMS) => {
|
|
if (history.items.length >= MAX_ITEMS) {
|
|
const numSnapshotsToRemove = history.items.length - MAX_ITEMS + 1;
|
|
history.items.splice(0, numSnapshotsToRemove);
|
|
const activeItem = history.items[history.state.activeIndex];
|
|
history.state.activeIndex = history.items.findIndex(
|
|
(item) => item === activeItem
|
|
);
|
|
}
|
|
};
|
|
|
|
// src/stores/document/reducers/history/helpers/remove-obsolete-history-items.ts
|
|
var removeObsoleteHistoryItems = (history) => {
|
|
if (history.items.length > 0 && history.state.activeIndex !== history.items.length - 1) {
|
|
history.items.splice(history.state.activeIndex + 1);
|
|
}
|
|
};
|
|
|
|
// src/stores/document/reducers/history/add-snapshot.ts
|
|
var addSnapshot = (document2, history, context) => {
|
|
const items = history.items;
|
|
const activeIndex = history.state.activeIndex;
|
|
const activeSnapshot = items[activeIndex];
|
|
removeObsoleteHistoryItems(history);
|
|
removeOldHistoryItems(history, 50);
|
|
if (activeSnapshot && context.action.type === "DOCUMENT/LOAD_FILE") {
|
|
const snapshotContent = JSON.stringify(
|
|
Object.values(JSON.parse(activeSnapshot.data.content))
|
|
);
|
|
const documentContent = JSON.stringify(Object.values(document2.content));
|
|
if (snapshotContent === documentContent) {
|
|
history.items.splice(history.state.activeIndex, 1);
|
|
}
|
|
}
|
|
const snapshot = createSnapshot(document2, context);
|
|
items.push(snapshot);
|
|
history.state.activeIndex = items.length - 1;
|
|
history.context.activeSection = context.newActiveSection;
|
|
updateNavigationState(history);
|
|
};
|
|
|
|
// src/stores/document/reducers/history/helpers/find-snapshot-index.ts
|
|
var findSnapshotIndex = (snapshots, id2) => {
|
|
if (!id2)
|
|
return -1;
|
|
return snapshots.findIndex((snapshot) => snapshot.id === id2);
|
|
};
|
|
|
|
// src/stores/document/reducers/history/helpers/load-document-from-snapshot.ts
|
|
var loadDocumentFromSnapshot = (document2, snapshot, history) => {
|
|
history.context.activeSection = snapshot.context.newActiveSection;
|
|
document2.content = JSON.parse(snapshot.data.content);
|
|
document2.columns = JSON.parse(snapshot.data.columns);
|
|
};
|
|
|
|
// src/stores/document/reducers/history/select-snapshot.ts
|
|
var selectSnapshot = (document2, history, action) => {
|
|
const index = findSnapshotIndex(history.items, action.payload.snapshotId);
|
|
if (index !== -1) {
|
|
history.state.activeIndex = index;
|
|
updateNavigationState(history);
|
|
const snapshot = history.items[index];
|
|
loadDocumentFromSnapshot(document2, snapshot, history);
|
|
}
|
|
};
|
|
|
|
// src/stores/document/reducers/history/undo-action.ts
|
|
var undoAction = (document2, history) => {
|
|
const currentIndex = history.state.activeIndex;
|
|
const newIndex = currentIndex - 1;
|
|
const snapshot = history.items[newIndex];
|
|
if (!snapshot)
|
|
return;
|
|
history.state.activeIndex = newIndex;
|
|
updateNavigationState(history);
|
|
loadDocumentFromSnapshot(document2, snapshot, history);
|
|
};
|
|
|
|
// src/stores/view/helpers/get-document-event-type.ts
|
|
var contentEvents = /* @__PURE__ */ new Set([
|
|
"DOCUMENT/SET_NODE_CONTENT",
|
|
"DOCUMENT/FORMAT_HEADINGS"
|
|
]);
|
|
var createAndDelete = /* @__PURE__ */ new Set([
|
|
"DOCUMENT/INSERT_NODE",
|
|
"DOCUMENT/DELETE_NODE",
|
|
"DOCUMENT/MERGE_NODE",
|
|
"DOCUMENT/LOAD_FILE",
|
|
"DOCUMENT/EXTRACT_BRANCH",
|
|
"DOCUMENT/SPLIT_NODE"
|
|
]);
|
|
var dropAndMoveEvents = /* @__PURE__ */ new Set([
|
|
"DOCUMENT/DROP_NODE",
|
|
"DOCUMENT/MOVE_NODE"
|
|
]);
|
|
var historyEvents = /* @__PURE__ */ new Set([
|
|
"HISTORY/APPLY_NEXT_SNAPSHOT",
|
|
"HISTORY/APPLY_PREVIOUS_SNAPSHOT",
|
|
"HISTORY/SELECT_SNAPSHOT"
|
|
]);
|
|
var clipboardEvents = /* @__PURE__ */ new Set([
|
|
"DOCUMENT/PASTE_NODE",
|
|
"DOCUMENT/CUT_NODE"
|
|
]);
|
|
var cachedResults = {};
|
|
var getDocumentEventType = (type) => {
|
|
if (cachedResults[type]) {
|
|
return cachedResults[type];
|
|
}
|
|
let result = null;
|
|
if (contentEvents.has(type))
|
|
result = { content: true };
|
|
else if (createAndDelete.has(type))
|
|
result = { createOrDelete: true };
|
|
else if (dropAndMoveEvents.has(type))
|
|
result = { dropOrMove: true };
|
|
else if (historyEvents.has(type))
|
|
result = { changeHistory: true };
|
|
else if (clipboardEvents.has(type))
|
|
result = { clipboard: true };
|
|
if (!result)
|
|
result = {};
|
|
cachedResults[type] = result;
|
|
return result;
|
|
};
|
|
|
|
// src/stores/document/reducers/history/redo-action.ts
|
|
var redoAction = (document2, history) => {
|
|
const currentIndex = history.state.activeIndex;
|
|
const nexIndex = currentIndex + 1;
|
|
const snapshot = history.items[nexIndex];
|
|
if (!snapshot)
|
|
return;
|
|
history.state.activeIndex = nexIndex;
|
|
updateNavigationState(history);
|
|
loadDocumentFromSnapshot(document2, snapshot, history);
|
|
};
|
|
|
|
// src/stores/document/default-document-state.ts
|
|
var defaultDocumentState = () => ({
|
|
document: {
|
|
columns: [],
|
|
content: {}
|
|
},
|
|
sections: {
|
|
id_section: {},
|
|
section_id: {}
|
|
},
|
|
file: {
|
|
path: null,
|
|
frontmatter: ""
|
|
},
|
|
history: {
|
|
items: [],
|
|
state: {
|
|
activeIndex: -1,
|
|
canGoBack: false,
|
|
canGoForward: false
|
|
},
|
|
context: {
|
|
activeSection: ""
|
|
}
|
|
},
|
|
pinnedNodes: {
|
|
Ids: []
|
|
},
|
|
meta: {
|
|
groupParentIds: /* @__PURE__ */ new Set()
|
|
}
|
|
});
|
|
|
|
// src/stores/document/reducers/content/format-content/helpers/format-headings.ts
|
|
var formatHeadings = (content, treeIndexDict) => {
|
|
for (const nodeId in content) {
|
|
const currentContent = content[nodeId]?.content;
|
|
if (!currentContent)
|
|
continue;
|
|
const sectionNumber = treeIndexDict[nodeId];
|
|
if (!sectionNumber)
|
|
continue;
|
|
const depth = sectionNumber.split(".").length;
|
|
const symbol = `${"#".repeat(Math.min(depth, 6))} `;
|
|
const lines = currentContent.split("\n");
|
|
const updatedLines = lines.map((line) => {
|
|
const match = /^#+ /.exec(line);
|
|
if (match) {
|
|
return line.replace(match[0], symbol);
|
|
}
|
|
return line;
|
|
});
|
|
content[nodeId] = {
|
|
content: updatedLines.join("\n")
|
|
};
|
|
}
|
|
};
|
|
|
|
// src/stores/document/reducers/content/format-content/format-headings.ts
|
|
var formatHeadings2 = (content, sections) => {
|
|
formatHeadings(content, sections.id_section);
|
|
};
|
|
|
|
// src/stores/document/reducers/clipboard/paste-node/helpers/past-child-groups.ts
|
|
var pastChildGroups = (document2, branch) => {
|
|
const parentColumnIndex = findNodeColumn(document2.columns, branch.nodeId);
|
|
if (parentColumnIndex === -1)
|
|
throw new Error("could not find cut node");
|
|
for (let i = 0; i < branch.sortedChildGroups.length; i++) {
|
|
const groups = branch.sortedChildGroups[i];
|
|
for (const group of groups) {
|
|
const targetColumnIndex = parentColumnIndex + 1 + i;
|
|
if (!document2.columns[targetColumnIndex]) {
|
|
document2.columns.push({
|
|
id: id.column(),
|
|
groups: []
|
|
});
|
|
document2.columns = [...document2.columns];
|
|
}
|
|
for (const node of group.nodes) {
|
|
if (node in branch.content) {
|
|
document2.content[node] = branch.content[node];
|
|
}
|
|
}
|
|
document2.columns[targetColumnIndex].groups.push(group);
|
|
document2.columns[targetColumnIndex].groups = [
|
|
...document2.columns[targetColumnIndex].groups
|
|
];
|
|
}
|
|
}
|
|
};
|
|
|
|
// src/lib/format-detection/has-n-html-comment-marker.ts
|
|
var hasNHtmlCommentMarker = (input, n = 2) => {
|
|
const lines = input.split("\n");
|
|
let count = 0;
|
|
for (const line of lines) {
|
|
if (parseHtmlCommentMarker(line)) {
|
|
count++;
|
|
if (count >= n)
|
|
return true;
|
|
}
|
|
}
|
|
return false;
|
|
};
|
|
|
|
// src/lib/format-detection/has-n-bullet-list-items.ts
|
|
var hasNBulletListItems = (input, n = 2) => {
|
|
const lines = input.split("\n");
|
|
let count = 0;
|
|
for (const line of lines) {
|
|
if (/^(\t*)- (.+)/.test(line)) {
|
|
count++;
|
|
if (count >= n)
|
|
return true;
|
|
}
|
|
}
|
|
return false;
|
|
};
|
|
|
|
// src/lib/format-detection/has-n-html-element-markers.ts
|
|
var hasNHtmlElementMarker = (input, n = 2) => {
|
|
const lines = input.split("\n");
|
|
let count = 0;
|
|
for (const line of lines) {
|
|
if (parseHtmlElementMarker(line)) {
|
|
count++;
|
|
if (count >= n)
|
|
return true;
|
|
}
|
|
}
|
|
return false;
|
|
};
|
|
|
|
// src/lib/format-detection/detect-document-format.ts
|
|
var detectDocumentFormat = (text2, strict = true) => {
|
|
const { data } = extractFrontmatter(text2);
|
|
if (hasNHtmlCommentMarker(data, 1))
|
|
return "sections";
|
|
if (hasNHtmlElementMarker(data, 1))
|
|
return "html-element";
|
|
if (isOutline(data))
|
|
return "outline";
|
|
if (!strict) {
|
|
if (hasNBulletListItems(text2, 1))
|
|
return "outline";
|
|
}
|
|
};
|
|
|
|
// src/stores/document/reducers/clipboard/paste-node/helpers/text-to-branches.ts
|
|
var textToBranches = (text2) => {
|
|
const detectedFormat = detectDocumentFormat(text2, false);
|
|
const tree = text2.trim().length > 0 ? detectedFormat === "outline" ? outlineToJson(text2) : detectedFormat === "html-element" ? htmlElementToJson(text2) : htmlCommentToJson(text2) : [{ children: [], content: "" }];
|
|
const document2 = jsonToColumns(tree);
|
|
const branches = [];
|
|
for (const nodeId of document2.columns[0].groups[0].nodes) {
|
|
const branch = getBranch(
|
|
document2.columns,
|
|
document2.content,
|
|
nodeId,
|
|
"copy"
|
|
);
|
|
branches.push(branch);
|
|
}
|
|
return branches;
|
|
};
|
|
|
|
// src/stores/document/reducers/clipboard/paste-node/paste-node.ts
|
|
var pasteNode2 = (document2, action) => {
|
|
const branches = textToBranches(action.payload.text);
|
|
const nextNode = branches[branches.length - 1].nodeId;
|
|
const targetNode = action.payload.targetNodeId;
|
|
const position = action.payload.position || "down";
|
|
for (const branch of branches.reverse()) {
|
|
insertNode(
|
|
document2,
|
|
{
|
|
payload: {
|
|
activeNodeId: targetNode,
|
|
position,
|
|
content: branch.content[branch.nodeId]?.content
|
|
}
|
|
},
|
|
branch.nodeId
|
|
);
|
|
pastChildGroups(document2, branch);
|
|
}
|
|
cleanAndSortColumns(document2);
|
|
invariant(nextNode);
|
|
return {
|
|
nextNode,
|
|
rootNodes: branches.map((b) => b.nodeId)
|
|
};
|
|
};
|
|
|
|
// src/stores/view/subscriptions/helpers/calculate-tree-index.ts
|
|
var calculateColumnTreeIndexes = (columns) => {
|
|
const sections = { id_section: {}, section_id: {} };
|
|
if (columns.length === 0)
|
|
return sections;
|
|
for (let nI = 0; nI < columns[0].groups[0].nodes.length; nI++) {
|
|
const node = columns[0].groups[0].nodes[nI];
|
|
const section = String(nI + 1);
|
|
sections.id_section[node] = section;
|
|
sections.section_id[section] = node;
|
|
}
|
|
for (let cI = 1; cI < columns.length; cI++) {
|
|
const column = columns[cI];
|
|
for (let gI = 0; gI < column.groups.length; gI++) {
|
|
const group = column.groups[gI];
|
|
for (let nI = 0; nI < group.nodes.length; nI++) {
|
|
const node = group.nodes[nI];
|
|
const section = sections.id_section[group.parentId] + "." + (nI + 1);
|
|
sections.id_section[node] = section;
|
|
sections.section_id[section] = node;
|
|
}
|
|
}
|
|
}
|
|
return sections;
|
|
};
|
|
|
|
// src/stores/document/reducers/state/update-sections-dictionary.ts
|
|
var updateSectionsDictionary = (state2) => {
|
|
state2.sections = calculateColumnTreeIndexes(state2.document.columns);
|
|
};
|
|
|
|
// src/stores/view/subscriptions/helpers/get-id-of-section.ts
|
|
var getIdOfSection = (sections, section) => {
|
|
const id2 = sections.section_id[section];
|
|
invariant(id2);
|
|
return id2;
|
|
};
|
|
|
|
// src/stores/document/reducers/extract-node/remove-extracted-branch.ts
|
|
var removeExtractedBranch = (document2, action) => {
|
|
invariant(action.payload.nodeId);
|
|
invariant(action.payload.documentName);
|
|
deleteChildNodes(document2, action.payload.nodeId);
|
|
cleanAndSortColumns(document2);
|
|
};
|
|
|
|
// src/stores/view/subscriptions/helpers/get-section-of-id.ts
|
|
var getSectionOfId = (sections, nodeId) => {
|
|
const section = sections.id_section[nodeId];
|
|
invariant(section);
|
|
return section;
|
|
};
|
|
|
|
// src/stores/document/reducers/split-node/split-node.ts
|
|
var splitNode = (document2, action) => {
|
|
const targetNode = action.payload.target;
|
|
const content = document2.content[targetNode];
|
|
if (!content?.content)
|
|
throw new SilentError("empty node");
|
|
const sections = splitText(content?.content, action.payload.mode);
|
|
if (sections === content.content)
|
|
throw new Error(lang.error_cm_cant_split_card_identical);
|
|
const childGroup = findChildGroup(document2.columns, targetNode);
|
|
if (childGroup)
|
|
throw new Error(lang.error_cm_cant_split_card_that_has_children);
|
|
const result = pasteNode2(document2, {
|
|
payload: {
|
|
position: "down",
|
|
targetNodeId: targetNode,
|
|
text: sections
|
|
}
|
|
});
|
|
deleteNode2(document2, targetNode);
|
|
return result.nextNode;
|
|
};
|
|
|
|
// src/stores/document/reducers/pinned-nodes/unpin-node.ts
|
|
var unpinNode = (pinnedNodes, id2) => {
|
|
pinnedNodes.Ids = pinnedNodes.Ids.filter((_id) => _id !== id2);
|
|
};
|
|
|
|
// src/stores/document/reducers/pinned-nodes/remove-stale-pinned-nodes.ts
|
|
var removeStalePinnedNodes = (pinnedNodes, sections) => {
|
|
pinnedNodes.Ids = pinnedNodes.Ids.filter((id2) => sections.id_section[id2]);
|
|
pinnedNodes.Ids = sortNodeIdsBySectionNumber(sections, pinnedNodes.Ids);
|
|
};
|
|
|
|
// src/stores/document/reducers/pinned-nodes/load-pinned-nodes.ts
|
|
var loadPinnedNodes = (pinnedNodes, sections, pinnedSections) => {
|
|
pinnedNodes.Ids = pinnedSections.map((section) => sections.section_id[section]).filter((x) => x);
|
|
};
|
|
|
|
// src/stores/document/reducers/meta/refresh-group-parent-ids.ts
|
|
var refreshGroupParentIds = (columns, meta) => {
|
|
const groupParentIds = /* @__PURE__ */ new Set();
|
|
for (const column of columns) {
|
|
for (const group of column.groups) {
|
|
groupParentIds.add(group.parentId);
|
|
}
|
|
}
|
|
meta.groupParentIds = groupParentIds;
|
|
};
|
|
|
|
// src/stores/document/reducers/load-document-from-file/load-document-from-json.ts
|
|
var loadDocumentFromJSON = (state2, document2) => {
|
|
state2.document.columns = document2.columns;
|
|
state2.document.content = document2.content;
|
|
const activeNode = state2.document.columns[0].groups[0].nodes[0];
|
|
invariant(activeNode);
|
|
return activeNode;
|
|
};
|
|
|
|
// src/stores/document/document-reducer.ts
|
|
var updateDocumentState2 = (state2, action) => {
|
|
let newActiveNodeId = null;
|
|
let affectedNodeId = null;
|
|
let affectedNodeContent = null;
|
|
let affectedNodes = void 0;
|
|
if (action.type === "DOCUMENT/SET_NODE_CONTENT") {
|
|
const update2 = setNodeContent(state2.document.content, action);
|
|
if (!update2)
|
|
return NO_UPDATE;
|
|
newActiveNodeId = action.payload.nodeId;
|
|
} else if (action.type === "DOCUMENT/INSERT_NODE") {
|
|
newActiveNodeId = insertNode(state2.document, action);
|
|
} else if (action.type === "DOCUMENT/DELETE_NODE") {
|
|
affectedNodeContent = state2.document.content[action.payload.activeNodeId];
|
|
newActiveNodeId = deleteNode2(
|
|
state2.document,
|
|
action.payload.activeNodeId,
|
|
action.payload.selectedNodes
|
|
);
|
|
affectedNodeId = action.payload.activeNodeId;
|
|
} else if (action.type === "DOCUMENT/EXTRACT_BRANCH") {
|
|
affectedNodeContent = state2.document.content[action.payload.nodeId];
|
|
const update2 = setNodeContent(state2.document.content, {
|
|
payload: {
|
|
nodeId: action.payload.nodeId,
|
|
content: `[[${action.payload.documentName}]]`
|
|
}
|
|
});
|
|
if (!update2)
|
|
return NO_UPDATE;
|
|
removeExtractedBranch(state2.document, action);
|
|
newActiveNodeId = action.payload.nodeId;
|
|
} else if (action.type === "DOCUMENT/SPLIT_NODE") {
|
|
affectedNodeId = action.payload.target;
|
|
affectedNodeContent = state2.document.content[affectedNodeId];
|
|
newActiveNodeId = splitNode(state2.document, action);
|
|
} else if (action.type === "DOCUMENT/DROP_NODE") {
|
|
dropNode(state2.document, action);
|
|
newActiveNodeId = action.payload.droppedNodeId;
|
|
} else if (action.type === "DOCUMENT/MOVE_NODE") {
|
|
moveNode2(state2.document, action);
|
|
newActiveNodeId = action.payload.activeNodeId;
|
|
affectedNodeId = newActiveNodeId;
|
|
} else if (action.type === "DOCUMENT/MERGE_NODE") {
|
|
affectedNodeContent = state2.document.content[action.payload.activeNodeId];
|
|
newActiveNodeId = mergeNode2(state2.document, action);
|
|
affectedNodeId = action.payload.activeNodeId;
|
|
} else if (action.type === "DOCUMENT/LOAD_FILE") {
|
|
if (action.payload.__test_document__) {
|
|
newActiveNodeId = loadDocumentFromJSON(
|
|
state2,
|
|
action.payload.__test_document__
|
|
);
|
|
} else {
|
|
newActiveNodeId = loadDocumentFromFile(state2, action);
|
|
}
|
|
} else if (action.type === "RESET_STORE") {
|
|
const newState = defaultDocumentState();
|
|
state2.document = newState.document;
|
|
state2.history = newState.history;
|
|
state2.file = newState.file;
|
|
} else if (action.type === "HISTORY/SELECT_SNAPSHOT") {
|
|
selectSnapshot(state2.document, state2.history, action);
|
|
state2.history = { ...state2.history };
|
|
} else if (action.type === "HISTORY/APPLY_PREVIOUS_SNAPSHOT") {
|
|
undoAction(state2.document, state2.history);
|
|
state2.history = { ...state2.history };
|
|
} else if (action.type === "HISTORY/APPLY_NEXT_SNAPSHOT") {
|
|
redoAction(state2.document, state2.history);
|
|
state2.history = { ...state2.history };
|
|
} else if (action.type === "FS/SET_FILE_PATH") {
|
|
state2.file.path = action.payload.path;
|
|
} else if (action.type === "DOCUMENT/FORMAT_HEADINGS") {
|
|
formatHeadings2(state2.document.content, state2.sections);
|
|
newActiveNodeId = getIdOfSection(
|
|
state2.sections,
|
|
state2.history.context.activeSection
|
|
);
|
|
} else if (action.type === "DOCUMENT/PASTE_NODE") {
|
|
const result = pasteNode2(state2.document, action);
|
|
newActiveNodeId = result.nextNode;
|
|
affectedNodes = result.rootNodes;
|
|
} else if (action.type === "DOCUMENT/CUT_NODE") {
|
|
affectedNodeContent = state2.document.content[action.payload.nodeId];
|
|
newActiveNodeId = deleteNode2(
|
|
state2.document,
|
|
action.payload.nodeId,
|
|
action.payload.selectedNodes
|
|
);
|
|
affectedNodeId = action.payload.nodeId;
|
|
} else if (action.type === "FILE/UPDATE_FRONTMATTER") {
|
|
state2.file.frontmatter = action.payload.frontmatter;
|
|
return;
|
|
} else if (action.type === "document/pinned-nodes/pin") {
|
|
pinNode(state2.sections, state2.pinnedNodes, action.payload.id);
|
|
return;
|
|
} else if (action.type === "document/pinned-nodes/unpin") {
|
|
unpinNode(state2.pinnedNodes, action.payload.id);
|
|
return;
|
|
} else if (action.type === "document/pinned-nodes/remove-stale-nodes") {
|
|
removeStalePinnedNodes(state2.pinnedNodes, state2.sections);
|
|
return;
|
|
} else if (action.type === "document/pinned-nodes/load-from-settings") {
|
|
loadPinnedNodes(
|
|
state2.pinnedNodes,
|
|
state2.sections,
|
|
action.payload.sections
|
|
);
|
|
return;
|
|
} else if (action.type === "META/REFRESH_GROUP_PARENT_IDS") {
|
|
refreshGroupParentIds(state2.document.columns, state2.meta);
|
|
return;
|
|
}
|
|
const e = getDocumentEventType(action.type);
|
|
let affectedSection = null;
|
|
if (affectedNodeId) {
|
|
affectedSection = getSectionOfId(state2.sections, affectedNodeId);
|
|
}
|
|
if (e.dropOrMove || e.createOrDelete || e.changeHistory || e.clipboard) {
|
|
updateSectionsDictionary(state2);
|
|
}
|
|
if (action.type === "DOCUMENT/LOAD_FILE") {
|
|
const activeSection = action.payload.activeSection;
|
|
if (activeSection) {
|
|
const id2 = state2.sections.section_id[activeSection];
|
|
if (id2) {
|
|
newActiveNodeId = id2;
|
|
}
|
|
}
|
|
}
|
|
const contentShapeCreation = e.content || e.dropOrMove || e.createOrDelete;
|
|
if (newActiveNodeId && (contentShapeCreation || e.clipboard)) {
|
|
const newActiveSection = getSectionOfId(
|
|
state2.sections,
|
|
newActiveNodeId
|
|
);
|
|
affectedNodeId = affectedNodeId || newActiveNodeId;
|
|
affectedNodeContent = affectedNodeContent || state2.document.content[affectedNodeId];
|
|
const context = {
|
|
numberOfSections: Object.keys(state2.document.content).length,
|
|
affectedSection: affectedSection || newActiveSection,
|
|
newActiveSection,
|
|
action,
|
|
contentOfAffectedSection: affectedNodeContent?.content?.substring(0, 300) || "",
|
|
numberOfCharacters: Object.values(state2.document.content).map((x) => x.content.length).reduce((acc, v) => acc + v),
|
|
affectedSections: affectedNodes ? affectedNodes.map((id2) => state2.sections.id_section[id2]) : void 0
|
|
};
|
|
addSnapshot(state2.document, state2.history, context);
|
|
state2.history = { ...state2.history };
|
|
}
|
|
};
|
|
var documentReducer = (store, action) => {
|
|
const result = updateDocumentState2(store, action);
|
|
if (result === NO_UPDATE)
|
|
return NO_UPDATE;
|
|
return store;
|
|
};
|
|
|
|
// src/stores/view/default-view-state.ts
|
|
var defaultViewState = () => ({
|
|
search: {
|
|
query: "",
|
|
results: /* @__PURE__ */ new Set(),
|
|
searching: false,
|
|
showInput: false,
|
|
fuzzySearch: false,
|
|
showAllNodes: true
|
|
},
|
|
ui: {
|
|
controls: {
|
|
showHistorySidebar: false,
|
|
showHelpSidebar: false,
|
|
showSettingsSidebar: false,
|
|
showStyleRulesModal: false
|
|
}
|
|
},
|
|
document: {
|
|
editing: {
|
|
activeNodeId: "",
|
|
isInSidebar: false
|
|
},
|
|
activeBranch: {
|
|
group: "",
|
|
childGroups: /* @__PURE__ */ new Set(),
|
|
sortedParentNodes: [],
|
|
column: "",
|
|
node: ""
|
|
},
|
|
dnd: {
|
|
node: "",
|
|
childGroups: /* @__PURE__ */ new Set()
|
|
},
|
|
activeNode: "",
|
|
activeNodesOfColumn: {},
|
|
selectedNodes: /* @__PURE__ */ new Set(),
|
|
pendingConfirmation: {
|
|
disableEdit: null,
|
|
deleteNode: /* @__PURE__ */ new Set()
|
|
}
|
|
},
|
|
navigationHistory: {
|
|
items: [],
|
|
state: {
|
|
activeIndex: -1,
|
|
canGoBack: false,
|
|
canGoForward: false
|
|
},
|
|
context: void 0
|
|
},
|
|
pinnedNodes: {
|
|
activeNode: ""
|
|
},
|
|
recentNodes: {
|
|
activeNode: ""
|
|
},
|
|
styleRules: {
|
|
nodeStyles: /* @__PURE__ */ new Map(),
|
|
allMatches: /* @__PURE__ */ new Map()
|
|
},
|
|
keyboard: {
|
|
shift: false
|
|
},
|
|
hotkeys: {
|
|
searchTerm: "",
|
|
conflictingHotkeys: /* @__PURE__ */ new Map()
|
|
},
|
|
outline: {
|
|
collapsedParents: /* @__PURE__ */ new Set(),
|
|
hiddenNodes: /* @__PURE__ */ new Set()
|
|
}
|
|
});
|
|
|
|
// src/stores/view/reducers/search/set-search-query.ts
|
|
var setSearchQuery = (state2, query) => {
|
|
state2.search.query = query;
|
|
if (!query)
|
|
state2.search.results = /* @__PURE__ */ new Set();
|
|
state2.search.searching = query.length > 0;
|
|
state2.search = { ...state2.search };
|
|
};
|
|
|
|
// src/stores/view/reducers/search/set-search-results.ts
|
|
var setSearchResults = (state2, results) => {
|
|
state2.search.results = new Set(results);
|
|
state2.search.searching = false;
|
|
state2.search = { ...state2.search };
|
|
};
|
|
|
|
// src/stores/view/reducers/search/toggle-search-input.ts
|
|
var toggleSearchInput = (state2) => {
|
|
state2.search.showInput = !state2.search.showInput;
|
|
if (!state2.search.showInput) {
|
|
setSearchQuery(state2, "");
|
|
}
|
|
state2.search = { ...state2.search };
|
|
};
|
|
|
|
// src/stores/view/reducers/document/reset-pending-confirmation.ts
|
|
var resetPendingConfirmation = (state2) => {
|
|
state2.pendingConfirmation = {
|
|
disableEdit: null,
|
|
deleteNode: /* @__PURE__ */ new Set()
|
|
};
|
|
};
|
|
|
|
// src/stores/view/reducers/document/enable-edit-mode.ts
|
|
var enableEditMode = (state2, nodeId, isInSidebar = false) => {
|
|
if (state2.editing.activeNodeId) {
|
|
if (state2.editing.activeNodeId === nodeId) {
|
|
throw new Error(
|
|
`This card is being edited in the ${state2.editing.isInSidebar ? "sidebar" : "main view"}`
|
|
);
|
|
}
|
|
}
|
|
state2.editing = {
|
|
activeNodeId: nodeId,
|
|
isInSidebar
|
|
};
|
|
resetPendingConfirmation(state2);
|
|
};
|
|
|
|
// src/stores/view/reducers/document/disable-edit-mode.ts
|
|
var disableEditMode = (state2) => {
|
|
state2.editing = {
|
|
activeNodeId: "",
|
|
isInSidebar: false
|
|
};
|
|
resetPendingConfirmation(state2);
|
|
};
|
|
|
|
// src/stores/view/reducers/document/on-drag-start.ts
|
|
var onDragStart = (state2, action) => {
|
|
const node = action.payload.nodeId;
|
|
if (node) {
|
|
state2.dnd = {
|
|
node: action.payload.nodeId,
|
|
childGroups: new Set(action.payload.childGroups)
|
|
};
|
|
}
|
|
};
|
|
|
|
// src/stores/view/reducers/document/on-drag-end.ts
|
|
var onDragEnd = (state2) => {
|
|
state2.dnd = {
|
|
node: "",
|
|
childGroups: /* @__PURE__ */ new Set()
|
|
};
|
|
};
|
|
|
|
// src/lib/tree-utils/get/traverse-up.ts
|
|
var traverseUp = (columns, nodeId) => {
|
|
const parentIds = [];
|
|
const columnAndParent = findNodeColumnAndParent(columns, nodeId);
|
|
if (!columnAndParent)
|
|
return parentIds;
|
|
let currentParentId = columnAndParent[1];
|
|
const nodeColumnIndex = columnAndParent[0];
|
|
for (let i = nodeColumnIndex - 1; i >= 0; i--) {
|
|
if (!currentParentId)
|
|
break;
|
|
parentIds.push(currentParentId);
|
|
let nextParentId;
|
|
for (const group of columns[i].groups) {
|
|
for (const node of group.nodes) {
|
|
if (node === currentParentId) {
|
|
nextParentId = group.parentId;
|
|
break;
|
|
}
|
|
}
|
|
if (nextParentId)
|
|
break;
|
|
}
|
|
currentParentId = nextParentId;
|
|
}
|
|
return parentIds;
|
|
};
|
|
|
|
// src/stores/view/reducers/document/helpers/remove-stale-active-nodes.ts
|
|
var removeStaleActiveNodes = (columns, activeNodes) => {
|
|
const result = {};
|
|
const columnMap = /* @__PURE__ */ new Map();
|
|
const groupMap = /* @__PURE__ */ new Map();
|
|
const nodeMap = /* @__PURE__ */ new Map();
|
|
for (const column of columns) {
|
|
const groupSet = /* @__PURE__ */ new Set();
|
|
columnMap.set(column.id, column);
|
|
for (const group of column.groups) {
|
|
groupSet.add(group.parentId);
|
|
nodeMap.set(group.parentId, new Set(group.nodes));
|
|
}
|
|
groupMap.set(column.id, groupSet);
|
|
}
|
|
for (const [columnId, groupEntries] of Object.entries(activeNodes)) {
|
|
if (!columnMap.has(columnId))
|
|
continue;
|
|
const validGroups = groupMap.get(columnId);
|
|
const cleanedGroups = {};
|
|
for (const [groupId, nodeId] of Object.entries(groupEntries)) {
|
|
if (!validGroups.has(groupId))
|
|
continue;
|
|
const validNodes = nodeMap.get(groupId);
|
|
if (!validNodes?.has(nodeId))
|
|
continue;
|
|
cleanedGroups[groupId] = nodeId;
|
|
}
|
|
if (Object.keys(cleanedGroups).length > 0) {
|
|
result[columnId] = cleanedGroups;
|
|
}
|
|
}
|
|
return result;
|
|
};
|
|
|
|
// src/stores/view/reducers/document/helpers/update-active-branch.ts
|
|
var updateActiveBranch = (state2, columns, changeType) => {
|
|
if (!state2.activeNode)
|
|
return;
|
|
const sortedParents = traverseUp(columns, state2.activeNode).reverse();
|
|
const childGroups = traverseDown(columns, state2.activeNode, true);
|
|
const group = findGroupByNodeId(columns, state2.activeNode);
|
|
if (!group)
|
|
throw new Error("could not find group for node " + state2.activeNode);
|
|
const columnId = columns[findNodeColumn(columns, state2.activeNode)].id;
|
|
const needsUpdate = state2.activeNode !== state2.activeBranch.node || childGroups.length !== state2.activeBranch.childGroups.size || sortedParents.length !== state2.activeBranch.sortedParentNodes.length || group.parentId !== state2.activeBranch.group || columnId !== state2.activeBranch.column || childGroups.some(
|
|
(group2) => !state2.activeBranch.childGroups.has(group2)
|
|
) || sortedParents.some(
|
|
(node, i) => node !== state2.activeBranch.sortedParentNodes[i]
|
|
);
|
|
if (needsUpdate) {
|
|
state2.activeBranch = {
|
|
childGroups: new Set(childGroups),
|
|
sortedParentNodes: sortedParents,
|
|
group: group.parentId,
|
|
column: columnId,
|
|
node: state2.activeNode
|
|
};
|
|
}
|
|
if (!state2.activeNodesOfColumn[columnId])
|
|
state2.activeNodesOfColumn[columnId] = {};
|
|
state2.activeNodesOfColumn[columnId][group.parentId] = state2.activeNode;
|
|
if (changeType === "structure") {
|
|
state2.activeNodesOfColumn = removeStaleActiveNodes(
|
|
columns,
|
|
state2.activeNodesOfColumn
|
|
);
|
|
}
|
|
};
|
|
|
|
// src/stores/view/reducers/ui/helpers/add-navigation-history-item.ts
|
|
var addNavigationHistoryItem = (state2, nodeId) => {
|
|
if (!nodeId)
|
|
return;
|
|
removeObsoleteHistoryItems(state2.navigationHistory);
|
|
removeOldHistoryItems(state2.navigationHistory, 100);
|
|
const activeItem = state2.navigationHistory.items[state2.navigationHistory.items.length - 1];
|
|
if (activeItem !== nodeId) {
|
|
state2.navigationHistory.items.push(nodeId);
|
|
}
|
|
state2.navigationHistory.state.activeIndex = state2.navigationHistory.items.length - 1;
|
|
updateNavigationState(state2.navigationHistory);
|
|
state2.navigationHistory = {
|
|
...state2.navigationHistory
|
|
};
|
|
};
|
|
|
|
// src/stores/view/reducers/document/helpers/update-active-node.ts
|
|
var updateActiveNode = (documentState, nodeId, state2) => {
|
|
documentState.activeNode = nodeId;
|
|
if (state2)
|
|
addNavigationHistoryItem(state2, documentState.activeNode);
|
|
const activeNodeId = documentState.editing.activeNodeId;
|
|
if (activeNodeId !== nodeId || documentState.editing.isInSidebar)
|
|
disableEditMode(documentState);
|
|
resetPendingConfirmation(documentState);
|
|
};
|
|
|
|
// src/lib/tree-utils/find/find-next-active-node-on-keyboard-navigation.ts
|
|
var filterHiddenGroups = (columns, collapsedParents) => {
|
|
return columns.map((c) => {
|
|
return {
|
|
groups: c.groups.filter((g) => {
|
|
return !collapsedParents.has(g.parentId);
|
|
}),
|
|
id: c.id
|
|
};
|
|
});
|
|
};
|
|
var findNextActiveNodeOnKeyboardNavigation = (columns, node, direction, activeNodeOfGroup, collapsedParents, isSelecting = false) => {
|
|
if (!node)
|
|
return;
|
|
let nextNode = null;
|
|
if (collapsedParents) {
|
|
columns = filterHiddenGroups(columns, collapsedParents);
|
|
}
|
|
if (direction === "left") {
|
|
const group = findGroupByNodeId(columns, node);
|
|
if (group && !group.parentId.startsWith("r"))
|
|
nextNode = group.parentId;
|
|
} else if (direction === "right") {
|
|
const group = findChildGroup(columns, node);
|
|
if (group) {
|
|
const columnIndex = findNodeColumn(columns, node);
|
|
const nextColumn = columns[columnIndex + 1];
|
|
if (!nextColumn)
|
|
return;
|
|
const activeNode = activeNodeOfGroup[nextColumn.id]?.[group.parentId];
|
|
if (activeNode)
|
|
nextNode = activeNode;
|
|
else
|
|
nextNode = group.nodes[0];
|
|
}
|
|
} else {
|
|
const columnIndex = findNodeColumn(columns, node);
|
|
const column = columns[columnIndex];
|
|
if (!column)
|
|
return;
|
|
const outlineMode = Boolean(collapsedParents);
|
|
const groupOfActiveNode = findGroupByNodeId(columns, node);
|
|
const allNodes = outlineMode ? groupOfActiveNode.nodes : column.groups.map((g) => g.nodes).flat();
|
|
const nodeIndex = allNodes.findIndex((n) => n === node);
|
|
const parentId = columnIndex > 0 ? groupOfActiveNode.parentId : null;
|
|
if (outlineMode) {
|
|
if (direction === "up") {
|
|
if (nodeIndex > 0) {
|
|
nextNode = allNodes[nodeIndex - 1];
|
|
} else if (nodeIndex === 0 && !isSelecting) {
|
|
return parentId;
|
|
}
|
|
} else if (direction === "down") {
|
|
if (nodeIndex < allNodes.length - 1) {
|
|
nextNode = allNodes[nodeIndex + 1];
|
|
} else if (nodeIndex === allNodes.length - 1 && parentId && !isSelecting) {
|
|
const groupOfParentNode = findGroupByNodeId(
|
|
columns,
|
|
parentId
|
|
);
|
|
if (groupOfParentNode) {
|
|
const parentIndex = groupOfParentNode.nodes.findIndex(
|
|
(n) => n === parentId
|
|
);
|
|
nextNode = groupOfParentNode.nodes[parentIndex + 1];
|
|
}
|
|
}
|
|
}
|
|
} else {
|
|
if (direction === "up") {
|
|
if (nodeIndex > 0) {
|
|
nextNode = allNodes[nodeIndex - 1];
|
|
}
|
|
} else if (direction === "down") {
|
|
if (nodeIndex < allNodes.length - 1) {
|
|
nextNode = allNodes[nodeIndex + 1];
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return nextNode;
|
|
};
|
|
|
|
// src/stores/view/reducers/document/helpers/update-selected-nodes.ts
|
|
var updateSelectedNodes = (column, selectedNodes, previousActiveNode, newActiveNode) => {
|
|
const allNodeIds = column.groups.flatMap((group) => group.nodes);
|
|
const previousActiveNodeIndex = allNodeIds.indexOf(previousActiveNode);
|
|
if (previousActiveNodeIndex === -1)
|
|
return;
|
|
const currentSelectionIsEmpty = selectedNodes.size === 0;
|
|
const lowestSelectedNodeIndex = currentSelectionIsEmpty ? previousActiveNodeIndex : allNodeIds.findIndex((nodeId) => selectedNodes.has(nodeId));
|
|
const highestSelectedNodeIndex = currentSelectionIsEmpty ? previousActiveNodeIndex : allNodeIds.findLastIndex((nodeId) => selectedNodes.has(nodeId));
|
|
const newActiveNodeIndex = allNodeIds.indexOf(newActiveNode);
|
|
if (newActiveNodeIndex === -1)
|
|
return;
|
|
let mode = null;
|
|
if (newActiveNodeIndex - previousActiveNodeIndex > 1) {
|
|
mode = "jump_down" /* jump_down */;
|
|
} else if (previousActiveNodeIndex - newActiveNodeIndex > 1) {
|
|
mode = "jump_up" /* jump_up */;
|
|
} else if (previousActiveNodeIndex === lowestSelectedNodeIndex)
|
|
mode = "step_from_top" /* step_from_top */;
|
|
else if (previousActiveNodeIndex === highestSelectedNodeIndex)
|
|
mode = "step_from_bottom" /* step_from_bottom */;
|
|
const goingUp = previousActiveNodeIndex > newActiveNodeIndex;
|
|
selectedNodes.clear();
|
|
if (!mode)
|
|
return;
|
|
let startIndex = 0, endIndex = 0;
|
|
if (currentSelectionIsEmpty) {
|
|
if (goingUp) {
|
|
startIndex = newActiveNodeIndex;
|
|
endIndex = previousActiveNodeIndex;
|
|
} else {
|
|
startIndex = previousActiveNodeIndex;
|
|
endIndex = newActiveNodeIndex;
|
|
}
|
|
} else if (mode === "jump_down" /* jump_down */) {
|
|
startIndex = previousActiveNodeIndex;
|
|
endIndex = newActiveNodeIndex;
|
|
} else if (mode === "jump_up" /* jump_up */) {
|
|
startIndex = newActiveNodeIndex;
|
|
endIndex = previousActiveNodeIndex;
|
|
} else if (mode === "step_from_top" /* step_from_top */) {
|
|
startIndex = newActiveNodeIndex;
|
|
endIndex = highestSelectedNodeIndex;
|
|
} else if (mode === "step_from_bottom" /* step_from_bottom */) {
|
|
startIndex = lowestSelectedNodeIndex;
|
|
endIndex = newActiveNodeIndex;
|
|
}
|
|
if (startIndex === endIndex)
|
|
return;
|
|
for (let i = startIndex; i <= endIndex; i++) {
|
|
selectedNodes.add(allNodeIds[i]);
|
|
}
|
|
};
|
|
|
|
// src/stores/view/reducers/document/helpers/reset-selection-state.ts
|
|
var resetSelectionState = (documentState) => {
|
|
documentState.selectedNodes = /* @__PURE__ */ new Set();
|
|
};
|
|
|
|
// src/stores/view/reducers/document/helpers/update-selection-state.ts
|
|
var updateSelectionState = (documentState, nextNode, action) => {
|
|
const isJump = action.type === "DOCUMENT/JUMP_TO_NODE";
|
|
const isVerticalStep = action.type === "DOCUMENT/NAVIGATE_USING_KEYBOARD" && (action.payload.direction === "up" || action.payload.direction === "down");
|
|
if (action.context?.shiftKey && (isJump || isVerticalStep)) {
|
|
const columnIndex = findNodeColumn(action.payload.columns, nextNode);
|
|
const column = action.payload.columns[columnIndex];
|
|
invariant(column);
|
|
updateSelectedNodes(
|
|
column,
|
|
documentState.selectedNodes,
|
|
documentState.activeNode,
|
|
nextNode
|
|
);
|
|
documentState.selectedNodes = new Set(documentState.selectedNodes);
|
|
} else {
|
|
resetSelectionState(documentState);
|
|
}
|
|
};
|
|
|
|
// src/stores/view/reducers/document/navigate-using-keyboard.ts
|
|
var navigateUsingKeyboard = (documentState, state2, action) => {
|
|
const nextNode = findNextActiveNodeOnKeyboardNavigation(
|
|
action.payload.columns,
|
|
documentState.activeNode,
|
|
action.payload.direction,
|
|
documentState.activeNodesOfColumn,
|
|
action.context.outlineMode ? state2.outline.collapsedParents : null,
|
|
action.context.shiftKey
|
|
);
|
|
if (nextNode) {
|
|
updateSelectionState(documentState, nextNode, action);
|
|
updateActiveNode(documentState, nextNode, state2);
|
|
}
|
|
};
|
|
|
|
// src/stores/view/reducers/ui/navigate-active-node-history.ts
|
|
var navigateActiveNodeHistory = (documentState, state2, forward = false) => {
|
|
const activeIndex = state2.navigationHistory.state.activeIndex;
|
|
const newIndex = forward ? activeIndex + 1 : activeIndex - 1;
|
|
const newItem = state2.navigationHistory.items[newIndex];
|
|
if (newItem) {
|
|
state2.navigationHistory.state.activeIndex = newIndex;
|
|
updateNavigationState(state2.navigationHistory);
|
|
state2.navigationHistory = { ...state2.navigationHistory };
|
|
updateActiveNode(documentState, newItem, null);
|
|
state2.recentNodes.activeNode = newItem;
|
|
}
|
|
};
|
|
|
|
// src/stores/view/reducers/document/jump-to-node.ts
|
|
var jumpToNode = (documentViewState, state2, action) => {
|
|
const nextNode = findNextActiveNode(
|
|
action.payload.columns,
|
|
documentViewState.activeNode,
|
|
action
|
|
);
|
|
if (nextNode) {
|
|
updateSelectionState(documentViewState, nextNode, action);
|
|
updateActiveNode(documentViewState, nextNode, state2);
|
|
}
|
|
};
|
|
|
|
// src/stores/view/reducers/ui/helpers/remove-deleted-navigation-items.ts
|
|
var removeDeletedNavigationItems = (state2, content) => {
|
|
const items = [];
|
|
let previous = null;
|
|
for (const item of state2.navigationHistory.items) {
|
|
if (content.hasOwnProperty(item) && item !== previous) {
|
|
items.push(item);
|
|
previous = item;
|
|
}
|
|
}
|
|
state2.navigationHistory.items = items;
|
|
state2.navigationHistory.state.activeIndex = state2.navigationHistory.items.length - 1;
|
|
updateNavigationState(state2.navigationHistory);
|
|
state2.navigationHistory = {
|
|
...state2.navigationHistory
|
|
};
|
|
};
|
|
|
|
// src/stores/view/reducers/search/toggle-fuzzy-search.ts
|
|
var toggleFuzzySearch = (state2) => {
|
|
state2.search.fuzzySearch = !state2.search.fuzzySearch;
|
|
state2.search = { ...state2.search };
|
|
};
|
|
|
|
// src/lib/tree-utils/find/find-next-node.ts
|
|
var findNextNode = (sections, node, direction, hiddenNodes) => {
|
|
let sortedSections = sortSections(Object.keys(sections.section_id));
|
|
if (hiddenNodes) {
|
|
sortedSections = sortedSections.filter(
|
|
(section) => !hiddenNodes.has(sections.section_id[section])
|
|
);
|
|
}
|
|
const currentSection = sections.id_section[node];
|
|
const currentSectionIndex = sortedSections.findIndex(
|
|
(section) => currentSection === section
|
|
);
|
|
if (currentSectionIndex === -1)
|
|
return node;
|
|
const nextSectionIndex = currentSectionIndex + (direction === "back" ? -1 : 1);
|
|
const nextSection = sortedSections[nextSectionIndex];
|
|
return sections.section_id[nextSection] || node;
|
|
};
|
|
|
|
// src/stores/view/reducers/ui/navigate-active-node.ts
|
|
var navigateActiveNode = (documentState, state2, action) => {
|
|
const nextNode = findNextNode(
|
|
action.payload.sections,
|
|
documentState.activeNode,
|
|
action.payload.direction,
|
|
action.context.outlineMode ? state2.outline.hiddenNodes : null
|
|
);
|
|
if (nextNode && nextNode !== documentState.activeNode)
|
|
updateActiveNode(documentState, nextNode, state2);
|
|
};
|
|
|
|
// src/stores/view/reducers/pinned-cards/set-active-pinned-node.ts
|
|
var setActivePinnedNode = (documentState, state2, id2) => {
|
|
state2.activeNode = id2;
|
|
const activePinnedNodeIsBeingEdited = documentState.editing.activeNodeId === id2;
|
|
const editedNodeIsInSidebar = documentState.editing.isInSidebar;
|
|
if (!(activePinnedNodeIsBeingEdited && editedNodeIsInSidebar)) {
|
|
disableEditMode(documentState);
|
|
}
|
|
};
|
|
|
|
// src/stores/view/reducers/recent-nodes/set-active-recent-node.ts
|
|
var setActiveRecentNode = (documentState, state2, id2) => {
|
|
state2.activeNode = id2;
|
|
const activeNodeIsBeingEdited = documentState.editing.activeNodeId === id2;
|
|
const editedNodeIsInSidebar = documentState.editing.isInSidebar;
|
|
if (!(activeNodeIsBeingEdited && editedNodeIsInSidebar)) {
|
|
disableEditMode(documentState);
|
|
}
|
|
};
|
|
|
|
// src/stores/view/reducers/search/toggle-show-all-nodes.ts
|
|
var toggleShowAllNodes = (state2) => {
|
|
state2.search.showAllNodes = !state2.search.showAllNodes;
|
|
state2.search = { ...state2.search };
|
|
};
|
|
|
|
// src/stores/view/reducers/outline/helpers/collapse-node.ts
|
|
var collapseNode = (state2, columns, id2) => {
|
|
const children2 = getAllChildren(columns, id2);
|
|
state2.outline.collapsedParents.add(id2);
|
|
for (const child of children2) {
|
|
state2.outline.hiddenNodes.add(child);
|
|
}
|
|
};
|
|
|
|
// src/stores/view/reducers/outline/helpers/expand-node.ts
|
|
var expandNode = (state2, columns, id2) => {
|
|
state2.outline.collapsedParents.delete(id2);
|
|
const children2 = getAllChildren(columns, id2);
|
|
if (children2.length > 0) {
|
|
for (const child of children2) {
|
|
state2.outline.hiddenNodes.delete(child);
|
|
}
|
|
const childrenSet = new Set(children2);
|
|
const collapsedParents = Array.from(
|
|
state2.outline.collapsedParents
|
|
).filter((id3) => childrenSet.has(id3));
|
|
for (const collapsedParent of collapsedParents) {
|
|
const children3 = getAllChildren(columns, collapsedParent);
|
|
for (const child of children3) {
|
|
state2.outline.hiddenNodes.add(child);
|
|
}
|
|
}
|
|
}
|
|
};
|
|
|
|
// src/stores/view/reducers/outline/toggle-collapse-node.ts
|
|
var toggleCollapseNode = (state2, columns, id2) => {
|
|
const isCollapsed = state2.outline.collapsedParents.has(id2);
|
|
if (isCollapsed) {
|
|
expandNode(state2, columns, id2);
|
|
} else {
|
|
collapseNode(state2, columns, id2);
|
|
}
|
|
state2.outline = { ...state2.outline };
|
|
};
|
|
|
|
// src/stores/view/reducers/outline/expand-parents-of-active-node.ts
|
|
var expandParentsOfActiveNode = (state2, columns) => {
|
|
const parents = state2.document.activeBranch.sortedParentNodes;
|
|
for (const parent of parents) {
|
|
if (state2.outline.collapsedParents.has(parent)) {
|
|
expandNode(state2, columns, parent);
|
|
}
|
|
}
|
|
};
|
|
|
|
// src/stores/view/reducers/outline/refresh-collapsed-nodes.ts
|
|
var refreshCollapsedNodes = (state2, columns) => {
|
|
const collapsedParents = Array.from(state2.outline.collapsedParents);
|
|
state2.outline.collapsedParents.clear();
|
|
state2.outline.hiddenNodes.clear();
|
|
for (const id2 of collapsedParents) {
|
|
expandNode(state2, columns, id2);
|
|
collapseNode(state2, columns, id2);
|
|
}
|
|
expandParentsOfActiveNode(state2, columns);
|
|
state2.outline = { ...state2.outline };
|
|
};
|
|
|
|
// src/stores/view/reducers/outline/toggle-collapse-all-nodes.ts
|
|
var toggleCollapseAllNodes = (state2, columns) => {
|
|
const column = columns[0];
|
|
if (!column)
|
|
return;
|
|
const rootNode = column.groups[0].parentId;
|
|
const parents = traverseDown(columns, rootNode, true).filter(
|
|
(id2) => id2 !== rootNode
|
|
);
|
|
const hasCollapsedNodes = state2.outline.hiddenNodes.size > 0;
|
|
state2.outline.collapsedParents.clear();
|
|
state2.outline.hiddenNodes.clear();
|
|
if (hasCollapsedNodes) {
|
|
for (const id2 of parents) {
|
|
expandNode(state2, columns, id2);
|
|
}
|
|
} else {
|
|
for (const id2 of parents) {
|
|
collapseNode(state2, columns, id2);
|
|
}
|
|
}
|
|
state2.outline = { ...state2.outline };
|
|
};
|
|
|
|
// src/stores/view/view-reducer.ts
|
|
var updateDocumentState3 = (state2, action) => {
|
|
if (action.type === "view/set-active-node/mouse" || action.type === "view/set-active-node/mouse-silent" || action.type === "view/set-active-node/document" || action.type === "view/set-active-node/search") {
|
|
updateActiveNode(state2.document, action.payload.id, state2);
|
|
} else if (action.type === "DOCUMENT/NAVIGATE_USING_KEYBOARD") {
|
|
navigateUsingKeyboard(state2.document, state2, action);
|
|
} else if (action.type === "SEARCH/SET_QUERY") {
|
|
setSearchQuery(state2, action.payload.query);
|
|
} else if (action.type === "SEARCH/SET_RESULTS") {
|
|
setSearchResults(state2, action.payload.results);
|
|
} else if (action.type === "SEARCH/TOGGLE_INPUT") {
|
|
toggleSearchInput(state2);
|
|
} else if (action.type === "UI/TOGGLE_HISTORY_SIDEBAR") {
|
|
const showHistorySidebar = state2.ui.controls.showHistorySidebar;
|
|
state2.ui.controls = {
|
|
showHistorySidebar: !showHistorySidebar,
|
|
showHelpSidebar: false,
|
|
showSettingsSidebar: false,
|
|
showStyleRulesModal: false
|
|
};
|
|
} else if (action.type === "UI/TOGGLE_HELP_SIDEBAR") {
|
|
const showHelpSidebar = state2.ui.controls.showHelpSidebar;
|
|
state2.ui.controls = {
|
|
showHistorySidebar: false,
|
|
showHelpSidebar: !showHelpSidebar,
|
|
showSettingsSidebar: false,
|
|
showStyleRulesModal: false
|
|
};
|
|
} else if (action.type === "UI/TOGGLE_SETTINGS_SIDEBAR") {
|
|
const showSettingsSidebar = state2.ui.controls.showSettingsSidebar;
|
|
state2.ui.controls = {
|
|
showHistorySidebar: false,
|
|
showHelpSidebar: false,
|
|
showSettingsSidebar: !showSettingsSidebar,
|
|
showStyleRulesModal: false
|
|
};
|
|
} else if (action.type === "CLOSE_MODALS") {
|
|
state2.ui.controls = {
|
|
showHistorySidebar: false,
|
|
showHelpSidebar: action.payload?.closeAllModals ? false : state2.ui.controls.showHelpSidebar,
|
|
showSettingsSidebar: false,
|
|
showStyleRulesModal: false
|
|
};
|
|
} else if (action.type === "view/main/enable-edit") {
|
|
if (state2.document.activeNode !== action.payload.nodeId) {
|
|
updateActiveNode(state2.document, action.payload.nodeId, state2);
|
|
}
|
|
enableEditMode(state2.document, action.payload.nodeId);
|
|
} else if (action.type === "view/sidebar/enable-edit") {
|
|
if (action.context.activeSidebarTab === "pinned-cards") {
|
|
if (state2.pinnedNodes.activeNode !== action.payload.id) {
|
|
setActivePinnedNode(
|
|
state2.document,
|
|
state2.pinnedNodes,
|
|
action.payload.id
|
|
);
|
|
}
|
|
} else if (action.context.activeSidebarTab === "recent-cards") {
|
|
if (state2.recentNodes.activeNode !== action.payload.id) {
|
|
setActiveRecentNode(
|
|
state2.document,
|
|
state2.recentNodes,
|
|
action.payload.id
|
|
);
|
|
}
|
|
}
|
|
enableEditMode(state2.document, action.payload.id, true);
|
|
} else if (action.type === "view/confirmation/reset/disable-edit") {
|
|
resetPendingConfirmation(state2.document);
|
|
} else if (action.type === "view/confirmation/reset/delete-node") {
|
|
resetPendingConfirmation(state2.document);
|
|
} else if (action.type === "view/confirmation/confirm/delete-node") {
|
|
state2.document.pendingConfirmation = {
|
|
...state2.document.pendingConfirmation,
|
|
deleteNode: action.payload.includeSelection && state2.document.selectedNodes.size > 1 ? new Set(state2.document.selectedNodes) : /* @__PURE__ */ new Set([action.payload.id])
|
|
};
|
|
} else if (action.type === "view/confirmation/confirm/disable-edit") {
|
|
state2.document.pendingConfirmation = {
|
|
...state2.document.pendingConfirmation,
|
|
disableEdit: action.payload.id
|
|
};
|
|
} else if (action.type === "view/main/disable-edit" || action.type === "view/sidebar/disable-edit") {
|
|
disableEditMode(state2.document);
|
|
} else if (action.type === "SET_DRAG_STARTED") {
|
|
onDragStart(state2.document, action);
|
|
} else if (action.type === "DOCUMENT/SET_DRAG_ENDED") {
|
|
onDragEnd(state2.document);
|
|
} else if (action.type === "UPDATE_ACTIVE_BRANCH") {
|
|
updateActiveBranch(
|
|
state2.document,
|
|
action.payload.columns,
|
|
action.context.changeType
|
|
);
|
|
} else if (action.type === "NAVIGATION/NAVIGATE_FORWARD") {
|
|
navigateActiveNodeHistory(state2.document, state2, true);
|
|
} else if (action.type === "NAVIGATION/NAVIGATE_BACK") {
|
|
navigateActiveNodeHistory(state2.document, state2);
|
|
} else if (action.type === "DOCUMENT/JUMP_TO_NODE") {
|
|
jumpToNode(state2.document, state2, action);
|
|
} else if (action.type === "NAVIGATION/REMOVE_OBSOLETE") {
|
|
removeDeletedNavigationItems(state2, action.payload.content);
|
|
} else if (action.type === "SEARCH/TOGGLE_FUZZY_MODE") {
|
|
toggleFuzzySearch(state2);
|
|
} else if (action.type === "DOCUMENT/CLEAR_SELECTION") {
|
|
resetSelectionState(state2.document);
|
|
} else if (action.type === "NAVIGATION/SELECT_NEXT_NODE") {
|
|
navigateActiveNode(state2.document, state2, action);
|
|
} else if (action.type === "view/pinned-nodes/set-active-node") {
|
|
setActivePinnedNode(
|
|
state2.document,
|
|
state2.pinnedNodes,
|
|
action.payload.id
|
|
);
|
|
} else if (action.type === "view/recent-nodes/set-active-node") {
|
|
setActiveRecentNode(
|
|
state2.document,
|
|
state2.recentNodes,
|
|
action.payload.id
|
|
);
|
|
} else if (action.type === "search/toggle-show-all-nodes") {
|
|
toggleShowAllNodes(state2);
|
|
} else if (action.type === "view/modals/toggle-style-rules") {
|
|
const showStyleRulesModal = state2.ui.controls.showStyleRulesModal;
|
|
state2.ui.controls = {
|
|
showHistorySidebar: false,
|
|
showStyleRulesModal: !showStyleRulesModal,
|
|
showSettingsSidebar: false,
|
|
showHelpSidebar: false
|
|
};
|
|
} else if (action.type === "view/style-rules/update-results") {
|
|
if (!action.payload.results) {
|
|
state2.styleRules.nodeStyles = /* @__PURE__ */ new Map();
|
|
state2.styleRules.allMatches = /* @__PURE__ */ new Map();
|
|
} else {
|
|
state2.styleRules.nodeStyles = action.payload.results.nodeStyles;
|
|
state2.styleRules.allMatches = action.payload.results.allMatches;
|
|
}
|
|
} else if (action.type === "view/keyboard/shift/up") {
|
|
state2.keyboard.shift = false;
|
|
state2.keyboard = { ...state2.keyboard };
|
|
} else if (action.type === "view/keyboard/shift/down") {
|
|
state2.keyboard.shift = true;
|
|
state2.keyboard = { ...state2.keyboard };
|
|
} else if (action.type === "view/hotkeys/set-search-term") {
|
|
state2.hotkeys.searchTerm = action.payload.searchTerm.toLowerCase();
|
|
} else if (action.type === "view/hotkeys/update-conflicts") {
|
|
state2.hotkeys.conflictingHotkeys = action.payload.conflicts;
|
|
} else if (action.type === "view/outline/toggle-collapse-node") {
|
|
toggleCollapseNode(state2, action.payload.columns, action.payload.id);
|
|
} else if (action.type === "view/outline/refresh-collapsed-nodes") {
|
|
refreshCollapsedNodes(state2, action.payload.columns);
|
|
} else if (action.type === "view/outline/toggle-collapse-all") {
|
|
toggleCollapseAllNodes(state2, action.payload.columns);
|
|
} else if (action.type === "view/selection/set-selection") {
|
|
state2.document.selectedNodes = new Set(action.payload.ids);
|
|
} else if (action.type === "view/persisted-state/load-persisted-collapsed-parents") {
|
|
for (const id2 of action.payload.collapsedIds) {
|
|
collapseNode(state2, action.context.columns, id2);
|
|
}
|
|
expandParentsOfActiveNode(state2, action.context.columns);
|
|
state2.outline = { ...state2.outline };
|
|
}
|
|
};
|
|
var viewReducer = (store, action) => {
|
|
updateDocumentState3(store, action);
|
|
return store;
|
|
};
|
|
|
|
// src/stores/view/subscriptions/actions/update-active-branch.ts
|
|
var updateActiveBranch2 = (viewStore, documentState, changeType) => {
|
|
viewStore.dispatch({
|
|
type: "UPDATE_ACTIVE_BRANCH",
|
|
payload: {
|
|
columns: documentState.document.columns
|
|
},
|
|
context: {
|
|
changeType
|
|
}
|
|
});
|
|
};
|
|
|
|
// src/stores/view/subscriptions/helpers/is-empty-document.ts
|
|
var isEmptyDocument = (content) => {
|
|
const values = Object.values(content);
|
|
return values.length === 1 && values[0].content === "";
|
|
};
|
|
|
|
// src/stores/view/subscriptions/actions/enable-edit-mode.ts
|
|
var enableEditMode2 = (viewStore, documentState) => {
|
|
viewStore.dispatch({
|
|
type: "view/main/enable-edit",
|
|
payload: {
|
|
nodeId: getIdOfSection(
|
|
documentState.sections,
|
|
documentState.history.context.activeSection
|
|
)
|
|
}
|
|
});
|
|
};
|
|
|
|
// src/stores/view/subscriptions/effects/css-variables/apply-font-size.ts
|
|
var applyFontSize = (view, fontSize) => {
|
|
if (fontSize)
|
|
view.containerEl.style.setProperty("--font-text-size", `${fontSize}px`);
|
|
else
|
|
view.containerEl.style.removeProperty("--font-text-size");
|
|
};
|
|
|
|
// src/stores/view/subscriptions/effects/css-variables/helpers/css-variables.ts
|
|
var cssVariables = {
|
|
colors: {
|
|
activeBranchBg: "--background-active-parent",
|
|
activeBranchColor: "--color-active-parent",
|
|
containerBg: "--background-container"
|
|
},
|
|
cardWidth: "--node-width",
|
|
cardIndentationWidth: "--node-indentation-width",
|
|
nodeGap: "--node-gap-setting",
|
|
minCardHeight: "--min-node-height",
|
|
zoomLevel: "--zoom-level",
|
|
viewWidth: "--view-width",
|
|
viewHeight: "--view-height",
|
|
inactiveCardOpacity: "--inactive-card-opacity"
|
|
};
|
|
|
|
// src/stores/view/subscriptions/effects/css-variables/apply-css-color.ts
|
|
var applyCssColor = (view, name) => {
|
|
const target = view.contentEl;
|
|
const settings = view.plugin.settings.getValue();
|
|
const color = settings.view.theme[name];
|
|
if (color) {
|
|
target.style.setProperty(cssVariables.colors[name], color);
|
|
} else {
|
|
target.style.removeProperty(cssVariables.colors[name]);
|
|
}
|
|
};
|
|
|
|
// src/stores/view/subscriptions/effects/css-variables/apply-card-width.ts
|
|
var BORDER_WIDTH = 5;
|
|
var applyCardWidth = (view, width) => {
|
|
invariant(width);
|
|
view.containerEl.style.setProperty(
|
|
cssVariables.cardWidth,
|
|
`${width - BORDER_WIDTH}px`
|
|
);
|
|
};
|
|
|
|
// src/stores/view/subscriptions/effects/css-variables/apply-zoom-level.ts
|
|
var applyZoomLevel = (view, value) => {
|
|
if (typeof value !== "number")
|
|
return;
|
|
view.containerEl.style.setProperty(cssVariables.zoomLevel, `${value}`);
|
|
};
|
|
|
|
// src/stores/view/subscriptions/helpers/maybe-get-id-of-section.ts
|
|
var maybeGetIdOfSection = (sections, section) => {
|
|
return sections.section_id[section] || null;
|
|
};
|
|
|
|
// src/stores/view/subscriptions/actions/view/set-initial-active-node.ts
|
|
var setInitialActiveNode = (view) => {
|
|
let id2 = null;
|
|
const viewStore = view.viewStore;
|
|
const documentState = view.documentStore.getValue();
|
|
const settings = view.plugin.settings.getValue();
|
|
const path = view.file.path;
|
|
const persistedSection = settings.documents[path]?.activeSection;
|
|
const sections = documentState.sections;
|
|
if (persistedSection) {
|
|
id2 = maybeGetIdOfSection(sections, persistedSection);
|
|
}
|
|
const mostRecentActiveSection = documentState.history.context.activeSection;
|
|
if (!id2 && mostRecentActiveSection) {
|
|
id2 = maybeGetIdOfSection(sections, mostRecentActiveSection);
|
|
}
|
|
if (!id2)
|
|
return;
|
|
viewStore.dispatch({
|
|
type: "view/set-active-node/document",
|
|
payload: {
|
|
id: id2
|
|
}
|
|
});
|
|
};
|
|
|
|
// src/stores/view/subscriptions/effects/mark-unresolved-links/mark-unresolved-links.ts
|
|
var import_obsidian30 = require("obsidian");
|
|
|
|
// src/stores/view/subscriptions/effects/mark-unresolved-links/helpers/filter-non-existent-links.ts
|
|
var filterNonExistentLinks = (plugin, links, filePath) => {
|
|
return links.map((link) => link.link.split("#")[0]).filter(
|
|
(link) => !plugin.app.metadataCache.getFirstLinkpathDest(link, filePath)
|
|
);
|
|
};
|
|
|
|
// src/stores/view/subscriptions/effects/mark-unresolved-links/helpers/get-non-existent-links.ts
|
|
var getNonExistentLinks = (plugin, file) => {
|
|
const cache = plugin.app.metadataCache.getFileCache(file);
|
|
if (!cache?.links) {
|
|
return /* @__PURE__ */ new Set();
|
|
}
|
|
const nonExistentLinks = filterNonExistentLinks(
|
|
plugin,
|
|
cache.links,
|
|
file.path
|
|
);
|
|
return new Set(nonExistentLinks);
|
|
};
|
|
|
|
// src/stores/view/subscriptions/effects/mark-unresolved-links/helpers/get-file-link-elements.ts
|
|
var getFileLinkElements = (view) => {
|
|
return Array.from(
|
|
view.contentEl.querySelectorAll(".internal-link")
|
|
);
|
|
};
|
|
|
|
// src/stores/view/subscriptions/effects/mark-unresolved-links/mark-unresolved-links.ts
|
|
var markUnresolvedLinks = (view) => {
|
|
const file = view.file;
|
|
if (!file)
|
|
return;
|
|
const nonExistentLinks = getNonExistentLinks(view.plugin, file);
|
|
const links = getFileLinkElements(view);
|
|
for (const link of links) {
|
|
const isUnresolved = link.dataset.href && nonExistentLinks.has(link.dataset.href.split("#")[0]);
|
|
const hasUnresolvedClass = link.hasClass("is-unresolved" /* unresolved */);
|
|
if (isUnresolved) {
|
|
if (!hasUnresolvedClass) {
|
|
link.addClass("is-unresolved" /* unresolved */);
|
|
}
|
|
} else if (hasUnresolvedClass) {
|
|
link.removeClass("is-unresolved" /* unresolved */);
|
|
}
|
|
}
|
|
};
|
|
var debounced = (0, import_obsidian30.debounce)(markUnresolvedLinks, 100);
|
|
|
|
// src/stores/view/subscriptions/event-listeners/attach-hover-preview-listener.ts
|
|
var getLink = (el) => {
|
|
return el.getAttr("data-href") || el.getAttr("href");
|
|
};
|
|
var attachHoverPreviewListener = (view) => {
|
|
view.plugin.registerDomEvent(view.contentEl, "mouseover", (evt) => {
|
|
if (!(isMacLike ? evt.metaKey : evt.ctrlKey))
|
|
return;
|
|
const targetEl = evt.target;
|
|
if (targetEl.tagName !== "A")
|
|
return;
|
|
if (!targetEl.hasClass("internal-link"))
|
|
return;
|
|
const href = getLink(targetEl);
|
|
if (!href)
|
|
return;
|
|
view.plugin.app.workspace.trigger("hover-link", {
|
|
event: evt,
|
|
source: "preview",
|
|
hoverParent: view,
|
|
targetEl,
|
|
linktext: href,
|
|
sourcePath: view.file.path
|
|
});
|
|
});
|
|
};
|
|
|
|
// src/stores/view/subscriptions/event-listeners/attach-wheel-scroll-listener.ts
|
|
var attachWheelScrollListener = (view) => {
|
|
view.plugin.registerDomEvent(view.contentEl, "wheel", (evt) => {
|
|
if (!evt.altKey)
|
|
return;
|
|
if (evt.deltaY === 0)
|
|
return;
|
|
const target = evt.target;
|
|
const targetIsACard = target.hasClass("lng-prev") || target.closest(".lng-prev");
|
|
if (!targetIsACard)
|
|
return;
|
|
const column = target.closest(".column");
|
|
if (!column)
|
|
return;
|
|
evt.preventDefault();
|
|
evt.stopPropagation();
|
|
requestAnimationFrame(() => {
|
|
column.scrollBy({
|
|
top: evt.deltaY * 2.5,
|
|
behavior: "smooth"
|
|
});
|
|
});
|
|
});
|
|
};
|
|
|
|
// src/stores/view/subscriptions/effects/css-variables/apply-cards-gap.ts
|
|
var applyCardsGap = (view, value) => {
|
|
if (typeof value !== "number")
|
|
return;
|
|
view.containerEl.style.setProperty(cssVariables.nodeGap, `${value}px`);
|
|
};
|
|
|
|
// src/stores/view/subscriptions/actions/set-active-pinned-node.ts
|
|
var setActivePinnedNode2 = (view, id2) => {
|
|
view.viewStore.dispatch({
|
|
type: "view/pinned-nodes/set-active-node",
|
|
payload: { id: id2 }
|
|
});
|
|
};
|
|
|
|
// src/stores/view/subscriptions/actions/load-pinned-nodes-to-document.ts
|
|
var loadPinnedNodesToDocument = (view) => {
|
|
const documentStore = view.documentStore;
|
|
const documentState = documentStore.getValue();
|
|
const settingsStore = view.plugin.settings;
|
|
const settingsState = settingsStore.getValue();
|
|
const persistedDocuments = settingsState.documents;
|
|
const persistedDocument = persistedDocuments[documentState.file.path];
|
|
if (!persistedDocument?.pinnedSections)
|
|
return;
|
|
if (persistedDocument.pinnedSections.sections.length === 0) {
|
|
const activeLeftSideTab = settingsState.view.leftSidebarActiveTab;
|
|
const showLeftSidebarStore = settingsState.view.showLeftSidebar;
|
|
if (showLeftSidebarStore && activeLeftSideTab === "pinned-cards") {
|
|
settingsStore.dispatch({ type: "view/left-sidebar/toggle" });
|
|
}
|
|
return;
|
|
}
|
|
if (documentState.pinnedNodes.Ids.length === 0) {
|
|
documentStore.dispatch({
|
|
type: "document/pinned-nodes/load-from-settings",
|
|
payload: {
|
|
sections: persistedDocument.pinnedSections.sections
|
|
}
|
|
});
|
|
}
|
|
const activeSection = persistedDocument.pinnedSections.activeSection;
|
|
if (activeSection) {
|
|
const id2 = documentState.sections.section_id[activeSection];
|
|
if (id2) {
|
|
setActivePinnedNode2(view, id2);
|
|
}
|
|
}
|
|
};
|
|
|
|
// src/stores/view/subscriptions/attach-close-modals-listener.ts
|
|
var attachCloseModalsListener = (view) => {
|
|
const listener = (e) => {
|
|
const target = e.target;
|
|
const isInsideModal = target.closest(".lineage-modal");
|
|
const isInsideControlsBar = !isInsideModal && target.closest(".controls-container");
|
|
if (e.button === 0 && !(isInsideModal || isInsideControlsBar)) {
|
|
view.viewStore.dispatch({ type: "CLOSE_MODALS" });
|
|
view.contentEl.removeEventListener("click", listener);
|
|
}
|
|
};
|
|
const controls = uiControlsStore(view);
|
|
const unsub = controls.subscribe((controls2) => {
|
|
if (
|
|
/*controls.showHelpSidebar ||*/
|
|
controls2.showHistorySidebar || controls2.showSettingsSidebar
|
|
) {
|
|
setTimeout(() => {
|
|
view.contentEl.addEventListener("click", listener);
|
|
}, 0);
|
|
}
|
|
});
|
|
return () => {
|
|
view.contentEl.removeEventListener("click", listener);
|
|
unsub();
|
|
};
|
|
};
|
|
|
|
// src/stores/view/subscriptions/effects/css-variables/apply-card-indentation-width.ts
|
|
var applyCardIndentationWidth = (view, width) => {
|
|
if (typeof width !== "number")
|
|
return;
|
|
view.containerEl.style.setProperty(
|
|
cssVariables.cardIndentationWidth,
|
|
`${width}px`
|
|
);
|
|
};
|
|
|
|
// src/stores/view/subscriptions/effects/checkbox-listener/helpers/update-checkbox/find-task-line-index.ts
|
|
var findTaskLineIndex = (lines, taskIndex) => {
|
|
let currentTaskIndex = -1;
|
|
return lines.findIndex((line) => {
|
|
if (line.match(/^\s*[-*+]\s*\[[ x]\]/i)) {
|
|
currentTaskIndex++;
|
|
return currentTaskIndex === taskIndex;
|
|
}
|
|
return false;
|
|
});
|
|
};
|
|
|
|
// src/stores/view/subscriptions/effects/checkbox-listener/helpers/update-checkbox/update-task-line.ts
|
|
var updateTaskLine = (line, checked) => {
|
|
return line.replace(
|
|
/^([-*+]\s*\[)[ x](\].*)$/i,
|
|
`$1${checked ? "x" : " "}$2`
|
|
);
|
|
};
|
|
|
|
// src/stores/view/subscriptions/effects/checkbox-listener/helpers/update-checkbox/update-checkbox.ts
|
|
var updateCheckbox = (taskIndex, content, checked) => {
|
|
const lines = content.split("\n");
|
|
const taskLineIndex = findTaskLineIndex(lines, taskIndex);
|
|
if (taskLineIndex === -1) {
|
|
return;
|
|
}
|
|
const task = lines[taskLineIndex];
|
|
lines[taskLineIndex] = updateTaskLine(task, checked);
|
|
return {
|
|
task: task.replace(/^\s*([-*+]\s*\[)[ x](\]) /i, ""),
|
|
content: lines.join("\n")
|
|
};
|
|
};
|
|
|
|
// src/stores/view/subscriptions/effects/checkbox-listener/attach-checkbox-listener.ts
|
|
var import_obsidian31 = require("obsidian");
|
|
var handleCheckboxChange = (event, view) => {
|
|
const checkbox = event.target;
|
|
if (!checkbox?.classList.contains("task-list-item-checkbox")) {
|
|
return;
|
|
}
|
|
const listItem = checkbox.closest(".task-list-item");
|
|
const card = checkbox.closest(".lineage-card");
|
|
if (!listItem || !card) {
|
|
return;
|
|
}
|
|
const documentState = view.documentStore.getValue();
|
|
const cardId = card.id;
|
|
const existingContent = documentState.document.content[cardId];
|
|
if (!cardId || !existingContent) {
|
|
return;
|
|
}
|
|
const allItems = Array.from(
|
|
card.querySelectorAll(".lng-prev .task-list-item")
|
|
);
|
|
const taskIndex = allItems.indexOf(listItem);
|
|
const content = updateCheckbox(
|
|
taskIndex,
|
|
existingContent.content,
|
|
checkbox.checked
|
|
);
|
|
if (content) {
|
|
view.documentStore.dispatch({
|
|
type: "DOCUMENT/SET_NODE_CONTENT",
|
|
payload: { nodeId: cardId, content: content.content },
|
|
context: { isInSidebar: !!card.closest(".sidebar") }
|
|
});
|
|
new import_obsidian31.Notice(
|
|
`"${content.task}" has been ${checkbox.checked ? "checked" : "unchecked"}`
|
|
);
|
|
}
|
|
};
|
|
var attachCheckboxListener = (view) => {
|
|
const container = view.contentEl;
|
|
invariant(container);
|
|
const listener = (event) => {
|
|
handleCheckboxChange(event, view);
|
|
};
|
|
container.addEventListener("change", listener);
|
|
return () => {
|
|
container.removeEventListener("change", listener);
|
|
};
|
|
};
|
|
|
|
// src/stores/view/subscriptions/effects/css-variables/apply-view-size.ts
|
|
var PADDING_H = 8 * 4 + 34 * 2;
|
|
var PADDING_V = 8 * 2;
|
|
var applyViewSize = (view) => {
|
|
const viewElement = view.contentEl.querySelector(
|
|
".lineage-main"
|
|
);
|
|
if (!viewElement)
|
|
return;
|
|
view.containerEl.style.setProperty(
|
|
cssVariables.viewWidth,
|
|
`${viewElement.innerWidth - PADDING_H}px`
|
|
);
|
|
view.containerEl.style.setProperty(
|
|
cssVariables.viewHeight,
|
|
`${viewElement.innerHeight - PADDING_V}px`
|
|
);
|
|
};
|
|
|
|
// src/stores/view/subscriptions/effects/view-size/watch-view-size.ts
|
|
var watchViewSize = (view) => {
|
|
const element2 = view.contentEl.querySelector(".lineage-main");
|
|
invariant(element2);
|
|
const observer = new ResizeObserver(() => {
|
|
applyViewSize(view);
|
|
});
|
|
observer.observe(element2);
|
|
return () => {
|
|
observer.disconnect();
|
|
};
|
|
};
|
|
|
|
// src/stores/view/subscriptions/effects/css-variables/apply-inactive-node-opacity.ts
|
|
var applyInactiveNodeOpacity = (view, value) => {
|
|
if (typeof value !== "number")
|
|
return;
|
|
view.containerEl.style.setProperty(
|
|
cssVariables.inactiveCardOpacity,
|
|
`${value / 100}`
|
|
);
|
|
};
|
|
|
|
// src/stores/view/subscriptions/actions/view/load-collapsed-sections-from-settings.ts
|
|
var loadCollapsedSectionsFromSettings = (view) => {
|
|
const settings = view.plugin.settings.getValue();
|
|
const path = view.file.path;
|
|
const collapsedSections = settings.documents[path]?.outline?.collapsedSections;
|
|
if (!collapsedSections)
|
|
return;
|
|
const viewStore = view.viewStore;
|
|
const documentState = view.documentStore.getValue();
|
|
const collapsedIds = collapsedSections.map((section) => {
|
|
return documentState.sections.section_id[section];
|
|
}).filter((x) => x);
|
|
if (collapsedIds.length > 0) {
|
|
viewStore.dispatch({
|
|
type: "view/persisted-state/load-persisted-collapsed-parents",
|
|
payload: {
|
|
collapsedIds
|
|
},
|
|
context: {
|
|
columns: documentState.document.columns
|
|
}
|
|
});
|
|
}
|
|
};
|
|
|
|
// src/stores/view/subscriptions/on-view-mount.ts
|
|
var applySettingsToView = (view) => {
|
|
const state2 = view.plugin.settings.getValue();
|
|
applyFontSize(view, state2.view.fontSize);
|
|
applyInactiveNodeOpacity(view, state2.view.theme.inactiveNodeOpacity);
|
|
applyCssColor(view, "containerBg");
|
|
applyCssColor(view, "activeBranchBg");
|
|
applyCssColor(view, "activeBranchColor");
|
|
applyCardWidth(view, state2.view.cardWidth);
|
|
applyCardIndentationWidth(view, state2.view.nodeIndentationWidth);
|
|
applyCardsGap(view, state2.view.cardsGap);
|
|
if (!view.container)
|
|
return;
|
|
applyZoomLevel(view, state2.view.zoomLevel);
|
|
attachCheckboxListener(view);
|
|
};
|
|
var onViewMount = (view) => {
|
|
const subscriptions = /* @__PURE__ */ new Set();
|
|
const documentStore = view.documentStore;
|
|
const documentState = documentStore.getValue();
|
|
const viewStore = view.viewStore;
|
|
if (!view.file)
|
|
return subscriptions;
|
|
setInitialActiveNode(view);
|
|
loadCollapsedSectionsFromSettings(view);
|
|
updateActiveBranch2(viewStore, documentState, "none");
|
|
if (view.isActive && isEmptyDocument(documentState.document.content)) {
|
|
enableEditMode2(viewStore, documentState);
|
|
}
|
|
view.plugin.statusBar.updateAll(view);
|
|
if (view.isActive)
|
|
focusContainer(view);
|
|
loadPinnedNodesToDocument(view);
|
|
debounced(view);
|
|
applySettingsToView(view);
|
|
attachHoverPreviewListener(view);
|
|
attachWheelScrollListener(view);
|
|
documentStore.dispatch({ type: "META/REFRESH_GROUP_PARENT_IDS" });
|
|
attachCloseModalsListener(view);
|
|
view.rulesProcessor.onRulesUpdate();
|
|
view.zoomFactor = view.plugin.settings.getValue().view.zoomLevel;
|
|
view.alignBranch.align({ type: "view/life-cycle/mount" });
|
|
subscriptions.add(watchViewSize(view));
|
|
return subscriptions;
|
|
};
|
|
|
|
// src/stores/view/helpers/get-view-event-type.ts
|
|
var navigationEvents = /* @__PURE__ */ new Set([
|
|
"NAVIGATION/NAVIGATE_BACK",
|
|
"NAVIGATION/NAVIGATE_FORWARD",
|
|
"NAVIGATION/SELECT_NEXT_NODE"
|
|
]);
|
|
var searchEvents = /* @__PURE__ */ new Set([
|
|
"SEARCH/SET_QUERY",
|
|
"SEARCH/SET_RESULTS",
|
|
"SEARCH/TOGGLE_INPUT"
|
|
]);
|
|
var stateEvents = /* @__PURE__ */ new Set([
|
|
"view/set-active-node/document",
|
|
"view/set-active-node/mouse",
|
|
"view/set-active-node/mouse-silent",
|
|
"view/set-active-node/search",
|
|
"DOCUMENT/NAVIGATE_USING_KEYBOARD",
|
|
"DOCUMENT/JUMP_TO_NODE"
|
|
]);
|
|
var editMainSplitEvents = /* @__PURE__ */ new Set([
|
|
"view/main/enable-edit",
|
|
"view/main/disable-edit"
|
|
]);
|
|
var editSidebarEvents = /* @__PURE__ */ new Set([
|
|
"view/sidebar/enable-edit",
|
|
"view/sidebar/disable-edit"
|
|
]);
|
|
var cachedResults2 = {};
|
|
var getViewEventType = (type) => {
|
|
if (cachedResults2[type]) {
|
|
return cachedResults2[type];
|
|
}
|
|
let result = null;
|
|
if (navigationEvents.has(type))
|
|
result = { activeNodeHistory: true };
|
|
else if (stateEvents.has(type))
|
|
result = { activeNode: true };
|
|
else if (searchEvents.has(type))
|
|
result = { search: true };
|
|
else if (editMainSplitEvents.has(type))
|
|
result = { editMainSplit: true };
|
|
else if (editSidebarEvents.has(type))
|
|
result = { editSidebar: true };
|
|
if (!result)
|
|
result = {};
|
|
cachedResults2[type] = result;
|
|
return result;
|
|
};
|
|
|
|
// src/stores/view/subscriptions/actions/clear-selected-nodes.ts
|
|
var clearSelectedNodes = (view) => {
|
|
view.viewStore.dispatch({ type: "DOCUMENT/CLEAR_SELECTION" });
|
|
};
|
|
|
|
// src/stores/view/subscriptions/actions/maybe-clear-selection.ts
|
|
var maybeClearSelection = (view, action) => {
|
|
const selectedNodes = view.viewStore.getValue().document.selectedNodes;
|
|
if (selectedNodes.size > 1) {
|
|
const selectedNodeIsWithinSelection = action.type.startsWith("view/set-active-node") && // @ts-ignore
|
|
selectedNodes.has(action.payload.id);
|
|
if (!selectedNodeIsWithinSelection) {
|
|
clearSelectedNodes(view);
|
|
}
|
|
}
|
|
};
|
|
|
|
// src/stores/view/subscriptions/actions/update-search-results.ts
|
|
var updateActiveNodeAfterSearch = (view, results) => {
|
|
const shouldUpdateActiveNode = results.length > 0 && !results.find(
|
|
(r) => r.item.id === view.viewStore.getValue().document.activeNode
|
|
);
|
|
if (shouldUpdateActiveNode) {
|
|
view.viewStore.dispatch({
|
|
type: "view/set-active-node/search",
|
|
payload: {
|
|
id: results[0].item.id
|
|
}
|
|
});
|
|
}
|
|
};
|
|
var updateSearchResults = (view) => {
|
|
const viewState = view.viewStore.getValue();
|
|
const query = viewState.search.query;
|
|
if (!query)
|
|
return;
|
|
const search2 = view.documentSearch.search(query);
|
|
const results = search2.map((r) => r.item.id);
|
|
view.viewStore.dispatch({
|
|
type: "SEARCH/SET_RESULTS",
|
|
payload: {
|
|
results
|
|
}
|
|
});
|
|
const newSearchResults = Array.from(results).sort().join("");
|
|
const previousSearchResults = Array.from(viewState.search.results).sort().join("");
|
|
if (previousSearchResults !== newSearchResults) {
|
|
updateActiveNodeAfterSearch(view, search2);
|
|
}
|
|
};
|
|
|
|
// src/stores/view/subscriptions/actions/persist-active-node-in-plugin-settings.ts
|
|
var state = {};
|
|
var persistActiveNodeInPluginSettings = (view) => {
|
|
if (!view.file)
|
|
return;
|
|
const documentState = view.documentStore.getValue();
|
|
const viewState = view.viewStore.getValue();
|
|
const sectionNumber = getSectionOfId(
|
|
documentState.sections,
|
|
viewState.document.activeNode
|
|
);
|
|
const path = view.file?.path;
|
|
if (state[path] === sectionNumber)
|
|
return;
|
|
state[path] = sectionNumber;
|
|
view.plugin.settings.dispatch({
|
|
type: "settings/document/persist-active-section",
|
|
payload: {
|
|
sectionNumber,
|
|
path
|
|
}
|
|
});
|
|
};
|
|
|
|
// src/stores/view/subscriptions/actions/persist-active-pinned-node.ts
|
|
var persistActivePinnedNode = (view) => {
|
|
const documentState = view.documentStore.getValue();
|
|
if (!documentState.file.path)
|
|
return;
|
|
const sections = documentState.sections;
|
|
const viewState = view.viewStore.getValue();
|
|
const section = sections.id_section[viewState.pinnedNodes.activeNode];
|
|
view.plugin.settings.dispatch({
|
|
type: "settings/pinned-nodes/persist-active-node",
|
|
payload: {
|
|
filePath: documentState.file.path,
|
|
section
|
|
}
|
|
});
|
|
};
|
|
|
|
// src/stores/view/subscriptions/effects/show-search-results-in-minimap.ts
|
|
var showSearchResultsInMinimap = (view) => {
|
|
const viewStore = view.viewStore;
|
|
const viewState = viewStore.getValue();
|
|
const settingsStore = view.plugin.settings;
|
|
const settingsState = settingsStore.getValue();
|
|
if (viewState.search.showInput) {
|
|
if (!settingsState.view.showMinimap) {
|
|
if (viewState.search.results.size > 0) {
|
|
settingsStore.dispatch({ type: "VIEW/TOGGLE_MINIMAP" });
|
|
view.documentSearch.searchTriggeredMinimap = true;
|
|
}
|
|
}
|
|
} else if (view.documentSearch.searchTriggeredMinimap) {
|
|
settingsStore.dispatch({ type: "VIEW/TOGGLE_MINIMAP" });
|
|
view.documentSearch.searchTriggeredMinimap = false;
|
|
}
|
|
};
|
|
|
|
// src/obsidian/helpers/get-used-hotkeys.ts
|
|
var getUsedHotkeys = (plugin) => {
|
|
const app = plugin.app;
|
|
const conflicting = /* @__PURE__ */ new Map();
|
|
const allCommands = {
|
|
...app.commands.commands,
|
|
...app.commands.editorCommands
|
|
};
|
|
const customHotkeys = Object.fromEntries(
|
|
Object.entries(app.hotkeyManager.customKeys).map(
|
|
([name, hotkeys]) => [
|
|
name,
|
|
{ hotkeys, name: allCommands[name]?.name || name }
|
|
]
|
|
)
|
|
);
|
|
const commands = {
|
|
...allCommands,
|
|
...customHotkeys
|
|
};
|
|
for (const command of Object.values(commands)) {
|
|
if (command.hotkeys?.length) {
|
|
for (const hotkey of command.hotkeys) {
|
|
const hotkey_string = hotkeyToString(hotkey);
|
|
conflicting.set(hotkey_string, command.name);
|
|
}
|
|
}
|
|
}
|
|
return conflicting;
|
|
};
|
|
|
|
// src/stores/view/subscriptions/actions/settings/persist-collapsed-sections.ts
|
|
var persistCollapsedSections = (view) => {
|
|
const viewState = view.viewStore.getValue();
|
|
const documentState = view.documentStore.getValue();
|
|
const collapsedParents = Array.from(viewState.outline.collapsedParents);
|
|
const collapsedSections = collapsedParents.map((id2) => {
|
|
return documentState.sections.id_section[id2];
|
|
}).filter((x) => x);
|
|
view.plugin.settings.dispatch({
|
|
type: "settings/document/persist-collapsed-sections",
|
|
payload: {
|
|
path: view.file.path,
|
|
sections: collapsedSections
|
|
}
|
|
});
|
|
};
|
|
|
|
// src/stores/view/subscriptions/on-view-state-update.ts
|
|
var onViewStateUpdate = (view, action, localState) => {
|
|
const documentStore = view.documentStore;
|
|
const documentState = documentStore.getValue();
|
|
const viewStore = view.viewStore;
|
|
const viewState = viewStore.getValue();
|
|
const container = view.container;
|
|
const type = action.type;
|
|
const e = getViewEventType(
|
|
type
|
|
);
|
|
const activeNodeChange = e.activeNode || e.activeNodeHistory;
|
|
const activeNodeHasChanged = localState.previousActiveNode !== viewState.document.activeNode;
|
|
if (activeNodeHasChanged) {
|
|
localState.previousActiveNode = viewState.document.activeNode;
|
|
}
|
|
if (activeNodeChange && activeNodeHasChanged) {
|
|
updateActiveBranch2(viewStore, documentState, "none");
|
|
persistActiveNodeInPluginSettings(view);
|
|
view.plugin.statusBar.updateProgressIndicatorAndChildCount(view);
|
|
}
|
|
if (activeNodeChange) {
|
|
if (view.minimapStore) {
|
|
view.minimapStore.dispatch({
|
|
type: "minimap/set-active-node",
|
|
payload: {
|
|
id: viewState.document.activeNode
|
|
}
|
|
});
|
|
}
|
|
}
|
|
if (activeNodeChange && activeNodeHasChanged && type !== "DOCUMENT/NAVIGATE_USING_KEYBOARD" && type !== "DOCUMENT/JUMP_TO_NODE") {
|
|
maybeClearSelection(view, action);
|
|
}
|
|
if (action.type === "SEARCH/SET_QUERY") {
|
|
updateSearchResults(view);
|
|
}
|
|
if (activeNodeChange || e.search || e.editMainSplit) {
|
|
view.alignBranch.align(action);
|
|
}
|
|
if (!container || !view.isViewOfFile)
|
|
return;
|
|
if (type === "SEARCH/TOGGLE_FUZZY_MODE") {
|
|
view.documentSearch.resetIndex();
|
|
}
|
|
if (action.type === "view/main/disable-edit" || action.type === "view/sidebar/disable-edit" || action.type === "NAVIGATION/NAVIGATE_FORWARD" || action.type === "NAVIGATION/NAVIGATE_BACK") {
|
|
focusContainer(view);
|
|
}
|
|
if (action.type === "SEARCH/TOGGLE_INPUT") {
|
|
if (!viewState.search.showInput) {
|
|
focusContainer(view);
|
|
}
|
|
}
|
|
if (action.type === "SEARCH/SET_RESULTS" || action.type === "SEARCH/TOGGLE_INPUT" || action.type === "SEARCH/SET_QUERY") {
|
|
showSearchResultsInMinimap(view);
|
|
}
|
|
if (type === "view/pinned-nodes/set-active-node") {
|
|
persistActivePinnedNode(view);
|
|
}
|
|
if (action.type === "UI/TOGGLE_HELP_SIDEBAR") {
|
|
if (viewState.ui.controls.showHelpSidebar) {
|
|
view.viewStore.dispatch({
|
|
type: "view/hotkeys/update-conflicts",
|
|
payload: {
|
|
conflicts: getUsedHotkeys(view.plugin)
|
|
}
|
|
});
|
|
}
|
|
}
|
|
if (action.type === "view/outline/toggle-collapse-all" || action.type === "view/outline/toggle-collapse-node" || action.type === "view/outline/refresh-collapsed-nodes") {
|
|
persistCollapsedSections(view);
|
|
}
|
|
};
|
|
|
|
// src/stores/view/subscriptions/actions/set-active-node.ts
|
|
var setActiveNode = (view, action) => {
|
|
const documentState = view.documentStore.getValue();
|
|
const viewState = view.viewStore.getValue();
|
|
const activeNodeOfView = viewState.document.activeNode;
|
|
const id_section = documentState.sections.id_section;
|
|
const section_id = documentState.sections.section_id;
|
|
const activeSectionOfView = id_section[activeNodeOfView];
|
|
const activeNodeExists = !!activeSectionOfView;
|
|
let newActiveSection = documentState.history.context.activeSection;
|
|
let shouldSetActiveNode = true;
|
|
if (activeNodeExists) {
|
|
if (action.type === "HISTORY/APPLY_PREVIOUS_SNAPSHOT") {
|
|
const state2 = documentState.history.state;
|
|
const previousSnapshot = documentState.history.items[state2.activeIndex + 1];
|
|
const affectedSection = previousSnapshot.context.affectedSection;
|
|
if (section_id[affectedSection]) {
|
|
newActiveSection = affectedSection;
|
|
}
|
|
} else if (view.isViewOfFile && (action.type === "DOCUMENT/DROP_NODE" || action.type === "DOCUMENT/MOVE_NODE")) {
|
|
shouldSetActiveNode = false;
|
|
} else if (!view.isActive) {
|
|
shouldSetActiveNode = false;
|
|
}
|
|
}
|
|
if (shouldSetActiveNode) {
|
|
view.viewStore.dispatch({
|
|
type: "view/set-active-node/document",
|
|
payload: {
|
|
id: getIdOfSection(documentState.sections, newActiveSection)
|
|
}
|
|
});
|
|
}
|
|
};
|
|
|
|
// src/stores/view/subscriptions/actions/remove-obsolete-navigation-items.ts
|
|
var removeObsoleteNavigationItems = (viewStore, documentState) => {
|
|
viewStore.dispatch({
|
|
type: "NAVIGATION/REMOVE_OBSOLETE",
|
|
payload: {
|
|
content: documentState.document.content
|
|
}
|
|
});
|
|
};
|
|
|
|
// src/stores/view/subscriptions/actions/persist-pinned-nodes.ts
|
|
var persistPinnedNodes = (view) => {
|
|
const documentState = view.documentStore.getValue();
|
|
if (!documentState.file.path)
|
|
return;
|
|
const viewState = view.viewStore.getValue();
|
|
const pinnedNodes = documentState.pinnedNodes;
|
|
const sections = documentState.sections;
|
|
const pinnedSections = pinnedNodes.Ids.map((id2) => sections.id_section[id2]);
|
|
const section = sections.id_section[viewState.pinnedNodes.activeNode];
|
|
view.plugin.settings.dispatch({
|
|
type: "settings/pinned-nodes/persist",
|
|
payload: {
|
|
sections: pinnedSections,
|
|
filePath: documentState.file.path,
|
|
section
|
|
}
|
|
});
|
|
};
|
|
|
|
// src/stores/view/subscriptions/actions/update-stale-active-pinned-node.ts
|
|
var updateStaleActivePinnedNode = (view) => {
|
|
const viewStore = view.viewStore;
|
|
const pinnedNodes = view.documentStore.getValue().pinnedNodes.Ids;
|
|
if (pinnedNodes.length > 0) {
|
|
const activePinnedNode = viewStore.getValue().pinnedNodes.activeNode;
|
|
if (!activePinnedNode || !pinnedNodes.includes(activePinnedNode)) {
|
|
setActivePinnedNode2(view, pinnedNodes[pinnedNodes.length - 1]);
|
|
}
|
|
}
|
|
};
|
|
|
|
// src/stores/view/subscriptions/actions/update-selected-nodes.ts
|
|
var updateSelectedNodes2 = (view, action, changeHistory) => {
|
|
const documentState = view.documentStore.getValue();
|
|
let clear = true;
|
|
if (action.type === "DOCUMENT/PASTE_NODE" || changeHistory) {
|
|
const history = documentState.history;
|
|
const snapshot = history.items[history.state.activeIndex];
|
|
if (snapshot.context.affectedSections) {
|
|
clear = false;
|
|
const ids = snapshot.context.affectedSections.map(
|
|
(section) => getIdOfSection(documentState.sections, section)
|
|
);
|
|
view.viewStore.dispatch({
|
|
type: "view/selection/set-selection",
|
|
payload: {
|
|
ids
|
|
}
|
|
});
|
|
}
|
|
}
|
|
if (clear) {
|
|
clearSelectedNodes(view);
|
|
}
|
|
};
|
|
|
|
// src/stores/view/subscriptions/on-document-state-update.ts
|
|
var onDocumentStateUpdate = (view, action) => {
|
|
const documentStore = view.documentStore;
|
|
const documentState = documentStore.getValue();
|
|
const viewStore = view.viewStore;
|
|
const container = view.container;
|
|
const type = action.type;
|
|
const e = getDocumentEventType(
|
|
type
|
|
);
|
|
if (type === "DOCUMENT/LOAD_FILE") {
|
|
view.inlineEditor.unloadNode();
|
|
}
|
|
const structuralChange = e.createOrDelete || e.dropOrMove || e.changeHistory || e.clipboard;
|
|
if (structuralChange) {
|
|
setActiveNode(view, action);
|
|
updateActiveBranch2(viewStore, documentState, "structure");
|
|
viewStore.dispatch({
|
|
type: "view/outline/refresh-collapsed-nodes",
|
|
payload: {
|
|
columns: documentState.document.columns
|
|
}
|
|
});
|
|
documentStore.dispatch({
|
|
type: "document/pinned-nodes/remove-stale-nodes"
|
|
});
|
|
documentStore.dispatch({ type: "META/REFRESH_GROUP_PARENT_IDS" });
|
|
}
|
|
if (structuralChange && type !== "DOCUMENT/MOVE_NODE") {
|
|
updateSelectedNodes2(view, action, e.changeHistory);
|
|
}
|
|
if (type === "DOCUMENT/INSERT_NODE" && view.isActive) {
|
|
enableEditMode2(viewStore, documentState);
|
|
}
|
|
if (type === "DOCUMENT/DELETE_NODE" || type === "DOCUMENT/CUT_NODE" || e.changeHistory || type === "DOCUMENT/EXTRACT_BRANCH" || type === "DOCUMENT/LOAD_FILE" || type === "DOCUMENT/SPLIT_NODE") {
|
|
removeObsoleteNavigationItems(viewStore, documentState);
|
|
}
|
|
if (structuralChange || e.content) {
|
|
view.alignBranch.align(action);
|
|
view.rulesProcessor.onDocumentUpdate(action);
|
|
}
|
|
if (!container || !view.isViewOfFile)
|
|
return;
|
|
if (e.content || structuralChange) {
|
|
const maybeViewIsClosing = !view.isActive;
|
|
view.saveDocument(maybeViewIsClosing);
|
|
}
|
|
if (e.content || structuralChange) {
|
|
if (view.minimapStore) {
|
|
debouncedDrawDocument(view);
|
|
}
|
|
view.documentSearch.resetIndex();
|
|
const query = viewStore.getValue().search.query;
|
|
if (query) {
|
|
view.viewStore.dispatch({
|
|
type: "SEARCH/SET_QUERY",
|
|
payload: {
|
|
query
|
|
}
|
|
});
|
|
}
|
|
}
|
|
if (structuralChange) {
|
|
view.plugin.statusBar.updateAll(view);
|
|
}
|
|
if (e.content || structuralChange) {
|
|
if (view.isActive)
|
|
focusContainer(view);
|
|
}
|
|
const pinnedNodesUpdate = type === "document/pinned-nodes/remove-stale-nodes" || type === "document/pinned-nodes/pin" || type === "document/pinned-nodes/unpin";
|
|
if (pinnedNodesUpdate) {
|
|
persistPinnedNodes(view);
|
|
}
|
|
if (pinnedNodesUpdate || type === "document/pinned-nodes/load-from-settings") {
|
|
if (type === "document/pinned-nodes/pin") {
|
|
setActivePinnedNode2(view, action.payload.id);
|
|
} else {
|
|
updateStaleActivePinnedNode(view);
|
|
}
|
|
}
|
|
};
|
|
|
|
// src/stores/view/subscriptions/on-plugin-settings-update.ts
|
|
var onPluginSettingsUpdate = (view, state2, action) => {
|
|
if (!view.container)
|
|
return;
|
|
const type = action.type;
|
|
if (type === "SET_FONT_SIZE") {
|
|
applyFontSize(view, state2.view.fontSize);
|
|
} else if (type === "SET_CONTAINER_BG") {
|
|
applyCssColor(view, "containerBg");
|
|
} else if (type === "SET_ACTIVE_BRANCH_BG") {
|
|
applyCssColor(view, "activeBranchBg");
|
|
} else if (type === "SET_CARD_WIDTH") {
|
|
applyCardWidth(view, state2.view.cardWidth);
|
|
} else if (type === "SET_CARDS_GAP") {
|
|
applyCardsGap(view, state2.view.cardsGap);
|
|
} else if (action.type === "UI/CHANGE_ZOOM_LEVEL") {
|
|
applyZoomLevel(view, state2.view.zoomLevel);
|
|
view.zoomFactor = state2.view.zoomLevel;
|
|
} else if (action.type === "SET_DOCUMENT_TYPE") {
|
|
view.saveDocument();
|
|
} else if (type === "settings/view/set-node-indentation-width") {
|
|
applyCardIndentationWidth(view, state2.view.nodeIndentationWidth);
|
|
} else if (type === "settings/view/theme/set-inactive-node-opacity") {
|
|
applyInactiveNodeOpacity(view, state2.view.theme.inactiveNodeOpacity);
|
|
} else if (type === "settings/view/theme/set-active-branch-color") {
|
|
applyCssColor(view, "activeBranchColor");
|
|
} else if (type === "settings/hotkeys/reset-all" || type === "settings/hotkeys/apply-preset" || type === "settings/hotkeys/reset-custom-hotkey" || type === "settings/hotkeys/set-custom-hotkey" || type === "settings/hotkeys/set-blank") {
|
|
view.viewStore.dispatch({
|
|
type: "view/hotkeys/update-conflicts",
|
|
payload: {
|
|
conflicts: getUsedHotkeys(view.plugin)
|
|
}
|
|
});
|
|
} else if (type === "settings/view/modes/toggle-outline-mode") {
|
|
if (state2.view.outlineMode) {
|
|
const columns = view.documentStore.getValue().document.columns;
|
|
view.viewStore.dispatch({
|
|
type: "view/outline/refresh-collapsed-nodes",
|
|
payload: {
|
|
columns
|
|
}
|
|
});
|
|
}
|
|
}
|
|
const shouldAlign = type === "view/left-sidebar/toggle" || type === "view/left-sidebar/set-width" || type === "UI/CHANGE_ZOOM_LEVEL" || type === "SET_CARD_WIDTH" || type === "SET_LIMIT_PREVIEW_HEIGHT" || type === "VIEW/TOGGLE_MINIMAP" || type === "VIEW/SCROLLING/TOGGLE_SCROLLING_MODE" || type === "settings/view/scrolling/toggle-vertical-scrolling-mode" || type === "SET_CARDS_GAP" || type === "view/modes/gap-between-cards/toggle" || type === "settings/view/set-node-indentation-width";
|
|
if (shouldAlign) {
|
|
view.alignBranch.align(action);
|
|
}
|
|
if (view.isActive && type === "UI/CHANGE_ZOOM_LEVEL") {
|
|
focusContainer(view);
|
|
}
|
|
const shouldUpdateStyleRules = type === "settings/style-rules/add" || type === "settings/style-rules/update" || type === "settings/style-rules/delete" || type === "settings/style-rules/update-condition" || type === "settings/style-rules/enable-rule" || type === "settings/style-rules/disable-rule" || type === "settings/style-rules/move" || type === "settings/style-rules/update-style";
|
|
if (shouldUpdateStyleRules) {
|
|
view.rulesProcessor.onRulesUpdate();
|
|
}
|
|
};
|
|
|
|
// src/stores/view/subscriptions/on-documents-state-update.ts
|
|
var onDocumentsStateUpdate = (view, action) => {
|
|
if (!view.container)
|
|
return;
|
|
if (action.type === "WORKSPACE/ACTIVE_LEAF_CHANGE") {
|
|
if (view.viewStore.getValue().document.editing.activeNodeId) {
|
|
saveNodeContent(view);
|
|
}
|
|
}
|
|
if (action.type === "WORKSPACE/SET_ACTIVE_LINEAGE_VIEW" || action.type === "WORKSPACE/RESIZE") {
|
|
if (view.isActive) {
|
|
focusContainer(view);
|
|
view.plugin.statusBar.updateAll(view);
|
|
}
|
|
view.alignBranch.align(action);
|
|
}
|
|
};
|
|
|
|
// src/stores/view/subscriptions/on-metadata-cache.ts
|
|
var import_obsidian32 = require("obsidian");
|
|
var metadataCallback = (view, updatedFile) => {
|
|
const viewFile = view.file;
|
|
if (!viewFile)
|
|
return;
|
|
if (updatedFile === viewFile) {
|
|
debounced(view);
|
|
}
|
|
};
|
|
var vaultCallback = (view, affectedFile) => {
|
|
if (!(affectedFile instanceof import_obsidian32.TFile))
|
|
return;
|
|
const viewFile = view.file;
|
|
if (!viewFile)
|
|
return;
|
|
const viewFileLinks = view.plugin.app.metadataCache.getFileCache(viewFile)?.links;
|
|
if (!viewFileLinks)
|
|
return;
|
|
let affectedFileIsALink = false;
|
|
for (const link of viewFileLinks) {
|
|
const linkBasename = link.link.split("#")[0];
|
|
if (affectedFile.basename === linkBasename) {
|
|
affectedFileIsALink = true;
|
|
break;
|
|
}
|
|
}
|
|
if (affectedFileIsALink) {
|
|
debounced(view);
|
|
}
|
|
};
|
|
var onMetadataCache = (view) => {
|
|
const app = view.plugin.app;
|
|
const metadataRef = app.metadataCache.on(
|
|
"changed",
|
|
(file) => metadataCallback(view, file)
|
|
);
|
|
const createRef = app.vault.on(
|
|
"create",
|
|
(file) => vaultCallback(view, file)
|
|
);
|
|
const deleteRef = app.vault.on(
|
|
"delete",
|
|
(file) => vaultCallback(view, file)
|
|
);
|
|
return () => {
|
|
app.metadataCache.offref(metadataRef);
|
|
app.vault.offref(createRef);
|
|
app.vault.offref(deleteRef);
|
|
};
|
|
};
|
|
|
|
// src/stores/view/subscriptions/view-subscriptions.ts
|
|
var viewSubscriptions = (view) => {
|
|
const unsubFromDocument = view.documentStore.subscribe(
|
|
(documentState, action) => {
|
|
if (!action)
|
|
return;
|
|
onDocumentStateUpdate(view, action);
|
|
}
|
|
);
|
|
const localState = {
|
|
previousActiveNode: ""
|
|
};
|
|
let onMountSubscriptions = /* @__PURE__ */ new Set();
|
|
const unsubFromView = view.viewStore.subscribe(
|
|
(viewState, action, initialRun) => {
|
|
if (initialRun) {
|
|
onMountSubscriptions = onViewMount(view);
|
|
} else if (action) {
|
|
onViewStateUpdate(view, action, localState);
|
|
}
|
|
}
|
|
);
|
|
const unsubFromDocuments = view.plugin.documents.subscribe((_, action) => {
|
|
if (!action)
|
|
return;
|
|
onDocumentsStateUpdate(view, action);
|
|
});
|
|
const unsubFromSettings = view.plugin.settings.subscribe(
|
|
(state2, action) => {
|
|
if (!action)
|
|
return;
|
|
onPluginSettingsUpdate(view, state2, action);
|
|
}
|
|
);
|
|
const unsubFromCache = onMetadataCache(view);
|
|
return () => {
|
|
unsubFromDocument();
|
|
unsubFromCache();
|
|
unsubFromView();
|
|
unsubFromSettings();
|
|
unsubFromDocuments();
|
|
view.rulesProcessor.onViewUnmount();
|
|
for (const unsub of onMountSubscriptions) {
|
|
unsub();
|
|
}
|
|
};
|
|
};
|
|
|
|
// src/obsidian/helpers/inline-editor/inline-editor.ts
|
|
var import_obsidian35 = require("obsidian");
|
|
|
|
// src/obsidian/helpers/inline-editor/helpers/vim-enter-insert-mode.ts
|
|
var vimEnterInsertMode = (plugin, view) => {
|
|
const config = plugin.app.vault.config;
|
|
if (config?.vimMode) {
|
|
try {
|
|
activeWindow.CodeMirrorAdapter?.Vim.enterInsertMode(
|
|
// @ts-ignore
|
|
view.editMode?.editor?.cm?.cm
|
|
);
|
|
} catch {
|
|
logger.warn("could not enter insert mode");
|
|
}
|
|
}
|
|
};
|
|
|
|
// src/obsidian/helpers/inline-editor/helpers/fix-vim-cursor-when-zooming.ts
|
|
var fixVimCursorWhenZooming = (view) => {
|
|
if (view.zoomFactor === 1)
|
|
return null;
|
|
const config = view.plugin.app.vault.config;
|
|
if (!config?.vimMode)
|
|
return null;
|
|
const inlineEditor = view.inlineEditor.target;
|
|
if (!inlineEditor)
|
|
return null;
|
|
const previousValues = { top: -1, lineHeight: -1, left: -1 };
|
|
let animationFrame;
|
|
const adjustCursorPosition = () => {
|
|
const cursor2 = inlineEditor.querySelector(
|
|
".cm-cursor-primary"
|
|
);
|
|
if (!cursor2) {
|
|
animationFrame = requestAnimationFrame(adjustCursorPosition);
|
|
return;
|
|
}
|
|
const top = parseFloat(cursor2.style.top);
|
|
const left = parseFloat(cursor2.style.left);
|
|
const lineHeight = parseFloat(cursor2.style.lineHeight);
|
|
if (top !== previousValues.top) {
|
|
cursor2.style.top = `${(top + 1) / view.zoomFactor}px`;
|
|
previousValues.top = parseFloat(cursor2.style.top);
|
|
}
|
|
if (left !== previousValues.left) {
|
|
cursor2.style.left = `${left / view.zoomFactor}px`;
|
|
previousValues.left = parseFloat(cursor2.style.left);
|
|
}
|
|
if (lineHeight !== previousValues.lineHeight) {
|
|
cursor2.style.lineHeight = `${lineHeight / view.zoomFactor}px`;
|
|
previousValues.lineHeight = parseFloat(cursor2.style.lineHeight);
|
|
}
|
|
animationFrame = requestAnimationFrame(adjustCursorPosition);
|
|
};
|
|
animationFrame = requestAnimationFrame(adjustCursorPosition);
|
|
return () => {
|
|
cancelAnimationFrame(animationFrame);
|
|
};
|
|
};
|
|
|
|
// src/obsidian/helpers/inline-editor/helpers/lock-file.ts
|
|
var import_obsidian33 = require("obsidian");
|
|
var noop2 = async () => {
|
|
};
|
|
var lockFile = (view) => {
|
|
view.plugin.app.workspace.iterateAllLeaves((e) => {
|
|
const leafView = e.view;
|
|
if (leafView instanceof import_obsidian33.MarkdownView) {
|
|
if (leafView.file === view.file) {
|
|
leafView.__setViewData__ = leafView.setViewData;
|
|
leafView.setViewData = noop2;
|
|
}
|
|
}
|
|
});
|
|
};
|
|
|
|
// src/obsidian/helpers/inline-editor/helpers/unlock-file.ts
|
|
var import_obsidian34 = require("obsidian");
|
|
var unlockFile = (view) => {
|
|
view.plugin.app.workspace.iterateAllLeaves((e) => {
|
|
const leafView = e.view;
|
|
if (leafView instanceof import_obsidian34.MarkdownView) {
|
|
if (leafView.file === view.file) {
|
|
if ("__setViewData__" in leafView) {
|
|
leafView.setViewData = leafView.__setViewData__;
|
|
delete leafView.__setViewData__;
|
|
}
|
|
}
|
|
}
|
|
});
|
|
};
|
|
|
|
// src/obsidian/helpers/inline-editor/inline-editor.ts
|
|
var noop3 = async () => {
|
|
};
|
|
var _nodeId;
|
|
var InlineEditor = class {
|
|
constructor(view) {
|
|
this.view = view;
|
|
__privateAdd(this, _nodeId, null);
|
|
this.target = null;
|
|
this.onChangeSubscriptions = /* @__PURE__ */ new Set();
|
|
this.subscriptions = /* @__PURE__ */ new Set();
|
|
this.cursorPositions = /* @__PURE__ */ new Map();
|
|
this.focus = () => {
|
|
this.inlineView.editor.focus();
|
|
};
|
|
this.isCursorInRange = (cursor2) => {
|
|
const docStart = { line: 0, ch: 0 };
|
|
const lastLine = this.inlineView.editor.lastLine();
|
|
const docEnd = {
|
|
line: lastLine,
|
|
ch: this.inlineView.editor.getLine(lastLine).length
|
|
};
|
|
const isLineInRange = cursor2.line >= docStart.line && cursor2.line <= docEnd.line;
|
|
const isChInRange = (cursor2.line === docStart.line ? cursor2.ch >= docStart.ch : true) && (cursor2.line === docEnd.line ? cursor2.ch <= docEnd.ch : true);
|
|
return isLineInRange && isChInRange;
|
|
};
|
|
this.restoreCursor = () => {
|
|
const existingCursor = this.cursorPositions.get(this.nodeId);
|
|
if (existingCursor && this.isCursorInRange(existingCursor)) {
|
|
this.setCursor(existingCursor);
|
|
} else {
|
|
const lastLine = this.inlineView.editor.lastLine();
|
|
const ch = this.inlineView.editor.getLine(lastLine).length;
|
|
this.setCursor({
|
|
line: lastLine,
|
|
ch
|
|
});
|
|
}
|
|
};
|
|
this.setActiveEditor = () => {
|
|
this.view.plugin.app.workspace.activeEditor = this.inlineView;
|
|
};
|
|
this.invokeAndDeleteOnChangeSubscriptions = () => {
|
|
if (this.onChangeSubscriptions.size)
|
|
for (const subscription of this.onChangeSubscriptions) {
|
|
subscription();
|
|
this.onChangeSubscriptions.delete(subscription);
|
|
}
|
|
};
|
|
this.saveContent = () => {
|
|
const nodeId = this.nodeId;
|
|
if (!nodeId)
|
|
return;
|
|
const content = this.getContent();
|
|
const viewState = this.view.viewStore.getValue();
|
|
this.view.documentStore.dispatch({
|
|
type: "DOCUMENT/SET_NODE_CONTENT",
|
|
payload: {
|
|
nodeId,
|
|
content
|
|
},
|
|
context: {
|
|
isInSidebar: viewState.document.editing.isInSidebar
|
|
}
|
|
});
|
|
};
|
|
this.fixVimWhenZooming = () => {
|
|
const unsub = fixVimCursorWhenZooming(this.view);
|
|
if (unsub) {
|
|
this.subscriptions.add(unsub);
|
|
}
|
|
};
|
|
}
|
|
get nodeId() {
|
|
return __privateGet(this, _nodeId);
|
|
}
|
|
set nodeId(value) {
|
|
__privateSet(this, _nodeId, value);
|
|
}
|
|
getContent() {
|
|
return this.inlineView.editor.getValue();
|
|
}
|
|
getCursor() {
|
|
return this.inlineView.editor.getCursor();
|
|
}
|
|
deleteNodeCursor(nodeId) {
|
|
this.cursorPositions.delete(nodeId);
|
|
}
|
|
setNodeCursor(nodeId, cursor2) {
|
|
if (this.nodeId && nodeId === this.nodeId)
|
|
this.setCursor(cursor2);
|
|
else
|
|
this.cursorPositions.set(nodeId, cursor2);
|
|
}
|
|
setContent(content) {
|
|
this.inlineView.__setViewData__(content, true);
|
|
}
|
|
loadNode(target, nodeId) {
|
|
if (!this.view.file)
|
|
return;
|
|
if (this.nodeId) {
|
|
this.unloadNode();
|
|
}
|
|
const content = this.view.documentStore.getValue().document.content[nodeId]?.content;
|
|
this.setContent(content);
|
|
target.append(this.containerEl);
|
|
this.focus();
|
|
AdjustHeight(this.view, target)();
|
|
this.target = target;
|
|
if (!content) {
|
|
vimEnterInsertMode(this.view.plugin, this.inlineView);
|
|
}
|
|
this.target.addEventListener("focusin", this.setActiveEditor);
|
|
this.setActiveEditor();
|
|
this.nodeId = nodeId;
|
|
this.restoreCursor();
|
|
this.lockFile();
|
|
this.fixVimWhenZooming();
|
|
}
|
|
unloadNode(nodeId, discardChanges = false) {
|
|
const currentNodeId = this.nodeId;
|
|
if (nodeId && nodeId !== currentNodeId)
|
|
return;
|
|
if (currentNodeId && !discardChanges) {
|
|
this.saveContent();
|
|
const cursor2 = this.getCursor();
|
|
this.cursorPositions.set(currentNodeId, cursor2);
|
|
}
|
|
this.nodeId = null;
|
|
if (this.target) {
|
|
this.view.plugin.app.workspace.activeEditor = null;
|
|
this.target.removeEventListener("focusin", this.setActiveEditor);
|
|
this.target.empty();
|
|
this.target = null;
|
|
}
|
|
for (const subscription of this.subscriptions) {
|
|
subscription();
|
|
this.subscriptions.delete(subscription);
|
|
}
|
|
this.unlockFile();
|
|
}
|
|
async onload() {
|
|
const workspace = this.view.plugin.app.workspace;
|
|
this.containerEl = document.createElement("div");
|
|
this.containerEl.addClasses(["lineage-inline-editor"]);
|
|
this.inlineView = new import_obsidian35.MarkdownView({
|
|
containerEl: this.containerEl,
|
|
app: this.view.plugin.app,
|
|
workspace
|
|
});
|
|
this.inlineView.save = noop3;
|
|
this.inlineView.requestSave = this.invokeAndDeleteOnChangeSubscriptions;
|
|
this.inlineView.__setViewData__ = this.inlineView.setViewData;
|
|
this.inlineView.setViewData = noop3;
|
|
if (this.inlineView.getMode() === "preview") {
|
|
await this.inlineView.setState(
|
|
{ mode: "source" },
|
|
{ history: false }
|
|
);
|
|
}
|
|
}
|
|
onNextChange(subscription) {
|
|
this.onChangeSubscriptions.add(subscription);
|
|
return () => {
|
|
this.onChangeSubscriptions.delete(subscription);
|
|
};
|
|
}
|
|
async loadFile(file) {
|
|
this.inlineView.file = file;
|
|
await this.inlineView.onLoadFile(file);
|
|
}
|
|
async unloadFile() {
|
|
const file = this.inlineView.file;
|
|
if (file) {
|
|
this.inlineView.file = null;
|
|
await this.inlineView.onUnloadFile(file);
|
|
}
|
|
this.unloadNode();
|
|
}
|
|
setCursor(cursor2) {
|
|
this.inlineView.editor.setCursor(cursor2);
|
|
}
|
|
/* prevents obsidian from replacing file.data with card.data when the card editor and file editor share the same file*/
|
|
lockFile() {
|
|
lockFile(this.view);
|
|
}
|
|
unlockFile() {
|
|
unlockFile(this.view);
|
|
}
|
|
};
|
|
_nodeId = new WeakMap();
|
|
|
|
// src/view/helpers/stringify-document.ts
|
|
var stringifyDocument = (document2, format2) => {
|
|
const json = columnsToJson(document2.columns, document2.content);
|
|
if (format2 === "outline") {
|
|
return jsonToOutline(json);
|
|
} else if (format2 === "html-element") {
|
|
return jsonToHtmlElement(json);
|
|
} else {
|
|
return jsonToHtmlComment(json);
|
|
}
|
|
};
|
|
|
|
// src/obsidian/events/workspace/helpers/maybe-get-document-format.ts
|
|
var maybeGetDocumentFormat = (view) => {
|
|
invariant(view.file);
|
|
return view.plugin.settings.getValue().documents[view.file.path]?.documentFormat;
|
|
};
|
|
|
|
// src/obsidian/events/workspace/helpers/get-or-detect-document-format.ts
|
|
var getOrDetectDocumentFormat = (view, data) => {
|
|
const format2 = maybeGetDocumentFormat(view);
|
|
if (format2) {
|
|
return format2;
|
|
}
|
|
const detected = detectDocumentFormat(view.data);
|
|
if (detected)
|
|
return detected;
|
|
const defaultFormat = view.plugin.settings.getValue().general.defaultDocumentFormat;
|
|
if (defaultFormat === "outline") {
|
|
if (!data.trim())
|
|
return "outline";
|
|
try {
|
|
const tree = outlineToJson(data);
|
|
if (tree.length <= 1 && tree[0]?.children?.length === 0)
|
|
return "outline";
|
|
} catch {
|
|
}
|
|
}
|
|
return defaultFormat;
|
|
};
|
|
|
|
// node_modules/fuse.js/dist/fuse.mjs
|
|
function isArray(value) {
|
|
return !Array.isArray ? getTag(value) === "[object Array]" : Array.isArray(value);
|
|
}
|
|
var INFINITY = 1 / 0;
|
|
function baseToString(value) {
|
|
if (typeof value == "string") {
|
|
return value;
|
|
}
|
|
let result = value + "";
|
|
return result == "0" && 1 / value == -INFINITY ? "-0" : result;
|
|
}
|
|
function toString(value) {
|
|
return value == null ? "" : baseToString(value);
|
|
}
|
|
function isString(value) {
|
|
return typeof value === "string";
|
|
}
|
|
function isNumber(value) {
|
|
return typeof value === "number";
|
|
}
|
|
function isBoolean(value) {
|
|
return value === true || value === false || isObjectLike(value) && getTag(value) == "[object Boolean]";
|
|
}
|
|
function isObject(value) {
|
|
return typeof value === "object";
|
|
}
|
|
function isObjectLike(value) {
|
|
return isObject(value) && value !== null;
|
|
}
|
|
function isDefined(value) {
|
|
return value !== void 0 && value !== null;
|
|
}
|
|
function isBlank(value) {
|
|
return !value.trim().length;
|
|
}
|
|
function getTag(value) {
|
|
return value == null ? value === void 0 ? "[object Undefined]" : "[object Null]" : Object.prototype.toString.call(value);
|
|
}
|
|
var INCORRECT_INDEX_TYPE = "Incorrect 'index' type";
|
|
var LOGICAL_SEARCH_INVALID_QUERY_FOR_KEY = (key) => `Invalid value for key ${key}`;
|
|
var PATTERN_LENGTH_TOO_LARGE = (max) => `Pattern length exceeds max of ${max}.`;
|
|
var MISSING_KEY_PROPERTY = (name) => `Missing ${name} property in key`;
|
|
var INVALID_KEY_WEIGHT_VALUE = (key) => `Property 'weight' in key '${key}' must be a positive integer`;
|
|
var hasOwn = Object.prototype.hasOwnProperty;
|
|
var KeyStore = class {
|
|
constructor(keys) {
|
|
this._keys = [];
|
|
this._keyMap = {};
|
|
let totalWeight = 0;
|
|
keys.forEach((key) => {
|
|
let obj = createKey(key);
|
|
this._keys.push(obj);
|
|
this._keyMap[obj.id] = obj;
|
|
totalWeight += obj.weight;
|
|
});
|
|
this._keys.forEach((key) => {
|
|
key.weight /= totalWeight;
|
|
});
|
|
}
|
|
get(keyId) {
|
|
return this._keyMap[keyId];
|
|
}
|
|
keys() {
|
|
return this._keys;
|
|
}
|
|
toJSON() {
|
|
return JSON.stringify(this._keys);
|
|
}
|
|
};
|
|
function createKey(key) {
|
|
let path = null;
|
|
let id2 = null;
|
|
let src = null;
|
|
let weight = 1;
|
|
let getFn = null;
|
|
if (isString(key) || isArray(key)) {
|
|
src = key;
|
|
path = createKeyPath(key);
|
|
id2 = createKeyId(key);
|
|
} else {
|
|
if (!hasOwn.call(key, "name")) {
|
|
throw new Error(MISSING_KEY_PROPERTY("name"));
|
|
}
|
|
const name = key.name;
|
|
src = name;
|
|
if (hasOwn.call(key, "weight")) {
|
|
weight = key.weight;
|
|
if (weight <= 0) {
|
|
throw new Error(INVALID_KEY_WEIGHT_VALUE(name));
|
|
}
|
|
}
|
|
path = createKeyPath(name);
|
|
id2 = createKeyId(name);
|
|
getFn = key.getFn;
|
|
}
|
|
return { path, id: id2, weight, src, getFn };
|
|
}
|
|
function createKeyPath(key) {
|
|
return isArray(key) ? key : key.split(".");
|
|
}
|
|
function createKeyId(key) {
|
|
return isArray(key) ? key.join(".") : key;
|
|
}
|
|
function get(obj, path) {
|
|
let list = [];
|
|
let arr = false;
|
|
const deepGet = (obj2, path2, index) => {
|
|
if (!isDefined(obj2)) {
|
|
return;
|
|
}
|
|
if (!path2[index]) {
|
|
list.push(obj2);
|
|
} else {
|
|
let key = path2[index];
|
|
const value = obj2[key];
|
|
if (!isDefined(value)) {
|
|
return;
|
|
}
|
|
if (index === path2.length - 1 && (isString(value) || isNumber(value) || isBoolean(value))) {
|
|
list.push(toString(value));
|
|
} else if (isArray(value)) {
|
|
arr = true;
|
|
for (let i = 0, len = value.length; i < len; i += 1) {
|
|
deepGet(value[i], path2, index + 1);
|
|
}
|
|
} else if (path2.length) {
|
|
deepGet(value, path2, index + 1);
|
|
}
|
|
}
|
|
};
|
|
deepGet(obj, isString(path) ? path.split(".") : path, 0);
|
|
return arr ? list : list[0];
|
|
}
|
|
var MatchOptions = {
|
|
// Whether the matches should be included in the result set. When `true`, each record in the result
|
|
// set will include the indices of the matched characters.
|
|
// These can consequently be used for highlighting purposes.
|
|
includeMatches: false,
|
|
// When `true`, the matching function will continue to the end of a search pattern even if
|
|
// a perfect match has already been located in the string.
|
|
findAllMatches: false,
|
|
// Minimum number of characters that must be matched before a result is considered a match
|
|
minMatchCharLength: 1
|
|
};
|
|
var BasicOptions = {
|
|
// When `true`, the algorithm continues searching to the end of the input even if a perfect
|
|
// match is found before the end of the same input.
|
|
isCaseSensitive: false,
|
|
// When true, the matching function will continue to the end of a search pattern even if
|
|
includeScore: false,
|
|
// List of properties that will be searched. This also supports nested properties.
|
|
keys: [],
|
|
// Whether to sort the result list, by score
|
|
shouldSort: true,
|
|
// Default sort function: sort by ascending score, ascending index
|
|
sortFn: (a, b) => a.score === b.score ? a.idx < b.idx ? -1 : 1 : a.score < b.score ? -1 : 1
|
|
};
|
|
var FuzzyOptions = {
|
|
// Approximately where in the text is the pattern expected to be found?
|
|
location: 0,
|
|
// At what point does the match algorithm give up. A threshold of '0.0' requires a perfect match
|
|
// (of both letters and location), a threshold of '1.0' would match anything.
|
|
threshold: 0.6,
|
|
// Determines how close the match must be to the fuzzy location (specified above).
|
|
// An exact letter match which is 'distance' characters away from the fuzzy location
|
|
// would score as a complete mismatch. A distance of '0' requires the match be at
|
|
// the exact location specified, a threshold of '1000' would require a perfect match
|
|
// to be within 800 characters of the fuzzy location to be found using a 0.8 threshold.
|
|
distance: 100
|
|
};
|
|
var AdvancedOptions = {
|
|
// When `true`, it enables the use of unix-like search commands
|
|
useExtendedSearch: false,
|
|
// The get function to use when fetching an object's properties.
|
|
// The default will search nested paths *ie foo.bar.baz*
|
|
getFn: get,
|
|
// When `true`, search will ignore `location` and `distance`, so it won't matter
|
|
// where in the string the pattern appears.
|
|
// More info: https://fusejs.io/concepts/scoring-theory.html#fuzziness-score
|
|
ignoreLocation: false,
|
|
// When `true`, the calculation for the relevance score (used for sorting) will
|
|
// ignore the field-length norm.
|
|
// More info: https://fusejs.io/concepts/scoring-theory.html#field-length-norm
|
|
ignoreFieldNorm: false,
|
|
// The weight to determine how much field length norm effects scoring.
|
|
fieldNormWeight: 1
|
|
};
|
|
var Config = {
|
|
...BasicOptions,
|
|
...MatchOptions,
|
|
...FuzzyOptions,
|
|
...AdvancedOptions
|
|
};
|
|
var SPACE = /[^ ]+/g;
|
|
function norm(weight = 1, mantissa = 3) {
|
|
const cache = /* @__PURE__ */ new Map();
|
|
const m = Math.pow(10, mantissa);
|
|
return {
|
|
get(value) {
|
|
const numTokens = value.match(SPACE).length;
|
|
if (cache.has(numTokens)) {
|
|
return cache.get(numTokens);
|
|
}
|
|
const norm2 = 1 / Math.pow(numTokens, 0.5 * weight);
|
|
const n = parseFloat(Math.round(norm2 * m) / m);
|
|
cache.set(numTokens, n);
|
|
return n;
|
|
},
|
|
clear() {
|
|
cache.clear();
|
|
}
|
|
};
|
|
}
|
|
var FuseIndex = class {
|
|
constructor({
|
|
getFn = Config.getFn,
|
|
fieldNormWeight = Config.fieldNormWeight
|
|
} = {}) {
|
|
this.norm = norm(fieldNormWeight, 3);
|
|
this.getFn = getFn;
|
|
this.isCreated = false;
|
|
this.setIndexRecords();
|
|
}
|
|
setSources(docs = []) {
|
|
this.docs = docs;
|
|
}
|
|
setIndexRecords(records = []) {
|
|
this.records = records;
|
|
}
|
|
setKeys(keys = []) {
|
|
this.keys = keys;
|
|
this._keysMap = {};
|
|
keys.forEach((key, idx) => {
|
|
this._keysMap[key.id] = idx;
|
|
});
|
|
}
|
|
create() {
|
|
if (this.isCreated || !this.docs.length) {
|
|
return;
|
|
}
|
|
this.isCreated = true;
|
|
if (isString(this.docs[0])) {
|
|
this.docs.forEach((doc, docIndex) => {
|
|
this._addString(doc, docIndex);
|
|
});
|
|
} else {
|
|
this.docs.forEach((doc, docIndex) => {
|
|
this._addObject(doc, docIndex);
|
|
});
|
|
}
|
|
this.norm.clear();
|
|
}
|
|
// Adds a doc to the end of the index
|
|
add(doc) {
|
|
const idx = this.size();
|
|
if (isString(doc)) {
|
|
this._addString(doc, idx);
|
|
} else {
|
|
this._addObject(doc, idx);
|
|
}
|
|
}
|
|
// Removes the doc at the specified index of the index
|
|
removeAt(idx) {
|
|
this.records.splice(idx, 1);
|
|
for (let i = idx, len = this.size(); i < len; i += 1) {
|
|
this.records[i].i -= 1;
|
|
}
|
|
}
|
|
getValueForItemAtKeyId(item, keyId) {
|
|
return item[this._keysMap[keyId]];
|
|
}
|
|
size() {
|
|
return this.records.length;
|
|
}
|
|
_addString(doc, docIndex) {
|
|
if (!isDefined(doc) || isBlank(doc)) {
|
|
return;
|
|
}
|
|
let record = {
|
|
v: doc,
|
|
i: docIndex,
|
|
n: this.norm.get(doc)
|
|
};
|
|
this.records.push(record);
|
|
}
|
|
_addObject(doc, docIndex) {
|
|
let record = { i: docIndex, $: {} };
|
|
this.keys.forEach((key, keyIndex) => {
|
|
let value = key.getFn ? key.getFn(doc) : this.getFn(doc, key.path);
|
|
if (!isDefined(value)) {
|
|
return;
|
|
}
|
|
if (isArray(value)) {
|
|
let subRecords = [];
|
|
const stack = [{ nestedArrIndex: -1, value }];
|
|
while (stack.length) {
|
|
const { nestedArrIndex, value: value2 } = stack.pop();
|
|
if (!isDefined(value2)) {
|
|
continue;
|
|
}
|
|
if (isString(value2) && !isBlank(value2)) {
|
|
let subRecord = {
|
|
v: value2,
|
|
i: nestedArrIndex,
|
|
n: this.norm.get(value2)
|
|
};
|
|
subRecords.push(subRecord);
|
|
} else if (isArray(value2)) {
|
|
value2.forEach((item, k) => {
|
|
stack.push({
|
|
nestedArrIndex: k,
|
|
value: item
|
|
});
|
|
});
|
|
} else
|
|
;
|
|
}
|
|
record.$[keyIndex] = subRecords;
|
|
} else if (isString(value) && !isBlank(value)) {
|
|
let subRecord = {
|
|
v: value,
|
|
n: this.norm.get(value)
|
|
};
|
|
record.$[keyIndex] = subRecord;
|
|
}
|
|
});
|
|
this.records.push(record);
|
|
}
|
|
toJSON() {
|
|
return {
|
|
keys: this.keys,
|
|
records: this.records
|
|
};
|
|
}
|
|
};
|
|
function createIndex(keys, docs, { getFn = Config.getFn, fieldNormWeight = Config.fieldNormWeight } = {}) {
|
|
const myIndex = new FuseIndex({ getFn, fieldNormWeight });
|
|
myIndex.setKeys(keys.map(createKey));
|
|
myIndex.setSources(docs);
|
|
myIndex.create();
|
|
return myIndex;
|
|
}
|
|
function parseIndex(data, { getFn = Config.getFn, fieldNormWeight = Config.fieldNormWeight } = {}) {
|
|
const { keys, records } = data;
|
|
const myIndex = new FuseIndex({ getFn, fieldNormWeight });
|
|
myIndex.setKeys(keys);
|
|
myIndex.setIndexRecords(records);
|
|
return myIndex;
|
|
}
|
|
function computeScore$1(pattern, {
|
|
errors = 0,
|
|
currentLocation = 0,
|
|
expectedLocation = 0,
|
|
distance = Config.distance,
|
|
ignoreLocation = Config.ignoreLocation
|
|
} = {}) {
|
|
const accuracy = errors / pattern.length;
|
|
if (ignoreLocation) {
|
|
return accuracy;
|
|
}
|
|
const proximity = Math.abs(expectedLocation - currentLocation);
|
|
if (!distance) {
|
|
return proximity ? 1 : accuracy;
|
|
}
|
|
return accuracy + proximity / distance;
|
|
}
|
|
function convertMaskToIndices(matchmask = [], minMatchCharLength = Config.minMatchCharLength) {
|
|
let indices = [];
|
|
let start = -1;
|
|
let end = -1;
|
|
let i = 0;
|
|
for (let len = matchmask.length; i < len; i += 1) {
|
|
let match = matchmask[i];
|
|
if (match && start === -1) {
|
|
start = i;
|
|
} else if (!match && start !== -1) {
|
|
end = i - 1;
|
|
if (end - start + 1 >= minMatchCharLength) {
|
|
indices.push([start, end]);
|
|
}
|
|
start = -1;
|
|
}
|
|
}
|
|
if (matchmask[i - 1] && i - start >= minMatchCharLength) {
|
|
indices.push([start, i - 1]);
|
|
}
|
|
return indices;
|
|
}
|
|
var MAX_BITS = 32;
|
|
function search(text2, pattern, patternAlphabet, {
|
|
location = Config.location,
|
|
distance = Config.distance,
|
|
threshold = Config.threshold,
|
|
findAllMatches = Config.findAllMatches,
|
|
minMatchCharLength = Config.minMatchCharLength,
|
|
includeMatches = Config.includeMatches,
|
|
ignoreLocation = Config.ignoreLocation
|
|
} = {}) {
|
|
if (pattern.length > MAX_BITS) {
|
|
throw new Error(PATTERN_LENGTH_TOO_LARGE(MAX_BITS));
|
|
}
|
|
const patternLen = pattern.length;
|
|
const textLen = text2.length;
|
|
const expectedLocation = Math.max(0, Math.min(location, textLen));
|
|
let currentThreshold = threshold;
|
|
let bestLocation = expectedLocation;
|
|
const computeMatches = minMatchCharLength > 1 || includeMatches;
|
|
const matchMask = computeMatches ? Array(textLen) : [];
|
|
let index;
|
|
while ((index = text2.indexOf(pattern, bestLocation)) > -1) {
|
|
let score = computeScore$1(pattern, {
|
|
currentLocation: index,
|
|
expectedLocation,
|
|
distance,
|
|
ignoreLocation
|
|
});
|
|
currentThreshold = Math.min(score, currentThreshold);
|
|
bestLocation = index + patternLen;
|
|
if (computeMatches) {
|
|
let i = 0;
|
|
while (i < patternLen) {
|
|
matchMask[index + i] = 1;
|
|
i += 1;
|
|
}
|
|
}
|
|
}
|
|
bestLocation = -1;
|
|
let lastBitArr = [];
|
|
let finalScore = 1;
|
|
let binMax = patternLen + textLen;
|
|
const mask = 1 << patternLen - 1;
|
|
for (let i = 0; i < patternLen; i += 1) {
|
|
let binMin = 0;
|
|
let binMid = binMax;
|
|
while (binMin < binMid) {
|
|
const score2 = computeScore$1(pattern, {
|
|
errors: i,
|
|
currentLocation: expectedLocation + binMid,
|
|
expectedLocation,
|
|
distance,
|
|
ignoreLocation
|
|
});
|
|
if (score2 <= currentThreshold) {
|
|
binMin = binMid;
|
|
} else {
|
|
binMax = binMid;
|
|
}
|
|
binMid = Math.floor((binMax - binMin) / 2 + binMin);
|
|
}
|
|
binMax = binMid;
|
|
let start = Math.max(1, expectedLocation - binMid + 1);
|
|
let finish = findAllMatches ? textLen : Math.min(expectedLocation + binMid, textLen) + patternLen;
|
|
let bitArr = Array(finish + 2);
|
|
bitArr[finish + 1] = (1 << i) - 1;
|
|
for (let j = finish; j >= start; j -= 1) {
|
|
let currentLocation = j - 1;
|
|
let charMatch = patternAlphabet[text2.charAt(currentLocation)];
|
|
if (computeMatches) {
|
|
matchMask[currentLocation] = +!!charMatch;
|
|
}
|
|
bitArr[j] = (bitArr[j + 1] << 1 | 1) & charMatch;
|
|
if (i) {
|
|
bitArr[j] |= (lastBitArr[j + 1] | lastBitArr[j]) << 1 | 1 | lastBitArr[j + 1];
|
|
}
|
|
if (bitArr[j] & mask) {
|
|
finalScore = computeScore$1(pattern, {
|
|
errors: i,
|
|
currentLocation,
|
|
expectedLocation,
|
|
distance,
|
|
ignoreLocation
|
|
});
|
|
if (finalScore <= currentThreshold) {
|
|
currentThreshold = finalScore;
|
|
bestLocation = currentLocation;
|
|
if (bestLocation <= expectedLocation) {
|
|
break;
|
|
}
|
|
start = Math.max(1, 2 * expectedLocation - bestLocation);
|
|
}
|
|
}
|
|
}
|
|
const score = computeScore$1(pattern, {
|
|
errors: i + 1,
|
|
currentLocation: expectedLocation,
|
|
expectedLocation,
|
|
distance,
|
|
ignoreLocation
|
|
});
|
|
if (score > currentThreshold) {
|
|
break;
|
|
}
|
|
lastBitArr = bitArr;
|
|
}
|
|
const result = {
|
|
isMatch: bestLocation >= 0,
|
|
// Count exact matches (those with a score of 0) to be "almost" exact
|
|
score: Math.max(1e-3, finalScore)
|
|
};
|
|
if (computeMatches) {
|
|
const indices = convertMaskToIndices(matchMask, minMatchCharLength);
|
|
if (!indices.length) {
|
|
result.isMatch = false;
|
|
} else if (includeMatches) {
|
|
result.indices = indices;
|
|
}
|
|
}
|
|
return result;
|
|
}
|
|
function createPatternAlphabet(pattern) {
|
|
let mask = {};
|
|
for (let i = 0, len = pattern.length; i < len; i += 1) {
|
|
const char = pattern.charAt(i);
|
|
mask[char] = (mask[char] || 0) | 1 << len - i - 1;
|
|
}
|
|
return mask;
|
|
}
|
|
var BitapSearch = class {
|
|
constructor(pattern, {
|
|
location = Config.location,
|
|
threshold = Config.threshold,
|
|
distance = Config.distance,
|
|
includeMatches = Config.includeMatches,
|
|
findAllMatches = Config.findAllMatches,
|
|
minMatchCharLength = Config.minMatchCharLength,
|
|
isCaseSensitive = Config.isCaseSensitive,
|
|
ignoreLocation = Config.ignoreLocation
|
|
} = {}) {
|
|
this.options = {
|
|
location,
|
|
threshold,
|
|
distance,
|
|
includeMatches,
|
|
findAllMatches,
|
|
minMatchCharLength,
|
|
isCaseSensitive,
|
|
ignoreLocation
|
|
};
|
|
this.pattern = isCaseSensitive ? pattern : pattern.toLowerCase();
|
|
this.chunks = [];
|
|
if (!this.pattern.length) {
|
|
return;
|
|
}
|
|
const addChunk = (pattern2, startIndex) => {
|
|
this.chunks.push({
|
|
pattern: pattern2,
|
|
alphabet: createPatternAlphabet(pattern2),
|
|
startIndex
|
|
});
|
|
};
|
|
const len = this.pattern.length;
|
|
if (len > MAX_BITS) {
|
|
let i = 0;
|
|
const remainder = len % MAX_BITS;
|
|
const end = len - remainder;
|
|
while (i < end) {
|
|
addChunk(this.pattern.substr(i, MAX_BITS), i);
|
|
i += MAX_BITS;
|
|
}
|
|
if (remainder) {
|
|
const startIndex = len - MAX_BITS;
|
|
addChunk(this.pattern.substr(startIndex), startIndex);
|
|
}
|
|
} else {
|
|
addChunk(this.pattern, 0);
|
|
}
|
|
}
|
|
searchIn(text2) {
|
|
const { isCaseSensitive, includeMatches } = this.options;
|
|
if (!isCaseSensitive) {
|
|
text2 = text2.toLowerCase();
|
|
}
|
|
if (this.pattern === text2) {
|
|
let result2 = {
|
|
isMatch: true,
|
|
score: 0
|
|
};
|
|
if (includeMatches) {
|
|
result2.indices = [[0, text2.length - 1]];
|
|
}
|
|
return result2;
|
|
}
|
|
const {
|
|
location,
|
|
distance,
|
|
threshold,
|
|
findAllMatches,
|
|
minMatchCharLength,
|
|
ignoreLocation
|
|
} = this.options;
|
|
let allIndices = [];
|
|
let totalScore = 0;
|
|
let hasMatches = false;
|
|
this.chunks.forEach(({ pattern, alphabet, startIndex }) => {
|
|
const { isMatch, score, indices } = search(text2, pattern, alphabet, {
|
|
location: location + startIndex,
|
|
distance,
|
|
threshold,
|
|
findAllMatches,
|
|
minMatchCharLength,
|
|
includeMatches,
|
|
ignoreLocation
|
|
});
|
|
if (isMatch) {
|
|
hasMatches = true;
|
|
}
|
|
totalScore += score;
|
|
if (isMatch && indices) {
|
|
allIndices = [...allIndices, ...indices];
|
|
}
|
|
});
|
|
let result = {
|
|
isMatch: hasMatches,
|
|
score: hasMatches ? totalScore / this.chunks.length : 1
|
|
};
|
|
if (hasMatches && includeMatches) {
|
|
result.indices = allIndices;
|
|
}
|
|
return result;
|
|
}
|
|
};
|
|
var BaseMatch = class {
|
|
constructor(pattern) {
|
|
this.pattern = pattern;
|
|
}
|
|
static isMultiMatch(pattern) {
|
|
return getMatch(pattern, this.multiRegex);
|
|
}
|
|
static isSingleMatch(pattern) {
|
|
return getMatch(pattern, this.singleRegex);
|
|
}
|
|
search() {
|
|
}
|
|
};
|
|
function getMatch(pattern, exp) {
|
|
const matches = pattern.match(exp);
|
|
return matches ? matches[1] : null;
|
|
}
|
|
var ExactMatch = class extends BaseMatch {
|
|
constructor(pattern) {
|
|
super(pattern);
|
|
}
|
|
static get type() {
|
|
return "exact";
|
|
}
|
|
static get multiRegex() {
|
|
return /^="(.*)"$/;
|
|
}
|
|
static get singleRegex() {
|
|
return /^=(.*)$/;
|
|
}
|
|
search(text2) {
|
|
const isMatch = text2 === this.pattern;
|
|
return {
|
|
isMatch,
|
|
score: isMatch ? 0 : 1,
|
|
indices: [0, this.pattern.length - 1]
|
|
};
|
|
}
|
|
};
|
|
var InverseExactMatch = class extends BaseMatch {
|
|
constructor(pattern) {
|
|
super(pattern);
|
|
}
|
|
static get type() {
|
|
return "inverse-exact";
|
|
}
|
|
static get multiRegex() {
|
|
return /^!"(.*)"$/;
|
|
}
|
|
static get singleRegex() {
|
|
return /^!(.*)$/;
|
|
}
|
|
search(text2) {
|
|
const index = text2.indexOf(this.pattern);
|
|
const isMatch = index === -1;
|
|
return {
|
|
isMatch,
|
|
score: isMatch ? 0 : 1,
|
|
indices: [0, text2.length - 1]
|
|
};
|
|
}
|
|
};
|
|
var PrefixExactMatch = class extends BaseMatch {
|
|
constructor(pattern) {
|
|
super(pattern);
|
|
}
|
|
static get type() {
|
|
return "prefix-exact";
|
|
}
|
|
static get multiRegex() {
|
|
return /^\^"(.*)"$/;
|
|
}
|
|
static get singleRegex() {
|
|
return /^\^(.*)$/;
|
|
}
|
|
search(text2) {
|
|
const isMatch = text2.startsWith(this.pattern);
|
|
return {
|
|
isMatch,
|
|
score: isMatch ? 0 : 1,
|
|
indices: [0, this.pattern.length - 1]
|
|
};
|
|
}
|
|
};
|
|
var InversePrefixExactMatch = class extends BaseMatch {
|
|
constructor(pattern) {
|
|
super(pattern);
|
|
}
|
|
static get type() {
|
|
return "inverse-prefix-exact";
|
|
}
|
|
static get multiRegex() {
|
|
return /^!\^"(.*)"$/;
|
|
}
|
|
static get singleRegex() {
|
|
return /^!\^(.*)$/;
|
|
}
|
|
search(text2) {
|
|
const isMatch = !text2.startsWith(this.pattern);
|
|
return {
|
|
isMatch,
|
|
score: isMatch ? 0 : 1,
|
|
indices: [0, text2.length - 1]
|
|
};
|
|
}
|
|
};
|
|
var SuffixExactMatch = class extends BaseMatch {
|
|
constructor(pattern) {
|
|
super(pattern);
|
|
}
|
|
static get type() {
|
|
return "suffix-exact";
|
|
}
|
|
static get multiRegex() {
|
|
return /^"(.*)"\$$/;
|
|
}
|
|
static get singleRegex() {
|
|
return /^(.*)\$$/;
|
|
}
|
|
search(text2) {
|
|
const isMatch = text2.endsWith(this.pattern);
|
|
return {
|
|
isMatch,
|
|
score: isMatch ? 0 : 1,
|
|
indices: [text2.length - this.pattern.length, text2.length - 1]
|
|
};
|
|
}
|
|
};
|
|
var InverseSuffixExactMatch = class extends BaseMatch {
|
|
constructor(pattern) {
|
|
super(pattern);
|
|
}
|
|
static get type() {
|
|
return "inverse-suffix-exact";
|
|
}
|
|
static get multiRegex() {
|
|
return /^!"(.*)"\$$/;
|
|
}
|
|
static get singleRegex() {
|
|
return /^!(.*)\$$/;
|
|
}
|
|
search(text2) {
|
|
const isMatch = !text2.endsWith(this.pattern);
|
|
return {
|
|
isMatch,
|
|
score: isMatch ? 0 : 1,
|
|
indices: [0, text2.length - 1]
|
|
};
|
|
}
|
|
};
|
|
var FuzzyMatch = class extends BaseMatch {
|
|
constructor(pattern, {
|
|
location = Config.location,
|
|
threshold = Config.threshold,
|
|
distance = Config.distance,
|
|
includeMatches = Config.includeMatches,
|
|
findAllMatches = Config.findAllMatches,
|
|
minMatchCharLength = Config.minMatchCharLength,
|
|
isCaseSensitive = Config.isCaseSensitive,
|
|
ignoreLocation = Config.ignoreLocation
|
|
} = {}) {
|
|
super(pattern);
|
|
this._bitapSearch = new BitapSearch(pattern, {
|
|
location,
|
|
threshold,
|
|
distance,
|
|
includeMatches,
|
|
findAllMatches,
|
|
minMatchCharLength,
|
|
isCaseSensitive,
|
|
ignoreLocation
|
|
});
|
|
}
|
|
static get type() {
|
|
return "fuzzy";
|
|
}
|
|
static get multiRegex() {
|
|
return /^"(.*)"$/;
|
|
}
|
|
static get singleRegex() {
|
|
return /^(.*)$/;
|
|
}
|
|
search(text2) {
|
|
return this._bitapSearch.searchIn(text2);
|
|
}
|
|
};
|
|
var IncludeMatch = class extends BaseMatch {
|
|
constructor(pattern) {
|
|
super(pattern);
|
|
}
|
|
static get type() {
|
|
return "include";
|
|
}
|
|
static get multiRegex() {
|
|
return /^'"(.*)"$/;
|
|
}
|
|
static get singleRegex() {
|
|
return /^'(.*)$/;
|
|
}
|
|
search(text2) {
|
|
let location = 0;
|
|
let index;
|
|
const indices = [];
|
|
const patternLen = this.pattern.length;
|
|
while ((index = text2.indexOf(this.pattern, location)) > -1) {
|
|
location = index + patternLen;
|
|
indices.push([index, location - 1]);
|
|
}
|
|
const isMatch = !!indices.length;
|
|
return {
|
|
isMatch,
|
|
score: isMatch ? 0 : 1,
|
|
indices
|
|
};
|
|
}
|
|
};
|
|
var searchers = [
|
|
ExactMatch,
|
|
IncludeMatch,
|
|
PrefixExactMatch,
|
|
InversePrefixExactMatch,
|
|
InverseSuffixExactMatch,
|
|
SuffixExactMatch,
|
|
InverseExactMatch,
|
|
FuzzyMatch
|
|
];
|
|
var searchersLen = searchers.length;
|
|
var SPACE_RE = / +(?=(?:[^\"]*\"[^\"]*\")*[^\"]*$)/;
|
|
var OR_TOKEN = "|";
|
|
function parseQuery(pattern, options = {}) {
|
|
return pattern.split(OR_TOKEN).map((item) => {
|
|
let query = item.trim().split(SPACE_RE).filter((item2) => item2 && !!item2.trim());
|
|
let results = [];
|
|
for (let i = 0, len = query.length; i < len; i += 1) {
|
|
const queryItem = query[i];
|
|
let found = false;
|
|
let idx = -1;
|
|
while (!found && ++idx < searchersLen) {
|
|
const searcher = searchers[idx];
|
|
let token = searcher.isMultiMatch(queryItem);
|
|
if (token) {
|
|
results.push(new searcher(token, options));
|
|
found = true;
|
|
}
|
|
}
|
|
if (found) {
|
|
continue;
|
|
}
|
|
idx = -1;
|
|
while (++idx < searchersLen) {
|
|
const searcher = searchers[idx];
|
|
let token = searcher.isSingleMatch(queryItem);
|
|
if (token) {
|
|
results.push(new searcher(token, options));
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
return results;
|
|
});
|
|
}
|
|
var MultiMatchSet = /* @__PURE__ */ new Set([FuzzyMatch.type, IncludeMatch.type]);
|
|
var ExtendedSearch = class {
|
|
constructor(pattern, {
|
|
isCaseSensitive = Config.isCaseSensitive,
|
|
includeMatches = Config.includeMatches,
|
|
minMatchCharLength = Config.minMatchCharLength,
|
|
ignoreLocation = Config.ignoreLocation,
|
|
findAllMatches = Config.findAllMatches,
|
|
location = Config.location,
|
|
threshold = Config.threshold,
|
|
distance = Config.distance
|
|
} = {}) {
|
|
this.query = null;
|
|
this.options = {
|
|
isCaseSensitive,
|
|
includeMatches,
|
|
minMatchCharLength,
|
|
findAllMatches,
|
|
ignoreLocation,
|
|
location,
|
|
threshold,
|
|
distance
|
|
};
|
|
this.pattern = isCaseSensitive ? pattern : pattern.toLowerCase();
|
|
this.query = parseQuery(this.pattern, this.options);
|
|
}
|
|
static condition(_, options) {
|
|
return options.useExtendedSearch;
|
|
}
|
|
searchIn(text2) {
|
|
const query = this.query;
|
|
if (!query) {
|
|
return {
|
|
isMatch: false,
|
|
score: 1
|
|
};
|
|
}
|
|
const { includeMatches, isCaseSensitive } = this.options;
|
|
text2 = isCaseSensitive ? text2 : text2.toLowerCase();
|
|
let numMatches = 0;
|
|
let allIndices = [];
|
|
let totalScore = 0;
|
|
for (let i = 0, qLen = query.length; i < qLen; i += 1) {
|
|
const searchers2 = query[i];
|
|
allIndices.length = 0;
|
|
numMatches = 0;
|
|
for (let j = 0, pLen = searchers2.length; j < pLen; j += 1) {
|
|
const searcher = searchers2[j];
|
|
const { isMatch, indices, score } = searcher.search(text2);
|
|
if (isMatch) {
|
|
numMatches += 1;
|
|
totalScore += score;
|
|
if (includeMatches) {
|
|
const type = searcher.constructor.type;
|
|
if (MultiMatchSet.has(type)) {
|
|
allIndices = [...allIndices, ...indices];
|
|
} else {
|
|
allIndices.push(indices);
|
|
}
|
|
}
|
|
} else {
|
|
totalScore = 0;
|
|
numMatches = 0;
|
|
allIndices.length = 0;
|
|
break;
|
|
}
|
|
}
|
|
if (numMatches) {
|
|
let result = {
|
|
isMatch: true,
|
|
score: totalScore / numMatches
|
|
};
|
|
if (includeMatches) {
|
|
result.indices = allIndices;
|
|
}
|
|
return result;
|
|
}
|
|
}
|
|
return {
|
|
isMatch: false,
|
|
score: 1
|
|
};
|
|
}
|
|
};
|
|
var registeredSearchers = [];
|
|
function register(...args) {
|
|
registeredSearchers.push(...args);
|
|
}
|
|
function createSearcher(pattern, options) {
|
|
for (let i = 0, len = registeredSearchers.length; i < len; i += 1) {
|
|
let searcherClass = registeredSearchers[i];
|
|
if (searcherClass.condition(pattern, options)) {
|
|
return new searcherClass(pattern, options);
|
|
}
|
|
}
|
|
return new BitapSearch(pattern, options);
|
|
}
|
|
var LogicalOperator = {
|
|
AND: "$and",
|
|
OR: "$or"
|
|
};
|
|
var KeyType = {
|
|
PATH: "$path",
|
|
PATTERN: "$val"
|
|
};
|
|
var isExpression = (query) => !!(query[LogicalOperator.AND] || query[LogicalOperator.OR]);
|
|
var isPath = (query) => !!query[KeyType.PATH];
|
|
var isLeaf = (query) => !isArray(query) && isObject(query) && !isExpression(query);
|
|
var convertToExplicit = (query) => ({
|
|
[LogicalOperator.AND]: Object.keys(query).map((key) => ({
|
|
[key]: query[key]
|
|
}))
|
|
});
|
|
function parse(query, options, { auto = true } = {}) {
|
|
const next = (query2) => {
|
|
let keys = Object.keys(query2);
|
|
const isQueryPath = isPath(query2);
|
|
if (!isQueryPath && keys.length > 1 && !isExpression(query2)) {
|
|
return next(convertToExplicit(query2));
|
|
}
|
|
if (isLeaf(query2)) {
|
|
const key = isQueryPath ? query2[KeyType.PATH] : keys[0];
|
|
const pattern = isQueryPath ? query2[KeyType.PATTERN] : query2[key];
|
|
if (!isString(pattern)) {
|
|
throw new Error(LOGICAL_SEARCH_INVALID_QUERY_FOR_KEY(key));
|
|
}
|
|
const obj = {
|
|
keyId: createKeyId(key),
|
|
pattern
|
|
};
|
|
if (auto) {
|
|
obj.searcher = createSearcher(pattern, options);
|
|
}
|
|
return obj;
|
|
}
|
|
let node = {
|
|
children: [],
|
|
operator: keys[0]
|
|
};
|
|
keys.forEach((key) => {
|
|
const value = query2[key];
|
|
if (isArray(value)) {
|
|
value.forEach((item) => {
|
|
node.children.push(next(item));
|
|
});
|
|
}
|
|
});
|
|
return node;
|
|
};
|
|
if (!isExpression(query)) {
|
|
query = convertToExplicit(query);
|
|
}
|
|
return next(query);
|
|
}
|
|
function computeScore(results, { ignoreFieldNorm = Config.ignoreFieldNorm }) {
|
|
results.forEach((result) => {
|
|
let totalScore = 1;
|
|
result.matches.forEach(({ key, norm: norm2, score }) => {
|
|
const weight = key ? key.weight : null;
|
|
totalScore *= Math.pow(
|
|
score === 0 && weight ? Number.EPSILON : score,
|
|
(weight || 1) * (ignoreFieldNorm ? 1 : norm2)
|
|
);
|
|
});
|
|
result.score = totalScore;
|
|
});
|
|
}
|
|
function transformMatches(result, data) {
|
|
const matches = result.matches;
|
|
data.matches = [];
|
|
if (!isDefined(matches)) {
|
|
return;
|
|
}
|
|
matches.forEach((match) => {
|
|
if (!isDefined(match.indices) || !match.indices.length) {
|
|
return;
|
|
}
|
|
const { indices, value } = match;
|
|
let obj = {
|
|
indices,
|
|
value
|
|
};
|
|
if (match.key) {
|
|
obj.key = match.key.src;
|
|
}
|
|
if (match.idx > -1) {
|
|
obj.refIndex = match.idx;
|
|
}
|
|
data.matches.push(obj);
|
|
});
|
|
}
|
|
function transformScore(result, data) {
|
|
data.score = result.score;
|
|
}
|
|
function format(results, docs, {
|
|
includeMatches = Config.includeMatches,
|
|
includeScore = Config.includeScore
|
|
} = {}) {
|
|
const transformers = [];
|
|
if (includeMatches)
|
|
transformers.push(transformMatches);
|
|
if (includeScore)
|
|
transformers.push(transformScore);
|
|
return results.map((result) => {
|
|
const { idx } = result;
|
|
const data = {
|
|
item: docs[idx],
|
|
refIndex: idx
|
|
};
|
|
if (transformers.length) {
|
|
transformers.forEach((transformer) => {
|
|
transformer(result, data);
|
|
});
|
|
}
|
|
return data;
|
|
});
|
|
}
|
|
var Fuse = class {
|
|
constructor(docs, options = {}, index) {
|
|
this.options = { ...Config, ...options };
|
|
if (this.options.useExtendedSearch && false) {
|
|
throw new Error(EXTENDED_SEARCH_UNAVAILABLE);
|
|
}
|
|
this._keyStore = new KeyStore(this.options.keys);
|
|
this.setCollection(docs, index);
|
|
}
|
|
setCollection(docs, index) {
|
|
this._docs = docs;
|
|
if (index && !(index instanceof FuseIndex)) {
|
|
throw new Error(INCORRECT_INDEX_TYPE);
|
|
}
|
|
this._myIndex = index || createIndex(this.options.keys, this._docs, {
|
|
getFn: this.options.getFn,
|
|
fieldNormWeight: this.options.fieldNormWeight
|
|
});
|
|
}
|
|
add(doc) {
|
|
if (!isDefined(doc)) {
|
|
return;
|
|
}
|
|
this._docs.push(doc);
|
|
this._myIndex.add(doc);
|
|
}
|
|
remove(predicate = () => false) {
|
|
const results = [];
|
|
for (let i = 0, len = this._docs.length; i < len; i += 1) {
|
|
const doc = this._docs[i];
|
|
if (predicate(doc, i)) {
|
|
this.removeAt(i);
|
|
i -= 1;
|
|
len -= 1;
|
|
results.push(doc);
|
|
}
|
|
}
|
|
return results;
|
|
}
|
|
removeAt(idx) {
|
|
this._docs.splice(idx, 1);
|
|
this._myIndex.removeAt(idx);
|
|
}
|
|
getIndex() {
|
|
return this._myIndex;
|
|
}
|
|
search(query, { limit = -1 } = {}) {
|
|
const {
|
|
includeMatches,
|
|
includeScore,
|
|
shouldSort,
|
|
sortFn,
|
|
ignoreFieldNorm
|
|
} = this.options;
|
|
let results = isString(query) ? isString(this._docs[0]) ? this._searchStringList(query) : this._searchObjectList(query) : this._searchLogical(query);
|
|
computeScore(results, { ignoreFieldNorm });
|
|
if (shouldSort) {
|
|
results.sort(sortFn);
|
|
}
|
|
if (isNumber(limit) && limit > -1) {
|
|
results = results.slice(0, limit);
|
|
}
|
|
return format(results, this._docs, {
|
|
includeMatches,
|
|
includeScore
|
|
});
|
|
}
|
|
_searchStringList(query) {
|
|
const searcher = createSearcher(query, this.options);
|
|
const { records } = this._myIndex;
|
|
const results = [];
|
|
records.forEach(({ v: text2, i: idx, n: norm2 }) => {
|
|
if (!isDefined(text2)) {
|
|
return;
|
|
}
|
|
const { isMatch, score, indices } = searcher.searchIn(text2);
|
|
if (isMatch) {
|
|
results.push({
|
|
item: text2,
|
|
idx,
|
|
matches: [{ score, value: text2, norm: norm2, indices }]
|
|
});
|
|
}
|
|
});
|
|
return results;
|
|
}
|
|
_searchLogical(query) {
|
|
const expression = parse(query, this.options);
|
|
const evaluate = (node, item, idx) => {
|
|
if (!node.children) {
|
|
const { keyId, searcher } = node;
|
|
const matches = this._findMatches({
|
|
key: this._keyStore.get(keyId),
|
|
value: this._myIndex.getValueForItemAtKeyId(item, keyId),
|
|
searcher
|
|
});
|
|
if (matches && matches.length) {
|
|
return [
|
|
{
|
|
idx,
|
|
item,
|
|
matches
|
|
}
|
|
];
|
|
}
|
|
return [];
|
|
}
|
|
const res = [];
|
|
for (let i = 0, len = node.children.length; i < len; i += 1) {
|
|
const child = node.children[i];
|
|
const result = evaluate(child, item, idx);
|
|
if (result.length) {
|
|
res.push(...result);
|
|
} else if (node.operator === LogicalOperator.AND) {
|
|
return [];
|
|
}
|
|
}
|
|
return res;
|
|
};
|
|
const records = this._myIndex.records;
|
|
const resultMap = {};
|
|
const results = [];
|
|
records.forEach(({ $: item, i: idx }) => {
|
|
if (isDefined(item)) {
|
|
let expResults = evaluate(expression, item, idx);
|
|
if (expResults.length) {
|
|
if (!resultMap[idx]) {
|
|
resultMap[idx] = { idx, item, matches: [] };
|
|
results.push(resultMap[idx]);
|
|
}
|
|
expResults.forEach(({ matches }) => {
|
|
resultMap[idx].matches.push(...matches);
|
|
});
|
|
}
|
|
}
|
|
});
|
|
return results;
|
|
}
|
|
_searchObjectList(query) {
|
|
const searcher = createSearcher(query, this.options);
|
|
const { keys, records } = this._myIndex;
|
|
const results = [];
|
|
records.forEach(({ $: item, i: idx }) => {
|
|
if (!isDefined(item)) {
|
|
return;
|
|
}
|
|
let matches = [];
|
|
keys.forEach((key, keyIndex) => {
|
|
matches.push(
|
|
...this._findMatches({
|
|
key,
|
|
value: item[keyIndex],
|
|
searcher
|
|
})
|
|
);
|
|
});
|
|
if (matches.length) {
|
|
results.push({
|
|
idx,
|
|
item,
|
|
matches
|
|
});
|
|
}
|
|
});
|
|
return results;
|
|
}
|
|
_findMatches({ key, value, searcher }) {
|
|
if (!isDefined(value)) {
|
|
return [];
|
|
}
|
|
let matches = [];
|
|
if (isArray(value)) {
|
|
value.forEach(({ v: text2, i: idx, n: norm2 }) => {
|
|
if (!isDefined(text2)) {
|
|
return;
|
|
}
|
|
const { isMatch, score, indices } = searcher.searchIn(text2);
|
|
if (isMatch) {
|
|
matches.push({
|
|
score,
|
|
key,
|
|
value: text2,
|
|
idx,
|
|
norm: norm2,
|
|
indices
|
|
});
|
|
}
|
|
});
|
|
} else {
|
|
const { v: text2, n: norm2 } = value;
|
|
const { isMatch, score, indices } = searcher.searchIn(text2);
|
|
if (isMatch) {
|
|
matches.push({ score, key, value: text2, norm: norm2, indices });
|
|
}
|
|
}
|
|
return matches;
|
|
}
|
|
};
|
|
Fuse.version = "7.0.0";
|
|
Fuse.createIndex = createIndex;
|
|
Fuse.parseIndex = parseIndex;
|
|
Fuse.config = Config;
|
|
{
|
|
Fuse.parseQuery = parse;
|
|
}
|
|
{
|
|
register(ExtendedSearch);
|
|
}
|
|
|
|
// src/view/helpers/document-search.ts
|
|
var _searchTriggeredMinimap;
|
|
var DocumentSearch = class {
|
|
constructor(view) {
|
|
this.view = view;
|
|
__privateAdd(this, _searchTriggeredMinimap, void 0);
|
|
this.updateIndex = () => {
|
|
const documentState = this.view.documentStore.getValue();
|
|
const viewState = this.view.viewStore.getValue();
|
|
const items = [];
|
|
for (const id2 of Object.keys(documentState.document.content)) {
|
|
const content = documentState.document.content[id2]?.content;
|
|
if (content) {
|
|
items.push({
|
|
id: id2,
|
|
content
|
|
});
|
|
}
|
|
}
|
|
this.fuse = new Fuse(items, {
|
|
keys: ["content"],
|
|
threshold: viewState.search.fuzzySearch ? 0.4 : 0.1,
|
|
shouldSort: true,
|
|
isCaseSensitive: false,
|
|
ignoreLocation: true
|
|
});
|
|
};
|
|
this.resetIndex = () => {
|
|
this.fuse = null;
|
|
};
|
|
this.search = (query) => {
|
|
if (!this.fuse) {
|
|
this.updateIndex();
|
|
}
|
|
return this.fuse.search(query);
|
|
};
|
|
}
|
|
get searchTriggeredMinimap() {
|
|
return __privateGet(this, _searchTriggeredMinimap);
|
|
}
|
|
set searchTriggeredMinimap(value) {
|
|
__privateSet(this, _searchTriggeredMinimap, value);
|
|
}
|
|
};
|
|
_searchTriggeredMinimap = new WeakMap();
|
|
|
|
// src/stores/view/subscriptions/effects/style-rules/style-rules-processor.ts
|
|
var import_obsidian36 = require("obsidian");
|
|
var StyleRulesProcessor = class {
|
|
constructor(view) {
|
|
this.rules = [];
|
|
this.onViewMount = async () => {
|
|
this.setRules();
|
|
this.processRules(null);
|
|
};
|
|
this.onDocumentUpdate = async (action) => {
|
|
this.processRules(action);
|
|
};
|
|
this.onRulesUpdate = async () => {
|
|
this.setRules();
|
|
this.processRules(null);
|
|
};
|
|
this.onViewUnmount = async () => {
|
|
await rulesWorker.run({
|
|
type: "destroy",
|
|
payload: {
|
|
viewId: this.view.id
|
|
}
|
|
});
|
|
this.rules = [];
|
|
};
|
|
this.processRules = (0, import_obsidian36.debounce)(
|
|
async (action) => {
|
|
let results = null;
|
|
if (this.rules.length > 0) {
|
|
const document2 = this.view.documentStore.getValue().document;
|
|
results = await rulesWorker.run({
|
|
type: "process-rules",
|
|
payload: {
|
|
document: document2,
|
|
rules: this.rules,
|
|
action,
|
|
viewId: this.view.id
|
|
}
|
|
});
|
|
}
|
|
this.view.viewStore.dispatch({
|
|
type: "view/style-rules/update-results",
|
|
payload: {
|
|
results
|
|
}
|
|
});
|
|
},
|
|
500
|
|
);
|
|
this.setRules = () => {
|
|
const path = this.view.file?.path;
|
|
invariant(path);
|
|
const rules = this.view.plugin.settings.getValue().styleRules.documents[path];
|
|
this.rules = rules?.rules ?? [];
|
|
};
|
|
this.view = view;
|
|
}
|
|
};
|
|
|
|
// src/helpers/delay.ts
|
|
var delay = async (milliseconds) => {
|
|
return new Promise((resolve) => setTimeout(resolve, milliseconds));
|
|
};
|
|
|
|
// src/stores/view/subscriptions/effects/align-branch/helpers/delay-align.ts
|
|
var delayAlign = (action) => {
|
|
let delay2 = 0;
|
|
if (action.type === "view/left-sidebar/toggle" || action.type === "VIEW/TOGGLE_MINIMAP") {
|
|
delay2 = 300;
|
|
} else if (action.type === "DOCUMENT/DROP_NODE") {
|
|
delay2 = 32;
|
|
}
|
|
return delay2;
|
|
};
|
|
|
|
// src/stores/view/subscriptions/effects/align-branch/helpers/adjust-scroll-behavior.ts
|
|
var adjustScrollBehavior = (action) => {
|
|
let behavior = "smooth";
|
|
if (action?.type === "DOCUMENT/MOVE_NODE") {
|
|
const verticalMove = action.payload.direction === "down" || action.payload.direction === "up";
|
|
if (verticalMove)
|
|
behavior = "instant";
|
|
} else if (action.type === "DOCUMENT/LOAD_FILE") {
|
|
behavior = "instant";
|
|
} else if (action.type === "UI/CHANGE_ZOOM_LEVEL") {
|
|
behavior = "instant";
|
|
}
|
|
return behavior;
|
|
};
|
|
|
|
// src/stores/view/subscriptions/effects/align-branch/create-align-branch-actions/force-center-active-node-v.ts
|
|
var forceCenterActiveNodeV = (action) => {
|
|
let centerActiveNodeV = false;
|
|
centerActiveNodeV = action.type === "view/life-cycle/mount" || action.type === "DOCUMENT/LOAD_FILE";
|
|
if (!centerActiveNodeV) {
|
|
const type = getDocumentEventType(action.type);
|
|
centerActiveNodeV = !!type.dropOrMove || !!type.changeHistory || !!type.createOrDelete && action.type !== "DOCUMENT/INSERT_NODE";
|
|
}
|
|
return centerActiveNodeV;
|
|
};
|
|
|
|
// src/stores/view/subscriptions/effects/align-branch/create-align-branch-actions/lazy-vertical-scrolling-mode.ts
|
|
var lazyVerticalScrollingMode = (context, action) => {
|
|
const actions = [];
|
|
if (action.type === "DOCUMENT/INSERT_NODE") {
|
|
if (action.payload.position === "right") {
|
|
actions.push({
|
|
action: "20/active-node/vertical/align-with-parent"
|
|
});
|
|
} else {
|
|
actions.push({ action: "20/active-node/vertical/reveal" });
|
|
}
|
|
} else {
|
|
actions.push({ action: "20/active-node/vertical/reveal" });
|
|
const previousActiveBranch = context.previousActiveBranch;
|
|
const activeBranch = context.activeBranch;
|
|
if (previousActiveBranch) {
|
|
const isChildOfPreviousNode = previousActiveBranch.group === activeBranch.group || previousActiveBranch.node === activeBranch.group;
|
|
const isParentOfPreviousNode = previousActiveBranch.group === activeBranch.node;
|
|
const isMovingLeft = isParentOfPreviousNode || !isChildOfPreviousNode && activeBranch.sortedParentNodes.every((p, i) => {
|
|
return previousActiveBranch.sortedParentNodes[i] === p;
|
|
});
|
|
if (!(isChildOfPreviousNode || isMovingLeft)) {
|
|
actions.push({
|
|
action: "30/parents/vertical/align-with-active-node"
|
|
});
|
|
}
|
|
if (!isParentOfPreviousNode) {
|
|
actions.push({
|
|
action: "40/children/vertical/align-with-active-node"
|
|
});
|
|
}
|
|
}
|
|
}
|
|
return actions;
|
|
};
|
|
|
|
// src/stores/view/subscriptions/effects/align-branch/create-align-branch-actions/outline-scrolling-actions.ts
|
|
var outlineScrollingActions = (context, action) => {
|
|
const actions = [];
|
|
const settings = context.alignBranchSettings;
|
|
const forceCenterActiveNodeV2 = action.type === "view/life-cycle/mount" || action.type === "DOCUMENT/LOAD_FILE";
|
|
if (forceCenterActiveNodeV2) {
|
|
actions.push({ action: "20/active-node/horizontal/center" });
|
|
actions.push({ action: "20/active-node/vertical/center" });
|
|
} else {
|
|
if (settings.centerActiveNodeH) {
|
|
actions.push({ action: "20/active-node/horizontal/center" });
|
|
} else {
|
|
actions.push({ action: "20/active-node/horizontal/reveal" });
|
|
}
|
|
if (settings.centerActiveNodeV) {
|
|
actions.push({ action: "20/active-node/vertical/center" });
|
|
} else {
|
|
actions.push({ action: "20/active-node/vertical/reveal" });
|
|
}
|
|
}
|
|
if (action.type === "view/life-cycle/mount") {
|
|
actions.push({
|
|
action: "10/first-column/horizontal/move-to-the-left"
|
|
});
|
|
}
|
|
return actions;
|
|
};
|
|
|
|
// src/stores/view/subscriptions/effects/align-branch/create-align-branch-actions/force-center-active-node-h.ts
|
|
var forceCenterActiveNodeH = (context, action) => {
|
|
if (action.type === "view/life-cycle/mount") {
|
|
return context.activeBranch.sortedParentNodes.length < 2;
|
|
}
|
|
};
|
|
|
|
// src/stores/view/subscriptions/effects/align-branch/create-align-branch-actions/create-align-branch-actions.ts
|
|
var createAlignBranchActions = (context, action) => {
|
|
const actions = [];
|
|
if (action.type === "view/align-branch/reveal-node") {
|
|
actions.push({ action: "20/active-node/vertical/reveal" });
|
|
actions.push({ action: "20/active-node/horizontal/reveal" });
|
|
return actions;
|
|
} else if (action.type === "view/align-branch/center-node") {
|
|
actions.push({ action: "20/active-node/vertical/center" });
|
|
actions.push({ action: "20/active-node/horizontal/center" });
|
|
if (!context.outlineMode) {
|
|
actions.push({ action: "30/parents/vertical/center" });
|
|
actions.push({ action: "40/children/vertical/center" });
|
|
}
|
|
return actions;
|
|
}
|
|
if (context.outlineMode) {
|
|
return outlineScrollingActions(context, action);
|
|
}
|
|
const settings = context.alignBranchSettings;
|
|
if (settings.centerActiveNodeH || forceCenterActiveNodeH(context, action)) {
|
|
actions.push({ action: "20/active-node/horizontal/center" });
|
|
} else {
|
|
actions.push({ action: "20/active-node/horizontal/reveal" });
|
|
}
|
|
if (settings.centerActiveNodeV || forceCenterActiveNodeV(action)) {
|
|
actions.push({ action: "20/active-node/vertical/center" });
|
|
actions.push({ action: "30/parents/vertical/center" });
|
|
actions.push({ action: "40/children/vertical/center" });
|
|
} else {
|
|
actions.push(...lazyVerticalScrollingMode(context, action));
|
|
}
|
|
if (action.type === "view/life-cycle/mount" || action.type === "DOCUMENT/SPLIT_NODE" || action.type === "DOCUMENT/LOAD_FILE") {
|
|
actions.push({ action: "50/inactive-columns/vertical/move-up" });
|
|
}
|
|
if (!settings.centerActiveNodeH && (action.type === "view/life-cycle/mount" || action.type === "UI/CHANGE_ZOOM_LEVEL")) {
|
|
actions.push({
|
|
action: "10/first-column/horizontal/move-to-the-left"
|
|
});
|
|
}
|
|
return actions;
|
|
};
|
|
|
|
// src/lib/align-element/constants.ts
|
|
var LEFT_PADDING = 15;
|
|
var CONTROLS_BAR_WIDTH = 60;
|
|
var BREADCRUMBS_HEIGHT = 50;
|
|
var TOOLBAR_HEIGHT = 50;
|
|
var THRESHOLD = 5;
|
|
|
|
// src/lib/align-element/helpers/calculate-scroll-left.ts
|
|
var calculateScrollLeft = (elementRect, containerRect, center, scrollToTheLeft = false) => {
|
|
const viewPortIsWideEnough = containerRect.width > elementRect.width;
|
|
const deltaRight = containerRect.right - CONTROLS_BAR_WIDTH - elementRect.right;
|
|
const deltaLeft = containerRect.left + LEFT_PADDING - elementRect.left;
|
|
const leftSideIsVisible = deltaLeft < 0;
|
|
const rightSideIsVisible = deltaRight > 0;
|
|
let scrollLeft = 0;
|
|
if (!viewPortIsWideEnough) {
|
|
scrollLeft = deltaLeft;
|
|
} else if (center) {
|
|
const horizontalMiddle = containerRect.left + containerRect.width / 2;
|
|
const elementMiddle = elementRect.left + elementRect.width / 2;
|
|
scrollLeft = horizontalMiddle - elementMiddle;
|
|
} else if (!leftSideIsVisible || scrollToTheLeft) {
|
|
scrollLeft = deltaLeft;
|
|
} else if (!rightSideIsVisible) {
|
|
scrollLeft = deltaRight;
|
|
}
|
|
return scrollLeft;
|
|
};
|
|
|
|
// src/lib/align-element/align-element-horizontally.ts
|
|
var alignElementHorizontally = (context, id2, center, scrollToTheLeft = false) => {
|
|
const element2 = getElementById(context.container, id2);
|
|
if (!element2)
|
|
return;
|
|
const column = element2.matchParent(".column");
|
|
if (!column)
|
|
return;
|
|
const elementRect = element2.getBoundingClientRect();
|
|
const scrollLeft = calculateScrollLeft(
|
|
elementRect,
|
|
context.containerRect,
|
|
center,
|
|
scrollToTheLeft
|
|
);
|
|
if (Math.abs(scrollLeft) > THRESHOLD)
|
|
context.container.scrollBy({
|
|
left: scrollLeft * -1,
|
|
behavior: scrollToTheLeft ? "instant" : context.alignBranchSettings.behavior
|
|
});
|
|
else {
|
|
context.container.scrollBy({
|
|
left: 0,
|
|
behavior: "instant"
|
|
});
|
|
}
|
|
return column.id;
|
|
};
|
|
|
|
// src/stores/view/subscriptions/effects/align-branch/run-align-branch-actions/actions/scroll-first-column-to-the-left.ts
|
|
var scrollFirstColumnToTheLeft = (context) => {
|
|
const firstColumnId = context.columns[0]?.id;
|
|
if (!firstColumnId)
|
|
return;
|
|
alignElementHorizontally(context, firstColumnId, false, true);
|
|
};
|
|
|
|
// src/lib/align-element/helpers/calculate-scroll-top.ts
|
|
var calculateScrollTop = (elementRect, containerRect, center) => {
|
|
const viewPortIsTallEnough = containerRect.height >= elementRect.height;
|
|
const deltaTop = containerRect.top + TOOLBAR_HEIGHT - elementRect.top;
|
|
const deltaBottom = containerRect.bottom - BREADCRUMBS_HEIGHT - elementRect.bottom;
|
|
const bottomIsVisible = deltaBottom > 0;
|
|
const topIsVisible = deltaTop < 0;
|
|
let scrollTop = 0;
|
|
if (!viewPortIsTallEnough) {
|
|
scrollTop = deltaTop;
|
|
} else if (center) {
|
|
const verticalMiddle = containerRect.height / 2;
|
|
scrollTop = verticalMiddle - (elementRect.top - containerRect.top + elementRect.height / 2);
|
|
} else {
|
|
if (!topIsVisible) {
|
|
scrollTop = deltaTop;
|
|
} else if (!bottomIsVisible) {
|
|
scrollTop = deltaBottom;
|
|
}
|
|
}
|
|
return scrollTop;
|
|
};
|
|
|
|
// src/lib/align-element/helpers/calculate-scroll-top-relative.ts
|
|
var calculateScrollTopRelative = (elementRect, containerRect, activeCardRect) => {
|
|
const viewPortIsTallEnough = containerRect.height >= elementRect.height;
|
|
const deltaTop = containerRect.top + TOOLBAR_HEIGHT - elementRect.top;
|
|
let scrollTop = 0;
|
|
if (!viewPortIsTallEnough) {
|
|
scrollTop = deltaTop;
|
|
} else {
|
|
const verticalMiddle = activeCardRect.top + activeCardRect.height / 2;
|
|
scrollTop = verticalMiddle - (elementRect.top + elementRect.height / 2);
|
|
const elementTopVisible = elementRect.top + scrollTop >= containerRect.top + TOOLBAR_HEIGHT;
|
|
const elementBottomVisible = elementRect.bottom + scrollTop <= containerRect.bottom - BREADCRUMBS_HEIGHT;
|
|
if (!elementTopVisible) {
|
|
scrollTop += containerRect.top + TOOLBAR_HEIGHT - (elementRect.top + scrollTop);
|
|
} else if (!elementBottomVisible) {
|
|
scrollTop += containerRect.bottom - BREADCRUMBS_HEIGHT - (elementRect.bottom + scrollTop);
|
|
}
|
|
}
|
|
return scrollTop;
|
|
};
|
|
|
|
// src/lib/align-element/align-element-vertically.ts
|
|
var alignVertically = (context, column, elementRect, relativeId, center) => {
|
|
let relativeRect = null;
|
|
if (relativeId && context.state.rects.has(relativeId)) {
|
|
relativeRect = context.state.rects.get(relativeId);
|
|
} else if (relativeId) {
|
|
const relativeElement = getElementById(context.container, relativeId);
|
|
if (relativeElement) {
|
|
relativeRect = relativeElement.getBoundingClientRect();
|
|
}
|
|
}
|
|
const scrollTop = relativeRect ? calculateScrollTopRelative(
|
|
elementRect,
|
|
context.containerRect,
|
|
relativeRect
|
|
) : calculateScrollTop(elementRect, context.containerRect, center);
|
|
if (Math.abs(scrollTop) > THRESHOLD) {
|
|
column.scrollBy({
|
|
top: scrollTop * -1 / context.alignBranchSettings.zoomLevel,
|
|
behavior: context.alignBranchSettings.behavior
|
|
});
|
|
} else {
|
|
column.scrollBy({
|
|
top: 0,
|
|
behavior: "instant"
|
|
});
|
|
}
|
|
return {
|
|
height: elementRect.height,
|
|
top: elementRect.top + scrollTop
|
|
};
|
|
};
|
|
var alignElementVertically = (context, id2, relativeId, center) => {
|
|
const element2 = getElementById(context.container, id2);
|
|
if (!element2)
|
|
return;
|
|
const column = element2.matchParent(".column");
|
|
if (!column)
|
|
return;
|
|
const elementRect = element2.getBoundingClientRect();
|
|
const rect = alignVertically(
|
|
context,
|
|
column,
|
|
elementRect,
|
|
relativeId,
|
|
center
|
|
);
|
|
if (!center && (id2 === context.activeBranch.group || id2 === context.activeBranch.node)) {
|
|
context.state.rects.set(id2, rect);
|
|
}
|
|
};
|
|
|
|
// src/stores/view/subscriptions/effects/align-branch/run-align-branch-actions/actions/align-parents-nodes.ts
|
|
var alignParentsNodes = (context, relativeId) => {
|
|
for (const id2 of context.activeBranch.sortedParentNodes) {
|
|
alignElementVertically(context, id2, relativeId, true);
|
|
}
|
|
};
|
|
|
|
// src/lib/align-element/align-group-of-elements-vertically.ts
|
|
var alignGroupOfElementsVertically = (context, column, ids, relativeId, center = true) => {
|
|
const elements = ids.map((id2) => getElementById(context.container, id2)).filter((x) => x);
|
|
const elementRect = getCombinedBoundingClientRect(elements);
|
|
alignVertically(context, column, elementRect, relativeId, center);
|
|
};
|
|
|
|
// src/stores/view/subscriptions/effects/align-branch/helpers/align-child-columns/align-child-group-of-column.ts
|
|
var alignChildGroupOfColumn = (context, column, relativeId, center) => {
|
|
const columnElement = getElementById(context.container, column.id);
|
|
if (!columnElement)
|
|
return;
|
|
const childGroups = context.activeBranch.childGroups;
|
|
const childGroupsOfColumn = column.groups.filter((g) => childGroups.has(g.parentId)).map((g) => "group-" + g.parentId);
|
|
alignGroupOfElementsVertically(
|
|
context,
|
|
columnElement,
|
|
childGroupsOfColumn,
|
|
relativeId,
|
|
center
|
|
);
|
|
};
|
|
|
|
// src/stores/view/subscriptions/effects/align-branch/helpers/align-child-columns/align-child-columns.ts
|
|
var getActiveNodeOfGroup = (context, column, previousActiveNode) => {
|
|
const activeNodesOfColumn = context.activeNodesOfColumn;
|
|
return activeNodesOfColumn[column] && previousActiveNode ? activeNodesOfColumn[column][previousActiveNode] : null;
|
|
};
|
|
var alignChildColumns = (context, relativeId, center) => {
|
|
const columns = context.columns;
|
|
const activeNode = context.activeBranch.node;
|
|
let previousActiveNode = activeNode;
|
|
const activeNodeColumn = findNodeColumn(columns, activeNode);
|
|
for (let i = activeNodeColumn + 1; i < columns.length; i++) {
|
|
const column = columns[i];
|
|
const activeNodeOfGroup = getActiveNodeOfGroup(
|
|
context,
|
|
column.id,
|
|
previousActiveNode
|
|
);
|
|
previousActiveNode = activeNodeOfGroup;
|
|
if (activeNodeOfGroup) {
|
|
alignElementVertically(
|
|
context,
|
|
activeNodeOfGroup,
|
|
relativeId,
|
|
center
|
|
);
|
|
} else {
|
|
const childGroups = context.activeBranch.childGroups;
|
|
const columnHasChildGroup = !!column.groups.find(
|
|
(g) => childGroups.has(g.parentId)
|
|
);
|
|
if (columnHasChildGroup) {
|
|
alignChildGroupOfColumn(context, column, relativeId, center);
|
|
}
|
|
}
|
|
}
|
|
};
|
|
|
|
// src/stores/view/subscriptions/effects/align-branch/helpers/align-child-columns/align-inactive-columns.ts
|
|
var alignInactiveColumns = (context) => {
|
|
const activeNodeColumn = findNodeColumn(
|
|
context.columns,
|
|
context.activeBranch.node
|
|
);
|
|
const inactiveColumns = context.columns.filter((c, i) => {
|
|
return i > activeNodeColumn && !c.groups.some(
|
|
(g) => context.activeBranch.childGroups.has(g.parentId) && g.nodes.length > 0
|
|
);
|
|
});
|
|
for (const column of inactiveColumns) {
|
|
const nodes = column.groups.map((g) => g.nodes).flat();
|
|
alignElementVertically(context, nodes[nodes.length - 1], null, true);
|
|
}
|
|
};
|
|
|
|
// src/stores/view/subscriptions/effects/align-branch/run-align-branch-actions/run-align-branch-actions.ts
|
|
var runAlignBranchActions = (context, actions) => {
|
|
actions = actions.sort((a, b) => a.action.localeCompare(b.action));
|
|
const activeNode = context.activeBranch.node;
|
|
for (const action of actions) {
|
|
const type = action.action;
|
|
if (type === "10/first-column/horizontal/move-to-the-left") {
|
|
scrollFirstColumnToTheLeft(context);
|
|
} else if (type === "20/active-node/horizontal/center") {
|
|
alignElementHorizontally(context, activeNode, true, false);
|
|
} else if (type === "20/active-node/horizontal/reveal") {
|
|
alignElementHorizontally(context, activeNode, false, false);
|
|
} else if (type === "20/active-node/vertical/center") {
|
|
alignElementVertically(context, activeNode, null, true);
|
|
} else if (type === "20/active-node/vertical/reveal") {
|
|
alignElementVertically(context, activeNode, null, false);
|
|
} else if (type === "20/active-node/vertical/align-with-parent") {
|
|
alignElementVertically(
|
|
context,
|
|
activeNode,
|
|
context.activeBranch.group,
|
|
false
|
|
);
|
|
} else if (type === "30/parents/vertical/center") {
|
|
alignParentsNodes(context, null);
|
|
} else if (type === "30/parents/vertical/align-with-active-node") {
|
|
alignParentsNodes(context, activeNode);
|
|
} else if (type === "40/children/vertical/center") {
|
|
alignChildColumns(context, null, true);
|
|
} else if (type === "40/children/vertical/align-with-active-node") {
|
|
alignChildColumns(context, activeNode, false);
|
|
} else if (type === "50/inactive-columns/vertical/move-up") {
|
|
alignInactiveColumns(context);
|
|
}
|
|
}
|
|
};
|
|
|
|
// src/stores/view/subscriptions/effects/align-branch/helpers/skip-align.ts
|
|
var skipAlign = (view, action) => {
|
|
if (action.type === "DOCUMENT/SET_NODE_CONTENT" && action.context.isInSidebar)
|
|
return true;
|
|
if (action.type === "view/set-active-node/mouse-silent")
|
|
return true;
|
|
const outlineMode = view.plugin.settings.getValue().view.outlineMode;
|
|
if (outlineMode) {
|
|
const viewState = view.viewStore.getValue();
|
|
const activeNode = viewState.document.activeNode;
|
|
if (viewState.outline.hiddenNodes.has(activeNode) && outlineMode)
|
|
return true;
|
|
}
|
|
};
|
|
|
|
// src/stores/view/subscriptions/effects/align-branch/constants/action-category.ts
|
|
var actionCategoryDict = {
|
|
"view/align-branch/center-node": "manual",
|
|
"view/align-branch/reveal-node": "manual",
|
|
"DOCUMENT/LOAD_FILE": "document/reset",
|
|
RESET_STORE: "document/reset",
|
|
"DOCUMENT/INSERT_NODE": "document/structure",
|
|
"DOCUMENT/DROP_NODE": "document/structure",
|
|
"DOCUMENT/DELETE_NODE": "document/structure",
|
|
"DOCUMENT/MERGE_NODE": "document/structure",
|
|
"DOCUMENT/MOVE_NODE": "document/structure",
|
|
"DOCUMENT/SPLIT_NODE": "document/structure",
|
|
"DOCUMENT/PASTE_NODE": "document/structure",
|
|
"DOCUMENT/EXTRACT_BRANCH": "document/structure",
|
|
"DOCUMENT/CUT_NODE": "document/structure",
|
|
"HISTORY/APPLY_PREVIOUS_SNAPSHOT": "document/structure",
|
|
"HISTORY/APPLY_NEXT_SNAPSHOT": "document/structure",
|
|
"HISTORY/SELECT_SNAPSHOT": "document/structure",
|
|
"DOCUMENT/SET_NODE_CONTENT": "document/content",
|
|
"DOCUMENT/FORMAT_HEADINGS": "document/content",
|
|
"view/main/disable-edit": "view/editor",
|
|
"view/main/enable-edit": "view/editor",
|
|
"DOCUMENT/JUMP_TO_NODE": "view/active-node/keyboard",
|
|
"DOCUMENT/NAVIGATE_USING_KEYBOARD": "view/active-node/keyboard",
|
|
"NAVIGATION/SELECT_NEXT_NODE": "view/active-node/mouse",
|
|
"NAVIGATION/NAVIGATE_BACK": "view/active-node/mouse",
|
|
"NAVIGATION/NAVIGATE_FORWARD": "view/active-node/mouse",
|
|
"view/outline/toggle-collapse-node": "view/outline",
|
|
"view/outline/refresh-collapsed-nodes": "view/outline",
|
|
"view/outline/toggle-collapse-all": "view/outline",
|
|
// todo: add a separate event for effect source
|
|
"view/set-active-node/mouse": "view/active-node/mouse",
|
|
"view/set-active-node/mouse-silent": "other",
|
|
"view/set-active-node/document": "view/active-node/document",
|
|
"view/set-active-node/search": "view/active-node/search",
|
|
"view/left-sidebar/set-width": "settings/layout",
|
|
"WORKSPACE/ACTIVE_LEAF_CHANGE": "view/life-cycle",
|
|
"WORKSPACE/RESIZE": "view/resize",
|
|
"WORKSPACE/LAYOUT_READY": "view/life-cycle",
|
|
"WORKSPACE/SET_ACTIVE_LINEAGE_VIEW": "view/life-cycle",
|
|
"view/life-cycle/mount": "view/life-cycle",
|
|
"VIEW/TOGGLE_MINIMAP": "settings/layout",
|
|
"view/left-sidebar/toggle": "settings/layout",
|
|
SET_CARD_WIDTH: "settings/layout",
|
|
SET_CARDS_GAP: "settings/layout",
|
|
SET_MIN_CARD_HEIGHT: "settings/layout",
|
|
"VIEW/SCROLLING/TOGGLE_SCROLLING_MODE": "settings/scrolling",
|
|
"settings/view/scrolling/toggle-vertical-scrolling-mode": "settings/scrolling",
|
|
SET_LIMIT_PREVIEW_HEIGHT: "settings/layout",
|
|
"UI/CHANGE_ZOOM_LEVEL": "settings/zoom",
|
|
"view/modes/gap-between-cards/toggle": "settings/layout",
|
|
"settings/view/modes/toggle-outline-mode": "settings/layout",
|
|
"settings/view/set-node-indentation-width": "settings/layout",
|
|
"SEARCH/SET_RESULTS": "view/active-node/search",
|
|
"search/toggle-show-all-nodes": "view/active-node/search",
|
|
"SEARCH/SET_QUERY": "view/active-node/search",
|
|
"SEARCH/TOGGLE_INPUT": "view/active-node/search",
|
|
"SEARCH/TOGGLE_FUZZY_MODE": "view/active-node/search",
|
|
"FS/SET_FILE_PATH": "other",
|
|
"DOCUMENT/COPY_NODE": "other",
|
|
"FILE/UPDATE_FRONTMATTER": "other",
|
|
"document/pinned-nodes/pin": "other",
|
|
"document/pinned-nodes/unpin": "other",
|
|
"document/pinned-nodes/remove-stale-nodes": "other",
|
|
"document/pinned-nodes/load-from-settings": "other",
|
|
"META/REFRESH_GROUP_PARENT_IDS": "other",
|
|
SET_DRAG_STARTED: "other",
|
|
"DOCUMENT/SET_DRAG_ENDED": "other",
|
|
UPDATE_ACTIVE_BRANCH: "other",
|
|
"view/confirmation/reset/disable-edit": "other",
|
|
"view/confirmation/reset/delete-node": "other",
|
|
"view/confirmation/confirm/delete-node": "other",
|
|
"view/confirmation/confirm/disable-edit": "other",
|
|
"DOCUMENT/CLEAR_SELECTION": "other",
|
|
"UI/TOGGLE_HELP_SIDEBAR": "other",
|
|
"UI/TOGGLE_HISTORY_SIDEBAR": "other",
|
|
"UI/TOGGLE_SETTINGS_SIDEBAR": "other",
|
|
CLOSE_MODALS: "other",
|
|
"view/modals/toggle-style-rules": "other",
|
|
"NAVIGATION/REMOVE_OBSOLETE": "other",
|
|
"view/pinned-nodes/set-active-node": "other",
|
|
"view/recent-nodes/set-active-node": "other",
|
|
"view/sidebar/enable-edit": "other",
|
|
"view/sidebar/disable-edit": "other",
|
|
"view/style-rules/update-results": "other",
|
|
"view/keyboard/shift/down": "other",
|
|
"view/keyboard/shift/up": "other",
|
|
"view/hotkeys/set-search-term": "other",
|
|
"view/hotkeys/update-conflicts": "other",
|
|
"view/selection/set-selection": "other",
|
|
SET_DOCUMENT_TYPE: "other",
|
|
SET_VIEW_TYPE: "other",
|
|
DELETE_DOCUMENT_PREFERENCES: "other",
|
|
"HISTORY/UPDATE_DOCUMENT_PATH": "other",
|
|
SET_CUSTOM_HOTKEYS: "other",
|
|
SET_FONT_SIZE: "other",
|
|
SET_CONTAINER_BG: "other",
|
|
SET_ACTIVE_BRANCH_BG: "other",
|
|
UPDATE_DOCUMENTS_DICTIONARY: "other",
|
|
"settings/document/persist-active-section": "other",
|
|
"GENERAL/SET_DEFAULT_DOCUMENT_FORMAT": "other",
|
|
"view/left-sidebar/set-active-tab": "other",
|
|
"settings/pinned-nodes/persist": "other",
|
|
"settings/pinned-nodes/persist-active-node": "other",
|
|
"settings/style-rules/add": "other",
|
|
"settings/style-rules/update": "other",
|
|
"settings/style-rules/delete": "other",
|
|
"settings/style-rules/move": "other",
|
|
"settings/style-rules/update-condition": "other",
|
|
"settings/style-rules/enable-rule": "other",
|
|
"settings/style-rules/disable-rule": "other",
|
|
"settings/view/set-maintain-edit-mode": "other",
|
|
"settings/view/theme/set-inactive-node-opacity": "other",
|
|
"settings/view/theme/set-active-branch-color": "other",
|
|
"settings/hotkeys/set-custom-hotkey": "other",
|
|
"settings/hotkeys/reset-custom-hotkey": "other",
|
|
"settings/hotkeys/reset-all": "other",
|
|
"settings/hotkeys/apply-preset": "other",
|
|
"settings/hotkeys/toggle-editor-state": "other",
|
|
"settings/hotkeys/set-blank": "other",
|
|
"DOCUMENTS/DELETE_DOCUMENT": "other",
|
|
"DOCUMENTS/UPDATE_DOCUMENT_PATH": "other",
|
|
"DOCUMENTS/ADD_DOCUMENT": "other"
|
|
};
|
|
var actionCategory = new Map(
|
|
Object.entries(actionCategoryDict)
|
|
);
|
|
var actionCategoryPriorityDict = {
|
|
"document/reset": 100,
|
|
"view/life-cycle": 100,
|
|
"view/active-node/keyboard": 90,
|
|
"view/active-node/mouse": 90,
|
|
"document/structure": 80,
|
|
"document/content": 70,
|
|
"view/active-node/document": 30,
|
|
"view/active-node/search": 30,
|
|
"view/resize": 20,
|
|
"view/editor": 20,
|
|
"view/outline": 20,
|
|
"settings/zoom": 20,
|
|
"settings/layout": 20,
|
|
"settings/scrolling": 20,
|
|
manual: 10,
|
|
other: 0
|
|
};
|
|
var actionCategoryPriority = new Map(
|
|
Object.entries(actionCategoryPriorityDict)
|
|
);
|
|
|
|
// src/lib/align-element/helpers/wait-for-active-node-to-stop-moving.ts
|
|
var LOOP_DELAY_MS = 10;
|
|
var MAX_ATTEMPTS = 100;
|
|
var REQUIRED_MATCHES = 5;
|
|
var waitForActiveNodeToStopMoving = async (view) => {
|
|
const activeBranch = view.viewStore.getValue().document.activeBranch;
|
|
let columnEl;
|
|
let retries = 0;
|
|
let hits = 0;
|
|
let lastScrollTop = -1;
|
|
let lastScrollLeft = -1;
|
|
const container = view.container;
|
|
while (retries < MAX_ATTEMPTS) {
|
|
if (!columnEl) {
|
|
columnEl = getElementById(container, activeBranch.column);
|
|
} else {
|
|
const isStill = lastScrollTop === columnEl.scrollTop && lastScrollLeft === container.scrollLeft;
|
|
if (isStill) {
|
|
hits++;
|
|
if (hits === REQUIRED_MATCHES)
|
|
return;
|
|
} else {
|
|
hits = 0;
|
|
}
|
|
lastScrollTop = columnEl.scrollTop;
|
|
lastScrollLeft = container.scrollLeft;
|
|
}
|
|
retries++;
|
|
await delay(LOOP_DELAY_MS);
|
|
}
|
|
};
|
|
|
|
// src/stores/view/subscriptions/effects/align-branch/align-branch.ts
|
|
var AlignBranch = class {
|
|
constructor(view) {
|
|
this.view = view;
|
|
this.previousActiveBranch = null;
|
|
this.previousEvent = null;
|
|
this.align = async (action) => {
|
|
if (skipAlign(this.view, action))
|
|
return;
|
|
const delay_ms = delayAlign(action);
|
|
if (delay_ms > 0)
|
|
await delay(delay_ms);
|
|
await this.waitForPreviousEvent(action);
|
|
const context = this.createContext(action);
|
|
const actions = createAlignBranchActions(context, action);
|
|
requestAnimationFrame(() => {
|
|
runAlignBranchActions(context, actions);
|
|
});
|
|
this.saveActiveBranch(context);
|
|
};
|
|
this.createContext = (action) => {
|
|
const settings = this.view.plugin.settings.getValue();
|
|
const container = this.view.container;
|
|
const documentState = this.view.documentStore.getValue();
|
|
const viewState = this.view.viewStore.getValue();
|
|
const activeBranch = viewState.document.activeBranch;
|
|
const behavior = adjustScrollBehavior(action);
|
|
const context = {
|
|
previousActiveBranch: this.previousActiveBranch,
|
|
activeBranch,
|
|
columns: documentState.document.columns,
|
|
container,
|
|
activeNodesOfColumn: viewState.document.activeNodesOfColumn,
|
|
containerRect: container.getBoundingClientRect(),
|
|
outlineMode: settings.view.outlineMode,
|
|
alignBranchSettings: {
|
|
centerActiveNodeH: settings.view.scrolling.centerActiveNodeH,
|
|
centerActiveNodeV: settings.view.scrolling.centerActiveNodeV,
|
|
zoomLevel: settings.view.zoomLevel,
|
|
behavior
|
|
},
|
|
state: {
|
|
rects: /* @__PURE__ */ new Map()
|
|
}
|
|
};
|
|
return context;
|
|
};
|
|
this.waitForPreviousEvent = async (action) => {
|
|
const category = actionCategory.get(action.type);
|
|
if (category === "other") {
|
|
throw new SilentError("unsupported event: " + action.type);
|
|
}
|
|
const event = {
|
|
action: action.type,
|
|
category,
|
|
priority: actionCategoryPriority.get(category),
|
|
ts: Date.now()
|
|
};
|
|
if (this.previousEvent) {
|
|
if (event.priority < this.previousEvent.priority) {
|
|
if (event.ts - this.previousEvent.ts < 500) {
|
|
await waitForActiveNodeToStopMoving(this.view);
|
|
}
|
|
}
|
|
}
|
|
this.previousEvent = event;
|
|
};
|
|
}
|
|
saveActiveBranch(context) {
|
|
this.previousActiveBranch = context.activeBranch;
|
|
}
|
|
};
|
|
|
|
// src/view/view.ts
|
|
var LINEAGE_VIEW_TYPE = "lineage";
|
|
var LineageView = class _LineageView extends import_obsidian37.TextFileView {
|
|
constructor(leaf, plugin) {
|
|
super(leaf);
|
|
this.plugin = plugin;
|
|
this.minimapDom = null;
|
|
this.onDestroyCallbacks = /* @__PURE__ */ new Set();
|
|
this.onViewStoreError = (error, location, action) => {
|
|
if (action && action.type === "DOCUMENT/LOAD_FILE") {
|
|
if (this.file) {
|
|
this.plugin.documents.dispatch({
|
|
type: "DOCUMENTS/DELETE_DOCUMENT",
|
|
payload: { path: this.file.path }
|
|
});
|
|
setViewType(this.plugin, this.file.path, "markdown");
|
|
toggleObsidianViewType(
|
|
this.plugin,
|
|
this.plugin.app.workspace.getLeaf(),
|
|
"markdown"
|
|
);
|
|
}
|
|
}
|
|
onPluginError(error, location, action);
|
|
};
|
|
this.saveDocument = async (immediate = false) => {
|
|
invariant(this.file);
|
|
const state2 = clone(this.documentStore.getValue());
|
|
const data = state2.file.frontmatter + stringifyDocument(state2.document, getDocumentFormat(this));
|
|
if (data !== this.data) {
|
|
if (data.trim().length === 0) {
|
|
throw new Error(lang.error_save_empty_data);
|
|
}
|
|
this.data = data;
|
|
if (immediate)
|
|
await this.save();
|
|
else
|
|
this.requestSave();
|
|
}
|
|
};
|
|
this.loadInitialData = async () => {
|
|
invariant(this.file);
|
|
const fileHasAStore = this.plugin.documents.getValue().documents[this.file.path];
|
|
if (fileHasAStore) {
|
|
this.useExistingStore();
|
|
} else {
|
|
this.createStore();
|
|
}
|
|
this.loadDocumentToStore(true);
|
|
if (!this.inlineEditor) {
|
|
this.inlineEditor = new InlineEditor(this);
|
|
await this.inlineEditor.onload();
|
|
}
|
|
await this.inlineEditor.loadFile(this.file);
|
|
this.component = new main_default({
|
|
target: this.contentEl,
|
|
props: {
|
|
plugin: this.plugin,
|
|
view: this
|
|
}
|
|
});
|
|
invariant(this.container);
|
|
this.onDestroyCallbacks.add(viewSubscriptions(this));
|
|
};
|
|
this.createStore = () => {
|
|
invariant(this.file);
|
|
this.plugin.documents.dispatch({
|
|
type: "DOCUMENTS/ADD_DOCUMENT",
|
|
payload: {
|
|
path: this.file.path,
|
|
documentStore: this.documentStore,
|
|
viewId: this.id
|
|
}
|
|
});
|
|
this.documentStore.dispatch({
|
|
type: "FS/SET_FILE_PATH",
|
|
payload: {
|
|
path: this.file.path
|
|
}
|
|
});
|
|
};
|
|
this.useExistingStore = () => {
|
|
if (!this.file)
|
|
return;
|
|
this.documentStore = this.plugin.documents.getValue().documents[this.file.path].documentStore;
|
|
};
|
|
this.loadDocumentToStore = (isInitialLoad = false) => {
|
|
const { data, frontmatter } = extractFrontmatter(this.data);
|
|
const state2 = this.documentStore.getValue();
|
|
const format2 = getOrDetectDocumentFormat(this, data);
|
|
const existingData = stringifyDocument(state2.document, format2);
|
|
const bodyHasChanged = existingData !== data;
|
|
const frontmatterHasChanged = !bodyHasChanged && frontmatter !== state2.file.frontmatter;
|
|
if (!existingData || bodyHasChanged || frontmatterHasChanged) {
|
|
const isEditing2 = this.viewStore.getValue().document.editing.activeNodeId;
|
|
if (frontmatterHasChanged && !isInitialLoad) {
|
|
this.documentStore.dispatch({
|
|
type: "FILE/UPDATE_FRONTMATTER",
|
|
payload: {
|
|
frontmatter
|
|
}
|
|
});
|
|
} else if (!isEditing2) {
|
|
const activeNode = this.viewStore.getValue().document.activeNode;
|
|
const activeSection = activeNode ? this.documentStore.getValue().sections.id_section[activeNode] : null;
|
|
this.documentStore.dispatch({
|
|
payload: {
|
|
document: { data, frontmatter, position: null },
|
|
format: format2,
|
|
activeSection
|
|
},
|
|
type: "DOCUMENT/LOAD_FILE"
|
|
});
|
|
if (this.isActive && !isInitialLoad && existingData && bodyHasChanged) {
|
|
new import_obsidian37.Notice("Document reloaded due to external changes");
|
|
}
|
|
if (!maybeGetDocumentFormat(this)) {
|
|
invariant(this.file);
|
|
setDocumentFormat(this.plugin, this.file.path, format2);
|
|
}
|
|
}
|
|
}
|
|
};
|
|
this.debouncedLoadDocumentToStore = (0, import_obsidian37.debounce)(
|
|
this.loadDocumentToStore,
|
|
250
|
|
);
|
|
this.documentStore = new Store(
|
|
defaultDocumentState(),
|
|
documentReducer,
|
|
this.onViewStoreError
|
|
);
|
|
this.viewStore = new Store(
|
|
defaultViewState(),
|
|
viewReducer,
|
|
this.onViewStoreError
|
|
);
|
|
this.id = id.view();
|
|
this.documentSearch = new DocumentSearch(this);
|
|
this.rulesProcessor = new StyleRulesProcessor(this);
|
|
this.alignBranch = new AlignBranch(this);
|
|
}
|
|
get isActive() {
|
|
return this === this.plugin.app.workspace.getActiveViewOfType(_LineageView);
|
|
}
|
|
get isViewOfFile() {
|
|
const path = this.file?.path;
|
|
return path ? this.id === this.plugin.documents.getValue().documents[path]?.viewId : false;
|
|
}
|
|
getViewData() {
|
|
return this.data;
|
|
}
|
|
setViewData(data) {
|
|
if (!this.activeFilePath && this.file) {
|
|
this.activeFilePath = this.file?.path;
|
|
this.loadInitialData();
|
|
} else if (this.file && data.trim().length === 0) {
|
|
this.plugin.app.vault.adapter.read(this.file.path).then((content) => {
|
|
if (content.trim().length !== 0) {
|
|
throw new Error(lang.error_set_empty_data);
|
|
} else {
|
|
this.data = data;
|
|
this.debouncedLoadDocumentToStore();
|
|
}
|
|
}).catch((error) => {
|
|
logger.error("Error reading file:", error);
|
|
});
|
|
} else {
|
|
this.data = data;
|
|
this.debouncedLoadDocumentToStore();
|
|
}
|
|
}
|
|
async onUnloadFile() {
|
|
if (this.component) {
|
|
this.component.$destroy();
|
|
}
|
|
this.activeFilePath = null;
|
|
this.contentEl.empty();
|
|
this.documentStore = new Store(
|
|
defaultDocumentState(),
|
|
documentReducer,
|
|
this.onViewStoreError
|
|
);
|
|
if (this.inlineEditor)
|
|
await this.inlineEditor.unloadFile();
|
|
for (const s of this.onDestroyCallbacks) {
|
|
s();
|
|
}
|
|
}
|
|
clear() {
|
|
this.data = "";
|
|
}
|
|
getViewType() {
|
|
return LINEAGE_VIEW_TYPE;
|
|
}
|
|
getIcon() {
|
|
return customIcons.cards.name;
|
|
}
|
|
getDisplayText() {
|
|
return this.file ? this.file.basename : "";
|
|
}
|
|
async onOpen() {
|
|
}
|
|
/*private destroyStore = () => {
|
|
const leavesOfType = this.plugin.app.workspace
|
|
.getLeavesOfType(FILE_VIEW_TYPE)
|
|
.filter(
|
|
(l) =>
|
|
l.view instanceof LineageView &&
|
|
l.view.file?.path === this.activeFilePath &&
|
|
l.view !== this,
|
|
);
|
|
if (leavesOfType.length === 0) {
|
|
this.store.dispatch({ type: 'RESET_STORE' });
|
|
if (this.file) delete stores[this.file.path];
|
|
}
|
|
};*/
|
|
async onClose() {
|
|
return this.onUnloadFile();
|
|
}
|
|
setMinimapDom(dom) {
|
|
this.minimapDom = dom;
|
|
}
|
|
getMinimapDom() {
|
|
invariant(this.minimapDom);
|
|
return this.minimapDom;
|
|
}
|
|
getMinimapStore() {
|
|
invariant(this.minimapStore);
|
|
return this.minimapStore;
|
|
}
|
|
};
|
|
|
|
// src/stores/settings/subscriptions/effects/update-file-view-type-cache.ts
|
|
var fileViewTypeCache = {};
|
|
var updateFileViewTypeCache = (state2) => {
|
|
fileViewTypeCache = state2;
|
|
};
|
|
|
|
// src/obsidian/patches/set-view-state.ts
|
|
function setViewState(next) {
|
|
return function(state2, ...rest) {
|
|
const isMarkdownView = state2.type === "markdown";
|
|
const path = state2?.state?.file;
|
|
if (isMarkdownView && // @ts-ignore
|
|
fileViewTypeCache[path]?.viewType === LINEAGE_VIEW_TYPE && // @ts-ignore
|
|
!state2.state.inlineEditor) {
|
|
const newState = {
|
|
...state2,
|
|
type: LINEAGE_VIEW_TYPE
|
|
};
|
|
return next.apply(this, [newState, ...rest]);
|
|
} else {
|
|
return next.apply(this, [state2, ...rest]);
|
|
}
|
|
};
|
|
}
|
|
|
|
// node_modules/monkey-around/dist/index.mjs
|
|
function around(obj, factories) {
|
|
const removers = Object.keys(factories).map((key) => around1(obj, key, factories[key]));
|
|
return removers.length === 1 ? removers[0] : function() {
|
|
removers.forEach((r) => r());
|
|
};
|
|
}
|
|
function around1(obj, method, createWrapper) {
|
|
const inherited = obj[method], hadOwn = obj.hasOwnProperty(method), original = hadOwn ? inherited : function() {
|
|
return Object.getPrototypeOf(obj)[method].apply(this, arguments);
|
|
};
|
|
let current = createWrapper(original);
|
|
if (inherited)
|
|
Object.setPrototypeOf(current, inherited);
|
|
Object.setPrototypeOf(wrapper, current);
|
|
obj[method] = wrapper;
|
|
return remove;
|
|
function wrapper(...args) {
|
|
if (current === original && obj[method] === wrapper)
|
|
remove();
|
|
return current.apply(this, args);
|
|
}
|
|
function remove() {
|
|
if (obj[method] === wrapper) {
|
|
if (hadOwn)
|
|
obj[method] = original;
|
|
else
|
|
delete obj[method];
|
|
}
|
|
if (current === original)
|
|
return;
|
|
current = original;
|
|
Object.setPrototypeOf(wrapper, inherited || Function);
|
|
}
|
|
}
|
|
|
|
// src/stores/settings/reducers/update-style-rules/helpers/fix-condition-types.ts
|
|
var fixConditionTypes = (rule) => {
|
|
if (rule.condition.type === "condition") {
|
|
const cnd = rule.condition;
|
|
const isStringCondition = cnd.property === "headings" || cnd.property === "content";
|
|
if (isStringCondition) {
|
|
if (cnd.value === null || cnd.value === void 0) {
|
|
cnd.value = "";
|
|
} else if (typeof cnd.value === "number") {
|
|
cnd.value = String(cnd.value);
|
|
}
|
|
} else {
|
|
if (cnd.value && typeof cnd.value === "string") {
|
|
cnd.value = parseFloat(cnd.value);
|
|
}
|
|
if ("valueB" in cnd && typeof cnd.valueB === "string") {
|
|
cnd.valueB = parseFloat(cnd.valueB);
|
|
}
|
|
}
|
|
}
|
|
};
|
|
|
|
// src/helpers/move-array-item.ts
|
|
var moveArrayItem = (array, fromIndex, toIndex) => {
|
|
const newArray = array.slice();
|
|
const element2 = newArray[fromIndex];
|
|
newArray.splice(fromIndex, 1);
|
|
newArray.splice(toIndex, 0, element2);
|
|
return newArray;
|
|
};
|
|
|
|
// src/stores/settings/reducers/update-style-rules/handle-dnd.ts
|
|
var handleDND = (rules, payload) => {
|
|
const { droppedId, targetId, position } = payload;
|
|
const fromIndex = rules.findIndex((r) => r.id === droppedId);
|
|
let toIndex = rules.findIndex((r) => r.id === targetId);
|
|
if (fromIndex === -1 || toIndex === -1 || fromIndex === toIndex) {
|
|
return rules;
|
|
}
|
|
const droppedWasAboveTarget = fromIndex < toIndex;
|
|
if (droppedWasAboveTarget) {
|
|
toIndex--;
|
|
}
|
|
if (position === "before") {
|
|
rules = moveArrayItem(rules, fromIndex, toIndex);
|
|
} else {
|
|
rules = moveArrayItem(rules, fromIndex, toIndex + 1);
|
|
}
|
|
return rules;
|
|
};
|
|
|
|
// src/stores/settings/reducers/update-style-rules/update-style-rules.ts
|
|
var updateStyleRules = (settings, action) => {
|
|
let state2;
|
|
state2 = settings.styleRules.documents[action.payload.documentPath];
|
|
if (!state2) {
|
|
if (action.type !== "settings/style-rules/add") {
|
|
throw new Error("Document does not have any style rules");
|
|
}
|
|
settings.styleRules.documents[action.payload.documentPath] = {
|
|
rules: []
|
|
};
|
|
state2 = settings.styleRules.documents[action.payload.documentPath];
|
|
}
|
|
if (action.type === "settings/style-rules/add") {
|
|
const newRule = {
|
|
id: id.styleRule(),
|
|
name: "",
|
|
enabled: true,
|
|
condition: {
|
|
type: "condition",
|
|
scope: "self",
|
|
property: "content",
|
|
operator: "contains",
|
|
value: "",
|
|
enabled: true
|
|
},
|
|
style: {
|
|
color: "#fff",
|
|
styleVariant: "left-border"
|
|
},
|
|
priority: 0
|
|
};
|
|
state2.rules = [...state2.rules, newRule];
|
|
} else if (action.type === "settings/style-rules/update") {
|
|
const { id: id2, rule } = action.payload;
|
|
const index = state2.rules.findIndex((r) => r.id === id2);
|
|
if (index !== -1) {
|
|
state2.rules[index] = { ...state2.rules[index], ...rule };
|
|
fixConditionTypes(state2.rules[index]);
|
|
state2.rules = [...state2.rules];
|
|
}
|
|
} else if (action.type === "settings/style-rules/delete") {
|
|
state2.rules = state2.rules.filter(
|
|
(rule) => rule.id !== action.payload.id
|
|
);
|
|
} else if (action.type === "settings/style-rules/move") {
|
|
state2.rules = handleDND(state2.rules, action.payload);
|
|
} else if (action.type === "settings/style-rules/update-style") {
|
|
const index = state2.rules.findIndex((r) => r.id === action.payload.id);
|
|
if (index !== -1) {
|
|
state2.rules[index] = {
|
|
...state2.rules[index],
|
|
// @ts-ignore
|
|
style: {
|
|
...state2.rules[index].style,
|
|
...action.payload.style
|
|
}
|
|
};
|
|
state2.rules = [...state2.rules];
|
|
}
|
|
} else if (action.type === "settings/style-rules/update-condition") {
|
|
const { ruleId, updates } = action.payload;
|
|
const index = state2.rules.findIndex((r) => r.id === ruleId);
|
|
if (index !== -1) {
|
|
state2.rules[index] = {
|
|
...state2.rules[index],
|
|
// @ts-ignore
|
|
condition: {
|
|
...state2.rules[index].condition,
|
|
...updates
|
|
}
|
|
};
|
|
fixConditionTypes(state2.rules[index]);
|
|
state2.rules = [...state2.rules];
|
|
}
|
|
} else if (action.type === "settings/style-rules/enable-rule") {
|
|
const index = state2.rules.findIndex((r) => r.id === action.payload.id);
|
|
if (index !== -1) {
|
|
state2.rules[index].enabled = true;
|
|
state2.rules = [...state2.rules];
|
|
}
|
|
} else if (action.type === "settings/style-rules/disable-rule") {
|
|
const index = state2.rules.findIndex((r) => r.id === action.payload.id);
|
|
if (index !== -1) {
|
|
state2.rules[index].enabled = false;
|
|
state2.rules = [...state2.rules];
|
|
}
|
|
}
|
|
};
|
|
|
|
// src/stores/settings/reducers/toggle-editor-state.ts
|
|
var getDefaultHotkey = (command, type) => {
|
|
const defaultCommand = defaultViewHotkeys().find(
|
|
(hk) => hk.name === command
|
|
);
|
|
const defaultHotkey = type === "primary" ? defaultCommand?.hotkeys[0] : defaultCommand?.hotkeys[1];
|
|
invariant(defaultHotkey);
|
|
return defaultHotkey;
|
|
};
|
|
var editorStateValues = [
|
|
"editor-on",
|
|
"editor-off",
|
|
"both"
|
|
];
|
|
var rotateEditorState = (editorState) => {
|
|
const index = editorStateValues.indexOf(editorState);
|
|
return editorStateValues[(index + 1) % editorStateValues.length];
|
|
};
|
|
var toggleEditorState = (state2, action) => {
|
|
let persistedHotkey;
|
|
const fullPersistedHotkey = state2.hotkeys.customHotkeys[action.payload.command] || {};
|
|
if (fullPersistedHotkey[action.payload.type]) {
|
|
persistedHotkey = fullPersistedHotkey[action.payload.type];
|
|
}
|
|
if (!persistedHotkey || !("editorState" in persistedHotkey)) {
|
|
const defaultHotkey = getDefaultHotkey(
|
|
action.payload.command,
|
|
action.payload.type
|
|
);
|
|
persistedHotkey = {
|
|
...persistedHotkey || {},
|
|
editorState: defaultHotkey.editorState
|
|
};
|
|
}
|
|
persistedHotkey.editorState = rotateEditorState(
|
|
persistedHotkey.editorState
|
|
);
|
|
state2.hotkeys.customHotkeys = {
|
|
...state2.hotkeys.customHotkeys,
|
|
[action.payload.command]: {
|
|
...fullPersistedHotkey,
|
|
[action.payload.type]: persistedHotkey
|
|
}
|
|
};
|
|
};
|
|
|
|
// src/stores/settings/reducers/set-hotkey-as-blank.ts
|
|
var setHotkeyAsBlank = (state2, action) => {
|
|
let persistedHotkey;
|
|
const fullPersistedHotkey = state2.hotkeys.customHotkeys[action.payload.command] || {};
|
|
if (fullPersistedHotkey[action.payload.type]) {
|
|
persistedHotkey = fullPersistedHotkey[action.payload.type];
|
|
}
|
|
persistedHotkey = {
|
|
...persistedHotkey || {},
|
|
key: "",
|
|
modifiers: []
|
|
};
|
|
state2.hotkeys.customHotkeys = {
|
|
...state2.hotkeys.customHotkeys,
|
|
[action.payload.command]: {
|
|
...fullPersistedHotkey,
|
|
[action.payload.type]: persistedHotkey
|
|
}
|
|
};
|
|
};
|
|
|
|
// src/stores/settings/reducers/persist-collapsed-sections.ts
|
|
var persistCollapsedSections2 = (state2, action) => {
|
|
const documentPreferences = state2.documents[action.payload.path];
|
|
if (!documentPreferences)
|
|
return;
|
|
if (!documentPreferences.outline) {
|
|
documentPreferences.outline = {
|
|
collapsedSections: action.payload.sections
|
|
};
|
|
} else {
|
|
documentPreferences.outline.collapsedSections = action.payload.sections;
|
|
}
|
|
};
|
|
|
|
// src/stores/settings/settings-reducer.ts
|
|
var updateState = (store, action) => {
|
|
if (action.type === "DELETE_DOCUMENT_PREFERENCES") {
|
|
delete store.documents[action.payload.path];
|
|
delete store.styleRules.documents[action.payload.path];
|
|
} else if (action.type === "SET_DOCUMENT_TYPE") {
|
|
if (!store.documents[action.payload.path]) {
|
|
store.documents[action.payload.path] = {
|
|
documentFormat: action.payload.format,
|
|
viewType: "lineage",
|
|
activeSection: null,
|
|
pinnedSections: {
|
|
sections: [],
|
|
activeSection: null
|
|
},
|
|
outline: {
|
|
collapsedSections: []
|
|
}
|
|
};
|
|
} else {
|
|
store.documents[action.payload.path].documentFormat = action.payload.format;
|
|
}
|
|
} else if (action.type === "SET_VIEW_TYPE") {
|
|
if (store.documents[action.payload.path]) {
|
|
store.documents[action.payload.path].viewType = action.payload.type;
|
|
}
|
|
} else if (action.type === "settings/document/persist-active-section") {
|
|
if (store.documents[action.payload.path]) {
|
|
store.documents[action.payload.path].activeSection = action.payload.sectionNumber;
|
|
}
|
|
} else if (action.type === "HISTORY/UPDATE_DOCUMENT_PATH") {
|
|
const preferences = store.documents[action.payload.oldPath];
|
|
delete store.documents[action.payload.oldPath];
|
|
store.documents[action.payload.newPath] = preferences;
|
|
if (store.styleRules.documents[action.payload.oldPath]) {
|
|
const rules = store.styleRules.documents[action.payload.oldPath];
|
|
delete store.styleRules.documents[action.payload.oldPath];
|
|
store.styleRules.documents[action.payload.newPath] = rules;
|
|
}
|
|
} else if (action.type === "SET_CUSTOM_HOTKEYS") {
|
|
store.hotkeys.customHotkeys = action.payload.customHotkeys;
|
|
} else if (action.type === "SET_FONT_SIZE") {
|
|
store.view.fontSize = action.payload.fontSize;
|
|
} else if (action.type === "SET_CONTAINER_BG") {
|
|
store.view.theme.containerBg = action.payload.backgroundColor;
|
|
} else if (action.type === "SET_ACTIVE_BRANCH_BG") {
|
|
store.view.theme.activeBranchBg = action.payload.backgroundColor;
|
|
} else if (action.type === "SET_CARD_WIDTH") {
|
|
store.view.cardWidth = action.payload.width;
|
|
} else if (action.type === "SET_MIN_CARD_HEIGHT") {
|
|
store.view.minimumCardHeight = action.payload.height;
|
|
} else if (action.type === "SET_LIMIT_PREVIEW_HEIGHT") {
|
|
store.view.limitPreviewHeight = action.payload.limit;
|
|
} else if (action.type === "UPDATE_DOCUMENTS_DICTIONARY") {
|
|
store.documents = action.payload.documents;
|
|
} else if (action.type === "UI/CHANGE_ZOOM_LEVEL") {
|
|
changeZoomLevel(store, action.payload);
|
|
} else if (action.type === "GENERAL/SET_DEFAULT_DOCUMENT_FORMAT") {
|
|
store.general.defaultDocumentFormat = action.payload.format;
|
|
} else if (action.type === "VIEW/TOGGLE_MINIMAP") {
|
|
store.view.showMinimap = !store.view.showMinimap;
|
|
} else if (action.type === "view/left-sidebar/toggle") {
|
|
store.view.showLeftSidebar = !store.view.showLeftSidebar;
|
|
} else if (action.type === "settings/pinned-nodes/persist") {
|
|
const document2 = store.documents[action.payload.filePath];
|
|
if (!document2.pinnedSections) {
|
|
document2.pinnedSections = {
|
|
sections: [],
|
|
activeSection: null
|
|
};
|
|
}
|
|
document2.pinnedSections.sections = action.payload.sections;
|
|
document2.pinnedSections.activeSection = action.payload.section;
|
|
} else if (action.type === "settings/pinned-nodes/persist-active-node") {
|
|
const document2 = store.documents[action.payload.filePath];
|
|
if (!document2.pinnedSections) {
|
|
document2.pinnedSections = {
|
|
sections: [],
|
|
activeSection: null
|
|
};
|
|
}
|
|
document2.pinnedSections.activeSection = action.payload.section;
|
|
} else if (action.type === "VIEW/SCROLLING/TOGGLE_SCROLLING_MODE") {
|
|
store.view.scrolling.centerActiveNodeH = !store.view.scrolling.centerActiveNodeH;
|
|
store.view.scrolling = {
|
|
...store.view.scrolling
|
|
};
|
|
} else if (action.type === "settings/view/scrolling/toggle-vertical-scrolling-mode") {
|
|
store.view.scrolling.centerActiveNodeV = !store.view.scrolling.centerActiveNodeV;
|
|
store.view.scrolling = {
|
|
...store.view.scrolling
|
|
};
|
|
} else if (action.type === "SET_CARDS_GAP") {
|
|
store.view.cardsGap = action.payload.gap;
|
|
} else if (action.type === "view/left-sidebar/set-width") {
|
|
if (action.payload.width > 0) {
|
|
store.view.leftSidebarWidth = action.payload.width;
|
|
}
|
|
} else if (action.type === "view/left-sidebar/set-active-tab") {
|
|
store.view.leftSidebarActiveTab = action.payload.tab;
|
|
} else if (action.type === "view/modes/gap-between-cards/toggle") {
|
|
store.view.applyGapBetweenCards = !store.view.applyGapBetweenCards;
|
|
} else if (action.type === "settings/view/modes/toggle-outline-mode") {
|
|
store.view.outlineMode = !store.view.outlineMode;
|
|
if (store.view.outlineMode) {
|
|
store.view.scrolling.centerActiveNodeH = false;
|
|
store.view.scrolling = {
|
|
...store.view.scrolling
|
|
};
|
|
}
|
|
} else if (action.type === "settings/view/set-node-indentation-width") {
|
|
store.view.nodeIndentationWidth = action.payload.width;
|
|
} else if (action.type === "settings/view/set-maintain-edit-mode") {
|
|
store.view.maintainEditMode = action.payload.maintain;
|
|
} else if (action.type === "settings/view/theme/set-inactive-node-opacity") {
|
|
store.view.theme.inactiveNodeOpacity = action.payload.opacity;
|
|
} else if (action.type === "settings/view/theme/set-active-branch-color") {
|
|
if (action.payload.color) {
|
|
store.view.theme.activeBranchColor = action.payload.color;
|
|
} else {
|
|
delete store.view.theme.activeBranchColor;
|
|
}
|
|
} else if (action.type === "settings/hotkeys/set-custom-hotkey") {
|
|
const customHotkey = store.hotkeys.customHotkeys[action.payload.command];
|
|
if (!customHotkey) {
|
|
store.hotkeys.customHotkeys[action.payload.command] = {
|
|
[action.payload.type]: action.payload.hotkey
|
|
};
|
|
} else {
|
|
customHotkey[action.payload.type] = {
|
|
...customHotkey[action.payload.type],
|
|
...action.payload.hotkey
|
|
};
|
|
}
|
|
store.hotkeys.customHotkeys = { ...store.hotkeys.customHotkeys };
|
|
} else if (action.type === "settings/hotkeys/reset-custom-hotkey") {
|
|
const customHotkey = store.hotkeys.customHotkeys[action.payload.command];
|
|
if (customHotkey) {
|
|
delete customHotkey[action.payload.type];
|
|
}
|
|
store.hotkeys.customHotkeys = { ...store.hotkeys.customHotkeys };
|
|
} else if (action.type === "settings/hotkeys/apply-preset") {
|
|
const entries = Object.entries(action.payload.preset);
|
|
for (const [command, customHotkeys] of entries) {
|
|
if (!store.hotkeys.customHotkeys[command]) {
|
|
store.hotkeys.customHotkeys[command] = {};
|
|
}
|
|
if (customHotkeys.primary) {
|
|
store.hotkeys.customHotkeys[command].primary = customHotkeys.primary;
|
|
}
|
|
if (customHotkeys.secondary) {
|
|
store.hotkeys.customHotkeys[command].secondary = customHotkeys.secondary;
|
|
}
|
|
}
|
|
store.hotkeys.customHotkeys = {
|
|
...store.hotkeys.customHotkeys
|
|
};
|
|
} else if (action.type === "settings/hotkeys/reset-all") {
|
|
store.hotkeys.customHotkeys = {};
|
|
} else if (action.type === "settings/hotkeys/toggle-editor-state") {
|
|
toggleEditorState(store, action);
|
|
} else if (action.type === "settings/hotkeys/set-blank") {
|
|
setHotkeyAsBlank(store, action);
|
|
} else if (action.type === "settings/document/persist-collapsed-sections") {
|
|
persistCollapsedSections2(store, action);
|
|
} else if (action.type === "settings/view/set-always-show-card-buttons") {
|
|
store.view.alwaysShowCardButtons = action.payload.show;
|
|
} else if (action.type.startsWith("settings/style-rules")) {
|
|
updateStyleRules(store, action);
|
|
}
|
|
};
|
|
var settingsReducer = (store, action) => {
|
|
updateState(store, action);
|
|
return store;
|
|
};
|
|
|
|
// src/helpers/deep-merge.ts
|
|
var isObject2 = (item) => item && typeof item === "object" && !Array.isArray(item);
|
|
var deepMerge = (target, ...sources) => {
|
|
if (!sources.length)
|
|
return target;
|
|
const source = sources.shift();
|
|
if (isObject2(target) && isObject2(source)) {
|
|
for (const key in source) {
|
|
if (isObject2(source[key])) {
|
|
if (!target[key])
|
|
Object.assign(target, { [key]: {} });
|
|
deepMerge(target[key], source[key]);
|
|
} else {
|
|
if (typeof target[key] === "undefined")
|
|
Object.assign(target, { [key]: source[key] });
|
|
}
|
|
}
|
|
}
|
|
return deepMerge(target, ...sources);
|
|
};
|
|
|
|
// src/obsidian/events/workspace/register-file-menu-event.ts
|
|
var import_obsidian40 = require("obsidian");
|
|
|
|
// src/obsidian/events/workspace/helpers/get-leaf-of-file.ts
|
|
var getLeafOfFile = (plugin, file, viewType) => {
|
|
const leaves = plugin.app.workspace.getLeavesOfType(viewType);
|
|
return leaves.find(
|
|
(l) => l.view?.file?.path === file.path
|
|
);
|
|
};
|
|
|
|
// src/obsidian/events/workspace/effects/toggle-file-view-type.ts
|
|
var toggleFileViewType = async (plugin, file, leaf) => {
|
|
const documents = plugin.settings.getValue().documents;
|
|
const preferences = documents[file.path] ? documents[file.path] : null;
|
|
const currentViewType = preferences ? preferences.viewType : "markdown";
|
|
let fileLeaf = leaf || getLeafOfFile(plugin, file, currentViewType);
|
|
if (!fileLeaf)
|
|
fileLeaf = await openFile(plugin, file, "tab");
|
|
const newViewType = currentViewType === "markdown" ? "lineage" : "markdown";
|
|
toggleObsidianViewType(plugin, fileLeaf, newViewType);
|
|
setViewType(plugin, file.path, newViewType);
|
|
};
|
|
|
|
// src/obsidian/events/workspace/context-menu-itetms/add-toggle-view-menu-item.ts
|
|
var addToggleViewMenuItem = (menu, plugin, file, leaf) => {
|
|
if (file.extension !== "md")
|
|
return;
|
|
menu.addItem((item) => {
|
|
if (!leaf) {
|
|
leaf = getLeafOfFile(plugin, file, "lineage");
|
|
}
|
|
const isTree = leaf && leaf.view.getViewType() === LINEAGE_VIEW_TYPE;
|
|
item.setTitle(
|
|
isTree ? lang.ocm_open_in_editor : lang.ocm_open_in_lineage
|
|
);
|
|
item.setIcon(isTree ? "file-text" : customIcons.cards.name);
|
|
item.onClick(async () => {
|
|
toggleFileViewType(plugin, file, leaf);
|
|
});
|
|
});
|
|
};
|
|
|
|
// src/obsidian/events/workspace/effects/create-lineage-file-in-folder.ts
|
|
var createLineageFileInFolder = async (plugin, folder) => {
|
|
const newFile = await createNewFile(plugin, folder);
|
|
if (newFile) {
|
|
const format2 = plugin.settings.getValue().general.defaultDocumentFormat;
|
|
await openFileInLineage(plugin, newFile, format2, "tab");
|
|
}
|
|
};
|
|
|
|
// src/obsidian/events/workspace/context-menu-itetms/add-folder-context-menu-items.ts
|
|
var addFolderContextMenuItems = (menu, plugin, folder) => {
|
|
menu.addItem((item) => {
|
|
item.setTitle(lang.ocm_new_document);
|
|
item.setIcon(customIcons.cards.name);
|
|
item.onClick(() => createLineageFileInFolder(plugin, folder));
|
|
});
|
|
};
|
|
|
|
// src/obsidian/events/workspace/effects/import-from-gingko/import-from-gingko.ts
|
|
var import_obsidian39 = require("obsidian");
|
|
|
|
// src/obsidian/events/workspace/effects/import-from-gingko/helpers/verify-json-file.ts
|
|
var verifyJsonFile = (tree) => {
|
|
for (const treeNode of tree) {
|
|
if (!treeNode)
|
|
return false;
|
|
if (typeof treeNode !== "object")
|
|
return false;
|
|
if (!("content" in treeNode))
|
|
return false;
|
|
if (!("children" in treeNode))
|
|
return false;
|
|
if (typeof treeNode.content !== "string")
|
|
return false;
|
|
if (!Array.isArray(treeNode.children))
|
|
return false;
|
|
if (!verifyJsonFile(treeNode.children))
|
|
return false;
|
|
}
|
|
return true;
|
|
};
|
|
|
|
// src/obsidian/events/workspace/effects/import-from-gingko/helpers/map-files-to-gingko-files.ts
|
|
var mapFilesToGingkoFiles = async (plugin, files) => {
|
|
const gingkoFiles = [];
|
|
for (const file of files) {
|
|
const content = await plugin.app.vault.read(file);
|
|
const tree = JSON.parse(content);
|
|
const isValid = verifyJsonFile(tree);
|
|
if (!isValid)
|
|
throw new Error(
|
|
`File "${file.basename}" does not seem to be valid a Gingko file`
|
|
);
|
|
gingkoFiles.push({
|
|
basename: file.basename,
|
|
tree
|
|
});
|
|
}
|
|
return gingkoFiles;
|
|
};
|
|
|
|
// src/obsidian/events/workspace/effects/create-new-folder.ts
|
|
var import_obsidian38 = require("obsidian");
|
|
var createNewFolder = async (plugin, folder, basename) => {
|
|
invariant(folder);
|
|
const children2 = folder.children.map((c) => c instanceof import_obsidian38.TFolder ? c.name : null).filter((f) => f);
|
|
const path = getUniqueFileName(folder.path, children2, basename);
|
|
const createdFolder = await plugin.app.vault.createFolder(path);
|
|
invariant(createdFolder);
|
|
return createdFolder;
|
|
};
|
|
|
|
// src/obsidian/events/workspace/effects/import-from-gingko/helpers/create-lineage-documents-from-gingko-files.ts
|
|
var createLineageDocumentsFromGingkoFiles = async (plugin, files, folderPath) => {
|
|
const parentFolder = plugin.app.vault.getFolderByPath(folderPath);
|
|
invariant(parentFolder);
|
|
let destinationFolder;
|
|
if (files.length === 1) {
|
|
destinationFolder = parentFolder;
|
|
} else {
|
|
destinationFolder = await createNewFolder(
|
|
plugin,
|
|
parentFolder,
|
|
"imported from gingko"
|
|
);
|
|
}
|
|
if (!destinationFolder)
|
|
throw new Error("Could not get destination folder");
|
|
for (const file of files) {
|
|
const sections = jsonToHtmlComment(file.tree);
|
|
const createdFile = await createNewFile(
|
|
plugin,
|
|
destinationFolder,
|
|
sections,
|
|
file.basename
|
|
);
|
|
setDocumentFormat(plugin, createdFile.path, "sections");
|
|
setViewType(plugin, createdFile.path, "lineage");
|
|
}
|
|
};
|
|
|
|
// src/obsidian/events/workspace/effects/import-from-gingko/import-from-gingko.ts
|
|
var importFromGingko = async (plugin, files) => {
|
|
try {
|
|
const parentFolder = files[0].parent?.path;
|
|
if (!parentFolder)
|
|
return;
|
|
const gingkoFiles = await mapFilesToGingkoFiles(plugin, files);
|
|
await createLineageDocumentsFromGingkoFiles(
|
|
plugin,
|
|
gingkoFiles,
|
|
parentFolder
|
|
);
|
|
new import_obsidian39.Notice(
|
|
`Imported ${gingkoFiles.length} Gingko file${gingkoFiles.length === 1 ? "" : "s"}`
|
|
);
|
|
} catch (e) {
|
|
onPluginError(e, "command", { files });
|
|
}
|
|
};
|
|
|
|
// src/obsidian/events/workspace/context-menu-itetms/add-import-ginkgo-menu-item.ts
|
|
var addImportGinkgoMenuItem = (menu, plugin, files) => {
|
|
const allJson = files.every((file) => file.extension === "json");
|
|
if (!allJson)
|
|
return;
|
|
menu.addItem((item) => {
|
|
item.setTitle(lang.ocm_import_from_gingko);
|
|
item.setIcon(customIcons.cards.name);
|
|
item.onClick(async () => {
|
|
importFromGingko(plugin, files);
|
|
});
|
|
});
|
|
};
|
|
|
|
// src/obsidian/events/workspace/register-file-menu-event.ts
|
|
var registerFileMenuEvent = (plugin) => {
|
|
plugin.registerEvent(
|
|
plugin.app.workspace.on(
|
|
"file-menu",
|
|
(menu, abstractFile, source, leaf) => {
|
|
if (abstractFile instanceof import_obsidian40.TFile) {
|
|
addToggleViewMenuItem(menu, plugin, abstractFile, leaf);
|
|
addImportGinkgoMenuItem(menu, plugin, [abstractFile]);
|
|
} else if (abstractFile instanceof import_obsidian40.TFolder) {
|
|
addFolderContextMenuItems(menu, plugin, abstractFile);
|
|
}
|
|
}
|
|
)
|
|
);
|
|
};
|
|
|
|
// src/obsidian/events/vault/register-file-move-event.ts
|
|
var import_obsidian41 = require("obsidian");
|
|
var registerFileRenameEvent = (plugin) => {
|
|
plugin.registerEvent(
|
|
plugin.app.vault.on("rename", (file, oldPath) => {
|
|
if (file instanceof import_obsidian41.TFile) {
|
|
if (fileViewTypeCache[oldPath]) {
|
|
plugin.documents.dispatch({
|
|
type: "DOCUMENTS/UPDATE_DOCUMENT_PATH",
|
|
payload: {
|
|
newPath: file.path,
|
|
oldPath
|
|
}
|
|
});
|
|
plugin.settings.dispatch({
|
|
type: "HISTORY/UPDATE_DOCUMENT_PATH",
|
|
payload: {
|
|
newPath: file.path,
|
|
oldPath
|
|
}
|
|
});
|
|
}
|
|
}
|
|
})
|
|
);
|
|
};
|
|
|
|
// src/obsidian/events/vault/register-file-delete-event.ts
|
|
var import_obsidian42 = require("obsidian");
|
|
var registerFileDeleteEvent = (plugin) => {
|
|
plugin.registerEvent(
|
|
plugin.app.vault.on("delete", (file) => {
|
|
if (file instanceof import_obsidian42.TFile) {
|
|
if (fileViewTypeCache[file.path]) {
|
|
plugin.documents.dispatch({
|
|
type: "DOCUMENTS/DELETE_DOCUMENT",
|
|
payload: {
|
|
path: file.path
|
|
}
|
|
});
|
|
plugin.settings.dispatch({
|
|
type: "DELETE_DOCUMENT_PREFERENCES",
|
|
payload: {
|
|
path: file.path
|
|
}
|
|
});
|
|
}
|
|
}
|
|
})
|
|
);
|
|
};
|
|
|
|
// src/helpers/slugify.ts
|
|
var slugify = (inputString) => {
|
|
return inputString.toLowerCase().replace(/[^a-z0-9]/g, "-").replace(/-+/g, "-").replace(/^-|-$/g, "");
|
|
};
|
|
|
|
// src/obsidian/commands/helpers/get-active-file.ts
|
|
var getActiveFile = (plugin) => {
|
|
const activeFile = plugin.app.workspace.getActiveFile();
|
|
if (activeFile && activeFile.extension === "md")
|
|
return activeFile;
|
|
};
|
|
|
|
// src/obsidian/events/workspace/effects/create-lineage-document.ts
|
|
var createLineageDocument = async (plugin) => {
|
|
try {
|
|
const format2 = plugin.settings.getValue().general.defaultDocumentFormat;
|
|
const file = getActiveFile(plugin);
|
|
let folder = null;
|
|
if (file) {
|
|
folder = file.parent;
|
|
} else {
|
|
folder = plugin.app.vault.getRoot();
|
|
}
|
|
if (folder) {
|
|
const newFile = await createNewFile(plugin, folder);
|
|
if (newFile) {
|
|
await openFileInLineage(plugin, newFile, format2, "tab");
|
|
}
|
|
}
|
|
} catch (e) {
|
|
onPluginError(e, "command", lang.cmd_create_new_document);
|
|
}
|
|
};
|
|
|
|
// src/obsidian/commands/helpers/get-active-lineage-view.ts
|
|
var getActiveLineageView = (plugin) => {
|
|
return plugin.app.workspace.getActiveViewOfType(LineageView);
|
|
};
|
|
|
|
// src/obsidian/commands/add-commands.ts
|
|
var createCommands2 = (plugin) => {
|
|
const commands = [];
|
|
commands.push({
|
|
name: lang.cmd_toggle_lineage_view,
|
|
icon: customIcons.cards.name,
|
|
checkCallback: (checking) => {
|
|
const file = getActiveFile(plugin);
|
|
if (file) {
|
|
if (checking)
|
|
return true;
|
|
else {
|
|
toggleFileViewType(plugin, file, void 0);
|
|
}
|
|
}
|
|
}
|
|
});
|
|
commands.push({
|
|
name: lang.cmd_create_new_document,
|
|
icon: customIcons.cards.name,
|
|
checkCallback: (checking) => {
|
|
if (checking)
|
|
return true;
|
|
createLineageDocument(plugin);
|
|
}
|
|
});
|
|
commands.push({
|
|
name: lang.cmd_toggle_horizontal_scrolling_mode,
|
|
icon: customIcons.alignH.name,
|
|
checkCallback: (checking) => {
|
|
if (checking) {
|
|
return Boolean(getActiveLineageView(plugin));
|
|
}
|
|
plugin.settings.dispatch({
|
|
type: "VIEW/SCROLLING/TOGGLE_SCROLLING_MODE"
|
|
});
|
|
}
|
|
});
|
|
commands.push({
|
|
name: lang.cmd_toggle_vertical_scrolling_mode,
|
|
icon: customIcons.alignV.name,
|
|
checkCallback: (checking) => {
|
|
if (checking) {
|
|
return Boolean(getActiveLineageView(plugin));
|
|
}
|
|
plugin.settings.dispatch({
|
|
type: "settings/view/scrolling/toggle-vertical-scrolling-mode"
|
|
});
|
|
}
|
|
});
|
|
commands.push({
|
|
name: lang.cm_split_card,
|
|
icon: customIcons.split.name,
|
|
checkCallback: (checking) => {
|
|
const view = getActiveLineageView(plugin);
|
|
if (checking) {
|
|
return Boolean(view);
|
|
}
|
|
openSplitNodeModal(view);
|
|
}
|
|
});
|
|
commands.push({
|
|
name: lang.cm_copy_link_to_block,
|
|
icon: "links-coming-in",
|
|
checkCallback: (checking) => {
|
|
const view = getActiveLineageView(plugin);
|
|
if (checking) {
|
|
return Boolean(view);
|
|
}
|
|
copyLinkToBlock(view);
|
|
}
|
|
});
|
|
commands.push({
|
|
name: lang.cmd_toggle_pin_in_left_sidebar,
|
|
icon: "pin",
|
|
checkCallback: (checking) => {
|
|
const view = getActiveLineageView(plugin);
|
|
if (checking) {
|
|
return view ? isEditing(view) : false;
|
|
}
|
|
if (!view)
|
|
return;
|
|
const viewState = view.viewStore.getValue();
|
|
const documentStore = view.documentStore;
|
|
const documentState = documentStore.getValue();
|
|
const activeNode = viewState.document.activeNode;
|
|
const isPinned = documentState.pinnedNodes.Ids.includes(activeNode);
|
|
documentStore.dispatch({
|
|
type: isPinned ? "document/pinned-nodes/unpin" : "document/pinned-nodes/pin",
|
|
payload: { id: activeNode }
|
|
});
|
|
}
|
|
});
|
|
commands.push({
|
|
name: lang.cmd_extract_branch,
|
|
icon: customIcons.cards.name,
|
|
checkCallback: (checking) => {
|
|
const view = getActiveLineageView(plugin);
|
|
if (checking) {
|
|
return Boolean(view);
|
|
}
|
|
extractBranch(view);
|
|
}
|
|
});
|
|
commands.push({
|
|
name: lang.cm_export_column,
|
|
icon: "file-text",
|
|
checkCallback: (checking) => {
|
|
const view = getActiveLineageView(plugin);
|
|
if (checking) {
|
|
return Boolean(view);
|
|
}
|
|
exportColumn(view);
|
|
}
|
|
});
|
|
commands.push({
|
|
name: lang.cm_export_document,
|
|
icon: "file-text",
|
|
checkCallback: (checking) => {
|
|
const view = getActiveLineageView(plugin);
|
|
if (checking) {
|
|
return Boolean(view);
|
|
}
|
|
exportDocument(view);
|
|
}
|
|
});
|
|
commands.push({
|
|
name: lang.cmd_toggle_minimap,
|
|
icon: "panel-right",
|
|
checkCallback: (checking) => {
|
|
const view = getActiveLineageView(plugin);
|
|
if (checking) {
|
|
return Boolean(view);
|
|
}
|
|
plugin.settings.dispatch({
|
|
type: "VIEW/TOGGLE_MINIMAP"
|
|
});
|
|
}
|
|
});
|
|
commands.push({
|
|
name: lang.cmd_toggle_left_sidebar,
|
|
icon: "panel-left",
|
|
checkCallback: (checking) => {
|
|
const view = getActiveLineageView(plugin);
|
|
if (checking) {
|
|
return Boolean(view);
|
|
}
|
|
plugin.settings.dispatch({ type: "view/left-sidebar/toggle" });
|
|
}
|
|
});
|
|
commands.push({
|
|
name: lang.cmd_space_between_cards,
|
|
icon: customIcons.gap.name,
|
|
checkCallback: (checking) => {
|
|
const view = getActiveLineageView(plugin);
|
|
if (checking) {
|
|
return Boolean(view);
|
|
}
|
|
view.plugin.settings.dispatch({
|
|
type: "view/modes/gap-between-cards/toggle"
|
|
});
|
|
}
|
|
});
|
|
return commands;
|
|
};
|
|
var addCommands = (plugin) => {
|
|
const commands = createCommands2(plugin);
|
|
for (const command of commands) {
|
|
plugin.addCommand({
|
|
...command,
|
|
checkCallback: (checking) => {
|
|
try {
|
|
return command.checkCallback(checking);
|
|
} catch (e) {
|
|
onPluginError(e, "command", command.name);
|
|
return false;
|
|
}
|
|
},
|
|
id: slugify(command.name)
|
|
});
|
|
}
|
|
};
|
|
|
|
// src/stores/settings/subscriptions/settings-subscriptions.ts
|
|
var settingsSubscriptions = (plugin) => {
|
|
return plugin.settings.subscribe((state2, action, initialRun) => {
|
|
updateFileViewTypeCache(state2.documents);
|
|
if (initialRun) {
|
|
updateViewHotkeysDictionary(get_store_value(ViewHotkeysStore(plugin)));
|
|
} else if (action) {
|
|
if (action.type === "settings/hotkeys/reset-all" || action.type === "settings/hotkeys/apply-preset" || action.type === "settings/hotkeys/reset-custom-hotkey" || action.type === "settings/hotkeys/set-custom-hotkey" || action.type === "settings/hotkeys/toggle-editor-state" || action.type === "settings/hotkeys/set-blank") {
|
|
updateViewHotkeysDictionary(get_store_value(ViewHotkeysStore(plugin)));
|
|
}
|
|
}
|
|
});
|
|
};
|
|
|
|
// src/stores/documents/documents-reducer.ts
|
|
var updateDocumentsState = (state2, action) => {
|
|
if (action.type === "DOCUMENTS/DELETE_DOCUMENT") {
|
|
const path = action.payload.path;
|
|
if (path in state2.documents) {
|
|
const oldEntry = state2.documents[path];
|
|
oldEntry.documentStore.dispatch({
|
|
type: "RESET_STORE"
|
|
});
|
|
delete state2.documents[path];
|
|
}
|
|
} else if (action.type === "DOCUMENTS/UPDATE_DOCUMENT_PATH") {
|
|
const oldPath = action.payload.oldPath;
|
|
const newPath = action.payload.newPath;
|
|
if (oldPath in state2.documents) {
|
|
const oldEntry = state2.documents[oldPath];
|
|
delete state2.documents[oldPath];
|
|
state2.documents[newPath] = oldEntry;
|
|
oldEntry.documentStore.dispatch({
|
|
type: "FS/SET_FILE_PATH",
|
|
payload: {
|
|
path: newPath
|
|
}
|
|
});
|
|
}
|
|
} else if (action.type === "DOCUMENTS/ADD_DOCUMENT") {
|
|
state2.documents[action.payload.path] = {
|
|
documentStore: action.payload.documentStore,
|
|
viewId: action.payload.viewId
|
|
};
|
|
} else if (action.type === "WORKSPACE/SET_ACTIVE_LINEAGE_VIEW") {
|
|
if (state2.documents[action.payload.path]) {
|
|
state2.documents[action.payload.path].viewId = action.payload.viewId;
|
|
}
|
|
}
|
|
};
|
|
var documentsReducer = (store, action) => {
|
|
updateDocumentsState(store, action);
|
|
return store;
|
|
};
|
|
|
|
// src/stores/documents/default-documents-state.ts
|
|
var DefaultDocumentsState = () => ({
|
|
documents: {}
|
|
});
|
|
|
|
// src/obsidian/status-bar/status-bar.ts
|
|
var StatusBar = class {
|
|
constructor(plugin) {
|
|
this.plugin = plugin;
|
|
this.updateAll = (view) => {
|
|
this.updateCardsNumber(view);
|
|
this.updateProgressIndicatorAndChildCount(view);
|
|
};
|
|
this.updateCardsNumber = (view) => {
|
|
const cards2 = Object.keys(
|
|
view.documentStore.getValue().document.content
|
|
).length;
|
|
this.elements.numberOfCards.setText(
|
|
cards2 + " card" + (cards2 === 1 ? "" : "s")
|
|
);
|
|
};
|
|
this.updateProgressIndicatorAndChildCount = async (view) => {
|
|
const document2 = view.documentStore.getValue().document;
|
|
const activeNode = view.viewStore.getValue().document.activeNode;
|
|
const result = await statusBarWorker.run({
|
|
document: document2,
|
|
activeNode
|
|
});
|
|
this.elements.documentProgress.setText(result.progress + " %");
|
|
const totalChildCount = result.totalChildCount;
|
|
if (totalChildCount > 0) {
|
|
this.elements.numberOfChildren.setText(
|
|
totalChildCount + " child card" + (totalChildCount === 1 ? "" : "s")
|
|
);
|
|
this.setElementVisibility(this.elements.numberOfChildren, true);
|
|
} else {
|
|
this.setElementVisibility(this.elements.numberOfChildren, false);
|
|
}
|
|
};
|
|
this.onload();
|
|
}
|
|
onload() {
|
|
this.container = this.plugin.addStatusBarItem();
|
|
this.elements = {
|
|
numberOfCards: this.container.createDiv(),
|
|
numberOfChildren: this.container.createDiv(),
|
|
documentProgress: this.container.createDiv()
|
|
};
|
|
this.elements.numberOfCards.style.marginRight = "5px";
|
|
this.elements.numberOfChildren.style.marginRight = "5px";
|
|
this.elements.documentProgress.ariaLabel = "Progress through the document";
|
|
this.elements.documentProgress.ariaLabel = "Total number of child cards";
|
|
this.plugin.registerEvent(
|
|
this.plugin.app.workspace.on("active-leaf-change", (x) => {
|
|
const visible = Boolean(x && x.view instanceof LineageView);
|
|
this.setVisibility(visible);
|
|
})
|
|
);
|
|
}
|
|
setVisibility(visible) {
|
|
this.container.toggleClass("lineage__hidden-element", !visible);
|
|
}
|
|
setElementVisibility(element2, visible) {
|
|
element2.toggleClass("lineage__hidden-element", !visible);
|
|
}
|
|
};
|
|
|
|
// src/stores/documents/subscriptions/effects/remove-stale-documents/helpers/filter-stale-documents.ts
|
|
var filterStaleDocuments = (settings, allFiles) => {
|
|
if (allFiles.size === 0)
|
|
return 0;
|
|
const paths = Object.keys(settings.documents);
|
|
const deletedPaths = /* @__PURE__ */ new Set();
|
|
for (const path of paths) {
|
|
if (!allFiles.has(path)) {
|
|
deletedPaths.add(path);
|
|
delete settings.documents[path];
|
|
delete settings.styleRules.documents[path];
|
|
}
|
|
}
|
|
return deletedPaths.size;
|
|
};
|
|
|
|
// src/stores/documents/subscriptions/effects/remove-stale-documents/helpers/get-all-loaded-files.ts
|
|
var import_obsidian43 = require("obsidian");
|
|
var getAllLoadedFiles = (plugin) => {
|
|
const allFiles = plugin.app.vault.getAllLoadedFiles();
|
|
const allPaths = /* @__PURE__ */ new Set();
|
|
for (const maybeFile of allFiles) {
|
|
if (maybeFile instanceof import_obsidian43.TFile) {
|
|
allPaths.add(maybeFile.path);
|
|
}
|
|
}
|
|
return allPaths;
|
|
};
|
|
|
|
// src/stores/documents/subscriptions/effects/remove-stale-documents/remove-stale-documents.ts
|
|
var processStaleDocuments = (plugin) => {
|
|
const settings = plugin.settings.getValue();
|
|
const allLoadedFiles = getAllLoadedFiles(plugin);
|
|
const deleted = filterStaleDocuments(settings, allLoadedFiles);
|
|
if (deleted === 0)
|
|
return;
|
|
logger.debug(`[lineage] removed ${deleted} stale documents`);
|
|
plugin.settings.dispatch({
|
|
type: "UPDATE_DOCUMENTS_DICTIONARY",
|
|
payload: {
|
|
documents: settings.documents
|
|
}
|
|
});
|
|
};
|
|
var removeStaleDocuments = (plugin) => {
|
|
plugin.registerTimeout(
|
|
setTimeout(() => processStaleDocuments(plugin), 1e3 * 60 * 5)
|
|
);
|
|
};
|
|
|
|
// src/obsidian/events/workspace/actions/set-active-lineage-view.ts
|
|
var setActiveLineageView = (view) => {
|
|
invariant(view.file);
|
|
view.plugin.documents.dispatch({
|
|
type: "WORKSPACE/SET_ACTIVE_LINEAGE_VIEW",
|
|
payload: {
|
|
path: view.file?.path,
|
|
viewId: view.id
|
|
}
|
|
});
|
|
};
|
|
|
|
// src/obsidian/events/workspace/actions/set-active-leaf-changed.ts
|
|
var setActiveLeafChanged = (plugin) => {
|
|
plugin.documents.dispatch({
|
|
type: "WORKSPACE/ACTIVE_LEAF_CHANGE"
|
|
});
|
|
};
|
|
|
|
// src/obsidian/events/workspace/register-active-leaf-change.ts
|
|
var registerActiveLeafChange = (plugin) => {
|
|
plugin.registerEvent(
|
|
plugin.app.workspace.on("active-leaf-change", (leaf) => {
|
|
if (leaf?.view instanceof LineageView && leaf.view.file?.path) {
|
|
setActiveLineageView(leaf.view);
|
|
}
|
|
setActiveLeafChanged(plugin);
|
|
})
|
|
);
|
|
};
|
|
|
|
// src/obsidian/events/workspace/actions/on-workspace-resize.ts
|
|
var onWorkspaceResize = (plugin) => {
|
|
plugin.documents.dispatch({
|
|
type: "WORKSPACE/RESIZE"
|
|
});
|
|
};
|
|
|
|
// src/obsidian/events/workspace/register-workspace-resize.ts
|
|
var registerWorkspaceResize = (plugin) => {
|
|
plugin.registerEvent(
|
|
plugin.app.workspace.on("resize", () => {
|
|
onWorkspaceResize(plugin);
|
|
})
|
|
);
|
|
};
|
|
|
|
// src/obsidian/events/workspace/actions/set-workspace-layout-ready.ts
|
|
var setWorkspaceLayoutReady = (plugin) => {
|
|
plugin.documents.dispatch({
|
|
type: "WORKSPACE/LAYOUT_READY"
|
|
});
|
|
};
|
|
|
|
// src/obsidian/events/workspace/register-layout-ready.ts
|
|
var registerLayoutReady = (plugin) => {
|
|
plugin.app.workspace.onLayoutReady(() => {
|
|
setWorkspaceLayoutReady(plugin);
|
|
});
|
|
};
|
|
|
|
// src/obsidian/patches/set-active-leaf.ts
|
|
function setActiveLeaf(next) {
|
|
return function(leaf, param) {
|
|
const isLineageViewAndIsEditing = leaf.view && leaf.view instanceof LineageView && leaf.view.inlineEditor?.nodeId;
|
|
if (isLineageViewAndIsEditing)
|
|
return;
|
|
return next.call(this, leaf, param);
|
|
};
|
|
}
|
|
|
|
// src/stores/settings/migrations/migrate-settings.ts
|
|
var migrateSettings = (settings) => {
|
|
for (const [path, pref] of Object.entries(settings.documents)) {
|
|
if (typeof pref === "boolean") {
|
|
settings.documents[path] = {
|
|
documentFormat: "sections",
|
|
viewType: "lineage",
|
|
activeSection: null,
|
|
pinnedSections: null,
|
|
outline: null
|
|
};
|
|
}
|
|
}
|
|
if ("backup" in settings) {
|
|
delete settings.backup;
|
|
}
|
|
};
|
|
|
|
// src/obsidian/events/workspace/register-files-menu-event.ts
|
|
var import_obsidian44 = require("obsidian");
|
|
var registerFilesMenuEvent = (plugin) => {
|
|
plugin.registerEvent(
|
|
plugin.app.workspace.on("files-menu", (menu, abstractFile) => {
|
|
const allFiles = abstractFile.every((af) => af instanceof import_obsidian44.TFile);
|
|
if (allFiles)
|
|
addImportGinkgoMenuItem(menu, plugin, abstractFile);
|
|
})
|
|
);
|
|
};
|
|
|
|
// src/obsidian/markdown-post-processors/remove-html-element-marker-in-preview-mode.ts
|
|
var removeHtmlElementMarkerInPreviewMode = (el) => {
|
|
if (el.classList.contains("lng-prev"))
|
|
return;
|
|
const spans = el.querySelectorAll("span[data-section]");
|
|
for (let i = 0; i < spans.length; i++) {
|
|
const span = spans[i];
|
|
const parent = span.parentElement;
|
|
if (!parent)
|
|
continue;
|
|
const contents = span.childNodes;
|
|
for (let j = 0; j < contents.length; j++) {
|
|
const content = contents[j];
|
|
parent.insertBefore(
|
|
content,
|
|
span.nextSibling ? span.nextSibling : span
|
|
);
|
|
}
|
|
}
|
|
};
|
|
|
|
// src/main.ts
|
|
var Lineage = class extends import_obsidian45.Plugin {
|
|
constructor() {
|
|
super(...arguments);
|
|
this.timeoutReferences = /* @__PURE__ */ new Set();
|
|
}
|
|
async onload() {
|
|
await this.loadSettings();
|
|
this.documents = new Store(
|
|
DefaultDocumentsState(),
|
|
documentsReducer,
|
|
onPluginError
|
|
);
|
|
loadCustomIcons();
|
|
this.registerView(
|
|
LINEAGE_VIEW_TYPE,
|
|
(leaf) => new LineageView(leaf, this)
|
|
);
|
|
addCommands(this);
|
|
this.registerPatches();
|
|
this.registerEffects();
|
|
this.registerEvents();
|
|
this.statusBar = new StatusBar(this);
|
|
this.loadRibbonIcon();
|
|
this.registerMarkdownPostProcessor(
|
|
removeHtmlElementMarkerInPreviewMode
|
|
);
|
|
}
|
|
async saveSettings() {
|
|
await this.saveData(this.settings.getValue());
|
|
}
|
|
async loadSettings() {
|
|
const rawSettings = await this.loadData() || {};
|
|
const settings = deepMerge(rawSettings, DEFAULT_SETTINGS());
|
|
migrateSettings(settings);
|
|
this.settings = new Store(
|
|
settings,
|
|
settingsReducer,
|
|
onPluginError
|
|
);
|
|
this.settings.subscribe(() => {
|
|
this.saveSettings();
|
|
});
|
|
settingsSubscriptions(this);
|
|
}
|
|
registerEvents() {
|
|
registerFileMenuEvent(this);
|
|
registerFilesMenuEvent(this);
|
|
registerFileRenameEvent(this);
|
|
registerFileDeleteEvent(this);
|
|
registerActiveLeafChange(this);
|
|
registerWorkspaceResize(this);
|
|
registerLayoutReady(this);
|
|
}
|
|
registerTimeout(timeout) {
|
|
this.timeoutReferences.add(timeout);
|
|
}
|
|
registerEffects() {
|
|
removeStaleDocuments(this);
|
|
}
|
|
registerPatches() {
|
|
this.register(around(this.app.workspace, { setActiveLeaf }));
|
|
this.register(around(import_obsidian45.WorkspaceLeaf.prototype, { setViewState }));
|
|
}
|
|
loadRibbonIcon() {
|
|
this.addRibbonIcon(
|
|
customIcons.cards.name,
|
|
"Toggle Lineage view",
|
|
() => {
|
|
const file = getActiveFile(this);
|
|
if (file)
|
|
toggleFileViewType(this, file, void 0);
|
|
else
|
|
createLineageDocument(this);
|
|
}
|
|
);
|
|
}
|
|
onunload() {
|
|
super.onunload();
|
|
for (const timeout of this.timeoutReferences) {
|
|
clearTimeout(timeout);
|
|
}
|
|
minimapWorker.terminate();
|
|
rulesWorker.terminate();
|
|
statusBarWorker.terminate();
|
|
}
|
|
};
|
|
/*! Bundled license information:
|
|
|
|
classnames/index.js:
|
|
(*!
|
|
Copyright (c) 2018 Jed Watson.
|
|
Licensed under the MIT License (MIT), see
|
|
http://jedwatson.github.io/classnames
|
|
*)
|
|
|
|
lucide-svelte/dist/defaultAttributes.js:
|
|
(**
|
|
* @license lucide-svelte v0.344.0 - ISC
|
|
*
|
|
* This source code is licensed under the ISC license.
|
|
* See the LICENSE file in the root directory of this source tree.
|
|
*)
|
|
|
|
lucide-svelte/dist/icons/arrow-left.svelte:
|
|
(**
|
|
* @license lucide-svelte v0.344.0 - ISC
|
|
*
|
|
* This source code is licensed under the ISC license.
|
|
* See the LICENSE file in the root directory of this source tree.
|
|
*)
|
|
|
|
lucide-svelte/dist/icons/arrow-right.svelte:
|
|
(**
|
|
* @license lucide-svelte v0.344.0 - ISC
|
|
*
|
|
* This source code is licensed under the ISC license.
|
|
* See the LICENSE file in the root directory of this source tree.
|
|
*)
|
|
|
|
lucide-svelte/dist/icons/chevron-down.svelte:
|
|
(**
|
|
* @license lucide-svelte v0.344.0 - ISC
|
|
*
|
|
* This source code is licensed under the ISC license.
|
|
* See the LICENSE file in the root directory of this source tree.
|
|
*)
|
|
|
|
lucide-svelte/dist/icons/chevron-right.svelte:
|
|
(**
|
|
* @license lucide-svelte v0.344.0 - ISC
|
|
*
|
|
* This source code is licensed under the ISC license.
|
|
* See the LICENSE file in the root directory of this source tree.
|
|
*)
|
|
|
|
lucide-svelte/dist/icons/chevron-up.svelte:
|
|
(**
|
|
* @license lucide-svelte v0.344.0 - ISC
|
|
*
|
|
* This source code is licensed under the ISC license.
|
|
* See the LICENSE file in the root directory of this source tree.
|
|
*)
|
|
|
|
lucide-svelte/dist/icons/clipboard-paste.svelte:
|
|
(**
|
|
* @license lucide-svelte v0.344.0 - ISC
|
|
*
|
|
* This source code is licensed under the ISC license.
|
|
* See the LICENSE file in the root directory of this source tree.
|
|
*)
|
|
|
|
lucide-svelte/dist/icons/clock.svelte:
|
|
(**
|
|
* @license lucide-svelte v0.344.0 - ISC
|
|
*
|
|
* This source code is licensed under the ISC license.
|
|
* See the LICENSE file in the root directory of this source tree.
|
|
*)
|
|
|
|
lucide-svelte/dist/icons/eye.svelte:
|
|
(**
|
|
* @license lucide-svelte v0.344.0 - ISC
|
|
*
|
|
* This source code is licensed under the ISC license.
|
|
* See the LICENSE file in the root directory of this source tree.
|
|
*)
|
|
|
|
lucide-svelte/dist/icons/file-minus.svelte:
|
|
(**
|
|
* @license lucide-svelte v0.344.0 - ISC
|
|
*
|
|
* This source code is licensed under the ISC license.
|
|
* See the LICENSE file in the root directory of this source tree.
|
|
*)
|
|
|
|
lucide-svelte/dist/icons/file-output.svelte:
|
|
(**
|
|
* @license lucide-svelte v0.344.0 - ISC
|
|
*
|
|
* This source code is licensed under the ISC license.
|
|
* See the LICENSE file in the root directory of this source tree.
|
|
*)
|
|
|
|
lucide-svelte/dist/icons/file-pen.svelte:
|
|
(**
|
|
* @license lucide-svelte v0.344.0 - ISC
|
|
*
|
|
* This source code is licensed under the ISC license.
|
|
* See the LICENSE file in the root directory of this source tree.
|
|
*)
|
|
|
|
lucide-svelte/dist/icons/file-plus.svelte:
|
|
(**
|
|
* @license lucide-svelte v0.344.0 - ISC
|
|
*
|
|
* This source code is licensed under the ISC license.
|
|
* See the LICENSE file in the root directory of this source tree.
|
|
*)
|
|
|
|
lucide-svelte/dist/icons/file-symlink.svelte:
|
|
(**
|
|
* @license lucide-svelte v0.344.0 - ISC
|
|
*
|
|
* This source code is licensed under the ISC license.
|
|
* See the LICENSE file in the root directory of this source tree.
|
|
*)
|
|
|
|
lucide-svelte/dist/icons/file-up.svelte:
|
|
(**
|
|
* @license lucide-svelte v0.344.0 - ISC
|
|
*
|
|
* This source code is licensed under the ISC license.
|
|
* See the LICENSE file in the root directory of this source tree.
|
|
*)
|
|
|
|
lucide-svelte/dist/icons/focus.svelte:
|
|
(**
|
|
* @license lucide-svelte v0.344.0 - ISC
|
|
*
|
|
* This source code is licensed under the ISC license.
|
|
* See the LICENSE file in the root directory of this source tree.
|
|
*)
|
|
|
|
lucide-svelte/dist/icons/grip-vertical.svelte:
|
|
(**
|
|
* @license lucide-svelte v0.344.0 - ISC
|
|
*
|
|
* This source code is licensed under the ISC license.
|
|
* See the LICENSE file in the root directory of this source tree.
|
|
*)
|
|
|
|
lucide-svelte/dist/icons/heading-1.svelte:
|
|
(**
|
|
* @license lucide-svelte v0.344.0 - ISC
|
|
*
|
|
* This source code is licensed under the ISC license.
|
|
* See the LICENSE file in the root directory of this source tree.
|
|
*)
|
|
|
|
lucide-svelte/dist/icons/history.svelte:
|
|
(**
|
|
* @license lucide-svelte v0.344.0 - ISC
|
|
*
|
|
* This source code is licensed under the ISC license.
|
|
* See the LICENSE file in the root directory of this source tree.
|
|
*)
|
|
|
|
lucide-svelte/dist/icons/info.svelte:
|
|
(**
|
|
* @license lucide-svelte v0.344.0 - ISC
|
|
*
|
|
* This source code is licensed under the ISC license.
|
|
* See the LICENSE file in the root directory of this source tree.
|
|
*)
|
|
|
|
lucide-svelte/dist/icons/keyboard.svelte:
|
|
(**
|
|
* @license lucide-svelte v0.344.0 - ISC
|
|
*
|
|
* This source code is licensed under the ISC license.
|
|
* See the LICENSE file in the root directory of this source tree.
|
|
*)
|
|
|
|
lucide-svelte/dist/icons/merge.svelte:
|
|
(**
|
|
* @license lucide-svelte v0.344.0 - ISC
|
|
*
|
|
* This source code is licensed under the ISC license.
|
|
* See the LICENSE file in the root directory of this source tree.
|
|
*)
|
|
|
|
lucide-svelte/dist/icons/minus.svelte:
|
|
(**
|
|
* @license lucide-svelte v0.344.0 - ISC
|
|
*
|
|
* This source code is licensed under the ISC license.
|
|
* See the LICENSE file in the root directory of this source tree.
|
|
*)
|
|
|
|
lucide-svelte/dist/icons/more-vertical.svelte:
|
|
(**
|
|
* @license lucide-svelte v0.344.0 - ISC
|
|
*
|
|
* This source code is licensed under the ISC license.
|
|
* See the LICENSE file in the root directory of this source tree.
|
|
*)
|
|
|
|
lucide-svelte/dist/icons/palette.svelte:
|
|
(**
|
|
* @license lucide-svelte v0.344.0 - ISC
|
|
*
|
|
* This source code is licensed under the ISC license.
|
|
* See the LICENSE file in the root directory of this source tree.
|
|
*)
|
|
|
|
lucide-svelte/dist/icons/panel-left-dashed.svelte:
|
|
(**
|
|
* @license lucide-svelte v0.344.0 - ISC
|
|
*
|
|
* This source code is licensed under the ISC license.
|
|
* See the LICENSE file in the root directory of this source tree.
|
|
*)
|
|
|
|
lucide-svelte/dist/icons/panel-right-dashed.svelte:
|
|
(**
|
|
* @license lucide-svelte v0.344.0 - ISC
|
|
*
|
|
* This source code is licensed under the ISC license.
|
|
* See the LICENSE file in the root directory of this source tree.
|
|
*)
|
|
|
|
lucide-svelte/dist/icons/pen.svelte:
|
|
(**
|
|
* @license lucide-svelte v0.344.0 - ISC
|
|
*
|
|
* This source code is licensed under the ISC license.
|
|
* See the LICENSE file in the root directory of this source tree.
|
|
*)
|
|
|
|
lucide-svelte/dist/icons/pencil.svelte:
|
|
(**
|
|
* @license lucide-svelte v0.344.0 - ISC
|
|
*
|
|
* This source code is licensed under the ISC license.
|
|
* See the LICENSE file in the root directory of this source tree.
|
|
*)
|
|
|
|
lucide-svelte/dist/icons/pin.svelte:
|
|
(**
|
|
* @license lucide-svelte v0.344.0 - ISC
|
|
*
|
|
* This source code is licensed under the ISC license.
|
|
* See the LICENSE file in the root directory of this source tree.
|
|
*)
|
|
|
|
lucide-svelte/dist/icons/plus.svelte:
|
|
(**
|
|
* @license lucide-svelte v0.344.0 - ISC
|
|
*
|
|
* This source code is licensed under the ISC license.
|
|
* See the LICENSE file in the root directory of this source tree.
|
|
*)
|
|
|
|
lucide-svelte/dist/icons/redo-2.svelte:
|
|
(**
|
|
* @license lucide-svelte v0.344.0 - ISC
|
|
*
|
|
* This source code is licensed under the ISC license.
|
|
* See the LICENSE file in the root directory of this source tree.
|
|
*)
|
|
|
|
lucide-svelte/dist/icons/rotate-ccw.svelte:
|
|
(**
|
|
* @license lucide-svelte v0.344.0 - ISC
|
|
*
|
|
* This source code is licensed under the ISC license.
|
|
* See the LICENSE file in the root directory of this source tree.
|
|
*)
|
|
|
|
lucide-svelte/dist/icons/rotate-cw.svelte:
|
|
(**
|
|
* @license lucide-svelte v0.344.0 - ISC
|
|
*
|
|
* This source code is licensed under the ISC license.
|
|
* See the LICENSE file in the root directory of this source tree.
|
|
*)
|
|
|
|
lucide-svelte/dist/icons/save.svelte:
|
|
(**
|
|
* @license lucide-svelte v0.344.0 - ISC
|
|
*
|
|
* This source code is licensed under the ISC license.
|
|
* See the LICENSE file in the root directory of this source tree.
|
|
*)
|
|
|
|
lucide-svelte/dist/icons/scan-search.svelte:
|
|
(**
|
|
* @license lucide-svelte v0.344.0 - ISC
|
|
*
|
|
* This source code is licensed under the ISC license.
|
|
* See the LICENSE file in the root directory of this source tree.
|
|
*)
|
|
|
|
lucide-svelte/dist/icons/scissors.svelte:
|
|
(**
|
|
* @license lucide-svelte v0.344.0 - ISC
|
|
*
|
|
* This source code is licensed under the ISC license.
|
|
* See the LICENSE file in the root directory of this source tree.
|
|
*)
|
|
|
|
lucide-svelte/dist/icons/search.svelte:
|
|
(**
|
|
* @license lucide-svelte v0.344.0 - ISC
|
|
*
|
|
* This source code is licensed under the ISC license.
|
|
* See the LICENSE file in the root directory of this source tree.
|
|
*)
|
|
|
|
lucide-svelte/dist/icons/settings.svelte:
|
|
(**
|
|
* @license lucide-svelte v0.344.0 - ISC
|
|
*
|
|
* This source code is licensed under the ISC license.
|
|
* See the LICENSE file in the root directory of this source tree.
|
|
*)
|
|
|
|
lucide-svelte/dist/icons/split.svelte:
|
|
(**
|
|
* @license lucide-svelte v0.344.0 - ISC
|
|
*
|
|
* This source code is licensed under the ISC license.
|
|
* See the LICENSE file in the root directory of this source tree.
|
|
*)
|
|
|
|
lucide-svelte/dist/icons/text.svelte:
|
|
(**
|
|
* @license lucide-svelte v0.344.0 - ISC
|
|
*
|
|
* This source code is licensed under the ISC license.
|
|
* See the LICENSE file in the root directory of this source tree.
|
|
*)
|
|
|
|
lucide-svelte/dist/icons/trash.svelte:
|
|
(**
|
|
* @license lucide-svelte v0.344.0 - ISC
|
|
*
|
|
* This source code is licensed under the ISC license.
|
|
* See the LICENSE file in the root directory of this source tree.
|
|
*)
|
|
|
|
lucide-svelte/dist/icons/undo-2.svelte:
|
|
(**
|
|
* @license lucide-svelte v0.344.0 - ISC
|
|
*
|
|
* This source code is licensed under the ISC license.
|
|
* See the LICENSE file in the root directory of this source tree.
|
|
*)
|
|
|
|
lucide-svelte/dist/icons/x.svelte:
|
|
(**
|
|
* @license lucide-svelte v0.344.0 - ISC
|
|
*
|
|
* This source code is licensed under the ISC license.
|
|
* See the LICENSE file in the root directory of this source tree.
|
|
*)
|
|
|
|
lucide-svelte/dist/icons/index.js:
|
|
(**
|
|
* @license lucide-svelte v0.344.0 - ISC
|
|
*
|
|
* This source code is licensed under the ISC license.
|
|
* See the LICENSE file in the root directory of this source tree.
|
|
*)
|
|
|
|
lucide-svelte/dist/aliases.js:
|
|
(**
|
|
* @license lucide-svelte v0.344.0 - ISC
|
|
*
|
|
* This source code is licensed under the ISC license.
|
|
* See the LICENSE file in the root directory of this source tree.
|
|
*)
|
|
*/
|
|
|
|
/* nosourcemap */ |