From 158a55e87d591949aa4991e8abb01bbe06d996dc Mon Sep 17 00:00:00 2001 From: Dale de Silva Date: Sat, 1 Apr 2023 16:38:50 +1100 Subject: [PATCH] Slight changes to suit plugin submission requirements --- esbuild.config.mjs | 17 +++++++++++++++++ src/static/manifest.json => manifest.json | 4 ++-- package-lock.json | 12 ++++++------ .../settings-groups/settings-groups.ts | 10 +++++----- src/logic/import-logic.ts | 8 ++++---- src/main.ts | 2 +- .../confirmation-modal/confirmation-modal.ts | 4 ++-- .../edit-settings-modal/edit-settings-modal.ts | 6 +++--- .../import-progress-modal.ts | 4 ++-- .../start-import-modal/start-import-modal.ts | 6 +++--- src/styles.scss | 1 + src/tabs/settings-tab/settings-tab.ts | 6 +++--- 12 files changed, 49 insertions(+), 31 deletions(-) rename src/static/manifest.json => manifest.json (81%) diff --git a/esbuild.config.mjs b/esbuild.config.mjs index 7afec53..16459b2 100644 --- a/esbuild.config.mjs +++ b/esbuild.config.mjs @@ -4,6 +4,22 @@ import builtins from 'builtin-modules'; import {sassPlugin} from 'esbuild-sass-plugin' import { copy } from 'esbuild-plugin-copy'; +import fs from 'fs'; + +const copyManifestPlugin = () => ({ + name: 'copy-manifest-plugin', + setup(build) { + build.onEnd(async () => { + try { + fs.copyFileSync('./manifest.json', './dist/manifest.json'); + } catch (e) { + console.error('Failed to copy file:', e); + } + }); + }, +}); + + const banner = `/* THIS IS A GENERATED/BUNDLED FILE BY ESBUILD @@ -52,5 +68,6 @@ esbuild.build({ to: ['./dist'], }, }), + copyManifestPlugin(), ], }).catch(() => process.exit(1)); diff --git a/src/static/manifest.json b/manifest.json similarity index 81% rename from src/static/manifest.json rename to manifest.json index a9a58e3..4910a43 100644 --- a/src/static/manifest.json +++ b/manifest.json @@ -2,8 +2,8 @@ "id": "daledesilva_google-keep-import", "name": "Google Keep Import", "version": "0.0.8", - "minAppVersion": "1.00.0", - "description": "Allows import of Google Keep backup json files and their attachments.", + "minAppVersion": "1.1.10", + "description": "Allows import of Google Keep backup json files and their attachments. Can also be used to import other files.", "author": "Dale de Silva", "authorUrl": "https://designdebt.club", "fundingUrl": { diff --git a/package-lock.json b/package-lock.json index c71ef97..34a6adc 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2136,9 +2136,9 @@ } }, "node_modules/obsidian": { - "version": "0.16.3", - "resolved": "https://registry.npmjs.org/obsidian/-/obsidian-0.16.3.tgz", - "integrity": "sha512-hal9qk1A0GMhHSeLr2/+o3OpLmImiP+Y+sx2ewP13ds76KXsziG96n+IPFT0mSkup1zSwhEu+DeRhmbcyCCXWw==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/obsidian/-/obsidian-1.1.1.tgz", + "integrity": "sha512-GcxhsHNkPEkwHEjeyitfYNBcQuYGeAHFs1pEpZIv0CnzSfui8p8bPLm2YKLgcg20B764770B1sYGtxCvk9ptxg==", "dev": true, "dependencies": { "@types/codemirror": "0.0.108", @@ -4048,9 +4048,9 @@ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" }, "obsidian": { - "version": "0.16.3", - "resolved": "https://registry.npmjs.org/obsidian/-/obsidian-0.16.3.tgz", - "integrity": "sha512-hal9qk1A0GMhHSeLr2/+o3OpLmImiP+Y+sx2ewP13ds76KXsziG96n+IPFT0mSkup1zSwhEu+DeRhmbcyCCXWw==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/obsidian/-/obsidian-1.1.1.tgz", + "integrity": "sha512-GcxhsHNkPEkwHEjeyitfYNBcQuYGeAHFs1pEpZIv0CnzSfui8p8bPLm2YKLgcg20B764770B1sYGtxCvk9ptxg==", "dev": true, "requires": { "@types/codemirror": "0.0.108", diff --git a/src/components/settings-groups/settings-groups.ts b/src/components/settings-groups/settings-groups.ts index a846984..9b59f45 100644 --- a/src/components/settings-groups/settings-groups.ts +++ b/src/components/settings-groups/settings-groups.ts @@ -1,5 +1,5 @@ import { Setting } from "obsidian"; -import MyPlugin from "src/main"; +import GoogleKeepImportPlugin from "src/main"; import { ConfirmationModal } from "src/modals/confirmation-modal/confirmation-modal"; import { CreatedDateTypes } from "src/types/plugin-settings"; @@ -13,7 +13,7 @@ import { CreatedDateTypes } from "src/types/plugin-settings"; */ export class BasicSettingsGroup { - constructor(containerEl: HTMLElement, plugin: MyPlugin) { + constructor(containerEl: HTMLElement, plugin: GoogleKeepImportPlugin) { containerEl.createEl('h2', {text: 'Basics'}); @@ -73,7 +73,7 @@ export class BasicSettingsGroup { */ export class InclusionSettingsGroup { - constructor(containerEl: HTMLElement, plugin: MyPlugin) { + constructor(containerEl: HTMLElement, plugin: GoogleKeepImportPlugin) { containerEl.createEl('h2', {text: 'Inclusions'}); @@ -134,7 +134,7 @@ export class InclusionSettingsGroup { */ export class TagSettingsGroup { - constructor(containerEl: HTMLElement, plugin: MyPlugin) { + constructor(containerEl: HTMLElement, plugin: GoogleKeepImportPlugin) { containerEl.createEl('h2', {text: 'Tags'}); @@ -273,7 +273,7 @@ export class TagSettingsGroup { /** * Adds a button that resets the plugin's setting to default. */ -export function addResetButton(settingEl: Setting, plugin: MyPlugin, onComplete: Function): Setting { +export function addResetButton(settingEl: Setting, plugin: GoogleKeepImportPlugin, onComplete: Function): Setting { return settingEl.addButton( (button) => { button.setButtonText('Reset settings'); button.setClass('gki_button'); diff --git a/src/logic/import-logic.ts b/src/logic/import-logic.ts index 0ab69b1..89d6185 100644 --- a/src/logic/import-logic.ts +++ b/src/logic/import-logic.ts @@ -1,5 +1,5 @@ import { DataWriteOptions, Notice, Plugin, TAbstractFile, TFile, TFolder, Vault } from "obsidian"; -import MyPlugin from "src/main"; +import GoogleKeepImportPlugin from "src/main"; import { ImportProgressModal } from "src/modals/import-progress-modal/import-progress-modal"; import { filenameSanitize } from "./string-processes"; import { CreatedDateTypes, PluginSettings } from "src/types/plugin-settings"; @@ -33,7 +33,7 @@ interface OutputLogItem { /** * Runs and manages the import sequence of import modals and import logic. */ -export async function runImportSequence(plugin: MyPlugin) { +export async function runImportSequence(plugin: GoogleKeepImportPlugin) { // Allow the user to select which files to import and adjust settings const modal = new StartImportModal(plugin); @@ -108,7 +108,7 @@ async function getOrCreateFolder(folderPath: string, vault: Vault): Promise = []; private outputLogIter = 0; - constructor(plugin: MyPlugin) { + constructor(plugin: GoogleKeepImportPlugin) { this.plugin = plugin; } diff --git a/src/main.ts b/src/main.ts index c8e662c..b927499 100644 --- a/src/main.ts +++ b/src/main.ts @@ -40,7 +40,7 @@ export const DEFAULT_SETTINGS: PluginSettings = { /** * The base plugin class initialised by Obsidian on launch */ -export default class MyPlugin extends Plugin { +export default class GoogleKeepImportPlugin extends Plugin { settings: PluginSettings; async onload() { diff --git a/src/modals/confirmation-modal/confirmation-modal.ts b/src/modals/confirmation-modal/confirmation-modal.ts index c39c09f..4bd4569 100644 --- a/src/modals/confirmation-modal/confirmation-modal.ts +++ b/src/modals/confirmation-modal/confirmation-modal.ts @@ -1,5 +1,5 @@ import { Modal, Setting } from "obsidian"; -import MyPlugin from "src/main"; +import GoogleKeepImportPlugin from "src/main"; /////////////////// @@ -7,7 +7,7 @@ import MyPlugin from "src/main"; interface ConfirmationOptions { - plugin: MyPlugin, + plugin: GoogleKeepImportPlugin, title?: string, message?: string, cancelLabel?: string, diff --git a/src/modals/edit-settings-modal/edit-settings-modal.ts b/src/modals/edit-settings-modal/edit-settings-modal.ts index e0c788b..b670628 100644 --- a/src/modals/edit-settings-modal/edit-settings-modal.ts +++ b/src/modals/edit-settings-modal/edit-settings-modal.ts @@ -1,7 +1,7 @@ import { Modal, Setting } from "obsidian"; import { addResetButton, BasicSettingsGroup, InclusionSettingsGroup, TagSettingsGroup } from "src/components/settings-groups/settings-groups"; import { SupportButtonSet } from "src/components/support-button-set/support-button-set"; -import MyPlugin from "src/main"; +import GoogleKeepImportPlugin from "src/main"; /////////////////// @@ -9,7 +9,7 @@ import MyPlugin from "src/main"; export class EditSettingsModal extends Modal { - plugin: MyPlugin; + plugin: GoogleKeepImportPlugin; result: string; duplicateNotes: number = 0; noteSpan: HTMLSpanElement; @@ -21,7 +21,7 @@ export class EditSettingsModal extends Modal { resolveModal: (value: Array) => void; rejectModal: (value: string) => void; - constructor(plugin: MyPlugin) { + constructor(plugin: GoogleKeepImportPlugin) { super(plugin.app); this.plugin = plugin; } diff --git a/src/modals/import-progress-modal/import-progress-modal.ts b/src/modals/import-progress-modal/import-progress-modal.ts index 63a15c8..738afc8 100644 --- a/src/modals/import-progress-modal/import-progress-modal.ts +++ b/src/modals/import-progress-modal/import-progress-modal.ts @@ -2,7 +2,7 @@ import { Modal, Setting } from "obsidian"; import { ImportSummary } from "src/components/import-summary/import-summary"; import { SupportButtonSet } from "src/components/support-button-set/support-button-set"; import { FileImporter } from "src/logic/import-logic"; -import MyPlugin from "src/main"; +import GoogleKeepImportPlugin from "src/main"; /////////////////// @@ -26,7 +26,7 @@ export class ImportProgressModal extends Modal { resolveModal: (value: string) => void; rejectModal: (value: string) => void; - constructor(plugin: MyPlugin, fileImporter: FileImporter) { + constructor(plugin: GoogleKeepImportPlugin, fileImporter: FileImporter) { super(plugin.app); this.fileImporter = fileImporter } diff --git a/src/modals/start-import-modal/start-import-modal.ts b/src/modals/start-import-modal/start-import-modal.ts index 30b9b2a..7b608d1 100644 --- a/src/modals/start-import-modal/start-import-modal.ts +++ b/src/modals/start-import-modal/start-import-modal.ts @@ -1,6 +1,6 @@ import { Modal, Notice, Setting } from "obsidian"; import { singleOrPlural } from "src/logic/string-processes"; -import MyPlugin from "src/main"; +import GoogleKeepImportPlugin from "src/main"; import { EditSettingsModal } from "../edit-settings-modal/edit-settings-modal"; import { SupportButtonSet } from 'src/components/support-button-set/support-button-set'; import { ImportSummary } from "src/components/import-summary/import-summary"; @@ -12,7 +12,7 @@ import { fileIsJson } from "src/logic/import-logic"; export class StartImportModal extends Modal { - plugin: MyPlugin; + plugin: GoogleKeepImportPlugin; result: string; duplicateNotes: number = 0; notesSpan: HTMLSpanElement; @@ -25,7 +25,7 @@ export class StartImportModal extends Modal { resolveModal: (value: Array) => void; rejectModal: (value: string) => void; - constructor(plugin: MyPlugin) { + constructor(plugin: GoogleKeepImportPlugin) { super(plugin.app); this.plugin = plugin; } diff --git a/src/styles.scss b/src/styles.scss index 871c0d7..481aaee 100644 --- a/src/styles.scss +++ b/src/styles.scss @@ -83,6 +83,7 @@ button.gki_button[disabled] { position: relative; .gki_highlight { position: absolute; + z-index: -100; } } diff --git a/src/tabs/settings-tab/settings-tab.ts b/src/tabs/settings-tab/settings-tab.ts index 0e96a3d..83feddf 100644 --- a/src/tabs/settings-tab/settings-tab.ts +++ b/src/tabs/settings-tab/settings-tab.ts @@ -1,5 +1,5 @@ import { App, PluginSettingTab, Setting } from "obsidian"; -import MyPlugin from "src/main"; +import GoogleKeepImportPlugin from "src/main"; import { addResetButton, BasicSettingsGroup, InclusionSettingsGroup, TagSettingsGroup } from "src/components/settings-groups/settings-groups"; import { SupportButtonSet } from "src/components/support-button-set/support-button-set"; @@ -9,9 +9,9 @@ import { SupportButtonSet } from "src/components/support-button-set/support-butt export class MySettingsTab extends PluginSettingTab { - plugin: MyPlugin; + plugin: GoogleKeepImportPlugin; - constructor(app: App, plugin: MyPlugin) { + constructor(app: App, plugin: GoogleKeepImportPlugin) { super(app, plugin); this.plugin = plugin; }