|
235 | 235 | // @description:zu Thuthukisa iChatGPT ngemodi zesikrini ezibanzi/egcwele/ephezulu + imodi yokuvimbela i-spam. Futhi isebenza ku-poe.com! |
236 | 236 | // @author Adam Lui |
237 | 237 | // @namespace https://github.com/adamlui |
238 | | -// @version 2025.8.18 |
| 238 | +// @version 2025.8.19 |
239 | 239 | // @license MIT |
240 | 240 | // @icon https://assets.chatgptwidescreen.com/images/icons/widescreen-robot-emoji/icon48.png?v=844b16e |
241 | 241 | // @icon64 https://assets.chatgptwidescreen.com/images/icons/widescreen-robot-emoji/icon64.png?v=844b16e |
|
258 | 258 | // @require https://cdn.jsdelivr.net/gh/adamlui/chatgpt-widescreen@152a535/chromium/extension/lib/browser.js#sha256-7teBecqrjkazKH6oetGyxKlBkAk5U9ota/LNCB3Q+Jw= |
259 | 259 | // @require https://cdn.jsdelivr.net/gh/adamlui/chatgpt-widescreen@6da7673/chromium/extension/lib/chatbar.js#sha256-WHEkQoiOn0C2V+2lkpNft5pUIXntsL668Zt/7sohyN4= |
260 | 260 | // @require https://cdn.jsdelivr.net/gh/adamlui/chatgpt-widescreen@1e7f759/chromium/extension/lib/dom.min.js#sha256-IGNj9Eoecq7QgY7SAs75wONajgN9Wg0NmCjKTCfu9CY= |
261 | | -// @require https://cdn.jsdelivr.net/gh/adamlui/chatgpt-widescreen@58a5c12/chromium/extension/lib/settings.js#sha256-DaeFUYf3mgKvFxagVD4byHLYBJz4bRlhg52wl0VgZMY= |
| 261 | +// @require https://cdn.jsdelivr.net/gh/adamlui/chatgpt-widescreen@6432f82/chromium/extension/lib/settings.js#sha256-h/jgEhUFXm8JDMTCH4/Xrg/clucllr+du1wxxCU+Lhg= |
262 | 262 | // @require https://cdn.jsdelivr.net/gh/adamlui/chatgpt-widescreen@1ede080/chromium/extension/lib/styles.js#sha256-sT2NK0JIEx2K2OZK4+GqQbMTxecVYdDZ9Jv+mrcsrok= |
263 | | -// @require https://cdn.jsdelivr.net/gh/adamlui/chatgpt-widescreen@401c2d2/chromium/extension/lib/sync.js#sha256-fsTpo+C1TIVg9/ePhNN9GWGr24qA/iJ7wh6dmEjO2bA= |
| 263 | +// @require https://cdn.jsdelivr.net/gh/adamlui/chatgpt-widescreen@b4f5cfd/chromium/extension/lib/sync.js#sha256-wbaW/BRijKwN53FFvKau5x30QeyZG55chKgpsGoRSOg= |
264 | 264 | // @require https://cdn.jsdelivr.net/gh/adamlui/chatgpt-widescreen@f06fa5f/chromium/extension/lib/ui.js#sha256-niLmd2EMi/LCgGgs0MfX7AykWzzfQ9bXCo/6X08M6Ik= |
265 | 265 | // @require https://cdn.jsdelivr.net/gh/adamlui/chatgpt-widescreen@6da7673/chromium/extension/components/buttons.js#sha256-Ze4zyzL+sLPI+ei2PUScSdHUYKzb3FZIntnBCnLSpSQ= |
266 | 266 | // @require https://cdn.jsdelivr.net/gh/adamlui/chatgpt-widescreen@511d193/chromium/extension/components/icons.js#sha256-6eK7coHHFB4zBfl8XXtjojrnfbBOFiEgYfQtz/Whv2E= |
|
362 | 362 |
|
363 | 363 | // Define MENU functions |
364 | 364 |
|
365 | | - const toolbarMenu = { |
| 365 | + window.toolbarMenu = { |
366 | 366 | state: { |
367 | 367 | symbols: ['❌', '✔️'], separator: env.scriptManager.name == 'Tampermonkey' ? ' — ' : ': ', |
368 | 368 | words: [app.msgs.state_off.toUpperCase(), app.msgs.state_on.toUpperCase()] |
|
396 | 396 | + this.state.words[+settings.typeIsEnabled(key)] |
397 | 397 | : ctrl.status ? ` — ${ctrl.status}` : '' }` |
398 | 398 | return GM_registerMenuCommand(menuLabel, () => { |
399 | | - settings.save(key, !config[key]) ; sync.configToUI({ updatedKey: key }) |
400 | | - notify(`${ctrl.label}: ${this.state.words[+settings.typeIsEnabled(key)]}`) |
| 399 | + if (ctrl.type == 'toggle') { |
| 400 | + settings.save(key, !config[key]) ; sync.configToUI({ updatedKey: key }) |
| 401 | + notify(`${ctrl.label}: ${this.state.words[+settings.typeIsEnabled(key)]}`) |
| 402 | + } else if (ctrl.type == 'slider') { |
| 403 | + |
| 404 | + // Stylize slider |
| 405 | + if (!window.sliderModalStyle?.isConnected) |
| 406 | + document.head.append(window.sliderModalStyle ||= dom.create.style(` |
| 407 | + .${app.slug}-modal:has(input.slider) h2 { text-align:center } |
| 408 | + .${app.slug}-modal input.slider { |
| 409 | + width: 100% ; margin: 7px 0 ; padding: 8.5px 3px ; cursor: pointer } |
| 410 | + .${app.slug}-modal .slider::-webkit-slider-thumb { |
| 411 | + transform: scale(1.325) ; cursor: ew-resize ; |
| 412 | + transition: transform 0.05s ease |
| 413 | + } |
| 414 | + .${app.slug}-modal .slider::-webkit-slider-thumb:hover { |
| 415 | + transform: scale(1.5) }` |
| 416 | + )) |
| 417 | + |
| 418 | + // Create/assemble slider |
| 419 | + const slider = { |
| 420 | + div: dom.create.elem('div'), |
| 421 | + input: dom.create.elem('input', { class: 'slider', type: 'range', |
| 422 | + min: ctrl.min || 0, max: ctrl.max || 100, value: config[key] }) |
| 423 | + } |
| 424 | + slider.modal = modals.alert( |
| 425 | + `${ctrl.label}: ${slider.input.value}${ ctrl.labelSuffix || '' }`) |
| 426 | + if (ctrl.step || env.browser.isFF) // use val from ctrl data or default to 2% in FF for being laggy |
| 427 | + slider.input.step = ctrl.step || ( 0.02 * slider.input.max - slider.input.min ) |
| 428 | + slider.div.append(slider.input) |
| 429 | + slider.modal.querySelector('button').parentNode.before(slider.div) |
| 430 | + |
| 431 | + // Add listeners |
| 432 | + slider.input.oninput = ({ target: { value }}) => { // update UI |
| 433 | + slider.modal.querySelector('h2').textContent = `${ |
| 434 | + ctrl.label}: ${value}${ctrl.labelSuffix || ''}` |
| 435 | + settings.save(key, parseInt(value)) ; sync.configToUI({ updatedKey: key }) |
| 436 | + } |
| 437 | + slider.div.onwheel = event => { // move slider by 2 steps |
| 438 | + slider.input.value = parseInt(slider.input.value) -Math.sign(event.deltaY) *2 |
| 439 | + slider.input.dispatchEvent(new Event('input')) |
| 440 | + } |
| 441 | + } |
401 | 442 | }, env.scriptManager.supportsTooltips ? { title: ctrl.helptip || ' ' } : undefined ) |
402 | 443 | } |
403 | 444 | }) |
|
651 | 692 | if (config.widescreen ^ styles.widescreen.node.isConnected) { // sync Widescreen |
652 | 693 | suppressNotifs() ; toggleMode('widescreen') } |
653 | 694 | if (sites[site].hasSidebar && ( config.fullWindow ^ await ui.isFullWin() )) { // sync Full-Window |
654 | | - suppressNotifs() ; toggleMode('fullWindow') } |
| 695 | + suppressNotifs() ; toggleMode('fullWindow') } |
| 696 | + styles.update({ key: 'widescreen' }) // sync WW |
655 | 697 | styles.update({ key: 'tweaks' }) // sync HH/HF/TCB/NCB/BA |
656 | 698 | styles.update({ key: 'chatbar' }) // sync WCB |
657 | 699 | chatbar.tweak() // update ChatGPT chatbar inner width or hack Poe btn pos |
|
670 | 712 | if (config.notifDisabled) return |
671 | 713 | settings.save('notifDisabled', true) // suppress notifs for cleaner UI |
672 | 714 | setTimeout( // ...temporarily |
673 | | - () => settings.save('notifDisabled', false), options?.updatedKey == 'widescreen' ? 1 : 15) |
| 715 | + () => settings.save('notifDisabled', false), options?.updatedKey == 'widescreen' ? 1 : 555) |
674 | 716 | } |
675 | 717 | } |
676 | 718 |
|
|
0 commit comments