browser-extension-settings 0.2.0 → 0.2.2
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 +35 -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,33 @@ 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
|
+
|
|
458
|
+
function handleShowSettingsUrl() {
|
|
459
|
+
if (location.hash === "#bes-show-settings") {
|
|
460
|
+
setTimeout(showSettings, 100)
|
|
461
|
+
}
|
|
462
|
+
}
|
|
463
|
+
|
|
433
464
|
export async function showSettings() {
|
|
434
465
|
const settingsContainer = getSettingsContainer()
|
|
435
466
|
|
|
@@ -446,10 +477,12 @@ export async function showSettings() {
|
|
|
446
477
|
export const initSettings = async (options: SettingsOptions) => {
|
|
447
478
|
settingsOptions = options
|
|
448
479
|
settingsTable = options.settingsTable || {}
|
|
480
|
+
addCommonSettings(settingsTable)
|
|
449
481
|
addValueChangeListener(storageKey, async () => {
|
|
450
482
|
settings = await getSettings()
|
|
451
483
|
// console.log(JSON.stringify(settings, null, 2))
|
|
452
484
|
await updateOptions()
|
|
485
|
+
addSideMenu()
|
|
453
486
|
if (typeof options.onValueChange === "function") {
|
|
454
487
|
options.onValueChange()
|
|
455
488
|
}
|
|
@@ -461,4 +494,6 @@ export const initSettings = async (options: SettingsOptions) => {
|
|
|
461
494
|
initExtensionList()
|
|
462
495
|
addSideMenu()
|
|
463
496
|
})
|
|
497
|
+
|
|
498
|
+
handleShowSettingsUrl()
|
|
464
499
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "browser-extension-settings",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.2",
|
|
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",
|