@lvce-editor/extension-detail-view 3.1.0 → 3.2.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/extensionDetailViewWorkerMain.js +239 -171
- package/package.json +1 -1
|
@@ -850,150 +850,174 @@ const ExtensionDetail = 'ExtensionDetail';
|
|
|
850
850
|
const ExtensionDetailDescription = 'ExtensionDetailDescription';
|
|
851
851
|
const ExtensionDetailHeader = 'ExtensionDetailHeader';
|
|
852
852
|
const ExtensionDetailHeaderDetails = 'ExtensionDetailHeaderDetails';
|
|
853
|
+
const Changelog$1 = 'Changelog';
|
|
854
|
+
const Features$1 = 'Features';
|
|
853
855
|
const ExtensionDetailIcon = 'ExtensionDetailIcon';
|
|
854
856
|
const ExtensionDetailName = 'ExtensionDetailName';
|
|
857
|
+
const ExtensionDetailTab = 'ExtensionDetailTab';
|
|
858
|
+
const ExtensionDetailTabs = 'ExtensionDetailTabs';
|
|
859
|
+
const ExtensionDetailTabSelected = 'ExtensionDetailTabSelected';
|
|
855
860
|
const Markdown = 'Markdown';
|
|
856
861
|
const Viewlet = 'Viewlet';
|
|
857
862
|
|
|
863
|
+
const Button = 1;
|
|
864
|
+
const Div$1 = 4;
|
|
865
|
+
const H1$1 = 5;
|
|
866
|
+
const Span$1 = 8;
|
|
867
|
+
const Text$1 = 12;
|
|
868
|
+
const Img$1 = 17;
|
|
869
|
+
const H2$1 = 22;
|
|
870
|
+
const H3$1 = 23;
|
|
871
|
+
const H4$1 = 24;
|
|
872
|
+
const H5$1 = 25;
|
|
873
|
+
const Article$1 = 27;
|
|
874
|
+
const Aside$1 = 28;
|
|
875
|
+
const Footer$1 = 29;
|
|
876
|
+
const Header$1 = 30;
|
|
877
|
+
const Nav$1 = 40;
|
|
878
|
+
const Section$1 = 41;
|
|
879
|
+
const Search$1 = 42;
|
|
880
|
+
const Dd$1 = 43;
|
|
881
|
+
const Dl$1 = 44;
|
|
882
|
+
const Figcaption$1 = 45;
|
|
883
|
+
const Figure$1 = 46;
|
|
884
|
+
const Hr$1 = 47;
|
|
885
|
+
const Li$1 = 48;
|
|
886
|
+
const Ol$1 = 49;
|
|
887
|
+
const P$1 = 50;
|
|
888
|
+
const Pre$1 = 51;
|
|
889
|
+
const A$1 = 53;
|
|
890
|
+
const Abbr$1 = 54;
|
|
891
|
+
const Br$1 = 55;
|
|
892
|
+
const Cite$1 = 56;
|
|
893
|
+
const Data$1 = 57;
|
|
894
|
+
const Time$1 = 58;
|
|
895
|
+
const Tfoot$1 = 59;
|
|
896
|
+
|
|
897
|
+
const text = data => {
|
|
898
|
+
return {
|
|
899
|
+
type: Text$1,
|
|
900
|
+
text: data,
|
|
901
|
+
childCount: 0
|
|
902
|
+
};
|
|
903
|
+
};
|
|
904
|
+
|
|
905
|
+
const getChangelogVirtualDom = () => {
|
|
906
|
+
// TODO set tabpanel role
|
|
907
|
+
return [{
|
|
908
|
+
type: Div$1,
|
|
909
|
+
className: Changelog$1,
|
|
910
|
+
childCount: 1
|
|
911
|
+
}, text('Not Implemented')];
|
|
912
|
+
};
|
|
913
|
+
|
|
858
914
|
const Document = 'document';
|
|
859
915
|
const TabList = 'tablist';
|
|
860
916
|
const Tab = 'tab';
|
|
861
917
|
|
|
862
918
|
const HandleReadmeContextMenu = 'handleReadmeContextMenu';
|
|
919
|
+
const HandleTabsClick = 'handleTabsClick';
|
|
863
920
|
|
|
864
921
|
const allowedMarkdownAttributes = ['src', 'id', 'className', 'title', 'alt', 'href', 'target', 'rel'];
|
|
865
922
|
|
|
866
|
-
const Div
|
|
867
|
-
const H1
|
|
868
|
-
const H2
|
|
869
|
-
const H3
|
|
870
|
-
const H4
|
|
871
|
-
const H5
|
|
872
|
-
const Img
|
|
873
|
-
const Span
|
|
874
|
-
const Article
|
|
875
|
-
const Aside
|
|
876
|
-
const Footer
|
|
877
|
-
const Header
|
|
878
|
-
const Nav
|
|
879
|
-
const Section
|
|
880
|
-
const Search
|
|
881
|
-
const Dd
|
|
882
|
-
const Dl
|
|
883
|
-
const Figcaption
|
|
884
|
-
const Figure
|
|
885
|
-
const Hr
|
|
886
|
-
const Li
|
|
887
|
-
const Ol
|
|
888
|
-
const P
|
|
889
|
-
const Pre
|
|
890
|
-
const A
|
|
891
|
-
const Abbr
|
|
892
|
-
const Br
|
|
893
|
-
const Cite
|
|
894
|
-
const Data
|
|
895
|
-
const Time
|
|
896
|
-
const Tfoot
|
|
897
|
-
|
|
898
|
-
const Div = 4;
|
|
899
|
-
const H1 = 5;
|
|
900
|
-
const Span = 8;
|
|
901
|
-
const Text$1 = 12;
|
|
902
|
-
const Img = 17;
|
|
903
|
-
const H2 = 22;
|
|
904
|
-
const H3 = 23;
|
|
905
|
-
const H4 = 24;
|
|
906
|
-
const H5 = 25;
|
|
907
|
-
const Article = 27;
|
|
908
|
-
const Aside = 28;
|
|
909
|
-
const Footer = 29;
|
|
910
|
-
const Header = 30;
|
|
911
|
-
const Nav = 40;
|
|
912
|
-
const Section = 41;
|
|
913
|
-
const Search = 42;
|
|
914
|
-
const Dd = 43;
|
|
915
|
-
const Dl = 44;
|
|
916
|
-
const Figcaption = 45;
|
|
917
|
-
const Figure = 46;
|
|
918
|
-
const Hr = 47;
|
|
919
|
-
const Li = 48;
|
|
920
|
-
const Ol = 49;
|
|
921
|
-
const P = 50;
|
|
922
|
-
const Pre = 51;
|
|
923
|
-
const A = 53;
|
|
924
|
-
const Abbr = 54;
|
|
925
|
-
const Br = 55;
|
|
926
|
-
const Cite = 56;
|
|
927
|
-
const Data = 57;
|
|
928
|
-
const Time = 58;
|
|
929
|
-
const Tfoot = 59;
|
|
923
|
+
const Div = 'div';
|
|
924
|
+
const H1 = 'h1';
|
|
925
|
+
const H2 = 'h2';
|
|
926
|
+
const H3 = 'h3';
|
|
927
|
+
const H4 = 'h4';
|
|
928
|
+
const H5 = 'h5';
|
|
929
|
+
const Img = 'img';
|
|
930
|
+
const Span = 'span';
|
|
931
|
+
const Article = 'article';
|
|
932
|
+
const Aside = 'aside';
|
|
933
|
+
const Footer = 'footer';
|
|
934
|
+
const Header = 'header';
|
|
935
|
+
const Nav = 'nav';
|
|
936
|
+
const Section = 'section';
|
|
937
|
+
const Search = 'search';
|
|
938
|
+
const Dd = 'dd';
|
|
939
|
+
const Dl = 'dl';
|
|
940
|
+
const Figcaption = 'figcaption';
|
|
941
|
+
const Figure = 'figure';
|
|
942
|
+
const Hr = 'hr';
|
|
943
|
+
const Li = 'li';
|
|
944
|
+
const Ol = 'ol';
|
|
945
|
+
const P = 'p';
|
|
946
|
+
const Pre = 'pre';
|
|
947
|
+
const A = 'a';
|
|
948
|
+
const Abbr = 'abbr';
|
|
949
|
+
const Br = 'br';
|
|
950
|
+
const Cite = 'cite';
|
|
951
|
+
const Data = 'data';
|
|
952
|
+
const Time = 'time';
|
|
953
|
+
const Tfoot = 'tfoot';
|
|
930
954
|
|
|
931
955
|
const getVirtualDomTag = text => {
|
|
932
956
|
switch (text) {
|
|
933
|
-
case H1
|
|
934
|
-
return H1;
|
|
935
|
-
case H2
|
|
936
|
-
return H2;
|
|
937
|
-
case H3
|
|
938
|
-
return H3;
|
|
939
|
-
case H4
|
|
940
|
-
return H4;
|
|
941
|
-
case H5
|
|
942
|
-
return H5;
|
|
943
|
-
case Div
|
|
944
|
-
return Div;
|
|
945
|
-
case Article
|
|
946
|
-
return Article;
|
|
947
|
-
case Aside
|
|
948
|
-
return Aside;
|
|
949
|
-
case Footer
|
|
950
|
-
return Footer;
|
|
951
|
-
case Header
|
|
952
|
-
return Header;
|
|
953
|
-
case Nav
|
|
954
|
-
return Nav;
|
|
955
|
-
case Section
|
|
956
|
-
return Section;
|
|
957
|
-
case Search
|
|
958
|
-
return Search;
|
|
959
|
-
case Dd
|
|
960
|
-
return Dd;
|
|
961
|
-
case Dl
|
|
962
|
-
return Dl;
|
|
963
|
-
case Figcaption
|
|
964
|
-
return Figcaption;
|
|
965
|
-
case Figure
|
|
966
|
-
return Figure;
|
|
967
|
-
case Hr
|
|
968
|
-
return Hr;
|
|
969
|
-
case Li
|
|
970
|
-
return Li;
|
|
971
|
-
case Ol
|
|
972
|
-
return Ol;
|
|
973
|
-
case P
|
|
974
|
-
return P;
|
|
975
|
-
case Pre
|
|
976
|
-
return Pre;
|
|
977
|
-
case A
|
|
978
|
-
return A;
|
|
979
|
-
case Abbr
|
|
980
|
-
return Abbr;
|
|
981
|
-
case Br
|
|
982
|
-
return Br;
|
|
983
|
-
case Cite
|
|
984
|
-
return Cite;
|
|
985
|
-
case Data
|
|
986
|
-
return Data;
|
|
987
|
-
case Time
|
|
988
|
-
return Time;
|
|
989
|
-
case Tfoot
|
|
990
|
-
return Tfoot;
|
|
991
|
-
case Img
|
|
992
|
-
return Img;
|
|
993
|
-
case Span
|
|
994
|
-
return Span;
|
|
957
|
+
case H1:
|
|
958
|
+
return H1$1;
|
|
959
|
+
case H2:
|
|
960
|
+
return H2$1;
|
|
961
|
+
case H3:
|
|
962
|
+
return H3$1;
|
|
963
|
+
case H4:
|
|
964
|
+
return H4$1;
|
|
965
|
+
case H5:
|
|
966
|
+
return H5$1;
|
|
967
|
+
case Div:
|
|
968
|
+
return Div$1;
|
|
969
|
+
case Article:
|
|
970
|
+
return Article$1;
|
|
971
|
+
case Aside:
|
|
972
|
+
return Aside$1;
|
|
973
|
+
case Footer:
|
|
974
|
+
return Footer$1;
|
|
975
|
+
case Header:
|
|
976
|
+
return Header$1;
|
|
977
|
+
case Nav:
|
|
978
|
+
return Nav$1;
|
|
979
|
+
case Section:
|
|
980
|
+
return Section$1;
|
|
981
|
+
case Search:
|
|
982
|
+
return Search$1;
|
|
983
|
+
case Dd:
|
|
984
|
+
return Dd$1;
|
|
985
|
+
case Dl:
|
|
986
|
+
return Dl$1;
|
|
987
|
+
case Figcaption:
|
|
988
|
+
return Figcaption$1;
|
|
989
|
+
case Figure:
|
|
990
|
+
return Figure$1;
|
|
991
|
+
case Hr:
|
|
992
|
+
return Hr$1;
|
|
993
|
+
case Li:
|
|
994
|
+
return Li$1;
|
|
995
|
+
case Ol:
|
|
996
|
+
return Ol$1;
|
|
997
|
+
case P:
|
|
998
|
+
return P$1;
|
|
999
|
+
case Pre:
|
|
1000
|
+
return Pre$1;
|
|
1001
|
+
case A:
|
|
1002
|
+
return A$1;
|
|
1003
|
+
case Abbr:
|
|
1004
|
+
return Abbr$1;
|
|
1005
|
+
case Br:
|
|
1006
|
+
return Br$1;
|
|
1007
|
+
case Cite:
|
|
1008
|
+
return Cite$1;
|
|
1009
|
+
case Data:
|
|
1010
|
+
return Data$1;
|
|
1011
|
+
case Time:
|
|
1012
|
+
return Time$1;
|
|
1013
|
+
case Tfoot:
|
|
1014
|
+
return Tfoot$1;
|
|
1015
|
+
case Img:
|
|
1016
|
+
return Img$1;
|
|
1017
|
+
case Span:
|
|
1018
|
+
return Span$1;
|
|
995
1019
|
default:
|
|
996
|
-
return Div;
|
|
1020
|
+
return Div$1;
|
|
997
1021
|
}
|
|
998
1022
|
};
|
|
999
1023
|
|
|
@@ -1022,7 +1046,7 @@ const CommentStart = 21;
|
|
|
1022
1046
|
|
|
1023
1047
|
const isSelfClosingTag = tag => {
|
|
1024
1048
|
switch (tag) {
|
|
1025
|
-
case Img
|
|
1049
|
+
case Img:
|
|
1026
1050
|
return true;
|
|
1027
1051
|
default:
|
|
1028
1052
|
return false;
|
|
@@ -1287,14 +1311,6 @@ const tokenizeHtml = text => {
|
|
|
1287
1311
|
return tokens;
|
|
1288
1312
|
};
|
|
1289
1313
|
|
|
1290
|
-
const text = data => {
|
|
1291
|
-
return {
|
|
1292
|
-
type: Text$1,
|
|
1293
|
-
text: data,
|
|
1294
|
-
childCount: 0
|
|
1295
|
-
};
|
|
1296
|
-
};
|
|
1297
|
-
|
|
1298
1314
|
const parseHtml = (html, allowedAttributes) => {
|
|
1299
1315
|
string(html);
|
|
1300
1316
|
array(allowedAttributes);
|
|
@@ -1364,11 +1380,11 @@ const getVirtualDomChildCount = markdownDom => {
|
|
|
1364
1380
|
return stack.length;
|
|
1365
1381
|
};
|
|
1366
1382
|
|
|
1367
|
-
const
|
|
1383
|
+
const getDetailsVirtualDom = sanitizedReadmeHtml => {
|
|
1368
1384
|
const markdownDom = getMarkdownVirtualDom(sanitizedReadmeHtml);
|
|
1369
1385
|
const childCount = getVirtualDomChildCount(markdownDom);
|
|
1370
1386
|
const dom = [{
|
|
1371
|
-
type: Div,
|
|
1387
|
+
type: Div$1,
|
|
1372
1388
|
className: Markdown,
|
|
1373
1389
|
role: Document,
|
|
1374
1390
|
onContextMenu: HandleReadmeContextMenu,
|
|
@@ -1377,6 +1393,32 @@ const getExtensionDetailContentVirtualDom = sanitizedReadmeHtml => {
|
|
|
1377
1393
|
return dom;
|
|
1378
1394
|
};
|
|
1379
1395
|
|
|
1396
|
+
const getFeaturesVirtualDom = () => {
|
|
1397
|
+
// TODO set tabpanel role
|
|
1398
|
+
return [{
|
|
1399
|
+
type: Div$1,
|
|
1400
|
+
className: Features$1,
|
|
1401
|
+
childCount: 1
|
|
1402
|
+
}, text('Not Implemented')];
|
|
1403
|
+
};
|
|
1404
|
+
|
|
1405
|
+
const Details = 'Details';
|
|
1406
|
+
const Features = 'Features';
|
|
1407
|
+
const Changelog = 'Changelog';
|
|
1408
|
+
|
|
1409
|
+
const getExtensionDetailContentVirtualDom = (sanitizedReadmeHtml, selectedTab) => {
|
|
1410
|
+
switch (selectedTab) {
|
|
1411
|
+
case Details:
|
|
1412
|
+
return getDetailsVirtualDom(sanitizedReadmeHtml);
|
|
1413
|
+
case Features:
|
|
1414
|
+
return getFeaturesVirtualDom();
|
|
1415
|
+
case Changelog:
|
|
1416
|
+
return getChangelogVirtualDom();
|
|
1417
|
+
default:
|
|
1418
|
+
return [];
|
|
1419
|
+
}
|
|
1420
|
+
};
|
|
1421
|
+
|
|
1380
1422
|
const getExtensionDetailHeaderVirtualDom = extensionDetail => {
|
|
1381
1423
|
const {
|
|
1382
1424
|
name,
|
|
@@ -1384,79 +1426,92 @@ const getExtensionDetailHeaderVirtualDom = extensionDetail => {
|
|
|
1384
1426
|
description
|
|
1385
1427
|
} = extensionDetail;
|
|
1386
1428
|
const dom = [{
|
|
1387
|
-
type: Div,
|
|
1429
|
+
type: Div$1,
|
|
1388
1430
|
className: ExtensionDetailHeader,
|
|
1389
1431
|
childCount: 2
|
|
1390
1432
|
}, {
|
|
1391
|
-
type: Img,
|
|
1433
|
+
type: Img$1,
|
|
1392
1434
|
className: ExtensionDetailIcon,
|
|
1393
1435
|
alt: '',
|
|
1394
1436
|
draggable: false,
|
|
1395
1437
|
childCount: 0,
|
|
1396
1438
|
src: iconSrc
|
|
1397
1439
|
}, {
|
|
1398
|
-
type: Div,
|
|
1440
|
+
type: Div$1,
|
|
1399
1441
|
className: ExtensionDetailHeaderDetails,
|
|
1400
1442
|
childCount: 2
|
|
1401
1443
|
}, {
|
|
1402
|
-
type: Div,
|
|
1444
|
+
type: Div$1,
|
|
1403
1445
|
className: ExtensionDetailName,
|
|
1404
1446
|
childCount: 1
|
|
1405
1447
|
}, text(name), {
|
|
1406
|
-
type: Div,
|
|
1448
|
+
type: Div$1,
|
|
1407
1449
|
className: ExtensionDetailDescription,
|
|
1408
1450
|
childCount: 1
|
|
1409
1451
|
}, text(description)];
|
|
1410
1452
|
return dom;
|
|
1411
1453
|
};
|
|
1412
1454
|
|
|
1455
|
+
const getTabs = selectedTab => {
|
|
1456
|
+
const tabs = [{
|
|
1457
|
+
label: 'Details',
|
|
1458
|
+
name: Details,
|
|
1459
|
+
selected: selectedTab === Details
|
|
1460
|
+
}, {
|
|
1461
|
+
label: 'Features',
|
|
1462
|
+
name: Features,
|
|
1463
|
+
selected: selectedTab === Features
|
|
1464
|
+
}, {
|
|
1465
|
+
label: 'Changelog',
|
|
1466
|
+
name: Changelog,
|
|
1467
|
+
selected: selectedTab === Changelog
|
|
1468
|
+
}];
|
|
1469
|
+
return tabs;
|
|
1470
|
+
};
|
|
1471
|
+
|
|
1472
|
+
const joinBySpace = (...items) => {
|
|
1473
|
+
return items.join(' ');
|
|
1474
|
+
};
|
|
1475
|
+
|
|
1476
|
+
const mergeClassNames = (...classNames) => {
|
|
1477
|
+
return joinBySpace(...classNames.filter(Boolean));
|
|
1478
|
+
};
|
|
1479
|
+
|
|
1413
1480
|
const getTabVirtualDom = tab => {
|
|
1414
1481
|
const {
|
|
1415
1482
|
label,
|
|
1416
|
-
selected
|
|
1483
|
+
selected,
|
|
1484
|
+
name
|
|
1417
1485
|
} = tab;
|
|
1418
|
-
const className = selected ?
|
|
1486
|
+
const className = selected ? mergeClassNames(ExtensionDetailTab, ExtensionDetailTabSelected) : ExtensionDetailTab;
|
|
1419
1487
|
return [{
|
|
1420
|
-
type:
|
|
1488
|
+
type: Button,
|
|
1421
1489
|
role: Tab,
|
|
1490
|
+
name,
|
|
1422
1491
|
className,
|
|
1423
|
-
childCount: 1
|
|
1492
|
+
childCount: 1,
|
|
1493
|
+
tabIndex: -1
|
|
1424
1494
|
}, text(label)];
|
|
1425
1495
|
};
|
|
1426
1496
|
|
|
1427
1497
|
const getTabsVirtualDom = tabs => {
|
|
1428
1498
|
return [{
|
|
1429
|
-
type: Div,
|
|
1430
|
-
className:
|
|
1499
|
+
type: Div$1,
|
|
1500
|
+
className: ExtensionDetailTabs,
|
|
1431
1501
|
childCount: tabs.length,
|
|
1432
|
-
role: TabList
|
|
1502
|
+
role: TabList,
|
|
1503
|
+
onClick: HandleTabsClick,
|
|
1504
|
+
tabIndex: 0
|
|
1433
1505
|
}, ...tabs.flatMap(getTabVirtualDom)];
|
|
1434
1506
|
};
|
|
1435
1507
|
|
|
1436
|
-
const
|
|
1437
|
-
|
|
1438
|
-
};
|
|
1439
|
-
|
|
1440
|
-
const mergeClassNames = (...classNames) => {
|
|
1441
|
-
return joinBySpace(...classNames.filter(Boolean));
|
|
1442
|
-
};
|
|
1443
|
-
|
|
1444
|
-
const getExtensionDetailVirtualDom = (extensionDetail, sanitizedReadmeHtml) => {
|
|
1445
|
-
const tabs = [{
|
|
1446
|
-
label: 'Details',
|
|
1447
|
-
selected: true
|
|
1448
|
-
}, {
|
|
1449
|
-
label: 'Features',
|
|
1450
|
-
selected: false
|
|
1451
|
-
}, {
|
|
1452
|
-
label: 'Changelog',
|
|
1453
|
-
selected: false
|
|
1454
|
-
}];
|
|
1508
|
+
const getExtensionDetailVirtualDom = (extensionDetail, sanitizedReadmeHtml, selectedTab) => {
|
|
1509
|
+
const tabs = getTabs(selectedTab);
|
|
1455
1510
|
const dom = [{
|
|
1456
|
-
type: Div,
|
|
1511
|
+
type: Div$1,
|
|
1457
1512
|
className: mergeClassNames(Viewlet, ExtensionDetail),
|
|
1458
1513
|
childCount: 3
|
|
1459
|
-
}, ...getExtensionDetailHeaderVirtualDom(extensionDetail), ...getTabsVirtualDom(tabs), ...getExtensionDetailContentVirtualDom(sanitizedReadmeHtml)];
|
|
1514
|
+
}, ...getExtensionDetailHeaderVirtualDom(extensionDetail), ...getTabsVirtualDom(tabs), ...getExtensionDetailContentVirtualDom(sanitizedReadmeHtml, selectedTab)];
|
|
1460
1515
|
return dom;
|
|
1461
1516
|
};
|
|
1462
1517
|
|
|
@@ -4198,8 +4253,10 @@ const loadContent = async (state, platform) => {
|
|
|
4198
4253
|
const description = getDescription(extension);
|
|
4199
4254
|
const name = getName(extension);
|
|
4200
4255
|
const size = getViewletSize(width);
|
|
4256
|
+
const selectedTab = Details;
|
|
4201
4257
|
return {
|
|
4202
4258
|
...state,
|
|
4259
|
+
selectedTab,
|
|
4203
4260
|
sanitizedReadmeHtml: normalizedReadmeHtml,
|
|
4204
4261
|
iconSrc,
|
|
4205
4262
|
name,
|
|
@@ -4208,6 +4265,14 @@ const loadContent = async (state, platform) => {
|
|
|
4208
4265
|
};
|
|
4209
4266
|
};
|
|
4210
4267
|
|
|
4268
|
+
const handleTabsClick = (state, name) => {
|
|
4269
|
+
// TODO load the tabs content if needed
|
|
4270
|
+
return {
|
|
4271
|
+
...state,
|
|
4272
|
+
selectedTab: name
|
|
4273
|
+
};
|
|
4274
|
+
};
|
|
4275
|
+
|
|
4211
4276
|
const terminate = () => {
|
|
4212
4277
|
globalThis.close();
|
|
4213
4278
|
};
|
|
@@ -4217,6 +4282,9 @@ const commandMap = {
|
|
|
4217
4282
|
'ExtensionDetail.getVirtualDom': getExtensionDetailVirtualDom,
|
|
4218
4283
|
'ExtensionDetail.loadContent': loadContent,
|
|
4219
4284
|
'ExtensionDetail.terminate': terminate,
|
|
4285
|
+
'ExtensionDetail.handleTabsClick': handleTabsClick,
|
|
4286
|
+
'ExtensionDetail.handleIconError': handleIconError,
|
|
4287
|
+
// deprecated
|
|
4220
4288
|
'HandleIconError.handleIconError': handleIconError,
|
|
4221
4289
|
'RenderMarkdown.renderMarkdown': renderMarkdown
|
|
4222
4290
|
};
|