diff --git a/package-lock.json b/package-lock.json index a972b2b38..a5a6f02ad 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "trilium", - "version": "0.45.10", + "version": "0.46.0-beta", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -1769,9 +1769,9 @@ "dev": true }, "caniuse-lite": { - "version": "1.0.30001185", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001185.tgz", - "integrity": "sha512-Fpi4kVNtNvJ15H0F6vwmXtb3tukv3Zg3qhKkOGUq7KJ1J6b9kf4dnNgtEAFXhRsJo0gNj9W60+wBvn0JcTvdTg==", + "version": "1.0.30001187", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001187.tgz", + "integrity": "sha512-w7/EP1JRZ9552CyrThUnay2RkZ1DXxKe/Q2swTC4+LElLh9RRYrL1Z+27LlakB8kzY0fSmHw9mc7XYDUKAKWMA==", "dev": true }, "caseless": { @@ -2712,9 +2712,9 @@ } }, "electron-dl": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/electron-dl/-/electron-dl-3.0.3.tgz", - "integrity": "sha512-eh1zDc+cffWQ0wVjZj7YGSq5qSYsD2vxIeojJt2hoV0/2fOlLv57pqeRkVfrDrocVYRwAytphctunTXRKj1GmA==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/electron-dl/-/electron-dl-3.1.0.tgz", + "integrity": "sha512-nY3vvxX5w11+cFT6JkJwMHtH6dk5sPtjRtzjaj4NrS9CyYF3atvVt8yMfZtXruULU1JAuxEEf2B8O6YgXs9xsQ==", "requires": { "ext-name": "^5.0.0", "pupa": "^2.0.1", @@ -3252,9 +3252,9 @@ } }, "electron-to-chromium": { - "version": "1.3.657", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.657.tgz", - "integrity": "sha512-/9ROOyvEflEbaZFUeGofD+Tqs/WynbSTbNgNF+/TJJxH1ePD/e6VjZlDJpW3FFFd3nj5l3Hd8ki2vRwy+gyRFw==", + "version": "1.3.667", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.667.tgz", + "integrity": "sha512-Ot1pPtAVb5nd7jeVF651zmfLFilRVFomlDzwXmdlWe5jyzOGa6mVsQ06XnAurT7wWfg5VEIY+LopbAdD/bpo5w==", "dev": true }, "electron-window-state": { @@ -3303,9 +3303,9 @@ }, "dependencies": { "graceful-fs": { - "version": "4.2.5", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.5.tgz", - "integrity": "sha512-kBBSQbz2K0Nyn+31j/w36fUfxkBW9/gfwRWdUY1ULReH3iokVJgddZAFcD1D0xlgTmFxJCbUkUclAlc6/IDJkw==", + "version": "4.2.6", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", + "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==", "dev": true } } @@ -5185,18 +5185,11 @@ "integrity": "sha512-svXaP8UQRZ5K7or+ZmfNhg2xX3yKDMUzqadsSqi4NCH/KomcH75MAMYAGVlvXn4+b/xOPhS3I2uHKRUzvjY7BQ==" }, "mime-types": { - "version": "2.1.28", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.28.tgz", - "integrity": "sha512-0TO2yJ5YHYr7M2zzT7gDU1tbwHxEUWBCLt0lscSNpcdAfFyJOVEpRYNS7EXVcTLNj/25QO8gulHC5JtTzSE2UQ==", + "version": "2.1.29", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.29.tgz", + "integrity": "sha512-Y/jMt/S5sR9OaqteJtslsFZKWOIIqMACsJSiHghlCAyhf7jfVYjKBmLiX8OgpWeW+fjJ2b+Az69aPFPkUOY6xQ==", "requires": { - "mime-db": "1.45.0" - }, - "dependencies": { - "mime-db": { - "version": "1.45.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.45.0.tgz", - "integrity": "sha512-CkqLUxUk15hofLoLyljJSrukZi8mAtgd+yE5uO4tqRZsdsAJKv0O+rFMhVDRJgozy+yG6md5KwuXhD4ocIoP+w==" - } + "mime-db": "1.46.0" } }, "mimic-fn": { @@ -5656,9 +5649,9 @@ } }, "open": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/open/-/open-7.4.1.tgz", - "integrity": "sha512-Pxv+fKRsd/Ozflgn2Gjev1HZveJJeKR6hKKmdaImJMuEZ6htAvCTbcMABJo+qevlAelTLCrEK3YTKZ9fVTcSPw==", + "version": "7.4.2", + "resolved": "https://registry.npmjs.org/open/-/open-7.4.2.tgz", + "integrity": "sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==", "requires": { "is-docker": "^2.0.0", "is-wsl": "^2.1.1" @@ -7204,9 +7197,9 @@ "dev": true }, "terser": { - "version": "5.5.1", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.5.1.tgz", - "integrity": "sha512-6VGWZNVP2KTUcltUQJ25TtNjx/XgdDsBDKGt8nN0MpydU36LmbPPcMBd2kmtZNNGVVDLg44k7GKeHHj+4zPIBQ==", + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.6.0.tgz", + "integrity": "sha512-vyqLMoqadC1uR0vywqOZzriDYzgEkNJFK4q9GeyOBHIbiECHiWLKcWfbQWAUaPfxkjDhapSlZB9f7fkMrvkVjA==", "dev": true, "requires": { "commander": "^2.20.0", @@ -7669,9 +7662,9 @@ "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==" }, "webpack": { - "version": "5.21.2", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.21.2.tgz", - "integrity": "sha512-xHflCenx+AM4uWKX71SWHhxml5aMXdy2tu/vdi4lClm7PADKxlyDAFFN1rEFzNV0MAoPpHtBeJnl/+K6F4QBPg==", + "version": "5.23.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.23.0.tgz", + "integrity": "sha512-RC6dwDuRxiU75F8XC4H08NtzUrMfufw5LDnO8dTtaKU2+fszEdySCgZhNwSBBn516iNaJbQI7T7OPHIgCwcJmg==", "dev": true, "requires": { "@types/eslint-scope": "^3.7.0", @@ -7706,9 +7699,9 @@ "dev": true }, "graceful-fs": { - "version": "4.2.5", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.5.tgz", - "integrity": "sha512-kBBSQbz2K0Nyn+31j/w36fUfxkBW9/gfwRWdUY1ULReH3iokVJgddZAFcD1D0xlgTmFxJCbUkUclAlc6/IDJkw==", + "version": "4.2.6", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", + "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==", "dev": true } } diff --git a/package.json b/package.json index 4d895a1fa..153866a48 100644 --- a/package.json +++ b/package.json @@ -35,7 +35,7 @@ "dayjs": "1.10.4", "ejs": "3.1.6", "electron-debug": "3.2.0", - "electron-dl": "3.0.3", + "electron-dl": "3.1.0", "electron-find": "1.0.6", "electron-window-state": "5.0.3", "express": "4.17.1", @@ -52,10 +52,10 @@ "is-svg": "4.2.1", "jimp": "0.16.1", "jsdom": "^16.4.0", - "mime-types": "2.1.28", + "mime-types": "2.1.29", "multer": "1.4.2", "node-abi": "2.19.3", - "open": "7.4.1", + "open": "7.4.2", "portscanner": "2.2.0", "rand-token": "1.0.1", "request": "^2.88.2", @@ -87,7 +87,7 @@ "jsdoc": "3.6.6", "lorem-ipsum": "2.0.3", "rcedit": "3.0.0", - "webpack": "5.21.2", + "webpack": "5.23.0", "webpack-cli": "4.5.0" }, "optionalDependencies": { diff --git a/src/public/app/widgets/note_icon.js b/src/public/app/widgets/note_icon.js index 7e1a9778d..17c313ff7 100644 --- a/src/public/app/widgets/note_icon.js +++ b/src/public/app/widgets/note_icon.js @@ -1,5 +1,4 @@ import TabAwareWidget from "./tab_aware_widget.js"; -import server from "../services/server.js"; import attributeService from "../services/attributes.js"; const TPL = ` @@ -11,14 +10,15 @@ const TPL = ` margin-right: 0; } - .note-icon-container button { + .note-icon-container button.note-icon { font-size: 180%; background: transparent; border: 1px solid transparent; cursor: pointer; + padding: 6px; } - .note-icon-container button:hover { + .note-icon-container button.note-icon:hover { border: 1px solid var(--main-border-color); } @@ -47,7 +47,6 @@ const TPL = ` .note-icon-container .icon-list { height: 500px; overflow: auto; - font-size: 180%; } .note-icon-container .icon-list span { @@ -55,6 +54,7 @@ const TPL = ` padding: 10px; cursor: pointer; border: 1px solid transparent; + font-size: 180%; } .note-icon-container .icon-list span:hover { @@ -62,7 +62,7 @@ const TPL = ` } - + `; -let icons = []; -let categories = []; - export default class NoteIconWidget extends TabAwareWidget { doRender() { this.$widget = $(TPL); this.overflowing(); - this.$icon = this.$widget.find('button'); + this.$icon = this.$widget.find('button.note-icon'); this.$iconList = this.$widget.find('.icon-list'); this.$iconList.on('click', 'span', async e => { const clazz = $(e.target).attr('class'); @@ -120,7 +117,7 @@ export default class NoteIconWidget extends TabAwareWidget { } async refreshWithNote(note) { - this.$icon.removeClass().addClass(note.getIcon()); + this.$icon.removeClass().addClass(note.getIcon() + " note-icon"); } async entitiesReloadedEvent({loadResults}) { @@ -145,6 +142,18 @@ export default class NoteIconWidget extends TabAwareWidget { async renderDropdown(categoryId, search) { this.$iconList.empty(); + this.$iconList.append( + $(`
`) + .append( + $('') + .on('click', () => + this.note.getOwnedLabels() + .filter(label => ['workspaceIconClass', 'iconClass'].includes(label.name)) + .forEach(label => attributeService.removeAttributeById(this.noteId, label.attributeId)) + ) + ) + ); + const {icons} = (await import('./icon_list.js')).default; for (const icon of icons) {