@edrlab/thorium-web 1.1.6 → 1.1.7
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/{chunk-SFHOVH6R.mjs → chunk-4C3UOTX4.mjs} +35 -14
- package/dist/chunk-4C3UOTX4.mjs.map +1 -0
- package/dist/{chunk-QNYZCQKO.mjs → chunk-6V3O7FCS.mjs} +4 -4
- package/dist/chunk-6V3O7FCS.mjs.map +1 -0
- package/dist/{chunk-KTPIH35Y.mjs → chunk-NYZBHYW2.mjs} +5 -3
- package/dist/chunk-NYZBHYW2.mjs.map +1 -0
- package/dist/{chunk-SMK7A7VF.mjs → chunk-YIW2OOMW.mjs} +3 -3
- package/dist/{chunk-SMK7A7VF.mjs.map → chunk-YIW2OOMW.mjs.map} +1 -1
- package/dist/components/Epub/index.mjs +13 -13
- package/dist/components/Misc/index.mjs +2 -2
- package/dist/components/WebPub/index.mjs +12 -12
- package/dist/core/Components/index.d.mts +4 -2
- package/dist/core/Components/index.mjs +1 -1
- package/dist/i18n/index.mjs +4 -4
- package/dist/lib/index.mjs +1 -1
- package/dist/locales/en/thorium-web.json +4 -1
- package/dist/preferences/index.mjs +3 -3
- package/package.json +1 -1
- package/dist/chunk-KTPIH35Y.mjs.map +0 -1
- package/dist/chunk-QNYZCQKO.mjs.map +0 -1
- package/dist/chunk-SFHOVH6R.mjs.map +0 -1
|
@@ -1,12 +1,12 @@
|
|
|
1
|
+
import { makeBreakpointsMap, isInteractiveElement, isKeyboardTriggered, isActiveElement, getBestMatchingProgressionFormat } from './chunk-47AIIJFO.mjs';
|
|
1
2
|
import { useFullscreen, useEpubNavigator } from './chunk-KJXHAJYK.mjs';
|
|
2
3
|
import { useAppDispatch, setFullscreen, useAppSelector, setActionOpen, dockAction, setSettingsContainer, debounce, setColumnCount, setWebPubFontFamily, setFontFamily, setWebPubFontWeight, setFontWeight, setWebPubHyphens, setHyphens, setScroll, setWebPubLetterSpacing, setLetterSpacing, setWebPubLineHeight, setLineHeight, setWebPubParagraphIndent, setParagraphIndent, setWebPubParagraphSpacing, setParagraphSpacing, setWebPubWordSpacing, setWordSpacing, setWebPubSpacingPreset, setWebPubPublisherStyles, setSpacingPreset, setPublisherStyles, setWebPubTextAlign, setTextAlign, setWebPubTextNormalization, setTextNormalization, setTheme, setWebPubZoom, setFontSize, ThReduxPreferencesAdapter, setHovering, setImmersive, setOverflow, setUserNavigated, setTocEntry, collapseDockPanel, expandDockPanel, activateDockPanel, deactivateDockPanel, setDockPanelWidth } from './chunk-COQXDRKD.mjs';
|
|
3
|
-
import { usePreferences, prefixString, ThDockingTypes, ThSheetTypes, defaultSpacingSettingsSubpanel, defaultSpacingSettingsMain, defaultTextSettingsSubpanel, defaultTextSettingsMain, usePreferenceKeys, ThTextSettingsKeys, ThSpacingSettingsKeys, buildThemeObject, defaultPreferences, ThPreferencesProvider } from './chunk-
|
|
4
|
-
import { ThMenuItem, ThActionButton, ThMenu, ThCollapsibleActionsBar, ThPopover, ThContainerHeader, ThNavigationButton, ThContainerBody, ThBottomSheet, ThCloseButton, ThModal, ThDockedPanel, ThTypedComponentRenderer, useActions, ThForm, ThFormNumberField, ThSettingsWrapper, ThFormSearchField, ThRadioGroup, ThDropdown, ThSwitch, ThNumberField, ThSlider, ThInteractiveOverlay, ThHeader, ThFooter, ThLink, ThLibrary, ThHome, ThBackArrow, ThRunningHead, ThPagination, ThProgression } from './chunk-KTPIH35Y.mjs';
|
|
5
|
-
import { usePrevious } from './chunk-YZ73DHRU.mjs';
|
|
6
|
-
import { useI18n } from './chunk-IYAFKTPL.mjs';
|
|
7
|
-
import { makeBreakpointsMap, isInteractiveElement, isKeyboardTriggered, isActiveElement, getBestMatchingProgressionFormat } from './chunk-47AIIJFO.mjs';
|
|
4
|
+
import { usePreferences, prefixString, ThDockingTypes, ThSheetTypes, defaultSpacingSettingsSubpanel, defaultSpacingSettingsMain, defaultTextSettingsSubpanel, defaultTextSettingsMain, usePreferenceKeys, ThTextSettingsKeys, ThSpacingSettingsKeys, buildThemeObject, defaultPreferences, ThPreferencesProvider } from './chunk-YIW2OOMW.mjs';
|
|
8
5
|
import { ThRunningHeadFormat, ThProgressionFormat } from './chunk-XVSFXHYB.mjs';
|
|
9
6
|
import { isIOSish, getPlatform, buildShortcut, metaKeys } from './chunk-5LUMM7FW.mjs';
|
|
7
|
+
import { useI18n } from './chunk-IYAFKTPL.mjs';
|
|
8
|
+
import { ThMenuItem, ThActionButton, ThMenu, ThCollapsibleActionsBar, ThPopover, ThContainerHeader, ThNavigationButton, ThContainerBody, ThBottomSheet, ThCloseButton, ThModal, ThDockedPanel, ThTypedComponentRenderer, useActions, ThForm, ThFormNumberField, ThSettingsWrapper, ThFormSearchField, ThRadioGroup, ThDropdown, ThSwitch, ThNumberField, ThSlider, ThInteractiveOverlay, ThHeader, ThFooter, ThLink, ThLibrary, ThHome, ThBackArrow, ThRunningHead, ThPagination, ThProgression } from './chunk-NYZBHYW2.mjs';
|
|
9
|
+
import { usePrevious } from './chunk-YZ73DHRU.mjs';
|
|
10
10
|
import { Text, useFilter, Tree, TreeItem, TreeItemContent, Button, Collection, ListBox, ListBoxItem, Radio, Keyboard, Toolbar } from 'react-aria-components';
|
|
11
11
|
import { jsx, Fragment, jsxs } from 'react/jsx-runtime';
|
|
12
12
|
import React18, { createContext, useRef, useCallback, useEffect, useMemo, useState, useContext } from 'react';
|
|
@@ -1387,6 +1387,11 @@ var thorium_web_jumpToPosition_default = {
|
|
|
1387
1387
|
button: "thorium_web_jumpToPosition_button",
|
|
1388
1388
|
numberField: "thorium_web_jumpToPosition_numberField"
|
|
1389
1389
|
};
|
|
1390
|
+
|
|
1391
|
+
// src/components/Actions/JumpToPosition/helpers/utils.ts
|
|
1392
|
+
var isPositionsListValid = (positionsList) => {
|
|
1393
|
+
return !!(positionsList && positionsList.length > 0 && positionsList.some((item) => item.locations?.position));
|
|
1394
|
+
};
|
|
1390
1395
|
var StatefulJumpToPositionContainer = ({
|
|
1391
1396
|
triggerRef
|
|
1392
1397
|
}) => {
|
|
@@ -1400,6 +1405,7 @@ var StatefulJumpToPositionContainer = ({
|
|
|
1400
1405
|
const sheetType = docking.sheetType;
|
|
1401
1406
|
const { go } = useEpubNavigator();
|
|
1402
1407
|
const [position, setPosition] = useState(0);
|
|
1408
|
+
const [errorMessage, setErrorMessage] = useState();
|
|
1403
1409
|
const positionInRange = useCallback(() => {
|
|
1404
1410
|
if (!positionNumbers) return false;
|
|
1405
1411
|
return positionNumbers.length === 2 ? position >= positionNumbers[0] && position <= positionNumbers[1] : position === positionNumbers[0];
|
|
@@ -1418,19 +1424,24 @@ var StatefulJumpToPositionContainer = ({
|
|
|
1418
1424
|
const handleAction = useCallback((e) => {
|
|
1419
1425
|
e.preventDefault();
|
|
1420
1426
|
if (!positionsList) return;
|
|
1427
|
+
setErrorMessage(void 0);
|
|
1421
1428
|
const item = positionsList.find((item2) => item2.locations.position === position);
|
|
1422
|
-
if (!item
|
|
1429
|
+
if (!item) {
|
|
1430
|
+
setErrorMessage(t("reader.jumpToPosition.error.notFound"));
|
|
1431
|
+
return;
|
|
1432
|
+
}
|
|
1433
|
+
if (positionInRange()) return setOpen(false);
|
|
1423
1434
|
const cb = () => {
|
|
1424
1435
|
setOpen(false);
|
|
1425
1436
|
dispatch(setImmersive(true));
|
|
1426
1437
|
dispatch(setUserNavigated(true));
|
|
1427
1438
|
};
|
|
1428
1439
|
go(item, !reducedMotion, cb);
|
|
1429
|
-
}, [position, positionsList, reducedMotion, positionInRange, go, setOpen, dispatch]);
|
|
1440
|
+
}, [position, positionsList, reducedMotion, t, positionInRange, go, setOpen, dispatch]);
|
|
1430
1441
|
useEffect(() => {
|
|
1431
1442
|
positionNumbers && setPosition(positionNumbers[0]);
|
|
1432
1443
|
}, [positionNumbers]);
|
|
1433
|
-
if (!positionsList) return null;
|
|
1444
|
+
if (!isPositionsListValid(positionsList)) return null;
|
|
1434
1445
|
return /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsx(
|
|
1435
1446
|
StatefulSheetWrapper,
|
|
1436
1447
|
{
|
|
@@ -1472,6 +1483,7 @@ var StatefulJumpToPositionContainer = ({
|
|
|
1472
1483
|
step: 1,
|
|
1473
1484
|
formatOptions: { style: "decimal" },
|
|
1474
1485
|
isWheelDisabled: true,
|
|
1486
|
+
errorMessage,
|
|
1475
1487
|
compounds: {
|
|
1476
1488
|
label: {
|
|
1477
1489
|
className: thorium_web_jumpToPosition_default.label
|
|
@@ -1502,7 +1514,7 @@ var StatefulJumpToPositionTrigger = ({ variant }) => {
|
|
|
1502
1514
|
isOpen: value
|
|
1503
1515
|
}));
|
|
1504
1516
|
};
|
|
1505
|
-
if (!positionsList) return null;
|
|
1517
|
+
if (!isPositionsListValid(positionsList)) return null;
|
|
1506
1518
|
return /* @__PURE__ */ jsx(Fragment, { children: variant && variant === "menuItem" /* menu */ ? /* @__PURE__ */ jsx(
|
|
1507
1519
|
StatefulOverflowMenuItem,
|
|
1508
1520
|
{
|
|
@@ -3949,7 +3961,7 @@ var createDefaultPlugin = () => {
|
|
|
3949
3961
|
id: "core",
|
|
3950
3962
|
name: "Core Components",
|
|
3951
3963
|
description: "Default components for Thorium Web Epub StatefulReader",
|
|
3952
|
-
version: "1.1.
|
|
3964
|
+
version: "1.1.7",
|
|
3953
3965
|
components: {
|
|
3954
3966
|
actions: {
|
|
3955
3967
|
["fullscreen" /* fullscreen */]: {
|
|
@@ -4582,6 +4594,7 @@ var StatefulReaderHeader = ({
|
|
|
4582
4594
|
const isImmersive = useAppSelector((state) => state.reader.isImmersive);
|
|
4583
4595
|
const isHovering = useAppSelector((state) => state.reader.isHovering);
|
|
4584
4596
|
const hasScrollAffordance = useAppSelector((state) => state.reader.hasScrollAffordance);
|
|
4597
|
+
const positionsList = useAppSelector((state) => state.publication.positionsList);
|
|
4585
4598
|
const actions = useActions({ ...actionsMap, ...overflowMap });
|
|
4586
4599
|
const dispatch = useAppDispatch();
|
|
4587
4600
|
const { focusWithinProps } = useFocusWithin({
|
|
@@ -4619,8 +4632,16 @@ var StatefulReaderHeader = ({
|
|
|
4619
4632
|
}
|
|
4620
4633
|
});
|
|
4621
4634
|
}
|
|
4622
|
-
return actionsItems
|
|
4623
|
-
|
|
4635
|
+
return actionsItems.filter((item) => {
|
|
4636
|
+
if (item.key === "jumpToPosition" /* jumpToPosition */) {
|
|
4637
|
+
return isPositionsListValid(positionsList);
|
|
4638
|
+
}
|
|
4639
|
+
if (item.key === "fullscreen" /* fullscreen */) {
|
|
4640
|
+
return document.fullscreenEnabled && !isIOSish();
|
|
4641
|
+
}
|
|
4642
|
+
return true;
|
|
4643
|
+
});
|
|
4644
|
+
}, [actionKeys, actionsComponentsMap, positionsList]);
|
|
4624
4645
|
useEffect(() => {
|
|
4625
4646
|
if (isImmersive) {
|
|
4626
4647
|
const focusElement = document.activeElement;
|
|
@@ -5364,5 +5385,5 @@ function getReaderClassNames(options) {
|
|
|
5364
5385
|
}
|
|
5365
5386
|
|
|
5366
5387
|
export { NavigatorProvider, Peripherals, StatefulActionIcon, StatefulBottomSheet, StatefulCollapsibleActionsBar, StatefulColumns, StatefulDockedSheet, StatefulDockingWrapper, StatefulDropdown, StatefulFontFamily, StatefulFullScreenSheet, StatefulFullscreenTrigger, StatefulGroupWrapper, StatefulHyphens, StatefulJumpToPositionContainer, StatefulJumpToPositionTrigger, StatefulLayout, StatefulLetterSpacing, StatefulLineHeight, StatefulNumberField, StatefulOverflowMenu, StatefulOverflowMenuItem, StatefulParagraphIndent, StatefulParagraphSpacing, StatefulPopoverSheet, StatefulPreferencesProvider, StatefulPublisherStyles, StatefulRadioGroup, StatefulReaderFooter, StatefulReaderHeader, StatefulSettingsContainer, StatefulSettingsTrigger, StatefulSheetWrapper, StatefulSlider, StatefulSpacingGroup, StatefulSpacingGroupContainer, StatefulSpacingPresets, StatefulSwitch, StatefulTextAlign, StatefulTextGroup, StatefulTextGroupContainer, StatefulTextNormalize, StatefulTheme, StatefulTocContainer, StatefulTocTrigger, StatefulWordSpacing, StatefulZoom, ThPluginProvider, ThPluginRegistry, UnstableStatefulFontWeight, createDefaultPlugin, getReaderClassNames, thorium_web_button_default, thorium_web_reader_app_default, useDocking, useFonts, useGridNavigation, useGridTemplate, useLineHeight, useNavigator, usePublication, useReaderTransitions, useSettingsComponentStatus, useSpacingPresets };
|
|
5367
|
-
//# sourceMappingURL=chunk-
|
|
5368
|
-
//# sourceMappingURL=chunk-
|
|
5388
|
+
//# sourceMappingURL=chunk-4C3UOTX4.mjs.map
|
|
5389
|
+
//# sourceMappingURL=chunk-4C3UOTX4.mjs.map
|