@lvce-editor/find-widget-worker 1.16.0 → 1.18.0

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.
@@ -943,7 +943,8 @@ const {
943
943
  wrapCommand,
944
944
  dispose: dispose$2,
945
945
  getCommandIds,
946
- registerCommands
946
+ registerCommands,
947
+ wrapGetter
947
948
  } = create$2();
948
949
 
949
950
  const User$1 = 1;
@@ -980,7 +981,8 @@ const create$1 = (uid, x, y, width, height, parentUid) => {
980
981
  editorHeight: height,
981
982
  inputSource: 0,
982
983
  preserveCase: false,
983
- resizerPointerDown: false
984
+ resizerPointerDown: false,
985
+ minWidth: 400
984
986
  };
985
987
  set$3(uid, state, state);
986
988
  return state;
@@ -1567,13 +1569,22 @@ const handleResizerPointerDown = async (state, eventX, eventY) => {
1567
1569
  };
1568
1570
  };
1569
1571
 
1572
+ const getNewWidth = (oldWidth, oldX, eventX, minWidth) => {
1573
+ const oldXEnd = oldX + oldWidth;
1574
+ const newWidth = Math.max(oldXEnd - eventX, minWidth);
1575
+ return newWidth;
1576
+ };
1570
1577
  const handleResizerPointerMove = async (state, eventX, eventY) => {
1571
1578
  const {
1572
1579
  width,
1573
- x
1580
+ x,
1581
+ resizerPointerDown,
1582
+ minWidth
1574
1583
  } = state;
1575
- const oldXEnd = x + width;
1576
- const newWidth = oldXEnd - eventX;
1584
+ if (!resizerPointerDown) {
1585
+ return state;
1586
+ }
1587
+ const newWidth = getNewWidth(width, x, eventX, minWidth);
1577
1588
  return {
1578
1589
  ...state,
1579
1590
  x: eventX,
@@ -1668,13 +1679,38 @@ const getSelections = async editorUid => {
1668
1679
  return selections;
1669
1680
  };
1670
1681
 
1671
- const loadContent = async state => {
1682
+ const getSavedValue = savedState => {
1683
+ if (savedState && savedState.value) {
1684
+ return savedState.value;
1685
+ }
1686
+ return '';
1687
+ };
1688
+ const getSavedReplacement = savedState => {
1689
+ if (savedState && savedState.replacement) {
1690
+ return savedState.replacement;
1691
+ }
1692
+ return '';
1693
+ };
1694
+ const restoreState = savedState => {
1695
+ const value = getSavedValue(savedState);
1696
+ const replacement = getSavedReplacement(savedState);
1697
+ return {
1698
+ value,
1699
+ replacement
1700
+ };
1701
+ };
1702
+
1703
+ const loadContent = async (state, savedState) => {
1672
1704
  const {
1673
1705
  editorUid,
1674
1706
  editorWidth,
1675
1707
  editorX,
1676
1708
  editorY
1677
1709
  } = state;
1710
+ const {
1711
+ replacement,
1712
+ value
1713
+ } = restoreState(savedState);
1678
1714
  const lines = await getLines(editorUid);
1679
1715
  const selections = await getSelections(editorUid);
1680
1716
  const {
@@ -1686,24 +1722,25 @@ const loadContent = async state => {
1686
1722
  if (lines.length === 0) {
1687
1723
  return state;
1688
1724
  }
1689
- const value = getSelectedText(lines, selections);
1690
- const matches = findMatchesCaseInsensitive(lines, value);
1725
+ const actualValue = value || getSelectedText(lines, selections);
1726
+ const matches = findMatchesCaseInsensitive(lines, actualValue);
1691
1727
  const matchCount = getMatchCount(matches);
1692
1728
  return {
1693
1729
  ...state,
1694
- value,
1730
+ focused: true,
1731
+ height,
1732
+ inputSource: Script,
1733
+ lines,
1734
+ matchCount,
1695
1735
  matches,
1696
1736
  matchIndex: 0,
1697
- matchCount,
1737
+ replacement,
1738
+ selections,
1739
+ value: actualValue,
1698
1740
  version: 1,
1699
- x,
1700
- y,
1701
1741
  width,
1702
- height,
1703
- lines,
1704
- selections,
1705
- focused: true,
1706
- inputSource: Script
1742
+ x,
1743
+ y
1707
1744
  };
1708
1745
  };
1709
1746
 
@@ -1744,7 +1781,6 @@ const HandleReplaceInput = 'handleReplaceInput';
1744
1781
  const HandleResizerPointerDown = 'handleResizerPointerDown';
1745
1782
  const HandleResizerPointerMove = 'handleResizerPointerMove';
1746
1783
  const HandleResizerPointerUp = 'handleResizerPointerUp';
1747
- const HandleSliderPointerMove = 'handleSliderPointerMove';
1748
1784
  const HandleToggleReplaceFocus = 'handleToggleReplaceFocus';
1749
1785
 
1750
1786
  const emptyObject = {};
@@ -2036,9 +2072,7 @@ const getResizerVirtualDom = () => {
2036
2072
  type: Div,
2037
2073
  className: 'Resizer',
2038
2074
  childCount: 1,
2039
- onPointerDown: HandleResizerPointerDown,
2040
- onPointerMove: HandleResizerPointerUp,
2041
- onPointerUp: HandleResizerPointerMove
2075
+ onPointerDown: HandleResizerPointerDown
2042
2076
  }, {
2043
2077
  type: Div,
2044
2078
  className: 'ResizerHighlight',
@@ -2177,7 +2211,7 @@ const getEventListeners = (uid, widgetId) => {
2177
2211
  params: ['executeWidgetCommand', 'FindWidget', 'FindWidget.handleResizerPointerDown', 0, widgetId, ClientX, ClientY],
2178
2212
  trackPointerEvents: [HandleResizerPointerMove, HandleResizerPointerUp]
2179
2213
  }, {
2180
- name: HandleSliderPointerMove,
2214
+ name: HandleResizerPointerMove,
2181
2215
  params: ['executeWidgetCommand', 'FindWidget', 'FindWidget.handleResizerPointerMove', 0, widgetId, ClientX, ClientY]
2182
2216
  }, {
2183
2217
  name: HandleResizerPointerUp,
@@ -2280,6 +2314,27 @@ const resize = async (state, dimensions) => {
2280
2314
  return state;
2281
2315
  };
2282
2316
 
2317
+ const saveState = state => {
2318
+ const {
2319
+ width,
2320
+ value,
2321
+ replacement,
2322
+ matchCase,
2323
+ matchWholeWord,
2324
+ useRegularExpression,
2325
+ replaceExpanded
2326
+ } = state;
2327
+ return {
2328
+ width,
2329
+ value,
2330
+ replacement,
2331
+ matchCase,
2332
+ matchWholeWord,
2333
+ useRegularExpression,
2334
+ replaceExpanded
2335
+ };
2336
+ };
2337
+
2283
2338
  const commandMap = {
2284
2339
  'FindWidget.create': create$1,
2285
2340
  'FindWidget.diff2': diff2,
@@ -2309,6 +2364,7 @@ const commandMap = {
2309
2364
  'FindWidget.replaceAll': wrapCommand(replaceAll$1),
2310
2365
  'FindWidget.resize': wrapCommand(resize),
2311
2366
  'FindWidget.terminate': terminate,
2367
+ 'FindWidget.saveState': wrapGetter(saveState),
2312
2368
  'FindWidget.toggleMatchCase': wrapCommand(toggleMatchCase),
2313
2369
  'FindWidget.toggleReplace': wrapCommand(toggleReplace$1),
2314
2370
  'FindWidget.toggleUseRegularExpression': wrapCommand(toggleUseRegularExpression)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lvce-editor/find-widget-worker",
3
- "version": "1.16.0",
3
+ "version": "1.18.0",
4
4
  "description": "Web Worker for the find widget in Lvce Editor",
5
5
  "repository": {
6
6
  "type": "git",