sunrize 2.1.8 → 2.1.10

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.
Files changed (62) hide show
  1. package/package.json +22 -14
  2. package/src/Application/ActionKeys.js +1 -1
  3. package/src/Application/DataStorage.js +1 -1
  4. package/src/Application/Document.js +1 -1
  5. package/src/Application/Footer.js +15 -15
  6. package/src/Application/Hierarchy.js +1 -1
  7. package/src/Application/Registry.js +1 -1
  8. package/src/Application/Selection.js +1 -1
  9. package/src/Application/Sidebar.js +16 -16
  10. package/src/Application/Tabs.js +2 -2
  11. package/src/Bits/MimeTypes.js +1 -1
  12. package/src/Controls/AnimationPropertiesPopover.js +3 -3
  13. package/src/Controls/Dialog.js +2 -2
  14. package/src/Controls/EditNodePopover.js +1 -1
  15. package/src/Controls/EditUserDefinedFieldPopover.js +13 -45
  16. package/src/Controls/ExportNodePopover.js +1 -1
  17. package/src/Controls/ImportNodePopover.js +1 -1
  18. package/src/Controls/RenameNodeInput.js +1 -1
  19. package/src/Controls/Splitter.js +2 -2
  20. package/src/Controls/Tabs.js +25 -25
  21. package/src/Controls/TexturePreviewPopover.js +3 -3
  22. package/src/Controls/VideoPreviewPopover.js +3 -3
  23. package/src/Editors/AnimationEditor.js +10 -10
  24. package/src/Editors/AnimationMemberList.js +1 -1
  25. package/src/Editors/FileManager.js +7 -7
  26. package/src/Editors/Library.js +2 -2
  27. package/src/Editors/OutlineEditor.js +37 -37
  28. package/src/Editors/OutlineRouteGraph.js +2 -2
  29. package/src/Editors/OutlineView.js +99 -97
  30. package/src/Editors/Panel.js +17 -10
  31. package/src/Editors/SceneProperties.js +8 -8
  32. package/src/Editors/ScriptEditor.js +7 -7
  33. package/src/Editors/Units.js +1 -1
  34. package/src/Parser/AudioParser.js +1 -1
  35. package/src/Parser/ImageParser.js +1 -1
  36. package/src/Parser/VideoParser.js +1 -1
  37. package/src/Tools/CADGeometry/CADAssemblyTool.js +4 -4
  38. package/src/Tools/CADGeometry/CADFaceTool.js +4 -4
  39. package/src/Tools/CADGeometry/CADLayerTool.js +4 -4
  40. package/src/Tools/CADGeometry/CADPartTool.js +4 -4
  41. package/src/Tools/Core/X3DBaseTool.js +1 -1
  42. package/src/Tools/Core/X3DNodeTool.js +3 -1
  43. package/src/Tools/Core/X3DPrototypeInstanceTool.js +1 -1
  44. package/src/Tools/Grouping/GroupTool.js +1 -1
  45. package/src/Tools/Grouping/StaticGroupTool.js +4 -4
  46. package/src/Tools/Grouping/SwitchTool.js +4 -4
  47. package/src/Tools/Grouping/TransformTool.js +4 -4
  48. package/src/Tools/Grouping/X3DTransformNodeTool.js +1 -1
  49. package/src/Tools/HAnim/HAnimHumanoidTool.js +4 -4
  50. package/src/Tools/HAnim/HAnimJointTool.js +4 -4
  51. package/src/Tools/HAnim/HAnimSegmentTool.js +4 -4
  52. package/src/Tools/HAnim/HAnimSiteTool.js +4 -4
  53. package/src/Tools/Layering/LayerTool.js +3 -3
  54. package/src/Tools/Layering/ViewportTool.js +1 -1
  55. package/src/Tools/Networking/AnchorTool.js +4 -4
  56. package/src/Tools/Networking/InlineGeometryTool.js +1 -1
  57. package/src/Tools/Networking/InlineTool.js +4 -4
  58. package/src/Undo/Editor.js +68 -68
  59. package/src/Undo/UndoManager.js +1 -1
  60. package/src/assets/X3DUOM.xml +30 -50
  61. package/src/assets/images/OutlineEditor/Fields/MFQuaternion.svg +199 -0
  62. package/src/assets/images/OutlineEditor/Fields/SFQuaternion.svg +199 -0
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "sunrize",
3
3
  "productName": "Sunrize X3D Editor",
