@edrlab/thorium-web 1.2.1 → 1.3.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/dist/{ThPreferencesAdapter-DrZ5_6Dv.d.mts → ThPreferencesAdapter-D0rzsGRl.d.mts} +50 -13
- package/dist/{ThSettingsWrapper-8Kx0SnH4.d.mts → ThSettingsWrapper-BXuRgdqp.d.mts} +42 -4
- package/dist/{actions-D2CHvCHu.d.mts → actions-BLAr0oaM.d.mts} +16 -4
- package/dist/{actionsReducer-kc-S130w.d.mts → actionsReducer-XWTGGNUd.d.mts} +46 -14
- package/dist/chunk-2ORXUOH3.mjs +134 -0
- package/dist/chunk-2ORXUOH3.mjs.map +1 -0
- package/dist/chunk-3GDQP6AS.mjs +14 -0
- package/dist/chunk-3GDQP6AS.mjs.map +1 -0
- package/dist/chunk-6BUN7DEA.mjs +854 -0
- package/dist/chunk-6BUN7DEA.mjs.map +1 -0
- package/dist/{chunk-IYAFKTPL.mjs → chunk-6EHFW43Y.mjs} +5 -4
- package/dist/chunk-6EHFW43Y.mjs.map +1 -0
- package/dist/chunk-7CGMWOZN.mjs +20 -0
- package/dist/chunk-7CGMWOZN.mjs.map +1 -0
- package/dist/{chunk-4VHEHMJN.mjs → chunk-A3FZBEUL.mjs} +228 -94
- package/dist/chunk-A3FZBEUL.mjs.map +1 -0
- package/dist/{chunk-NYZBHYW2.mjs → chunk-DETZMFZ7.mjs} +366 -61
- package/dist/chunk-DETZMFZ7.mjs.map +1 -0
- package/dist/{chunk-QPE574OW.mjs → chunk-DMZFSOHK.mjs} +28 -36
- package/dist/chunk-DMZFSOHK.mjs.map +1 -0
- package/dist/{chunk-7NEQAW7J.mjs → chunk-DTPO3J2C.mjs} +676 -930
- package/dist/chunk-DTPO3J2C.mjs.map +1 -0
- package/dist/{chunk-K3K7TUWM.mjs → chunk-EZG6SBSO.mjs} +358 -94
- package/dist/chunk-EZG6SBSO.mjs.map +1 -0
- package/dist/chunk-GPWW5OML.mjs +1955 -0
- package/dist/chunk-GPWW5OML.mjs.map +1 -0
- package/dist/{chunk-P4V3LA5R.mjs → chunk-I4BKU5NN.mjs} +13 -9
- package/dist/chunk-I4BKU5NN.mjs.map +1 -0
- package/dist/{chunk-47AIIJFO.mjs → chunk-ITDBOMY5.mjs} +3 -3
- package/dist/{chunk-47AIIJFO.mjs.map → chunk-ITDBOMY5.mjs.map} +1 -1
- package/dist/{chunk-XVSFXHYB.mjs → chunk-L4XGZAZ5.mjs} +23 -20
- package/dist/chunk-L4XGZAZ5.mjs.map +1 -0
- package/dist/{chunk-PXAUQJEU.mjs → chunk-LP3JFZ4A.mjs} +2425 -1634
- package/dist/chunk-LP3JFZ4A.mjs.map +1 -0
- package/dist/{chunk-72XCX5TD.mjs → chunk-NKO3K3QS.mjs} +14 -9
- package/dist/chunk-NKO3K3QS.mjs.map +1 -0
- package/dist/chunk-SAUOY37Q.mjs +862 -0
- package/dist/chunk-SAUOY37Q.mjs.map +1 -0
- package/dist/chunk-TEZB4ULX.mjs +57 -0
- package/dist/chunk-TEZB4ULX.mjs.map +1 -0
- package/dist/components/Audio/index.css +1858 -0
- package/dist/components/Audio/index.css.map +1 -0
- package/dist/components/Audio/index.d.mts +103 -0
- package/dist/components/Audio/index.mjs +23 -0
- package/dist/components/Audio/index.mjs.map +1 -0
- package/dist/components/Epub/index.css +365 -9
- package/dist/components/Epub/index.css.map +1 -1
- package/dist/components/Epub/index.d.mts +17 -19
- package/dist/components/Epub/index.mjs +18 -13
- package/dist/components/Misc/index.css +7 -4
- package/dist/components/Misc/index.css.map +1 -1
- package/dist/components/Misc/index.mjs +5 -133
- package/dist/components/Misc/index.mjs.map +1 -1
- package/dist/components/Reader/index.css +1022 -183
- package/dist/components/Reader/index.css.map +1 -1
- package/dist/components/Reader/index.d.mts +16 -16
- package/dist/components/Reader/index.mjs +124 -25
- package/dist/components/Reader/index.mjs.map +1 -1
- package/dist/components/WebPub/index.css +365 -9
- package/dist/components/WebPub/index.css.map +1 -1
- package/dist/components/WebPub/index.d.mts +16 -16
- package/dist/components/WebPub/index.mjs +18 -13
- package/dist/core/Components/index.d.mts +64 -15
- package/dist/core/Components/index.mjs +2 -1
- package/dist/core/Helpers/index.d.mts +2 -2
- package/dist/core/Helpers/index.mjs +4 -2
- package/dist/core/Hooks/index.d.mts +7 -8
- package/dist/core/Hooks/index.mjs +3 -1
- package/dist/i18n/index.mjs +6 -7
- package/dist/lib/index.d.mts +159 -15
- package/dist/lib/index.mjs +4 -2
- package/dist/lib-M3PPQDJJ.mjs +6548 -0
- package/dist/lib-M3PPQDJJ.mjs.map +1 -0
- package/dist/locales/en/thorium-web.json +22 -0
- package/dist/next-lib/index.mjs +2 -0
- package/dist/next-lib/index.mjs.map +1 -1
- package/dist/preferences/index.d.mts +111 -13
- package/dist/preferences/index.mjs +6 -3
- package/dist/{settingsReducer-C1wwCAMv.d.mts → settingsReducer-Bu1zeveu.d.mts} +1 -1
- package/dist/{ui-CamWuqOo.d.mts → ui-nBv8gfr0.d.mts} +20 -1
- package/dist/useAudioNavigator-C5aW4-eT.d.mts +133 -0
- package/dist/{useContrast-D6sjPjxy.d.mts → useContrast-2t429O9O.d.mts} +16 -8
- package/dist/usePreferences-VaBf46eP.d.mts +230 -0
- package/dist/useReaderTransitions-IBGdE7qi.d.mts +530 -0
- package/dist/{useTimeline-DyMx_aWY.d.mts → useTimeline-DCZ1qoCO.d.mts} +4 -2
- package/package.json +17 -13
- package/dist/chunk-4VHEHMJN.mjs.map +0 -1
- package/dist/chunk-72XCX5TD.mjs.map +0 -1
- package/dist/chunk-7NEQAW7J.mjs.map +0 -1
- package/dist/chunk-IYAFKTPL.mjs.map +0 -1
- package/dist/chunk-K3K7TUWM.mjs.map +0 -1
- package/dist/chunk-NYZBHYW2.mjs.map +0 -1
- package/dist/chunk-P4V3LA5R.mjs.map +0 -1
- package/dist/chunk-PXAUQJEU.mjs.map +0 -1
- package/dist/chunk-QPE574OW.mjs.map +0 -1
- package/dist/chunk-XVSFXHYB.mjs.map +0 -1
- package/dist/useEpubNavigator-CwHJfoiV.d.mts +0 -42
- package/dist/usePreferences-BXFJbval.d.mts +0 -43
- package/dist/useReaderTransitions-guT-eA-Q.d.mts +0 -365
- package/dist/useWebPubNavigator-CuSNQKMw.d.mts +0 -39
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { toEntryRef } from './chunk-TEZB4ULX.mjs';
|
|
1
2
|
import { defaultPlatformModifier } from './chunk-5LUMM7FW.mjs';
|
|
2
3
|
import { useRef } from 'react';
|
|
3
4
|
import { useDispatch, useSelector, useStore, Provider } from 'react-redux';
|
|
@@ -272,8 +273,10 @@ var initialState3 = {
|
|
|
272
273
|
colorScheme: "light" /* light */,
|
|
273
274
|
theme: {
|
|
274
275
|
reflow: "auto",
|
|
275
|
-
fxl: "auto"
|
|
276
|
+
fxl: "auto",
|
|
277
|
+
audio: "auto"
|
|
276
278
|
},
|
|
279
|
+
coverTheme: void 0,
|
|
277
280
|
prefersReducedMotion: false,
|
|
278
281
|
prefersReducedTransparency: false,
|
|
279
282
|
prefersContrast: "no-preference" /* none */,
|
|
@@ -293,6 +296,9 @@ var themeSlice = createSlice({
|
|
|
293
296
|
setTheme: (state, action) => {
|
|
294
297
|
state.theme[action.payload.key] = action.payload.value || "auto";
|
|
295
298
|
},
|
|
299
|
+
setCoverTheme: (state, action) => {
|
|
300
|
+
state.coverTheme = action.payload;
|
|
301
|
+
},
|
|
296
302
|
setReducedMotion: (state, action) => {
|
|
297
303
|
state.prefersReducedMotion = action.payload;
|
|
298
304
|
},
|
|
@@ -314,6 +320,7 @@ var {
|
|
|
314
320
|
setMonochrome,
|
|
315
321
|
setColorScheme,
|
|
316
322
|
setTheme,
|
|
323
|
+
setCoverTheme,
|
|
317
324
|
setReducedMotion,
|
|
318
325
|
setReducedTransparency,
|
|
319
326
|
setContrast,
|
|
@@ -323,64 +330,120 @@ var {
|
|
|
323
330
|
var themeReducer_default = themeSlice.reducer;
|
|
324
331
|
var initialState4 = {
|
|
325
332
|
dock: {
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
333
|
+
epub: {
|
|
334
|
+
["dockingStart" /* start */]: {
|
|
335
|
+
actionKey: null,
|
|
336
|
+
active: false,
|
|
337
|
+
collapsed: false
|
|
338
|
+
},
|
|
339
|
+
["dockingEnd" /* end */]: {
|
|
340
|
+
actionKey: null,
|
|
341
|
+
active: false,
|
|
342
|
+
collapsed: false
|
|
343
|
+
}
|
|
344
|
+
},
|
|
345
|
+
webPub: {
|
|
346
|
+
["dockingStart" /* start */]: {
|
|
347
|
+
actionKey: null,
|
|
348
|
+
active: false,
|
|
349
|
+
collapsed: false
|
|
350
|
+
},
|
|
351
|
+
["dockingEnd" /* end */]: {
|
|
352
|
+
actionKey: null,
|
|
353
|
+
active: false,
|
|
354
|
+
collapsed: false
|
|
355
|
+
}
|
|
356
|
+
},
|
|
357
|
+
audio: {
|
|
358
|
+
["dockingStart" /* start */]: {
|
|
359
|
+
actionKey: null,
|
|
360
|
+
active: false,
|
|
361
|
+
collapsed: false
|
|
362
|
+
},
|
|
363
|
+
["dockingEnd" /* end */]: {
|
|
364
|
+
actionKey: null,
|
|
365
|
+
active: false,
|
|
366
|
+
collapsed: false
|
|
367
|
+
}
|
|
335
368
|
}
|
|
336
369
|
},
|
|
337
|
-
keys: {
|
|
370
|
+
keys: {
|
|
371
|
+
epub: {},
|
|
372
|
+
webPub: {},
|
|
373
|
+
audio: {}
|
|
374
|
+
},
|
|
338
375
|
overflow: {}
|
|
339
376
|
};
|
|
377
|
+
var initializeProfileDock = (state, profile) => {
|
|
378
|
+
if (!state.dock[profile]) {
|
|
379
|
+
state.dock[profile] = {
|
|
380
|
+
["dockingStart" /* start */]: {
|
|
381
|
+
actionKey: null,
|
|
382
|
+
active: false,
|
|
383
|
+
collapsed: false
|
|
384
|
+
},
|
|
385
|
+
["dockingEnd" /* end */]: {
|
|
386
|
+
actionKey: null,
|
|
387
|
+
active: false,
|
|
388
|
+
collapsed: false
|
|
389
|
+
}
|
|
390
|
+
};
|
|
391
|
+
}
|
|
392
|
+
};
|
|
393
|
+
var initializeProfileKeys = (state, profile) => {
|
|
394
|
+
if (!state.keys[profile]) {
|
|
395
|
+
state.keys[profile] = {};
|
|
396
|
+
}
|
|
397
|
+
};
|
|
340
398
|
var actionsSlice = createSlice({
|
|
341
399
|
name: "actions",
|
|
342
400
|
initialState: initialState4,
|
|
343
401
|
reducers: {
|
|
344
402
|
dockAction: (state, action) => {
|
|
345
|
-
|
|
403
|
+
const { key, dockingKey, profile } = action.payload;
|
|
404
|
+
initializeProfileDock(state, profile);
|
|
405
|
+
initializeProfileKeys(state, profile);
|
|
406
|
+
const profileDock = state.dock[profile];
|
|
407
|
+
const profileKeys = state.keys[profile];
|
|
408
|
+
switch (dockingKey) {
|
|
346
409
|
case "dockingStart" /* start */:
|
|
347
|
-
for (const
|
|
348
|
-
if (
|
|
349
|
-
|
|
350
|
-
...
|
|
410
|
+
for (const k in profileKeys) {
|
|
411
|
+
if (profileKeys[k]?.docking === dockingKey) {
|
|
412
|
+
profileKeys[k] = {
|
|
413
|
+
...profileKeys[k],
|
|
351
414
|
docking: "dockingTransient" /* transient */,
|
|
352
415
|
isOpen: false
|
|
353
416
|
};
|
|
354
417
|
}
|
|
355
418
|
}
|
|
356
|
-
|
|
357
|
-
...
|
|
358
|
-
actionKey:
|
|
419
|
+
profileDock["dockingStart" /* start */] = {
|
|
420
|
+
...profileDock["dockingStart" /* start */],
|
|
421
|
+
actionKey: key
|
|
359
422
|
};
|
|
360
|
-
if (
|
|
361
|
-
|
|
362
|
-
...
|
|
423
|
+
if (profileDock["dockingEnd" /* end */].actionKey === key) {
|
|
424
|
+
profileDock["dockingEnd" /* end */] = {
|
|
425
|
+
...profileDock["dockingEnd" /* end */],
|
|
363
426
|
actionKey: null
|
|
364
427
|
};
|
|
365
428
|
}
|
|
366
429
|
break;
|
|
367
430
|
case "dockingEnd" /* end */:
|
|
368
|
-
for (const
|
|
369
|
-
if (
|
|
370
|
-
|
|
371
|
-
...
|
|
431
|
+
for (const k in profileKeys) {
|
|
432
|
+
if (profileKeys[k]?.docking === dockingKey) {
|
|
433
|
+
profileKeys[k] = {
|
|
434
|
+
...profileKeys[k],
|
|
372
435
|
docking: "dockingTransient" /* transient */,
|
|
373
436
|
isOpen: false
|
|
374
437
|
};
|
|
375
438
|
}
|
|
376
439
|
}
|
|
377
|
-
|
|
378
|
-
...
|
|
379
|
-
actionKey:
|
|
440
|
+
profileDock["dockingEnd" /* end */] = {
|
|
441
|
+
...profileDock["dockingEnd" /* end */],
|
|
442
|
+
actionKey: key
|
|
380
443
|
};
|
|
381
|
-
if (
|
|
382
|
-
|
|
383
|
-
...
|
|
444
|
+
if (profileDock["dockingStart" /* start */].actionKey === key) {
|
|
445
|
+
profileDock["dockingStart" /* start */] = {
|
|
446
|
+
...profileDock["dockingStart" /* start */],
|
|
384
447
|
actionKey: null
|
|
385
448
|
};
|
|
386
449
|
}
|
|
@@ -388,43 +451,40 @@ var actionsSlice = createSlice({
|
|
|
388
451
|
// We don’t need to sync another action
|
|
389
452
|
case "dockingTransient" /* transient */:
|
|
390
453
|
default:
|
|
391
|
-
if (
|
|
392
|
-
|
|
393
|
-
...
|
|
454
|
+
if (profileDock["dockingStart" /* start */].actionKey === key) {
|
|
455
|
+
profileDock["dockingStart" /* start */] = {
|
|
456
|
+
...profileDock["dockingStart" /* start */],
|
|
394
457
|
actionKey: null
|
|
395
458
|
};
|
|
396
459
|
}
|
|
397
|
-
if (
|
|
398
|
-
|
|
399
|
-
...
|
|
460
|
+
if (profileDock["dockingEnd" /* end */].actionKey === key) {
|
|
461
|
+
profileDock["dockingEnd" /* end */] = {
|
|
462
|
+
...profileDock["dockingEnd" /* end */],
|
|
400
463
|
actionKey: null
|
|
401
464
|
};
|
|
402
465
|
}
|
|
403
466
|
break;
|
|
404
467
|
}
|
|
405
|
-
|
|
406
|
-
...
|
|
407
|
-
docking:
|
|
468
|
+
profileKeys[key] = {
|
|
469
|
+
...profileKeys[key],
|
|
470
|
+
docking: dockingKey
|
|
408
471
|
};
|
|
409
472
|
},
|
|
410
473
|
setActionOpen: (state, action) => {
|
|
411
|
-
const
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
} else {
|
|
418
|
-
state.keys[action.payload.key] = {
|
|
419
|
-
...state.keys[action.payload.key],
|
|
420
|
-
isOpen: action.payload.isOpen
|
|
421
|
-
};
|
|
422
|
-
}
|
|
474
|
+
const { key, isOpen, profile } = action.payload;
|
|
475
|
+
initializeProfileKeys(state, profile);
|
|
476
|
+
state.keys[profile][key] = {
|
|
477
|
+
...state.keys[profile][key],
|
|
478
|
+
isOpen
|
|
479
|
+
};
|
|
423
480
|
},
|
|
424
481
|
toggleActionOpen: (state, action) => {
|
|
482
|
+
const { key, profile } = action.payload;
|
|
483
|
+
initializeProfileKeys(state, profile);
|
|
425
484
|
const payload = {
|
|
426
|
-
key
|
|
427
|
-
isOpen: state.keys[
|
|
485
|
+
key,
|
|
486
|
+
isOpen: state.keys[profile][key]?.isOpen ? !state.keys[profile][key]?.isOpen : true,
|
|
487
|
+
profile
|
|
428
488
|
};
|
|
429
489
|
actionsSlice.caseReducers.setActionOpen(state, {
|
|
430
490
|
type: "toggleActionOpen",
|
|
@@ -438,43 +498,52 @@ var actionsSlice = createSlice({
|
|
|
438
498
|
};
|
|
439
499
|
},
|
|
440
500
|
activateDockPanel: (state, action) => {
|
|
441
|
-
|
|
442
|
-
|
|
501
|
+
const { slot, profile } = action.payload;
|
|
502
|
+
initializeProfileDock(state, profile);
|
|
503
|
+
state.dock[profile][slot] = {
|
|
504
|
+
...state.dock[profile][slot],
|
|
443
505
|
active: true
|
|
444
506
|
};
|
|
445
507
|
},
|
|
446
508
|
deactivateDockPanel: (state, action) => {
|
|
447
|
-
|
|
448
|
-
|
|
509
|
+
const { slot, profile } = action.payload;
|
|
510
|
+
initializeProfileDock(state, profile);
|
|
511
|
+
state.dock[profile][slot] = {
|
|
512
|
+
...state.dock[profile][slot],
|
|
449
513
|
active: false
|
|
450
514
|
};
|
|
451
515
|
},
|
|
452
516
|
collapseDockPanel: (state, action) => {
|
|
453
|
-
|
|
454
|
-
|
|
517
|
+
const { slot, profile } = action.payload;
|
|
518
|
+
initializeProfileDock(state, profile);
|
|
519
|
+
state.dock[profile][slot] = {
|
|
520
|
+
...state.dock[profile][slot],
|
|
455
521
|
collapsed: true
|
|
456
522
|
};
|
|
457
523
|
},
|
|
458
524
|
expandDockPanel: (state, action) => {
|
|
459
|
-
|
|
460
|
-
|
|
525
|
+
const { slot, profile } = action.payload;
|
|
526
|
+
initializeProfileDock(state, profile);
|
|
527
|
+
state.dock[profile][slot] = {
|
|
528
|
+
...state.dock[profile][slot],
|
|
461
529
|
collapsed: false
|
|
462
530
|
};
|
|
463
531
|
},
|
|
464
532
|
setDockPanelWidth: (state, action) => {
|
|
465
|
-
const key =
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
state.dock[action.payload.key] = {
|
|
474
|
-
...state.dock[action.payload.key],
|
|
475
|
-
width: action.payload.width
|
|
533
|
+
const { key, width, profile } = action.payload;
|
|
534
|
+
initializeProfileDock(state, profile);
|
|
535
|
+
initializeProfileKeys(state, profile);
|
|
536
|
+
const dockKey = state.dock[profile][key].actionKey;
|
|
537
|
+
if (dockKey) {
|
|
538
|
+
state.keys[profile][dockKey] = {
|
|
539
|
+
...state.keys[profile][dockKey],
|
|
540
|
+
dockedWidth: width
|
|
476
541
|
};
|
|
477
542
|
}
|
|
543
|
+
state.dock[profile][key] = {
|
|
544
|
+
...state.dock[profile][key],
|
|
545
|
+
width
|
|
546
|
+
};
|
|
478
547
|
}
|
|
479
548
|
}
|
|
480
549
|
});
|
|
@@ -498,7 +567,8 @@ var initialState5 = {
|
|
|
498
567
|
positionsList: [],
|
|
499
568
|
atPublicationStart: false,
|
|
500
569
|
atPublicationEnd: false,
|
|
501
|
-
unstableTimeline: void 0
|
|
570
|
+
unstableTimeline: void 0,
|
|
571
|
+
adjacentTimelineItems: { previous: null, next: null }
|
|
502
572
|
};
|
|
503
573
|
var publicationSlice = createSlice({
|
|
504
574
|
name: "publication",
|
|
@@ -542,15 +612,19 @@ var publicationSlice = createSlice({
|
|
|
542
612
|
state.unstableTimeline.toc = { tree: action.payload, currentEntry: void 0 };
|
|
543
613
|
}
|
|
544
614
|
},
|
|
615
|
+
setAdjacentTimelineItems: (state, action) => {
|
|
616
|
+
state.adjacentTimelineItems = action.payload;
|
|
617
|
+
},
|
|
545
618
|
setTocEntry: (state, action) => {
|
|
619
|
+
const entry = action.payload ? toEntryRef(action.payload) : null;
|
|
546
620
|
if (!state.unstableTimeline) {
|
|
547
621
|
state.unstableTimeline = {
|
|
548
|
-
toc: { tree: void 0, currentEntry:
|
|
622
|
+
toc: { tree: void 0, currentEntry: entry }
|
|
549
623
|
};
|
|
550
624
|
} else if (state.unstableTimeline.toc) {
|
|
551
|
-
state.unstableTimeline.toc.currentEntry =
|
|
625
|
+
state.unstableTimeline.toc.currentEntry = entry;
|
|
552
626
|
} else {
|
|
553
|
-
state.unstableTimeline.toc = { tree: void 0, currentEntry:
|
|
627
|
+
state.unstableTimeline.toc = { tree: void 0, currentEntry: entry };
|
|
554
628
|
}
|
|
555
629
|
}
|
|
556
630
|
}
|
|
@@ -565,7 +639,8 @@ var {
|
|
|
565
639
|
setPublicationEnd,
|
|
566
640
|
setTimeline,
|
|
567
641
|
setTocTree,
|
|
568
|
-
setTocEntry
|
|
642
|
+
setTocEntry,
|
|
643
|
+
setAdjacentTimelineItems
|
|
569
644
|
} = publicationSlice.actions;
|
|
570
645
|
var publicationReducer_default = publicationSlice.reducer;
|
|
571
646
|
|
|
@@ -948,6 +1023,116 @@ var {
|
|
|
948
1023
|
setWebPubZoom
|
|
949
1024
|
} = webPubSettingsSlice.actions;
|
|
950
1025
|
var webPubSettingsReducer_default = webPubSettingsSlice.reducer;
|
|
1026
|
+
var initialState8 = {
|
|
1027
|
+
volume: 1,
|
|
1028
|
+
playbackRate: 1,
|
|
1029
|
+
preservePitch: true,
|
|
1030
|
+
skipBackwardInterval: 10,
|
|
1031
|
+
skipForwardInterval: 10,
|
|
1032
|
+
skipInterval: 10,
|
|
1033
|
+
pollInterval: 1e3,
|
|
1034
|
+
autoPlay: true,
|
|
1035
|
+
enableMediaSession: true
|
|
1036
|
+
};
|
|
1037
|
+
var audioSettingsSlice = createSlice({
|
|
1038
|
+
name: "audioSettings",
|
|
1039
|
+
initialState: initialState8,
|
|
1040
|
+
reducers: {
|
|
1041
|
+
setVolume: (state, action) => {
|
|
1042
|
+
state.volume = action.payload;
|
|
1043
|
+
},
|
|
1044
|
+
setPlaybackRate: (state, action) => {
|
|
1045
|
+
state.playbackRate = action.payload;
|
|
1046
|
+
},
|
|
1047
|
+
setPreservePitch: (state, action) => {
|
|
1048
|
+
state.preservePitch = action.payload;
|
|
1049
|
+
},
|
|
1050
|
+
setSkipBackwardInterval: (state, action) => {
|
|
1051
|
+
state.skipBackwardInterval = action.payload;
|
|
1052
|
+
},
|
|
1053
|
+
setSkipForwardInterval: (state, action) => {
|
|
1054
|
+
state.skipForwardInterval = action.payload;
|
|
1055
|
+
},
|
|
1056
|
+
setSkipInterval: (state, action) => {
|
|
1057
|
+
state.skipInterval = action.payload;
|
|
1058
|
+
},
|
|
1059
|
+
setPollInterval: (state, action) => {
|
|
1060
|
+
state.pollInterval = action.payload;
|
|
1061
|
+
},
|
|
1062
|
+
setAutoPlay: (state, action) => {
|
|
1063
|
+
state.autoPlay = action.payload;
|
|
1064
|
+
},
|
|
1065
|
+
setEnableMediaSession: (state, action) => {
|
|
1066
|
+
state.enableMediaSession = action.payload;
|
|
1067
|
+
}
|
|
1068
|
+
}
|
|
1069
|
+
});
|
|
1070
|
+
var {
|
|
1071
|
+
setVolume,
|
|
1072
|
+
setPlaybackRate,
|
|
1073
|
+
setPreservePitch,
|
|
1074
|
+
setSkipBackwardInterval,
|
|
1075
|
+
setSkipForwardInterval,
|
|
1076
|
+
setSkipInterval,
|
|
1077
|
+
setPollInterval,
|
|
1078
|
+
setAutoPlay,
|
|
1079
|
+
setEnableMediaSession
|
|
1080
|
+
} = audioSettingsSlice.actions;
|
|
1081
|
+
var audioSettingsReducer_default = audioSettingsSlice.reducer;
|
|
1082
|
+
var initialState9 = {
|
|
1083
|
+
status: "idle",
|
|
1084
|
+
isSeeking: false,
|
|
1085
|
+
isStalled: false,
|
|
1086
|
+
isTrackReady: false,
|
|
1087
|
+
sleepTimer: { remainingSeconds: null, onTrackEnd: false, onFragmentEnd: false },
|
|
1088
|
+
remotePlaybackState: null,
|
|
1089
|
+
seekableRanges: []
|
|
1090
|
+
};
|
|
1091
|
+
var playerSlice = createSlice({
|
|
1092
|
+
name: "player",
|
|
1093
|
+
initialState: initialState9,
|
|
1094
|
+
reducers: {
|
|
1095
|
+
setStatus: (state, action) => {
|
|
1096
|
+
state.status = action.payload;
|
|
1097
|
+
},
|
|
1098
|
+
setSeeking: (state, action) => {
|
|
1099
|
+
state.isSeeking = action.payload;
|
|
1100
|
+
},
|
|
1101
|
+
setStalled: (state, action) => {
|
|
1102
|
+
state.isStalled = action.payload;
|
|
1103
|
+
},
|
|
1104
|
+
setTrackReady: (state, action) => {
|
|
1105
|
+
state.isTrackReady = action.payload;
|
|
1106
|
+
},
|
|
1107
|
+
setSleepTimerRemainingSeconds: (state, action) => {
|
|
1108
|
+
state.sleepTimer.remainingSeconds = action.payload;
|
|
1109
|
+
},
|
|
1110
|
+
setSleepTimerOnTrackEnd: (state, action) => {
|
|
1111
|
+
state.sleepTimer.onTrackEnd = action.payload;
|
|
1112
|
+
},
|
|
1113
|
+
setSleepTimerOnFragmentEnd: (state, action) => {
|
|
1114
|
+
state.sleepTimer.onFragmentEnd = action.payload;
|
|
1115
|
+
},
|
|
1116
|
+
setRemotePlaybackState: (state, action) => {
|
|
1117
|
+
state.remotePlaybackState = action.payload;
|
|
1118
|
+
},
|
|
1119
|
+
setSeekableRanges: (state, action) => {
|
|
1120
|
+
state.seekableRanges = action.payload;
|
|
1121
|
+
}
|
|
1122
|
+
}
|
|
1123
|
+
});
|
|
1124
|
+
var {
|
|
1125
|
+
setStatus,
|
|
1126
|
+
setSeeking,
|
|
1127
|
+
setStalled,
|
|
1128
|
+
setTrackReady,
|
|
1129
|
+
setSleepTimerRemainingSeconds,
|
|
1130
|
+
setSleepTimerOnTrackEnd,
|
|
1131
|
+
setSleepTimerOnFragmentEnd,
|
|
1132
|
+
setRemotePlaybackState,
|
|
1133
|
+
setSeekableRanges
|
|
1134
|
+
} = playerSlice.actions;
|
|
1135
|
+
var playerReducer_default = playerSlice.reducer;
|
|
951
1136
|
|
|
952
1137
|
// node_modules/.pnpm/debounce@3.0.0/node_modules/debounce/index.js
|
|
953
1138
|
function debounce(function_, wait = 100, options = {}) {
|
|
@@ -1043,19 +1228,87 @@ var migrateFontFamily = (stateSlice) => {
|
|
|
1043
1228
|
return stateSlice;
|
|
1044
1229
|
};
|
|
1045
1230
|
var updateActionsState = (state) => {
|
|
1046
|
-
|
|
1047
|
-
|
|
1048
|
-
|
|
1049
|
-
|
|
1050
|
-
|
|
1051
|
-
|
|
1052
|
-
|
|
1053
|
-
|
|
1054
|
-
|
|
1231
|
+
if (state.keys && typeof state.keys === "object" && ("epub" in state.keys || "webPub" in state.keys || "audio" in state.keys)) {
|
|
1232
|
+
const updatedKeys = {};
|
|
1233
|
+
for (const profile in state.keys) {
|
|
1234
|
+
updatedKeys[profile] = Object.fromEntries(
|
|
1235
|
+
Object.entries(state.keys[profile]).map(([key, value]) => [
|
|
1236
|
+
key,
|
|
1237
|
+
{
|
|
1238
|
+
...value,
|
|
1239
|
+
// Transient/undocked actions should never re-open on load
|
|
1240
|
+
// Docked actions reset to null so useDocking re-establishes open state
|
|
1241
|
+
// based on the actual breakpoint at load time (avoids opening docked
|
|
1242
|
+
// sheets in fullscreen/compact where docking is unavailable)
|
|
1243
|
+
isOpen: value?.docking === "dockingTransient" /* transient */ || value?.docking == null ? false : value?.docking === "dockingStart" /* start */ || value?.docking === "dockingEnd" /* end */ ? null : value?.isOpen
|
|
1244
|
+
}
|
|
1245
|
+
])
|
|
1246
|
+
);
|
|
1247
|
+
}
|
|
1248
|
+
return {
|
|
1249
|
+
...state,
|
|
1250
|
+
keys: updatedKeys,
|
|
1251
|
+
overflow: {}
|
|
1252
|
+
};
|
|
1253
|
+
} else {
|
|
1254
|
+
const updatedKeys = Object.fromEntries(
|
|
1255
|
+
Object.entries(state.keys).map(([key, value]) => [
|
|
1256
|
+
key,
|
|
1257
|
+
{
|
|
1258
|
+
...value,
|
|
1259
|
+
isOpen: value?.docking === "dockingTransient" /* transient */ || value?.docking == null ? false : value?.docking === "dockingStart" /* start */ || value?.docking === "dockingEnd" /* end */ ? null : value?.isOpen
|
|
1260
|
+
}
|
|
1261
|
+
])
|
|
1262
|
+
);
|
|
1263
|
+
return {
|
|
1264
|
+
...state,
|
|
1265
|
+
keys: updatedKeys,
|
|
1266
|
+
overflow: {}
|
|
1267
|
+
};
|
|
1268
|
+
}
|
|
1269
|
+
};
|
|
1270
|
+
var migrateDockStateToProfileKeyed = (state) => {
|
|
1271
|
+
if (state.dock && typeof state.dock === "object" && !("epub" in state.dock || "webPub" in state.dock || "audio" in state.dock)) {
|
|
1272
|
+
const oldDock = state.dock;
|
|
1273
|
+
if (oldDock["dockingStart" /* start */] || oldDock["dockingEnd" /* end */]) {
|
|
1274
|
+
const newDock = {};
|
|
1275
|
+
newDock["epub"] = {
|
|
1276
|
+
["dockingStart" /* start */]: oldDock["dockingStart" /* start */] || { actionKey: null, active: false, collapsed: false },
|
|
1277
|
+
["dockingEnd" /* end */]: oldDock["dockingEnd" /* end */] || { actionKey: null, active: false, collapsed: false }
|
|
1278
|
+
};
|
|
1279
|
+
return {
|
|
1280
|
+
...state,
|
|
1281
|
+
dock: newDock
|
|
1282
|
+
};
|
|
1283
|
+
}
|
|
1284
|
+
}
|
|
1285
|
+
return state;
|
|
1286
|
+
};
|
|
1287
|
+
var migrateKeysStateToProfileKeyed = (state) => {
|
|
1288
|
+
if (!state.keys) {
|
|
1289
|
+
return state;
|
|
1290
|
+
}
|
|
1291
|
+
const isProfileKeyed = "epub" in state.keys || "webPub" in state.keys || "audio" in state.keys;
|
|
1292
|
+
if (!isProfileKeyed) {
|
|
1293
|
+
const oldKeys = state.keys;
|
|
1294
|
+
const newKeys = {
|
|
1295
|
+
epub: { ...oldKeys },
|
|
1296
|
+
webPub: {},
|
|
1297
|
+
audio: {}
|
|
1298
|
+
};
|
|
1299
|
+
return {
|
|
1300
|
+
...state,
|
|
1301
|
+
keys: newKeys
|
|
1302
|
+
};
|
|
1303
|
+
}
|
|
1304
|
+
const migratedKeys = {
|
|
1305
|
+
epub: state.keys.epub || {},
|
|
1306
|
+
webPub: state.keys.webPub || {},
|
|
1307
|
+
audio: state.keys.audio || {}
|
|
1308
|
+
};
|
|
1055
1309
|
return {
|
|
1056
1310
|
...state,
|
|
1057
|
-
keys:
|
|
1058
|
-
overflow: {}
|
|
1311
|
+
keys: migratedKeys
|
|
1059
1312
|
};
|
|
1060
1313
|
};
|
|
1061
1314
|
var loadState = (storageKey = DEFAULT_STORAGE_KEY) => {
|
|
@@ -1068,10 +1321,16 @@ var loadState = (storageKey = DEFAULT_STORAGE_KEY) => {
|
|
|
1068
1321
|
settings: void 0,
|
|
1069
1322
|
theming: void 0,
|
|
1070
1323
|
preferences: void 0,
|
|
1071
|
-
webPubSettings: void 0
|
|
1324
|
+
webPubSettings: void 0,
|
|
1325
|
+
audioSettings: void 0
|
|
1072
1326
|
};
|
|
1073
1327
|
}
|
|
1074
1328
|
let state = JSON.parse(serializedState);
|
|
1329
|
+
if (state && state.actions) {
|
|
1330
|
+
state.actions = migrateDockStateToProfileKeyed(state.actions);
|
|
1331
|
+
state.actions = migrateKeysStateToProfileKeyed(state.actions);
|
|
1332
|
+
state.actions = updateActionsState(state.actions);
|
|
1333
|
+
}
|
|
1075
1334
|
if (state) {
|
|
1076
1335
|
if (state.settings) {
|
|
1077
1336
|
state.settings = migrateFontFamily(state.settings);
|
|
@@ -1081,6 +1340,7 @@ var loadState = (storageKey = DEFAULT_STORAGE_KEY) => {
|
|
|
1081
1340
|
}
|
|
1082
1341
|
if (state.actions) {
|
|
1083
1342
|
state.actions = updateActionsState(state.actions);
|
|
1343
|
+
state.actions = migrateDockStateToProfileKeyed(state.actions);
|
|
1084
1344
|
}
|
|
1085
1345
|
}
|
|
1086
1346
|
return state;
|
|
@@ -1103,6 +1363,7 @@ var saveState = (state, storageKey, externalReducers = {}) => {
|
|
|
1103
1363
|
if (state.theming) stateToPersist.theming = state.theming;
|
|
1104
1364
|
if (state.preferences) stateToPersist.preferences = state.preferences;
|
|
1105
1365
|
if (state.webPubSettings) stateToPersist.webPubSettings = state.webPubSettings;
|
|
1366
|
+
if (state.audioSettings) stateToPersist.audioSettings = state.audioSettings;
|
|
1106
1367
|
Object.entries(externalReducers).forEach(([key, config]) => {
|
|
1107
1368
|
if (config.persist && state[key] !== void 0) {
|
|
1108
1369
|
stateToPersist[key] = state[key];
|
|
@@ -1123,6 +1384,8 @@ var makeStore = (storageKey, externalReducers = {}) => {
|
|
|
1123
1384
|
publication: publicationReducer_default,
|
|
1124
1385
|
preferences: preferencesReducer_default,
|
|
1125
1386
|
webPubSettings: webPubSettingsReducer_default,
|
|
1387
|
+
audioSettings: audioSettingsReducer_default,
|
|
1388
|
+
player: playerReducer_default,
|
|
1126
1389
|
...Object.entries(externalReducers).reduce((acc, [key, config]) => ({
|
|
1127
1390
|
...acc,
|
|
1128
1391
|
[key]: config.reducer
|
|
@@ -1135,6 +1398,7 @@ var makeStore = (storageKey, externalReducers = {}) => {
|
|
|
1135
1398
|
theming: persistedState.theming,
|
|
1136
1399
|
preferences: persistedState.preferences,
|
|
1137
1400
|
webPubSettings: persistedState.webPubSettings,
|
|
1401
|
+
audioSettings: persistedState.audioSettings,
|
|
1138
1402
|
// Include persisted state for external reducers that have it
|
|
1139
1403
|
...Object.entries(externalReducers).reduce((acc, [key, config]) => {
|
|
1140
1404
|
if (config.persist && persistedState[key] !== void 0) {
|
|
@@ -1208,6 +1472,6 @@ var useAppDispatch = useDispatch;
|
|
|
1208
1472
|
var useAppSelector = useSelector;
|
|
1209
1473
|
var useAppStore = useStore;
|
|
1210
1474
|
|
|
1211
|
-
export { ThReduxPreferencesAdapter, ThStoreProvider, actionsSlice, activateDockPanel, collapseDockPanel, deactivateDockPanel, debounce, dockAction, expandDockPanel, handleSpacingSetting, initialSettingsState, initialWebPubSettingsState, makeStore, preferencesSlice, publicationSlice, readerSlice, setActionOpen, setBreakpoint, setColorScheme, setColumnCount, setContrast, setDirection, setDockPanelWidth, setFXL, setFontFamily, setFontLanguage, setFontSize, setFontWeight, setForcedColors, setFullscreen, setHasArrows, setHasDisplayTransformability, setHovering, setHyphens, setImmersive, setL10n, setLetterSpacing, setLineHeight, setLineLength, setLoading, setMonochrome, setOverflow, setPaginatedAffordance, setParagraphIndent, setParagraphSpacing, setPlatformModifier, setPositionsList, setProgressionFormat, setPublicationEnd, setPublicationStart, setPublisherStyles, setRTL, setReaderProfile, setReducedMotion, setReducedTransparency, setRunningHeadFormat, setScroll, setScrollAffordance, setScrollAffordances, setSettingsContainer, setSpacingPreset, setTextAlign, setTextNormalization, setTheme, setTimeline, setTocEntry, setTocTree, setUI, setUserNavigated, setWebPubFontFamily, setWebPubFontWeight, setWebPubHyphens, setWebPubLetterSpacing, setWebPubLineHeight, setWebPubParagraphIndent, setWebPubParagraphSpacing, setWebPubPublisherStyles, setWebPubSpacingPreset, setWebPubTextAlign, setWebPubTextNormalization, setWebPubWordSpacing, setWebPubZoom, setWordSpacing, settingsSlice, themeSlice, toggleActionOpen, toggleImmersive, updateFromPreferences, useAppDispatch, useAppSelector, useAppStore, webPubSettingsSlice };
|
|
1212
|
-
//# sourceMappingURL=chunk-
|
|
1213
|
-
//# sourceMappingURL=chunk-
|
|
1475
|
+
export { ThReduxPreferencesAdapter, ThStoreProvider, actionsSlice, activateDockPanel, audioSettingsSlice, collapseDockPanel, deactivateDockPanel, debounce, dockAction, expandDockPanel, handleSpacingSetting, initialSettingsState, initialWebPubSettingsState, makeStore, playerSlice, preferencesSlice, publicationSlice, readerSlice, setActionOpen, setAdjacentTimelineItems, setAutoPlay, setBreakpoint, setColorScheme, setColumnCount, setContrast, setCoverTheme, setDirection, setDockPanelWidth, setEnableMediaSession, setFXL, setFontFamily, setFontLanguage, setFontSize, setFontWeight, setForcedColors, setFullscreen, setHasArrows, setHasDisplayTransformability, setHovering, setHyphens, setImmersive, setL10n, setLetterSpacing, setLineHeight, setLineLength, setLoading, setMonochrome, setOverflow, setPaginatedAffordance, setParagraphIndent, setParagraphSpacing, setPlatformModifier, setPlaybackRate, setPollInterval, setPositionsList, setPreservePitch, setProgressionFormat, setPublicationEnd, setPublicationStart, setPublisherStyles, setRTL, setReaderProfile, setReducedMotion, setReducedTransparency, setRemotePlaybackState, setRunningHeadFormat, setScroll, setScrollAffordance, setScrollAffordances, setSeekableRanges, setSeeking, setSettingsContainer, setSkipBackwardInterval, setSkipForwardInterval, setSkipInterval, setSleepTimerOnFragmentEnd, setSleepTimerOnTrackEnd, setSleepTimerRemainingSeconds, setSpacingPreset, setStalled, setStatus, setTextAlign, setTextNormalization, setTheme, setTimeline, setTocEntry, setTocTree, setTrackReady, setUI, setUserNavigated, setVolume, setWebPubFontFamily, setWebPubFontWeight, setWebPubHyphens, setWebPubLetterSpacing, setWebPubLineHeight, setWebPubParagraphIndent, setWebPubParagraphSpacing, setWebPubPublisherStyles, setWebPubSpacingPreset, setWebPubTextAlign, setWebPubTextNormalization, setWebPubWordSpacing, setWebPubZoom, setWordSpacing, settingsSlice, themeSlice, toggleActionOpen, toggleImmersive, updateFromPreferences, useAppDispatch, useAppSelector, useAppStore, webPubSettingsSlice };
|
|
1476
|
+
//# sourceMappingURL=chunk-EZG6SBSO.mjs.map
|
|
1477
|
+
//# sourceMappingURL=chunk-EZG6SBSO.mjs.map
|