@vertexvis/viewer 0.13.2-canary.25 → 0.13.2-canary.26

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.
@@ -61,6 +61,14 @@ class PinController {
61
61
  setPin(pin) {
62
62
  this.model.setPin(pin);
63
63
  }
64
+ /**
65
+ * Updates an existing pin
66
+ * @param pin A pin to set
67
+ * @returns `true` if the entity has been updated, false otherwise
68
+ */
69
+ updatePin(pin) {
70
+ this.model.updatePin(pin);
71
+ }
64
72
  /**
65
73
  * Tells the controller which pin is selected in the model
66
74
  * @param pinId
@@ -178,6 +186,21 @@ class PinModel {
178
186
  this.entitiesChanged.emit(this.getPins());
179
187
  return true;
180
188
  }
189
+ /**
190
+ * Sets the set of entities to be placed with the model.
191
+ *
192
+ * @param pin A pin to set
193
+ * @returns `true` if the entity has been set
194
+ */
195
+ updatePin(pin) {
196
+ const pinById = this.getPinById(pin.id);
197
+ if (pinById != null) {
198
+ this.entities = Object.assign(Object.assign({}, this.entities), { [pin.id]: pin });
199
+ this.entitiesChanged.emit(this.getPins());
200
+ return true;
201
+ }
202
+ return false;
203
+ }
181
204
  /**
182
205
  * Registers an event listener that will be invoked when the model's
183
206
  * pin entities change.
@@ -13,7 +13,7 @@ require('./grpc-web-client.umd-60a79aae.js');
13
13
  require('./streamAttributes-fc1a3e6e.js');
14
14
  require('./entities-9eb7e608.js');
15
15
  const viewport = require('./viewport-54b1389d.js');
16
- const model = require('./model-f87746d5.js');
16
+ const model = require('./model-b72f92fd.js');
17
17
  const utils = require('./utils-1c337818.js');
18
18
  const index$1 = require('./index-3bc6bac0.js');
19
19
  require('./browser.esm-075810bf.js');
@@ -9,7 +9,7 @@ const index = require('./index-e100709a.js');
9
9
  const bundle_esm = require('./bundle.esm-618a5fe9.js');
10
10
  const index$1 = require('./index-3bc6bac0.js');
11
11
  const dom = require('./dom-57ef84e9.js');
12
- const model = require('./model-f87746d5.js');
12
+ const model = require('./model-b72f92fd.js');
13
13
  const stencil = require('./stencil-a664cd10.js');
14
14
  const utils = require('./utils-1c337818.js');
15
15
  require('./_commonjsHelpers-537d719a.js');
@@ -28,7 +28,6 @@ let VertexPinLabel = class {
28
28
  this.labelChanged = index.createEvent(this, "labelChanged", 7);
29
29
  this.labelFocused = index.createEvent(this, "labelFocused", 7);
30
30
  this.labelBlurred = index.createEvent(this, "labelBlurred", 7);
31
- var _a;
32
31
  this.focused = false;
33
32
  this.textareaRows = 1;
34
33
  this.computeContentSize = () => {
@@ -52,12 +51,11 @@ let VertexPinLabel = class {
52
51
  }
53
52
  };
54
53
  this.handlePointerDown = (event) => {
55
- var _a, _b, _c;
54
+ var _a;
56
55
  if (!this.focused) {
57
- (_a = this.pinController) === null || _a === void 0 ? void 0 : _a.setSelectedPinId((_b = this.pin) === null || _b === void 0 ? void 0 : _b.id);
58
56
  if (this.elementBounds != null) {
59
57
  this.relativePointerDownPosition = utils.translatePointToRelative(dom.getMouseClientPosition(event, this.elementBounds), this.elementBounds);
60
- this.pinPointerDownPosition = (_c = this.pin) === null || _c === void 0 ? void 0 : _c.label.point;
58
+ this.pinPointerDownPosition = (_a = this.pin) === null || _a === void 0 ? void 0 : _a.label.point;
61
59
  window.addEventListener('pointermove', this.handlePointerMove);
62
60
  window.addEventListener('pointerup', this.handlePointerUp);
63
61
  }
@@ -83,7 +81,7 @@ let VertexPinLabel = class {
83
81
  }
84
82
  : undefined;
85
83
  if (myUpdatedPin) {
86
- (_b = this.pinController) === null || _b === void 0 ? void 0 : _b.setPin(myUpdatedPin);
84
+ (_b = this.pinController) === null || _b === void 0 ? void 0 : _b.updatePin(myUpdatedPin);
87
85
  this.computeScreenPosition();
88
86
  }
89
87
  }
@@ -112,27 +110,32 @@ let VertexPinLabel = class {
112
110
  const input = event.target;
113
111
  this.value = input.value;
114
112
  };
115
- if (((_a = this.pin) === null || _a === void 0 ? void 0 : _a.label.text) != null) {
116
- this.value = this.pin.label.text;
117
- }
118
- else {
119
- this.value = '';
120
- }
113
+ this.value = this.getPinText();
121
114
  }
122
115
  /**
123
116
  * Gives focus to the the component's internal text input.
124
117
  */
125
118
  async setFocus() {
126
- var _a, _b;
119
+ var _a, _b, _c;
127
120
  // HTMLInputElement.focus() doesn't exist in tests.
128
121
  if (typeof ((_a = this.inputEl) === null || _a === void 0 ? void 0 : _a.focus) === 'function') {
129
- (_b = this.inputEl) === null || _b === void 0 ? void 0 : _b.focus();
122
+ if (this.focused) {
123
+ (_b = this.inputEl) === null || _b === void 0 ? void 0 : _b.focus();
124
+ }
125
+ else {
126
+ (_c = this.inputEl) === null || _c === void 0 ? void 0 : _c.blur();
127
+ }
130
128
  }
131
129
  }
132
130
  watchFocusChange() {
131
+ var _a, _b;
133
132
  this.labelChanged.emit();
133
+ if (this.focused) {
134
+ (_a = this.pinController) === null || _a === void 0 ? void 0 : _a.setSelectedPinId((_b = this.pin) === null || _b === void 0 ? void 0 : _b.id);
135
+ }
134
136
  }
135
137
  watchPinChange() {
138
+ this.value = this.getPinText();
136
139
  this.computeScreenPosition();
137
140
  }
138
141
  watchElementBoundsChange() {
@@ -218,6 +221,16 @@ let VertexPinLabel = class {
218
221
  var _a, _b;
219
222
  return `calc(${((_a = this.elementBounds) === null || _a === void 0 ? void 0 : _a.height.toString()) || 0}px - ${((_b = this.computedScreenPosition) === null || _b === void 0 ? void 0 : _b.y.toString()) || 0}px)`;
220
223
  }
224
+ getPinText() {
225
+ var _a;
226
+ if (((_a = this.pin) === null || _a === void 0 ? void 0 : _a.label.text) != null) {
227
+ this.value = this.pin.label.text;
228
+ }
229
+ else {
230
+ this.value = '';
231
+ }
232
+ return this.value;
233
+ }
221
234
  computeScreenPosition() {
222
235
  this.computedScreenPosition =
223
236
  model.isTextPin(this.pin) &&
@@ -231,7 +244,7 @@ let VertexPinLabel = class {
231
244
  this.focused = false;
232
245
  this.labelBlurred.emit((_a = this.pin) === null || _a === void 0 ? void 0 : _a.id);
233
246
  if (this.pin != null) {
234
- (_b = this.pinController) === null || _b === void 0 ? void 0 : _b.setPin(Object.assign(Object.assign({}, this.pin), { label: {
247
+ (_b = this.pinController) === null || _b === void 0 ? void 0 : _b.updatePin(Object.assign(Object.assign({}, this.pin), { label: {
235
248
  point: this.pin.label.point,
236
249
  text: this.value,
237
250
  } }));
@@ -6,7 +6,7 @@
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
8
  const index = require('./index-e100709a.js');
9
- const model = require('./model-f87746d5.js');
9
+ const model = require('./model-b72f92fd.js');
10
10
  const bundle_esm = require('./bundle.esm-618a5fe9.js');
11
11
  const browser_esm = require('./browser.esm-075810bf.js');
12
12
  const utils = require('./utils-1c337818.js');
@@ -244,7 +244,7 @@ let ViewerPinTool = class {
244
244
  }
245
245
  render() {
246
246
  return (index.h(index.Host, null, index.h("vertex-viewer-dom-renderer", { viewer: this.viewer, drawMode: "2d" }, this.pins.map((pin) => {
247
- return (index.h("vertex-viewer-pin-group", { "data-is-dom-group-element": true, pin: pin, elementBounds: this.elementBounds, pinModel: this.pinModel, pinController: this.pinController, projectionViewMatrix: this.projectionViewMatrix, selected: this.selectedPinId === pin.id }));
247
+ return (index.h("vertex-viewer-pin-group", { id: `pin-group-${pin.id}`, "data-is-dom-group-element": true, pin: pin, elementBounds: this.elementBounds, pinModel: this.pinModel, pinController: this.pinController, projectionViewMatrix: this.projectionViewMatrix, selected: this.selectedPinId === pin.id }));
248
248
  }))));
249
249
  }
250
250
  setupController() {
@@ -11,7 +11,6 @@ import { translatePointToRelative, translatePointToScreen, } from '../viewer-mar
11
11
  import { getComputedStyle } from './utils';
12
12
  export class VertexPinLabel {
13
13
  constructor() {
14
- var _a;
15
14
  this.focused = false;
16
15
  this.textareaRows = 1;
17
16
  this.computeContentSize = () => {
@@ -35,12 +34,11 @@ export class VertexPinLabel {
35
34
  }
36
35
  };
37
36
  this.handlePointerDown = (event) => {
38
- var _a, _b, _c;
37
+ var _a;
39
38
  if (!this.focused) {
40
- (_a = this.pinController) === null || _a === void 0 ? void 0 : _a.setSelectedPinId((_b = this.pin) === null || _b === void 0 ? void 0 : _b.id);
41
39
  if (this.elementBounds != null) {
42
40
  this.relativePointerDownPosition = translatePointToRelative(getMouseClientPosition(event, this.elementBounds), this.elementBounds);
43
- this.pinPointerDownPosition = (_c = this.pin) === null || _c === void 0 ? void 0 : _c.label.point;
41
+ this.pinPointerDownPosition = (_a = this.pin) === null || _a === void 0 ? void 0 : _a.label.point;
44
42
  window.addEventListener('pointermove', this.handlePointerMove);
45
43
  window.addEventListener('pointerup', this.handlePointerUp);
46
44
  }
@@ -66,7 +64,7 @@ export class VertexPinLabel {
66
64
  }
67
65
  : undefined;
68
66
  if (myUpdatedPin) {
69
- (_b = this.pinController) === null || _b === void 0 ? void 0 : _b.setPin(myUpdatedPin);
67
+ (_b = this.pinController) === null || _b === void 0 ? void 0 : _b.updatePin(myUpdatedPin);
70
68
  this.computeScreenPosition();
71
69
  }
72
70
  }
@@ -95,27 +93,32 @@ export class VertexPinLabel {
95
93
  const input = event.target;
96
94
  this.value = input.value;
97
95
  };
98
- if (((_a = this.pin) === null || _a === void 0 ? void 0 : _a.label.text) != null) {
99
- this.value = this.pin.label.text;
100
- }
101
- else {
102
- this.value = '';
103
- }
96
+ this.value = this.getPinText();
104
97
  }
105
98
  /**
106
99
  * Gives focus to the the component's internal text input.
107
100
  */
108
101
  async setFocus() {
109
- var _a, _b;
102
+ var _a, _b, _c;
110
103
  // HTMLInputElement.focus() doesn't exist in tests.
111
104
  if (typeof ((_a = this.inputEl) === null || _a === void 0 ? void 0 : _a.focus) === 'function') {
112
- (_b = this.inputEl) === null || _b === void 0 ? void 0 : _b.focus();
105
+ if (this.focused) {
106
+ (_b = this.inputEl) === null || _b === void 0 ? void 0 : _b.focus();
107
+ }
108
+ else {
109
+ (_c = this.inputEl) === null || _c === void 0 ? void 0 : _c.blur();
110
+ }
113
111
  }
114
112
  }
115
113
  watchFocusChange() {
114
+ var _a, _b;
116
115
  this.labelChanged.emit();
116
+ if (this.focused) {
117
+ (_a = this.pinController) === null || _a === void 0 ? void 0 : _a.setSelectedPinId((_b = this.pin) === null || _b === void 0 ? void 0 : _b.id);
118
+ }
117
119
  }
118
120
  watchPinChange() {
121
+ this.value = this.getPinText();
119
122
  this.computeScreenPosition();
120
123
  }
121
124
  watchElementBoundsChange() {
@@ -205,6 +208,16 @@ export class VertexPinLabel {
205
208
  var _a, _b;
206
209
  return `calc(${((_a = this.elementBounds) === null || _a === void 0 ? void 0 : _a.height.toString()) || 0}px - ${((_b = this.computedScreenPosition) === null || _b === void 0 ? void 0 : _b.y.toString()) || 0}px)`;
207
210
  }
211
+ getPinText() {
212
+ var _a;
213
+ if (((_a = this.pin) === null || _a === void 0 ? void 0 : _a.label.text) != null) {
214
+ this.value = this.pin.label.text;
215
+ }
216
+ else {
217
+ this.value = '';
218
+ }
219
+ return this.value;
220
+ }
208
221
  computeScreenPosition() {
209
222
  this.computedScreenPosition =
210
223
  isTextPin(this.pin) &&
@@ -218,7 +231,7 @@ export class VertexPinLabel {
218
231
  this.focused = false;
219
232
  this.labelBlurred.emit((_a = this.pin) === null || _a === void 0 ? void 0 : _a.id);
220
233
  if (this.pin != null) {
221
- (_b = this.pinController) === null || _b === void 0 ? void 0 : _b.setPin(Object.assign(Object.assign({}, this.pin), { label: {
234
+ (_b = this.pinController) === null || _b === void 0 ? void 0 : _b.updatePin(Object.assign(Object.assign({}, this.pin), { label: {
222
235
  point: this.pin.label.point,
223
236
  text: this.value,
224
237
  } }));
@@ -394,4 +407,4 @@ export class VertexPinLabel {
394
407
  "methodName": "watchElementBoundsChange"
395
408
  }]; }
396
409
  }
397
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlld2VyLXBpbi1sYWJlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3ZpZXdlci1waW4tbGFiZWwvdmlld2VyLXBpbi1sYWJlbC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxPQUFPLEVBQ1AsS0FBSztBQUVMLDZEQUE2RDtBQUM3RCxDQUFDLEVBQ0QsSUFBSSxFQUNKLE1BQU0sRUFDTixJQUFJLEVBQ0osS0FBSyxFQUNMLEtBQUssR0FDTixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDNUMsT0FBTyxVQUFVLE1BQU0sWUFBWSxDQUFDO0FBRXBDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQVcsTUFBTSxzQkFBc0IsQ0FBQztBQUNwRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDNUMsT0FBTyxFQUNMLHdCQUF3QixFQUN4QixzQkFBc0IsR0FDdkIsTUFBTSx3QkFBd0IsQ0FBQztBQUNoQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFPM0MsTUFBTSxPQUFPLGNBQWM7RUFzRXpCOztJQXBCUSxZQUFPLEdBQUcsS0FBSyxDQUFDO0lBTWhCLGlCQUFZLEdBQUcsQ0FBQyxDQUFDO0lBaU1qQix1QkFBa0IsR0FBRyxHQUFTLEVBQUU7TUFDdEMsT0FBTyxDQUFDLEdBQUcsRUFBRTtRQUNYLElBQUksSUFBSSxDQUFDLFNBQVMsSUFBSSxJQUFJLEVBQUU7VUFDMUIsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLHFCQUFxQixFQUFFLENBQUM7VUFDOUQsTUFBTSxj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
410
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlld2VyLXBpbi1sYWJlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3ZpZXdlci1waW4tbGFiZWwvdmlld2VyLXBpbi1sYWJlbC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxPQUFPLEVBQ1AsS0FBSztBQUVMLDZEQUE2RDtBQUM3RCxDQUFDLEVBQ0QsSUFBSSxFQUNKLE1BQU0sRUFDTixJQUFJLEVBQ0osS0FBSyxFQUNMLEtBQUssR0FDTixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDNUMsT0FBTyxVQUFVLE1BQU0sWUFBWSxDQUFDO0FBRXBDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQVcsTUFBTSxzQkFBc0IsQ0FBQztBQUNwRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDNUMsT0FBTyxFQUNMLHdCQUF3QixFQUN4QixzQkFBc0IsR0FDdkIsTUFBTSx3QkFBd0IsQ0FBQztBQUNoQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFPM0MsTUFBTSxPQUFPLGNBQWM7RUFzRXpCO0lBcEJRLFlBQU8sR0FBRyxLQUFLLENBQUM7SUFNaEIsaUJBQVksR0FBRyxDQUFDLENBQUM7SUFnTmpCLHVCQUFrQixHQUFHLEdBQVMsRUFBRTtNQUN0QyxPQUFPLENBQUMsR0FBRyxFQUFFO1FBQ1gsSUFBSSxJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksRUFBRTtVQUMxQixJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMscUJBQXFCLEVBQUUsQ0FBQztVQUM5RCxNQUFNLGNBQWMsR0FBRyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7VUFDeEQsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsR0FBRyxDQUMxQixDQUFDLEVBQ0QsSUFBSSxDQUFDLElBQUksQ0FDUCxDQUFDLFVBQVUsQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDO1lBQ2hDLFVBQVUsQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQzNDLFVBQVUsQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLENBQ3hDLENBQ0YsQ0FBQztTQUNIO01BQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUM7SUFFTSx1QkFBa0IsR0FBRyxDQUFDLEtBQW9CLEVBQVEsRUFBRTtNQUMxRCxJQUFJLEtBQUssQ0FBQyxHQUFHLEtBQUssT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEVBQUU7UUFDN0QsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztPQUNmO1dBQU0sSUFBSSxLQUFLLENBQUMsR0FBRyxLQUFLLE9BQU8sRUFBRTtRQUNoQyxJQUFJLENBQUMsWUFBWSxJQUFJLENBQUMsQ0FBQztPQUN4QjtJQUNILENBQUMsQ0FBQztJQUVNLHNCQUFpQixHQUFHLENBQUMsS0FBbUIsRUFBUSxFQUFFOztNQUN4RCxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRTtRQUNqQixJQUFJLElBQUksQ0FBQyxhQUFhLElBQUksSUFBSSxFQUFFO1VBQzlCLElBQUksQ0FBQywyQkFBMkIsR0FBRyx3QkFBd0IsQ0FDekQsc0JBQXNCLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsRUFDakQsSUFBSSxDQUFDLGFBQWEsQ0FDbkIsQ0FBQztVQUNGLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxNQUFBLElBQUksQ0FBQyxHQUFHLDBDQUFFLEtBQUssQ0FBQyxLQUFLLENBQUM7VUFFcEQsTUFBTSxDQUFDLGdCQUFnQixDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztVQUMvRCxNQUFNLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztTQUM1RDtPQUNGO0lBQ0gsQ0FBQyxDQUFDO0lBRU0sc0JBQWlCLEdBQUcsQ0FBQyxLQUFtQixFQUFRLEVBQUU7O01BQ3hELElBQ0UsSUFBSSxDQUFDLGFBQWEsSUFBSSxJQUFJO1FBQzFCLElBQUksQ0FBQywyQkFBMkI7UUFDaEMsSUFBSSxDQUFDLHNCQUFzQixJQUFJLElBQUksRUFDbkM7UUFDQSxNQUFNLEtBQUssR0FBRyxzQkFBc0IsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ2hFLE1BQU0sUUFBUSxHQUFHLHdCQUF3QixDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7UUFFckUsTUFBTSxhQUFhLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FDbEMsUUFBUSxFQUNSLElBQUksQ0FBQywyQkFBMkIsQ0FDakMsQ0FBQztRQUVGLE1BQU0sWUFBWSxHQUNoQixJQUFJLENBQUMsR0FBRyxJQUFJLElBQUk7VUFDZCxDQUFDLENBQUM7WUFDRSxFQUFFLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ2YsYUFBYSxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYTtZQUNyQyxLQUFLLEVBQUU7Y0FDTCxLQUFLLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLEVBQUUsYUFBYSxDQUFDO2NBQzVELElBQUksRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJO2FBQzFCO1lBQ0QsTUFBTSxFQUFFLE1BQUEsSUFBSSxDQUFDLEdBQUcsMENBQUUsTUFBTTtXQUN6QjtVQUNILENBQUMsQ0FBQyxTQUFTLENBQUM7UUFFaEIsSUFBSSxZQUFZLEVBQUU7VUFDaEIsTUFBQSxJQUFJLENBQUMsYUFBYSwwQ0FBRSxTQUFTLENBQUMsWUFBWSxDQUFDLENBQUM7VUFDNUMsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7U0FDOUI7T0FDRjtJQUNILENBQUMsQ0FBQztJQUVNLG9CQUFlLEdBQUcsQ0FBQyxLQUFtQixFQUFRLEVBQUU7O01BQ3RELElBQ0UsQ0FBQSxNQUFBLElBQUksQ0FBQyxhQUFhLDBDQUFFLFdBQVcsRUFBRSxNQUFLLE1BQU07UUFDNUMsSUFBSSxDQUFDLDJCQUEyQixJQUFJLElBQUk7UUFDeEMsSUFBSSxDQUFDLGFBQWEsSUFBSSxJQUFJLEVBQzFCO1FBQ0EsTUFBTSxpQkFBaUIsR0FBRyxzQkFBc0IsQ0FDOUMsSUFBSSxDQUFDLDJCQUEyQixFQUNoQyxJQUFJLENBQUMsYUFBYSxDQUNuQixDQUFDO1FBQ0YsTUFBTSwrQkFBK0IsR0FBRyxLQUFLLENBQUMsUUFBUSxDQUNwRCxpQkFBaUIsRUFDakIsc0JBQXNCLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FDbEQsQ0FBQztRQUVGLElBQUksK0JBQStCLElBQUksQ0FBQyxFQUFFO1VBQ3hDLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1VBQ3BCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLE1BQUEsSUFBSSxDQUFDLEdBQUcsMENBQUUsRUFBRSxDQUFDLENBQUM7U0FDdEM7T0FDRjtNQUVELElBQUksQ0FBQywyQkFBMkIsR0FBRyxTQUFTLENBQUM7TUFDN0MsSUFBSSxDQUFDLHNCQUFzQixHQUFHLFNBQVMsQ0FBQztNQUV4QyxNQUFNLENBQUMsbUJBQW1CLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO01BQ2xFLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQ2hFLENBQUMsQ0FBQztJQUVNLG1CQUFjLEdBQUcsR0FBUyxFQUFFO01BQ2xDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUNoQixDQUFDLENBQUM7SUFnQk0sb0JBQWUsR0FBRyxDQUFDLEtBQVksRUFBUSxFQUFFO01BQy9DLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxNQUEwQixDQUFDO01BQy9DLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQztJQUMzQixDQUFDLENBQUM7SUE3VEEsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7RUFDakMsQ0FBQztFQUVEOztLQUVHO0VBRUksS0FBSyxDQUFDLFFBQVE7O0lBQ25CLG1EQUFtRDtJQUNuRCxJQUFJLE9BQU8sQ0FBQSxNQUFBLElBQUksQ0FBQyxPQUFPLDBDQUFFLEtBQUssQ0FBQSxLQUFLLFVBQVUsRUFBRTtNQUM3QyxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUU7UUFDaEIsTUFBQSxJQUFJLENBQUMsT0FBTywwQ0FBRSxLQUFLLEVBQUUsQ0FBQztPQUN2QjtXQUFNO1FBQ0wsTUFBQSxJQUFJLENBQUMsT0FBTywwQ0FBRSxJQUFJLEVBQUUsQ0FBQztPQUN0QjtLQUNGO0VBQ0gsQ0FBQztFQUdTLGdCQUFnQjs7SUFDeEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUV6QixJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUU7TUFDaEIsTUFBQSxJQUFJLENBQUMsYUFBYSwwQ0FBRSxnQkFBZ0IsQ0FBQyxNQUFBLElBQUksQ0FBQyxHQUFHLDBDQUFFLEVBQUUsQ0FBQyxDQUFDO0tBQ3BEO0VBQ0gsQ0FBQztFQUdTLGNBQWM7SUFDdEIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDL0IsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7RUFDL0IsQ0FBQztFQUdTLHdCQUF3QjtJQUNoQyxJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztFQUMvQixDQUFDO0VBRVMsaUJBQWlCO0lBQ3pCLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO0VBQy9CLENBQUM7RUFFUyxnQkFBZ0I7SUFDeEIsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLGNBQWMsQ0FBQyxHQUFHLEVBQUU7TUFDNUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUMzQixDQUFDLENBQUMsQ0FBQztJQUVILElBQUksQ0FBQyxxQkFBcUIsR0FBRyxJQUFJLGNBQWMsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQztJQUV6RSxJQUFJLElBQUksQ0FBQyxNQUFNLElBQUksSUFBSSxFQUFFO01BQ3ZCLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztLQUMxQztJQUVELElBQUksSUFBSSxDQUFDLFNBQVMsSUFBSSxJQUFJLEVBQUU7TUFDMUIsSUFBSSxDQUFDLHFCQUFxQixDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7S0FDcEQ7SUFFRCxJQUFJLElBQUksQ0FBQyxhQUFhLElBQUksSUFBSSxFQUFFO01BQzlCLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxhQUFhLENBQUMsSUFBSSxRQUFRLEVBQUUsQ0FBQyxDQUFDO0tBQ3hEO0VBQ0gsQ0FBQztFQUVTLG9CQUFvQjs7SUFDNUIsTUFBQSxJQUFJLENBQUMsY0FBYywwQ0FBRSxVQUFVLEVBQUUsQ0FBQztJQUNsQyxNQUFBLElBQUksQ0FBQyxxQkFBcUIsMENBQUUsVUFBVSxFQUFFLENBQUM7RUFDM0MsQ0FBQztFQUVTLGtCQUFrQjtJQUMxQixJQUFJLElBQUksQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLEVBQUU7TUFDeEMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO0tBQ2pCO0VBQ0gsQ0FBQztFQUVTLE1BQU07O0lBQ2QsT0FBTyxDQUNMLEVBQUMsSUFBSTtNQUNILFdBQ0UsRUFBRSxFQUFFLGFBQWEsTUFBQSxJQUFJLENBQUMsR0FBRywwQ0FBRSxFQUFFLEVBQUUsRUFDL0IsS0FBSyxFQUFFLFVBQVUsQ0FBQyx5QkFBeUIsRUFBRTtVQUMzQyxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU87U0FDdEIsQ0FBQyxFQUNGLGFBQWEsRUFBRSxJQUFJLENBQUMsaUJBQWlCLEVBQ3JDLEtBQUssRUFBRTtVQUNMLEdBQUcsRUFBRSxHQUFHLENBQUEsTUFBQSxJQUFJLENBQUMsc0JBQXNCLDBDQUFFLENBQUMsQ0FBQyxRQUFRLEVBQUUsS0FBSSxDQUFDLElBQUk7VUFDMUQsSUFBSSxFQUFFLEdBQUcsQ0FBQSxNQUFBLElBQUksQ0FBQyxzQkFBc0IsMENBQUUsQ0FBQyxDQUFDLFFBQVEsRUFBRSxLQUFJLENBQUMsSUFBSTtVQUMzRCxRQUFRLEVBQUUsSUFBSSxDQUFDLGVBQWUsRUFBRTtVQUNoQyxRQUFRLEVBQUUsSUFBSSxDQUFDLGVBQWUsRUFBRTtVQUNoQyxTQUFTLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixFQUFFO1NBQ25DO1FBRUQsZ0JBQ0UsRUFBRSxFQUFFLG1CQUFtQixNQUFBLElBQUksQ0FBQyxHQUFHLDBDQUFFLEVBQUUsRUFBRSxFQUNyQyxLQUFLLEVBQUUsVUFBVSxDQUFDLGlCQUFpQixFQUFFLGdCQUFnQixFQUFFO1lBQ3JELENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTztXQUM1QixDQUFDLEVBQ0YsUUFBUSxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFDdkIsR0FBRyxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLEdBQUcsR0FBRyxDQUFDLEVBQ2xDLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxFQUNqQixJQUFJLEVBQUUsSUFBSSxDQUFDLFlBQVksRUFDdkIsU0FBUyxFQUFFLElBQUksQ0FBQyxrQkFBa0IsRUFDbEMsT0FBTyxFQUFFLElBQUksQ0FBQyxlQUFlLEVBQzdCLE1BQU0sRUFBRSxJQUFJLENBQUMsY0FBYyxHQUMzQjtRQUdELENBQUMsSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUNoQixXQUNFLEtBQUssRUFBQyx1QkFBdUIsRUFDN0IsYUFBYSxFQUFFLElBQUksQ0FBQyxpQkFBaUIsR0FDckMsQ0FDSCxDQUNHO01BQ04sV0FDRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUMsRUFDbEMsS0FBSyxFQUFFLFVBQVUsQ0FBQyxnQkFBZ0IsRUFBRSxrQkFBa0IsQ0FBQyxFQUN2RCxLQUFLLEVBQUU7VUFDTCxRQUFRLEVBQUUsSUFBSSxDQUFDLGVBQWUsRUFBRTtVQUNoQyxTQUFTLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixFQUFFO1NBQ25DLElBRUEsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUNqQixDQUNELENBQ1IsQ0FBQztFQUNKLENBQUM7RUFFTyxhQUFhO0lBQ25CLGdFQUFnRTtJQUNoRSxnRUFBZ0U7SUFDaEUsMkRBQTJEO0lBQzNELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDO01BQzlCLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSztTQUNQLEtBQUssQ0FBQyxJQUFJLENBQUM7U0FDWCxNQUFNLENBQ0wsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsR0FBRyxFQUFFLEdBQUcsRUFBRSxhQUFNLENBQUMsRUFDbkMsRUFBbUMsQ0FDcEM7TUFDTCxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7RUFDbkIsQ0FBQztFQUVPLGVBQWU7SUFDckIsSUFBSSxJQUFJLENBQUMsZUFBZSxJQUFJLElBQUksRUFBRTtNQUNoQyxNQUFNLFFBQVEsR0FBRyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxHQUFHLEVBQUUsSUFBSSxDQUFDO01BRXhELE9BQU8sT0FBTyxRQUFRLEtBQUssSUFBSSxDQUFDLGVBQWUsRUFBRSxHQUFHLENBQUM7S0FDdEQ7U0FBTTtNQUNMLE9BQU8sK0NBQStDLENBQUM7S0FDeEQ7RUFDSCxDQUFDO0VBRU8sZUFBZTtJQUNyQixNQUFNLFFBQVEsR0FBRywrQ0FBK0MsQ0FBQztJQUVqRSxPQUFPLE9BQU8sUUFBUSxLQUFLLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxHQUFHLENBQUM7RUFDN0QsQ0FBQztFQUVPLGdCQUFnQjtJQUN0QixNQUFNLFFBQVEsR0FBRyxnREFBZ0QsQ0FBQztJQUVsRSxPQUFPLE9BQU8sUUFBUSxLQUFLLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxHQUFHLENBQUM7RUFDOUQsQ0FBQztFQUVPLHFCQUFxQjs7SUFDM0IsT0FBTyxRQUFRLENBQUEsTUFBQSxJQUFJLENBQUMsYUFBYSwwQ0FBRSxLQUFLLENBQUMsUUFBUSxFQUFFLEtBQUksQ0FBQyxRQUN0RCxDQUFBLE1BQUEsSUFBSSxDQUFDLHNCQUFzQiwwQ0FBRSxDQUFDLENBQUMsUUFBUSxFQUFFLEtBQUksQ0FDL0MsS0FBSyxDQUFDO0VBQ1IsQ0FBQztFQUVPLHNCQUFzQjs7SUFDNUIsT0FBTyxRQUFRLENBQUEsTUFBQSxJQUFJLENBQUMsYUFBYSwwQ0FBRSxNQUFNLENBQUMsUUFBUSxFQUFFLEtBQUksQ0FBQyxRQUN2RCxDQUFBLE1BQUEsSUFBSSxDQUFDLHNCQUFzQiwwQ0FBRSxDQUFDLENBQUMsUUFBUSxFQUFFLEtBQUksQ0FDL0MsS0FBSyxDQUFDO0VBQ1IsQ0FBQztFQUVPLFVBQVU7O0lBQ2hCLElBQUksQ0FBQSxNQUFBLElBQUksQ0FBQyxHQUFHLDBDQUFFLEtBQUssQ0FBQyxJQUFJLEtBQUksSUFBSSxFQUFFO01BQ2hDLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDO0tBQ2xDO1NBQU07TUFDTCxJQUFJLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQztLQUNqQjtJQUVELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztFQUNwQixDQUFDO0VBRU8scUJBQXFCO0lBQzNCLElBQUksQ0FBQyxzQkFBc0I7TUFDekIsU0FBUyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUM7UUFDbkIsSUFBSSxDQUFDLGFBQWEsSUFBSSxJQUFJO1FBQzFCLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEtBQUssSUFBSSxJQUFJO1FBQzFCLENBQUMsQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQztRQUNsRSxDQUFDLENBQUMsU0FBUyxDQUFDO0VBQ2xCLENBQUM7RUE2R08sTUFBTTs7SUFDWixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztJQUNyQixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxNQUFBLElBQUksQ0FBQyxHQUFHLDBDQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3JDLElBQUksSUFBSSxDQUFDLEdBQUcsSUFBSSxJQUFJLEVBQUU7TUFDcEIsTUFBQSxJQUFJLENBQUMsYUFBYSwwQ0FBRSxTQUFTLGlDQUN4QixJQUFJLENBQUMsR0FBRyxLQUNYLEtBQUssRUFBRTtVQUNMLEtBQUssRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxLQUFLO1VBQzNCLElBQUksRUFBRSxJQUFJLENBQUMsS0FBSztTQUNqQixJQUNELENBQUM7S0FDSjtFQUNILENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBTUYifQ==
@@ -91,7 +91,7 @@ export class ViewerPinTool {
91
91
  render() {
92
92
  return (h(Host, null,
93
93
  h("vertex-viewer-dom-renderer", { viewer: this.viewer, drawMode: "2d" }, this.pins.map((pin) => {
94
- return (h("vertex-viewer-pin-group", { "data-is-dom-group-element": true, pin: pin, elementBounds: this.elementBounds, pinModel: this.pinModel, pinController: this.pinController, projectionViewMatrix: this.projectionViewMatrix, selected: this.selectedPinId === pin.id }));
94
+ return (h("vertex-viewer-pin-group", { id: `pin-group-${pin.id}`, "data-is-dom-group-element": true, pin: pin, elementBounds: this.elementBounds, pinModel: this.pinModel, pinController: this.pinController, projectionViewMatrix: this.projectionViewMatrix, selected: this.selectedPinId === pin.id }));
95
95
  }))));
96
96
  }
97
97
  setupController() {
@@ -274,4 +274,4 @@ export class ViewerPinTool {
274
274
  "methodName": "handleViewerChanged"
275
275
  }]; }
276
276
  }
277
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlld2VyLXBpbi10b29sLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvdmlld2VyLXBpbi10b29sL3ZpZXdlci1waW4tdG9vbC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxPQUFPO0FBQ1AsNkRBQTZEO0FBQzdELENBQUMsRUFDRCxJQUFJLEVBQ0osSUFBSSxFQUNKLEtBQUssRUFDTCxLQUFLLEdBQ04sTUFBTSxlQUFlLENBQUM7QUFJdkIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzFELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3JFLE9BQU8sRUFFTCxRQUFRLEdBR1QsTUFBTSxzQkFBc0IsQ0FBQztBQUM5QixPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQU9uRSxNQUFNLE9BQU8sYUFBYTtFQUwxQjtJQVlFOztPQUVHO0lBRUksYUFBUSxHQUFhLElBQUksUUFBUSxFQUFFLENBQUM7SUFHcEMsU0FBSSxHQUFVLEVBQUUsQ0FBQztJQVl4Qjs7OztPQUlHO0lBRUksU0FBSSxHQUFzQixLQUFLLENBQUM7SUFFdkM7O09BRUc7SUFFSSxTQUFJLEdBQXNCLE1BQU0sQ0FBQztJQStGaEMsOEJBQXlCLEdBQUcsR0FBUyxFQUFFOztNQUM3QyxJQUFJLENBQUMsb0JBQW9CO1FBQ3ZCLE1BQUEsTUFBQSxJQUFJLENBQUMsTUFBTSwwQ0FBRSxLQUFLLDBDQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsb0JBQW9CLENBQUM7SUFDMUQsQ0FBQyxDQUFDO0dBc0RIO0VBeElDOztLQUVHO0VBRU8sZUFBZTs7SUFDdkIsTUFBQSxJQUFJLENBQUMsYUFBYSwwQ0FBRSxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzNDLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxDQUFDO0VB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
277
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlld2VyLXBpbi10b29sLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvdmlld2VyLXBpbi10b29sL3ZpZXdlci1waW4tdG9vbC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxPQUFPO0FBQ1AsNkRBQTZEO0FBQzdELENBQUMsRUFDRCxJQUFJLEVBQ0osSUFBSSxFQUNKLEtBQUssRUFDTCxLQUFLLEdBQ04sTUFBTSxlQUFlLENBQUM7QUFJdkIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzFELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3JFLE9BQU8sRUFFTCxRQUFRLEdBR1QsTUFBTSxzQkFBc0IsQ0FBQztBQUM5QixPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQU9uRSxNQUFNLE9BQU8sYUFBYTtFQUwxQjtJQVlFOztPQUVHO0lBRUksYUFBUSxHQUFhLElBQUksUUFBUSxFQUFFLENBQUM7SUFHcEMsU0FBSSxHQUFVLEVBQUUsQ0FBQztJQVl4Qjs7OztPQUlHO0lBRUksU0FBSSxHQUFzQixLQUFLLENBQUM7SUFFdkM7O09BRUc7SUFFSSxTQUFJLEdBQXNCLE1BQU0sQ0FBQztJQStGaEMsOEJBQXlCLEdBQUcsR0FBUyxFQUFFOztNQUM3QyxJQUFJLENBQUMsb0JBQW9CO1FBQ3ZCLE1BQUEsTUFBQSxJQUFJLENBQUMsTUFBTSwwQ0FBRSxLQUFLLDBDQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsb0JBQW9CLENBQUM7SUFDMUQsQ0FBQyxDQUFDO0dBdURIO0VBeklDOztLQUVHO0VBRU8sZUFBZTs7SUFDdkIsTUFBQSxJQUFJLENBQUMsYUFBYSwwQ0FBRSxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzNDLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxDQUFDO0VB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
@@ -54,6 +54,14 @@ export class PinController {
54
54
  setPin(pin) {
55
55
  this.model.setPin(pin);
56
56
  }
57
+ /**
58
+ * Updates an existing pin
59
+ * @param pin A pin to set
60
+ * @returns `true` if the entity has been updated, false otherwise
61
+ */
62
+ updatePin(pin) {
63
+ this.model.updatePin(pin);
64
+ }
57
65
  /**
58
66
  * Tells the controller which pin is selected in the model
59
67
  * @param pinId
@@ -80,4 +88,4 @@ export class PinController {
80
88
  this.dragging = dragging;
81
89
  }
82
90
  }
83
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJvbGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvcGlucy9jb250cm9sbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBOztHQUVHO0FBQ0gsTUFBTSxPQUFPLGFBQWE7RUFFeEIsWUFDVSxLQUFlLEVBQ2YsT0FBMEIsTUFBTSxFQUNoQyxPQUEwQixLQUFLO0lBRi9CLFVBQUssR0FBTCxLQUFLLENBQVU7SUFDZixTQUFJLEdBQUosSUFBSSxDQUE0QjtJQUNoQyxTQUFJLEdBQUosSUFBSSxDQUEyQjtJQUpqQyxhQUFRLEdBQWEsS0FBSyxDQUFDO0VBS2hDLENBQUM7RUFFSjs7Ozs7S0FLRztFQUNJLE1BQU0sQ0FBQyxHQUFRO0lBQ3BCLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0VBQ3pCLENBQUM7RUFFRDs7O0tBR0c7RUFDSSxTQUFTO0lBQ2QsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLEVBQUUsQ0FBQztFQUN6QixDQUFDO0VBRUQ7Ozs7Ozs7S0FPRztFQUNJLFNBQVMsQ0FBQyxHQUFRO0lBQ3ZCLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0VBQzVCLENBQUM7RUFFRDs7Ozs7O0tBTUc7RUFDSSxPQUFPLENBQUMsSUFBYztJQUMzQixJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztFQUMzQixDQUFDO0VBRUQ7Ozs7O0tBS0c7RUFDSSxNQUFNLENBQUMsR0FBUTtJQUNwQixJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztFQUN6QixDQUFDO0VBRUQ7OztLQUdHO0VBQ0ksZ0JBQWdCLENBQUMsS0FBYztJQUNwQyxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQztFQUNuQyxDQUFDO0VBRU0sV0FBVztJQUNoQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUM7RUFDbkIsQ0FBQztFQUVNLFdBQVc7SUFDaEIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDO0VBQ25CLENBQUM7RUFFTSxXQUFXLENBQUMsSUFBdUI7SUFDeEMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7RUFDbkIsQ0FBQztFQUVNLFdBQVcsQ0FBQyxJQUF1QjtJQUN4QyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztFQUNuQixDQUFDO0VBRU0sV0FBVztJQUNoQixPQUFPLElBQUksQ0FBQyxRQUFRLElBQUksS0FBSyxDQUFDO0VBQ2hDLENBQUM7RUFFTSxXQUFXLENBQUMsUUFBaUI7SUFDbEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7RUFDM0IsQ0FBQztDQUNGIn0=
91
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJvbGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvcGlucy9jb250cm9sbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBOztHQUVHO0FBQ0gsTUFBTSxPQUFPLGFBQWE7RUFFeEIsWUFDVSxLQUFlLEVBQ2YsT0FBMEIsTUFBTSxFQUNoQyxPQUEwQixLQUFLO0lBRi9CLFVBQUssR0FBTCxLQUFLLENBQVU7SUFDZixTQUFJLEdBQUosSUFBSSxDQUE0QjtJQUNoQyxTQUFJLEdBQUosSUFBSSxDQUEyQjtJQUpqQyxhQUFRLEdBQWEsS0FBSyxDQUFDO0VBS2hDLENBQUM7RUFFSjs7Ozs7S0FLRztFQUNJLE1BQU0sQ0FBQyxHQUFRO0lBQ3BCLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0VBQ3pCLENBQUM7RUFFRDs7O0tBR0c7RUFDSSxTQUFTO0lBQ2QsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLEVBQUUsQ0FBQztFQUN6QixDQUFDO0VBRUQ7Ozs7Ozs7S0FPRztFQUNJLFNBQVMsQ0FBQyxHQUFRO0lBQ3ZCLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0VBQzVCLENBQUM7RUFFRDs7Ozs7O0tBTUc7RUFDSSxPQUFPLENBQUMsSUFBYztJQUMzQixJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztFQUMzQixDQUFDO0VBRUQ7Ozs7O0tBS0c7RUFDSSxNQUFNLENBQUMsR0FBUTtJQUNwQixJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztFQUN6QixDQUFDO0VBRUQ7Ozs7S0FJRztFQUNJLFNBQVMsQ0FBQyxHQUFRO0lBQ3ZCLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0VBQzVCLENBQUM7RUFFRDs7O0tBR0c7RUFDSSxnQkFBZ0IsQ0FBQyxLQUFjO0lBQ3BDLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO0VBQ25DLENBQUM7RUFFTSxXQUFXO0lBQ2hCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQztFQUNuQixDQUFDO0VBRU0sV0FBVztJQUNoQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUM7RUFDbkIsQ0FBQztFQUVNLFdBQVcsQ0FBQyxJQUF1QjtJQUN4QyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztFQUNuQixDQUFDO0VBRU0sV0FBVyxDQUFDLElBQXVCO0lBQ3hDLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO0VBQ25CLENBQUM7RUFFTSxXQUFXO0lBQ2hCLE9BQU8sSUFBSSxDQUFDLFFBQVEsSUFBSSxLQUFLLENBQUM7RUFDaEMsQ0FBQztFQUVNLFdBQVcsQ0FBQyxRQUFpQjtJQUNsQyxJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztFQUMzQixDQUFDO0NBQ0YifQ==
@@ -89,6 +89,21 @@ export class PinModel {
89
89
  this.entitiesChanged.emit(this.getPins());
90
90
  return true;
91
91
  }
92
+ /**
93
+ * Sets the set of entities to be placed with the model.
94
+ *
95
+ * @param pin A pin to set
96
+ * @returns `true` if the entity has been set
97
+ */
98
+ updatePin(pin) {
99
+ const pinById = this.getPinById(pin.id);
100
+ if (pinById != null) {
101
+ this.entities = Object.assign(Object.assign({}, this.entities), { [pin.id]: pin });
102
+ this.entitiesChanged.emit(this.getPins());
103
+ return true;
104
+ }
105
+ return false;
106
+ }
92
107
  /**
93
108
  * Registers an event listener that will be invoked when the model's
94
109
  * pin entities change.
@@ -118,4 +133,4 @@ export class PinModel {
118
133
  this.selectionChanged.emit(this.selectedPinId);
119
134
  }
120
135
  }
121
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3BpbnMvbW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFjLGVBQWUsRUFBWSxNQUFNLGtCQUFrQixDQUFDO0FBa0N6RSxNQUFNLFVBQVUsU0FBUyxDQUFDLEdBQVM7RUFDakMsT0FBTyxHQUFHLElBQUksSUFBSSxJQUFLLEdBQWUsQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDO0FBQ3ZELENBQUM7QUFFRCxNQUFNLFVBQVUsWUFBWSxDQUFDLEdBQVM7RUFDcEMsT0FBTyxHQUFHLElBQUksSUFBSSxJQUFLLEdBQWUsQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDO0FBQ3ZELENBQUM7QUFFRCxNQUFNLE9BQU8sUUFBUTtFQUFyQjtJQUNVLGFBQVEsR0FBd0IsRUFBRSxDQUFDO0lBR25DLG9CQUFlLEdBQUcsSUFBSSxlQUFlLEVBQVMsQ0FBQztJQUMvQyxxQkFBZ0IsR0FBRyxJQUFJLGVBQWUsRUFBc0IsQ0FBQztFQTRIdkUsQ0FBQztFQTFIQzs7Ozs7S0FLRztFQUNJLE1BQU0sQ0FBQyxHQUFRLEVBQUUsYUFBYSxHQUFHLEtBQUs7SUFDM0MsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxJQUFJLEVBQUU7TUFDakMsSUFBSSxDQUFDLFFBQVEsbUNBQ1IsSUFBSSxDQUFDLFFBQVEsS0FDaEIsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsR0FBRyxHQUNkLENBQUM7TUFFRixJQUFJLENBQUMsYUFBYSxFQUFFO1FBQ2xCLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO09BQzNDO01BQ0QsT0FBTyxJQUFJLENBQUM7S0FDYjtTQUFNO01BQ0wsT0FBTyxLQUFLLENBQUM7S0FDZDtFQUNILENBQUM7RUFFRDs7S0FFRztFQUNJLFNBQVM7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
136
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3BpbnMvbW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFjLGVBQWUsRUFBWSxNQUFNLGtCQUFrQixDQUFDO0FBa0N6RSxNQUFNLFVBQVUsU0FBUyxDQUFDLEdBQVM7RUFDakMsT0FBTyxHQUFHLElBQUksSUFBSSxJQUFLLEdBQWUsQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDO0FBQ3ZELENBQUM7QUFFRCxNQUFNLFVBQVUsWUFBWSxDQUFDLEdBQVM7RUFDcEMsT0FBTyxHQUFHLElBQUksSUFBSSxJQUFLLEdBQWUsQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDO0FBQ3ZELENBQUM7QUFFRCxNQUFNLE9BQU8sUUFBUTtFQUFyQjtJQUNVLGFBQVEsR0FBd0IsRUFBRSxDQUFDO0lBR25DLG9CQUFlLEdBQUcsSUFBSSxlQUFlLEVBQVMsQ0FBQztJQUMvQyxxQkFBZ0IsR0FBRyxJQUFJLGVBQWUsRUFBc0IsQ0FBQztFQWlKdkUsQ0FBQztFQS9JQzs7Ozs7S0FLRztFQUNJLE1BQU0sQ0FBQyxHQUFRLEVBQUUsYUFBYSxHQUFHLEtBQUs7SUFDM0MsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxJQUFJLEVBQUU7TUFDakMsSUFBSSxDQUFDLFFBQVEsbUNBQ1IsSUFBSSxDQUFDLFFBQVEsS0FDaEIsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsR0FBRyxHQUNkLENBQUM7TUFFRixJQUFJLENBQUMsYUFBYSxFQUFFO1FBQ2xCLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO09BQzNDO01BQ0QsT0FBTyxJQUFJLENBQUM7S0FDYjtTQUFNO01BQ0wsT0FBTyxLQUFLLENBQUM7S0FDZDtFQUNILENBQUM7RUFFRDs7S0FFRztFQUNJLFNBQVM7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
@@ -107821,6 +107821,14 @@ class PinController {
107821
107821
  setPin(pin) {
107822
107822
  this.model.setPin(pin);
107823
107823
  }
107824
+ /**
107825
+ * Updates an existing pin
107826
+ * @param pin A pin to set
107827
+ * @returns `true` if the entity has been updated, false otherwise
107828
+ */
107829
+ updatePin(pin) {
107830
+ this.model.updatePin(pin);
107831
+ }
107824
107832
  /**
107825
107833
  * Tells the controller which pin is selected in the model
107826
107834
  * @param pinId
@@ -107938,6 +107946,21 @@ class PinModel {
107938
107946
  this.entitiesChanged.emit(this.getPins());
107939
107947
  return true;
107940
107948
  }
107949
+ /**
107950
+ * Sets the set of entities to be placed with the model.
107951
+ *
107952
+ * @param pin A pin to set
107953
+ * @returns `true` if the entity has been set
107954
+ */
107955
+ updatePin(pin) {
107956
+ const pinById = this.getPinById(pin.id);
107957
+ if (pinById != null) {
107958
+ this.entities = Object.assign(Object.assign({}, this.entities), { [pin.id]: pin });
107959
+ this.entitiesChanged.emit(this.getPins());
107960
+ return true;
107961
+ }
107962
+ return false;
107963
+ }
107941
107964
  /**
107942
107965
  * Registers an event listener that will be invoked when the model's
107943
107966
  * pin entities change.
@@ -108115,7 +108138,6 @@ let VertexPinLabel = class extends HTMLElement$1 {
108115
108138
  this.labelChanged = createEvent(this, "labelChanged", 7);
108116
108139
  this.labelFocused = createEvent(this, "labelFocused", 7);
108117
108140
  this.labelBlurred = createEvent(this, "labelBlurred", 7);
108118
- var _a;
108119
108141
  this.focused = false;
108120
108142
  this.textareaRows = 1;
108121
108143
  this.computeContentSize = () => {
@@ -108139,12 +108161,11 @@ let VertexPinLabel = class extends HTMLElement$1 {
108139
108161
  }
108140
108162
  };
108141
108163
  this.handlePointerDown = (event) => {
108142
- var _a, _b, _c;
108164
+ var _a;
108143
108165
  if (!this.focused) {
108144
- (_a = this.pinController) === null || _a === void 0 ? void 0 : _a.setSelectedPinId((_b = this.pin) === null || _b === void 0 ? void 0 : _b.id);
108145
108166
  if (this.elementBounds != null) {
108146
108167
  this.relativePointerDownPosition = translatePointToRelative(getMouseClientPosition(event, this.elementBounds), this.elementBounds);
108147
- this.pinPointerDownPosition = (_c = this.pin) === null || _c === void 0 ? void 0 : _c.label.point;
108168
+ this.pinPointerDownPosition = (_a = this.pin) === null || _a === void 0 ? void 0 : _a.label.point;
108148
108169
  window.addEventListener('pointermove', this.handlePointerMove);
108149
108170
  window.addEventListener('pointerup', this.handlePointerUp);
108150
108171
  }
@@ -108170,7 +108191,7 @@ let VertexPinLabel = class extends HTMLElement$1 {
108170
108191
  }
108171
108192
  : undefined;
108172
108193
  if (myUpdatedPin) {
108173
- (_b = this.pinController) === null || _b === void 0 ? void 0 : _b.setPin(myUpdatedPin);
108194
+ (_b = this.pinController) === null || _b === void 0 ? void 0 : _b.updatePin(myUpdatedPin);
108174
108195
  this.computeScreenPosition();
108175
108196
  }
108176
108197
  }
@@ -108199,27 +108220,32 @@ let VertexPinLabel = class extends HTMLElement$1 {
108199
108220
  const input = event.target;
108200
108221
  this.value = input.value;
108201
108222
  };
108202
- if (((_a = this.pin) === null || _a === void 0 ? void 0 : _a.label.text) != null) {
108203
- this.value = this.pin.label.text;
108204
- }
108205
- else {
108206
- this.value = '';
108207
- }
108223
+ this.value = this.getPinText();
108208
108224
  }
108209
108225
  /**
108210
108226
  * Gives focus to the the component's internal text input.
108211
108227
  */
108212
108228
  async setFocus() {
108213
- var _a, _b;
108229
+ var _a, _b, _c;
108214
108230
  // HTMLInputElement.focus() doesn't exist in tests.
108215
108231
  if (typeof ((_a = this.inputEl) === null || _a === void 0 ? void 0 : _a.focus) === 'function') {
108216
- (_b = this.inputEl) === null || _b === void 0 ? void 0 : _b.focus();
108232
+ if (this.focused) {
108233
+ (_b = this.inputEl) === null || _b === void 0 ? void 0 : _b.focus();
108234
+ }
108235
+ else {
108236
+ (_c = this.inputEl) === null || _c === void 0 ? void 0 : _c.blur();
108237
+ }
108217
108238
  }
108218
108239
  }
108219
108240
  watchFocusChange() {
108241
+ var _a, _b;
108220
108242
  this.labelChanged.emit();
108243
+ if (this.focused) {
108244
+ (_a = this.pinController) === null || _a === void 0 ? void 0 : _a.setSelectedPinId((_b = this.pin) === null || _b === void 0 ? void 0 : _b.id);
108245
+ }
108221
108246
  }
108222
108247
  watchPinChange() {
108248
+ this.value = this.getPinText();
108223
108249
  this.computeScreenPosition();
108224
108250
  }
108225
108251
  watchElementBoundsChange() {
@@ -108305,6 +108331,16 @@ let VertexPinLabel = class extends HTMLElement$1 {
108305
108331
  var _a, _b;
108306
108332
  return `calc(${((_a = this.elementBounds) === null || _a === void 0 ? void 0 : _a.height.toString()) || 0}px - ${((_b = this.computedScreenPosition) === null || _b === void 0 ? void 0 : _b.y.toString()) || 0}px)`;
108307
108333
  }
108334
+ getPinText() {
108335
+ var _a;
108336
+ if (((_a = this.pin) === null || _a === void 0 ? void 0 : _a.label.text) != null) {
108337
+ this.value = this.pin.label.text;
108338
+ }
108339
+ else {
108340
+ this.value = '';
108341
+ }
108342
+ return this.value;
108343
+ }
108308
108344
  computeScreenPosition() {
108309
108345
  this.computedScreenPosition =
108310
108346
  isTextPin(this.pin) &&
@@ -108318,7 +108354,7 @@ let VertexPinLabel = class extends HTMLElement$1 {
108318
108354
  this.focused = false;
108319
108355
  this.labelBlurred.emit((_a = this.pin) === null || _a === void 0 ? void 0 : _a.id);
108320
108356
  if (this.pin != null) {
108321
- (_b = this.pinController) === null || _b === void 0 ? void 0 : _b.setPin(Object.assign(Object.assign({}, this.pin), { label: {
108357
+ (_b = this.pinController) === null || _b === void 0 ? void 0 : _b.updatePin(Object.assign(Object.assign({}, this.pin), { label: {
108322
108358
  point: this.pin.label.point,
108323
108359
  text: this.value,
108324
108360
  } }));
@@ -108576,7 +108612,7 @@ let ViewerPinTool = class extends HTMLElement$1 {
108576
108612
  }
108577
108613
  render() {
108578
108614
  return (h(Host, null, h("vertex-viewer-dom-renderer", { viewer: this.viewer, drawMode: "2d" }, this.pins.map((pin) => {
108579
- return (h("vertex-viewer-pin-group", { "data-is-dom-group-element": true, pin: pin, elementBounds: this.elementBounds, pinModel: this.pinModel, pinController: this.pinController, projectionViewMatrix: this.projectionViewMatrix, selected: this.selectedPinId === pin.id }));
108615
+ return (h("vertex-viewer-pin-group", { id: `pin-group-${pin.id}`, "data-is-dom-group-element": true, pin: pin, elementBounds: this.elementBounds, pinModel: this.pinModel, pinController: this.pinController, projectionViewMatrix: this.projectionViewMatrix, selected: this.selectedPinId === pin.id }));
108580
108616
  }))));
108581
108617
  }
108582
108618
  setupController() {
@@ -59,6 +59,14 @@ class PinController {
59
59
  setPin(pin) {
60
60
  this.model.setPin(pin);
61
61
  }
62
+ /**
63
+ * Updates an existing pin
64
+ * @param pin A pin to set
65
+ * @returns `true` if the entity has been updated, false otherwise
66
+ */
67
+ updatePin(pin) {
68
+ this.model.updatePin(pin);
69
+ }
62
70
  /**
63
71
  * Tells the controller which pin is selected in the model
64
72
  * @param pinId
@@ -176,6 +184,21 @@ class PinModel {
176
184
  this.entitiesChanged.emit(this.getPins());
177
185
  return true;
178
186
  }
187
+ /**
188
+ * Sets the set of entities to be placed with the model.
189
+ *
190
+ * @param pin A pin to set
191
+ * @returns `true` if the entity has been set
192
+ */
193
+ updatePin(pin) {
194
+ const pinById = this.getPinById(pin.id);
195
+ if (pinById != null) {
196
+ this.entities = Object.assign(Object.assign({}, this.entities), { [pin.id]: pin });
197
+ this.entitiesChanged.emit(this.getPins());
198
+ return true;
199
+ }
200
+ return false;
201
+ }
179
202
  /**
180
203
  * Registers an event listener that will be invoked when the model's
181
204
  * pin entities change.
@@ -9,7 +9,7 @@ import './grpc-web-client.umd-5982b7b0.js';
9
9
  import './streamAttributes-6a88dec4.js';
10
10
  import './entities-ce81dd7f.js';
11
11
  import { V as Viewport } from './viewport-35393803.js';
12
- import { i as isDefaultPin, b as isTextPin, P as PinModel, a as PinController } from './model-9c96a574.js';
12
+ import { i as isDefaultPin, b as isTextPin, P as PinModel, a as PinController } from './model-9339c130.js';
13
13
  import { a as translatePointToScreen } from './utils-0edb4743.js';
14
14
  import { c as classnames } from './index-455380d0.js';
15
15
  import './browser.esm-fbab8e63.js';
@@ -5,7 +5,7 @@ import { r as registerInstance, c as createEvent, h, H as Host, g as getElement
5
5
  import { p as point } from './bundle.esm-495b8d7f.js';
6
6
  import { c as classnames } from './index-455380d0.js';
7
7
  import { g as getMouseClientPosition } from './dom-9c20b025.js';
8
- import { a as PinController, P as PinModel, b as isTextPin } from './model-9c96a574.js';
8
+ import { a as PinController, P as PinModel, b as isTextPin } from './model-9339c130.js';
9
9
  import { r as readDOM } from './stencil-9bf7fb9e.js';
10
10
  import { t as translatePointToRelative, a as translatePointToScreen } from './utils-0edb4743.js';
11
11
  import './_commonjsHelpers-9943807e.js';
@@ -24,7 +24,6 @@ let VertexPinLabel = class {
24
24
  this.labelChanged = createEvent(this, "labelChanged", 7);
25
25
  this.labelFocused = createEvent(this, "labelFocused", 7);
26
26
  this.labelBlurred = createEvent(this, "labelBlurred", 7);
27
- var _a;
28
27
  this.focused = false;
29
28
  this.textareaRows = 1;
30
29
  this.computeContentSize = () => {
@@ -48,12 +47,11 @@ let VertexPinLabel = class {
48
47
  }
49
48
  };
50
49
  this.handlePointerDown = (event) => {
51
- var _a, _b, _c;
50
+ var _a;
52
51
  if (!this.focused) {
53
- (_a = this.pinController) === null || _a === void 0 ? void 0 : _a.setSelectedPinId((_b = this.pin) === null || _b === void 0 ? void 0 : _b.id);
54
52
  if (this.elementBounds != null) {
55
53
  this.relativePointerDownPosition = translatePointToRelative(getMouseClientPosition(event, this.elementBounds), this.elementBounds);
56
- this.pinPointerDownPosition = (_c = this.pin) === null || _c === void 0 ? void 0 : _c.label.point;
54
+ this.pinPointerDownPosition = (_a = this.pin) === null || _a === void 0 ? void 0 : _a.label.point;
57
55
  window.addEventListener('pointermove', this.handlePointerMove);
58
56
  window.addEventListener('pointerup', this.handlePointerUp);
59
57
  }
@@ -79,7 +77,7 @@ let VertexPinLabel = class {
79
77
  }
80
78
  : undefined;
81
79
  if (myUpdatedPin) {
82
- (_b = this.pinController) === null || _b === void 0 ? void 0 : _b.setPin(myUpdatedPin);
80
+ (_b = this.pinController) === null || _b === void 0 ? void 0 : _b.updatePin(myUpdatedPin);
83
81
  this.computeScreenPosition();
84
82
  }
85
83
  }
@@ -108,27 +106,32 @@ let VertexPinLabel = class {
108
106
  const input = event.target;
109
107
  this.value = input.value;
110
108
  };
111
- if (((_a = this.pin) === null || _a === void 0 ? void 0 : _a.label.text) != null) {
112
- this.value = this.pin.label.text;
113
- }
114
- else {
115
- this.value = '';
116
- }
109
+ this.value = this.getPinText();
117
110
  }
118
111
  /**
119
112
  * Gives focus to the the component's internal text input.
120
113
  */
121
114
  async setFocus() {
122
- var _a, _b;
115
+ var _a, _b, _c;
123
116
  // HTMLInputElement.focus() doesn't exist in tests.
124
117
  if (typeof ((_a = this.inputEl) === null || _a === void 0 ? void 0 : _a.focus) === 'function') {
125
- (_b = this.inputEl) === null || _b === void 0 ? void 0 : _b.focus();
118
+ if (this.focused) {
119
+ (_b = this.inputEl) === null || _b === void 0 ? void 0 : _b.focus();
120
+ }
121
+ else {
122
+ (_c = this.inputEl) === null || _c === void 0 ? void 0 : _c.blur();
123
+ }
126
124
  }
127
125
  }
128
126
  watchFocusChange() {
127
+ var _a, _b;
129
128
  this.labelChanged.emit();
129
+ if (this.focused) {
130
+ (_a = this.pinController) === null || _a === void 0 ? void 0 : _a.setSelectedPinId((_b = this.pin) === null || _b === void 0 ? void 0 : _b.id);
131
+ }
130
132
  }
131
133
  watchPinChange() {
134
+ this.value = this.getPinText();
132
135
  this.computeScreenPosition();
133
136
  }
134
137
  watchElementBoundsChange() {
@@ -214,6 +217,16 @@ let VertexPinLabel = class {
214
217
  var _a, _b;
215
218
  return `calc(${((_a = this.elementBounds) === null || _a === void 0 ? void 0 : _a.height.toString()) || 0}px - ${((_b = this.computedScreenPosition) === null || _b === void 0 ? void 0 : _b.y.toString()) || 0}px)`;
216
219
  }
220
+ getPinText() {
221
+ var _a;
222
+ if (((_a = this.pin) === null || _a === void 0 ? void 0 : _a.label.text) != null) {
223
+ this.value = this.pin.label.text;
224
+ }
225
+ else {
226
+ this.value = '';
227
+ }
228
+ return this.value;
229
+ }
217
230
  computeScreenPosition() {
218
231
  this.computedScreenPosition =
219
232
  isTextPin(this.pin) &&
@@ -227,7 +240,7 @@ let VertexPinLabel = class {
227
240
  this.focused = false;
228
241
  this.labelBlurred.emit((_a = this.pin) === null || _a === void 0 ? void 0 : _a.id);
229
242
  if (this.pin != null) {
230
- (_b = this.pinController) === null || _b === void 0 ? void 0 : _b.setPin(Object.assign(Object.assign({}, this.pin), { label: {
243
+ (_b = this.pinController) === null || _b === void 0 ? void 0 : _b.updatePin(Object.assign(Object.assign({}, this.pin), { label: {
231
244
  point: this.pin.label.point,
232
245
  text: this.value,
233
246
  } }));
@@ -2,7 +2,7 @@
2
2
  * Copyright (c) 2022 Vertex Software LLC. All rights reserved.
3
3
  */
4
4
  import { r as registerInstance, h, H as Host, g as getElement } from './index-10c1495a.js';
5
- import { P as PinModel, a as PinController } from './model-9c96a574.js';
5
+ import { P as PinModel, a as PinController } from './model-9339c130.js';
6
6
  import { p as point } from './bundle.esm-495b8d7f.js';
7
7
  import { b as uuid } from './browser.esm-fbab8e63.js';
8
8
  import { t as translatePointToRelative } from './utils-0edb4743.js';
@@ -240,7 +240,7 @@ let ViewerPinTool = class {
240
240
  }
241
241
  render() {
242
242
  return (h(Host, null, h("vertex-viewer-dom-renderer", { viewer: this.viewer, drawMode: "2d" }, this.pins.map((pin) => {
243
- return (h("vertex-viewer-pin-group", { "data-is-dom-group-element": true, pin: pin, elementBounds: this.elementBounds, pinModel: this.pinModel, pinController: this.pinController, projectionViewMatrix: this.projectionViewMatrix, selected: this.selectedPinId === pin.id }));
243
+ return (h("vertex-viewer-pin-group", { id: `pin-group-${pin.id}`, "data-is-dom-group-element": true, pin: pin, elementBounds: this.elementBounds, pinModel: this.pinModel, pinController: this.pinController, projectionViewMatrix: this.projectionViewMatrix, selected: this.selectedPinId === pin.id }));
244
244
  }))));
245
245
  }
246
246
  setupController() {
@@ -64,6 +64,7 @@ export declare class VertexPinLabel {
64
64
  private computeMaxHeight;
65
65
  private computeRemainingWidth;
66
66
  private computeRemainingHeight;
67
+ private getPinText;
67
68
  private computeScreenPosition;
68
69
  private computeContentSize;
69
70
  private handleInputKeyDown;
@@ -44,6 +44,12 @@ export declare class PinController {
44
44
  * @returns `true` if the entity has been added.
45
45
  */
46
46
  setPin(pin: Pin): void;
47
+ /**
48
+ * Updates an existing pin
49
+ * @param pin A pin to set
50
+ * @returns `true` if the entity has been updated, false otherwise
51
+ */
52
+ updatePin(pin: Pin): void;
47
53
  /**
48
54
  * Tells the controller which pin is selected in the model
49
55
  * @param pinId
@@ -73,6 +73,13 @@ export declare class PinModel {
73
73
  * @returns `true` if the entity has been set
74
74
  */
75
75
  setPin(pin: Pin): boolean;
76
+ /**
77
+ * Sets the set of entities to be placed with the model.
78
+ *
79
+ * @param pin A pin to set
80
+ * @returns `true` if the entity has been set
81
+ */
82
+ updatePin(pin: Pin): boolean;
76
83
  /**
77
84
  * Registers an event listener that will be invoked when the model's
78
85
  * pin entities change.
@@ -1,4 +1,4 @@
1
1
  /**!
2
2
  * Copyright (c) 2022 Vertex Software LLC. All rights reserved.
3
3
  */
4
- import{r as i,h as t,H as s,g as e}from"./p-cafa57a6.js";import{P as o,a as n}from"./p-80c8749e.js";import{p as h}from"./p-ca782228.js";import{b as r}from"./p-c6c68120.js";import{t as a}from"./p-92fb8f9d.js";import{l,p as d}from"./p-2894130f.js";import{g as p}from"./p-aa324b79.js";import{E as c}from"./p-a380f0c2.js";import{E as v}from"./p-df8fbe56.js";import{g as u}from"./p-5809b400.js";import"./p-99df8c75.js";class w{constructor(i){this.rectObserver=new c,this.droppableSurfaces=[v.PRECISE_SURFACE,v.IMPRECISE_SURFACE,v.GENERIC_GEOMETRY],this.handlePointerMoveCursorCheck=async i=>{await this.isDroppableSurface(i)?this.addCursor(this.getCusorType()):this.clearCursor()},this.handlePointerMove=async i=>{await this.isDroppableSurface(i)?this.addCursor(this.getCusorType()):this.clearCursor()},this.handlePointerDown=async i=>{const t=t=>{if(h.distance(h.create(i.clientX,t.clientY),h.create(t.clientX,t.clientY))<=2&&2!==i.buttons&&"edit"===this.controller.getToolMode()){const t=p(i,this.elementRect);this.handlePlacePin(t)}s()},s=()=>{window.removeEventListener("pointermove",this.handlePointerMove),window.removeEventListener("pointerup",t)};return window.addEventListener("pointerup",t),window.addEventListener("pointermove",this.handlePointerMove),{dispose:s}},this.controller=i}get elementRect(){return this.rectObserver.rect}initialize(i,t){this.element=i,this.api=t,this.rectObserver.observe(i),i.addEventListener("pointermove",this.handlePointerMoveCursorCheck),i.addEventListener("pointerdown",this.handlePointerDown)}dispose(){var i,t;this.rectObserver.disconnect(),null===(i=this.element)||void 0===i||i.removeEventListener("pointermove",this.handlePointerMoveCursorCheck),null===(t=this.element)||void 0===t||t.removeEventListener("pointerdown",this.handlePointerDown),this.element=void 0,this.api=void 0}async getWorldPositionForPoint(i){return this.ifInitialized((async({api:t})=>await t.getWorldPointFromViewport(i)))}async handlePlacePin(i,t){this.ifInitialized((async({api:s})=>{var e,o,n,h;const[l]=await s.hitItems(i);if(null!=(null==l?void 0:l.hitPoint)&&null!=this.elementRect){const s=await this.getWorldPositionForPoint(i),d=a(Object.assign({},i),this.elementRect);if(null!=s){const i=null!=t?t.id:r.create();switch(this.controller.getToolType()){case"pin":this.controller.setPin({id:i,worldPosition:s,partId:null!==(o=null===(e=null==l?void 0:l.itemId)||void 0===e?void 0:e.hex)&&void 0!==o?o:void 0});break;case"pin-label":this.controller.setPin({id:i,worldPosition:s,partId:null!==(h=null===(n=null==l?void 0:l.itemId)||void 0===n?void 0:n.hex)&&void 0!==h?h:void 0,label:{point:d}})}}}else this.controller.setSelectedPinId()}))}getCusorType(){switch(this.controller.getToolType()){case"pin":return d;case"pin-label":return l}}addCursor(i){this.clearCursor(),this.cursor=this.ifInitialized((({api:t})=>t.addCursor(i)))}async isDroppableSurface(i){var t;const s=p(i,this.elementRect),e=await(null===(t=this.api)||void 0===t?void 0:t.getEntityTypeAtPoint(s));return null!=e&&this.droppableSurfaces.includes(e)}ifInitialized(i){if(null!=this.element&&null!=this.api)return i({element:this.element,api:this.api});throw new Error("Pins interaction handler not initialized.")}clearCursor(){var i;null===(i=this.cursor)||void 0===i||i.dispose(),this.cursor=void 0}}let m=class{constructor(t){i(this,t),this.pinModel=new o,this.pins=[],this.tool="pin",this.mode="view",this.handleSetProjectionMatrix=()=>{var i,t;this.projectionViewMatrix=null===(t=null===(i=this.viewer)||void 0===i?void 0:i.frame)||void 0===t?void 0:t.scene.camera.projectionViewMatrix}}watchModeChange(){var i;null===(i=this.pinController)||void 0===i||i.setToolMode(this.mode),this.setupInteractionHandler()}watchTypeChange(){var i;null===(i=this.pinController)||void 0===i||i.setToolType(this.tool),this.setupInteractionHandler()}connectedCallback(){this.setupInteractionHandler()}componentWillLoad(){this.updateViewport(),this.setupController(),this.setupInteractionHandler(),this.pinModel.onEntitiesChanged((i=>{this.pins=i})),this.pinModel.onSelectionChange((i=>{this.selectedPinId=i}))}componentDidLoad(){this.resizeObserver=new ResizeObserver((()=>this.updateViewport())),this.resizeObserver.observe(this.hostEl)}disconnectedCallback(){this.clearInteractionHandler(),this.clearModelListeners()}handleViewerChanged(i,t){this.setupInteractionHandler(),null!=t&&t.removeEventListener("frameDrawn",this.handleSetProjectionMatrix),null!=i&&i.addEventListener("frameDrawn",this.handleSetProjectionMatrix),this.handleSetProjectionMatrix()}render(){return t(s,null,t("vertex-viewer-dom-renderer",{viewer:this.viewer,drawMode:"2d"},this.pins.map((i=>t("vertex-viewer-pin-group",{"data-is-dom-group-element":!0,pin:i,elementBounds:this.elementBounds,pinModel:this.pinModel,pinController:this.pinController,projectionViewMatrix:this.projectionViewMatrix,selected:this.selectedPinId===i.id})))))}setupController(){this.pinController=new n(this.pinModel,this.mode,this.tool)}clearInteractionHandler(){var i;null===(i=this.registeredInteractionHandler)||void 0===i||i.then((i=>i.dispose())),this.registeredInteractionHandler=void 0}setupInteractionHandler(){var i;this.clearInteractionHandler(),null!=this.pinController&&(this.registeredInteractionHandler=null===(i=this.viewer)||void 0===i?void 0:i.registerInteractionHandler(new w(this.pinController)))}clearModelListeners(){var i,t;null===(i=this.onEntitiesChangedHandler)||void 0===i||i.dispose(),this.onEntitiesChangedHandler=void 0,null===(t=this.resizeObserver)||void 0===t||t.disconnect()}updateViewport(){const i=u(this.hostEl);this.elementBounds=i}get hostEl(){return e(this)}static get watchers(){return{mode:["watchModeChange"],tool:["watchTypeChange"],viewer:["handleViewerChanged"]}}};m.style=":host{position:absolute;top:0;bottom:0;left:0;right:0;overflow:hidden;pointer-events:none}";export{m as vertex_viewer_pin_tool}
4
+ import{r as i,h as t,H as s,g as e}from"./p-cafa57a6.js";import{P as o,a as n}from"./p-f0dd8887.js";import{p as h}from"./p-ca782228.js";import{b as r}from"./p-c6c68120.js";import{t as a}from"./p-92fb8f9d.js";import{l,p as d}from"./p-2894130f.js";import{g as p}from"./p-aa324b79.js";import{E as c}from"./p-a380f0c2.js";import{E as v}from"./p-df8fbe56.js";import{g as u}from"./p-5809b400.js";import"./p-99df8c75.js";class w{constructor(i){this.rectObserver=new c,this.droppableSurfaces=[v.PRECISE_SURFACE,v.IMPRECISE_SURFACE,v.GENERIC_GEOMETRY],this.handlePointerMoveCursorCheck=async i=>{await this.isDroppableSurface(i)?this.addCursor(this.getCusorType()):this.clearCursor()},this.handlePointerMove=async i=>{await this.isDroppableSurface(i)?this.addCursor(this.getCusorType()):this.clearCursor()},this.handlePointerDown=async i=>{const t=t=>{if(h.distance(h.create(i.clientX,t.clientY),h.create(t.clientX,t.clientY))<=2&&2!==i.buttons&&"edit"===this.controller.getToolMode()){const t=p(i,this.elementRect);this.handlePlacePin(t)}s()},s=()=>{window.removeEventListener("pointermove",this.handlePointerMove),window.removeEventListener("pointerup",t)};return window.addEventListener("pointerup",t),window.addEventListener("pointermove",this.handlePointerMove),{dispose:s}},this.controller=i}get elementRect(){return this.rectObserver.rect}initialize(i,t){this.element=i,this.api=t,this.rectObserver.observe(i),i.addEventListener("pointermove",this.handlePointerMoveCursorCheck),i.addEventListener("pointerdown",this.handlePointerDown)}dispose(){var i,t;this.rectObserver.disconnect(),null===(i=this.element)||void 0===i||i.removeEventListener("pointermove",this.handlePointerMoveCursorCheck),null===(t=this.element)||void 0===t||t.removeEventListener("pointerdown",this.handlePointerDown),this.element=void 0,this.api=void 0}async getWorldPositionForPoint(i){return this.ifInitialized((async({api:t})=>await t.getWorldPointFromViewport(i)))}async handlePlacePin(i,t){this.ifInitialized((async({api:s})=>{var e,o,n,h;const[l]=await s.hitItems(i);if(null!=(null==l?void 0:l.hitPoint)&&null!=this.elementRect){const s=await this.getWorldPositionForPoint(i),d=a(Object.assign({},i),this.elementRect);if(null!=s){const i=null!=t?t.id:r.create();switch(this.controller.getToolType()){case"pin":this.controller.setPin({id:i,worldPosition:s,partId:null!==(o=null===(e=null==l?void 0:l.itemId)||void 0===e?void 0:e.hex)&&void 0!==o?o:void 0});break;case"pin-label":this.controller.setPin({id:i,worldPosition:s,partId:null!==(h=null===(n=null==l?void 0:l.itemId)||void 0===n?void 0:n.hex)&&void 0!==h?h:void 0,label:{point:d}})}}}else this.controller.setSelectedPinId()}))}getCusorType(){switch(this.controller.getToolType()){case"pin":return d;case"pin-label":return l}}addCursor(i){this.clearCursor(),this.cursor=this.ifInitialized((({api:t})=>t.addCursor(i)))}async isDroppableSurface(i){var t;const s=p(i,this.elementRect),e=await(null===(t=this.api)||void 0===t?void 0:t.getEntityTypeAtPoint(s));return null!=e&&this.droppableSurfaces.includes(e)}ifInitialized(i){if(null!=this.element&&null!=this.api)return i({element:this.element,api:this.api});throw new Error("Pins interaction handler not initialized.")}clearCursor(){var i;null===(i=this.cursor)||void 0===i||i.dispose(),this.cursor=void 0}}let m=class{constructor(t){i(this,t),this.pinModel=new o,this.pins=[],this.tool="pin",this.mode="view",this.handleSetProjectionMatrix=()=>{var i,t;this.projectionViewMatrix=null===(t=null===(i=this.viewer)||void 0===i?void 0:i.frame)||void 0===t?void 0:t.scene.camera.projectionViewMatrix}}watchModeChange(){var i;null===(i=this.pinController)||void 0===i||i.setToolMode(this.mode),this.setupInteractionHandler()}watchTypeChange(){var i;null===(i=this.pinController)||void 0===i||i.setToolType(this.tool),this.setupInteractionHandler()}connectedCallback(){this.setupInteractionHandler()}componentWillLoad(){this.updateViewport(),this.setupController(),this.setupInteractionHandler(),this.pinModel.onEntitiesChanged((i=>{this.pins=i})),this.pinModel.onSelectionChange((i=>{this.selectedPinId=i}))}componentDidLoad(){this.resizeObserver=new ResizeObserver((()=>this.updateViewport())),this.resizeObserver.observe(this.hostEl)}disconnectedCallback(){this.clearInteractionHandler(),this.clearModelListeners()}handleViewerChanged(i,t){this.setupInteractionHandler(),null!=t&&t.removeEventListener("frameDrawn",this.handleSetProjectionMatrix),null!=i&&i.addEventListener("frameDrawn",this.handleSetProjectionMatrix),this.handleSetProjectionMatrix()}render(){return t(s,null,t("vertex-viewer-dom-renderer",{viewer:this.viewer,drawMode:"2d"},this.pins.map((i=>t("vertex-viewer-pin-group",{id:`pin-group-${i.id}`,"data-is-dom-group-element":!0,pin:i,elementBounds:this.elementBounds,pinModel:this.pinModel,pinController:this.pinController,projectionViewMatrix:this.projectionViewMatrix,selected:this.selectedPinId===i.id})))))}setupController(){this.pinController=new n(this.pinModel,this.mode,this.tool)}clearInteractionHandler(){var i;null===(i=this.registeredInteractionHandler)||void 0===i||i.then((i=>i.dispose())),this.registeredInteractionHandler=void 0}setupInteractionHandler(){var i;this.clearInteractionHandler(),null!=this.pinController&&(this.registeredInteractionHandler=null===(i=this.viewer)||void 0===i?void 0:i.registerInteractionHandler(new w(this.pinController)))}clearModelListeners(){var i,t;null===(i=this.onEntitiesChangedHandler)||void 0===i||i.dispose(),this.onEntitiesChangedHandler=void 0,null===(t=this.resizeObserver)||void 0===t||t.disconnect()}updateViewport(){const i=u(this.hostEl);this.elementBounds=i}get hostEl(){return e(this)}static get watchers(){return{mode:["watchModeChange"],tool:["watchTypeChange"],viewer:["handleViewerChanged"]}}};m.style=":host{position:absolute;top:0;bottom:0;left:0;right:0;overflow:hidden;pointer-events:none}";export{m as vertex_viewer_pin_tool}
@@ -0,0 +1,4 @@
1
+ /**!
2
+ * Copyright (c) 2022 Vertex Software LLC. All rights reserved.
3
+ */
4
+ import{r as i,c as t,h as n,H as e,g as o}from"./p-cafa57a6.js";import{p as a}from"./p-ca782228.js";import{c as s}from"./p-f482325b.js";import{g as l}from"./p-aa324b79.js";import{a as r,P as h,b as d}from"./p-f0dd8887.js";import{r as v}from"./p-fad9693e.js";import{t as p,a as b}from"./p-92fb8f9d.js";import"./p-112455b1.js";import"./p-c6c68120.js";import"./p-99df8c75.js";let u=class{constructor(n){i(this,n),this.labelChanged=t(this,"labelChanged",7),this.labelFocused=t(this,"labelFocused",7),this.labelBlurred=t(this,"labelBlurred",7),this.focused=!1,this.textareaRows=1,this.computeContentSize=()=>{v((()=>{if(null!=this.contentEl){this.contentElBounds=this.contentEl.getBoundingClientRect();const i=window.getComputedStyle(this.contentEl);this.textareaRows=Math.max(1,Math.ceil((parseFloat(i.height)-2*parseFloat(i.borderWidth))/parseFloat(i.lineHeight)))}}))},this.handleInputKeyDown=i=>{"Enter"===i.key&&(i.ctrlKey||i.metaKey)?(i.preventDefault(),this.submit()):"Enter"===i.key&&(this.textareaRows+=1)},this.handlePointerDown=i=>{var t;this.focused||null!=this.elementBounds&&(this.relativePointerDownPosition=p(l(i,this.elementBounds),this.elementBounds),this.pinPointerDownPosition=null===(t=this.pin)||void 0===t?void 0:t.label.point,window.addEventListener("pointermove",this.handlePointerMove),window.addEventListener("pointerup",this.handlePointerUp))},this.handlePointerMove=i=>{var t,n;if(null!=this.elementBounds&&this.relativePointerDownPosition&&null!=this.pinPointerDownPosition){const e=l(i,this.elementBounds),o=p(e,this.elementBounds),s=a.subtract(o,this.relativePointerDownPosition),r=null!=this.pin?{id:this.pin.id,worldPosition:this.pin.worldPosition,label:{point:a.add(this.pinPointerDownPosition,s),text:this.pin.label.text},partId:null===(t=this.pin)||void 0===t?void 0:t.partId}:void 0;r&&(null===(n=this.pinController)||void 0===n||n.updatePin(r),this.computeScreenPosition())}},this.handlePointerUp=i=>{var t,n;if("edit"===(null===(t=this.pinController)||void 0===t?void 0:t.getToolMode())&&null!=this.relativePointerDownPosition&&null!=this.elementBounds){const t=b(this.relativePointerDownPosition,this.elementBounds);a.distance(t,l(i,this.elementBounds))<=2&&(this.focused=!0,this.labelFocused.emit(null===(n=this.pin)||void 0===n?void 0:n.id))}this.relativePointerDownPosition=void 0,this.pinPointerDownPosition=void 0,window.removeEventListener("pointermove",this.handlePointerMove),window.removeEventListener("pointerup",this.handlePointerUp)},this.handleTextBlur=()=>{this.submit()},this.handleTextInput=i=>{this.value=i.target.value},this.value=this.getPinText()}async setFocus(){var i,t,n;"function"==typeof(null===(i=this.inputEl)||void 0===i?void 0:i.focus)&&(this.focused?null===(t=this.inputEl)||void 0===t||t.focus():null===(n=this.inputEl)||void 0===n||n.blur())}watchFocusChange(){var i,t;this.labelChanged.emit(),this.focused&&(null===(i=this.pinController)||void 0===i||i.setSelectedPinId(null===(t=this.pin)||void 0===t?void 0:t.id))}watchPinChange(){this.value=this.getPinText(),this.computeScreenPosition()}watchElementBoundsChange(){this.computeScreenPosition()}componentWillLoad(){this.computeScreenPosition()}componentDidLoad(){this.resizeObserver=new ResizeObserver((()=>{this.labelChanged.emit()})),this.contentResizeObserver=new ResizeObserver(this.computeContentSize),null!=this.hostEl&&this.resizeObserver.observe(this.hostEl),null!=this.contentEl&&this.contentResizeObserver.observe(this.contentEl),null==this.pinController&&(this.pinController=new r(new h))}disconnectedCallback(){var i,t;null===(i=this.resizeObserver)||void 0===i||i.disconnect(),null===(t=this.contentResizeObserver)||void 0===t||t.disconnect()}componentDidRender(){this.focused&&null!=this.inputEl&&this.setFocus()}render(){var i,t,o,a;return n(e,null,n("div",{id:`pin-label-${null===(i=this.pin)||void 0===i?void 0:i.id}`,class:s("pin-label-input-wrapper",{focused:this.focused}),onPointerDown:this.handlePointerDown,style:{top:`${(null===(t=this.computedScreenPosition)||void 0===t?void 0:t.y.toString())||0}px`,left:`${(null===(o=this.computedScreenPosition)||void 0===o?void 0:o.x.toString())||0}px`,minWidth:this.computeMinWidth(),maxWidth:this.computeMaxWidth(),maxHeight:this.computeMaxHeight()}},n("textarea",{id:`pin-label-input-${null===(a=this.pin)||void 0===a?void 0:a.id}`,class:s("pin-label-input","pin-label-text",{readonly:!this.focused}),disabled:!this.focused,ref:i=>this.inputEl=i,value:this.value,rows:this.textareaRows,onKeyDown:this.handleInputKeyDown,onInput:this.handleTextInput,onBlur:this.handleTextBlur}),!this.focused&&n("div",{class:"pin-input-drag-target",onPointerDown:this.handlePointerDown})),n("div",{ref:i=>this.contentEl=i,class:s("pin-label-text","pin-label-hidden"),style:{maxWidth:this.computeMaxWidth(),maxHeight:this.computeMaxHeight()}},this.hiddenContent()))}hiddenContent(){return this.value.includes("\n")?this.value.split("\n").reduce(((i,t)=>[...i,t,n("br",null)]),[]):[this.value]}computeMinWidth(){return null!=this.contentElBounds?`min(${this.contentElBounds.width+16}px, ${this.computeMaxWidth()})`:"var(--viewer-annotations-pin-label-min-width)"}computeMaxWidth(){return`min(var(--viewer-annotations-pin-label-max-width), ${this.computeRemainingWidth()})`}computeMaxHeight(){return`min(var(--viewer-annotations-pin-label-max-height), ${this.computeRemainingHeight()})`}computeRemainingWidth(){var i,t;return`calc(${(null===(i=this.elementBounds)||void 0===i?void 0:i.width.toString())||0}px - ${(null===(t=this.computedScreenPosition)||void 0===t?void 0:t.x.toString())||0}px)`}computeRemainingHeight(){var i,t;return`calc(${(null===(i=this.elementBounds)||void 0===i?void 0:i.height.toString())||0}px - ${(null===(t=this.computedScreenPosition)||void 0===t?void 0:t.y.toString())||0}px)`}getPinText(){var i;return this.value=null!=(null===(i=this.pin)||void 0===i?void 0:i.label.text)?this.pin.label.text:"",this.value}computeScreenPosition(){this.computedScreenPosition=d(this.pin)&&null!=this.elementBounds&&null!=this.pin.label.point?b(this.pin.label.point,this.elementBounds):void 0}submit(){var i,t;this.focused=!1,this.labelBlurred.emit(null===(i=this.pin)||void 0===i?void 0:i.id),null!=this.pin&&(null===(t=this.pinController)||void 0===t||t.updatePin(Object.assign(Object.assign({},this.pin),{label:{point:this.pin.label.point,text:this.value}})))}get hostEl(){return o(this)}static get watchers(){return{focused:["watchFocusChange"],pin:["watchPinChange"],elementBounds:["watchElementBoundsChange"]}}};u.style=":host{--viewer-annotations-pin-label-background-color:var(--blue-200);--viewer-annotations-pin-label-border-color:var(--blue-600);--viewer-annotations-pin-label-focused-border-color:var(--blue-700);--viewer-annotations-pin-label-color:var(--white);--viewer-annotations-pin-label-padding-y:0.375em;--viewer-annotations-pin-label-padding-x:0.5em;--viewer-annotations-pin-label-border-width:2px;--viewer-annotations-pin-label-border-style:solid;--viewer-annotations-pin-label-border-radius:0.25em;--viewer-annotations-pin-label-min-width:2rem;--viewer-annotations-pin-label-max-width:25rem;--viewer-annotations-pin-label-max-height:50rem;overflow:hidden;pointer-events:none}:host([mode='']) .pin-label{color:var(--viewer-annotations-pin-label-color);background:var(--viewer-annotations-pin-label-background-color)}.pin-label-text{font-family:Arial, Helvetica, sans-serif;font-size:0.875rem;line-height:1rem;word-break:break-word;white-space:pre-wrap}.pin-label-input-wrapper{display:flex;position:absolute;pointer-events:auto;box-sizing:border-box;min-width:var(--viewer-annotations-pin-label-min-width);max-width:var(--viewer-annotations-pin-label-max-width);max-height:var(--viewer-annotations-pin-label-max-height);background:var(--viewer-annotations-pin-label-background-color);border-width:var(--viewer-annotations-pin-label-border-width);border-style:var(--viewer-annotations-pin-label-border-style);border-color:var(--viewer-annotations-pin-label-border-color);border-radius:var(--viewer-annotations-pin-label-border-radius)}.pin-label-input-wrapper.focused{min-width:var(--viewer-annotations-pin-label-max-width);border-color:var(--viewer-annotations-pin-label-focused-border-color)}.pin-input-drag-target{position:absolute;top:0;left:0;width:100%;height:100%;cursor:pointer}.pin-label-input{resize:none;position:relative;outline:none;border:none;word-break:break-word;padding:0 0 0 0;background-color:transparent;margin:var(--viewer-annotations-pin-label-padding-y) var(--viewer-annotations-pin-label-padding-x);width:var(--viewer-annotations-pin-label-min-width);flex-grow:1;overflow:hidden;max-width:calc(var(--viewer-annotations-pin-label-max-width) - calc(2 * var(--viewer-annotations-pin-label-padding-x)))}.pin-label-input.readonly{pointer-events:auto;color:black;cursor:pointer}.pin-label-hidden{position:absolute;visibility:hidden;pointer-events:none;width:auto;height:auto;box-sizing:border-box;border-width:var(--viewer-annotations-pin-label-border-width);border-style:var(--viewer-annotations-pin-label-border-style);border-color:var(--viewer-annotations-pin-label-border-color);margin:var(--viewer-annotations-pin-label-padding-y) 0;padding:0 var(--viewer-annotations-pin-label-padding-x);max-width:calc(var(--viewer-annotations-pin-label-max-width) - calc(2 * var(--viewer-annotations-pin-label-padding-x)))}";let w=class{constructor(t){i(this,t)}render(){var i,t,o,a;return n(e,null,n("svg",{class:"svg"},n("line",{class:"label-line",x1:null===(i=this.labelPoint)||void 0===i?void 0:i.x,y1:null===(t=this.labelPoint)||void 0===t?void 0:t.y,x2:null===(o=this.pinPoint)||void 0===o?void 0:o.x,y2:null===(a=this.pinPoint)||void 0===a?void 0:a.y})))}};w.style=":host{--viewer-annotations-pin-label-line-color:var(--blue-600);--viewer-annotations-pin-label-line-width:1\n\n overflow: hidden;pointer-events:none}.label-line{pointer-events:auto;stroke:var(--viewer-annotations-pin-label-line-color);stroke-width:var( --viewer-annotations-pin-label-line-width);cursor:default}.svg{position:absolute;top:0;bottom:0;left:0;right:0;overflow:hidden;pointer-events:none;height:100%;width:100%}";export{u as vertex_viewer_pin_label,w as vertex_viewer_pin_label_line}
@@ -1,4 +1,4 @@
1
1
  /**!
2
2
  * Copyright (c) 2022 Vertex Software LLC. All rights reserved.
3
3
  */
4
- import{h as i,F as t,r as e}from"./p-cafa57a6.js";import{p as n,m as o,v as s}from"./p-ca782228.js";import"./p-2894130f.js";import"./p-4ca881c8.js";import"./p-3a20a038.js";import"./p-fbe9ad84.js";import"./p-df8fbe56.js";import{V as r}from"./p-dd9193ca.js";import{i as a,b as l,P as p,a as h}from"./p-80c8749e.js";import{a as d}from"./p-92fb8f9d.js";import{c as v}from"./p-f482325b.js";import"./p-c6c68120.js";import"./p-112455b1.js";import"./p-99df8c75.js";const c=({pin:e,selected:n})=>i(t,null,l(e)&&i("div",{id:"pin-anchor",class:v("pin-anchor",{selected:n})}),a(e)&&i("vertex-viewer-icon",{name:"pin-fill",size:"lg",class:v("pin",{"pin-selected":n})}));function u(i,t,e){const o=[{x:i.x+e.width/2,y:i.y},{x:i.x+e.width/2,y:i.y+e.height},{x:i.x,y:i.y+e.height/2},{x:i.x+e.width,y:i.y+e.height/2}],s=o.map((i=>n.distance(i,t)));return o[s.indexOf(Math.min(...s))]}let b=class{constructor(i){e(this,i),this.matrix=o.makeIdentity(),this.projectionViewMatrix=o.makeIdentity(),this.pinModel=new p,this.selected=!1,this.invalidateStateCounter=0,this.leafNodesRendered=!1}componentDidLoad(){this.setLabelObserver(),null==this.pinController&&(this.pinController=new h(this.pinModel)),this.leafNodesRendered=!0}disconnectedCallback(){var i,t;null===(i=this.labelEl)||void 0===i||i.removeEventListener("labelChanged",this.invalidateState),null===(t=this.resizeObserver)||void 0===t||t.disconnect()}render(){var e;if(null==this.pin)throw new Error("Unable to draw pin");const n=this.computePinPoints(this.pin),{pinPoint:o,labelPoint:s}=n;return i(t,null,i("vertex-viewer-dom-element",{"data-testid":`drawn-pin-${this.pin.id}`,position:this.pin.worldPosition,onPointerDown:i=>{var t,e;2!==i.buttons&&i.stopPropagation(),null===(t=this.pinController)||void 0===t||t.setSelectedPinId(null===(e=this.pin)||void 0===e?void 0:e.id)}},this.leafNodesRendered&&i(c,{pin:this.pin,selected:this.selected})),l(this.pin)&&i(t,null,i("vertex-viewer-pin-label-line",{id:`pin-label-line-${null===(e=this.pin)||void 0===e?void 0:e.id}`,pinPoint:o,labelPoint:s}),i("vertex-viewer-pin-label",{pin:this.pin,ref:i=>{this.labelEl=i},elementBounds:this.elementBounds,pinController:this.pinController})))}invalidateState(){this.invalidateStateCounter=this.invalidateStateCounter+1}setLabelObserver(){var i;const t=null===(i=this.labelEl)||void 0===i?void 0:i.addEventListener("labelChanged",this.invalidateState);null!=t&&(this.resizeObserver=new ResizeObserver((()=>this.invalidateState())),this.resizeObserver.observe(t))}computePinPoints(i){return null!=this.elementBounds&&null!=this.pin?l(this.pin)&&null!=this.pin.label.point?this.computeTextPinPoints(this.pin,this.elementBounds):this.computeDefaultPinPoints(this.pin,this.elementBounds):{pinPoint:i.worldPosition}}computeDefaultPinPoints(i,t){return{pinPoint:this.getFromWorldPosition(i.worldPosition,this.projectionViewMatrix,t)}}computeTextPinPoints(i,t){var e,n;const{pinPoint:o}=this.computeDefaultPinPoints(i,t),s=d(i.label.point,t),r=null===(e=this.labelEl)||void 0===e?void 0:e.querySelector(`#pin-label-${null===(n=this.pin)||void 0===n?void 0:n.id}`);return{pinPoint:o,labelPoint:u(s,o,{width:(null==r?void 0:r.clientWidth)||0,height:(null==r?void 0:r.clientHeight)||0})}}getFromWorldPosition(i,t,e){const n=s.transformMatrix(i,t);return r.fromDimensions(e).transformVectorToViewport(n)}};b.style=":host{--viewer-annotations-pin-dot-color:var(--blue-600);--viewer-annotations-pin-color:var(--blue-700);--viewer-annotations-pin-font-size:0.75rem;--viewer-annotations-pin-selected-stroke:var(--white);--viewer-annotations-pin-selected-border:2px solid var(--white);--viewer-annotations-pin-label-border:2px solid var(--black);--viewer-annotations-pin-selected-stroke:var(--white);font-size:var(--viewer-annotations-pin-font-size);position:absolute;top:0;bottom:0;left:0;right:0;overflow:hidden;pointer-events:none}.pin-anchor{position:absolute;border-radius:50%;transform:translate(-50%, -50%);display:block;width:9px;height:9px;box-sizing:border-box;border:var(--viewer-annotations-pin-label-border);background:var(--viewer-annotations-pin-dot-color);pointer-events:auto;cursor:pointer}.selected{width:13px;height:13px;border:var(--viewer-annotations-pin-selected-border)}.pin{color:var(--viewer-annotations-pin-color)}.pin-selected{stroke-width:1;stroke:var(--viewer-annotations-pin-selected-stroke)}";export{b as vertex_viewer_pin_group}
4
+ import{h as i,F as t,r as e}from"./p-cafa57a6.js";import{p as n,m as o,v as s}from"./p-ca782228.js";import"./p-2894130f.js";import"./p-4ca881c8.js";import"./p-3a20a038.js";import"./p-fbe9ad84.js";import"./p-df8fbe56.js";import{V as r}from"./p-dd9193ca.js";import{i as a,b as l,P as p,a as h}from"./p-f0dd8887.js";import{a as d}from"./p-92fb8f9d.js";import{c as v}from"./p-f482325b.js";import"./p-c6c68120.js";import"./p-112455b1.js";import"./p-99df8c75.js";const c=({pin:e,selected:n})=>i(t,null,l(e)&&i("div",{id:"pin-anchor",class:v("pin-anchor",{selected:n})}),a(e)&&i("vertex-viewer-icon",{name:"pin-fill",size:"lg",class:v("pin",{"pin-selected":n})}));function u(i,t,e){const o=[{x:i.x+e.width/2,y:i.y},{x:i.x+e.width/2,y:i.y+e.height},{x:i.x,y:i.y+e.height/2},{x:i.x+e.width,y:i.y+e.height/2}],s=o.map((i=>n.distance(i,t)));return o[s.indexOf(Math.min(...s))]}let b=class{constructor(i){e(this,i),this.matrix=o.makeIdentity(),this.projectionViewMatrix=o.makeIdentity(),this.pinModel=new p,this.selected=!1,this.invalidateStateCounter=0,this.leafNodesRendered=!1}componentDidLoad(){this.setLabelObserver(),null==this.pinController&&(this.pinController=new h(this.pinModel)),this.leafNodesRendered=!0}disconnectedCallback(){var i,t;null===(i=this.labelEl)||void 0===i||i.removeEventListener("labelChanged",this.invalidateState),null===(t=this.resizeObserver)||void 0===t||t.disconnect()}render(){var e;if(null==this.pin)throw new Error("Unable to draw pin");const n=this.computePinPoints(this.pin),{pinPoint:o,labelPoint:s}=n;return i(t,null,i("vertex-viewer-dom-element",{"data-testid":`drawn-pin-${this.pin.id}`,position:this.pin.worldPosition,onPointerDown:i=>{var t,e;2!==i.buttons&&i.stopPropagation(),null===(t=this.pinController)||void 0===t||t.setSelectedPinId(null===(e=this.pin)||void 0===e?void 0:e.id)}},this.leafNodesRendered&&i(c,{pin:this.pin,selected:this.selected})),l(this.pin)&&i(t,null,i("vertex-viewer-pin-label-line",{id:`pin-label-line-${null===(e=this.pin)||void 0===e?void 0:e.id}`,pinPoint:o,labelPoint:s}),i("vertex-viewer-pin-label",{pin:this.pin,ref:i=>{this.labelEl=i},elementBounds:this.elementBounds,pinController:this.pinController})))}invalidateState(){this.invalidateStateCounter=this.invalidateStateCounter+1}setLabelObserver(){var i;const t=null===(i=this.labelEl)||void 0===i?void 0:i.addEventListener("labelChanged",this.invalidateState);null!=t&&(this.resizeObserver=new ResizeObserver((()=>this.invalidateState())),this.resizeObserver.observe(t))}computePinPoints(i){return null!=this.elementBounds&&null!=this.pin?l(this.pin)&&null!=this.pin.label.point?this.computeTextPinPoints(this.pin,this.elementBounds):this.computeDefaultPinPoints(this.pin,this.elementBounds):{pinPoint:i.worldPosition}}computeDefaultPinPoints(i,t){return{pinPoint:this.getFromWorldPosition(i.worldPosition,this.projectionViewMatrix,t)}}computeTextPinPoints(i,t){var e,n;const{pinPoint:o}=this.computeDefaultPinPoints(i,t),s=d(i.label.point,t),r=null===(e=this.labelEl)||void 0===e?void 0:e.querySelector(`#pin-label-${null===(n=this.pin)||void 0===n?void 0:n.id}`);return{pinPoint:o,labelPoint:u(s,o,{width:(null==r?void 0:r.clientWidth)||0,height:(null==r?void 0:r.clientHeight)||0})}}getFromWorldPosition(i,t,e){const n=s.transformMatrix(i,t);return r.fromDimensions(e).transformVectorToViewport(n)}};b.style=":host{--viewer-annotations-pin-dot-color:var(--blue-600);--viewer-annotations-pin-color:var(--blue-700);--viewer-annotations-pin-font-size:0.75rem;--viewer-annotations-pin-selected-stroke:var(--white);--viewer-annotations-pin-selected-border:2px solid var(--white);--viewer-annotations-pin-label-border:2px solid var(--black);--viewer-annotations-pin-selected-stroke:var(--white);font-size:var(--viewer-annotations-pin-font-size);position:absolute;top:0;bottom:0;left:0;right:0;overflow:hidden;pointer-events:none}.pin-anchor{position:absolute;border-radius:50%;transform:translate(-50%, -50%);display:block;width:9px;height:9px;box-sizing:border-box;border:var(--viewer-annotations-pin-label-border);background:var(--viewer-annotations-pin-dot-color);pointer-events:auto;cursor:pointer}.selected{width:13px;height:13px;border:var(--viewer-annotations-pin-selected-border)}.pin{color:var(--viewer-annotations-pin-color)}.pin-selected{stroke-width:1;stroke:var(--viewer-annotations-pin-selected-stroke)}";export{b as vertex_viewer_pin_group}
@@ -0,0 +1,4 @@
1
+ /**!
2
+ * Copyright (c) 2022 Vertex Software LLC. All rights reserved.
3
+ */
4
+ import{E as t}from"./p-c6c68120.js";class i{constructor(t,i="view",s="pin"){this.model=t,this.mode=i,this.type=s,this.dragging=!1}addPin(t){this.model.addPin(t)}clearPins(){this.model.clearPins()}removePin(t){this.model.removePin(t)}setPins(t){this.model.setPins(t)}setPin(t){this.model.setPin(t)}updatePin(t){this.model.updatePin(t)}setSelectedPinId(t){this.model.setSelectedPin(t)}getToolMode(){return this.mode}getToolType(){return this.type}setToolMode(t){this.mode=t}setToolType(t){this.type=t}getDragging(){return this.dragging||!1}setDragging(t){this.dragging=t}}function s(t){return null!=t&&null!=t.label}function e(t){return null!=t&&null==t.label}class n{constructor(){this.entities={},this.entitiesChanged=new t,this.selectionChanged=new t}addPin(t,i=!1){return null==this.entities[t.id]&&(this.entities=Object.assign(Object.assign({},this.entities),{[t.id]:t}),i||this.entitiesChanged.emit(this.getPins()),!0)}clearPins(){this.getPins().forEach((t=>this.removePin(t)))}getPins(){return Object.keys(this.entities).map((t=>this.entities[t]))}getPinById(t){return this.entities[t]}getSelectedPinId(){return this.selectedPinId}removePin(t){return null!=this.entities[t.id]&&(delete this.entities[t.id],this.entitiesChanged.emit(this.getPins()),!0)}setPins(t){return this.clearPins(),t.forEach((t=>this.addPin(t,!0))),this.entitiesChanged.emit(this.getPins()),!0}setPin(t){return this.entities=Object.assign(Object.assign({},this.entities),{[t.id]:t}),this.entitiesChanged.emit(this.getPins()),!0}updatePin(t){return null!=this.getPinById(t.id)&&(this.entities=Object.assign(Object.assign({},this.entities),{[t.id]:t}),this.entitiesChanged.emit(this.getPins()),!0)}onEntitiesChanged(t){return this.entitiesChanged.on(t)}onSelectionChange(t){return this.selectionChanged.on(t)}setSelectedPin(t){this.selectedPinId=t,this.selectionChanged.emit(this.selectedPinId)}}export{n as P,i as a,s as b,e as i}
@@ -1,4 +1,4 @@
1
1
  /**!
2
2
  * Copyright (c) 2022 Vertex Software LLC. All rights reserved.
3
3
  */
4
- import{d as e,N as t,w as r,p as a,b as i}from"./p-cafa57a6.js";import{g as n}from"./p-7e0328aa.js";import"./p-112455b1.js";(()=>{const i=Array.from(e.querySelectorAll("script")).find((e=>new RegExp(`/${t}(\\.esm)?\\.js($|\\?|#)`).test(e.src)||e.getAttribute("data-stencil-namespace")===t)),n={};return n.resourcesUrl=new URL(".",new URL(i.getAttribute("data-resources-url")||i.src,r.location.href)).href,((a,i)=>{const n=`__sc_import_${t.replace(/\s|-/g,"_")}`;try{r[n]=new Function("w",`return import(w);//${Math.random()}`)}catch(t){const o=new Map;r[n]=t=>{const s=new URL(t,a).href;let l=o.get(s);if(!l){const t=e.createElement("script");t.type="module",t.crossOrigin=i.crossOrigin,t.src=URL.createObjectURL(new Blob([`import * as m from '${s}'; window.${n}.m = m;`],{type:"application/javascript"})),l=new Promise((e=>{t.onload=()=>{e(r[n].m),t.remove()}})),o.set(s,l),e.head.appendChild(t)}return l}}})(n.resourcesUrl,i),r.customElements?a(n):__sc_import_viewer("./p-ac0761c3.js").then((()=>n))})().then((e=>(n(),i(JSON.parse('[["p-adaaf47b",[[1,"vertex-viewer-pin-tool",{"pinController":[1040],"pinModel":[16],"pins":[1040],"viewer":[16],"tool":[1025],"mode":[1025],"selectedPinId":[32],"elementBounds":[32],"projectionViewMatrix":[32]}]]],["p-a455ae02",[[1,"vertex-viewer-default-toolbar",{"viewer":[16],"placement":[1],"direction":[1],"animationsDisabled":[4,"animations-disabled"],"animationMs":[2,"animation-ms"]}]]],["p-ffa8c0c8",[[1,"vertex-scene-tree",{"overScanCount":[2,"over-scan-count"],"viewerSelector":[1,"viewer-selector"],"viewer":[1040],"rowData":[16],"config":[16],"configEnv":[1,"config-env"],"controller":[1040],"filterOnMetadata":[1028,"filter-on-metadata"],"metadataKeys":[16],"rows":[32],"totalRows":[32],"stateMap":[32],"connectionErrorDetails":[32],"attemptingRetry":[32],"invalidateRows":[64],"scrollToIndex":[64],"scrollToItem":[64],"expandAll":[64],"collapseAll":[64],"expandItem":[64],"collapseItem":[64],"toggleExpandItem":[64],"toggleItemVisibility":[64],"hideItem":[64],"showItem":[64],"selectItem":[64],"deselectItem":[64],"getRowAtIndex":[64],"getRowForEvent":[64],"getRowAtClientY":[64],"filterItems":[64],"fetchMetadataKeys":[64]},[[0,"search","handleSearch"]]]]],["p-6effda76",[[1,"vertex-viewer-measurement-tool",{"distanceTemplateId":[1,"distance-template-id"],"tool":[1],"units":[1],"fractionalDigits":[2,"fractional-digits"],"disabled":[4],"viewer":[16],"isMeasuring":[1540,"is-measuring"],"snapDistance":[2,"snap-distance"],"stateMap":[32]}]]],["p-07531a61",[[1,"vertex-viewer-markup",{"arrowTemplateId":[1,"arrow-template-id"],"circleTemplateId":[1,"circle-template-id"],"freeformTemplateId":[1,"freeform-template-id"],"tool":[1],"disabled":[4],"viewer":[16],"selectedMarkupId":[1025,"selected-markup-id"],"selectNew":[4,"select-new"],"toSelectMarkupId":[32],"pointerDownPosition":[32],"addMarkup":[64],"removeMarkup":[64],"getMarkupElements":[64],"getMarkupElement":[64]},[[0,"markupEnd","handleMarkupEnd"],[1,"pointerdown","handleMarkupPointerDown"]]]]],["p-6b8ef8c7",[[1,"vertex-viewer-markup-tool",{"arrowTemplateId":[1,"arrow-template-id"],"circleTemplateId":[1,"circle-template-id"],"freeformTemplateId":[1,"freeform-template-id"],"tool":[1],"disabled":[4],"viewer":[16],"stateMap":[32],"reset":[64]}]]],["p-bac040bc",[[1,"vertex-viewer-measurements",{"distanceTemplateId":[1,"distance-template-id"],"tool":[1],"units":[1],"fractionalDigits":[2,"fractional-digits"],"disabled":[4],"viewer":[16],"selectedMeasurementId":[1025,"selected-measurement-id"],"snapDistance":[2,"snap-distance"],"showAxisReferenceLines":[4,"show-axis-reference-lines"],"measurementModel":[16],"addMeasurement":[64],"removeMeasurement":[64],"getMeasurementElement":[64],"getMeasurementElements":[64]},[[0,"measureEnd","handleMeasureEnd"],[1,"pointerdown","handleMeasurementPointerDown"]]]]],["p-e674cde9",[[1,"vertex-viewer-view-cube",{"xPositiveLabel":[1,"x-positive-label"],"xNegativeLabel":[1,"x-negative-label"],"yPositiveLabel":[1,"y-positive-label"],"yNegativeLabel":[1,"y-negative-label"],"zPositiveLabel":[1,"z-positive-label"],"zNegativeLabel":[1,"z-negative-label"],"standardViewsOff":[4,"standard-views-off"],"animationDuration":[2,"animation-duration"],"triadOff":[4,"triad-off"],"worldOrientation":[1040],"camera":[1040],"viewer":[16],"boxLength":[32],"triadPosition":[32]}]]],["p-e4c160fe",[[1,"vertex-viewer-measurement-precise",{"measurementModel":[16],"measurementOverlays":[16],"measurementController":[1040],"measurableEntityTypes":[16],"viewer":[16],"configEnv":[1,"config-env"],"config":[16],"overlays":[32]}]]],["p-f8dfc4c4",[[1,"vertex-scene-tree-table-cell",{"node":[16],"tree":[16],"value":[1],"placeholder":[1],"hoveredNodeId":[1,"hovered-node-id"],"isScrolling":[4,"is-scrolling"],"expandToggle":[4,"expand-toggle"],"visibilityToggle":[4,"visibility-toggle"],"interactionsDisabled":[4,"interactions-disabled"],"recurseParentSelectionDisabled":[4,"recurse-parent-selection-disabled"]}]]],["p-70ca1ea7",[[1,"vertex-scene-tree-table-column",{"initialWidth":[2,"initial-width"],"minWidth":[2,"min-width"],"maxWidth":[2,"max-width"]}]]],["p-d2bcf788",[[1,"vertex-scene-tree-table-header"]]],["p-61b1097b",[[1,"vertex-scene-tree-table-resize-divider",{"dragging":[32]}]]],["p-099fe6ca",[[1,"vertex-scene-tree-toolbar-group"]]],["p-ec33375d",[[1,"vertex-viewer",{"src":[1],"clientId":[1,"client-id"],"deviceId":[1,"device-id"],"config":[1],"configEnv":[1,"config-env"],"resolvedConfig":[1040],"cameraControls":[4,"camera-controls"],"cameraType":[1537,"camera-type"],"keyboardControls":[4,"keyboard-controls"],"rotateAroundTapPoint":[4,"rotate-around-tap-point"],"token":[1025],"depthBuffers":[1,"depth-buffers"],"experimentalGhostingOpacity":[2,"experimental-ghosting-opacity"],"featureLines":[16],"featureHighlighting":[16],"featureMaps":[1,"feature-maps"],"selectionMaterial":[1,"selection-material"],"resizeDebounce":[2,"resize-debounce"],"frame":[1040],"stream":[1040],"stencilBuffer":[1040],"viewport":[1040],"dimensions":[32],"hostDimensions":[32],"errorMessage":[32],"cursor":[32],"stateMap":[32],"dispatchFrameDrawn":[64],"registerInteractionHandler":[64],"registerTapKeyInteraction":[64],"getInteractionTarget":[64],"addCursor":[64],"getInteractionHandlers":[64],"getBaseInteractionHandler":[64],"getJwt":[64],"load":[64],"unload":[64],"scene":[64],"isSceneReady":[64]},[[0,"tap","handleTapEvent"]]]]],["p-f52a980c",[[1,"vertex-viewer-measurement-details",{"measurementModel":[16],"measurementOverlays":[16],"measurementOutcome":[1040],"distanceUnits":[1,"distance-units"],"angleUnits":[1,"angle-units"],"fractionalDigits":[2,"fractional-digits"],"distanceFormatter":[16],"angleFormatter":[16],"areaFormatter":[16],"resultTypes":[16],"overlay":[32],"distanceMeasurementUnits":[32],"angleMeasurementUnits":[32],"areaMeasurementUnits":[32]}]]],["p-c09b9e45",[[0,"vertex-viewer-pin-group",{"pin":[16],"matrix":[1040],"projectionViewMatrix":[16],"elementBounds":[1040],"pinModel":[16],"pinController":[16],"selected":[4],"invalidateStateCounter":[32],"leafNodesRendered":[32]}]]],["p-86914892",[[1,"vertex-viewer-dom-group",{"position":[1040],"positionJson":[1,"position"],"rotation":[1040],"rotationJson":[1,"rotation"],"quaternion":[1040],"quaternionJson":[1,"quaternion"],"scale":[1040],"scaleJson":[1,"scale"],"matrix":[1040]}]]],["p-fc668cc6",[[1,"vertex-viewer-measurement-distance",{"start":[1040],"startJson":[1,"start-json"],"end":[1040],"endJson":[1,"end-json"],"distance":[1026],"showAxisReferenceLines":[4,"show-axis-reference-lines"],"snapDistance":[2,"snap-distance"],"units":[1],"fractionalDigits":[2,"fractional-digits"],"labelFormatter":[16],"anchorLabelOffset":[2,"anchor-label-offset"],"lineCapLength":[2,"line-cap-length"],"mode":[513],"interactingAnchor":[1537,"interacting-anchor"],"invalid":[1540],"camera":[16],"hitProvider":[16],"indicatorPt":[1040],"viewer":[16],"measurementModel":[16],"viewport":[32],"elementBounds":[32],"interactionCount":[32],"internalCamera":[32],"invalidateStateCounter":[32],"stateMap":[32],"measurementUnits":[32],"computeElementMetrics":[64]}]]],["p-db2a5c4c",[[1,"vertex-scene-tree-search",{"debounce":[2],"disabled":[4],"placeholder":[1],"value":[1025],"focused":[32],"setFocus":[64]}],[1,"vertex-scene-tree-table-layout",{"tree":[16],"controller":[16],"rows":[16],"totalRows":[2,"total-rows"],"rowHeight":[1026,"row-height"],"overScanCount":[2,"over-scan-count"],"rowData":[16],"layoutOffset":[1026,"layout-offset"],"scrollOffset":[1026,"scroll-offset"],"layoutHeight":[1026,"layout-height"],"layoutWidth":[1026,"layout-width"],"viewportStartIndex":[1026,"viewport-start-index"],"viewportEndIndex":[1026,"viewport-end-index"],"columnGridLayout":[32],"columnGridFixedLayout":[32],"hoveredNodeId":[32],"isComputingCellHeight":[32],"lastDividerPointerPosition":[32],"resizingColumnIndex":[32],"isScrolling":[32],"scrollTimer":[32],"stateMap":[32],"scrollToPosition":[64]}],[1,"vertex-scene-tree-toolbar"]]],["p-46459921",[[1,"vertex-viewer-layer",{"stretchOff":[516,"stretch-off"]}]]],["p-31658489",[[1,"vertex-viewer-toolbar",{"placement":[1],"direction":[1]}],[1,"vertex-viewer-button"],[1,"vertex-viewer-toolbar-group",{"direction":[1]}]]],["p-0c033822",[[0,"vertex-viewer-pin-label",{"pin":[16],"elementBounds":[16],"value":[1025],"pinController":[16],"focused":[32],"computedScreenPosition":[32],"textareaRows":[32],"contentElBounds":[32],"setFocus":[64]}],[0,"vertex-viewer-pin-label-line",{"pinPoint":[16],"labelPoint":[16]}]]],["p-bb9cf112",[[1,"vertex-viewer-dom-renderer",{"drawMode":[1,"draw-mode"],"viewer":[16],"camera":[1040],"depthBuffer":[1040],"viewport":[32],"invalidateFrameCounter":[32]},[[0,"propertyChange","handlePropertyChange"]]],[1,"vertex-viewer-dom-element",{"position":[1040],"positionJson":[1,"position"],"rotation":[1040],"rotationJson":[1,"rotation"],"quaternion":[1040],"quaternionJson":[1,"quaternion"],"scale":[1040],"scaleJson":[1,"scale"],"matrix":[1040],"occlusionOff":[4,"occlusion-off"],"occluded":[516],"billboardOff":[4,"billboard-off"],"interactionsOff":[516,"interactions-off"]}]]],["p-8b5bf67e",[[1,"vertex-viewer-icon",{"name":[1],"size":[1]}]]],["p-37e15d0a",[[1,"vertex-viewer-markup-arrow",{"start":[1040],"startJson":[1,"start"],"end":[1040],"endJson":[1,"end"],"mode":[513],"viewer":[16],"elementBounds":[32],"editAnchor":[32],"dispose":[64]}],[1,"vertex-viewer-markup-circle",{"bounds":[1040],"boundsJson":[1,"bounds"],"mode":[513],"viewer":[16],"elementBounds":[32],"startPosition":[32],"editAnchor":[32],"resizeBounds":[32],"dispose":[64]}],[1,"vertex-viewer-markup-freeform",{"points":[1040],"pointsJson":[1,"points"],"bounds":[1040],"boundsJson":[1,"bounds"],"mode":[513],"viewer":[16],"elementBounds":[32],"resizeStartPosition":[32],"editAnchor":[32],"resizeBounds":[32],"resizePoints":[32],"screenPoints":[32],"dispose":[64]}]]],["p-841a068e",[[1,"vertex-viewer-measurement-overlays",{"measurementOverlays":[16],"camera":[1040],"viewer":[16],"overlays":[32]}],[1,"vertex-viewer-measurement-line",{"start":[16],"end":[16],"capLength":[2,"cap-length"],"pointerEvents":[1,"pointer-events"]}]]]]'),e))));
4
+ import{d as e,N as t,w as r,p as a,b as i}from"./p-cafa57a6.js";import{g as n}from"./p-7e0328aa.js";import"./p-112455b1.js";(()=>{const i=Array.from(e.querySelectorAll("script")).find((e=>new RegExp(`/${t}(\\.esm)?\\.js($|\\?|#)`).test(e.src)||e.getAttribute("data-stencil-namespace")===t)),n={};return n.resourcesUrl=new URL(".",new URL(i.getAttribute("data-resources-url")||i.src,r.location.href)).href,((a,i)=>{const n=`__sc_import_${t.replace(/\s|-/g,"_")}`;try{r[n]=new Function("w",`return import(w);//${Math.random()}`)}catch(t){const o=new Map;r[n]=t=>{const s=new URL(t,a).href;let l=o.get(s);if(!l){const t=e.createElement("script");t.type="module",t.crossOrigin=i.crossOrigin,t.src=URL.createObjectURL(new Blob([`import * as m from '${s}'; window.${n}.m = m;`],{type:"application/javascript"})),l=new Promise((e=>{t.onload=()=>{e(r[n].m),t.remove()}})),o.set(s,l),e.head.appendChild(t)}return l}}})(n.resourcesUrl,i),r.customElements?a(n):__sc_import_viewer("./p-ac0761c3.js").then((()=>n))})().then((e=>(n(),i(JSON.parse('[["p-163a4b8c",[[1,"vertex-viewer-pin-tool",{"pinController":[1040],"pinModel":[16],"pins":[1040],"viewer":[16],"tool":[1025],"mode":[1025],"selectedPinId":[32],"elementBounds":[32],"projectionViewMatrix":[32]}]]],["p-a455ae02",[[1,"vertex-viewer-default-toolbar",{"viewer":[16],"placement":[1],"direction":[1],"animationsDisabled":[4,"animations-disabled"],"animationMs":[2,"animation-ms"]}]]],["p-ffa8c0c8",[[1,"vertex-scene-tree",{"overScanCount":[2,"over-scan-count"],"viewerSelector":[1,"viewer-selector"],"viewer":[1040],"rowData":[16],"config":[16],"configEnv":[1,"config-env"],"controller":[1040],"filterOnMetadata":[1028,"filter-on-metadata"],"metadataKeys":[16],"rows":[32],"totalRows":[32],"stateMap":[32],"connectionErrorDetails":[32],"attemptingRetry":[32],"invalidateRows":[64],"scrollToIndex":[64],"scrollToItem":[64],"expandAll":[64],"collapseAll":[64],"expandItem":[64],"collapseItem":[64],"toggleExpandItem":[64],"toggleItemVisibility":[64],"hideItem":[64],"showItem":[64],"selectItem":[64],"deselectItem":[64],"getRowAtIndex":[64],"getRowForEvent":[64],"getRowAtClientY":[64],"filterItems":[64],"fetchMetadataKeys":[64]},[[0,"search","handleSearch"]]]]],["p-6effda76",[[1,"vertex-viewer-measurement-tool",{"distanceTemplateId":[1,"distance-template-id"],"tool":[1],"units":[1],"fractionalDigits":[2,"fractional-digits"],"disabled":[4],"viewer":[16],"isMeasuring":[1540,"is-measuring"],"snapDistance":[2,"snap-distance"],"stateMap":[32]}]]],["p-07531a61",[[1,"vertex-viewer-markup",{"arrowTemplateId":[1,"arrow-template-id"],"circleTemplateId":[1,"circle-template-id"],"freeformTemplateId":[1,"freeform-template-id"],"tool":[1],"disabled":[4],"viewer":[16],"selectedMarkupId":[1025,"selected-markup-id"],"selectNew":[4,"select-new"],"toSelectMarkupId":[32],"pointerDownPosition":[32],"addMarkup":[64],"removeMarkup":[64],"getMarkupElements":[64],"getMarkupElement":[64]},[[0,"markupEnd","handleMarkupEnd"],[1,"pointerdown","handleMarkupPointerDown"]]]]],["p-6b8ef8c7",[[1,"vertex-viewer-markup-tool",{"arrowTemplateId":[1,"arrow-template-id"],"circleTemplateId":[1,"circle-template-id"],"freeformTemplateId":[1,"freeform-template-id"],"tool":[1],"disabled":[4],"viewer":[16],"stateMap":[32],"reset":[64]}]]],["p-bac040bc",[[1,"vertex-viewer-measurements",{"distanceTemplateId":[1,"distance-template-id"],"tool":[1],"units":[1],"fractionalDigits":[2,"fractional-digits"],"disabled":[4],"viewer":[16],"selectedMeasurementId":[1025,"selected-measurement-id"],"snapDistance":[2,"snap-distance"],"showAxisReferenceLines":[4,"show-axis-reference-lines"],"measurementModel":[16],"addMeasurement":[64],"removeMeasurement":[64],"getMeasurementElement":[64],"getMeasurementElements":[64]},[[0,"measureEnd","handleMeasureEnd"],[1,"pointerdown","handleMeasurementPointerDown"]]]]],["p-e674cde9",[[1,"vertex-viewer-view-cube",{"xPositiveLabel":[1,"x-positive-label"],"xNegativeLabel":[1,"x-negative-label"],"yPositiveLabel":[1,"y-positive-label"],"yNegativeLabel":[1,"y-negative-label"],"zPositiveLabel":[1,"z-positive-label"],"zNegativeLabel":[1,"z-negative-label"],"standardViewsOff":[4,"standard-views-off"],"animationDuration":[2,"animation-duration"],"triadOff":[4,"triad-off"],"worldOrientation":[1040],"camera":[1040],"viewer":[16],"boxLength":[32],"triadPosition":[32]}]]],["p-e4c160fe",[[1,"vertex-viewer-measurement-precise",{"measurementModel":[16],"measurementOverlays":[16],"measurementController":[1040],"measurableEntityTypes":[16],"viewer":[16],"configEnv":[1,"config-env"],"config":[16],"overlays":[32]}]]],["p-f8dfc4c4",[[1,"vertex-scene-tree-table-cell",{"node":[16],"tree":[16],"value":[1],"placeholder":[1],"hoveredNodeId":[1,"hovered-node-id"],"isScrolling":[4,"is-scrolling"],"expandToggle":[4,"expand-toggle"],"visibilityToggle":[4,"visibility-toggle"],"interactionsDisabled":[4,"interactions-disabled"],"recurseParentSelectionDisabled":[4,"recurse-parent-selection-disabled"]}]]],["p-70ca1ea7",[[1,"vertex-scene-tree-table-column",{"initialWidth":[2,"initial-width"],"minWidth":[2,"min-width"],"maxWidth":[2,"max-width"]}]]],["p-d2bcf788",[[1,"vertex-scene-tree-table-header"]]],["p-61b1097b",[[1,"vertex-scene-tree-table-resize-divider",{"dragging":[32]}]]],["p-099fe6ca",[[1,"vertex-scene-tree-toolbar-group"]]],["p-ec33375d",[[1,"vertex-viewer",{"src":[1],"clientId":[1,"client-id"],"deviceId":[1,"device-id"],"config":[1],"configEnv":[1,"config-env"],"resolvedConfig":[1040],"cameraControls":[4,"camera-controls"],"cameraType":[1537,"camera-type"],"keyboardControls":[4,"keyboard-controls"],"rotateAroundTapPoint":[4,"rotate-around-tap-point"],"token":[1025],"depthBuffers":[1,"depth-buffers"],"experimentalGhostingOpacity":[2,"experimental-ghosting-opacity"],"featureLines":[16],"featureHighlighting":[16],"featureMaps":[1,"feature-maps"],"selectionMaterial":[1,"selection-material"],"resizeDebounce":[2,"resize-debounce"],"frame":[1040],"stream":[1040],"stencilBuffer":[1040],"viewport":[1040],"dimensions":[32],"hostDimensions":[32],"errorMessage":[32],"cursor":[32],"stateMap":[32],"dispatchFrameDrawn":[64],"registerInteractionHandler":[64],"registerTapKeyInteraction":[64],"getInteractionTarget":[64],"addCursor":[64],"getInteractionHandlers":[64],"getBaseInteractionHandler":[64],"getJwt":[64],"load":[64],"unload":[64],"scene":[64],"isSceneReady":[64]},[[0,"tap","handleTapEvent"]]]]],["p-f52a980c",[[1,"vertex-viewer-measurement-details",{"measurementModel":[16],"measurementOverlays":[16],"measurementOutcome":[1040],"distanceUnits":[1,"distance-units"],"angleUnits":[1,"angle-units"],"fractionalDigits":[2,"fractional-digits"],"distanceFormatter":[16],"angleFormatter":[16],"areaFormatter":[16],"resultTypes":[16],"overlay":[32],"distanceMeasurementUnits":[32],"angleMeasurementUnits":[32],"areaMeasurementUnits":[32]}]]],["p-ae0ce66e",[[0,"vertex-viewer-pin-group",{"pin":[16],"matrix":[1040],"projectionViewMatrix":[16],"elementBounds":[1040],"pinModel":[16],"pinController":[16],"selected":[4],"invalidateStateCounter":[32],"leafNodesRendered":[32]}]]],["p-86914892",[[1,"vertex-viewer-dom-group",{"position":[1040],"positionJson":[1,"position"],"rotation":[1040],"rotationJson":[1,"rotation"],"quaternion":[1040],"quaternionJson":[1,"quaternion"],"scale":[1040],"scaleJson":[1,"scale"],"matrix":[1040]}]]],["p-fc668cc6",[[1,"vertex-viewer-measurement-distance",{"start":[1040],"startJson":[1,"start-json"],"end":[1040],"endJson":[1,"end-json"],"distance":[1026],"showAxisReferenceLines":[4,"show-axis-reference-lines"],"snapDistance":[2,"snap-distance"],"units":[1],"fractionalDigits":[2,"fractional-digits"],"labelFormatter":[16],"anchorLabelOffset":[2,"anchor-label-offset"],"lineCapLength":[2,"line-cap-length"],"mode":[513],"interactingAnchor":[1537,"interacting-anchor"],"invalid":[1540],"camera":[16],"hitProvider":[16],"indicatorPt":[1040],"viewer":[16],"measurementModel":[16],"viewport":[32],"elementBounds":[32],"interactionCount":[32],"internalCamera":[32],"invalidateStateCounter":[32],"stateMap":[32],"measurementUnits":[32],"computeElementMetrics":[64]}]]],["p-db2a5c4c",[[1,"vertex-scene-tree-search",{"debounce":[2],"disabled":[4],"placeholder":[1],"value":[1025],"focused":[32],"setFocus":[64]}],[1,"vertex-scene-tree-table-layout",{"tree":[16],"controller":[16],"rows":[16],"totalRows":[2,"total-rows"],"rowHeight":[1026,"row-height"],"overScanCount":[2,"over-scan-count"],"rowData":[16],"layoutOffset":[1026,"layout-offset"],"scrollOffset":[1026,"scroll-offset"],"layoutHeight":[1026,"layout-height"],"layoutWidth":[1026,"layout-width"],"viewportStartIndex":[1026,"viewport-start-index"],"viewportEndIndex":[1026,"viewport-end-index"],"columnGridLayout":[32],"columnGridFixedLayout":[32],"hoveredNodeId":[32],"isComputingCellHeight":[32],"lastDividerPointerPosition":[32],"resizingColumnIndex":[32],"isScrolling":[32],"scrollTimer":[32],"stateMap":[32],"scrollToPosition":[64]}],[1,"vertex-scene-tree-toolbar"]]],["p-46459921",[[1,"vertex-viewer-layer",{"stretchOff":[516,"stretch-off"]}]]],["p-31658489",[[1,"vertex-viewer-toolbar",{"placement":[1],"direction":[1]}],[1,"vertex-viewer-button"],[1,"vertex-viewer-toolbar-group",{"direction":[1]}]]],["p-3447bce0",[[0,"vertex-viewer-pin-label",{"pin":[16],"elementBounds":[16],"value":[1025],"pinController":[16],"focused":[32],"computedScreenPosition":[32],"textareaRows":[32],"contentElBounds":[32],"setFocus":[64]}],[0,"vertex-viewer-pin-label-line",{"pinPoint":[16],"labelPoint":[16]}]]],["p-bb9cf112",[[1,"vertex-viewer-dom-renderer",{"drawMode":[1,"draw-mode"],"viewer":[16],"camera":[1040],"depthBuffer":[1040],"viewport":[32],"invalidateFrameCounter":[32]},[[0,"propertyChange","handlePropertyChange"]]],[1,"vertex-viewer-dom-element",{"position":[1040],"positionJson":[1,"position"],"rotation":[1040],"rotationJson":[1,"rotation"],"quaternion":[1040],"quaternionJson":[1,"quaternion"],"scale":[1040],"scaleJson":[1,"scale"],"matrix":[1040],"occlusionOff":[4,"occlusion-off"],"occluded":[516],"billboardOff":[4,"billboard-off"],"interactionsOff":[516,"interactions-off"]}]]],["p-8b5bf67e",[[1,"vertex-viewer-icon",{"name":[1],"size":[1]}]]],["p-37e15d0a",[[1,"vertex-viewer-markup-arrow",{"start":[1040],"startJson":[1,"start"],"end":[1040],"endJson":[1,"end"],"mode":[513],"viewer":[16],"elementBounds":[32],"editAnchor":[32],"dispose":[64]}],[1,"vertex-viewer-markup-circle",{"bounds":[1040],"boundsJson":[1,"bounds"],"mode":[513],"viewer":[16],"elementBounds":[32],"startPosition":[32],"editAnchor":[32],"resizeBounds":[32],"dispose":[64]}],[1,"vertex-viewer-markup-freeform",{"points":[1040],"pointsJson":[1,"points"],"bounds":[1040],"boundsJson":[1,"bounds"],"mode":[513],"viewer":[16],"elementBounds":[32],"resizeStartPosition":[32],"editAnchor":[32],"resizeBounds":[32],"resizePoints":[32],"screenPoints":[32],"dispose":[64]}]]],["p-841a068e",[[1,"vertex-viewer-measurement-overlays",{"measurementOverlays":[16],"camera":[1040],"viewer":[16],"overlays":[32]}],[1,"vertex-viewer-measurement-line",{"start":[16],"end":[16],"capLength":[2,"cap-length"],"pointerEvents":[1,"pointer-events"]}]]]]'),e))));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vertexvis/viewer",
3
- "version": "0.13.2-canary.25",
3
+ "version": "0.13.2-canary.26",
4
4
  "description": "The Vertex SDK for viewing models.",
5
5
  "license": "MIT",
6
6
  "author": "Vertex Developers <support@vertexvis.com> (https://developer.vertexvis.com)",
@@ -49,12 +49,12 @@
49
49
  "@stencil/core": "^2.12.1",
50
50
  "@types/classnames": "^2.3.1",
51
51
  "@vertexvis/frame-streaming-protos": "^0.6.19",
52
- "@vertexvis/geometry": "0.13.2-canary.25",
53
- "@vertexvis/html-templates": "0.13.2-canary.25",
52
+ "@vertexvis/geometry": "0.13.2-canary.26",
53
+ "@vertexvis/html-templates": "0.13.2-canary.26",
54
54
  "@vertexvis/scene-tree-protos": "^0.1.12",
55
55
  "@vertexvis/scene-view-protos": "^0.1.8",
56
- "@vertexvis/stream-api": "0.13.2-canary.25",
57
- "@vertexvis/utils": "0.13.2-canary.25",
56
+ "@vertexvis/stream-api": "0.13.2-canary.26",
57
+ "@vertexvis/utils": "0.13.2-canary.26",
58
58
  "@vertexvis/web-workers": "^0.1.0",
59
59
  "camel-case": "^4.1.2",
60
60
  "classnames": "^2.3.1",
@@ -79,7 +79,7 @@
79
79
  "@vertexvis/rollup-plugin-vertexvis-copyright": "^0.4.1",
80
80
  "@vertexvis/rollup-plugin-web-workers": "^0.1.0",
81
81
  "@vertexvis/typescript-config-vertexvis": "1.1.0",
82
- "@vertexwebsdk/build": "0.13.2-canary.25",
82
+ "@vertexwebsdk/build": "0.13.2-canary.26",
83
83
  "abortcontroller-polyfill": "^1.7.3",
84
84
  "chance": "^1.1.8",
85
85
  "eslint": "^8.6.0",
@@ -94,5 +94,5 @@
94
94
  "typedoc": "^0.22.10",
95
95
  "typescript": "^4.5.4"
96
96
  },
97
- "gitHead": "6a460cd865e50544d5b3a7fec8a308d5be1a1574"
97
+ "gitHead": "79c29d969172e4a3244989d9559a2bdf693f6052"
98
98
  }
@@ -1,4 +0,0 @@
1
- /**!
2
- * Copyright (c) 2022 Vertex Software LLC. All rights reserved.
3
- */
4
- import{r as i,c as t,h as n,H as e,g as o}from"./p-cafa57a6.js";import{p as a}from"./p-ca782228.js";import{c as l}from"./p-f482325b.js";import{g as s}from"./p-aa324b79.js";import{a as r,P as h,b as d}from"./p-80c8749e.js";import{r as v}from"./p-fad9693e.js";import{t as p,a as b}from"./p-92fb8f9d.js";import"./p-112455b1.js";import"./p-c6c68120.js";import"./p-99df8c75.js";let u=class{constructor(n){var e;i(this,n),this.labelChanged=t(this,"labelChanged",7),this.labelFocused=t(this,"labelFocused",7),this.labelBlurred=t(this,"labelBlurred",7),this.focused=!1,this.textareaRows=1,this.computeContentSize=()=>{v((()=>{if(null!=this.contentEl){this.contentElBounds=this.contentEl.getBoundingClientRect();const i=window.getComputedStyle(this.contentEl);this.textareaRows=Math.max(1,Math.ceil((parseFloat(i.height)-2*parseFloat(i.borderWidth))/parseFloat(i.lineHeight)))}}))},this.handleInputKeyDown=i=>{"Enter"===i.key&&(i.ctrlKey||i.metaKey)?(i.preventDefault(),this.submit()):"Enter"===i.key&&(this.textareaRows+=1)},this.handlePointerDown=i=>{var t,n,e;this.focused||(null===(t=this.pinController)||void 0===t||t.setSelectedPinId(null===(n=this.pin)||void 0===n?void 0:n.id),null!=this.elementBounds&&(this.relativePointerDownPosition=p(s(i,this.elementBounds),this.elementBounds),this.pinPointerDownPosition=null===(e=this.pin)||void 0===e?void 0:e.label.point,window.addEventListener("pointermove",this.handlePointerMove),window.addEventListener("pointerup",this.handlePointerUp)))},this.handlePointerMove=i=>{var t,n;if(null!=this.elementBounds&&this.relativePointerDownPosition&&null!=this.pinPointerDownPosition){const e=s(i,this.elementBounds),o=p(e,this.elementBounds),l=a.subtract(o,this.relativePointerDownPosition),r=null!=this.pin?{id:this.pin.id,worldPosition:this.pin.worldPosition,label:{point:a.add(this.pinPointerDownPosition,l),text:this.pin.label.text},partId:null===(t=this.pin)||void 0===t?void 0:t.partId}:void 0;r&&(null===(n=this.pinController)||void 0===n||n.setPin(r),this.computeScreenPosition())}},this.handlePointerUp=i=>{var t,n;if("edit"===(null===(t=this.pinController)||void 0===t?void 0:t.getToolMode())&&null!=this.relativePointerDownPosition&&null!=this.elementBounds){const t=b(this.relativePointerDownPosition,this.elementBounds);a.distance(t,s(i,this.elementBounds))<=2&&(this.focused=!0,this.labelFocused.emit(null===(n=this.pin)||void 0===n?void 0:n.id))}this.relativePointerDownPosition=void 0,this.pinPointerDownPosition=void 0,window.removeEventListener("pointermove",this.handlePointerMove),window.removeEventListener("pointerup",this.handlePointerUp)},this.handleTextBlur=()=>{this.submit()},this.handleTextInput=i=>{this.value=i.target.value},this.value=null!=(null===(e=this.pin)||void 0===e?void 0:e.label.text)?this.pin.label.text:""}async setFocus(){var i,t;"function"==typeof(null===(i=this.inputEl)||void 0===i?void 0:i.focus)&&(null===(t=this.inputEl)||void 0===t||t.focus())}watchFocusChange(){this.labelChanged.emit()}watchPinChange(){this.computeScreenPosition()}watchElementBoundsChange(){this.computeScreenPosition()}componentWillLoad(){this.computeScreenPosition()}componentDidLoad(){this.resizeObserver=new ResizeObserver((()=>{this.labelChanged.emit()})),this.contentResizeObserver=new ResizeObserver(this.computeContentSize),null!=this.hostEl&&this.resizeObserver.observe(this.hostEl),null!=this.contentEl&&this.contentResizeObserver.observe(this.contentEl),null==this.pinController&&(this.pinController=new r(new h))}disconnectedCallback(){var i,t;null===(i=this.resizeObserver)||void 0===i||i.disconnect(),null===(t=this.contentResizeObserver)||void 0===t||t.disconnect()}componentDidRender(){this.focused&&null!=this.inputEl&&this.setFocus()}render(){var i,t,o,a;return n(e,null,n("div",{id:`pin-label-${null===(i=this.pin)||void 0===i?void 0:i.id}`,class:l("pin-label-input-wrapper",{focused:this.focused}),onPointerDown:this.handlePointerDown,style:{top:`${(null===(t=this.computedScreenPosition)||void 0===t?void 0:t.y.toString())||0}px`,left:`${(null===(o=this.computedScreenPosition)||void 0===o?void 0:o.x.toString())||0}px`,minWidth:this.computeMinWidth(),maxWidth:this.computeMaxWidth(),maxHeight:this.computeMaxHeight()}},n("textarea",{id:`pin-label-input-${null===(a=this.pin)||void 0===a?void 0:a.id}`,class:l("pin-label-input","pin-label-text",{readonly:!this.focused}),disabled:!this.focused,ref:i=>this.inputEl=i,value:this.value,rows:this.textareaRows,onKeyDown:this.handleInputKeyDown,onInput:this.handleTextInput,onBlur:this.handleTextBlur}),!this.focused&&n("div",{class:"pin-input-drag-target",onPointerDown:this.handlePointerDown})),n("div",{ref:i=>this.contentEl=i,class:l("pin-label-text","pin-label-hidden"),style:{maxWidth:this.computeMaxWidth(),maxHeight:this.computeMaxHeight()}},this.hiddenContent()))}hiddenContent(){return this.value.includes("\n")?this.value.split("\n").reduce(((i,t)=>[...i,t,n("br",null)]),[]):[this.value]}computeMinWidth(){return null!=this.contentElBounds?`min(${this.contentElBounds.width+16}px, ${this.computeMaxWidth()})`:"var(--viewer-annotations-pin-label-min-width)"}computeMaxWidth(){return`min(var(--viewer-annotations-pin-label-max-width), ${this.computeRemainingWidth()})`}computeMaxHeight(){return`min(var(--viewer-annotations-pin-label-max-height), ${this.computeRemainingHeight()})`}computeRemainingWidth(){var i,t;return`calc(${(null===(i=this.elementBounds)||void 0===i?void 0:i.width.toString())||0}px - ${(null===(t=this.computedScreenPosition)||void 0===t?void 0:t.x.toString())||0}px)`}computeRemainingHeight(){var i,t;return`calc(${(null===(i=this.elementBounds)||void 0===i?void 0:i.height.toString())||0}px - ${(null===(t=this.computedScreenPosition)||void 0===t?void 0:t.y.toString())||0}px)`}computeScreenPosition(){this.computedScreenPosition=d(this.pin)&&null!=this.elementBounds&&null!=this.pin.label.point?b(this.pin.label.point,this.elementBounds):void 0}submit(){var i,t;this.focused=!1,this.labelBlurred.emit(null===(i=this.pin)||void 0===i?void 0:i.id),null!=this.pin&&(null===(t=this.pinController)||void 0===t||t.setPin(Object.assign(Object.assign({},this.pin),{label:{point:this.pin.label.point,text:this.value}})))}get hostEl(){return o(this)}static get watchers(){return{focused:["watchFocusChange"],pin:["watchPinChange"],elementBounds:["watchElementBoundsChange"]}}};u.style=":host{--viewer-annotations-pin-label-background-color:var(--blue-200);--viewer-annotations-pin-label-border-color:var(--blue-600);--viewer-annotations-pin-label-focused-border-color:var(--blue-700);--viewer-annotations-pin-label-color:var(--white);--viewer-annotations-pin-label-padding-y:0.375em;--viewer-annotations-pin-label-padding-x:0.5em;--viewer-annotations-pin-label-border-width:2px;--viewer-annotations-pin-label-border-style:solid;--viewer-annotations-pin-label-border-radius:0.25em;--viewer-annotations-pin-label-min-width:2rem;--viewer-annotations-pin-label-max-width:25rem;--viewer-annotations-pin-label-max-height:50rem;overflow:hidden;pointer-events:none}:host([mode='']) .pin-label{color:var(--viewer-annotations-pin-label-color);background:var(--viewer-annotations-pin-label-background-color)}.pin-label-text{font-family:Arial, Helvetica, sans-serif;font-size:0.875rem;line-height:1rem;word-break:break-word;white-space:pre-wrap}.pin-label-input-wrapper{display:flex;position:absolute;pointer-events:auto;box-sizing:border-box;min-width:var(--viewer-annotations-pin-label-min-width);max-width:var(--viewer-annotations-pin-label-max-width);max-height:var(--viewer-annotations-pin-label-max-height);background:var(--viewer-annotations-pin-label-background-color);border-width:var(--viewer-annotations-pin-label-border-width);border-style:var(--viewer-annotations-pin-label-border-style);border-color:var(--viewer-annotations-pin-label-border-color);border-radius:var(--viewer-annotations-pin-label-border-radius)}.pin-label-input-wrapper.focused{min-width:var(--viewer-annotations-pin-label-max-width);border-color:var(--viewer-annotations-pin-label-focused-border-color)}.pin-input-drag-target{position:absolute;top:0;left:0;width:100%;height:100%;cursor:pointer}.pin-label-input{resize:none;position:relative;outline:none;border:none;word-break:break-word;padding:0 0 0 0;background-color:transparent;margin:var(--viewer-annotations-pin-label-padding-y) var(--viewer-annotations-pin-label-padding-x);width:var(--viewer-annotations-pin-label-min-width);flex-grow:1;overflow:hidden;max-width:calc(var(--viewer-annotations-pin-label-max-width) - calc(2 * var(--viewer-annotations-pin-label-padding-x)))}.pin-label-input.readonly{pointer-events:auto;color:black;cursor:pointer}.pin-label-hidden{position:absolute;visibility:hidden;pointer-events:none;width:auto;height:auto;box-sizing:border-box;border-width:var(--viewer-annotations-pin-label-border-width);border-style:var(--viewer-annotations-pin-label-border-style);border-color:var(--viewer-annotations-pin-label-border-color);margin:var(--viewer-annotations-pin-label-padding-y) 0;padding:0 var(--viewer-annotations-pin-label-padding-x);max-width:calc(var(--viewer-annotations-pin-label-max-width) - calc(2 * var(--viewer-annotations-pin-label-padding-x)))}";let w=class{constructor(t){i(this,t)}render(){var i,t,o,a;return n(e,null,n("svg",{class:"svg"},n("line",{class:"label-line",x1:null===(i=this.labelPoint)||void 0===i?void 0:i.x,y1:null===(t=this.labelPoint)||void 0===t?void 0:t.y,x2:null===(o=this.pinPoint)||void 0===o?void 0:o.x,y2:null===(a=this.pinPoint)||void 0===a?void 0:a.y})))}};w.style=":host{--viewer-annotations-pin-label-line-color:var(--blue-600);--viewer-annotations-pin-label-line-width:1\n\n overflow: hidden;pointer-events:none}.label-line{pointer-events:auto;stroke:var(--viewer-annotations-pin-label-line-color);stroke-width:var( --viewer-annotations-pin-label-line-width);cursor:default}.svg{position:absolute;top:0;bottom:0;left:0;right:0;overflow:hidden;pointer-events:none;height:100%;width:100%}";export{u as vertex_viewer_pin_label,w as vertex_viewer_pin_label_line}
@@ -1,4 +0,0 @@
1
- /**!
2
- * Copyright (c) 2022 Vertex Software LLC. All rights reserved.
3
- */
4
- import{E as t}from"./p-c6c68120.js";class s{constructor(t,s="view",i="pin"){this.model=t,this.mode=s,this.type=i,this.dragging=!1}addPin(t){this.model.addPin(t)}clearPins(){this.model.clearPins()}removePin(t){this.model.removePin(t)}setPins(t){this.model.setPins(t)}setPin(t){this.model.setPin(t)}setSelectedPinId(t){this.model.setSelectedPin(t)}getToolMode(){return this.mode}getToolType(){return this.type}setToolMode(t){this.mode=t}setToolType(t){this.type=t}getDragging(){return this.dragging||!1}setDragging(t){this.dragging=t}}function i(t){return null!=t&&null!=t.label}function e(t){return null!=t&&null==t.label}class n{constructor(){this.entities={},this.entitiesChanged=new t,this.selectionChanged=new t}addPin(t,s=!1){return null==this.entities[t.id]&&(this.entities=Object.assign(Object.assign({},this.entities),{[t.id]:t}),s||this.entitiesChanged.emit(this.getPins()),!0)}clearPins(){this.getPins().forEach((t=>this.removePin(t)))}getPins(){return Object.keys(this.entities).map((t=>this.entities[t]))}getPinById(t){return this.entities[t]}getSelectedPinId(){return this.selectedPinId}removePin(t){return null!=this.entities[t.id]&&(delete this.entities[t.id],this.entitiesChanged.emit(this.getPins()),!0)}setPins(t){return this.clearPins(),t.forEach((t=>this.addPin(t,!0))),this.entitiesChanged.emit(this.getPins()),!0}setPin(t){return this.entities=Object.assign(Object.assign({},this.entities),{[t.id]:t}),this.entitiesChanged.emit(this.getPins()),!0}onEntitiesChanged(t){return this.entitiesChanged.on(t)}onSelectionChange(t){return this.selectionChanged.on(t)}setSelectedPin(t){this.selectedPinId=t,this.selectionChanged.emit(this.selectedPinId)}}export{n as P,s as a,i as b,e as i}