@lvce-editor/title-bar-worker 2.9.0 → 2.11.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.
@@ -995,47 +995,224 @@ const terminate = () => {
995
995
  globalThis.close();
996
996
  };
997
997
 
998
+ const Web = 1;
999
+ const Electron = 2;
1000
+ const Remote = 3;
1001
+
1002
+ const DEFAULT_UID = 1;
1003
+ const createDefaultState = (uid = DEFAULT_UID) => ({
1004
+ assetDir: '',
1005
+ buttons: [],
1006
+ controlsOverlayEnabled: false,
1007
+ focusedIndex: -1,
1008
+ height: 30,
1009
+ iconWidth: 30,
1010
+ isMenuOpen: false,
1011
+ labelFontFamily: 'system-ui, Ubuntu, Droid Sans, sans-serif',
1012
+ labelFontSize: 13,
1013
+ labelFontWeight: 400,
1014
+ labelLetterSpacing: 0,
1015
+ labelPadding: 8,
1016
+ menus: [],
1017
+ platform: Electron,
1018
+ title: '',
1019
+ titleBarButtons: [],
1020
+ titleBarButtonsEnabled: true,
1021
+ titleBarButtonsWidth: 90,
1022
+ titleBarEntries: [],
1023
+ titleBarHeight: 30,
1024
+ titleBarIconEnabled: true,
1025
+ titleBarIconWidth: 30,
1026
+ titleBarMenuBarEnabled: true,
1027
+ titleBarStyleCustom: true,
1028
+ titleBarTitleEnabled: true,
1029
+ uid,
1030
+ width: 800,
1031
+ x: 0,
1032
+ y: 0
1033
+ });
1034
+
1035
+ const emptyObject = {};
1036
+ const RE_PLACEHOLDER = /\{(PH\d+)\}/g;
1037
+ const i18nString = (key, placeholders = emptyObject) => {
1038
+ if (placeholders === emptyObject) {
1039
+ return key;
1040
+ }
1041
+ const replacer = (match, rest) => {
1042
+ return placeholders[rest];
1043
+ };
1044
+ return key.replaceAll(RE_PLACEHOLDER, replacer);
1045
+ };
1046
+
1047
+ const About = 'About';
1048
+ const CheckForUpdates = 'Check For Updates';
1049
+ const ClearRecentlyOpened = 'Clear Recently Opened';
1050
+ const Close = 'Close';
1051
+ const Edit$1 = 'Edit';
1052
+ const File$2 = 'File';
1053
+ const Go$1 = 'Go';
1054
+ const Help$1 = 'Help';
1055
+ const Maximize = 'Maximize';
1056
+ const Minimize = 'Minimize';
1057
+ const MoreDot = 'More ...';
1058
+ const NewTerminal = 'New Terminal';
1059
+ const OpenProcessExplorer = 'Open Process Explorer';
1060
+ const Run$1 = 'Run';
1061
+ const Selection$1 = 'Selection';
1062
+ const Terminal$1 = 'Terminal';
1063
+ const ToggleDeveloperTools = 'Toggle Developer Tools';
1064
+ const View$1 = 'View';
1065
+
1066
+ const file = () => {
1067
+ return i18nString(File$2);
1068
+ };
1069
+ const edit = () => {
1070
+ return i18nString(Edit$1);
1071
+ };
1072
+ const selection = () => {
1073
+ return i18nString(Selection$1);
1074
+ };
1075
+ const view = () => {
1076
+ return i18nString(View$1);
1077
+ };
1078
+ const go = () => {
1079
+ return i18nString(Go$1);
1080
+ };
1081
+ const run = () => {
1082
+ return i18nString(Run$1);
1083
+ };
1084
+ const terminal = () => {
1085
+ return i18nString(Terminal$1);
1086
+ };
1087
+ const help = () => {
1088
+ return i18nString(Help$1);
1089
+ };
1090
+ const minimize$1 = () => {
1091
+ return i18nString(Minimize);
1092
+ };
1093
+ const maximize$1 = () => {
1094
+ return i18nString(Maximize);
1095
+ };
1096
+ const close$1 = () => {
1097
+ return i18nString(Close);
1098
+ };
1099
+
1100
+ const getTitleBarButtonsElectron = (controlsOverlayEnabled, titleBarStyleCustom) => {
1101
+ if (controlsOverlayEnabled) {
1102
+ return [];
1103
+ }
1104
+ if (titleBarStyleCustom) {
1105
+ // TODO don't render title bar buttons on windows when electron window controls overlay is enabled
1106
+ return [{
1107
+ label: minimize$1(),
1108
+ icon: 'Minimize',
1109
+ id: 'Minimize',
1110
+ onClick: 'handleClickMinimize'
1111
+ }, {
1112
+ label: maximize$1(),
1113
+ icon: 'Maximize',
1114
+ id: 'ToggleMaximize',
1115
+ onClick: 'handleClickToggleMaximize'
1116
+ }, {
1117
+ label: close$1(),
1118
+ icon: 'ChromeClose',
1119
+ id: 'Close',
1120
+ onClick: 'handleClickClose'
1121
+ }];
1122
+ }
1123
+ return [];
1124
+ };
1125
+
1126
+ const getTitleBarButtonsRemote = () => {
1127
+ return [];
1128
+ };
1129
+
1130
+ const getTitleBarButtonsWeb = () => {
1131
+ return [];
1132
+ };
1133
+
1134
+ const getTitleBarButtons = (platform, controlsOverlayEnabled, titleBarStyleCustom) => {
1135
+ switch (platform) {
1136
+ case Electron:
1137
+ return getTitleBarButtonsElectron(controlsOverlayEnabled, titleBarStyleCustom);
1138
+ case Web:
1139
+ return getTitleBarButtonsWeb();
1140
+ case Remote:
1141
+ return getTitleBarButtonsRemote();
1142
+ default:
1143
+ return [];
1144
+ }
1145
+ };
1146
+
1147
+ const {
1148
+ get: get$1,
1149
+ set: set$3,
1150
+ getCommandIds,
1151
+ registerCommands,
1152
+ wrapCommand
1153
+ } = create$2();
1154
+
1155
+ const create3 = (id, uri, x, y, width, height, platform, controlsOverlayEnabled, titleBarStyleCustom) => {
1156
+ const titleBarButtons = getTitleBarButtons(platform, controlsOverlayEnabled, titleBarStyleCustom);
1157
+ const state = {
1158
+ ...createDefaultState(),
1159
+ uid: id,
1160
+ titleBarEntries: [],
1161
+ focusedIndex: -1,
1162
+ isMenuOpen: false,
1163
+ menus: [],
1164
+ labelFontWeight: 400,
1165
+ labelFontSize: 13,
1166
+ labelFontFamily: 'system-ui, Ubuntu, Droid Sans, sans-serif',
1167
+ labelPadding: 8,
1168
+ labelLetterSpacing: 0,
1169
+ titleBarHeight: height,
1170
+ x,
1171
+ y,
1172
+ width,
1173
+ height,
1174
+ iconWidth: 30,
1175
+ platform,
1176
+ controlsOverlayEnabled,
1177
+ titleBarStyleCustom,
1178
+ titleBarButtons
1179
+ };
1180
+ set$3(id, state, state);
1181
+ return state;
1182
+ };
1183
+
998
1184
  const RenderEntries = 1;
999
1185
  const RenderFocusedIndex = 2;
1000
1186
  const RenderMenus = 3;
1001
1187
 
1002
- const diffType$2 = RenderEntries;
1003
- const isEqual$2 = (oldState, newState) => {
1188
+ const isEqual$3 = (oldState, newState) => {
1004
1189
  return oldState.titleBarEntries === newState.titleBarEntries && oldState.width === newState.width && oldState.focusedIndex === newState.focusedIndex && oldState.isMenuOpen === newState.isMenuOpen;
1005
1190
  };
1006
1191
 
1007
- const diffType$1 = RenderFocusedIndex;
1008
- const isEqual$1 = (oldState, newState) => {
1192
+ const diffType$2 = RenderFocusedIndex;
1193
+ const isEqual$2 = (oldState, newState) => {
1009
1194
  return oldState.focusedIndex === newState.focusedIndex && oldState.isMenuOpen === newState.isMenuOpen;
1010
1195
  };
1011
1196
 
1012
- const diffType = RenderMenus;
1013
- const isEqual = (oldState, newState) => {
1197
+ const diffType$1 = RenderMenus;
1198
+ const isEqual$1 = (oldState, newState) => {
1014
1199
  return oldState.menus === newState.menus;
1015
1200
  };
1016
1201
 
1017
- const modules = [isEqual$2, isEqual$1, isEqual];
1018
- const numbers = [diffType$2, diffType$1, diffType];
1202
+ const modules$1 = [isEqual$3, isEqual$2, isEqual$1];
1203
+ const numbers$1 = [RenderEntries, RenderFocusedIndex, RenderMenus];
1019
1204
 
1020
1205
  const diff = (oldState, newState) => {
1021
1206
  const diffResult = [];
1022
- for (let i = 0; i < modules.length; i++) {
1023
- const fn = modules[i];
1207
+ for (let i = 0; i < modules$1.length; i++) {
1208
+ const fn = modules$1[i];
1024
1209
  if (!fn(oldState, newState)) {
1025
- diffResult.push(numbers[i]);
1210
+ diffResult.push(numbers$1[i]);
1026
1211
  }
1027
1212
  }
1028
1213
  return diffResult;
1029
1214
  };
1030
1215
 
1031
- const {
1032
- get: get$1,
1033
- set: set$3,
1034
- getCommandIds,
1035
- registerCommands,
1036
- wrapCommand
1037
- } = create$2();
1038
-
1039
1216
  const diff2 = uid => {
1040
1217
  const {
1041
1218
  oldState,
@@ -1044,6 +1221,29 @@ const diff2 = uid => {
1044
1221
  return diff(oldState, newState);
1045
1222
  };
1046
1223
 
1224
+ const diffType = RenderEntries;
1225
+ const isEqual = (oldState, newState) => {
1226
+ return oldState.titleBarEntries === newState.titleBarEntries && oldState.width === newState.width && oldState.focusedIndex === newState.focusedIndex && oldState.isMenuOpen === newState.isMenuOpen && oldState.assetDir === newState.assetDir && oldState.titleBarIconEnabled === newState.titleBarIconEnabled && oldState.title === newState.title && oldState.titleBarTitleEnabled === newState.titleBarTitleEnabled && oldState.platform === newState.platform && oldState.controlsOverlayEnabled === newState.controlsOverlayEnabled && oldState.titleBarStyleCustom === newState.titleBarStyleCustom && oldState.titleBarButtonsEnabled === newState.titleBarButtonsEnabled && oldState.titleBarButtons === newState.titleBarButtons;
1227
+ };
1228
+
1229
+ const modules = [isEqual, isEqual$2, isEqual$1];
1230
+ const numbers = [diffType, diffType$2, diffType$1];
1231
+
1232
+ const diff3 = uid => {
1233
+ const {
1234
+ oldState,
1235
+ newState
1236
+ } = get$1(uid);
1237
+ const diffResult = [];
1238
+ for (let i = 0; i < modules.length; i++) {
1239
+ const fn = modules[i];
1240
+ if (!fn(oldState, newState)) {
1241
+ diffResult.push(numbers[i]);
1242
+ }
1243
+ }
1244
+ return diffResult;
1245
+ };
1246
+
1047
1247
  const Menu$1 = 'menu';
1048
1248
  const MenuBar = 'menubar';
1049
1249
  const MenuItem$1 = 'menuitem';
@@ -1074,6 +1274,8 @@ const DownArrow$2 = 16;
1074
1274
  const CtrlCmd = 1 << 11 >>> 0;
1075
1275
  const Shift = 1 << 10 >>> 0;
1076
1276
 
1277
+ const TitleBar$1 = 15;
1278
+
1077
1279
  const DebugWorker = 55;
1078
1280
  const RendererWorker$1 = 1;
1079
1281
 
@@ -1131,18 +1333,6 @@ const getKeyBindings$1 = () => {
1131
1333
  }];
1132
1334
  };
1133
1335
 
1134
- const emptyObject = {};
1135
- const RE_PLACEHOLDER = /\{(PH\d+)\}/g;
1136
- const i18nString = (key, placeholders = emptyObject) => {
1137
- if (placeholders === emptyObject) {
1138
- return key;
1139
- }
1140
- const replacer = (match, rest) => {
1141
- return placeholders[rest];
1142
- };
1143
- return key.replaceAll(RE_PLACEHOLDER, replacer);
1144
- };
1145
-
1146
1336
  /**
1147
1337
  * @enum {string}
1148
1338
  */
@@ -1196,16 +1386,16 @@ const moveLineDown = () => {
1196
1386
  return i18nString(UiStrings$1.MoveLineDown);
1197
1387
  };
1198
1388
 
1199
- const Edit$1 = 2;
1200
- const File$2 = 5;
1201
- const Go$1 = 6;
1202
- const Help$1 = 7;
1389
+ const Edit = 2;
1390
+ const File$1 = 5;
1391
+ const Go = 6;
1392
+ const Help = 7;
1203
1393
  const OpenRecent = 9;
1204
- const Run$1 = 10;
1205
- const Selection$1 = 11;
1206
- const Terminal$1 = 14;
1394
+ const Run = 10;
1395
+ const Selection = 11;
1396
+ const Terminal = 14;
1207
1397
  const TitleBar = 15;
1208
- const View$1 = 16;
1398
+ const View = 16;
1209
1399
 
1210
1400
  const Separator = 1;
1211
1401
  const None = 0;
@@ -1223,7 +1413,7 @@ const menuEntrySeparator = {
1223
1413
  command: ''
1224
1414
  };
1225
1415
 
1226
- const id$9 = Edit$1;
1416
+ const id$9 = Edit;
1227
1417
  const getMenuEntries$d = () => {
1228
1418
  return [{
1229
1419
  id: 'undo',
@@ -1307,11 +1497,7 @@ const exit = () => {
1307
1497
  return i18nString(UiStrings.Exit);
1308
1498
  };
1309
1499
 
1310
- const Web = 1;
1311
- const Electron = 2;
1312
- const Remote = 3;
1313
-
1314
- const id$8 = File$2;
1500
+ const id$8 = File$1;
1315
1501
  const getMenuEntries$c = platform => {
1316
1502
  const entries = [{
1317
1503
  id: 'newFile',
@@ -1366,7 +1552,7 @@ const MenuEntriesFile = {
1366
1552
  id: id$8
1367
1553
  };
1368
1554
 
1369
- const id$7 = Go$1;
1555
+ const id$7 = Go;
1370
1556
  const getMenuEntries$b = () => {
1371
1557
  return [];
1372
1558
  };
@@ -1377,25 +1563,6 @@ const MenuEntriesGo = {
1377
1563
  id: id$7
1378
1564
  };
1379
1565
 
1380
- const About = 'About';
1381
- const CheckForUpdates = 'Check For Updates';
1382
- const ClearRecentlyOpened = 'Clear Recently Opened';
1383
- const Close = 'Close';
1384
- const Edit = 'Edit';
1385
- const File$1 = 'File';
1386
- const Go = 'Go';
1387
- const Help = 'Help';
1388
- const Maximize = 'Maximize';
1389
- const Minimize = 'Minimize';
1390
- const MoreDot = 'More ...';
1391
- const NewTerminal = 'New Terminal';
1392
- const OpenProcessExplorer = 'Open Process Explorer';
1393
- const Run = 'Run';
1394
- const Selection = 'Selection';
1395
- const Terminal = 'Terminal';
1396
- const ToggleDeveloperTools = 'Toggle Developer Tools';
1397
- const View = 'View';
1398
-
1399
1566
  const toggleDeveloperTools = () => {
1400
1567
  return i18nString(ToggleDeveloperTools);
1401
1568
  };
@@ -1416,7 +1583,7 @@ const isAutoUpdateSupported = platform => {
1416
1583
  return false;
1417
1584
  };
1418
1585
 
1419
- const id$6 = Help$1;
1586
+ const id$6 = Help;
1420
1587
  const getMenuEntries$a = async platform => {
1421
1588
  const autoUpdateSupported = isAutoUpdateSupported(platform);
1422
1589
  const entries = [];
@@ -1917,7 +2084,7 @@ const MenuEntriesOpenRecent = {
1917
2084
  id: id$5
1918
2085
  };
1919
2086
 
1920
- const id$4 = Run$1;
2087
+ const id$4 = Run;
1921
2088
  const getMenuEntries$8 = () => {
1922
2089
  return [];
1923
2090
  };
@@ -1928,7 +2095,7 @@ const MenuEntriesRun = {
1928
2095
  id: id$4
1929
2096
  };
1930
2097
 
1931
- const id$3 = Selection$1;
2098
+ const id$3 = Selection;
1932
2099
  const getMenuEntries$7 = () => {
1933
2100
  return [{
1934
2101
  id: 'selectAll',
@@ -1964,7 +2131,7 @@ const MenuEntriesSelection = {
1964
2131
  id: id$3
1965
2132
  };
1966
2133
 
1967
- const id$2 = Terminal$1;
2134
+ const id$2 = Terminal;
1968
2135
  const getMenuEntries$6 = () => {
1969
2136
  return [{
1970
2137
  id: 'newTerminal',
@@ -1981,73 +2148,39 @@ const MenuEntriesTerminal = {
1981
2148
  id: id$2
1982
2149
  };
1983
2150
 
1984
- const file = () => {
1985
- return i18nString(File$1);
1986
- };
1987
- const edit = () => {
1988
- return i18nString(Edit);
1989
- };
1990
- const selection = () => {
1991
- return i18nString(Selection);
1992
- };
1993
- const view = () => {
1994
- return i18nString(View);
1995
- };
1996
- const go = () => {
1997
- return i18nString(Go);
1998
- };
1999
- const run = () => {
2000
- return i18nString(Run);
2001
- };
2002
- const terminal = () => {
2003
- return i18nString(Terminal);
2004
- };
2005
- const help = () => {
2006
- return i18nString(Help);
2007
- };
2008
- const minimize$1 = () => {
2009
- return i18nString(Minimize);
2010
- };
2011
- const maximize$1 = () => {
2012
- return i18nString(Maximize);
2013
- };
2014
- const close$1 = () => {
2015
- return i18nString(Close);
2016
- };
2017
-
2018
2151
  const getMenuEntries$5 = () => {
2019
2152
  return [{
2020
- id: File$2,
2153
+ id: File$1,
2021
2154
  label: file(),
2022
2155
  flags: SubMenu
2023
2156
  }, {
2024
- id: Edit$1,
2157
+ id: Edit,
2025
2158
  label: edit(),
2026
2159
  flags: SubMenu
2027
2160
  }, {
2028
- id: Selection$1,
2161
+ id: Selection,
2029
2162
  label: selection(),
2030
2163
  flags: SubMenu
2031
2164
  }, {
2032
- id: View$1,
2165
+ id: View,
2033
2166
  label: view(),
2034
2167
  flags: SubMenu
2035
2168
  }, {
2036
- id: Go$1,
2169
+ id: Go,
2037
2170
  label: go(),
2038
2171
  flags: SubMenu
2039
2172
  }, {
2040
- id: Run$1,
2173
+ id: Run,
2041
2174
  label: run(),
2042
2175
  keyboardShortCut: 'Alt+r',
2043
2176
  flags: SubMenu
2044
2177
  }, {
2045
- id: Terminal$1,
2178
+ id: Terminal,
2046
2179
  label: terminal(),
2047
2180
  keyboardShortCut: 'Alt+t',
2048
2181
  flags: SubMenu
2049
2182
  }, {
2050
- id: Help$1,
2183
+ id: Help,
2051
2184
  label: help(),
2052
2185
  keyboardShortCut: 'Alt+h',
2053
2186
  flags: SubMenu
@@ -2056,27 +2189,27 @@ const getMenuEntries$5 = () => {
2056
2189
 
2057
2190
  const getMenuEntries$4 = () => {
2058
2191
  return [{
2059
- id: File$2,
2192
+ id: File$1,
2060
2193
  label: file(),
2061
2194
  flags: None
2062
2195
  }, {
2063
- id: Edit$1,
2196
+ id: Edit,
2064
2197
  label: edit(),
2065
2198
  flags: None
2066
2199
  }, {
2067
- id: Selection$1,
2200
+ id: Selection,
2068
2201
  label: selection(),
2069
2202
  flags: None
2070
2203
  }, {
2071
- id: View$1,
2204
+ id: View,
2072
2205
  label: view(),
2073
2206
  flags: None
2074
2207
  }, {
2075
- id: Go$1,
2208
+ id: Go,
2076
2209
  label: go(),
2077
2210
  flags: None
2078
2211
  }, {
2079
- id: Help$1,
2212
+ id: Help,
2080
2213
  label: help(),
2081
2214
  flags: None
2082
2215
  }];
@@ -2102,7 +2235,7 @@ const MenuEntriesTitleBar = {
2102
2235
  id: id$1
2103
2236
  };
2104
2237
 
2105
- const id = View$1;
2238
+ const id = View;
2106
2239
  const getMenuEntries$2 = () => {
2107
2240
  return [];
2108
2241
  };
@@ -2126,53 +2259,6 @@ const getMenuEntries$1 = (id, platform) => {
2126
2259
  return menu.getMenuEntries(platform);
2127
2260
  };
2128
2261
 
2129
- const getTitleBarButtonsElectron = (controlsOverlayEnabled, titleBarStyleCustom) => {
2130
- if (controlsOverlayEnabled) {
2131
- return [];
2132
- }
2133
- if (titleBarStyleCustom) {
2134
- // TODO don't render title bar buttons on windows when electron window controls overlay is enabled
2135
- return [{
2136
- label: minimize$1(),
2137
- icon: 'Minimize',
2138
- id: 'Minimize',
2139
- onClick: 'handleClickMinimize'
2140
- }, {
2141
- label: maximize$1(),
2142
- icon: 'Maximize',
2143
- id: 'ToggleMaximize',
2144
- onClick: 'handleClickToggleMaximize'
2145
- }, {
2146
- label: close$1(),
2147
- icon: 'ChromeClose',
2148
- id: 'Close',
2149
- onClick: 'handleClickClose'
2150
- }];
2151
- }
2152
- return [];
2153
- };
2154
-
2155
- const getTitleBarButtonsRemote = () => {
2156
- return [];
2157
- };
2158
-
2159
- const getTitleBarButtonsWeb = () => {
2160
- return [];
2161
- };
2162
-
2163
- const getTitleBarButtons = (platform, controlsOverlayEnabled, titleBarStyleCustom) => {
2164
- switch (platform) {
2165
- case Electron:
2166
- return getTitleBarButtonsElectron(controlsOverlayEnabled, titleBarStyleCustom);
2167
- case Web:
2168
- return getTitleBarButtonsWeb();
2169
- case Remote:
2170
- return getTitleBarButtonsRemote();
2171
- default:
2172
- return [];
2173
- }
2174
- };
2175
-
2176
2262
  const MaskIconCheck = 'MaskIconCheck';
2177
2263
  const Menu = 'Menu';
2178
2264
  const MenuItem = 'MenuItem';
@@ -2634,8 +2720,11 @@ const measureTextWidths = (texts, fontWeight, fontSize, fontFamily, letterSpacin
2634
2720
  return widths;
2635
2721
  };
2636
2722
 
2723
+ const getLabel = entry => {
2724
+ return entry.label;
2725
+ };
2637
2726
  const addWidths = (entries, labelPadding, fontWeight, fontSize, fontFamily, letterSpacing) => {
2638
- const labels = entries.map(entry => entry.label);
2727
+ const labels = entries.map(getLabel);
2639
2728
  const widths = measureTextWidths(labels, fontWeight, fontSize, fontFamily, letterSpacing);
2640
2729
  const withWidths = [];
2641
2730
  for (let i = 0; i < entries.length; i++) {
@@ -2650,8 +2739,34 @@ const addWidths = (entries, labelPadding, fontWeight, fontSize, fontFamily, lett
2650
2739
  return withWidths;
2651
2740
  };
2652
2741
 
2742
+ const loadContent2 = async state => {
2743
+ const {
2744
+ platform,
2745
+ controlsOverlayEnabled,
2746
+ titleBarStyleCustom,
2747
+ labelFontFamily,
2748
+ labelFontSize,
2749
+ labelFontWeight,
2750
+ labelLetterSpacing,
2751
+ labelPadding
2752
+ } = state;
2753
+ const titleBarEntries = await getMenuEntries(TitleBar$1);
2754
+ const withWidths = addWidths(titleBarEntries, labelPadding, labelFontWeight, labelFontSize, labelFontFamily, labelLetterSpacing);
2755
+ const buttons = getTitleBarButtons(platform, controlsOverlayEnabled, titleBarStyleCustom);
2756
+ const title = 'test';
2757
+ return {
2758
+ ...state,
2759
+ titleBarEntries: withWidths,
2760
+ buttons,
2761
+ title
2762
+ };
2763
+ };
2764
+
2653
2765
  const loadContent = async (state, titleBarEntries) => {
2654
2766
  const {
2767
+ platform,
2768
+ controlsOverlayEnabled,
2769
+ titleBarStyleCustom,
2655
2770
  labelFontFamily,
2656
2771
  labelFontSize,
2657
2772
  labelFontWeight,
@@ -2659,9 +2774,13 @@ const loadContent = async (state, titleBarEntries) => {
2659
2774
  labelPadding
2660
2775
  } = state;
2661
2776
  const withWidths = addWidths(titleBarEntries, labelPadding, labelFontWeight, labelFontSize, labelFontFamily, labelLetterSpacing);
2777
+ const buttons = getTitleBarButtons(platform, controlsOverlayEnabled, titleBarStyleCustom);
2778
+ const title = 'test';
2662
2779
  return {
2663
2780
  ...state,
2664
- titleBarEntries: withWidths
2781
+ titleBarEntries: withWidths,
2782
+ buttons,
2783
+ title
2665
2784
  };
2666
2785
  };
2667
2786
 
@@ -3263,6 +3382,85 @@ const render2 = async (uid, diffResult) => {
3263
3382
  return commands;
3264
3383
  };
3265
3384
 
3385
+ const getIcon = assetDir => {
3386
+ return `${assetDir}/icons/icon.svg`;
3387
+ };
3388
+
3389
+ const getTitleBarVirtualDom = state => {
3390
+ const {
3391
+ titleBarEntries,
3392
+ width,
3393
+ focusedIndex,
3394
+ isMenuOpen,
3395
+ assetDir,
3396
+ title,
3397
+ titleBarButtons
3398
+ } = state;
3399
+ const dom = [];
3400
+
3401
+ // Add icon if enabled
3402
+ if (state.titleBarIconEnabled) {
3403
+ const iconSrc = getIcon(assetDir);
3404
+ const iconDom = getTitleBarIconVirtualDom(iconSrc);
3405
+ dom.push(...iconDom);
3406
+ }
3407
+
3408
+ // Add menu bar if enabled
3409
+ if (state.titleBarMenuBarEnabled) {
3410
+ const visibleEntries = getVisibleTitleBarEntries(titleBarEntries, width, focusedIndex, isMenuOpen);
3411
+ const menuBarDom = getTitleBarMenuBarVirtualDom(visibleEntries, focusedIndex);
3412
+ dom.push(...menuBarDom);
3413
+ }
3414
+
3415
+ // Add title if enabled
3416
+ if (state.titleBarTitleEnabled) {
3417
+ const titleDom = getTitleVirtualDom(title);
3418
+ dom.push(...titleDom);
3419
+ }
3420
+
3421
+ // Add buttons if enabled
3422
+ if (state.titleBarButtonsEnabled) {
3423
+ const buttonsDom = getTitleBarButtonsVirtualDom(titleBarButtons);
3424
+ dom.push(...buttonsDom);
3425
+ }
3426
+ return dom;
3427
+ };
3428
+
3429
+ const renderTitleBar = (oldState, newState) => {
3430
+ const dom = getTitleBarVirtualDom(newState);
3431
+ return ['Viewlet.setDom2', newState.uid, dom];
3432
+ };
3433
+
3434
+ const getRenderer3 = diffType => {
3435
+ switch (diffType) {
3436
+ case RenderEntries:
3437
+ return renderTitleBar;
3438
+ case RenderFocusedIndex:
3439
+ return renderFocusedIndex;
3440
+ case RenderMenus:
3441
+ return renderMenus;
3442
+ default:
3443
+ throw new Error('unknown renderer');
3444
+ }
3445
+ };
3446
+
3447
+ const render3 = async (uid, diffResult) => {
3448
+ const {
3449
+ oldState,
3450
+ newState
3451
+ } = get$1(uid);
3452
+ set$3(uid, newState, newState);
3453
+ const commands = [];
3454
+ for (const item of diffResult) {
3455
+ const fn = getRenderer3(item);
3456
+ const result = fn(oldState, newState);
3457
+ if (result.length > 0) {
3458
+ commands.push(result);
3459
+ }
3460
+ }
3461
+ return commands;
3462
+ };
3463
+
3266
3464
  const renderEventListeners = () => {
3267
3465
  return [{
3268
3466
  name: HandleClickMinimize,
@@ -3303,34 +3501,6 @@ const saveState = uid => {
3303
3501
  };
3304
3502
  };
3305
3503
 
3306
- const DEFAULT_UID = 1;
3307
- const createDefaultState = (uid = DEFAULT_UID) => ({
3308
- assetDir: '',
3309
- focusedIndex: -1,
3310
- height: 30,
3311
- iconWidth: 30,
3312
- isMenuOpen: false,
3313
- itleBarIconEnabled: true,
3314
- labelFontFamily: 'system-ui, Ubuntu, Droid Sans, sans-serif',
3315
- labelFontSize: 13,
3316
- labelFontWeight: 400,
3317
- labelLetterSpacing: 0,
3318
- labelPadding: 8,
3319
- menus: [],
3320
- titleBarButtonsEnabled: true,
3321
- titleBarButtonsWidth: 90,
3322
- titleBarEntries: [],
3323
- titleBarHeight: 30,
3324
- titleBarIconWidth: 30,
3325
- titleBarMenuBarEnabled: true,
3326
- titleBarTitleEnabled: true,
3327
- uid,
3328
- width: 800,
3329
- x: 0,
3330
- y: 0,
3331
- title: ''
3332
- });
3333
-
3334
3504
  const create = (id, uri, x, y, width, height) => {
3335
3505
  const state = {
3336
3506
  ...createDefaultState(),
@@ -3835,13 +4005,20 @@ const toggleMenu = async state => {
3835
4005
  };
3836
4006
 
3837
4007
  const commandMap = {
4008
+ 'TitleBar.create3': create3,
4009
+ 'TitleBar.diff3': diff3,
3838
4010
  'TitleBar.getButtonsVirtualDom': getTitleBarButtonsVirtualDom,
3839
4011
  'TitleBar.getIconVirtualDom': getTitleBarIconVirtualDom,
3840
4012
  'TitleBar.getMenuEntries': getMenuEntries$1,
3841
4013
  'TitleBar.getMenuIds': getMenuIds,
3842
4014
  'TitleBar.getTitleVirtualDom': getTitleVirtualDom,
4015
+ 'TitleBar.loadContent2': wrapCommand(loadContent2),
3843
4016
  'TitleBar.handleButtonsClick': handleClick$1,
4017
+ 'TitleBar.handleClickClose': wrapCommand(handleClickClose),
4018
+ 'TitleBar.handleClickMinimize': wrapCommand(handleClickMinimize),
4019
+ 'TitleBar.handleClickToggleMaximize': wrapCommand(handleClickToggleMaximize),
3844
4020
  'TitleBar.handleContextMenu': handleContextMenu,
4021
+ 'TitleBar.render3': render3,
3845
4022
  'TitleBar.renderEventListeners': renderEventListeners,
3846
4023
  'TitleBarMenuBar.closeMenu': closeMenu,
3847
4024
  'TitleBarMenuBar.create': create,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lvce-editor/title-bar-worker",
3
- "version": "2.9.0",
3
+ "version": "2.11.0",
4
4
  "description": "Title Bar Worker",
5
5
  "repository": {
6
6
  "type": "git",