browser-extension-settings 0.2.0 → 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/settings.ts +27 -0
- package/package.json +2 -2
package/lib/settings.ts
CHANGED
|
@@ -402,6 +402,10 @@ function createSettingsElement() {
|
|
|
402
402
|
}
|
|
403
403
|
|
|
404
404
|
function addSideMenu() {
|
|
405
|
+
if (!getSettingsValue("displaySettingsButtonInSideMenu")) {
|
|
406
|
+
return
|
|
407
|
+
}
|
|
408
|
+
|
|
405
409
|
const menu =
|
|
406
410
|
$("#browser_extension_side_menu") ||
|
|
407
411
|
addElement(doc.body, "div", {
|
|
@@ -430,6 +434,27 @@ function addSideMenu() {
|
|
|
430
434
|
})
|
|
431
435
|
}
|
|
432
436
|
|
|
437
|
+
function addCommonSettings(settingsTable: SettingsTable) {
|
|
438
|
+
let maxGroup = 0
|
|
439
|
+
for (const key in settingsTable) {
|
|
440
|
+
if (Object.hasOwn(settingsTable, key)) {
|
|
441
|
+
const item = settingsTable[key]
|
|
442
|
+
const group = item.group || 1
|
|
443
|
+
if (group > maxGroup) {
|
|
444
|
+
maxGroup = group
|
|
445
|
+
}
|
|
446
|
+
}
|
|
447
|
+
}
|
|
448
|
+
|
|
449
|
+
settingsTable.displaySettingsButtonInSideMenu = {
|
|
450
|
+
title: "Display Settings Button in Side Menu",
|
|
451
|
+
defaultValue: !(
|
|
452
|
+
typeof GM === "object" && typeof GM.registerMenuCommand === "function"
|
|
453
|
+
),
|
|
454
|
+
group: maxGroup + 1,
|
|
455
|
+
}
|
|
456
|
+
}
|
|
457
|
+
|
|
433
458
|
export async function showSettings() {
|
|
434
459
|
const settingsContainer = getSettingsContainer()
|
|
435
460
|
|
|
@@ -446,10 +471,12 @@ export async function showSettings() {
|
|
|
446
471
|
export const initSettings = async (options: SettingsOptions) => {
|
|
447
472
|
settingsOptions = options
|
|
448
473
|
settingsTable = options.settingsTable || {}
|
|
474
|
+
addCommonSettings(settingsTable)
|
|
449
475
|
addValueChangeListener(storageKey, async () => {
|
|
450
476
|
settings = await getSettings()
|
|
451
477
|
// console.log(JSON.stringify(settings, null, 2))
|
|
452
478
|
await updateOptions()
|
|
479
|
+
addSideMenu()
|
|
453
480
|
if (typeof options.onValueChange === "function") {
|
|
454
481
|
options.onValueChange()
|
|
455
482
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "browser-extension-settings",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.1",
|
|
4
4
|
"description": "Settings module for developing browser extensions and userscripts",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./lib/index.ts",
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
"homepage": "https://github.com/utags/browser-extension-settings#readme",
|
|
29
29
|
"dependencies": {
|
|
30
30
|
"browser-extension-storage": "^0.1.2",
|
|
31
|
-
"browser-extension-utils": "^0.1.
|
|
31
|
+
"browser-extension-utils": "^0.1.9"
|
|
32
32
|
},
|
|
33
33
|
"devDependencies": {
|
|
34
34
|
"@types/chrome": "^0.0.237",
|