4
- "version": "2.1.8",
4
+ "version": "2.1.10",
5
5
  "description": "Sunrize — A Multi-Platform X3D Editor",
6
6
  "main": "src/main.js",
7
7
  "bin": {
@@ -21,13 +21,13 @@
21
21
  "premake": "npm i -D electron",
22
22
  "make": "electron-forge make",
23
23
  "postmake": "npm i -P electron",
24
- "publish-to-github": "node build/publish-to-github.js",
24
+ "publish:github": "node build/publish-to-github.js",
25
25
  "predocs": "rm -f -r docs/_site/",
26
26
  "docs": "cd docs && bundle exec jekyll serve --ssl-key ssl/server.key --ssl-cert ssl/server.crt --incremental --host=`ipconfig getifaddr en0`",
27
- "predocs-install": "cd docs && ln -s -f ../../ssl ./",
28
- "docs-install": "cd docs && gem install bundler && bundle install",
29
- "docs-update": "cd docs && bundle update",
30
- "merge-development": "sh build/merge-development.sh",
27
+ "predocs:install": "cd docs && ln -s -f ../../ssl ./",
28
+ "docs:install": "cd docs && gem install bundler && bundle install",
29
+ "docs:update": "cd docs && bundle update",
30
+ "merge:development": "sh build/merge-development.sh",
31
31
  "make-x_ite-for-sunrize": "sh build/make-x_ite-for-sunrize.sh",
32
32
  "loading-gif": "node build/loading-gif.js"
33
33
  },
@@ -37,6 +37,7 @@
37
37
  },
38
38
  "keywords": [
39
39
  "3D",
40
+ "3DGS",
40
41
  "editor",
41
42
  "electron",
42
43
  "GLB",
@@ -46,6 +47,8 @@
46
47
  "node",
47
48
  "npx",
48
49
  "PLY",
50
+ "SOG",
51
+ "SPZ",
49
52
  "STL",
50
53
  "SVG",
51
54
  "VRM",
@@ -88,15 +91,15 @@
88
91
  "@electron-forge/maker-zip": "^7.11.2",
89
92
  "@electron-forge/publisher-github": "^7.11.2",
90
93
  "@eslint/js": "^10.0.1",
91
- "eslint": "^10.5.0",
92
- "globals": "^17.6.0",
94
+ "eslint": "^10.6.0",
95
+ "globals": "^17.7.0",
93
96
  "shell-tools": "^1.1.9"
94
97
  },
95
98
  "dependencies": {
96
99
  "@vscode/codicons": "^0.0.45",
97
100
  "capitalize": "^2.0.4",
98
101
  "console": "^0.7.2",
99
- "electron": "43.0.0-beta.3",
102
+ "electron": "^43.0.0",
100
103
  "electron-prompt": "^1.7.0",
101
104
  "electron-squirrel-startup": "^1.0.1",
102
105
  "electron-tabs": "^1.0.4",
@@ -105,7 +108,7 @@
105
108
  "jquery-ui-dist": "^1.13.3",
106
109
  "jstree": "^3.3.17",
107
110
  "material-icons": "^1.13.14",
108
- "material-symbols": "^0.45.2",
111
+ "material-symbols": "^0.45.4",
109
112
  "md5": "^2.3.0",
110
113
  "mime-types": "^3.0.2",
111
114
  "monaco-editor": "^0.55.1",
@@ -114,11 +117,16 @@
114
117
  "spectrum-colorpicker2": "^2.0.10",
115
118
  "string-similarity": "^4.0.4",
116
119
  "tweakpane": "^4.0.5",
117
- "update-electron-app": "^3.2.0",
118
- "x_ite": "^15.1.7",
120
+ "update-electron-app": "^3.3.0",
121
+ "x_ite": "^15.1.9",
119
122
  "x_ite-off-parser": "^1.2.4",
120
- "x_ite-sog-parser": "^1.2.4",
121
- "x_ite-spz-parser": "^1.3.3",
123
+ "x_ite-sog-parser": "^2.0.0",
124
+ "x_ite-spz-parser": "^2.0.0",
122
125
  "x3d-traverse": "^2.0.1"
126
+ },
127
+ "allowScripts": {
128
+ "fs-xattr@0.3.1": true,
129
+ "macos-alias@0.2.12": true,
130
+ "electron-winstaller@5.4.3": true
123
131
  }
