Commit graph

23 commits

Author SHA1 Message Date
Gary Ritchie
8c6e0eaa2d
Update devDependencies and adapt to eslint-plugin-obsidianmd 0.4.1 (#56)
* Update devDependencies and adapt to eslint-plugin-obsidianmd 0.4.1

* Bump minAppVersion to 1.13.0 and drop deprecated API usage

* Remove dead ESLint config obsoleted by obsidianmd 0.4.1
2026-07-19 17:32:55 -06:00
Gary Ritchie
f5e9a17561
1.0.10 2026-05-29 19:30:32 -06:00
Gary Ritchie
62790c8ab8
Update npm dependencies to latest; adapt to TS 6 and Obsidian 1.13 typings (#53)
- Bump @types/node, esbuild, jiti, obsidian, typescript (6.0),
  and typescript-eslint to latest
- Hold @eslint/js at 9.x: eslint-plugin-obsidianmd peer-pins ^9.30.1
- tsconfig: drop unused baseUrl and switch moduleResolution to bundler
  (both deprecated as errors in TS 6.0)
- main.ts: declare settings to refine Plugin.settings (new in 1.13.0)
- settings.ts: add override to display(); centralise the still-supported
  imperative re-render behind rerender() with one deprecation suppression
- Keep setWarning() over setDestructive() to avoid raising minAppVersion
  from 1.8.7 to 1.13.0
2026-05-29 19:25:35 -06:00
Gary Ritchie
b7aee75aff
1.0.9 2026-05-12 18:52:16 -06:00
Gary Ritchie
7a5cfd22c3
Address Obsidian plugin review feedback (#51)
* Use createSpan helper for file path element

* Use createSpan helper for selection conflict warning

* Use createSpan helper for checkbox-type warning

* Use createSpan helper for selection conflict warning (initial render)

* Use createSpan helper for checkbox-type warning (initial render)

* Upgrade eslint-plugin-obsidianmd to 0.3.0

Apply prefer-window-timers fix for popout window compatibility.
2026-05-12 18:10:25 -06:00
Gary Ritchie
5e0d50b7bc
1.0.8 2026-04-22 20:21:15 -06:00
Gary Ritchie
4d53ba0e27
Upgrade eslint-plugin-obsidianmd to 0.2.4 (#49)
* Upgrade eslint-plugin-obsidianmd to 0.2.4

Pick up new rules: prefer-active-doc, prefer-active-window-timers,
no-unsupported-api, prefer-instanceof, editor-drop-paste,
rule-custom-message, plus the bundled no-unsanitized plugin.

Fix new lint errors:
- Use activeDocument/activeWindow instead of document/window in the
  modal and settings (popout compatibility).
- Use activeWindow.setTimeout/clearTimeout for the status bar debouncer.
- Bump minAppVersion to 1.8.7. Notice.messageEl (1.8.7) and
  FileManager.trashFile (1.6.6) were already in use, so the previous
  1.4.10 floor was incorrect.

Config tweaks:
- Scope a local override to turn off the preset's type-aware
  obsidianmd rules on package.json: the 0.2.4 preset spreads them
  globally and they crash on the JSON parser.
- Keep reportUnusedDisableDirectives and require-await overrides
  (the preset still does not set them).
- Switch from the deprecated tseslint.config() to ESLint core's
  defineConfig(). Drop the now-redundant globals dep (the preset
  sets browser/obsidian globals itself).

* Pin debounce timers to owning window, not activeWindow

activeWindow resolves at call time, so a timer scheduled in one
window could be cleared against a different window (no-op) if the
user moved focus between schedule and cancel. The stale callback
would still fire and clobber a newer pending timer id.

Capture the owning window via the element's `.win` accessor and use
the same reference for both setTimeout and clearTimeout — status
bar in main.ts, selection-property blur debouncer in settings.ts.

* Pin modal DOM to owning document; bump version to 1.0.8

activeDocument follows focus, so modal code that used it to check
active element or create inputs could target the wrong window when
focus moved between pop-outs. Switch to the owning document of the
relevant element (checkbox.ownerDocument, setting.controlEl.ownerDocument).

Bump plugin version to 1.0.8 and record versions["1.0.8"] = "1.8.7".
Keeping the minAppVersion change under version 1.0.7 would have left
the packaged manifest (1.8.7) disagreeing with the community index
(versions.json mapping 1.0.7 → 1.4.10).

* Revert premature version bump to 1.0.8

Roll package/manifest/versions metadata back to 1.0.7; the version
bump belongs in a separate release commit via `npm version patch`,
not in this branch. minAppVersion stays at 1.8.7 because the code
on this branch uses APIs that require it.
2026-04-22 20:04:30 -06:00
Gary Ritchie
d149c98d37
1.0.7 2026-04-12 11:59:23 -06:00
Gary Ritchie
fdd32c79a6
1.0.6 2026-04-12 09:22:28 -06:00
Gary Ritchie
e66c0eeea1
1.0.5 2026-04-04 15:20:18 -06:00
Gary Ritchie
579637e58c
1.0.4 2026-04-03 19:59:42 -06:00
Gary Ritchie
131af3a9b8
1.0.3 2026-04-03 14:27:57 -06:00
Gary Ritchie
4d5e49550c
Update dev dependencies (#24)
- @types/node: ^16.11.6 → ^25.5.0
- esbuild: 0.25.5 → 0.27.5
- globals: 14.0.0 → 17.4.0
- obsidian: 1.10.3 → 1.12.3
- tslib: 2.4.0 → 2.8.1
- typescript-eslint: 8.35.1 → 8.58.0
- @eslint/js: 9.30.1 → 9.39.4
- Pin typescript to 5.8.3 (eslint-plugin-obsidianmd requires <5.9.0)
2026-04-03 07:06:01 -06:00
Gary Ritchie
2a9a76fc3b
1.0.2 2026-03-29 11:51:03 -06:00
Gary Ritchie
56d91a39f4
1.0.1 2026-03-29 08:47:41 -06:00
Gary Ritchie
e340f0b62a
Revert "1.0.1"
This reverts commit de0da7a73c.
2026-03-29 08:04:08 -06:00
Gary Ritchie
de0da7a73c
1.0.1 2026-03-29 08:02:41 -06:00
Gary Ritchie
2f4dc3e4aa
Harden error handling, validation, and type strictness
- Add NaN validation in coerceValue, abort update on invalid number
- Save-then-commit pattern in settings tab: build candidate, persist,
  then commit to live state only on success
- Validate settings on load: sanitize properties array entries, check
  selectionProperty type
- Feedback for silent rejections: empty/duplicate property names show
  Notice
- Reflect fallback in selection property input with re-entrancy guard
- Move onComplete inside try block in setSelection (success-only)
- Stable DOM structure in progress notice (text span + button) with
  try/finally for notice cleanup
- Specific error message in removeSelectionProperty
- Enable strict:true in tsconfig, add exactOptionalPropertyTypes,
  noImplicitOverride, noPropertyAccessFromIndexSignature
- Move obsidian to devDependencies and pin version
- Remove empty authorUrl from manifest
2026-03-28 09:55:09 -06:00
Gary Ritchie
7476fdeb24
Change license from 0-BSD to MIT 2026-03-27 13:56:58 -06:00
Gary Ritchie
b0a1668f6d
Rename baseprop references to bulk-properties
Rename classes (BasepropPlugin → BulkPropertiesPlugin, etc.),
CSS classes (baseprop-* → bulk-properties-*), and package name
to match the new plugin identity.
2026-03-26 21:57:53 -06:00
Gary Ritchie
66790b7ff3
Rename plugin to Bulk Properties 2026-03-26 21:34:09 -06:00
Gary Ritchie
03cd4a0d80
Implement bulk property editor for Obsidian Bases
Add command "Bulk edit selected files" that finds all vault files with
the "selected" checkbox property checked, then presents a modal to
choose a property, enter a new value (with type-appropriate inputs),
and apply the change across all selected files. Includes option to
deselect files after update.
2026-03-24 20:14:47 -06:00
Gary Ritchie
ea6de67a85
Initial commit 2026-03-24 19:27:30 -06:00