angular-three 2.0.0-beta.243 → 2.0.0-beta.245

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.
@@ -36,7 +36,7 @@ export function prepare(object, localState) {
36
36
  objects: instanceStore.select('objects'),
37
37
  nonObjects: instanceStore.select('nonObjects'),
38
38
  add(object, type) {
39
- const current = instance.__ngt__.instanceStore.get(type);
39
+ const current = instance.__ngt__.instanceStore.snapshot[type];
40
40
  const foundIndex = current.indexOf((node) => object === node);
41
41
  if (foundIndex > -1) {
42
42
  current.splice(foundIndex, 1, object);
@@ -45,11 +45,11 @@ export function prepare(object, localState) {
45
45
  else {
46
46
  instance.__ngt__.instanceStore.update((prev) => ({ [type]: [...prev[type], object] }));
47
47
  }
48
- notifyAncestors(instance.__ngt__.instanceStore.get('parent'));
48
+ notifyAncestors(instance.__ngt__.instanceStore.snapshot.parent);
49
49
  },
50
50
  remove(object, type) {
51
51
  instance.__ngt__.instanceStore.update((prev) => ({ [type]: prev[type].filter((node) => node !== object) }));
52
- notifyAncestors(instance.__ngt__.instanceStore.get('parent'));
52
+ notifyAncestors(instance.__ngt__.instanceStore.snapshot.parent);
53
53
  },
54
54
  setParent(parent) {
55
55
  instance.__ngt__.instanceStore.update({ parent });
@@ -65,7 +65,8 @@ function notifyAncestors(instance) {
65
65
  const localState = getLocalState(instance);
66
66
  if (!localState)
67
67
  return;
68
- localState.instanceStore.update((prev) => ({ objects: prev.objects, nonObjects: prev.nonObjects }));
69
- notifyAncestors(localState.instanceStore.get('parent'));
68
+ const { parent, objects, nonObjects } = localState.instanceStore.snapshot;
69
+ localState.instanceStore.update({ objects: (objects || []).slice(), nonObjects: (nonObjects || []).slice() });
70
+ notifyAncestors(parent);
70
71
  }
71
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zdGFuY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi9pbnN0YW5jZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxPQUFPLEVBQWtCLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ25FLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQXVEN0MsTUFBTSxVQUFVLGFBQWEsQ0FBMkIsR0FBMEI7SUFDakYsSUFBSSxDQUFDLEdBQUc7UUFBRSxPQUFPLFNBQVMsQ0FBQztJQUMzQixPQUFRLEdBQW9CLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDekMsQ0FBQztBQUVELE1BQU0sVUFBVSxrQkFBa0IsQ0FBMkIsUUFBbUI7SUFDL0UsSUFBSSxLQUFLLEdBQUcsYUFBYSxDQUFDLFFBQVEsQ0FBQyxFQUFFLEtBQUssQ0FBQztJQUUzQyxJQUFJLEtBQUssRUFBRSxDQUFDO1FBQ1gsT0FBTyxLQUFLLENBQUMsUUFBUSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3BDLEtBQUssR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQztRQUNyQyxDQUFDO1FBQ0QsSUFBSSxLQUFLLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDMUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUM3QixDQUFDO0lBQ0YsQ0FBQztJQUVELFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQztBQUN2QixDQUFDO0FBRUQsTUFBTSxVQUFVLE9BQU8sQ0FDdEIsTUFBaUIsRUFDakIsVUFBbUM7SUFFbkMsTUFBTSxRQUFRLEdBQUcsTUFBK0MsQ0FBQztJQUVqRSxJQUFJLFVBQVUsRUFBRSxTQUFTLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDaEQsTUFBTSxFQUNMLGFBQWEsR0FBRyxXQUFXLENBQXdC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VUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDcEcsZUFBZSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7QUFDekQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmd0RXZlbnRIYW5kbGVycyB9IGZyb20gJy4vZXZlbnRzJztcbmltcG9ydCB7IE5ndFN0YXRlIH0gZnJvbSAnLi9zdG9yZSc7XG5pbXBvcnQgeyBOZ3RBbnlSZWNvcmQgfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IE5ndFNpZ25hbFN0b3JlLCBzaWduYWxTdG9yZSB9IGZyb20gJy4vdXRpbHMvc2lnbmFsLXN0b3JlJztcbmltcG9ydCB7IGNoZWNrVXBkYXRlIH0gZnJvbSAnLi91dGlscy91cGRhdGUnO1xuXG5leHBvcnQgdHlwZSBOZ3RBdHRhY2hGdW5jdGlvbjxUQ2hpbGQgPSBhbnksIFRQYXJlbnQgPSBhbnk+ID0gKFxuXHRwYXJlbnQ6IFRQYXJlbnQsXG5cdGNoaWxkOiBUQ2hpbGQsXG5cdHN0b3JlOiBOZ3RTaWduYWxTdG9yZTxOZ3RTdGF0ZT4sXG4pID0+IHZvaWQgfCAoKCkgPT4gdm9pZCk7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTmd0QWZ0ZXJBdHRhY2g8XG5cdFRDaGlsZCBleHRlbmRzIE5ndEluc3RhbmNlTm9kZSA9IE5ndEluc3RhbmNlTm9kZSxcblx0VFBhcmVudCBleHRlbmRzIE5ndEluc3RhbmNlTm9kZSA9IE5ndEluc3RhbmNlTm9kZSxcbj4ge1xuXHRwYXJlbnQ6IFRQYXJlbnQ7XG5cdG5vZGU6IFRDaGlsZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBOZ3RMb2NhbEluc3RhbmNlU3RhdGUge1xuXHRvYmplY3RzOiBOZ3RJbnN0YW5jZU5vZGVbXTtcblx0bm9uT2JqZWN0czogTmd0SW5zdGFuY2VOb2RlW107XG5cdHBhcmVudDogTmd0SW5zdGFuY2VOb2RlIHwgbnVsbDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBOZ3RMb2NhbFN0YXRlIHtcblx0LyoqIHRoZSBzdG9yZSBvZiB0aGUgY2FudmFzIHRoYXQgdGhlIGluc3RhbmNlIGlzIGJlaW5nIHJlbmRlcmVkIHRvICovXG5cdHN0b3JlOiBOZ3RTaWduYWxTdG9yZTxOZ3RTdGF0ZT47XG5cdC8vIG9iamVjdHMgcmVsYXRlZCB0byB0aGlzIGluc3RhbmNlXG5cdGluc3RhbmNlU3RvcmU6IE5ndFNpZ25hbFN0b3JlPE5ndExvY2FsSW5zdGFuY2VTdGF0ZT47XG5cdC8vIHNob3J0Y3V0IHRvIHNpZ25hbHNcblx0cGFyZW50OiBTaWduYWw8Tmd0TG9jYWxJbnN0YW5jZVN0YXRlWydwYXJlbnQnXT47XG5cdG9iamVjdHM6IFNpZ25hbDxOZ3RMb2NhbEluc3RhbmNlU3RhdGVbJ29iamVjdHMnXT47XG5cdG5vbk9iamVjdHM6IFNpZ25hbDxOZ3RMb2NhbEluc3RhbmNlU3RhdGVbJ25vbk9iamVjdHMnXT47XG5cdC8vIHNob3J0Y3V0IHRvIGFkZC9yZW1vdmUgb2JqZWN0IHRvIGxpc3Rcblx0YWRkOiAoaW5zdGFuY2U6IE5ndEluc3RhbmNlTm9kZSwgdHlwZTogJ29iamVjdHMnIHwgJ25vbk9iamVjdHMnKSA9PiB2b2lkO1xuXHRyZW1vdmU6IChpbnN0YW5jZTogTmd0SW5zdGFuY2VOb2RlLCB0eXBlOiAnb2JqZWN0cycgfCAnbm9uT2JqZWN0cycpID0+IHZvaWQ7XG5cdHNldFBhcmVudDogKHBhcmVudDogTmd0SW5zdGFuY2VOb2RlIHwgbnVsbCkgPT4gdm9pZDtcblx0Ly8gaWYgdGhpcyBUSFJFRSBpbnN0YW5jZSBpcyBhIG5ndC1wcmltaXRpdmVcblx0cHJpbWl0aXZlPzogYm9vbGVhbjtcblx0Ly8gaWYgdGhpcyBUSFJFRSBvYmplY3QgaGFzIGFueSBldmVudHMgYm91bmQgdG8gaXRcblx0ZXZlbnRDb3VudDogbnVtYmVyO1xuXHQvLyBsaXN0IG9mIGhhbmRsZXJzIHRvIGhhbmRsZSB0aGUgZXZlbnRzXG5cdGhhbmRsZXJzOiBQYXJ0aWFsPE5ndEV2ZW50SGFuZGxlcnM+O1xuXHQvLyBhdHRhY2ggaW5mb3JtYXRpb24gc28gdGhhdCB3ZSBjYW4gZGV0YWNoIGFzIHdlbGwgYXMgcmVzZXRcblx0YXR0YWNoPzogc3RyaW5nW10gfCBOZ3RBdHRhY2hGdW5jdGlvbjtcblx0Ly8gcHJldmlvdXNseSBhdHRhY2ggaW5mb3JtYXRpb24gc28gd2UgY2FuIHJlc2V0IGFzIHdlbGwgYXMgY2xlYW4gdXBcblx0cHJldmlvdXNBdHRhY2g/OiB1bmtub3duIHwgKCgpID0+IHZvaWQpO1xuXHQvLyBpcyByYXcgdmFsdWVcblx0aXNSYXc/OiBib29sZWFuO1xuXHQvLyBwcmlvcml0eSBmb3IgYmVmb3JlIHJlbmRlclxuXHRwcmlvcml0eT86IG51bWJlcjtcblx0b25VcGRhdGU/OiAobm9kZTogTmd0SW5zdGFuY2VOb2RlKSA9PiB2b2lkO1xuXHRvbkF0dGFjaD86IChhZnRlckF0dGFjaDogTmd0QWZ0ZXJBdHRhY2gpID0+IHZvaWQ7XG59XG5cbmV4cG9ydCB0eXBlIE5ndEluc3RhbmNlTm9kZTxUTm9kZSA9IGFueT4gPSB7IF9fbmd0X186IE5ndExvY2FsU3RhdGUgfSAmIE5ndEFueVJlY29yZCAmIFROb2RlO1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0TG9jYWxTdGF0ZTxUSW5zdGFuY2UgZXh0ZW5kcyBvYmplY3Q+KG9iajogVEluc3RhbmNlIHwgdW5kZWZpbmVkKTogTmd0TG9jYWxTdGF0ZSB8IHVuZGVmaW5lZCB7XG5cdGlmICghb2JqKSByZXR1cm4gdW5kZWZpbmVkO1xuXHRyZXR1cm4gKG9iaiBhcyBOZ3RBbnlSZWNvcmQpWydfX25ndF9fJ107XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnZhbGlkYXRlSW5zdGFuY2U8VEluc3RhbmNlIGV4dGVuZHMgb2JqZWN0PihpbnN0YW5jZTogVEluc3RhbmNlKSB7XG5cdGxldCBzdG9yZSA9IGdldExvY2FsU3RhdGUoaW5zdGFuY2UpPy5zdG9yZTtcblxuXHRpZiAoc3RvcmUpIHtcblx0XHR3aGlsZSAoc3RvcmUuc25hcHNob3QucHJldmlvdXNSb290KSB7XG5cdFx0XHRzdG9yZSA9IHN0b3JlLnNuYXBzaG90LnByZXZpb3VzUm9vdDtcblx0XHR9XG5cdFx0aWYgKHN0b3JlLnNuYXBzaG90LmludGVybmFsLmZyYW1lcyA9PT0gMCkge1xuXHRcdFx0c3RvcmUuc25hcHNob3QuaW52YWxpZGF0ZSgpO1xuXHRcdH1cblx0fVxuXG5cdGNoZWNrVXBkYXRlKGluc3RhbmNlKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHByZXBhcmU8VEluc3RhbmNlIGV4dGVuZHMgb2JqZWN0ID0gTmd0QW55UmVjb3JkPihcblx0b2JqZWN0OiBUSW5zdGFuY2UsXG5cdGxvY2FsU3RhdGU/OiBQYXJ0aWFsPE5ndExvY2FsU3RhdGU+LFxuKSB7XG5cdGNvbnN0IGluc3RhbmNlID0gb2JqZWN0IGFzIHVua25vd24gYXMgTmd0SW5zdGFuY2VOb2RlPFRJbnN0YW5jZT47XG5cblx0aWYgKGxvY2FsU3RhdGU/LnByaW1pdGl2ZSB8fCAhaW5zdGFuY2UuX19uZ3RfXykge1xuXHRcdGNvbnN0IHtcblx0XHRcdGluc3RhbmNlU3RvcmUgPSBzaWduYWxTdG9yZTxOZ3RMb2NhbEluc3RhbmNlU3RhdGU+KHtcblx0XHRcdFx0cGFyZW50OiBudWxsLFxuXHRcdFx0XHRvYmplY3RzOiBbXSxcblx0XHRcdFx0bm9uT2JqZWN0czogW10sXG5cdFx0XHR9KSxcblx0XHRcdC4uLnJlc3Rcblx0XHR9ID0gbG9jYWxTdGF0ZSB8fCB7fTtcblxuXHRcdGluc3RhbmNlLl9fbmd0X18gPSB7XG5cdFx0XHRwcmV2aW91c0F0dGFjaDogbnVsbCxcblx0XHRcdHN0b3JlOiBudWxsLFxuXHRcdFx0bWVtb2l6ZWQ6IHt9LFxuXHRcdFx0ZXZlbnRDb3VudDogMCxcblx0XHRcdGhhbmRsZXJzOiB7fSxcblx0XHRcdGluc3RhbmNlU3RvcmUsXG5cdFx0XHRwYXJlbnQ6IGluc3RhbmNlU3RvcmUuc2VsZWN0KCdwYXJlbnQnKSxcblx0XHRcdG9iamVjdHM6IGluc3RhbmNlU3RvcmUuc2VsZWN0KCdvYmplY3RzJyksXG5cdFx0XHRub25PYmplY3RzOiBpbnN0YW5jZVN0b3JlLnNlbGVjdCgnbm9uT2JqZWN0cycpLFxuXHRcdFx0YWRkKG9iamVjdCwgdHlwZSkge1xuXHRcdFx0XHRjb25zdCBjdXJyZW50ID0gaW5zdGFuY2UuX19uZ3RfXy5pbnN0YW5jZVN0b3JlLmdldCh0eXBlKTtcblx0XHRcdFx0Y29uc3QgZm91bmRJbmRleCA9IGN1cnJlbnQuaW5kZXhPZigobm9kZTogTmd0SW5zdGFuY2VOb2RlKSA9PiBvYmplY3QgPT09IG5vZGUpO1xuXHRcdFx0XHRpZiAoZm91bmRJbmRleCA+IC0xKSB7XG5cdFx0XHRcdFx0Y3VycmVudC5zcGxpY2UoZm91bmRJbmRleCwgMSwgb2JqZWN0KTtcblx0XHRcdFx0XHRpbnN0YW5jZS5fX25ndF9fLmluc3RhbmNlU3RvcmUudXBkYXRlKHsgW3R5cGVdOiBjdXJyZW50IH0pO1xuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdGluc3RhbmNlLl9fbmd0X18uaW5zdGFuY2VTdG9yZS51cGRhdGUoKHByZXYpID0+ICh7IFt0eXBlXTogWy4uLnByZXZbdHlwZV0sIG9iamVjdF0gfSkpO1xuXHRcdFx0XHR9XG5cdFx0XHRcdG5vdGlmeUFuY2VzdG9ycyhpbnN0YW5jZS5fX25ndF9fLmluc3RhbmNlU3RvcmUuZ2V0KCdwYXJlbnQnKSk7XG5cdFx0XHR9LFxuXHRcdFx0cmVtb3ZlKG9iamVjdCwgdHlwZSkge1xuXHRcdFx0XHRpbnN0YW5jZS5fX25ndF9fLmluc3RhbmNlU3RvcmUudXBkYXRlKChwcmV2KSA9PiAoeyBbdHlwZV06IHByZXZbdHlwZV0uZmlsdGVyKChub2RlKSA9PiBub2RlICE9PSBvYmplY3QpIH0pKTtcblx0XHRcdFx0bm90aWZ5QW5jZXN0b3JzKGluc3RhbmNlLl9fbmd0X18uaW5zdGFuY2VTdG9yZS5nZXQoJ3BhcmVudCcpKTtcblx0XHRcdH0sXG5cdFx0XHRzZXRQYXJlbnQocGFyZW50KSB7XG5cdFx0XHRcdGluc3RhbmNlLl9fbmd0X18uaW5zdGFuY2VTdG9yZS51cGRhdGUoeyBwYXJlbnQgfSk7XG5cdFx0XHR9LFxuXHRcdFx0Li4ucmVzdCxcblx0XHR9IGFzIE5ndExvY2FsU3RhdGU7XG5cdH1cblxuXHRyZXR1cm4gaW5zdGFuY2U7XG59XG5cbmZ1bmN0aW9uIG5vdGlmeUFuY2VzdG9ycyhpbnN0YW5jZTogTmd0SW5zdGFuY2VOb2RlIHwgbnVsbCkge1xuXHRpZiAoIWluc3RhbmNlKSByZXR1cm47XG5cdGNvbnN0IGxvY2FsU3RhdGUgPSBnZXRMb2NhbFN0YXRlKGluc3RhbmNlKTtcblx0aWYgKCFsb2NhbFN0YXRlKSByZXR1cm47XG5cdGxvY2FsU3RhdGUuaW5zdGFuY2VTdG9yZS51cGRhdGUoKHByZXYpID0+ICh7IG9iamVjdHM6IHByZXYub2JqZWN0cywgbm9uT2JqZWN0czogcHJldi5ub25PYmplY3RzIH0pKTtcblx0bm90aWZ5QW5jZXN0b3JzKGxvY2FsU3RhdGUuaW5zdGFuY2VTdG9yZS5nZXQoJ3BhcmVudCcpKTtcbn1cbiJdfQ==
72
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zdGFuY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi9pbnN0YW5jZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxPQUFPLEVBQWtCLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ25FLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQXVEN0MsTUFBTSxVQUFVLGFBQWEsQ0FBMkIsR0FBMEI7SUFDakYsSUFBSSxDQUFDLEdBQUc7UUFBRSxPQUFPLFNBQVMsQ0FBQztJQUMzQixPQUFRLEdBQW9CLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDekMsQ0FBQztBQUVELE1BQU0sVUFBVSxrQkFBa0IsQ0FBMkIsUUFBbUI7SUFDL0UsSUFBSSxLQUFLLEdBQUcsYUFBYSxDQUFDLFFBQVEsQ0FBQyxFQUFFLEtBQUssQ0FBQztJQUUzQyxJQUFJLEtBQUssRUFBRSxDQUFDO1FBQ1gsT0FBTyxLQUFLLENBQUMsUUFBUSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3BDLEtBQUssR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQztRQUNyQyxDQUFDO1FBQ0QsSUFBSSxLQUFLLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDMUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUM3QixDQUFDO0lBQ0YsQ0FBQztJQUVELFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQztBQUN2QixDQUFDO0FBRUQsTUFBTSxVQUFVLE9BQU8sQ0FDdEIsTUFBaUIsRUFDakIsVUFBbUM7SUFFbkMsTUFBTSxRQUFRLEdBQUcsTUFBK0MsQ0FBQztJQUVqRSxJQUFJLFVBQVUsRUFBRSxTQUFTLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDaEQsTUFBTSxFQUNMLGFBQWEsR0FBRyxXQUFXLENBQXdC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LENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsVUFBVSxFQUFFLENBQUMsVUFBVSxJQUFJLEVBQUUsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztJQUM5RyxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDekIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmd0RXZlbnRIYW5kbGVycyB9IGZyb20gJy4vZXZlbnRzJztcbmltcG9ydCB7IE5ndFN0YXRlIH0gZnJvbSAnLi9zdG9yZSc7XG5pbXBvcnQgeyBOZ3RBbnlSZWNvcmQgfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IE5ndFNpZ25hbFN0b3JlLCBzaWduYWxTdG9yZSB9IGZyb20gJy4vdXRpbHMvc2lnbmFsLXN0b3JlJztcbmltcG9ydCB7IGNoZWNrVXBkYXRlIH0gZnJvbSAnLi91dGlscy91cGRhdGUnO1xuXG5leHBvcnQgdHlwZSBOZ3RBdHRhY2hGdW5jdGlvbjxUQ2hpbGQgPSBhbnksIFRQYXJlbnQgPSBhbnk+ID0gKFxuXHRwYXJlbnQ6IFRQYXJlbnQsXG5cdGNoaWxkOiBUQ2hpbGQsXG5cdHN0b3JlOiBOZ3RTaWduYWxTdG9yZTxOZ3RTdGF0ZT4sXG4pID0+IHZvaWQgfCAoKCkgPT4gdm9pZCk7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTmd0QWZ0ZXJBdHRhY2g8XG5cdFRDaGlsZCBleHRlbmRzIE5ndEluc3RhbmNlTm9kZSA9IE5ndEluc3RhbmNlTm9kZSxcblx0VFBhcmVudCBleHRlbmRzIE5ndEluc3RhbmNlTm9kZSA9IE5ndEluc3RhbmNlTm9kZSxcbj4ge1xuXHRwYXJlbnQ6IFRQYXJlbnQ7XG5cdG5vZGU6IFRDaGlsZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBOZ3RMb2NhbEluc3RhbmNlU3RhdGUge1xuXHRvYmplY3RzOiBOZ3RJbnN0YW5jZU5vZGVbXTtcblx0bm9uT2JqZWN0czogTmd0SW5zdGFuY2VOb2RlW107XG5cdHBhcmVudDogTmd0SW5zdGFuY2VOb2RlIHwgbnVsbDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBOZ3RMb2NhbFN0YXRlIHtcblx0LyoqIHRoZSBzdG9yZSBvZiB0aGUgY2FudmFzIHRoYXQgdGhlIGluc3RhbmNlIGlzIGJlaW5nIHJlbmRlcmVkIHRvICovXG5cdHN0b3JlOiBOZ3RTaWduYWxTdG9yZTxOZ3RTdGF0ZT47XG5cdC8vIG9iamVjdHMgcmVsYXRlZCB0byB0aGlzIGluc3RhbmNlXG5cdGluc3RhbmNlU3RvcmU6IE5ndFNpZ25hbFN0b3JlPE5ndExvY2FsSW5zdGFuY2VTdGF0ZT47XG5cdC8vIHNob3J0Y3V0IHRvIHNpZ25hbHNcblx0cGFyZW50OiBTaWduYWw8Tmd0TG9jYWxJbnN0YW5jZVN0YXRlWydwYXJlbnQnXT47XG5cdG9iamVjdHM6IFNpZ25hbDxOZ3RMb2NhbEluc3RhbmNlU3RhdGVbJ29iamVjdHMnXT47XG5cdG5vbk9iamVjdHM6IFNpZ25hbDxOZ3RMb2NhbEluc3RhbmNlU3RhdGVbJ25vbk9iamVjdHMnXT47XG5cdC8vIHNob3J0Y3V0IHRvIGFkZC9yZW1vdmUgb2JqZWN0IHRvIGxpc3Rcblx0YWRkOiAoaW5zdGFuY2U6IE5ndEluc3RhbmNlTm9kZSwgdHlwZTogJ29iamVjdHMnIHwgJ25vbk9iamVjdHMnKSA9PiB2b2lkO1xuXHRyZW1vdmU6IChpbnN0YW5jZTogTmd0SW5zdGFuY2VOb2RlLCB0eXBlOiAnb2JqZWN0cycgfCAnbm9uT2JqZWN0cycpID0+IHZvaWQ7XG5cdHNldFBhcmVudDogKHBhcmVudDogTmd0SW5zdGFuY2VOb2RlIHwgbnVsbCkgPT4gdm9pZDtcblx0Ly8gaWYgdGhpcyBUSFJFRSBpbnN0YW5jZSBpcyBhIG5ndC1wcmltaXRpdmVcblx0cHJpbWl0aXZlPzogYm9vbGVhbjtcblx0Ly8gaWYgdGhpcyBUSFJFRSBvYmplY3QgaGFzIGFueSBldmVudHMgYm91bmQgdG8gaXRcblx0ZXZlbnRDb3VudDogbnVtYmVyO1xuXHQvLyBsaXN0IG9mIGhhbmRsZXJzIHRvIGhhbmRsZSB0aGUgZXZlbnRzXG5cdGhhbmRsZXJzOiBQYXJ0aWFsPE5ndEV2ZW50SGFuZGxlcnM+O1xuXHQvLyBhdHRhY2ggaW5mb3JtYXRpb24gc28gdGhhdCB3ZSBjYW4gZGV0YWNoIGFzIHdlbGwgYXMgcmVzZXRcblx0YXR0YWNoPzogc3RyaW5nW10gfCBOZ3RBdHRhY2hGdW5jdGlvbjtcblx0Ly8gcHJldmlvdXNseSBhdHRhY2ggaW5mb3JtYXRpb24gc28gd2UgY2FuIHJlc2V0IGFzIHdlbGwgYXMgY2xlYW4gdXBcblx0cHJldmlvdXNBdHRhY2g/OiB1bmtub3duIHwgKCgpID0+IHZvaWQpO1xuXHQvLyBpcyByYXcgdmFsdWVcblx0aXNSYXc/OiBib29sZWFuO1xuXHQvLyBwcmlvcml0eSBmb3IgYmVmb3JlIHJlbmRlclxuXHRwcmlvcml0eT86IG51bWJlcjtcblx0b25VcGRhdGU/OiAobm9kZTogTmd0SW5zdGFuY2VOb2RlKSA9PiB2b2lkO1xuXHRvbkF0dGFjaD86IChhZnRlckF0dGFjaDogTmd0QWZ0ZXJBdHRhY2gpID0+IHZvaWQ7XG59XG5cbmV4cG9ydCB0eXBlIE5ndEluc3RhbmNlTm9kZTxUTm9kZSA9IGFueT4gPSB7IF9fbmd0X186IE5ndExvY2FsU3RhdGUgfSAmIE5ndEFueVJlY29yZCAmIFROb2RlO1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0TG9jYWxTdGF0ZTxUSW5zdGFuY2UgZXh0ZW5kcyBvYmplY3Q+KG9iajogVEluc3RhbmNlIHwgdW5kZWZpbmVkKTogTmd0TG9jYWxTdGF0ZSB8IHVuZGVmaW5lZCB7XG5cdGlmICghb2JqKSByZXR1cm4gdW5kZWZpbmVkO1xuXHRyZXR1cm4gKG9iaiBhcyBOZ3RBbnlSZWNvcmQpWydfX25ndF9fJ107XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnZhbGlkYXRlSW5zdGFuY2U8VEluc3RhbmNlIGV4dGVuZHMgb2JqZWN0PihpbnN0YW5jZTogVEluc3RhbmNlKSB7XG5cdGxldCBzdG9yZSA9IGdldExvY2FsU3RhdGUoaW5zdGFuY2UpPy5zdG9yZTtcblxuXHRpZiAoc3RvcmUpIHtcblx0XHR3aGlsZSAoc3RvcmUuc25hcHNob3QucHJldmlvdXNSb290KSB7XG5cdFx0XHRzdG9yZSA9IHN0b3JlLnNuYXBzaG90LnByZXZpb3VzUm9vdDtcblx0XHR9XG5cdFx0aWYgKHN0b3JlLnNuYXBzaG90LmludGVybmFsLmZyYW1lcyA9PT0gMCkge1xuXHRcdFx0c3RvcmUuc25hcHNob3QuaW52YWxpZGF0ZSgpO1xuXHRcdH1cblx0fVxuXG5cdGNoZWNrVXBkYXRlKGluc3RhbmNlKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHByZXBhcmU8VEluc3RhbmNlIGV4dGVuZHMgb2JqZWN0ID0gTmd0QW55UmVjb3JkPihcblx0b2JqZWN0OiBUSW5zdGFuY2UsXG5cdGxvY2FsU3RhdGU/OiBQYXJ0aWFsPE5ndExvY2FsU3RhdGU+LFxuKSB7XG5cdGNvbnN0IGluc3RhbmNlID0gb2JqZWN0IGFzIHVua25vd24gYXMgTmd0SW5zdGFuY2VOb2RlPFRJbnN0YW5jZT47XG5cblx0aWYgKGxvY2FsU3RhdGU/LnByaW1pdGl2ZSB8fCAhaW5zdGFuY2UuX19uZ3RfXykge1xuXHRcdGNvbnN0IHtcblx0XHRcdGluc3RhbmNlU3RvcmUgPSBzaWduYWxTdG9yZTxOZ3RMb2NhbEluc3RhbmNlU3RhdGU+KHtcblx0XHRcdFx0cGFyZW50OiBudWxsLFxuXHRcdFx0XHRvYmplY3RzOiBbXSxcblx0XHRcdFx0bm9uT2JqZWN0czogW10sXG5cdFx0XHR9KSxcblx0XHRcdC4uLnJlc3Rcblx0XHR9ID0gbG9jYWxTdGF0ZSB8fCB7fTtcblxuXHRcdGluc3RhbmNlLl9fbmd0X18gPSB7XG5cdFx0XHRwcmV2aW91c0F0dGFjaDogbnVsbCxcblx0XHRcdHN0b3JlOiBudWxsLFxuXHRcdFx0bWVtb2l6ZWQ6IHt9LFxuXHRcdFx0ZXZlbnRDb3VudDogMCxcblx0XHRcdGhhbmRsZXJzOiB7fSxcblx0XHRcdGluc3RhbmNlU3RvcmUsXG5cdFx0XHRwYXJlbnQ6IGluc3RhbmNlU3RvcmUuc2VsZWN0KCdwYXJlbnQnKSxcblx0XHRcdG9iamVjdHM6IGluc3RhbmNlU3RvcmUuc2VsZWN0KCdvYmplY3RzJyksXG5cdFx0XHRub25PYmplY3RzOiBpbnN0YW5jZVN0b3JlLnNlbGVjdCgnbm9uT2JqZWN0cycpLFxuXHRcdFx0YWRkKG9iamVjdCwgdHlwZSkge1xuXHRcdFx0XHRjb25zdCBjdXJyZW50ID0gaW5zdGFuY2UuX19uZ3RfXy5pbnN0YW5jZVN0b3JlLnNuYXBzaG90W3R5cGVdO1xuXHRcdFx0XHRjb25zdCBmb3VuZEluZGV4ID0gY3VycmVudC5pbmRleE9mKChub2RlOiBOZ3RJbnN0YW5jZU5vZGUpID0+IG9iamVjdCA9PT0gbm9kZSk7XG5cdFx0XHRcdGlmIChmb3VuZEluZGV4ID4gLTEpIHtcblx0XHRcdFx0XHRjdXJyZW50LnNwbGljZShmb3VuZEluZGV4LCAxLCBvYmplY3QpO1xuXHRcdFx0XHRcdGluc3RhbmNlLl9fbmd0X18uaW5zdGFuY2VTdG9yZS51cGRhdGUoeyBbdHlwZV06IGN1cnJlbnQgfSk7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0aW5zdGFuY2UuX19uZ3RfXy5pbnN0YW5jZVN0b3JlLnVwZGF0ZSgocHJldikgPT4gKHsgW3R5cGVdOiBbLi4ucHJldlt0eXBlXSwgb2JqZWN0XSB9KSk7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRub3RpZnlBbmNlc3RvcnMoaW5zdGFuY2UuX19uZ3RfXy5pbnN0YW5jZVN0b3JlLnNuYXBzaG90LnBhcmVudCk7XG5cdFx0XHR9LFxuXHRcdFx0cmVtb3ZlKG9iamVjdCwgdHlwZSkge1xuXHRcdFx0XHRpbnN0YW5jZS5fX25ndF9fLmluc3RhbmNlU3RvcmUudXBkYXRlKChwcmV2KSA9PiAoeyBbdHlwZV06IHByZXZbdHlwZV0uZmlsdGVyKChub2RlKSA9PiBub2RlICE9PSBvYmplY3QpIH0pKTtcblx0XHRcdFx0bm90aWZ5QW5jZXN0b3JzKGluc3RhbmNlLl9fbmd0X18uaW5zdGFuY2VTdG9yZS5zbmFwc2hvdC5wYXJlbnQpO1xuXHRcdFx0fSxcblx0XHRcdHNldFBhcmVudChwYXJlbnQpIHtcblx0XHRcdFx0aW5zdGFuY2UuX19uZ3RfXy5pbnN0YW5jZVN0b3JlLnVwZGF0ZSh7IHBhcmVudCB9KTtcblx0XHRcdH0sXG5cdFx0XHQuLi5yZXN0LFxuXHRcdH0gYXMgTmd0TG9jYWxTdGF0ZTtcblx0fVxuXG5cdHJldHVybiBpbnN0YW5jZTtcbn1cblxuZnVuY3Rpb24gbm90aWZ5QW5jZXN0b3JzKGluc3RhbmNlOiBOZ3RJbnN0YW5jZU5vZGUgfCBudWxsKSB7XG5cdGlmICghaW5zdGFuY2UpIHJldHVybjtcblx0Y29uc3QgbG9jYWxTdGF0ZSA9IGdldExvY2FsU3RhdGUoaW5zdGFuY2UpO1xuXHRpZiAoIWxvY2FsU3RhdGUpIHJldHVybjtcblx0Y29uc3QgeyBwYXJlbnQsIG9iamVjdHMsIG5vbk9iamVjdHMgfSA9IGxvY2FsU3RhdGUuaW5zdGFuY2VTdG9yZS5zbmFwc2hvdDtcblx0bG9jYWxTdGF0ZS5pbnN0YW5jZVN0b3JlLnVwZGF0ZSh7IG9iamVjdHM6IChvYmplY3RzIHx8IFtdKS5zbGljZSgpLCBub25PYmplY3RzOiAobm9uT2JqZWN0cyB8fCBbXSkuc2xpY2UoKSB9KTtcblx0bm90aWZ5QW5jZXN0b3JzKHBhcmVudCk7XG59XG4iXX0=
@@ -32,26 +32,30 @@ export function merge(objFn, toMerge, mode = 'override') {
32
32
  return computed(() => ({ ...objFn(), ...toMerge }));
33
33
  return computed(() => ({ ...toMerge, ...objFn() }));
34
34
  }
35
- export function vector2(options, key) {
35
+ export function vector2(options, key, keepUndefined = false) {
36
36
  return computed(() => {
37
37
  const value = options()[key];
38
+ if (keepUndefined && value == undefined)
39
+ return undefined;
38
40
  if (typeof value === 'number')
39
41
  return new Vector2(value, value);
40
42
  else if (value)
41
43
  return new Vector2(...value);
42
44
  else
43
45
  return new Vector2();
44
- }, { equal: (a, b) => a.equals(b) });
46
+ }, { equal: (a, b) => !!a && !!b && a.equals(b) });
45
47
  }
46
- export function vector3(options, key) {
48
+ export function vector3(options, key, keepUndefined = false) {
47
49
  return computed(() => {
48
50
  const value = options()[key];
51
+ if (keepUndefined && value == undefined)
52
+ return undefined;
49
53
  if (typeof value === 'number')
50
54
  return new Vector3(value, value, value);
51
55
  else if (value)
52
56
  return new Vector3(...value);
53
57
  else
54
58
  return new Vector3();
55
- }, { equal: (a, b) => a.equals(b) });
59
+ }, { equal: (a, b) => !!a && !!b && a.equals(b) });
56
60
  }
57
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyYW1ldGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL3V0aWxzL3BhcmFtZXRlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFVLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBQUUsT0FBTyxFQUFnQixPQUFPLEVBQWdCLE1BQU0sT0FBTyxDQUFDO0FBZXJFLE1BQU0sVUFBVSxJQUFJLENBQUMsS0FBeUIsRUFBRSxVQUFvQjtJQUNuRSxPQUFPLFFBQVEsQ0FBQyxHQUFHLEVBQUU7UUFDcEIsTUFBTSxHQUFHLEdBQUcsS0FBSyxFQUFFLENBQUM7UUFDcEIsTUFBTSxNQUFNLEdBQUcsRUFBa0IsQ0FBQztRQUVsQyxLQUFLLE1BQU0sR0FBRyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUNwQyxJQUFJLFVBQVUsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDO2dCQUFFLFNBQVM7WUFDdkMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDNUMsQ0FBQztRQUVELE9BQU8sTUFBTSxDQUFDO0lBQ2YsQ0FBQyxDQUFDLENBQUM7QUFDSixDQUFDO0FBVUQsTUFBTSxVQUFVLElBQUksQ0FBQyxLQUF5QixFQUFFLFNBQTRCO0lBQzNFLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO1FBQzlCLE9BQU8sUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUNwQixNQUFNLEdBQUcsR0FBRyxLQUFLLEVBQUUsQ0FBQztZQUNwQixNQUFNLE1BQU0sR0FBRyxFQUFrQixDQUFDO1lBQ2xDLEtBQUssTUFBTSxHQUFHLElBQUksU0FBUyxFQUFFLENBQUM7Z0JBQzdCLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUM7b0JBQUUsU0FBUztnQkFDNUIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDNUMsQ0FBQztZQUNELE9BQU8sTUFBTSxDQUFDO1FBQ2YsQ0FBQyxDQUFDLENBQUM7SUFDSixDQUFDO0lBRUQsT0FBTyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsS0FBSyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztBQUMzQyxDQUFDO0FBRUQsTUFBTSxVQUFVLEtBQUssQ0FDcEIsS0FBb0IsRUFDcEIsT0FBeUIsRUFDekIsT0FBZ0MsVUFBVTtJQUUxQyxJQUFJLElBQUksS0FBSyxVQUFVO1FBQUUsT0FBTyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsS0FBSyxFQUFFLEVBQUUsR0FBRyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDN0UsT0FBTyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsT0FBTyxFQUFFLEdBQUcsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDckQsQ0FBQztBQUVELE1BQU0sVUFBVSxPQUFPLENBQXlCLE9BQXdCLEVBQUUsR0FBb0M7SUFDN0csT0FBTyxRQUFRLENBQ2QsR0FBRyxFQUFFO1FBQ0osTUFBTSxLQUFLLEdBQUcsT0FBTyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDN0IsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRO1lBQUUsT0FBTyxJQUFJLE9BQU8sQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7YUFDM0QsSUFBSSxLQUFLO1lBQUUsT0FBTyxJQUFJLE9BQU8sQ0FBQyxHQUFJLEtBQXNCLENBQUMsQ0FBQzs7WUFDMUQsT0FBTyxJQUFJLE9BQU8sRUFBRSxDQUFDO0lBQzNCLENBQUMsRUFDRCxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FDaEMsQ0FBQztBQUNILENBQUM7QUFFRCxNQUFNLFVBQVUsT0FBTyxDQUF5QixPQUF3QixFQUFFLEdBQW9DO0lBQzdHLE9BQU8sUUFBUSxDQUNkLEdBQUcsRUFBRTtRQUNKLE1BQU0sS0FBSyxHQUFHLE9BQU8sRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzdCLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUTtZQUFFLE9BQU8sSUFBSSxPQUFPLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQzthQUNsRSxJQUFJLEtBQUs7WUFBRSxPQUFPLElBQUksT0FBTyxDQUFDLEdBQUksS0FBc0IsQ0FBQyxDQUFDOztZQUMxRCxPQUFPLElBQUksT0FBTyxFQUFFLENBQUM7SUFDM0IsQ0FBQyxFQUNELEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUNoQyxDQUFDO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNpZ25hbCwgY29tcHV0ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFZlY3RvcjIsIFZlY3RvcjJUdXBsZSwgVmVjdG9yMywgVmVjdG9yM1R1cGxlIH0gZnJvbSAndGhyZWUnO1xuaW1wb3J0IHsgTmd0VmVjdG9yMiwgTmd0VmVjdG9yMyB9IGZyb20gJy4uL3RocmVlLXR5cGVzJztcbmltcG9ydCB7IE5ndEFueVJlY29yZCB9IGZyb20gJy4uL3R5cGVzJztcblxudHlwZSBLZXlzT2ZUeXBlPFRPYmplY3QgZXh0ZW5kcyBvYmplY3QsIFRUeXBlPiA9IEV4Y2x1ZGU8XG5cdHtcblx0XHRbSyBpbiBrZXlvZiBUT2JqZWN0XTogVE9iamVjdFtLXSBleHRlbmRzIFRUeXBlIHwgdW5kZWZpbmVkIHwgbnVsbCA/IEsgOiBuZXZlcjtcblx0fVtrZXlvZiBUT2JqZWN0XSxcblx0dW5kZWZpbmVkXG4+O1xuXG5leHBvcnQgZnVuY3Rpb24gb21pdDxUT2JqZWN0IGV4dGVuZHMgb2JqZWN0LCBUS2V5cyBleHRlbmRzIChrZXlvZiBUT2JqZWN0KVtdPihcblx0b2JqRm46ICgpID0+IFRPYmplY3QsXG5cdGtleXNUb09taXQ6IFRLZXlzLFxuKTogU2lnbmFsPE9taXQ8VE9iamVjdCwgVEtleXNbbnVtYmVyXT4+O1xuZXhwb3J0IGZ1bmN0aW9uIG9taXQob2JqRm46ICgpID0+IE5ndEFueVJlY29yZCwga2V5c1RvT21pdDogc3RyaW5nW10pIHtcblx0cmV0dXJuIGNvbXB1dGVkKCgpID0+IHtcblx0XHRjb25zdCBvYmogPSBvYmpGbigpO1xuXHRcdGNvbnN0IHJlc3VsdCA9IHt9IGFzIE5ndEFueVJlY29yZDtcblxuXHRcdGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKG9iaikpIHtcblx0XHRcdGlmIChrZXlzVG9PbWl0LmluY2x1ZGVzKGtleSkpIGNvbnRpbnVlO1xuXHRcdFx0T2JqZWN0LmFzc2lnbihyZXN1bHQsIHsgW2tleV06IG9ialtrZXldIH0pO1xuXHRcdH1cblxuXHRcdHJldHVybiByZXN1bHQ7XG5cdH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcGljazxUT2JqZWN0IGV4dGVuZHMgb2JqZWN0LCBUS2V5IGV4dGVuZHMga2V5b2YgVE9iamVjdD4oXG5cdG9iakZuOiAoKSA9PiBUT2JqZWN0LFxuXHRrZXk6IFRLZXksXG4pOiBTaWduYWw8VE9iamVjdFtUS2V5XT47XG5leHBvcnQgZnVuY3Rpb24gcGljazxUT2JqZWN0IGV4dGVuZHMgb2JqZWN0LCBUS2V5cyBleHRlbmRzIChrZXlvZiBUT2JqZWN0KVtdPihcblx0b2JqRm46ICgpID0+IFRPYmplY3QsXG5cdGtleXM6IFRLZXlzLFxuKTogU2lnbmFsPFBpY2s8VE9iamVjdCwgVEtleXNbbnVtYmVyXT4+O1xuZXhwb3J0IGZ1bmN0aW9uIHBpY2sob2JqRm46ICgpID0+IE5ndEFueVJlY29yZCwga2V5T3JLZXlzOiBzdHJpbmcgfCBzdHJpbmdbXSkge1xuXHRpZiAoQXJyYXkuaXNBcnJheShrZXlPcktleXMpKSB7XG5cdFx0cmV0dXJuIGNvbXB1dGVkKCgpID0+IHtcblx0XHRcdGNvbnN0IG9iaiA9IG9iakZuKCk7XG5cdFx0XHRjb25zdCByZXN1bHQgPSB7fSBhcyBOZ3RBbnlSZWNvcmQ7XG5cdFx0XHRmb3IgKGNvbnN0IGtleSBvZiBrZXlPcktleXMpIHtcblx0XHRcdFx0aWYgKCEoa2V5IGluIG9iaikpIGNvbnRpbnVlO1xuXHRcdFx0XHRPYmplY3QuYXNzaWduKHJlc3VsdCwgeyBba2V5XTogb2JqW2tleV0gfSk7XG5cdFx0XHR9XG5cdFx0XHRyZXR1cm4gcmVzdWx0O1xuXHRcdH0pO1xuXHR9XG5cblx0cmV0dXJuIGNvbXB1dGVkKCgpID0+IG9iakZuKClba2V5T3JLZXlzXSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtZXJnZTxUT2JqZWN0IGV4dGVuZHMgb2JqZWN0Pihcblx0b2JqRm46ICgpID0+IFRPYmplY3QsXG5cdHRvTWVyZ2U6IFBhcnRpYWw8VE9iamVjdD4sXG5cdG1vZGU6ICdvdmVycmlkZScgfCAnYmFja2ZpbGwnID0gJ292ZXJyaWRlJyxcbikge1xuXHRpZiAobW9kZSA9PT0gJ292ZXJyaWRlJykgcmV0dXJuIGNvbXB1dGVkKCgpID0+ICh7IC4uLm9iakZuKCksIC4uLnRvTWVyZ2UgfSkpO1xuXHRyZXR1cm4gY29tcHV0ZWQoKCkgPT4gKHsgLi4udG9NZXJnZSwgLi4ub2JqRm4oKSB9KSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB2ZWN0b3IyPFRPYmplY3QgZXh0ZW5kcyBvYmplY3Q+KG9wdGlvbnM6IFNpZ25hbDxUT2JqZWN0Piwga2V5OiBLZXlzT2ZUeXBlPFRPYmplY3QsIE5ndFZlY3RvcjI+KSB7XG5cdHJldHVybiBjb21wdXRlZChcblx0XHQoKSA9PiB7XG5cdFx0XHRjb25zdCB2YWx1ZSA9IG9wdGlvbnMoKVtrZXldO1xuXHRcdFx0aWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicpIHJldHVybiBuZXcgVmVjdG9yMih2YWx1ZSwgdmFsdWUpO1xuXHRcdFx0ZWxzZSBpZiAodmFsdWUpIHJldHVybiBuZXcgVmVjdG9yMiguLi4odmFsdWUgYXMgVmVjdG9yMlR1cGxlKSk7XG5cdFx0XHRlbHNlIHJldHVybiBuZXcgVmVjdG9yMigpO1xuXHRcdH0sXG5cdFx0eyBlcXVhbDogKGEsIGIpID0+IGEuZXF1YWxzKGIpIH0sXG5cdCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB2ZWN0b3IzPFRPYmplY3QgZXh0ZW5kcyBvYmplY3Q+KG9wdGlvbnM6IFNpZ25hbDxUT2JqZWN0Piwga2V5OiBLZXlzT2ZUeXBlPFRPYmplY3QsIE5ndFZlY3RvcjM+KSB7XG5cdHJldHVybiBjb21wdXRlZChcblx0XHQoKSA9PiB7XG5cdFx0XHRjb25zdCB2YWx1ZSA9IG9wdGlvbnMoKVtrZXldO1xuXHRcdFx0aWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicpIHJldHVybiBuZXcgVmVjdG9yMyh2YWx1ZSwgdmFsdWUsIHZhbHVlKTtcblx0XHRcdGVsc2UgaWYgKHZhbHVlKSByZXR1cm4gbmV3IFZlY3RvcjMoLi4uKHZhbHVlIGFzIFZlY3RvcjNUdXBsZSkpO1xuXHRcdFx0ZWxzZSByZXR1cm4gbmV3IFZlY3RvcjMoKTtcblx0XHR9LFxuXHRcdHsgZXF1YWw6IChhLCBiKSA9PiBhLmVxdWFscyhiKSB9LFxuXHQpO1xufVxuIl19
61
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyYW1ldGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL3V0aWxzL3BhcmFtZXRlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFVLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBQUUsT0FBTyxFQUFnQixPQUFPLEVBQWdCLE1BQU0sT0FBTyxDQUFDO0FBZXJFLE1BQU0sVUFBVSxJQUFJLENBQUMsS0FBeUIsRUFBRSxVQUFvQjtJQUNuRSxPQUFPLFFBQVEsQ0FBQyxHQUFHLEVBQUU7UUFDcEIsTUFBTSxHQUFHLEdBQUcsS0FBSyxFQUFFLENBQUM7UUFDcEIsTUFBTSxNQUFNLEdBQUcsRUFBa0IsQ0FBQztRQUVsQyxLQUFLLE1BQU0sR0FBRyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUNwQyxJQUFJLFVBQVUsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDO2dCQUFFLFNBQVM7WUFDdkMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDNUMsQ0FBQztRQUVELE9BQU8sTUFBTSxDQUFDO0lBQ2YsQ0FBQyxDQUFDLENBQUM7QUFDSixDQUFDO0FBVUQsTUFBTSxVQUFVLElBQUksQ0FBQyxLQUF5QixFQUFFLFNBQTRCO0lBQzNFLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO1FBQzlCLE9BQU8sUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUNwQixNQUFNLEdBQUcsR0FBRyxLQUFLLEVBQUUsQ0FBQztZQUNwQixNQUFNLE1BQU0sR0FBRyxFQUFrQixDQUFDO1lBQ2xDLEtBQUssTUFBTSxHQUFHLElBQUksU0FBUyxFQUFFLENBQUM7Z0JBQzdCLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUM7b0JBQUUsU0FBUztnQkFDNUIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDNUMsQ0FBQztZQUNELE9BQU8sTUFBTSxDQUFDO1FBQ2YsQ0FBQyxDQUFDLENBQUM7SUFDSixDQUFDO0lBRUQsT0FBTyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsS0FBSyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztBQUMzQyxDQUFDO0FBRUQsTUFBTSxVQUFVLEtBQUssQ0FDcEIsS0FBb0IsRUFDcEIsT0FBeUIsRUFDekIsT0FBZ0MsVUFBVTtJQUUxQyxJQUFJLElBQUksS0FBSyxVQUFVO1FBQUUsT0FBTyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsS0FBSyxFQUFFLEVBQUUsR0FBRyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDN0UsT0FBTyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsT0FBTyxFQUFFLEdBQUcsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDckQsQ0FBQztBQVdELE1BQU0sVUFBVSxPQUFPLENBQUMsT0FBNkIsRUFBRSxHQUFXLEVBQUUsYUFBYSxHQUFHLEtBQUs7SUFDeEYsT0FBTyxRQUFRLENBQ2QsR0FBRyxFQUFFO1FBQ0osTUFBTSxLQUFLLEdBQUcsT0FBTyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDN0IsSUFBSSxhQUFhLElBQUksS0FBSyxJQUFJLFNBQVM7WUFBRSxPQUFPLFNBQVMsQ0FBQztRQUMxRCxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVE7WUFBRSxPQUFPLElBQUksT0FBTyxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQzthQUMzRCxJQUFJLEtBQUs7WUFBRSxPQUFPLElBQUksT0FBTyxDQUFDLEdBQUksS0FBc0IsQ0FBQyxDQUFDOztZQUMxRCxPQUFPLElBQUksT0FBTyxFQUFFLENBQUM7SUFDM0IsQ0FBQyxFQUNELEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FDOUMsQ0FBQztBQUNILENBQUM7QUFVRCxNQUFNLFVBQVUsT0FBTyxDQUFDLE9BQTZCLEVBQUUsR0FBVyxFQUFFLGFBQWEsR0FBRyxLQUFLO0lBQ3hGLE9BQU8sUUFBUSxDQUNkLEdBQUcsRUFBRTtRQUNKLE1BQU0sS0FBSyxHQUFHLE9BQU8sRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzdCLElBQUksYUFBYSxJQUFJLEtBQUssSUFBSSxTQUFTO1lBQUUsT0FBTyxTQUFTLENBQUM7UUFDMUQsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRO1lBQUUsT0FBTyxJQUFJLE9BQU8sQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO2FBQ2xFLElBQUksS0FBSztZQUFFLE9BQU8sSUFBSSxPQUFPLENBQUMsR0FBSSxLQUFzQixDQUFDLENBQUM7O1lBQzFELE9BQU8sSUFBSSxPQUFPLEVBQUUsQ0FBQztJQUMzQixDQUFDLEVBQ0QsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUM5QyxDQUFDO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNpZ25hbCwgY29tcHV0ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFZlY3RvcjIsIFZlY3RvcjJUdXBsZSwgVmVjdG9yMywgVmVjdG9yM1R1cGxlIH0gZnJvbSAndGhyZWUnO1xuaW1wb3J0IHsgTmd0VmVjdG9yMiwgTmd0VmVjdG9yMyB9IGZyb20gJy4uL3RocmVlLXR5cGVzJztcbmltcG9ydCB7IE5ndEFueVJlY29yZCB9IGZyb20gJy4uL3R5cGVzJztcblxudHlwZSBLZXlzT2ZUeXBlPFRPYmplY3QgZXh0ZW5kcyBvYmplY3QsIFRUeXBlPiA9IEV4Y2x1ZGU8XG5cdHtcblx0XHRbSyBpbiBrZXlvZiBUT2JqZWN0XTogVE9iamVjdFtLXSBleHRlbmRzIFRUeXBlIHwgdW5kZWZpbmVkIHwgbnVsbCA/IEsgOiBuZXZlcjtcblx0fVtrZXlvZiBUT2JqZWN0XSxcblx0dW5kZWZpbmVkXG4+O1xuXG5leHBvcnQgZnVuY3Rpb24gb21pdDxUT2JqZWN0IGV4dGVuZHMgb2JqZWN0LCBUS2V5cyBleHRlbmRzIChrZXlvZiBUT2JqZWN0KVtdPihcblx0b2JqRm46ICgpID0+IFRPYmplY3QsXG5cdGtleXNUb09taXQ6IFRLZXlzLFxuKTogU2lnbmFsPE9taXQ8VE9iamVjdCwgVEtleXNbbnVtYmVyXT4+O1xuZXhwb3J0IGZ1bmN0aW9uIG9taXQob2JqRm46ICgpID0+IE5ndEFueVJlY29yZCwga2V5c1RvT21pdDogc3RyaW5nW10pIHtcblx0cmV0dXJuIGNvbXB1dGVkKCgpID0+IHtcblx0XHRjb25zdCBvYmogPSBvYmpGbigpO1xuXHRcdGNvbnN0IHJlc3VsdCA9IHt9IGFzIE5ndEFueVJlY29yZDtcblxuXHRcdGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKG9iaikpIHtcblx0XHRcdGlmIChrZXlzVG9PbWl0LmluY2x1ZGVzKGtleSkpIGNvbnRpbnVlO1xuXHRcdFx0T2JqZWN0LmFzc2lnbihyZXN1bHQsIHsgW2tleV06IG9ialtrZXldIH0pO1xuXHRcdH1cblxuXHRcdHJldHVybiByZXN1bHQ7XG5cdH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcGljazxUT2JqZWN0IGV4dGVuZHMgb2JqZWN0LCBUS2V5IGV4dGVuZHMga2V5b2YgVE9iamVjdD4oXG5cdG9iakZuOiAoKSA9PiBUT2JqZWN0LFxuXHRrZXk6IFRLZXksXG4pOiBTaWduYWw8VE9iamVjdFtUS2V5XT47XG5leHBvcnQgZnVuY3Rpb24gcGljazxUT2JqZWN0IGV4dGVuZHMgb2JqZWN0LCBUS2V5cyBleHRlbmRzIChrZXlvZiBUT2JqZWN0KVtdPihcblx0b2JqRm46ICgpID0+IFRPYmplY3QsXG5cdGtleXM6IFRLZXlzLFxuKTogU2lnbmFsPFBpY2s8VE9iamVjdCwgVEtleXNbbnVtYmVyXT4+O1xuZXhwb3J0IGZ1bmN0aW9uIHBpY2sob2JqRm46ICgpID0+IE5ndEFueVJlY29yZCwga2V5T3JLZXlzOiBzdHJpbmcgfCBzdHJpbmdbXSkge1xuXHRpZiAoQXJyYXkuaXNBcnJheShrZXlPcktleXMpKSB7XG5cdFx0cmV0dXJuIGNvbXB1dGVkKCgpID0+IHtcblx0XHRcdGNvbnN0IG9iaiA9IG9iakZuKCk7XG5cdFx0XHRjb25zdCByZXN1bHQgPSB7fSBhcyBOZ3RBbnlSZWNvcmQ7XG5cdFx0XHRmb3IgKGNvbnN0IGtleSBvZiBrZXlPcktleXMpIHtcblx0XHRcdFx0aWYgKCEoa2V5IGluIG9iaikpIGNvbnRpbnVlO1xuXHRcdFx0XHRPYmplY3QuYXNzaWduKHJlc3VsdCwgeyBba2V5XTogb2JqW2tleV0gfSk7XG5cdFx0XHR9XG5cdFx0XHRyZXR1cm4gcmVzdWx0O1xuXHRcdH0pO1xuXHR9XG5cblx0cmV0dXJuIGNvbXB1dGVkKCgpID0+IG9iakZuKClba2V5T3JLZXlzXSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtZXJnZTxUT2JqZWN0IGV4dGVuZHMgb2JqZWN0Pihcblx0b2JqRm46ICgpID0+IFRPYmplY3QsXG5cdHRvTWVyZ2U6IFBhcnRpYWw8VE9iamVjdD4sXG5cdG1vZGU6ICdvdmVycmlkZScgfCAnYmFja2ZpbGwnID0gJ292ZXJyaWRlJyxcbikge1xuXHRpZiAobW9kZSA9PT0gJ292ZXJyaWRlJykgcmV0dXJuIGNvbXB1dGVkKCgpID0+ICh7IC4uLm9iakZuKCksIC4uLnRvTWVyZ2UgfSkpO1xuXHRyZXR1cm4gY29tcHV0ZWQoKCkgPT4gKHsgLi4udG9NZXJnZSwgLi4ub2JqRm4oKSB9KSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB2ZWN0b3IyPFRPYmplY3QgZXh0ZW5kcyBvYmplY3Q+KFxuXHRvcHRpb25zOiBTaWduYWw8VE9iamVjdD4sXG5cdGtleTogS2V5c09mVHlwZTxUT2JqZWN0LCBOZ3RWZWN0b3IyPixcbik6IFNpZ25hbDxWZWN0b3IyPjtcbmV4cG9ydCBmdW5jdGlvbiB2ZWN0b3IyPFRPYmplY3QgZXh0ZW5kcyBvYmplY3Q+KFxuXHRvcHRpb25zOiBTaWduYWw8VE9iamVjdD4sXG5cdGtleTogS2V5c09mVHlwZTxUT2JqZWN0LCBOZ3RWZWN0b3IyPixcblx0a2VlcFVuZGVmaW5lZDogdHJ1ZSxcbik6IFNpZ25hbDxWZWN0b3IyIHwgdW5kZWZpbmVkPjtcbmV4cG9ydCBmdW5jdGlvbiB2ZWN0b3IyKG9wdGlvbnM6IFNpZ25hbDxOZ3RBbnlSZWNvcmQ+LCBrZXk6IHN0cmluZywga2VlcFVuZGVmaW5lZCA9IGZhbHNlKSB7XG5cdHJldHVybiBjb21wdXRlZChcblx0XHQoKSA9PiB7XG5cdFx0XHRjb25zdCB2YWx1ZSA9IG9wdGlvbnMoKVtrZXldO1xuXHRcdFx0aWYgKGtlZXBVbmRlZmluZWQgJiYgdmFsdWUgPT0gdW5kZWZpbmVkKSByZXR1cm4gdW5kZWZpbmVkO1xuXHRcdFx0aWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicpIHJldHVybiBuZXcgVmVjdG9yMih2YWx1ZSwgdmFsdWUpO1xuXHRcdFx0ZWxzZSBpZiAodmFsdWUpIHJldHVybiBuZXcgVmVjdG9yMiguLi4odmFsdWUgYXMgVmVjdG9yMlR1cGxlKSk7XG5cdFx0XHRlbHNlIHJldHVybiBuZXcgVmVjdG9yMigpO1xuXHRcdH0sXG5cdFx0eyBlcXVhbDogKGEsIGIpID0+ICEhYSAmJiAhIWIgJiYgYS5lcXVhbHMoYikgfSxcblx0KTtcbn1cbmV4cG9ydCBmdW5jdGlvbiB2ZWN0b3IzPFRPYmplY3QgZXh0ZW5kcyBvYmplY3Q+KFxuXHRvcHRpb25zOiBTaWduYWw8VE9iamVjdD4sXG5cdGtleTogS2V5c09mVHlwZTxUT2JqZWN0LCBOZ3RWZWN0b3IzPixcbik6IFNpZ25hbDxWZWN0b3IzPjtcbmV4cG9ydCBmdW5jdGlvbiB2ZWN0b3IzPFRPYmplY3QgZXh0ZW5kcyBvYmplY3Q+KFxuXHRvcHRpb25zOiBTaWduYWw8VE9iamVjdD4sXG5cdGtleTogS2V5c09mVHlwZTxUT2JqZWN0LCBOZ3RWZWN0b3IzPixcblx0a2VlcFVuZGVmaW5lZDogdHJ1ZSxcbik6IFNpZ25hbDxWZWN0b3IzIHwgdW5kZWZpbmVkPjtcbmV4cG9ydCBmdW5jdGlvbiB2ZWN0b3IzKG9wdGlvbnM6IFNpZ25hbDxOZ3RBbnlSZWNvcmQ+LCBrZXk6IHN0cmluZywga2VlcFVuZGVmaW5lZCA9IGZhbHNlKSB7XG5cdHJldHVybiBjb21wdXRlZChcblx0XHQoKSA9PiB7XG5cdFx0XHRjb25zdCB2YWx1ZSA9IG9wdGlvbnMoKVtrZXldO1xuXHRcdFx0aWYgKGtlZXBVbmRlZmluZWQgJiYgdmFsdWUgPT0gdW5kZWZpbmVkKSByZXR1cm4gdW5kZWZpbmVkO1xuXHRcdFx0aWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicpIHJldHVybiBuZXcgVmVjdG9yMyh2YWx1ZSwgdmFsdWUsIHZhbHVlKTtcblx0XHRcdGVsc2UgaWYgKHZhbHVlKSByZXR1cm4gbmV3IFZlY3RvcjMoLi4uKHZhbHVlIGFzIFZlY3RvcjNUdXBsZSkpO1xuXHRcdFx0ZWxzZSByZXR1cm4gbmV3IFZlY3RvcjMoKTtcblx0XHR9LFxuXHRcdHsgZXF1YWw6IChhLCBiKSA9PiAhIWEgJiYgISFiICYmIGEuZXF1YWxzKGIpIH0sXG5cdCk7XG59XG4iXX0=
@@ -220,7 +220,7 @@ function prepare(object, localState) {
220
220
  objects: instanceStore.select('objects'),
221
221
  nonObjects: instanceStore.select('nonObjects'),
222
222
  add(object, type) {
223
- const current = instance.__ngt__.instanceStore.get(type);
223
+ const current = instance.__ngt__.instanceStore.snapshot[type];
224
224
  const foundIndex = current.indexOf((node) => object === node);
225
225
  if (foundIndex > -1) {
226
226
  current.splice(foundIndex, 1, object);
@@ -229,11 +229,11 @@ function prepare(object, localState) {
229
229
  else {
230
230
  instance.__ngt__.instanceStore.update((prev) => ({ [type]: [...prev[type], object] }));
231
231
  }
232
- notifyAncestors(instance.__ngt__.instanceStore.get('parent'));
232
+ notifyAncestors(instance.__ngt__.instanceStore.snapshot.parent);
233
233
  },
234
234
  remove(object, type) {
235
235
  instance.__ngt__.instanceStore.update((prev) => ({ [type]: prev[type].filter((node) => node !== object) }));
236
- notifyAncestors(instance.__ngt__.instanceStore.get('parent'));
236
+ notifyAncestors(instance.__ngt__.instanceStore.snapshot.parent);
237
237
  },
238
238
  setParent(parent) {
239
239
  instance.__ngt__.instanceStore.update({ parent });
@@ -249,8 +249,9 @@ function notifyAncestors(instance) {
249
249
  const localState = getLocalState(instance);
250
250
  if (!localState)
251
251
  return;
252
- localState.instanceStore.update((prev) => ({ objects: prev.objects, nonObjects: prev.nonObjects }));
253
- notifyAncestors(localState.instanceStore.get('parent'));
252
+ const { parent, objects, nonObjects } = localState.instanceStore.snapshot;
253
+ localState.instanceStore.update({ objects: (objects || []).slice(), nonObjects: (nonObjects || []).slice() });
254
+ notifyAncestors(parent);
254
255
  }
255
256
 
256
257
  const idCache = {};
@@ -2824,27 +2825,31 @@ function merge(objFn, toMerge, mode = 'override') {
2824
2825
  return computed(() => ({ ...objFn(), ...toMerge }));
2825
2826
  return computed(() => ({ ...toMerge, ...objFn() }));
2826
2827
  }
2827
- function vector2(options, key) {
2828
+ function vector2(options, key, keepUndefined = false) {
2828
2829
  return computed(() => {
2829
2830
  const value = options()[key];
2831
+ if (keepUndefined && value == undefined)
2832
+ return undefined;
2830
2833
  if (typeof value === 'number')
2831
2834
  return new Vector2(value, value);
2832
2835
  else if (value)
2833
2836
  return new Vector2(...value);
2834
2837
  else
2835
2838
  return new Vector2();
2836
- }, { equal: (a, b) => a.equals(b) });
2839
+ }, { equal: (a, b) => !!a && !!b && a.equals(b) });
2837
2840
  }
2838
- function vector3(options, key) {
2841
+ function vector3(options, key, keepUndefined = false) {
2839
2842
  return computed(() => {
2840
2843
  const value = options()[key];
2844
+ if (keepUndefined && value == undefined)
2845
+ return undefined;
2841
2846
  if (typeof value === 'number')
2842
2847
  return new Vector3(value, value, value);
2843
2848
  else if (value)
2844
2849
  return new Vector3(...value);
2845
2850
  else
2846
2851
  return new Vector3();
2847
- }, { equal: (a, b) => a.equals(b) });
2852
+ }, { equal: (a, b) => !!a && !!b && a.equals(b) });
2848
2853
  }
2849
2854
 
2850
2855
  function resolveRef(ref) {