124
132
  }
@@ -114,4 +114,4 @@ module .exports = new class ActionKeys
114
114
  for (const callback of this .#interests .values ())
115
115
  callback (this .value);
116
116
  }
117
- }
117
+ };
@@ -75,7 +75,7 @@ const handler =
75
75
 
76
76
  return Object .getOwnPropertyDescriptor (storage, namespace + key);
77
77
  },
78
- }
78
+ };
79
79
 
80
80
  module .exports = class DataStorage
81
81
  {
@@ -278,7 +278,7 @@ module .exports = class Document extends Interface
278
278
 
279
279
  // Active (Focused) Element
280
280
 
281
- activeElement = null
281
+ activeElement = null;
282
282
 
283
283
  onfocus ()
284
284
  {
@@ -1,26 +1,26 @@
1
- "use strict"
1
+ "use strict";
2
2
 
3
3
  const
4
4
  Tabs = require ("../Controls/Tabs"),
5
5
  Console = require ("../Editors/Console"),
6
- _ = require ("./GetText")
6
+ _ = require ("./GetText");
7
7
 
8
8
  module .exports = class Footer extends Tabs
9
9
  {
10
10
  constructor (element)
11
11
  {
12
- super (element, "bottom")
12
+ super (element, "bottom");
13
13
 
14
- this .setup ()
14
+ this .setup ();
15
15
  }
16
16
 
17
17
  addTabs ()
18
18
  {
19
- this .addTextTab ("console", _("Console"))
20
- this .addTextTab ("script-editor", _("Script Editor"))
21
- this .addTextTab ("animation-editor", _("Animation Editor"))
19
+ this .addTextTab ("console", _("Console"));
20
+ this .addTextTab ("script-editor", _("Script Editor"));
21
+ this .addTextTab ("animation-editor", _("Animation Editor"));
22
22
 
23
- this .console = new Console (this .getPanel ("console"))
23
+ this .console = new Console (this .getPanel ("console"));
24
24
  }
25
25
 
26
26
  initTab (panel)
@@ -29,18 +29,18 @@ module .exports = class Footer extends Tabs
29
29
  {
30
30
  case "script-editor":
31
31
  {
32
- const ScriptEditor = require ("../Editors/ScriptEditor")
32
+ const ScriptEditor = require ("../Editors/ScriptEditor");
33
33
 
34
- this .scriptEditor = new ScriptEditor (panel)
35
- break
34
+ this .scriptEditor = new ScriptEditor (panel);
35
+ break;
36
36
  }
37
37
  case "animation-editor":
38
38
  {
39
- const AnimationEditor = require ("../Editors/AnimationEditor")
39
+ const AnimationEditor = require ("../Editors/AnimationEditor");
40
40
 
41
- this .animationEditor = new AnimationEditor (panel)
42
- break
41
+ this .animationEditor = new AnimationEditor (panel);
42
+ break;
43
43
  }
44
44
  }
45
45
  }
46
- }
46
+ };
@@ -274,4 +274,4 @@ module .exports = new class Hierarchy extends Interface
274
274
  for (const callback of this .#interest .values ())
275
275
  callback (this .nodes);
276
276
  }
277
- }
277
+ };
@@ -40,4 +40,4 @@ module .exports = class Registry
40
40
  fs .unlinkSync (tmp);
41
41
  });
42
42
  }
43
- }
43
+ };
@@ -137,4 +137,4 @@ module .exports = new class Selection extends Interface
137
137
  for (const callback of this .#interest .values ())
138
138
  callback (this .nodes);
139
139
  }
140
- }
140
+ };
@@ -1,35 +1,35 @@
1
- "use strict"
1
+ "use strict";
2
2
 
3
3
  const
4
4
  OutlineEditor = require ("../Editors/OutlineEditor"),
5
5
  Tabs = require ("../Controls/Tabs"),
6
- _ = require ("./GetText")
6
+ _ = require ("./GetText");
7
7
 
