bruce-cesium 2.2.6 → 2.2.7

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 (52) hide show
  1. package/dist/bruce-cesium.es5.js +3289 -107
  2. package/dist/bruce-cesium.es5.js.map +1 -1
  3. package/dist/bruce-cesium.umd.js +3288 -104
  4. package/dist/bruce-cesium.umd.js.map +1 -1
  5. package/dist/lib/bruce-cesium.js +3 -1
  6. package/dist/lib/bruce-cesium.js.map +1 -1
  7. package/dist/lib/rendering/view-render-engine.js +24 -16
  8. package/dist/lib/rendering/view-render-engine.js.map +1 -1
  9. package/dist/lib/rendering/visuals-register.js +5 -0
  10. package/dist/lib/rendering/visuals-register.js.map +1 -1
  11. package/dist/lib/utils/drawing-utils.js +86 -0
  12. package/dist/lib/utils/drawing-utils.js.map +1 -1
  13. package/dist/lib/utils/view-utils.js +37 -0
  14. package/dist/lib/utils/view-utils.js.map +1 -1
  15. package/dist/lib/viewer/viewer-utils.js +71 -1
  16. package/dist/lib/viewer/viewer-utils.js.map +1 -1
  17. package/dist/lib/widgets/common/draw-3d-polygon.js +466 -0
  18. package/dist/lib/widgets/common/draw-3d-polygon.js.map +1 -0
  19. package/dist/lib/widgets/common/draw-3d-polyline.js +405 -0
  20. package/dist/lib/widgets/common/draw-3d-polyline.js.map +1 -0
  21. package/dist/lib/widgets/common/measure-creator.js +418 -0
  22. package/dist/lib/widgets/common/measure-creator.js.map +1 -0
  23. package/dist/lib/widgets/widget-bookmarks.js +346 -0
  24. package/dist/lib/widgets/widget-bookmarks.js.map +1 -0
  25. package/dist/lib/widgets/widget-branding.js +176 -0
  26. package/dist/lib/widgets/widget-branding.js.map +1 -0
  27. package/dist/lib/widgets/widget-cursorbar.js +291 -0
  28. package/dist/lib/widgets/widget-cursorbar.js.map +1 -0
  29. package/dist/lib/widgets/widget-info-view.js +476 -0
  30. package/dist/lib/widgets/widget-info-view.js.map +1 -0
  31. package/dist/lib/widgets/widget-nav-compass.js +250 -0
  32. package/dist/lib/widgets/widget-nav-compass.js.map +1 -0
  33. package/dist/lib/widgets/widget-searchbar.js +409 -0
  34. package/dist/lib/widgets/widget-searchbar.js.map +1 -0
  35. package/dist/lib/widgets/widget.js +50 -0
  36. package/dist/lib/widgets/widget.js.map +1 -0
  37. package/dist/types/bruce-cesium.d.ts +3 -1
  38. package/dist/types/rendering/visuals-register.d.ts +2 -1
  39. package/dist/types/utils/drawing-utils.d.ts +13 -0
  40. package/dist/types/utils/view-utils.d.ts +7 -0
  41. package/dist/types/viewer/viewer-utils.d.ts +21 -0
  42. package/dist/types/widgets/common/draw-3d-polygon.d.ts +62 -0
  43. package/dist/types/widgets/common/draw-3d-polyline.d.ts +47 -0
  44. package/dist/types/widgets/common/measure-creator.d.ts +60 -0
  45. package/dist/types/widgets/widget-bookmarks.d.ts +39 -0
  46. package/dist/types/widgets/widget-branding.d.ts +14 -0
  47. package/dist/types/widgets/widget-cursorbar.d.ts +27 -0
  48. package/dist/types/widgets/widget-info-view.d.ts +21 -0
  49. package/dist/types/widgets/widget-nav-compass.d.ts +27 -0
  50. package/dist/types/widgets/widget-searchbar.d.ts +17 -0
  51. package/dist/types/widgets/widget.d.ts +26 -0
  52. package/package.json +2 -2
