UNPKG

obsidian-dev-utils

Version:

This is the collection of useful functions that you can use for your Obsidian plugin development

124 lines (120 loc) 10.9 kB
/* THIS IS A GENERATED/BUNDLED FILE BY ESBUILD if you want to view the source, please visit the github repository of this plugin */ (function initEsm() { if (globalThis.process) { return; } const browserProcess = { browser: true, cwd() { return '/'; }, env: {}, platform: 'android' }; globalThis.process = browserProcess; })(); import { ColorComponent, DropdownComponent, ProgressBarComponent, SearchComponent, SliderComponent, TextAreaComponent, TextComponent, ToggleComponent } from "obsidian"; import { CssClass } from "../../../CssClass.mjs"; import { addPluginCssClasses } from "../../Plugin/PluginContext.mjs"; import { ensureWrapped } from "./SettingComponentWrapper.mjs"; class OverlayValidatorComponent { constructor(el) { this.el = el; const wrapper = ensureWrapped(el); this._validatorEl = wrapper.createEl("input", { attr: { tabindex: -1 } }); addPluginCssClasses(this._validatorEl, CssClass.OverlayValidator); this._validatorEl.addEventListener("focus", () => { this.el.focus(); }); this._validatorEl.isActiveElement = this.isElementOrDescendantActive.bind(this); let tabIndexEl = this.el.querySelector("[tabindex]"); if (!tabIndexEl) { if (this.el.getAttr("tabindex") === null) { this.el.tabIndex = -1; } tabIndexEl = this.el; } this.el.addEventListener("focusin", () => { this.forceBlurValidatorEl(); }); this.el.addEventListener("click", () => { tabIndexEl.focus(); }); this.el.addEventListener("focusout", () => { window.setTimeout(() => { if (this.isElementOrDescendantActive()) { return; } this.forceBlurValidatorEl(); }, 0); }); } get validatorEl() { return this._validatorEl; } _validatorEl; forceBlurValidatorEl() { this._validatorEl.dispatchEvent(new Event("blur")); } isElementOrDescendantActive() { return this.el.contains(document.activeElement); } } class ValidatorElementWrapper { constructor(validatorEl) { this.validatorEl = validatorEl; } } function getValidatorComponent(obj) { if (isValidatorComponent(obj)) { return obj; } if (obj instanceof ColorComponent) { return new ValidatorElementWrapper(obj.colorPickerEl); } if (obj instanceof DropdownComponent) { return new ValidatorElementWrapper(obj.selectEl); } if (obj instanceof ProgressBarComponent) { return new OverlayValidatorComponent(obj.progressBar); } if (obj instanceof SearchComponent) { return new ValidatorElementWrapper(obj.inputEl); } if (obj instanceof SliderComponent) { return new ValidatorElementWrapper(obj.sliderEl); } if (obj instanceof TextAreaComponent) { return new ValidatorElementWrapper(obj.inputEl); } if (obj instanceof TextComponent) { return new ValidatorElementWrapper(obj.inputEl); } if (obj instanceof ToggleComponent) { return new OverlayValidatorComponent(obj.toggleEl); } return null; } function isValidatorComponent(obj) { return !!obj.validatorEl; } export { getValidatorComponent }; //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL0NvbXBvbmVudHMvU2V0dGluZ0NvbXBvbmVudHMvVmFsaWRhdG9yQ29tcG9uZW50LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBwYWNrYWdlRG9jdW1lbnRhdGlvblxuICpcbiAqIENvbnRhaW5zIGEgY29tcG9uZW50IHRoYXQgaGFzIGEgdmFsaWRhdG9yIGVsZW1lbnQuXG4gKi9cblxuaW1wb3J0IHtcbiAgQ29sb3JDb21wb25lbnQsXG4gIERyb3Bkb3duQ29tcG9uZW50LFxuICBQcm9ncmVzc0JhckNvbXBvbmVudCxcbiAgU2VhcmNoQ29tcG9uZW50LFxuICBTbGlkZXJDb21wb25lbnQsXG4gIFRleHRBcmVhQ29tcG9uZW50LFxuICBUZXh0Q29tcG9uZW50LFxuICBUb2dnbGVDb21wb25lbnRcbn0gZnJvbSAnb2JzaWRpYW4nO1xuXG5pbXBvcnQgdHlwZSB7IFZhbGlkYXRvckVsZW1lbnQgfSBmcm9tICcuLi8uLi8uLi9IVE1MRWxlbWVudC50cyc7XG5cbmltcG9ydCB7IENzc0NsYXNzIH0gZnJvbSAnLi4vLi4vLi4vQ3NzQ2xhc3MudHMnO1xuaW1wb3J0IHsgYWRkUGx1Z2luQ3NzQ2xhc3NlcyB9IGZyb20gJy4uLy4uL1BsdWdpbi9QbHVnaW5Db250ZXh0LnRzJztcbmltcG9ydCB7IGVuc3VyZVdyYXBwZWQgfSBmcm9tICcuL1NldHRpbmdDb21wb25lbnRXcmFwcGVyLnRzJztcblxuLyoqXG4gKiBBIGNvbXBvbmVudCB0aGF0IGhhcyBhIHZhbGlkYXRvciBlbGVtZW50LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFZhbGlkYXRvckNvbXBvbmVudCB7XG4gIC8qKlxuICAgKiBBIHZhbGlkYXRvciBlbGVtZW50IG9mIHRoZSBjb21wb25lbnQuXG4gICAqL1xuICByZWFkb25seSB2YWxpZGF0b3JFbDogVmFsaWRhdG9yRWxlbWVudDtcbn1cblxuY2xhc3MgT3ZlcmxheVZhbGlkYXRvckNvbXBvbmVudCBpbXBsZW1lbnRzIFZhbGlkYXRvckNvbXBvbmVudCB7XG4gIHB1YmxpYyBnZXQgdmFsaWRhdG9yRWwoKTogVmFsaWRhdG9yRWxlbWVudCB7XG4gICAgcmV0dXJuIHRoaXMuX3ZhbGlkYXRvckVsO1xuICB9XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfdmFsaWRhdG9yRWw6IFZhbGlkYXRvckVsZW1lbnQ7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgZWw6IEhUTUxFbGVtZW50KSB7XG4gICAgY29uc3Qgd3JhcHBlciA9IGVuc3VyZVdyYXBwZWQoZWwpO1xuXG4gICAgdGhpcy5fdmFsaWRhdG9yRWwgPSB3cmFwcGVyLmNyZWF0ZUVsKCdpbnB1dCcsIHtcbiAgICAgIGF0dHI6IHtcbiAgICAgICAgdGFiaW5kZXg6IC0xXG4gICAgICB9XG4gICAgfSk7XG4gICAgYWRkUGx1Z2luQ3NzQ2xhc3Nlcyh0aGlzLl92YWxpZGF0b3JFbCwgQ3NzQ2xhc3MuT3ZlcmxheVZhbGlkYXRvcik7XG5cbiAgICB0aGlzLl92YWxpZGF0b3JFbC5hZGRFdmVudExpc3RlbmVyKCdmb2N1cycsICgpID0+IHtcbiAgICAgIHRoaXMuZWwuZm9jdXMoKTtcbiAgICB9KTtcblxuICAgIHRoaXMuX3ZhbGlkYXRvckVsLmlzQWN0aXZlRWxlbWVudCA9IHRoaXMuaXNFbGVtZW50T3JEZXNjZW5kYW50QWN0aXZlLmJpbmQodGhpcyk7XG5cbiAgICBsZXQgdGFiSW5kZXhFbCA9IHRoaXMuZWwucXVlcnlTZWxlY3RvcjxIVE1MRWxlbWVudD4oJ1t0YWJpbmRleF0nKTtcbiAgICBpZiAoIXRhYkluZGV4RWwpIHtcbiAgICAgIGlmICh0aGlzLmVsLmdldEF0dHIoJ3RhYmluZGV4JykgPT09IG51bGwpIHtcbiAgICAgICAgdGhpcy5lbC50YWJJbmRleCA9IC0xO1xuICAgICAgfVxuICAgICAgdGFiSW5kZXhFbCA9IHRoaXMuZWw7XG4gICAgfVxuXG4gICAgdGhpcy5lbC5hZGRFdmVudExpc3RlbmVyKCdmb2N1c2luJywgKCkgPT4ge1xuICAgICAgdGhpcy5mb3JjZUJsdXJWYWxpZGF0b3JFbCgpO1xuICAgIH0pO1xuICAgIHRoaXMuZWwuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoKSA9PiB7XG4gICAgICB0YWJJbmRleEVsLmZvY3VzKCk7XG4gICAgfSk7XG4gICAgdGhpcy5lbC5hZGRFdmVudExpc3RlbmVyKCdmb2N1c291dCcsICgpID0+IHtcbiAgICAgIHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgaWYgKHRoaXMuaXNFbGVtZW50T3JEZXNjZW5kYW50QWN0aXZlKCkpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmZvcmNlQmx1clZhbGlkYXRvckVsKCk7XG4gICAgICB9LCAwKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZm9yY2VCbHVyVmFsaWRhdG9yRWwoKTogdm9pZCB7XG4gICAgdGhpcy5fdmFsaWRhdG9yRWwuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ2JsdXInKSk7XG4gIH1cblxuICBwcml2YXRlIGlzRWxlbWVudE9yRGVzY2VuZGFudEFjdGl2ZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5lbC5jb250YWlucyhkb2N1bWVudC5hY3RpdmVFbGVtZW50KTtcbiAgfVxufVxuXG5jbGFzcyBWYWxpZGF0b3JFbGVtZW50V3JhcHBlciBpbXBsZW1lbnRzIFZhbGlkYXRvckNvbXBvbmVudCB7XG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihwdWJsaWMgcmVhZG9ubHkgdmFsaWRhdG9yRWw6IFZhbGlkYXRvckVsZW1lbnQpIHt9XG59XG5cbi8qKlxuICogR2V0cyBhIHZhbGlkYXRvciBjb21wb25lbnQgcmVsYXRlZCB0byB0aGUgZ2l2ZW4gb2JqZWN0LlxuICpcbiAqIEBwYXJhbSBvYmogLSBBbnkgb2JqZWN0LlxuICogQHJldHVybnMgVGhlIHJlbGF0ZWQgdmFsaWRhdG9yIGNvbXBvbmVudCBvciBgbnVsbGAgaWYgbm8gcmVsYXRlZCB2YWxpZGF0b3IgY29tcG9uZW50IGlzIGZvdW5kLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0VmFsaWRhdG9yQ29tcG9uZW50KG9iajogdW5rbm93bik6IG51bGwgfCBWYWxpZGF0b3JDb21wb25lbnQge1xuICBpZiAoaXNWYWxpZGF0b3JDb21wb25lbnQob2JqKSkge1xuICAgIHJldHVybiBvYmo7XG4gIH1cblxuICBpZiAob2JqIGluc3RhbmNlb2YgQ29sb3JDb21wb25lbnQpIHtcbiAgICByZXR1cm4gbmV3IFZhbGlkYXRvckVsZW1lbnRXcmFwcGVyKG9iai5jb2xvclBpY2tlckVsKTtcbiAgfVxuXG4gIGlmIChvYmogaW5zdGFuY2VvZiBEcm9wZG93bkNvbXBvbmVudCkge1xuICAgIHJldHVybiBuZXcgVmFsaWRhdG9yRWxlbWVudFdyYXBwZXIob2JqLnNlbGVjdEVsKTtcbiAgfVxuXG4gIGlmIChvYmogaW5zdGFuY2VvZiBQcm9ncmVzc0JhckNvbXBvbmVudCkge1xuICAgIHJldHVybiBuZXcgT3ZlcmxheVZhbGlkYXRvckNvbXBvbmVudChvYmoucHJvZ3Jlc3NCYXIpO1xuICB9XG5cbiAgaWYgKG9iaiBpbnN0YW5jZW9mIFNlYXJjaENvbXBvbmVudCkge1xuICAgIHJldHVybiBuZXcgVmFsaWRhdG9yRWxlbWVudFdyYXBwZXIob2JqLmlucHV0RWwpO1xuICB9XG5cbiAgaWYgKG9iaiBpbnN0YW5jZW9mIFNsaWRlckNvbXBvbmVudCkge1xuICAgIHJldHVybiBuZXcgVmFsaWRhdG9yRWxlbWVudFdyYXBwZXIob2JqLnNsaWRlckVsKTtcbiAgfVxuXG4gIGlmIChvYmogaW5zdGFuY2VvZiBUZXh0QXJlYUNvbXBvbmVudCkge1xuICAgIHJldHVybiBuZXcgVmFsaWRhdG9yRWxlbWVudFdyYXBwZXIob2JqLmlucHV0RWwpO1xuICB9XG5cbiAgaWYgKG9iaiBpbnN0YW5jZW9mIFRleHRDb21wb25lbnQpIHtcbiAgICByZXR1cm4gbmV3IFZhbGlkYXRvckVsZW1lbnRXcmFwcGVyKG9iai5pbnB1dEVsKTtcbiAgfVxuXG4gIGlmIChvYmogaW5zdGFuY2VvZiBUb2dnbGVDb21wb25lbnQpIHtcbiAgICByZXR1cm4gbmV3IE92ZXJsYXlWYWxpZGF0b3JDb21wb25lbnQob2JqLnRvZ2dsZUVsKTtcbiAgfVxuXG4gIHJldHVybiBudWxsO1xufVxuXG5mdW5jdGlvbiBpc1ZhbGlkYXRvckNvbXBvbmVudChvYmo6IHVua25vd24pOiBvYmogaXMgVmFsaWRhdG9yQ29tcG9uZW50IHtcbiAgcmV0dXJuICEhKG9iaiBhcyBQYXJ0aWFsPFZhbGlkYXRvckNvbXBvbmVudD4pLnZhbGlkYXRvckVsO1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBTUE7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFJUCxTQUFTLGdCQUFnQjtBQUN6QixTQUFTLDJCQUEyQjtBQUNwQyxTQUFTLHFCQUFxQjtBQVk5QixNQUFNLDBCQUF3RDtBQUFBLEVBT3JELFlBQTZCLElBQWlCO0FBQWpCO0FBQ2xDLFVBQU0sVUFBVSxjQUFjLEVBQUU7QUFFaEMsU0FBSyxlQUFlLFFBQVEsU0FBUyxTQUFTO0FBQUEsTUFDNUMsTUFBTTtBQUFBLFFBQ0osVUFBVTtBQUFBLE1BQ1o7QUFBQSxJQUNGLENBQUM7QUFDRCx3QkFBb0IsS0FBSyxjQUFjLFNBQVMsZ0JBQWdCO0FBRWhFLFNBQUssYUFBYSxpQkFBaUIsU0FBUyxNQUFNO0FBQ2hELFdBQUssR0FBRyxNQUFNO0FBQUEsSUFDaEIsQ0FBQztBQUVELFNBQUssYUFBYSxrQkFBa0IsS0FBSyw0QkFBNEIsS0FBSyxJQUFJO0FBRTlFLFFBQUksYUFBYSxLQUFLLEdBQUcsY0FBMkIsWUFBWTtBQUNoRSxRQUFJLENBQUMsWUFBWTtBQUNmLFVBQUksS0FBSyxHQUFHLFFBQVEsVUFBVSxNQUFNLE1BQU07QUFDeEMsYUFBSyxHQUFHLFdBQVc7QUFBQSxNQUNyQjtBQUNBLG1CQUFhLEtBQUs7QUFBQSxJQUNwQjtBQUVBLFNBQUssR0FBRyxpQkFBaUIsV0FBVyxNQUFNO0FBQ3hDLFdBQUsscUJBQXFCO0FBQUEsSUFDNUIsQ0FBQztBQUNELFNBQUssR0FBRyxpQkFBaUIsU0FBUyxNQUFNO0FBQ3RDLGlCQUFXLE1BQU07QUFBQSxJQUNuQixDQUFDO0FBQ0QsU0FBSyxHQUFHLGlCQUFpQixZQUFZLE1BQU07QUFDekMsYUFBTyxXQUFXLE1BQU07QUFDdEIsWUFBSSxLQUFLLDRCQUE0QixHQUFHO0FBQ3RDO0FBQUEsUUFDRjtBQUVBLGFBQUsscUJBQXFCO0FBQUEsTUFDNUIsR0FBRyxDQUFDO0FBQUEsSUFDTixDQUFDO0FBQUEsRUFDSDtBQUFBLEVBN0NBLElBQVcsY0FBZ0M7QUFDekMsV0FBTyxLQUFLO0FBQUEsRUFDZDtBQUFBLEVBRWlCO0FBQUEsRUEyQ1QsdUJBQTZCO0FBQ25DLFNBQUssYUFBYSxjQUFjLElBQUksTUFBTSxNQUFNLENBQUM7QUFBQSxFQUNuRDtBQUFBLEVBRVEsOEJBQXVDO0FBQzdDLFdBQU8sS0FBSyxHQUFHLFNBQVMsU0FBUyxhQUFhO0FBQUEsRUFDaEQ7QUFDRjtBQUVBLE1BQU0sd0JBQXNEO0FBQUEsRUFDbkQsWUFBNEIsYUFBK0I7QUFBL0I7QUFBQSxFQUFnQztBQUNyRTtBQVFPLFNBQVMsc0JBQXNCLEtBQXlDO0FBQzdFLE1BQUkscUJBQXFCLEdBQUcsR0FBRztBQUM3QixXQUFPO0FBQUEsRUFDVDtBQUVBLE1BQUksZUFBZSxnQkFBZ0I7QUFDakMsV0FBTyxJQUFJLHdCQUF3QixJQUFJLGFBQWE7QUFBQSxFQUN0RDtBQUVBLE1BQUksZUFBZSxtQkFBbUI7QUFDcEMsV0FBTyxJQUFJLHdCQUF3QixJQUFJLFFBQVE7QUFBQSxFQUNqRDtBQUVBLE1BQUksZUFBZSxzQkFBc0I7QUFDdkMsV0FBTyxJQUFJLDBCQUEwQixJQUFJLFdBQVc7QUFBQSxFQUN0RDtBQUVBLE1BQUksZUFBZSxpQkFBaUI7QUFDbEMsV0FBTyxJQUFJLHdCQUF3QixJQUFJLE9BQU87QUFBQSxFQUNoRDtBQUVBLE1BQUksZUFBZSxpQkFBaUI7QUFDbEMsV0FBTyxJQUFJLHdCQUF3QixJQUFJLFFBQVE7QUFBQSxFQUNqRDtBQUVBLE1BQUksZUFBZSxtQkFBbUI7QUFDcEMsV0FBTyxJQUFJLHdCQUF3QixJQUFJLE9BQU87QUFBQSxFQUNoRDtBQUVBLE1BQUksZUFBZSxlQUFlO0FBQ2hDLFdBQU8sSUFBSSx3QkFBd0IsSUFBSSxPQUFPO0FBQUEsRUFDaEQ7QUFFQSxNQUFJLGVBQWUsaUJBQWlCO0FBQ2xDLFdBQU8sSUFBSSwwQkFBMEIsSUFBSSxRQUFRO0FBQUEsRUFDbkQ7QUFFQSxTQUFPO0FBQ1Q7QUFFQSxTQUFTLHFCQUFxQixLQUF5QztBQUNyRSxTQUFPLENBQUMsQ0FBRSxJQUFvQztBQUNoRDsiLAogICJuYW1lcyI6IFtdCn0K