8
8
  module .exports = class Sidebar extends Tabs
9
9
  {
10
10
  constructor (element)
11
11
  {
12
- super (element, "bottom")
12
+ super (element, "bottom");
13
13
 
14
- this .setup ()
14
+ this .setup ();
15
15
  }
16
16
 
17
17
  addTabs ()
18
18
  {
19
19
  if (process .env .SUNRISE_ENVIRONMENT === "DEVELOPMENT")
20
- this .addIconTab ("file-manager", "description", _("File Manager"))
20
+ this .addIconTab ("file-manager", "description", _("File Manager"));
21
21
 
22
- this .addIconTab ("outline-editor", "list", _("Outline Editor"))
22
+ this .addIconTab ("outline-editor", "list", _("Outline Editor"));
23
23
 
24
24
  if (process .env .SUNRISE_ENVIRONMENT === "DEVELOPMENT")
25
- this .addIconTab ("node-inspector", "visibility", _("Node Inspector"))
25
+ this .addIconTab ("node-inspector", "visibility", _("Node Inspector"));
26
26
 
27
- this .outlineEditor = new OutlineEditor (this .getPanel ("outline-editor"))
27
+ this .outlineEditor = new OutlineEditor (this .getPanel ("outline-editor"));
28
28
  }
29
29
 
30
30
  configure ()
31
31
  {
32
- super .configure ({ active: 1 })
32
+ super .configure ({ active: 1 });
33
33
  }
34
34
 
35
35
  initTab (panel)
@@ -38,19 +38,19 @@ module .exports = class Sidebar extends Tabs
38
38
  {
39
39
  case "file-manager":
40
40
  {
41
- const FileManager = require ("../Editors/FileManager")
41
+ const FileManager = require ("../Editors/FileManager");
42
42
 
43
- this .fileManger = new FileManager (panel)
44
- break
43
+ this .fileManger = new FileManager (panel);
44
+ break;
45
45
  }
46
46
  case "node-inspector":
47
47
  {
48
- const NodeInspector = require ("../Editors/NodeInspector")
48
+ const NodeInspector = require ("../Editors/NodeInspector");
49
49
 
50
- this .nodeInspector = new NodeInspector (panel)
51
- break
50
+ this .nodeInspector = new NodeInspector (panel);
51
+ break;
52
52
  }
53
53
  }
54
54
  }
55
- }
55
+ };
56
56
 
@@ -139,7 +139,7 @@ module .exports = new class Tabs
139
139
  config [key] = undefined;
140
140
 
141
141
  return false;
142
- })
142
+ });
143
143
 
144
144
  for (const fileURL of openTabs .filter (fileURL => !fileURL .startsWith ("id:")))
145
145
  electron .ipcRenderer .send ("add-recent-location", fileURL);
@@ -227,7 +227,7 @@ module .exports = new class Tabs
227
227
  if (activate)
228
228
  {
229
229
  const tab = this .getTabs () .find (tab => urls .includes (tab .url))
230
- ?? this .tabs .getTabByPosition (this .tabs .getTabs () .length - 1)
230
+ ?? this .tabs .getTabByPosition (this .tabs .getTabs () .length - 1);
231
231
 
232
232
  tab .activate ();
233
233
  }
@@ -4,7 +4,7 @@ mime .add = function (mimeType, extensions)
4
4
  {
5
5
  this .types [extensions [0]] = mimeType;
6
6
  this .extensions [mimeType] = extensions;
7
- }
7
+ };
8
8
 
9
9
  mime .add ("image/jpeg", ["jpg"]);
10
10
  mime .add ("image/ktx2", ["ktx2"]);
@@ -69,7 +69,7 @@ $.fn.animationPropertiesPopover = function (editor)
69
69
 
70
70
  function updateTime ()
71
71
  {
72
- const duration = parseInt (durationInput .val ())
72
+ const duration = parseInt (durationInput .val ());
73
73
  const frameRate = parseInt (frameRateInput .val ());
74
74
 
75
75
  timeText .text (util .format (_("Duration: %s"), editor .formatFrames (duration, frameRate)));
@@ -93,13 +93,13 @@ $.fn.animationPropertiesPopover = function (editor)
93
93
 
94
94
  applyButton .trigger ("click");
95
95
  api .toggle (false);
96
- })
96
+ });
97
97
 