@@ -0,0 +1,476 @@
1
+ "use strict";
2
+ var __extends = (this && this.__extends) || (function () {
3
+ var extendStatics = function (d, b) {
4
+ extendStatics = Object.setPrototypeOf ||
5
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
7
+ return extendStatics(d, b);
8
+ };
9
+ return function (d, b) {
10
+ if (typeof b !== "function" && b !== null)
11
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
12
+ extendStatics(d, b);
13
+ function __() { this.constructor = d; }
14
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
+ };
16
+ })();
17
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
18
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
19
+ return new (P || (P = Promise))(function (resolve, reject) {
20
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
21
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
22
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
23
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
24
+ });
25
+ };
26
+ var __generator = (this && this.__generator) || function (thisArg, body) {
27
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
28
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
29
+ function verb(n) { return function (v) { return step([n, v]); }; }
30
+ function step(op) {
31
+ if (f) throw new TypeError("Generator is already executing.");
32
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
33
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
34
+ if (y = 0, t) op = [op[0] & 2, t.value];
35
+ switch (op[0]) {
36
+ case 0: case 1: t = op; break;
37
+ case 4: _.label++; return { value: op[1], done: false };
38
+ case 5: _.label++; y = op[1]; op = [0]; continue;
39
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
40
+ default:
41
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
42
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
43
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
44
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
45
+ if (t[2]) _.ops.pop();
46
+ _.trys.pop(); continue;
47
+ }
48
+ op = body.call(thisArg, _);
49
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
50
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
51
+ }
52
+ };
53
+ Object.defineProperty(exports, "__esModule", { value: true });
54
+ exports.WidgetInfoView = void 0;
55
+ var bruce_models_1 = require("bruce-models");
56
+ var widget_1 = require("./widget");
57
+ var entity_utils_1 = require("src/utils/entity-utils");
58
+ var Cesium = require("cesium");
59
+ var drawing_utils_1 = require("src/utils/drawing-utils");
60
+ var EMode;
61
+ (function (EMode) {
62
+ EMode["ShowImportant"] = "IMP";
63
+ EMode["ShowAll"] = "ALL";
64
+ EMode["ShowAvailable"] = "AV";
65
+ EMode["ShowImportantAndAvailable"] = "IMP_AV";
66
+ })(EMode || (EMode = {}));
67
+ var OPEN_STORAGE_KEY = "EntityViewSummary_open_";
68
+ var EXCLUDED_PROPERTIES = ["Bruce", "geometry", "position", "boundaries"];
69
+ function isAttributeImportant(mode, entity, path, field) {
70
+ if (path.length && EXCLUDED_PROPERTIES.includes(path[0])) {
71
+ return false;
72
+ }
73
+ if (mode === EMode.ShowAvailable || mode === EMode.ShowImportantAndAvailable) {
74
+ var value = bruce_models_1.Entity.GetValue({
75
+ entity: entity,
76
+ path: path
77
+ });
78
+ var hasValue = value || value == 0;
79
+ if (mode === EMode.ShowAvailable) {
80
+ return hasValue;
81
+ }
82
+ if (!hasValue) {
83
+ return false;
84
+ }
85
+ }
86
+ if (field.IsImportant || mode === EMode.ShowAll) {
87
+ return true;
88
+ }
89
+ if (field.Type === bruce_models_1.EntityAttribute.EType.Structure) {
90
+ return field.Structure.some(function (field) { return isAttributeImportant(mode, entity, path, field); });
91
+ }
92
+ return false;
93
+ }
94
+ function digAttributes(mode, entity, structure, path) {
95
+ var attributes = [];
96
+ for (var i = 0; i < structure.length; i++) {
97
+ var field = structure[i];
98
+ var fieldPath = [].concat(path);
99
+ fieldPath.push(field.Key);
100
+ if (!isAttributeImportant(mode, entity, fieldPath, field)) {
101
+ continue;
102
+ }
103
+ if (field.Type === bruce_models_1.EntityAttribute.EType.Structure) {
104
+ var dug = digAttributes(mode, entity, field.Structure, fieldPath);
105
+ attributes = attributes.concat(dug);
106
+ }
107
+ else {
108
+ attributes.push(fieldPath);
109
+ }
110
+ }
111
+ return attributes;
112
+ }
113
+ function gatherAttributes(mode, entity, type) {
114
+ var _a, _b;
115
+ var schema = (_b = (_a = type.DataSchema) === null || _a === void 0 ? void 0 : _a.Structure) !== null && _b !== void 0 ? _b : [];
116
+ schema = [].concat(schema);
117
+ Object.keys(entity).forEach(function (key) {
118
+ if (!schema.find(function (field) { return (field === null || field === void 0 ? void 0 : field.Key) == key; })) {
119
+ schema.push({
120
+ Key: key,
121
+ Name: key,
122
+ Type: bruce_models_1.EntityAttribute.EType.String,
123
+ IsImportant: false,
124
+ IsIndexed: false,
125
+ Structure: []
126
+ });
127
+ }
128
+ });
129
+ return digAttributes(mode, entity, schema, []);
130
+ }
131
+ function digTypeItem(path, structure) {
132
+ var key = path[0];
133
+ var field = structure.find(function (field) { return field.Key === key; });
134
+ if (!field) {
135
+ return null;
136
+ }
137
+ if (path.length === 1) {
138
+ return field;
139
+ }
140
+ if (field.Type === bruce_models_1.EntityAttribute.EType.Structure) {
141
+ return digTypeItem(path.slice(1), field.Structure);
142
+ }
143
+ return null;
144
+ }
145
+ function groupAttributes(paths, attributes) {
146
+ var groups = [];
147
+ var _loop_1 = function (i) {
148
+ var path = paths[i];
149
+ var groupPath = path.slice(0, path.length - 1);
150
+ var groupAttr = digTypeItem(groupPath, attributes);
151
+ if (!groupAttr) {
152
+ groupAttr = {
153
+ Key: "ROOT"
154
+ };
155
+ }
156
+ var group = groups.find(function (group) { return group.group.Key === groupAttr.Key; });
157
+ if (group) {
158
+ group.attributes.push(path);
159
+ }
160
+ else {
161
+ var isOpen = localStorage.getItem(OPEN_STORAGE_KEY + groupAttr.Key);
162
+ if (isOpen == null) {
163
+ var DEFAULT_CLOSED = [
164
+ "Bruce",
165
+ "location",
166
+ "boundaries",
167
+ "transform"
168
+ ];
169
+ isOpen = path.length ? DEFAULT_CLOSED.includes(path[0]) ? "false" : "true" : "true";
170
+ }
171
+ groups.push({
172
+ group: groupAttr,
173
+ attributes: [path],
174
+ open: isOpen != "false"
175
+ });
176
+ }
177
+ };
178
+ for (var i = 0; i < paths.length; i++) {
179
+ _loop_1(i);
180
+ }
181
+ return groups;
182
+ }
183
+ var WidgetInfoView = /** @class */ (function (_super) {
184
+ __extends(WidgetInfoView, _super);
185
+ function WidgetInfoView(params) {
186
+ var _this = _super.call(this, params) || this;
187
+ _this.STYLESHEET_ID = "nextspace-info-view-stylesheet";
188
+ _this._generateStyles();
189
+ _this._generateElement();
190
+ _this._updateRemoval = _this._manager.VisualsRegister.OnUpdate.Subscribe(function (data) {
191
+ if (data.type == "UPDATE" || data.type == "DESELECT_ALL") {
192
+ _this._updateInfoView();
193
+ }
194
+ });
195
+ return _this;
196
+ }
197
+ WidgetInfoView.prototype.Dispose = function () {
198
+ _super.prototype.Dispose.call(this);
199
+ this._updateRemoval();
200
+ };
201
+ WidgetInfoView.prototype._generateStyles = function () {
202
+ if (document.getElementById(this.STYLESHEET_ID)) {
203
+ return;
204
+ }
205
+ var style = document.createElement("style");
206
+ style.id = this.STYLESHEET_ID;
207
+ style.innerHTML = "\n .NextspaceInfoView {\n width: 430px;\n right: 10px;\n top: 66px;\n height: max-content;\n max-height: calc(100% - 320px);\n min-height: 50px;\n align-items: center;\n -webkit-backdrop-filter: blur(20px);\n backdrop-filter: blur(20px);\n background: rgba(33,39,42,.8);\n border-radius: 9px;\n box-shadow: 0 0 1px rgba(18,22,25,.36),0 18px 36px -4px rgba(18,22,25,.36);\n display: flex;\n flex-direction: column;\n flex-shrink: 1;\n opacity: 0;\n position: absolute;\n z-index: 1;\n transition: opacity .3s ease,-webkit-transform .1s;\n transition: opacity .3s ease,transform .1s;\n transition: opacity .3s ease,transform .1s,-webkit-transform .1s;\n font-family: Arial;\n }\n\n .NextspaceInfoView * {\n box-sizing: border-box;\n }\n\n .NextspaceInfoViewTopLeftButtons {\n left: 12px;\n top: 5px;\n align-items: center;\n display: flex;\n position: absolute;\n z-index: 1;\n }\n\n .NextspaceInfoViewTopRightButtons {\n right: 12px;\n top: 5px;\n align-items: center;\n display: flex;\n position: absolute;\n z-index: 1;\n }\n\n .NextspaceInfoViewIconButton {\n align-items: center;\n display: flex;\n flex-grow: 0;\n flex-shrink: 0;\n height: 30px;\n justify-content: center;\n margin-right: 8px;\n min-height: 0;\n min-width: 0;\n position: relative;\n width: 30px;\n font-size: 1.5rem;\n padding: 8px;\n border-radius: 50%;\n overflow: visible;\n color: rgba(0, 0, 0, 0.54);\n transition: background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;\n appearance: none;\n text-decoration: none;\n text-align: center;\n background-color: transparent;\n outline: 0px;\n border: 0px none;\n margin: 0px;\n margin-right: 0px;\n cursor: pointer;\n user-select: none;\n -moz-box-pack: center;\n -moz-box-align: center;\n }\n\n .NextspaceInfoViewIconButton:hover {\n opacity: .9;\n transition: opacity .3s ease;\n background-color: rgba(0, 0, 0, 0.04);\n }\n\n .NextspaceInfoViewIconButton svg {\n max-height: 24px;\n max-width: 24px;\n flex-shrink: 0;\n }\n\n .NextspaceInfoViewContent {\n align-items: flex-start;\n color: #fff;\n display: flex;\n flex-direction: column;\n flex-grow: 1;\n flex-shrink: 1;\n margin-top: 12px;\n overflow: auto;\n padding: 25px;\n width: 100%;\n }\n\n .NextspaceInfoViewScrollBox {\n flex-grow: 1;\n flex-shrink: 1;\n overflow-y: auto;\n width: 100%;\n }\n\n .NextspaceInfoViewName {\n font-family: Arial;\n font-style: normal;\n font-weight: 400;\n text-align: center;\n width: 100%;\n color: #40c4ff;\n font-size: 13px;\n letter-spacing: .01em;\n line-height: 16px;\n margin-bottom: 5px;\n }\n\n .NextspaceInfoViewType {\n font-family: Arial;\n font-style: normal;\n font-weight: 400;\n text-align: center;\n width: 100%;\n color: #c1c7cd;\n font-size: 10px;\n letter-spacing: .05em;\n line-height: 10px;\n margin-bottom: 12px;\n -webkit-user-select: none;\n user-select: none;\n }\n\n .NextspaceInfoViewTitle {\n color: #f2f4f8;\n font-family: Arial;\n font-size: 14px;\n font-style: normal;\n font-weight: 500;\n line-height: 20px;\n margin-right: auto;\n -webkit-touch-callout: none;\n -webkit-user-select: none;\n user-select: none;\n margin-top: 20px;\n margin-bottom: 10px;\n }\n\n .NextspaceInfoViewSummary {\n display: flex;\n flex-direction: column;\n flex-grow: 1;\n flex-shrink: 1;\n }\n\n .NextspaceAttributesGroup {\n display: flex;\n flex-direction: column;\n }\n\n .NextspaceAttributesGroup[is-opened=\"false\"] .NextspaceAttribute {\n display: none;\n }\n\n .NextspaceAttributesGroupToggle {\n align-items: center;\n background-color: #343a3f;\n border: 1px solid #343a3f;\n border-radius: 5px;\n cursor: pointer;\n display: flex;\n height: 35px;\n margin-bottom: 3px;\n overflow: hidden;\n padding-left: 12px;\n text-overflow: ellipsis;\n white-space: nowrap;\n -webkit-touch-callout: none;\n -webkit-user-select: none;\n user-select: none;\n font-size: 12px;\n }\n\n .NextspaceAttributesGroupToggleIcon {\n align-items: center;\n display: flex;\n height: 20px;\n justify-content: center;\n margin-left: auto;\n margin-right: 8px;\n width: 20px;\n cursor: pointer;\n white-space: nowrap;\n }\n\n .NextspaceAttributesGroup[is-opened=\"false\"] .NextspaceAttributesGroupToggleIconOpened {\n display: none;\n }\n\n .NextspaceAttributesGroup[is-opened=\"true\"] .NextspaceAttributesGroupToggleIconOpened {\n display: block;\n }\n\n .NextspaceAttributesGroup[is-opened=\"false\"] .NextspaceAttributesGroupToggleIconClosed {\n display: block;\n }\n\n .NextspaceAttributesGroup[is-opened=\"true\"] .NextspaceAttributesGroupToggleIconClosed {\n display: none;\n }\n\n .NextspaceAttribute {\n align-items: center;\n display: flex;\n flex-direction: row;\n flex-grow: 1;\n }\n\n .NextspaceAttributeInput {\n align-items: center;\n background-color: #121619;\n border: 1px solid #434343;\n border-radius: 5px;\n display: flex;\n height: 35px;\n margin-bottom: 3px;\n width: 100%;\n }\n\n .NextspaceAttributeInputLabel {\n border-right: 1px solid #434343;\n flex-grow: .8;\n flex-shrink: 1;\n margin-right: 8px;\n overflow: hidden;\n padding-left: 8px;\n text-overflow: ellipsis;\n white-space: nowrap;\n width: 90px;\n font-size: 12px;\n }\n\n .NextspaceAttributeInputValue {\n background-color: transparent;\n border: 1px solid transparent;\n color: #fff;\n flex-grow: 1;\n flex-shrink: 1;\n height: 100%;\n padding-left: 2px;\n text-align: left;\n width: 120px;\n cursor: default;\n opacity: .6;\n outline: none;\n padding: .5rem .75rem;\n border-radius: .375rem;\n font-size: 12px;\n }\n\n .NextspaceDefaultImageContainer {\n align-items: center;\n border-radius: 5px;\n display: flex;\n flex-direction: column;\n flex-grow: 0;\n flex-shrink: 1;\n height: 170px;\n overflow: hidden;\n position: relative;\n width: 100%;\n background-color: rgba(33, 39, 42, 0.8);\n margin-bottom: 20px;\n }\n\n .NextspaceDefaultImage {\n background-position: 50%;\n background-repeat: no-repeat;\n background-size: cover;\n height: 100%;\n width: 100%;\n user-select: none;\n }\n ";
208
+ document.head.appendChild(style);
209
+ };
210
+ WidgetInfoView.prototype._generateElement = function () {
211
+ var _this = this;
212
+ var element = document.createElement("div");
213
+ element.className = "NextspaceInfoView";
214
+ element.style.display = "none";
215
+ var topLeftButtons = document.createElement("div");
216
+ topLeftButtons.className = "NextspaceInfoViewTopLeftButtons";
217
+ topLeftButtons.innerHTML = "\n <button title=\"Fly to entity\" class=\"NextspaceInfoViewIconButton\">\n <svg width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M20.5926 2.12617L2.49072 12.5694C1.78383 12.9756 1.87366 13.9597 2.57664 14.2566L6.72815 15.9984L17.9486 6.10975C18.1634 5.91838 18.468 6.21129 18.2844 6.4339L8.87616 17.8964V21.0403C8.87616 21.962 9.98921 22.3252 10.536 21.6574L13.016 18.6385L17.8822 20.6771C18.4367 20.9115 19.0694 20.5639 19.171 19.9663L21.9829 3.09473C22.1157 2.30583 21.2682 1.73563 20.5926 2.12617Z\" fill=\"white\"></path></svg>\n </button>\n ";
218
+ element.appendChild(topLeftButtons);
219
+ var topRightButtons = document.createElement("div");
220
+ topRightButtons.className = "NextspaceInfoViewTopRightButtons";
221
+ topRightButtons.innerHTML = "\n <button title=\"Close\" class=\"NextspaceInfoViewIconButton\">\n <svg class=\"\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M18.3002 5.70973C17.9102 5.31973 17.2802 5.31973 16.8902 5.70973L12.0002 10.5897L7.11022 5.69973C6.72022 5.30973 6.09021 5.30973 5.70021 5.69973C5.31021 6.08973 5.31021 6.71973 5.70021 7.10973L10.5902 11.9997L5.70021 16.8897C5.31021 17.2797 5.31021 17.9097 5.70021 18.2997C6.09021 18.6897 6.72022 18.6897 7.11022 18.2997L12.0002 13.4097L16.8902 18.2997C17.2802 18.6897 17.9102 18.6897 18.3002 18.2997C18.6902 17.9097 18.6902 17.2797 18.3002 16.8897L13.4102 11.9997L18.3002 7.10973C18.6802 6.72973 18.6802 6.08973 18.3002 5.70973Z\" fill=\"white\"></path></svg>\n </button>\n ";
222
+ element.appendChild(topRightButtons);
223
+ var flyToButt = topLeftButtons.querySelector("button");
224
+ flyToButt.addEventListener("click", function () {
225
+ _this._clickFlyTo();
226
+ });
227
+ this._flyTo = flyToButt;
228
+ var closeButt = topRightButtons.querySelector("button");
229
+ closeButt.addEventListener("click", function () {
230
+ _this._manager.VisualsRegister.ClearSelected();
231
+ });
232
+ var content = document.createElement("div");
233
+ content.className = "NextspaceInfoViewContent";
234
+ element.appendChild(content);
235
+ var scrollBox = document.createElement("div");
236
+ scrollBox.className = "NextspaceInfoViewScrollBox";
237
+ content.appendChild(scrollBox);
238
+ var name = document.createElement("div");
239
+ name.className = "NextspaceInfoViewName";
240
+ scrollBox.appendChild(name);
241
+ this._name = name;
242
+ var type = document.createElement("div");
243
+ type.className = "NextspaceInfoViewType";
244
+ scrollBox.appendChild(type);
245
+ this._type = type;
246
+ var imageContainer = document.createElement("div");
247
+ imageContainer.className = "NextspaceDefaultImageContainer";
248
+ var image = document.createElement("div");
249
+ image.classList.add("NextspaceDefaultImage");
250
+ imageContainer.appendChild(image);
251
+ scrollBox.appendChild(imageContainer);
252
+ this._imageContainer = imageContainer;
253
+ this._image = image;
254
+ var title = document.createElement("div");
255
+ title.className = "NextspaceInfoViewTitle";
256
+ title.innerText = "Details";
257
+ scrollBox.appendChild(title);
258
+ this._title = title;
259
+ var summary = document.createElement("div");
260
+ summary.className = "NextspaceInfoViewSummary";
261
+ scrollBox.appendChild(summary);
262
+ this._summary = summary;
263
+ this.Container.appendChild(element);
264
+ this._element = element;
265
+ this._updateInfoView();
266
+ };
267
+ WidgetInfoView.prototype._clickFlyTo = function () {
268
+ return __awaiter(this, void 0, void 0, function () {
269
+ var entityId, pos3d;
270
+ return __generator(this, function (_a) {
271
+ switch (_a.label) {
272
+ case 0:
273
+ entityId = this._lastSelectedId;
274
+ if (!entityId) {
275
+ return [2 /*return*/];
276
+ }
277
+ return [4 /*yield*/, entity_utils_1.EntityUtils.GetPosAsync({
278
+ api: this._apiGetters.GetBruceApi(),
279
+ entityId: entityId,
280
+ viewer: this._viewer,
281
+ returnHeightRef: Cesium.HeightReference.NONE,
282
+ recordHeightRef: Cesium.HeightReference.NONE,
283
+ visualRegister: this._manager.VisualsRegister
284
+ })];
285
+ case 1:
286
+ pos3d = _a.sent();
287
+ if (!(pos3d === null || pos3d === void 0 ? void 0 : pos3d.x)) return [3 /*break*/, 3];
288
+ return [4 /*yield*/, drawing_utils_1.DrawingUtils.RaisePos3d(this._viewer, pos3d, 15)];
289
+ case 2:
290
+ pos3d = _a.sent();
291
+ this._viewer.camera.flyTo({
292
+ destination: pos3d,
293
+ duration: 1,
294
+ orientation: {
295
+ heading: 0,
296
+ pitch: -Cesium.Math.PI_OVER_TWO,
297
+ roll: 0
298
+ }
299
+ });
300
+ return [3 /*break*/, 4];
301
+ case 3:
302
+ alert("Could not get position of entity.");
303
+ _a.label = 4;
304
+ case 4: return [2 /*return*/];
305
+ }
306
+ });
307
+ });
308
+ };
309
+ WidgetInfoView.prototype._updateInfoView = function () {
310
+ var _a, _b, _c;
311
+ return __awaiter(this, void 0, void 0, function () {
312
+ var selectedIds, firstId, api, entity, entityType, name_1, data, items, images, defaultImage, url, attributes, groups, _i, groups_1, group, e_1;
313
+ return __generator(this, function (_d) {
314
+ switch (_d.label) {
315
+ case 0:
316
+ selectedIds = this._manager.VisualsRegister.GetSelected();
317
+ if (selectedIds.length <= 0) {
318
+ this._element.style.display = "none";
319
+ this._element.style.opacity = "0";
320
+ return [2 /*return*/];
321
+ }
322
+ this._element.style.display = "flex";
323
+ this._element.style.opacity = "1";
324
+ firstId = selectedIds[0];
325
+ if (this._lastSelectedId == firstId) {
326
+ return [2 /*return*/];
327
+ }
328
+ this._lastSelectedId = firstId;
329
+ _d.label = 1;
330
+ case 1:
331
+ _d.trys.push([1, 5, , 6]);
332
+ this._title.style.display = "none";
333
+ this._flyTo.style.display = "none";
334
+ this._name.innerText = "Loading...";
335
+ this._type.innerText = "";
336
+ this._summary.innerHTML = "";
337
+ this._imageContainer.style.display = "none";
338
+ api = this._apiGetters.GetBruceApi();
339
+ return [4 /*yield*/, bruce_models_1.Entity.Get({
340
+ entityId: firstId,
341
+ api: api
342
+ })];
343
+ case 2:
344
+ entity = (_d.sent()).entity;
345
+ if (!entity) {
346
+ throw (new Error("Could not get entity."));
347
+ }
348
+ return [4 /*yield*/, bruce_models_1.EntityType.Get({
349
+ entityTypeId: (_a = entity.Bruce) === null || _a === void 0 ? void 0 : _a["EntityType.ID"],
350
+ api: api
351
+ })];
352
+ case 3:
353
+ entityType = (_d.sent()).entityType;
354
+ name_1 = bruce_models_1.Entity.CalculateName({
355
+ entity: entity,
356
+ type: entityType,
357
+ defaultToId: false
358
+ });
359
+ if (!name_1) {
360
+ name_1 = "Unnamed entity";
361
+ }
362
+ this._title.style.display = "block";
363
+ this._flyTo.style.display = "flex";
364
+ this._name.innerText = name_1;
365
+ this._type.innerText = (entityType === null || entityType === void 0 ? void 0 : entityType.Name) ? entityType.Name : "Unknown type";
366
+ return [4 /*yield*/, bruce_models_1.EntityAttachment.GetListByEntityId({
367
+ entityId: firstId,
368
+ api: api
369
+ })];
370
+ case 4:
371
+ data = _d.sent();
372
+ items = data.attachments;
373
+ images = [].concat(items).sort(function (a, b) { return b.DisplayOrder - a.DisplayOrder; }).filter(function (x) { return x["EntityAttachmentType.ID"] == bruce_models_1.EntityAttachmentType.EType.Photo; }).reverse();
374
+ defaultImage = images.length ? images[0] : null;
375
+ if (defaultImage) {
376
+ this._imageContainer.style.display = "flex";
377
+ url = bruce_models_1.ClientFile.GetUrl({
378
+ fileId: defaultImage["ClientFile.ID"],
379
+ api: api
380
+ });
381
+ this._image.style.backgroundImage = "url(".concat(url, ")");
382
+ }
383
+ attributes = gatherAttributes(EMode.ShowAll, entity, entityType);
384
+ groups = groupAttributes(attributes, (_c = (_b = entityType.DataSchema) === null || _b === void 0 ? void 0 : _b.Structure) !== null && _c !== void 0 ? _c : []);
385
+ for (_i = 0, groups_1 = groups; _i < groups_1.length; _i++) {
386
+ group = groups_1[_i];
387
+ this._generateAttrGroup(entityType, entity, group);
388
+ }
389
+ return [3 /*break*/, 6];
390
+ case 5:
391
+ e_1 = _d.sent();
392
+ console.error(e_1);
393
+ this._name.innerText = "";
394
+ this._summary.innerHTML = "<p>Could not read entity information</p>";
395
+ return [3 /*break*/, 6];
396
+ case 6: return [2 /*return*/];
397
+ }
398
+ });
399
+ });
400
+ };
401
+ WidgetInfoView.prototype._generateAttrGroup = function (type, entity, group) {
402
+ var groupDiv = document.createElement("div");
403
+ groupDiv.className = "NextspaceAttributesGroup";
404
+ groupDiv.setAttribute("is-opened", group.open ? "true" : "false");
405
+ if (group.group.Key != "ROOT") {
406
+ var toggle = document.createElement("div");
407
+ toggle.className = "NextspaceAttributesGroupToggle";
408
+ toggle.innerHTML = "\n ".concat(group.group.Key, "\n <div class=\"NextspaceAttributesGroupToggleIcon\">\n <svg class=\"NextspaceAttributesGroupToggleIconOpened\" width=\"16\" height=\"9\" viewBox=\"0 0 16 9\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M15 1L8 8L1 1\" stroke=\"white\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path></svg>\n <svg class=\"NextspaceAttributesGroupToggleIconClosed\" width=\"10\" height=\"17\" viewBox=\"0 0 10 17\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M8.5 15.5L1.5 8.5L8.5 1.5\" stroke=\"white\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path></svg>\n </div>\n ");
409
+ toggle.addEventListener("click", function () {
410
+ var isOpened = groupDiv.getAttribute("is-opened") == "true";
411
+ groupDiv.setAttribute("is-opened", isOpened ? "false" : "true");
412
+ localStorage.setItem("".concat(OPEN_STORAGE_KEY).concat(group.group.Key), isOpened ? "false" : "true");
413
+ });
414
+ groupDiv.appendChild(toggle);
415
+ }
416
+ for (var _i = 0, _a = group.attributes; _i < _a.length; _i++) {
417
+ var attr = _a[_i];
418
+ var attrDiv = this._generateAttr(groupDiv, type, entity, attr);
419
+ if (group.group.Key != "ROOT") {
420
+ attrDiv.style.marginLeft = "12px";
421
+ }
422
+ }
423
+ this._summary.appendChild(groupDiv);
424
+ };
425
+ WidgetInfoView.prototype._generateAttr = function (container, type, entity, path) {
426
+ var _a, _b, _c;
427
+ var attrDiv = document.createElement("div");
428
+ attrDiv.className = "NextspaceAttribute";
429
+ var typeItem = digTypeItem(path, (_b = (_a = type.DataSchema) === null || _a === void 0 ? void 0 : _a.Structure) !== null && _b !== void 0 ? _b : []);
430
+ var attrType = (_c = typeItem === null || typeItem === void 0 ? void 0 : typeItem.Type) !== null && _c !== void 0 ? _c : bruce_models_1.EntityAttribute.EType.String;
431
+ var input = document.createElement("div");
432
+ input.className = "NextspaceAttributeInput";
433
+ attrDiv.appendChild(input);
434
+ var attrName = document.createElement("div");
435
+ attrName.className = "NextspaceAttributeInputLabel";
436
+ attrName.innerText = typeItem ? typeItem.Name ? typeItem.Name : typeItem.Key : path[path.length - 1];
437
+ input.appendChild(attrName);
438
+ var value = bruce_models_1.Entity.GetValue({
439
+ entity: entity,
440
+ path: path
441
+ });
442
+ var valueStr = "";
443
+ if (attrType == bruce_models_1.EntityAttribute.EType.Boolean) {
444
+ valueStr = value ? "Yes" : "No";
445
+ }
446
+ else if (attrType == bruce_models_1.EntityAttribute.EType.Integer || attrType == bruce_models_1.EntityAttribute.EType.Double) {
447
+ valueStr = +value;
448
+ if (isNaN(valueStr)) {
449
+ valueStr = 0;
450
+ }
451
+ }
452
+ else if (attrType == bruce_models_1.EntityAttribute.EType.Structure) {
453
+ valueStr = "<Multiple values>";
454
+ }
455
+ else if (attrType == bruce_models_1.EntityAttribute.EType.Geometry) {
456
+ valueStr = "<Multiple values>";
457
+ }
458
+ else {
459
+ if (value && typeof value == "object") {
460
+ valueStr = "<Multiple values>";
461
+ }
462
+ else {
463
+ valueStr = value ? String(value) : "<No value>";
464
+ }
465
+ }
466
+ var attrValue = document.createElement("input");
467
+ attrValue.className = "NextspaceAttributeInputValue";
468
+ attrValue.value = String(valueStr);
469
+ input.appendChild(attrValue);
470
+ container.appendChild(attrDiv);
471
+ return attrDiv;
472
+ };
473
+ return WidgetInfoView;
474
+ }(widget_1.Widget.AWidget));
475
+ exports.WidgetInfoView = WidgetInfoView;
476
+ //# sourceMappingURL=widget-info-view.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"widget-info-view.js","sourceRoot":"","sources":["../../../src/widgets/widget-info-view.ts"],"names":[],"mappings":"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"}