browser-extension-settings 0.0.5 → 0.0.6

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/common.ts CHANGED
@@ -1,3 +1,3 @@
1
- export const besVersion = 12
1
+ export const besVersion = 13
2
2
  export const openButton = `<svg viewBox="0 0 60.2601318359375 84.8134765625" version="1.1" xmlns="http://www.w3.org/2000/svg" class=" glyph-box" style="height: 9.62969px; width: 6.84191px;"><g transform="matrix(1 0 0 1 -6.194965820312518 77.63671875)"><path d="M66.4551-35.2539C66.4551-36.4746 65.9668-37.5977 65.0391-38.4766L26.3672-76.3672C25.4883-77.1973 24.4141-77.6367 23.1445-77.6367C20.6543-77.6367 18.7012-75.7324 18.7012-73.1934C18.7012-71.9727 19.1895-70.8496 19.9707-70.0195L55.5176-35.2539L19.9707-0.488281C19.1895 0.341797 18.7012 1.41602 18.7012 2.68555C18.7012 5.22461 20.6543 7.12891 23.1445 7.12891C24.4141 7.12891 25.4883 6.68945 26.3672 5.81055L65.0391-32.0312C65.9668-32.959 66.4551-34.0332 66.4551-35.2539Z"></path></g></svg>`
3
3
  export const openInNewTabButton = `<svg viewBox="0 0 72.127685546875 72.2177734375" version="1.1" xmlns="http://www.w3.org/2000/svg" class=" glyph-box" style="height: 8.19958px; width: 8.18935px;"><g transform="matrix(1 0 0 1 -12.451127929687573 71.3388671875)"><path d="M84.5703-17.334L84.5215-66.4551C84.5215-69.2383 82.7148-71.1914 79.7852-71.1914L30.6641-71.1914C27.9297-71.1914 26.0742-69.0918 26.0742-66.748C26.0742-64.4043 28.1738-62.4023 30.4688-62.4023L47.4609-62.4023L71.2891-63.1836L62.207-55.2246L13.8184-6.73828C12.9395-5.85938 12.4512-4.73633 12.4512-3.66211C12.4512-1.31836 14.5508 0.878906 16.9922 0.878906C18.1152 0.878906 19.1895 0.488281 20.0684-0.439453L68.5547-48.877L76.6113-58.0078L75.7324-35.2051L75.7324-17.1387C75.7324-14.8438 77.7344-12.6953 80.127-12.6953C82.4707-12.6953 84.5703-14.6973 84.5703-17.334Z"></path></g></svg>`
package/lib/settings.ts CHANGED
@@ -67,7 +67,7 @@ const settingsContainerId = prefix + "container_" + randomId
67
67
  const settingsElementId = prefix + "main_" + randomId
68
68
  const getSettingsElement = () => $("#" + settingsElementId)
69
69
  const getSettingsStyle: () => string = () =>
70
- styleText
70
+ (styleText as string)
71
71
  .replace(/browser_extension_settings_container/gm, settingsContainerId)
72
72
  .replace(/browser_extension_settings_main/gm, settingsElementId)
73
73
  const storageKey = "settings"
@@ -107,23 +107,16 @@ const closeModal = () => {
107
107
  removeEventListener(document, "keydown", onDocumentKeyDown)
108
108
  }
109
109
 
110
- const onDocumentClick = (event) => {
111
- let target = event.target as HTMLElement
112
- const settingsContainer = getSettingsContainer()
113
- if (settingsContainer) {
114
- while (target !== settingsContainer && target) {
115
- target = target.parentNode as HTMLElement
116
- }
117
-
118
- if (target === settingsContainer) {
119
- return
120
- }
110
+ const onDocumentClick = (event: Event) => {
111
+ const target = event.target as HTMLElement
112
+ if (target?.closest(`.${prefix}container`)) {
113
+ return
121
114
  }
122
115
 
123
116
  closeModal()
124
117
  }
125
118
 
126
- const onDocumentKeyDown = (event) => {
119
+ const onDocumentKeyDown = (event: KeyboardEvent) => {
127
120
  if (event.defaultPrevented) {
128
121
  return // 如果事件已经在进行中,则不做任何事。
129
122
  }
@@ -192,13 +185,15 @@ function getSettingsContainer() {
192
185
  id: settingsContainerId,
193
186
  class: `${prefix}container`,
194
187
  "data-bes-version": besVersion,
188
+ style: "display: none;",
195
189
  })
196
190
  }
197
191
 
198
192
  function getSettingsWrapper() {
193
+ const container = getSettingsContainer()
199
194
  return (
200
- $(`.${prefix}container .${prefix}wrapper`) ||
201
- addElement(getSettingsContainer(), "div", {
195
+ $(`.${prefix}wrapper`, container) ||
196
+ addElement(container, "div", {
202
197
  class: `${prefix}wrapper`,
203
198
  })
204
199
  )
@@ -255,8 +250,10 @@ function createSettingsElement() {
255
250
  const item = settingsTable[key]
256
251
  if (!item.type || item.type === "switch") {
257
252
  const switchOption = createSwitchOption(item.title, {
258
- async onchange(event) {
259
- await saveSattingsValue(key, event.target.checked)
253
+ async onchange(event: Event) {
254
+ if (event.target) {
255
+ await saveSattingsValue(key, event.target.checked)
256
+ }
260
257
  },
261
258
  })
262
259
 
@@ -270,21 +267,24 @@ function createSettingsElement() {
270
267
  const options2 = addElement(settingsMain, "div", {
271
268
  class: "option_groups",
272
269
  })
273
- let timeoutId
270
+ let timeoutId: number | undefined
274
271
  addElement(options2, "textarea", {
275
272
  placeholder: `/* Custom rules for internal URLs, matching URLs will be opened in new tabs */`,
276
- onkeyup(event) {
273
+ onkeyup(event: Event) {
274
+ const textArea = event.target as HTMLTextAreaElement
277
275
  if (timeoutId) {
278
276
  clearTimeout(timeoutId)
279
- timeoutId = null
277
+ timeoutId = undefined
280
278
  }
281
279
 
282
280
  timeoutId = setTimeout(async () => {
283
281
  const host = location.host
284
- await saveSattingsValue(
285
- `customRulesForCurrentSite_${host}`,
286
- event.target.value.trim()
287
- )
282
+ if (textArea) {
283
+ await saveSattingsValue(
284
+ `customRulesForCurrentSite_${host}`,
285
+ textArea.value.trim()
286
+ )
287
+ }
288
288
  }, 100)
289
289
  },
290
290
  })
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "browser-extension-settings",
3
- "version": "0.0.5",
3
+ "version": "0.0.6",
4
4
  "description": "Settings module for developing browser extensions and userscripts",
5
5
  "type": "module",
6
6
  "main": "./lib/index.ts",