98
98
  applyButton .on ("click", (event) =>
99
99
  {
100
100
  api .toggle (false);
101
101
  editor .resizeAnimation (parseInt (durationInput .val ()), parseInt (frameRateInput .val ()), scaleInput .prop ("checked"));
102
- })
102
+ });
103
103
  },
104
104
  },
105
105
  });
@@ -1,8 +1,8 @@
1
- "use strict"
1
+ "use strict";
2
2
 
3
3
  const
4
4
  $ = require ("jquery"),
5
- Interface = require ("../Application/Interface")
5
+ Interface = require ("../Application/Interface");
6
6
 
7
7
  module .exports = class Dialog extends Interface
8
8
  {
@@ -65,7 +65,7 @@ $.fn.editNodePopover = function (node)
65
65
  return;
66
66
 
67
67
  api .toggle (false);
68
- })
68
+ });
69
69
 
70
70
  setTimeout (() => nameInput .trigger ("select"), 1);
71
71
  },
@@ -35,56 +35,24 @@ $.fn.editUserDefinedFieldPopover = function (executionContext, node, field = -1)
35
35
  const typeNameMenu = $("<select></select>")
36
36
  .appendTo (content);
37
37
 
38
- $("<optgroup></optgroup>")
38
+ const singleGroup = $("<optgroup></optgroup>")
39
39
  .attr ("label", "Single Fields")
40
- .append ($("<option></option>") .text ("SFBool"))
41
- .append ($("<option></option>") .text ("SFColor"))
42
- .append ($("<option></option>") .text ("SFColorRGBA"))
43
- .append ($("<option></option>") .text ("SFDouble"))
44
- .append ($("<option></option>") .text ("SFFloat"))
45
- .append ($("<option></option>") .text ("SFImage"))
46
- .append ($("<option></option>") .text ("SFInt32"))
47
- .append ($("<option></option>") .text ("SFMatrix3d"))
48
- .append ($("<option></option>") .text ("SFMatrix3f"))
49
- .append ($("<option></option>") .text ("SFMatrix4d"))
50
- .append ($("<option></option>") .text ("SFMatrix4f"))
51
- .append ($("<option></option>") .text ("SFNode"))
52
- .append ($("<option></option>") .text ("SFRotation"))
53
- .append ($("<option></option>") .text ("SFString"))
54
- .append ($("<option></option>") .text ("SFTime"))
55
- .append ($("<option></option>") .text ("SFVec2d"))
56
- .append ($("<option></option>") .text ("SFVec2f"))
57
- .append ($("<option></option>") .text ("SFVec3d"))
58
- .append ($("<option></option>") .text ("SFVec3f"))
59
- .append ($("<option></option>") .text ("SFVec4d"))
60
- .append ($("<option></option>") .text ("SFVec4f"))
61
40
  .appendTo (typeNameMenu);
62
41
 
63
- $("<optgroup></optgroup>")
42
+ Object .keys (X3D .Fields)
43
+ .filter (typeName => typeName .startsWith ("SF"))
44
+ .sort ()
45
+ .forEach (typeName => singleGroup .append ($("<option></option>") .text (typeName)));
46
+
47
+ const multiGroup = $("<optgroup></optgroup>")
64
48
  .attr ("label", "Multi Fields")
65
- .append ($("<option></option>") .text ("MFBool"))
66
- .append ($("<option></option>") .text ("MFColor"))
67
- .append ($("<option></option>") .text ("MFColorRGBA"))
68
- .append ($("<option></option>") .text ("MFDouble"))
69
- .append ($("<option></option>") .text ("MFFloat"))
70
- .append ($("<option></option>") .text ("MFImage"))
71
- .append ($("<option></option>") .text ("MFInt32"))
72
- .append ($("<option></option>") .text ("MFMatrix3d"))
73
- .append ($("<option></option>") .text ("MFMatrix3f"))
74
- .append ($("<option></option>") .text ("MFMatrix4d"))
75
- .append ($("<option></option>") .text ("MFMatrix4f"))
76
- .append ($("<option></option>") .text ("MFNode"))
77
- .append ($("<option></option>") .text ("MFRotation"))
78
- .append ($("<option></option>") .text ("MFString"))
79
- .append ($("<option></option>") .text ("MFTime"))
80
- .append ($("<option></option>") .text ("MFVec2d"))
81
- .append ($("<option></option>") .text ("MFVec2f"))
82
- .append ($("<option></option>") .text ("MFVec3d"))
83
- .append ($("<option></option>") .text ("MFVec3f"))
84
- .append ($("<option></option>") .text ("MFVec4d"))
85
- .append ($("<option></option>") .text ("MFVec4f"))
86
49
  .appendTo (typeNameMenu);
