@lvce-editor/extension-search-view 2.8.0 → 2.10.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.
- package/dist/extensionSearchViewWorkerMain.js +196 -130
- package/package.json +1 -1
|
@@ -935,132 +935,68 @@ const RE_PARAM = /@\w+/g;
|
|
|
935
935
|
|
|
936
936
|
// TODO test sorting and filtering
|
|
937
937
|
const parseValue = value => {
|
|
938
|
-
|
|
938
|
+
let installed = false;
|
|
939
|
+
let enabled = false;
|
|
940
|
+
let disabled = false;
|
|
941
|
+
let builtin = false;
|
|
942
|
+
let sort = '';
|
|
943
|
+
let id = '';
|
|
944
|
+
let outdated = false;
|
|
939
945
|
// TODO this is not very functional code (assignment)
|
|
940
946
|
const replaced = value.replaceAll(RE_PARAM, (match, by, order) => {
|
|
941
947
|
if (match.startsWith(Installed)) {
|
|
942
|
-
|
|
948
|
+
installed = true;
|
|
943
949
|
}
|
|
944
950
|
if (match.startsWith(Enabled)) {
|
|
945
|
-
|
|
951
|
+
enabled = true;
|
|
946
952
|
}
|
|
947
953
|
if (match.startsWith(Disabled)) {
|
|
948
|
-
|
|
954
|
+
disabled = true;
|
|
949
955
|
}
|
|
950
956
|
if (match.startsWith(Builtin)) {
|
|
951
|
-
|
|
957
|
+
builtin = true;
|
|
952
958
|
}
|
|
953
959
|
if (match.startsWith(Sort)) {
|
|
954
960
|
// TODO
|
|
955
|
-
|
|
961
|
+
sort = 'installs';
|
|
956
962
|
}
|
|
957
963
|
if (match.startsWith(Id)) {
|
|
958
964
|
// TODO
|
|
959
|
-
|
|
965
|
+
id = 'abc';
|
|
960
966
|
}
|
|
961
967
|
if (match.startsWith(Outdated)) {
|
|
962
|
-
|
|
968
|
+
outdated = true;
|
|
963
969
|
}
|
|
964
970
|
return '';
|
|
965
971
|
});
|
|
966
|
-
const isLocal =
|
|
972
|
+
const isLocal = enabled || builtin || disabled || outdated || installed;
|
|
967
973
|
return {
|
|
968
974
|
query: replaced,
|
|
969
|
-
|
|
975
|
+
enabled,
|
|
976
|
+
builtin,
|
|
977
|
+
disabled,
|
|
978
|
+
outdated,
|
|
979
|
+
installed,
|
|
980
|
+
id,
|
|
981
|
+
sort,
|
|
970
982
|
isLocal
|
|
971
983
|
};
|
|
972
984
|
};
|
|
973
985
|
|
|
974
|
-
const
|
|
975
|
-
const
|
|
976
|
-
|
|
977
|
-
|
|
978
|
-
const getRemoteUrl = (extension, platform, assetDir) => {
|
|
979
|
-
if (platform === Remote || platform === Electron) {
|
|
980
|
-
if (extension.builtin) {
|
|
981
|
-
return `${assetDir}/extensions/${extension.id}/${extension.icon}`;
|
|
982
|
-
}
|
|
983
|
-
return `/remote/${extension.path}/${extension.icon}`; // TODO support windows paths
|
|
984
|
-
}
|
|
985
|
-
return '';
|
|
986
|
-
};
|
|
987
|
-
|
|
988
|
-
const getExtensionDefaultIcon = assetDir => {
|
|
989
|
-
return `${assetDir}/icons/extensionDefaultIcon.png`;
|
|
990
|
-
};
|
|
991
|
-
const getExtensionLanguageBasicsIcon = assetDir => {
|
|
992
|
-
return `${assetDir}/icons/language-icon.svg`;
|
|
993
|
-
};
|
|
994
|
-
const getExtensionThemeIcon = assetDir => {
|
|
995
|
-
return `${assetDir}/icons/theme-icon.png`;
|
|
996
|
-
};
|
|
997
|
-
|
|
998
|
-
const isLanguageBasicsExtension = extension => {
|
|
999
|
-
return extension.name && extension.name.startsWith('Language Basics');
|
|
1000
|
-
};
|
|
1001
|
-
const isThemeExtension = extension => {
|
|
1002
|
-
return extension.name && extension.name.endsWith(' Theme');
|
|
1003
|
-
};
|
|
1004
|
-
const getIcon = (extension, platform, assetDir) => {
|
|
1005
|
-
if (!extension) {
|
|
1006
|
-
return getExtensionDefaultIcon(assetDir);
|
|
1007
|
-
}
|
|
1008
|
-
if (!extension.path || !extension.icon) {
|
|
1009
|
-
if (isLanguageBasicsExtension(extension)) {
|
|
1010
|
-
return getExtensionLanguageBasicsIcon(assetDir);
|
|
1011
|
-
}
|
|
1012
|
-
if (isThemeExtension(extension)) {
|
|
1013
|
-
return getExtensionThemeIcon(assetDir);
|
|
1014
|
-
}
|
|
1015
|
-
return getExtensionDefaultIcon(assetDir);
|
|
1016
|
-
}
|
|
1017
|
-
return getRemoteUrl(extension, platform, assetDir);
|
|
1018
|
-
};
|
|
1019
|
-
const getName = extension => {
|
|
1020
|
-
if (extension && extension.name) {
|
|
1021
|
-
return extension.name;
|
|
1022
|
-
}
|
|
1023
|
-
if (extension && extension.id) {
|
|
1024
|
-
return extension.id;
|
|
1025
|
-
}
|
|
1026
|
-
return 'n/a';
|
|
1027
|
-
};
|
|
1028
|
-
const getDescription = extension => {
|
|
1029
|
-
if (!extension || !extension.description) {
|
|
1030
|
-
return 'n/a';
|
|
1031
|
-
}
|
|
1032
|
-
return extension.description;
|
|
986
|
+
const matchesName = (extension, query) => {
|
|
987
|
+
const extensionNameLower = extension.name.toLowerCase();
|
|
988
|
+
return extensionNameLower.includes(query);
|
|
1033
989
|
};
|
|
1034
|
-
const
|
|
1035
|
-
|
|
1036
|
-
|
|
1037
|
-
}
|
|
1038
|
-
return extension.id;
|
|
1039
|
-
};
|
|
1040
|
-
|
|
1041
|
-
const RE_PUBLISHER = /^[a-z\d-]+/;
|
|
1042
|
-
|
|
1043
|
-
// TODO handle case when extension is of type number|array|null|string
|
|
1044
|
-
const getPublisher = extension => {
|
|
1045
|
-
if (!extension || !extension.id) {
|
|
1046
|
-
return 'n/a';
|
|
1047
|
-
}
|
|
1048
|
-
// TODO handle case when id is not of type string -> should not crash application
|
|
1049
|
-
const match = extension.id.match(RE_PUBLISHER);
|
|
1050
|
-
if (!match) {
|
|
1051
|
-
return 'n/a';
|
|
1052
|
-
}
|
|
1053
|
-
return match[0];
|
|
990
|
+
const matchesId = (extension, query) => {
|
|
991
|
+
const extensionIdLower = extension.id.toLowerCase();
|
|
992
|
+
return extensionIdLower.includes(query);
|
|
1054
993
|
};
|
|
1055
|
-
|
|
1056
994
|
const matchesParsedValue = (extension, parsedValue) => {
|
|
1057
|
-
if (extension
|
|
1058
|
-
|
|
1059
|
-
return extensionNameLower.includes(parsedValue.query);
|
|
995
|
+
if (extension.name) {
|
|
996
|
+
return matchesName(extension, parsedValue.query);
|
|
1060
997
|
}
|
|
1061
|
-
if (extension
|
|
1062
|
-
|
|
1063
|
-
return extensionIdLower.includes(parsedValue.query);
|
|
998
|
+
if (extension.id) {
|
|
999
|
+
return matchesId(extension, parsedValue.query);
|
|
1064
1000
|
}
|
|
1065
1001
|
return false;
|
|
1066
1002
|
};
|
|
@@ -1083,17 +1019,11 @@ const sortExtensions = extensions => {
|
|
|
1083
1019
|
return toSorted(extensions, compareExtension);
|
|
1084
1020
|
};
|
|
1085
1021
|
|
|
1086
|
-
const getExtensions = async (extensions, parsedValue
|
|
1022
|
+
const getExtensions = async (extensions, parsedValue) => {
|
|
1087
1023
|
const filteredExtensions = [];
|
|
1088
1024
|
for (const extension of extensions) {
|
|
1089
1025
|
if (matchesParsedValue(extension, parsedValue)) {
|
|
1090
|
-
filteredExtensions.push(
|
|
1091
|
-
name: getName(extension),
|
|
1092
|
-
id: getId(extension),
|
|
1093
|
-
publisher: getPublisher(extension),
|
|
1094
|
-
icon: getIcon(extension, platform, assetDir),
|
|
1095
|
-
description: getDescription(extension)
|
|
1096
|
-
});
|
|
1026
|
+
filteredExtensions.push(extension);
|
|
1097
1027
|
}
|
|
1098
1028
|
}
|
|
1099
1029
|
const sortedExtensions = sortExtensions(filteredExtensions);
|
|
@@ -1103,7 +1033,7 @@ const getExtensions = async (extensions, parsedValue, platform, assetDir) => {
|
|
|
1103
1033
|
const searchExtensions = async (extensions, value, platform, assetDir) => {
|
|
1104
1034
|
try {
|
|
1105
1035
|
const parsedValue = parseValue(value);
|
|
1106
|
-
const filteredExtensions = await getExtensions(extensions, parsedValue
|
|
1036
|
+
const filteredExtensions = await getExtensions(extensions, parsedValue);
|
|
1107
1037
|
return filteredExtensions;
|
|
1108
1038
|
} catch (error) {
|
|
1109
1039
|
throw new VError(error, 'Failed to search for extensions');
|
|
@@ -1139,7 +1069,7 @@ const handleInput = async (state, value) => {
|
|
|
1139
1069
|
placeholder: searchExtensionsInMarketPlace()
|
|
1140
1070
|
};
|
|
1141
1071
|
}
|
|
1142
|
-
const listHeight = getListHeight(
|
|
1072
|
+
const listHeight = getListHeight(items.length, itemHeight, height);
|
|
1143
1073
|
const total = items.length;
|
|
1144
1074
|
const contentHeight = total * itemHeight;
|
|
1145
1075
|
const scrollBarHeight = getScrollBarSize(height, contentHeight, minimumSliderSize);
|
|
@@ -1217,7 +1147,8 @@ const create = (id, uri, x, y, width, height, platform, assetDir) => {
|
|
|
1217
1147
|
width,
|
|
1218
1148
|
x,
|
|
1219
1149
|
y,
|
|
1220
|
-
focused: false
|
|
1150
|
+
focused: false,
|
|
1151
|
+
inputSource: 0
|
|
1221
1152
|
};
|
|
1222
1153
|
set$1(id, state, state);
|
|
1223
1154
|
};
|
|
@@ -1228,31 +1159,31 @@ const RenderScrollBar = 5;
|
|
|
1228
1159
|
const RenderMessage = 6;
|
|
1229
1160
|
|
|
1230
1161
|
const diffType$4 = RenderItems;
|
|
1231
|
-
const isEqual$
|
|
1162
|
+
const isEqual$5 = (oldState, newState) => {
|
|
1232
1163
|
return true;
|
|
1233
1164
|
};
|
|
1234
1165
|
|
|
1235
1166
|
const diffType$3 = RenderHeader;
|
|
1236
|
-
const isEqual$
|
|
1167
|
+
const isEqual$4 = (oldState, newState) => {
|
|
1237
1168
|
return oldState.placeholder === newState.placeholder;
|
|
1238
1169
|
};
|
|
1239
1170
|
|
|
1240
1171
|
const diffType$2 = RenderItems;
|
|
1241
|
-
const isEqual$
|
|
1172
|
+
const isEqual$3 = (oldState, newState) => {
|
|
1242
1173
|
return oldState.items === newState.items && oldState.minLineY === newState.minLineY && oldState.maxLineY === newState.maxLineY && oldState.deltaY === newState.deltaY && oldState.focusedIndex === newState.focusedIndex;
|
|
1243
1174
|
};
|
|
1244
1175
|
|
|
1245
1176
|
const diffType$1 = RenderMessage;
|
|
1246
|
-
const isEqual$
|
|
1177
|
+
const isEqual$2 = (oldState, newState) => {
|
|
1247
1178
|
return oldState.message === newState.message;
|
|
1248
1179
|
};
|
|
1249
1180
|
|
|
1250
1181
|
const diffType = RenderScrollBar;
|
|
1251
|
-
const isEqual = (oldState, newState) => {
|
|
1182
|
+
const isEqual$1 = (oldState, newState) => {
|
|
1252
1183
|
return oldState.negativeMargin === newState.negativeMargin && oldState.deltaY === newState.deltaY && oldState.height === newState.height && oldState.finalDeltaY === newState.finalDeltaY && oldState.items.length === newState.items.length && oldState.scrollBarActive === newState.scrollBarActive;
|
|
1253
1184
|
};
|
|
1254
1185
|
|
|
1255
|
-
const modules = [isEqual$
|
|
1186
|
+
const modules = [isEqual$5, isEqual$1, isEqual$2, isEqual$4, isEqual$3];
|
|
1256
1187
|
const numbers = [diffType$4, diffType, diffType$1, diffType$3, diffType$2];
|
|
1257
1188
|
|
|
1258
1189
|
const diff = (oldState, newState) => {
|
|
@@ -1411,7 +1342,7 @@ const getActions = () => {
|
|
|
1411
1342
|
}];
|
|
1412
1343
|
};
|
|
1413
1344
|
|
|
1414
|
-
const commandIds = ['clearSearchResults', 'closeSuggest', 'focusFirst', 'focusLast', 'focusNext', 'focusNextPage', 'focusPrevious', 'focusPreviousPage', 'handleBlur', 'handleClick', 'handleContextMenu', 'handleDisable', 'handleFocus', 'handleInput', 'handleInstall', 'handleScrollBarCaptureLost', 'handleScrollBarClick', 'handleScrollBarMove', 'handleUninstall', 'handleWheel', 'openSuggest', 'render', 'saveState', 'scrollDown', 'selectIndex', 'setDeltaY', 'toggleSuggest'];
|
|
1345
|
+
const commandIds = ['clearSearchResults', 'closeSuggest', 'focusFirst', 'focusLast', 'focusNext', 'focusNextPage', 'focusPrevious', 'focusPreviousPage', 'handleBlur', 'handleClick', 'handleContextMenu', 'handleDisable', 'handleFocus', 'handleInput', 'handleInstall', 'handleScrollBarCaptureLost', 'handleScrollBarClick', 'handleScrollBarMove', 'handleUninstall', 'handleWheel', 'openSuggest', 'render', 'saveState', 'scrollDown', 'selectIndex', 'setDeltaY', 'toggleSuggest', 'handleScrollBarThumbPointerMove'];
|
|
1415
1346
|
|
|
1416
1347
|
const getCommandIds = () => {
|
|
1417
1348
|
return commandIds;
|
|
@@ -1723,13 +1654,21 @@ const handleWheel = (state, deltaMode, deltaY) => {
|
|
|
1723
1654
|
return setDeltaY(state, state.deltaY + deltaY);
|
|
1724
1655
|
};
|
|
1725
1656
|
|
|
1726
|
-
const
|
|
1657
|
+
const Web = 1;
|
|
1658
|
+
const Electron = 2;
|
|
1659
|
+
const Remote = 3;
|
|
1660
|
+
|
|
1661
|
+
const getAllExtensions$1 = async platform => {
|
|
1727
1662
|
if (platform === Web) {
|
|
1728
1663
|
return [];
|
|
1729
1664
|
}
|
|
1730
1665
|
return invoke('ExtensionManagement.getAllExtensions');
|
|
1731
1666
|
};
|
|
1732
1667
|
|
|
1668
|
+
const getAllExtensions = platform => {
|
|
1669
|
+
return getAllExtensions$1(platform);
|
|
1670
|
+
};
|
|
1671
|
+
|
|
1733
1672
|
const Small = 1;
|
|
1734
1673
|
const Normal = 2;
|
|
1735
1674
|
const Large = 3;
|
|
@@ -1744,12 +1683,113 @@ const getViewletSize = width => {
|
|
|
1744
1683
|
return Large;
|
|
1745
1684
|
};
|
|
1746
1685
|
|
|
1686
|
+
const User = 1;
|
|
1687
|
+
const Script = 2;
|
|
1688
|
+
|
|
1689
|
+
const getRemoteUrl = (extension, platform, assetDir) => {
|
|
1690
|
+
if (platform === Remote || platform === Electron) {
|
|
1691
|
+
if (extension.builtin) {
|
|
1692
|
+
return `${assetDir}/extensions/${extension.id}/${extension.icon}`;
|
|
1693
|
+
}
|
|
1694
|
+
return `/remote/${extension.path}/${extension.icon}`; // TODO support windows paths
|
|
1695
|
+
}
|
|
1696
|
+
return '';
|
|
1697
|
+
};
|
|
1698
|
+
|
|
1699
|
+
const getExtensionDefaultIcon = assetDir => {
|
|
1700
|
+
return `${assetDir}/icons/extensionDefaultIcon.png`;
|
|
1701
|
+
};
|
|
1702
|
+
const getExtensionLanguageBasicsIcon = assetDir => {
|
|
1703
|
+
return `${assetDir}/icons/language-icon.svg`;
|
|
1704
|
+
};
|
|
1705
|
+
const getExtensionThemeIcon = assetDir => {
|
|
1706
|
+
return `${assetDir}/icons/theme-icon.png`;
|
|
1707
|
+
};
|
|
1708
|
+
|
|
1709
|
+
const isLanguageBasicsExtension = extension => {
|
|
1710
|
+
return extension.name && extension.name.startsWith('Language Basics');
|
|
1711
|
+
};
|
|
1712
|
+
const isThemeExtension = extension => {
|
|
1713
|
+
return extension.name && extension.name.endsWith(' Theme');
|
|
1714
|
+
};
|
|
1715
|
+
const getIcon = (extension, platform, assetDir) => {
|
|
1716
|
+
if (!extension) {
|
|
1717
|
+
return getExtensionDefaultIcon(assetDir);
|
|
1718
|
+
}
|
|
1719
|
+
if (!extension.path || !extension.icon) {
|
|
1720
|
+
if (isLanguageBasicsExtension(extension)) {
|
|
1721
|
+
return getExtensionLanguageBasicsIcon(assetDir);
|
|
1722
|
+
}
|
|
1723
|
+
if (isThemeExtension(extension)) {
|
|
1724
|
+
return getExtensionThemeIcon(assetDir);
|
|
1725
|
+
}
|
|
1726
|
+
return getExtensionDefaultIcon(assetDir);
|
|
1727
|
+
}
|
|
1728
|
+
return getRemoteUrl(extension, platform, assetDir);
|
|
1729
|
+
};
|
|
1730
|
+
const getName = extension => {
|
|
1731
|
+
if (extension && extension.name) {
|
|
1732
|
+
return extension.name;
|
|
1733
|
+
}
|
|
1734
|
+
if (extension && extension.id) {
|
|
1735
|
+
return extension.id;
|
|
1736
|
+
}
|
|
1737
|
+
return 'n/a';
|
|
1738
|
+
};
|
|
1739
|
+
const getDescription = extension => {
|
|
1740
|
+
if (!extension || !extension.description) {
|
|
1741
|
+
return 'n/a';
|
|
1742
|
+
}
|
|
1743
|
+
return extension.description;
|
|
1744
|
+
};
|
|
1745
|
+
const getId = extension => {
|
|
1746
|
+
if (!extension || !extension.id) {
|
|
1747
|
+
return 'n/a';
|
|
1748
|
+
}
|
|
1749
|
+
return extension.id;
|
|
1750
|
+
};
|
|
1751
|
+
|
|
1752
|
+
const RE_PUBLISHER = /^[a-z\d-]+/;
|
|
1753
|
+
|
|
1754
|
+
// TODO handle case when extension is of type number|array|null|string
|
|
1755
|
+
const getPublisher = extension => {
|
|
1756
|
+
if (!extension || !extension.id) {
|
|
1757
|
+
return 'n/a';
|
|
1758
|
+
}
|
|
1759
|
+
// TODO handle case when id is not of type string -> should not crash application
|
|
1760
|
+
const match = extension.id.match(RE_PUBLISHER);
|
|
1761
|
+
if (!match) {
|
|
1762
|
+
return 'n/a';
|
|
1763
|
+
}
|
|
1764
|
+
return match[0];
|
|
1765
|
+
};
|
|
1766
|
+
|
|
1767
|
+
const normalizeExtension$1 = (extension, platform, assetDir) => {
|
|
1768
|
+
return {
|
|
1769
|
+
id: getId(extension),
|
|
1770
|
+
name: getName(extension),
|
|
1771
|
+
description: getDescription(extension),
|
|
1772
|
+
uri: '',
|
|
1773
|
+
publisher: getPublisher(extension),
|
|
1774
|
+
icon: getIcon(extension, platform, assetDir)
|
|
1775
|
+
};
|
|
1776
|
+
};
|
|
1777
|
+
|
|
1778
|
+
const normalizeExtension = (extensions, platform, assetDir) => {
|
|
1779
|
+
const normalized = [];
|
|
1780
|
+
for (const extension of extensions) {
|
|
1781
|
+
normalized.push(normalizeExtension$1(extension, platform, assetDir));
|
|
1782
|
+
}
|
|
1783
|
+
return normalized;
|
|
1784
|
+
};
|
|
1785
|
+
|
|
1747
1786
|
const getSavedValue = savedState => {
|
|
1748
1787
|
if (savedState && typeof savedState === 'object' && 'searchValue' in savedState && typeof savedState.searchValue === 'string') {
|
|
1749
1788
|
return savedState.searchValue;
|
|
1750
1789
|
}
|
|
1751
1790
|
return '';
|
|
1752
1791
|
};
|
|
1792
|
+
|
|
1753
1793
|
const restoreState = savedState => {
|
|
1754
1794
|
const searchValue = getSavedValue(savedState);
|
|
1755
1795
|
return {
|
|
@@ -1763,7 +1803,8 @@ const loadContent = async (uid, savedState) => {
|
|
|
1763
1803
|
} = get$1(uid);
|
|
1764
1804
|
const {
|
|
1765
1805
|
width,
|
|
1766
|
-
platform
|
|
1806
|
+
platform,
|
|
1807
|
+
assetDir
|
|
1767
1808
|
} = newState;
|
|
1768
1809
|
const {
|
|
1769
1810
|
searchValue
|
|
@@ -1771,10 +1812,12 @@ const loadContent = async (uid, savedState) => {
|
|
|
1771
1812
|
// TODO just get local extensions on demand (not when query string is already different)
|
|
1772
1813
|
const allExtensions = await getAllExtensions(platform);
|
|
1773
1814
|
const size = getViewletSize(width);
|
|
1815
|
+
const normalized = normalizeExtension(allExtensions, platform, assetDir);
|
|
1774
1816
|
const updatedState = await handleInput({
|
|
1775
1817
|
...newState,
|
|
1776
|
-
allExtensions,
|
|
1777
|
-
size
|
|
1818
|
+
allExtensions: normalized,
|
|
1819
|
+
size,
|
|
1820
|
+
inputSource: Script
|
|
1778
1821
|
}, searchValue);
|
|
1779
1822
|
set$1(uid, newState, updatedState);
|
|
1780
1823
|
};
|
|
@@ -1783,6 +1826,10 @@ const openSuggest = state => {
|
|
|
1783
1826
|
return state;
|
|
1784
1827
|
};
|
|
1785
1828
|
|
|
1829
|
+
const isEqual = (oldState, newState) => {
|
|
1830
|
+
return newState.inputSource === User || oldState.searchValue === newState.searchValue;
|
|
1831
|
+
};
|
|
1832
|
+
|
|
1786
1833
|
const Actions = 'Actions';
|
|
1787
1834
|
const ExtensionActions = 'ExtensionActions';
|
|
1788
1835
|
const ExtensionActive = 'ExtensionActive';
|
|
@@ -2121,12 +2168,24 @@ const getExtensionsVirtualDom = visibleExtensions => {
|
|
|
2121
2168
|
};
|
|
2122
2169
|
|
|
2123
2170
|
const getVisibleItem = (item, setSize, itemHeight, minLineY, relative, i, focusedIndex) => {
|
|
2171
|
+
// TODO use normal parameters
|
|
2172
|
+
const {
|
|
2173
|
+
publisher,
|
|
2174
|
+
description,
|
|
2175
|
+
icon,
|
|
2176
|
+
id,
|
|
2177
|
+
name
|
|
2178
|
+
} = item;
|
|
2124
2179
|
return {
|
|
2125
|
-
...item,
|
|
2126
2180
|
setSize,
|
|
2127
2181
|
posInSet: i + 1,
|
|
2128
2182
|
top: (i - minLineY) * itemHeight - relative,
|
|
2129
|
-
focused: i === focusedIndex
|
|
2183
|
+
focused: i === focusedIndex,
|
|
2184
|
+
publisher,
|
|
2185
|
+
description,
|
|
2186
|
+
icon,
|
|
2187
|
+
id,
|
|
2188
|
+
name
|
|
2130
2189
|
};
|
|
2131
2190
|
};
|
|
2132
2191
|
|
|
@@ -2188,38 +2247,36 @@ const renderScrollBar$1 = newState => {
|
|
|
2188
2247
|
};
|
|
2189
2248
|
|
|
2190
2249
|
const renderExtensions = {
|
|
2191
|
-
isEqual: isEqual$
|
|
2250
|
+
isEqual: isEqual$3,
|
|
2192
2251
|
apply(oldState, newState) {
|
|
2193
2252
|
return renderItems(newState);
|
|
2194
2253
|
}
|
|
2195
2254
|
};
|
|
2196
2255
|
const renderScrollBar = {
|
|
2197
|
-
isEqual: isEqual,
|
|
2256
|
+
isEqual: isEqual$1,
|
|
2198
2257
|
apply(oldState, newState) {
|
|
2199
2258
|
return renderScrollBar$1(newState);
|
|
2200
2259
|
}
|
|
2201
2260
|
};
|
|
2202
2261
|
const renderMessage = {
|
|
2203
|
-
isEqual: isEqual$
|
|
2262
|
+
isEqual: isEqual$2,
|
|
2204
2263
|
apply(oldState, newState) {
|
|
2205
2264
|
return renderMessage$1(newState);
|
|
2206
2265
|
}
|
|
2207
2266
|
};
|
|
2208
2267
|
const renderSearchValue = {
|
|
2209
|
-
isEqual
|
|
2210
|
-
return oldState.searchValue === newState.searchValue;
|
|
2211
|
-
},
|
|
2268
|
+
isEqual: isEqual,
|
|
2212
2269
|
apply(oldState, newState) {
|
|
2213
2270
|
return [/* method */SetSearchValue, oldState.searchValue, newState.searchValue];
|
|
2214
2271
|
}
|
|
2215
2272
|
};
|
|
2216
2273
|
const renderHeader = {
|
|
2217
|
-
isEqual: isEqual$
|
|
2274
|
+
isEqual: isEqual$4,
|
|
2218
2275
|
apply(oldState, newState) {
|
|
2219
2276
|
return renderHeader$1(newState);
|
|
2220
2277
|
}
|
|
2221
2278
|
};
|
|
2222
|
-
const render = [renderScrollBar, renderMessage, renderExtensions,
|
|
2279
|
+
const render = [renderScrollBar, renderMessage, renderExtensions, renderHeader, renderSearchValue];
|
|
2223
2280
|
const doRender = (oldState, newState) => {
|
|
2224
2281
|
const commands = [];
|
|
2225
2282
|
for (const item of render) {
|
|
@@ -2305,10 +2362,13 @@ const renderEventListeners = () => {
|
|
|
2305
2362
|
}];
|
|
2306
2363
|
};
|
|
2307
2364
|
|
|
2308
|
-
const saveState =
|
|
2365
|
+
const saveState = uid => {
|
|
2366
|
+
const {
|
|
2367
|
+
newState
|
|
2368
|
+
} = get$1(uid);
|
|
2309
2369
|
const {
|
|
2310
2370
|
searchValue
|
|
2311
|
-
} =
|
|
2371
|
+
} = newState;
|
|
2312
2372
|
return {
|
|
2313
2373
|
searchValue
|
|
2314
2374
|
};
|
|
@@ -2323,6 +2383,10 @@ const scrollDown = state => {
|
|
|
2323
2383
|
return setDeltaY(state, newDeltaY);
|
|
2324
2384
|
};
|
|
2325
2385
|
|
|
2386
|
+
const terminate = () => {
|
|
2387
|
+
globalThis.close();
|
|
2388
|
+
};
|
|
2389
|
+
|
|
2326
2390
|
const toggleSuggest = state => {
|
|
2327
2391
|
return state;
|
|
2328
2392
|
};
|
|
@@ -2344,6 +2408,7 @@ const commandMap = {
|
|
|
2344
2408
|
'SearchExtensions.create': create,
|
|
2345
2409
|
'SearchExtensions.diff': diff,
|
|
2346
2410
|
'SearchExtensions.focusFirst': wrapCommand(focusFirst),
|
|
2411
|
+
'SearchExtensions.terminate': terminate,
|
|
2347
2412
|
'SearchExtensions.focusIndex': wrapCommand(focusIndex),
|
|
2348
2413
|
'SearchExtensions.focusLast': wrapCommand(focusLast),
|
|
2349
2414
|
'SearchExtensions.focusNext': wrapCommand(focusNext),
|
|
@@ -2366,6 +2431,7 @@ const commandMap = {
|
|
|
2366
2431
|
'SearchExtensions.handleScrollBarCaptureLost': wrapCommand(handleScrollBarCaptureLost),
|
|
2367
2432
|
'SearchExtensions.handleScrollBarClick': wrapCommand(handleScrollBarClick),
|
|
2368
2433
|
'SearchExtensions.handleScrollBarMove': wrapCommand(handleScrollBarMove),
|
|
2434
|
+
'SearchExtensions.handleScrollBarThumbPointerMove': wrapCommand(handleScrollBarMove),
|
|
2369
2435
|
'SearchExtensions.handleUninstall': wrapCommand(handleUninstall),
|
|
2370
2436
|
'SearchExtensions.handleWheel': wrapCommand(handleWheel),
|
|
2371
2437
|
'SearchExtensions.loadContent': loadContent,
|