/* 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 __markAsModule = (target) => __defProp(target, "__esModule", { value: true }); var __export = (target, all) => { __markAsModule(target); for (var name in all) __defProp(target, name, { get: all[name], enumerable: true }); }; var __reExport = (target, module2, desc) => { if (module2 && typeof module2 === "object" || typeof module2 === "function") { for (let key of __getOwnPropNames(module2)) if (!__hasOwnProp.call(target, key) && key !== "default") __defProp(target, key, { get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable }); } return target; }; var __toModule = (module2) => { return __reExport(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", module2 && module2.__esModule && "default" in module2 ? { get: () => module2.default, enumerable: true } : { value: module2, enumerable: true })), module2); }; var __async = (__this, __arguments, generator) => { return new Promise((resolve, reject) => { var fulfilled = (value) => { try { step(generator.next(value)); } catch (e) { reject(e); } }; var rejected = (value) => { try { step(generator.throw(value)); } catch (e) { reject(e); } }; var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected); step((generator = generator.apply(__this, __arguments)).next()); }); }; // src/main.ts __export(exports, { default: () => TitleSerialNumberPlugin }); var import_obsidian2 = __toModule(require("obsidian")); // src/serialNumberHelper.ts var _SerialNumberHelper = class { static resetHxSerialNumbers(idx) { for (let index = idx; index < 6; index++) { _SerialNumberHelper.hxSerialNumbers[index] = 0; } } static getSerialNumberStr(level, activedHeadlines) { if (!activedHeadlines.includes(level)) { return ""; } let serialLevel = activedHeadlines.indexOf(level) + 1; let newSerialNumber = ""; for (let idx = 0; idx < serialLevel; idx++) { if (idx == serialLevel - 1) { _SerialNumberHelper.resetHxSerialNumbers(idx + 1); _SerialNumberHelper.hxSerialNumbers[idx] += 1; newSerialNumber += `${_SerialNumberHelper.hxSerialNumbers[idx]}`; } else { newSerialNumber += `${_SerialNumberHelper.hxSerialNumbers[idx]}.`; } } return `${newSerialNumber}`; } }; var SerialNumberHelper = _SerialNumberHelper; SerialNumberHelper.hxSerialNumbers = [0, 0, 0, 0, 0, 0]; // src/settings.ts var import_obsidian = __toModule(require("obsidian")); var TitleSerialNumberPluginSettingTab = class extends import_obsidian.PluginSettingTab { constructor(app, plugin) { super(app, plugin); this.plugin = plugin; } display() { const { containerEl } = this; containerEl.empty(); containerEl.createEl("h2", { text: "Settings for title serial number plugin." }); containerEl.createDiv({ text: "Which headlines do you like to generate serial number for?" }); let div = containerEl.createDiv(); for (const i of [1, 2, 3, 4, 5, 6]) { div.createEl("label", { attr: { for: `h${i}` }, text: `H${i}` }); let hxInput = div.createEl("input", { type: "checkbox", attr: { id: `h${i}`, name: "actived-headline" } }); if (this.plugin.settings.activedHeadlines.includes(i)) { hxInput.checked = true; } let activedArr = []; hxInput.addEventListener("change", (ev) => __async(this, null, function* () { let cked = div.querySelectorAll("input[type=checkbox][name=actived-headline]"); for (let i2 = 0; i2 < cked.length; i2++) { const element = cked[i2]; let e = element; if (e.checked) { activedArr.push(i2 + 1); } this.plugin.settings.activedHeadlines = activedArr; yield this.plugin.saveSettings(); } })); div.createEl("span", { text: " | " }); } } }; // src/main.ts var DEFAULT_SETTINGS = { activedHeadlines: [1, 2, 3, 4, 5, 6] }; var TitleSerialNumberPlugin = class extends import_obsidian2.Plugin { onload() { return __async(this, null, function* () { yield this.loadSettings(); this.addCommand({ id: "set-title-serial-number-editor-command", name: "Set Serial Number For Title", editorCallback: (editor, view) => { let startWith = 1; let endWith = 3; if (startWith > endWith) { new import_obsidian2.Notice("Your configuration is ERROR, command terminated!"); return; } endWith += 1; const regex = /^([#]+) ([0-9.]* *)(.*)$/gm; let originVal = editor.getValue(); let m; while ((m = regex.exec(originVal)) !== null) { if (m.index === regex.lastIndex) { regex.lastIndex++; } let str = m[0]; let wellStr = m[1]; let oldSerialNumber = m[2]; let title = m[3]; let matchStartIndex = m.index; let newSerialNumber = SerialNumberHelper.getSerialNumberStr(wellStr.length, this.settings.activedHeadlines); let result = ""; if (newSerialNumber === "") { result = `${wellStr} ${title}`; } else { result = `${wellStr} ${newSerialNumber} ${title}`; } let sub1 = originVal.substring(0, matchStartIndex); let sub2 = originVal.substring(matchStartIndex + str.length); originVal = sub1 + "" + result + sub2; } editor.setValue(originVal); SerialNumberHelper.resetHxSerialNumbers(0); } }); this.addCommand({ id: "clear-title-serial-number-editor-command", name: "Clear Serial Number For Title", editorCallback: (editor, view) => { const regex2 = /^([#]+) ([0-9.]* *)(.*)$/gm; let originVal = editor.getValue(); let m; while ((m = regex2.exec(originVal)) !== null) { if (m.index === regex2.lastIndex) { regex2.lastIndex++; } console.log(m); let str = m[0]; let wellStr = m[1]; let oldSerialNumber = m[2]; let title = m[3]; let matchStartIndex = m.index; let result = `${wellStr} ${title}`; let sub1 = originVal.substring(0, matchStartIndex); let sub2 = originVal.substring(matchStartIndex + str.length); originVal = sub1 + "" + result + sub2; } editor.setValue(originVal); SerialNumberHelper.resetHxSerialNumbers(0); } }); this.addSettingTab(new TitleSerialNumberPluginSettingTab(this.app, this)); }); } onunload() { } loadSettings() { return __async(this, null, function* () { this.settings = Object.assign({}, DEFAULT_SETTINGS, yield this.loadData()); }); } saveSettings() { return __async(this, null, function* () { yield this.saveData(this.settings); }); } }; /* nosourcemap */