87
50
 
51
+ Object .keys (X3D .Fields)
52
+ .filter (typeName => typeName .startsWith ("MF"))
53
+ .sort ()
54
+ .forEach (typeName => multiGroup .append ($("<option></option>") .text (typeName)));
55
+
88
56
  const accessTypeMenu = $("<select></select>")
89
57
  .append ($("<option></option>") .text ("initializeOnly"))
90
58
  .append ($("<option></option>") .text ("inputOnly"))
@@ -285,5 +253,5 @@ $.fn.editUserDefinedFieldPopover = function (executionContext, node, field = -1)
285
253
  }
286
254
 
287
255
  return this;
288
- }
256
+ };
289
257
 
@@ -78,7 +78,7 @@ $.fn.exportNodePopover = function (node, oldExportedName, oldDescription = "")
78
78
  setTimeout (() => nameInput .trigger ("select"), 1);
79
79
  },
80
80
  },
81
- })
81
+ });
82
82
 
83
83
  return this;
84
84
  };
@@ -78,7 +78,7 @@ $.fn.importNodePopover = function (inlineNode, exportedName, oldImportedName, ol
78
78
  setTimeout (() => nameInput .trigger ("select"), 1);
79
79
  },
80
80
  },
81
- })
81
+ });
82
82
 
83
83
  return this;
84
84
  };
@@ -113,7 +113,7 @@ $.fn.renameNodeInput = function (node)
113
113
  else
114
114
  Editor .removeNamedNode (executionContext, node);
115
115
  }
116
- })
116
+ });
117
117
 
118
118
  return this;
119
119
  };
@@ -1,4 +1,4 @@
1
- "use strict"
1
+ "use strict";
2
2
 
3
3
  const
4
4
  $ = require ("jquery"),
@@ -109,4 +109,4 @@ module .exports = class Splitter extends Interface
109
109
 
110
110
  this .splitter .trigger ("position");
111
111
  }
112
- }
112
+ };
@@ -1,54 +1,54 @@
1
- "use strict"
1
+ "use strict";
2
2
 
3
3
  const
4
4
  $ = require ("jquery"),
5
- Interface = require ("../Application/Interface")
5
+ Interface = require ("../Application/Interface");
6
6
 
7
7
  module .exports = class Tabs extends Interface
8
8
  {
9
9
  constructor (element, orientation)
10
10
  {
11
- super (`Sunrize.Tabs.${element .attr ("id")}.`)
11
+ super (`Sunrize.Tabs.${element .attr ("id")}.`);
12
12
 
13
- this .element = element
14
- this .orientation = orientation
15
- this .tabs = $("<ul></ul>") .appendTo (this .element)
13
+ this .element = element;
14
+ this .orientation = orientation;
15
+ this .tabs = $("<ul></ul>") .appendTo (this .element);
16
16
  }
17
17
 
18
18
  initialize ()
19
19
  {
20
- this .addTabs ()
20
+ this .addTabs ();
21
21
 
22
- this .element .tabs ()
23
- this .element .tabs ("option", "classes.ui-tabs", this .orientation)
24
- this .element .on ("tabsactivate", () => this .tabActivated ())
22
+ this .element .tabs ();
23
+ this .element .tabs ("option", "classes.ui-tabs", this .orientation);
24
+ this .element .on ("tabsactivate", () => this .tabActivated ());
25
25
  }
26
26
 
27
27
  addTabs () { }
28
28
 
29
29
  configure (defaults = { })
30
30
  {
31
- this .config .file .setDefaultValues (Object .assign ({ active: 0 }, defaults))
31
+ this .config .file .setDefaultValues (Object .assign ({ active: 0 }, defaults));
32
32
 
33
33
  if (this .element .tabs ("option", "active") === this .config .file .active)
34
- this .tabActivated ()
34
+ this .tabActivated ();
35
35
  else
36
- this .element .tabs ("option", "active", this .config .file .active)
36
+ this .element .tabs ("option", "active", this .config .file .active);
37
37
  }
38
38
 
39
39
  tabActivated ()
40
40
  {
41
41
  const
42
42
  active = this .element .tabs ("option", "active"),
43
- panel = $(this .element .find (`.tabs-panel`) .get (active))
43
+ panel = $(this .element .find (`.tabs-panel`) .get (active));
44
44
 
45
- this .config .file .active = active
45
+ this .config .file .active = active;
46
46
 
47
47
  if (panel .data ("Tabs.initialized"))
48
- return
48
+ return;
49
49
 
50
- panel .data ("Tabs.initialized", true)
51
- this .initTab (panel)
50
+ panel .data ("Tabs.initialized", true);
51
+ this .initTab (panel);
52
52
  }
53
53
 
54
54
  addTextTab (id, title)
@@ -58,9 +58,9 @@ module .exports = class Tabs extends Interface
58
58
  .attr ("href", `#${id}-tab`)
59
59
  .attr ("title", title)
60
60
  .text (title))
61
- .appendTo (this .tabs)
61
+ .appendTo (this .tabs);
62
62
 
63
- this .addPanel (id)
63
+ this .addPanel (id);
64
64
  }
65
65
 
66
66
  addIconTab (id, icon, title)
@@ -72,9 +72,9 @@ module .exports = class Tabs extends Interface
72
72
  .append ($("<span></span>")
73
73
  .addClass ("material-icons")
74
74
  .text (icon)))
75
- .appendTo (this .tabs)
75
+ .appendTo (this .tabs);
76
76
 
77
- this .addPanel (id)
77
+ this .addPanel (id);
78
78
  }
79
79
 
80
80
  addPanel (id)
@@ -84,13 +84,13 @@ module .exports = class Tabs extends Interface
84
84
  .append ($("<div></div>")
85
85
  .attr ("id", id)
86
86
  .addClass (["tabs-panel", id]))
87
- .appendTo (this .element)
87
+ .appendTo (this .element);
88
88
  }
89
89
 
90
90
  getPanel (id)
91
91
  {
92
- return this .element .find (`.tabs-panel.${id}`)
92
+ return this .element .find (`.tabs-panel.${id}`);
93
93
  }
94
94
 
95
95
  initTab (panel) { }
96
- }
96
+ };
@@ -83,17 +83,17 @@ $.fn.texturePreviewPopover = async function (node)
83
83
  {
84
84
  case X3D .X3DConstants .NOT_STARTED_STATE:
85
85
  {
86
- sizes .text (_("Loading not started."))
86
+ sizes .text (_("Loading not started."));
87
87
  break;
88
88
  }
89
89
  case X3D .X3DConstants .IN_PROGRESS_STATE:
90
90
  {
91
- sizes .text (_("Loading in progress."))
91
+ sizes .text (_("Loading in progress."));
92
92
  break;
93
93
  }
94
94
  case X3D .X3DConstants .FAILED_STATE:
95
95
  {
96
- sizes .text (_("Loading failed."))
96
+ sizes .text (_("Loading failed."));
97
97
  break;
98
98
  }
99
99
  case X3D .X3DConstants .COMPLETE_STATE:
@@ -49,17 +49,17 @@ $.fn.videoPreviewPopover = async function (node)
49
49
  {
50
50
  case X3D .X3DConstants .NOT_STARTED_STATE:
51
51
  {
52
- sizes .text (_("Loading not started."))
52
+ sizes .text (_("Loading not started."));
53
53
  break;
54
54
  }
55
55
  case X3D .X3DConstants .IN_PROGRESS_STATE:
56
56
  {
57
- sizes .text (_("Loading in progress."))
57
+ sizes .text (_("Loading in progress."));
58
58
  break;
59
59
  }
60
60
  case X3D .X3DConstants .FAILED_STATE:
61
61
  {
62
- sizes .text (_("Loading failed."))
62
+ sizes .text (_("Loading failed."));
63
63
  break;
64
64
  }
65
65
  case X3D .X3DConstants .COMPLETE_STATE: