angular-three 2.0.0 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -22,6 +22,9 @@ function diffProps(instance, props) {
22
22
  }
23
23
  return changes;
24
24
  }
25
+ // NOTE: this is a workaround to give the instance a change to have the store from the parent.
26
+ // we clear this property after the applyProps is done
27
+ export const NGT_APPLY_PROPS = '__ngt_apply_props__';
25
28
  // This function applies a set of changes to the instance
26
29
  export function applyProps(instance, props) {
27
30
  // if props is empty
@@ -29,7 +32,7 @@ export function applyProps(instance, props) {
29
32
  return instance;
30
33
  // filter equals, and reserved props
31
34
  const localState = getLocalState(instance);
32
- const rootState = localState?.store?.snapshot ?? {};
35
+ const rootState = localState?.store?.snapshot ?? instance[NGT_APPLY_PROPS]?.snapshot ?? {};
33
36
  const changes = diffProps(instance, props);
34
37
  for (let i = 0; i < changes.length; i++) {
35
38
  let [key, value] = changes[i];
@@ -118,6 +121,10 @@ export function applyProps(instance, props) {
118
121
  if (parent && localState?.onUpdate && changes.length) {
119
122
  localState.onUpdate(instance);
120
123
  }
124
+ // clearing the intermediate store from the instance
125
+ if (instance[NGT_APPLY_PROPS]) {
126
+ delete instance[NGT_APPLY_PROPS];
127
+ }
121
128
  return instance;
122
129
  }
123
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbHktcHJvcHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi91dGlscy9hcHBseS1wcm9wcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsS0FBSyxFQUFFLGVBQWUsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUM5RixPQUFPLEVBQUUsYUFBYSxFQUFFLGtCQUFrQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRWhFLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUV2Qyx3RUFBd0U7QUFDeEUsU0FBUyxTQUFTLENBQUMsUUFBc0IsRUFBRSxLQUFtQjtJQUM3RCxNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNDLE1BQU0sT0FBTyxHQUFvQyxFQUFFLENBQUM7SUFFcEQsS0FBSyxNQUFNLENBQUMsT0FBTyxFQUFFLFNBQVMsQ0FBQyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ2pELElBQUksR0FBRyxHQUFHLE9BQU8sQ0FBQztRQUNsQixJQUFJLEVBQUUsQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztZQUNsQyxJQUFJLE9BQU8sS0FBSyxVQUFVLEVBQUUsQ0FBQztnQkFDNUIsR0FBRyxHQUFHLFlBQVksQ0FBQztZQUNwQixDQUFDO2lCQUFNLElBQUksT0FBTyxLQUFLLGdCQUFnQixFQUFFLENBQUM7Z0JBQ3pDLEdBQUcsR0FBRyxrQkFBa0IsQ0FBQztZQUMxQixDQUFDO1FBQ0YsQ0FBQztRQUNELElBQUksRUFBRSxDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUUsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQUUsU0FBUztRQUMvQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVELE9BQU8sT0FBTyxDQUFDO0FBQ2hCLENBQUM7QUFFRCx5REFBeUQ7QUFDekQsTUFBTSxVQUFVLFVBQVUsQ0FBQyxRQUF5QixFQUFFLEtBQW1CO0lBQ3hFLG9CQUFvQjtJQUNwQixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNO1FBQUUsT0FBTyxRQUFRLENBQUM7SUFFaEQsb0NBQW9DO0lBQ3BDLE1BQU0sVUFBVSxHQUFHLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUMzQyxNQUFNLFNBQVMsR0FBRyxVQUFVLEVBQUUsS0FBSyxFQUFFLFFBQVEsSUFBSyxFQUFlLENBQUM7SUFDbEUsTUFBTSxPQUFPLEdBQUcsU0FBUyxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUUzQyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQ3pDLElBQUksQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRTlCLDREQUE0RDtRQUM1RCx3REFBd0Q7UUFDeEQsSUFBSSxFQUFFLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7WUFDbEMsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDO1lBQzFCLE1BQU0sY0FBYyxHQUFHLE1BQU0sQ0FBQztZQUM5QixNQUFNLG9CQUFvQixHQUFHLGFBQWEsQ0FBQztZQUUzQyxJQUFJLEdBQUcsS0FBSyxVQUFVLEVBQUUsQ0FBQztnQkFDeEIsR0FBRyxHQUFHLFlBQVksQ0FBQztnQkFDbkIsS0FBSyxHQUFHLEtBQUssS0FBSyxZQUFZLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsb0JBQW9CLENBQUM7WUFDeEUsQ0FBQztpQkFBTSxJQUFJLEdBQUcsS0FBSyxnQkFBZ0IsRUFBRSxDQUFDO2dCQUNyQyxHQUFHLEdBQUcsa0JBQWtCLENBQUM7Z0JBQ3pCLEtBQUssR0FBRyxLQUFLLEtBQUssWUFBWSxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLG9CQUFvQixDQUFDO1lBQ3hFLENBQUM7UUFDRixDQUFDO1FBRUQsTUFBTSxlQUFlLEdBQUcsUUFBUSxDQUFDO1FBQ2pDLE1BQU0sVUFBVSxHQUFHLGVBQWUsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUV4QyxxRUFBcUU7UUFDckUsSUFBSSxVQUFVLElBQUksVUFBVSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLFVBQVUsWUFBWSxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQzdGLE1BQU0sT0FBTyxHQUFHLFVBQVUsWUFBWSxLQUFLLENBQUM7WUFDNUMsdUJBQXVCO1lBQ3ZCLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUMxQixJQUFJLFVBQVUsQ0FBQyxXQUFXLENBQUM7b0JBQUUsVUFBVSxDQUFDLFdBQVcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDOztvQkFDdkQsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUM7WUFDbEMsQ0FBQyxDQUFDLHlCQUF5QjtpQkFDdEIsSUFDSixVQUFVLENBQUMsTUFBTSxDQUFDO2dCQUNsQixLQUFLO2dCQUNMLEtBQUssQ0FBQyxXQUFXO2dCQUNqQixVQUFVLENBQUMsV0FBVyxDQUFDLElBQUksS0FBSyxLQUFLLENBQUMsV0FBVyxDQUFDLElBQUksRUFDckQsQ0FBQztnQkFDRixVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQzFCLElBQUksQ0FBQyxlQUFlLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxJQUFJLE9BQU87b0JBQUUsVUFBVSxDQUFDLHFCQUFxQixDQUFDLEVBQUUsQ0FBQztZQUMzRixDQUFDLENBQUMsb0VBQW9FO2lCQUNqRSxJQUFJLEtBQUssS0FBSyxTQUFTLEVBQUUsQ0FBQztnQkFDOUIsTUFBTSxPQUFPLEdBQUcsVUFBVSxZQUFZLEtBQUssQ0FBQztnQkFDNUMsOEJBQThCO2dCQUM5QixJQUFJLENBQUMsT0FBTyxJQUFJLFVBQVUsQ0FBQyxXQUFXLENBQUM7b0JBQUUsVUFBVSxDQUFDLFdBQVcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUN4RSw4Q0FBOEM7cUJBQ3pDLElBQUksVUFBVSxZQUFZLE1BQU0sSUFBSSxLQUFLLFlBQVksTUFBTTtvQkFBRSxVQUFVLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUM7Z0JBQy9GLHlCQUF5Qjs7b0JBQ3BCLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFFOUIsb0JBQW9CO2dCQUNwQixJQUFJLENBQUMsZUFBZSxJQUFJLENBQUMsU0FBUyxFQUFFLE1BQU0sSUFBSSxPQUFPO29CQUFFLFVBQVUsQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1lBQ3pGLENBQUM7UUFDRixDQUFDLENBQUMsZ0NBQWdDO2FBQzdCLENBQUM7WUFDTCxlQUFlLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDO1lBQzdCLDZCQUE2QjtZQUM3QixJQUNDLGVBQWUsQ0FBQyxHQUFHLENBQUMsWUFBWSxPQUFPO2dCQUN2QyxlQUFlLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxLQUFLLFVBQVU7Z0JBQzFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEtBQUssZ0JBQWdCLEVBQzdDLENBQUM7Z0JBQ0YsTUFBTSxPQUFPLEdBQUcsZUFBZSxDQUFDLEdBQUcsQ0FBWSxDQUFDO2dCQUNoRCxJQUFJLFNBQVMsRUFBRSxFQUFFLEVBQUUsQ0FBQztvQkFDbkIsSUFBSSxFQUFFLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQzt3QkFDbEUsT0FBTyxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQUMsRUFBRSxDQUFDLGdCQUFnQixDQUFDO29CQUNwRCw0Q0FBNEM7O3dCQUN2QyxPQUFPLENBQUMsUUFBUSxHQUFHLFNBQVMsQ0FBQyxFQUFFLENBQUMsY0FBYyxDQUFDO2dCQUNyRCxDQUFDO1lBQ0YsQ0FBQztRQUNGLENBQUM7UUFFRCxXQUFXLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDbEMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3hCLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFRCxNQUFNLHFCQUFxQixHQUFHLFVBQVUsRUFBRSxVQUFVLENBQUM7SUFDckQsTUFBTSxNQUFNLEdBQUcsVUFBVSxFQUFFLGFBQWEsRUFBRSxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7SUFFeEQsSUFBSSxNQUFNLElBQUksU0FBUyxDQUFDLFFBQVEsSUFBSSxRQUFRLENBQUMsU0FBUyxDQUFDLElBQUkscUJBQXFCLEtBQUssVUFBVSxFQUFFLFVBQVUsRUFBRSxDQUFDO1FBQzdHLGlFQUFpRTtRQUNqRSxNQUFNLEtBQUssR0FBRyxTQUFTLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDL0QsSUFBSSxLQUFLLEdBQUcsQ0FBQyxDQUFDO1lBQUUsU0FBUyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNoRSx3RUFBd0U7UUFDeEUsSUFBSSxVQUFVLEVBQUUsVUFBVTtZQUFFLFNBQVMsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUMzRSxDQUFDO0lBRUQsSUFBSSxNQUFNLElBQUksVUFBVSxFQUFFLFFBQVEsSUFBSSxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDdEQsVUFBVSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRUQsT0FBTyxRQUFRLENBQUM7QUFDakIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbG9yLCBDb2xvck1hbmFnZW1lbnQsIExheWVycywgUkdCQUZvcm1hdCwgVGV4dHVyZSwgVW5zaWduZWRCeXRlVHlwZSB9IGZyb20gJ3RocmVlJztcbmltcG9ydCB7IGdldExvY2FsU3RhdGUsIGludmFsaWRhdGVJbnN0YW5jZSB9IGZyb20gJy4uL2luc3RhbmNlJztcbmltcG9ydCB7IE5ndEFueVJlY29yZCwgTmd0SW5zdGFuY2VOb2RlLCBOZ3RTdGF0ZSB9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7IGlzIH0gZnJvbSAnLi9pcyc7XG5pbXBvcnQgeyBjaGVja1VwZGF0ZSB9IGZyb20gJy4vdXBkYXRlJztcblxuLy8gVGhpcyBmdW5jdGlvbiBwcmVwYXJlcyBhIHNldCBvZiBjaGFuZ2VzIHRvIGJlIGFwcGxpZWQgdG8gdGhlIGluc3RhbmNlXG5mdW5jdGlvbiBkaWZmUHJvcHMoaW5zdGFuY2U6IE5ndEFueVJlY29yZCwgcHJvcHM6IE5ndEFueVJlY29yZCkge1xuXHRjb25zdCBwcm9wc0VudHJpZXMgPSBPYmplY3QuZW50cmllcyhwcm9wcyk7XG5cdGNvbnN0IGNoYW5nZXM6IFtrZXk6IHN0cmluZywgdmFsdWU6IHVua25vd25dW10gPSBbXTtcblxuXHRmb3IgKGNvbnN0IFtwcm9wS2V5LCBwcm9wVmFsdWVdIG9mIHByb3BzRW50cmllcykge1xuXHRcdGxldCBrZXkgPSBwcm9wS2V5O1xuXHRcdGlmIChpcy5jb2xvclNwYWNlRXhpc3QoaW5zdGFuY2UpKSB7XG5cdFx0XHRpZiAocHJvcEtleSA9PT0gJ2VuY29kaW5nJykge1xuXHRcdFx0XHRrZXkgPSAnY29sb3JTcGFjZSc7XG5cdFx0XHR9IGVsc2UgaWYgKHByb3BLZXkgPT09ICdvdXRwdXRFbmNvZGluZycpIHtcblx0XHRcdFx0a2V5ID0gJ291dHB1dENvbG9yU3BhY2UnO1xuXHRcdFx0fVxuXHRcdH1cblx0XHRpZiAoaXMuZXF1KHByb3BWYWx1ZSwgaW5zdGFuY2Vba2V5XSkpIGNvbnRpbnVlO1xuXHRcdGNoYW5nZXMucHVzaChbcHJvcEtleSwgcHJvcFZhbHVlXSk7XG5cdH1cblxuXHRyZXR1cm4gY2hhbmdlcztcbn1cblxuLy8gVGhpcyBmdW5jdGlvbiBhcHBsaWVzIGEgc2V0IG9mIGNoYW5nZXMgdG8gdGhlIGluc3RhbmNlXG5leHBvcnQgZnVuY3Rpb24gYXBwbHlQcm9wcyhpbnN0YW5jZTogTmd0SW5zdGFuY2VOb2RlLCBwcm9wczogTmd0QW55UmVjb3JkKSB7XG5cdC8vIGlmIHByb3BzIGlzIGVtcHR5XG5cdGlmICghT2JqZWN0LmtleXMocHJvcHMpLmxlbmd0aCkgcmV0dXJuIGluc3RhbmNlO1xuXG5cdC8vIGZpbHRlciBlcXVhbHMsIGFuZCByZXNlcnZlZCBwcm9wc1xuXHRjb25zdCBsb2NhbFN0YXRlID0gZ2V0TG9jYWxTdGF0ZShpbnN0YW5jZSk7XG5cdGNvbnN0IHJvb3RTdGF0ZSA9IGxvY2FsU3RhdGU/LnN0b3JlPy5zbmFwc2hvdCA/PyAoe30gYXMgTmd0U3RhdGUpO1xuXHRjb25zdCBjaGFuZ2VzID0gZGlmZlByb3BzKGluc3RhbmNlLCBwcm9wcyk7XG5cblx0Zm9yIChsZXQgaSA9IDA7IGkgPCBjaGFuZ2VzLmxlbmd0aDsgaSsrKSB7XG5cdFx0bGV0IFtrZXksIHZhbHVlXSA9IGNoYW5nZXNbaV07XG5cblx0XHQvLyBBbGlhcyAob3V0cHV0KWVuY29kaW5nID0+IChvdXRwdXQpY29sb3JTcGFjZSAoc2luY2UgcjE1Milcblx0XHQvLyBodHRwczovL2dpdGh1Yi5jb20vcG1uZHJzL3JlYWN0LXRocmVlLWZpYmVyL3B1bGwvMjgyOVxuXHRcdGlmIChpcy5jb2xvclNwYWNlRXhpc3QoaW5zdGFuY2UpKSB7XG5cdFx0XHRjb25zdCBzUkdCRW5jb2RpbmcgPSAzMDAxO1xuXHRcdFx0Y29uc3QgU1JHQkNvbG9yU3BhY2UgPSAnc3JnYic7XG5cdFx0XHRjb25zdCBMaW5lYXJTUkdCQ29sb3JTcGFjZSA9ICdzcmdiLWxpbmVhcic7XG5cblx0XHRcdGlmIChrZXkgPT09ICdlbmNvZGluZycpIHtcblx0XHRcdFx0a2V5ID0gJ2NvbG9yU3BhY2UnO1xuXHRcdFx0XHR2YWx1ZSA9IHZhbHVlID09PSBzUkdCRW5jb2RpbmcgPyBTUkdCQ29sb3JTcGFjZSA6IExpbmVhclNSR0JDb2xvclNwYWNlO1xuXHRcdFx0fSBlbHNlIGlmIChrZXkgPT09ICdvdXRwdXRFbmNvZGluZycpIHtcblx0XHRcdFx0a2V5ID0gJ291dHB1dENvbG9yU3BhY2UnO1xuXHRcdFx0XHR2YWx1ZSA9IHZhbHVlID09PSBzUkdCRW5jb2RpbmcgPyBTUkdCQ29sb3JTcGFjZSA6IExpbmVhclNSR0JDb2xvclNwYWNlO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdGNvbnN0IGN1cnJlbnRJbnN0YW5jZSA9IGluc3RhbmNlO1xuXHRcdGNvbnN0IHRhcmdldFByb3AgPSBjdXJyZW50SW5zdGFuY2Vba2V5XTtcblxuXHRcdC8vIHNwZWNpYWwgdHJlYXRtZW4gZm9yIG9iamVjdHMgd2l0aCBzdXBwb3J0IGZvciBzZXQvY29weSwgYW5kIGxheWVyc1xuXHRcdGlmICh0YXJnZXRQcm9wICYmIHRhcmdldFByb3BbJ3NldCddICYmICh0YXJnZXRQcm9wWydjb3B5J10gfHwgdGFyZ2V0UHJvcCBpbnN0YW5jZW9mIExheWVycykpIHtcblx0XHRcdGNvbnN0IGlzQ29sb3IgPSB0YXJnZXRQcm9wIGluc3RhbmNlb2YgQ29sb3I7XG5cdFx0XHQvLyBpZiB2YWx1ZSBpcyBhbiBhcnJheVxuXHRcdFx0aWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG5cdFx0XHRcdGlmICh0YXJnZXRQcm9wWydmcm9tQXJyYXknXSkgdGFyZ2V0UHJvcFsnZnJvbUFycmF5J10odmFsdWUpO1xuXHRcdFx0XHRlbHNlIHRhcmdldFByb3BbJ3NldCddKC4uLnZhbHVlKTtcblx0XHRcdH0gLy8gdGVzdCBhZ2FpbiB0YXJnZXQuY29weVxuXHRcdFx0ZWxzZSBpZiAoXG5cdFx0XHRcdHRhcmdldFByb3BbJ2NvcHknXSAmJlxuXHRcdFx0XHR2YWx1ZSAmJlxuXHRcdFx0XHR2YWx1ZS5jb25zdHJ1Y3RvciAmJlxuXHRcdFx0XHR0YXJnZXRQcm9wLmNvbnN0cnVjdG9yLm5hbWUgPT09IHZhbHVlLmNvbnN0cnVjdG9yLm5hbWVcblx0XHRcdCkge1xuXHRcdFx0XHR0YXJnZXRQcm9wWydjb3B5J10odmFsdWUpO1xuXHRcdFx0XHRpZiAoIUNvbG9yTWFuYWdlbWVudCAmJiAhcm9vdFN0YXRlLmxpbmVhciAmJiBpc0NvbG9yKSB0YXJnZXRQcm9wWydjb252ZXJ0U1JHQlRvTGluZWFyJ10oKTtcblx0XHRcdH0gLy8gaWYgbm90aGluZyBlbHNlIGZpdHMsIGp1c3Qgc2V0IHRoZSBzaW5nbGUgdmFsdWUsIGlnbm9yZSB1bmRlZmluZWRcblx0XHRcdGVsc2UgaWYgKHZhbHVlICE9PSB1bmRlZmluZWQpIHtcblx0XHRcdFx0Y29uc3QgaXNDb2xvciA9IHRhcmdldFByb3AgaW5zdGFuY2VvZiBDb2xvcjtcblx0XHRcdFx0Ly8gYWxsb3cgc2V0dGluZyBhcnJheSBzY2FsYXJzXG5cdFx0XHRcdGlmICghaXNDb2xvciAmJiB0YXJnZXRQcm9wWydzZXRTY2FsYXInXSkgdGFyZ2V0UHJvcFsnc2V0U2NhbGFyJ10odmFsdWUpO1xuXHRcdFx0XHQvLyBsYXllcnMgaGF2ZSBubyBjb3B5IGZ1bmN0aW9uLCBjb3B5IHRoZSBtYXNrXG5cdFx0XHRcdGVsc2UgaWYgKHRhcmdldFByb3AgaW5zdGFuY2VvZiBMYXllcnMgJiYgdmFsdWUgaW5zdGFuY2VvZiBMYXllcnMpIHRhcmdldFByb3AubWFzayA9IHZhbHVlLm1hc2s7XG5cdFx0XHRcdC8vIG90aGVyd2lzZSBqdXN0IHNldCAuLi5cblx0XHRcdFx0ZWxzZSB0YXJnZXRQcm9wWydzZXQnXSh2YWx1ZSk7XG5cblx0XHRcdFx0Ly8gYXV0by1jb252ZXJ0IHNyZ2Jcblx0XHRcdFx0aWYgKCFDb2xvck1hbmFnZW1lbnQgJiYgIXJvb3RTdGF0ZT8ubGluZWFyICYmIGlzQ29sb3IpIHRhcmdldFByb3AuY29udmVydFNSR0JUb0xpbmVhcigpO1xuXHRcdFx0fVxuXHRcdH0gLy8gZWxzZSBqdXN0IG92ZXJ3cml0ZSB0aGUgdmFsdWVcblx0XHRlbHNlIHtcblx0XHRcdGN1cnJlbnRJbnN0YW5jZVtrZXldID0gdmFsdWU7XG5cdFx0XHQvLyBhdXRvLWNvbnZlcnQgc3JnYiB0ZXh0dXJlc1xuXHRcdFx0aWYgKFxuXHRcdFx0XHRjdXJyZW50SW5zdGFuY2Vba2V5XSBpbnN0YW5jZW9mIFRleHR1cmUgJiZcblx0XHRcdFx0Y3VycmVudEluc3RhbmNlW2tleV0uZm9ybWF0ID09PSBSR0JBRm9ybWF0ICYmXG5cdFx0XHRcdGN1cnJlbnRJbnN0YW5jZVtrZXldLnR5cGUgPT09IFVuc2lnbmVkQnl0ZVR5cGVcblx0XHRcdCkge1xuXHRcdFx0XHRjb25zdCB0ZXh0dXJlID0gY3VycmVudEluc3RhbmNlW2tleV0gYXMgVGV4dHVyZTtcblx0XHRcdFx0aWYgKHJvb3RTdGF0ZT8uZ2wpIHtcblx0XHRcdFx0XHRpZiAoaXMuY29sb3JTcGFjZUV4aXN0KHRleHR1cmUpICYmIGlzLmNvbG9yU3BhY2VFeGlzdChyb290U3RhdGUuZ2wpKVxuXHRcdFx0XHRcdFx0dGV4dHVyZS5jb2xvclNwYWNlID0gcm9vdFN0YXRlLmdsLm91dHB1dENvbG9yU3BhY2U7XG5cdFx0XHRcdFx0Ly8gQHRzLWV4cGVjdC1lcnJvciAtIG9sZCB2ZXJzaW9uIG9mIHRocmVlanNcblx0XHRcdFx0XHRlbHNlIHRleHR1cmUuZW5jb2RpbmcgPSByb290U3RhdGUuZ2wub3V0cHV0RW5jb2Rpbmc7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cblx0XHRjaGVja1VwZGF0ZShjdXJyZW50SW5zdGFuY2Vba2V5XSk7XG5cdFx0Y2hlY2tVcGRhdGUodGFyZ2V0UHJvcCk7XG5cdFx0aW52YWxpZGF0ZUluc3RhbmNlKGluc3RhbmNlKTtcblx0fVxuXG5cdGNvbnN0IGluc3RhbmNlSGFuZGxlcnNDb3VudCA9IGxvY2FsU3RhdGU/LmV2ZW50Q291bnQ7XG5cdGNvbnN0IHBhcmVudCA9IGxvY2FsU3RhdGU/Lmluc3RhbmNlU3RvcmU/LmdldCgncGFyZW50Jyk7XG5cblx0aWYgKHBhcmVudCAmJiByb290U3RhdGUuaW50ZXJuYWwgJiYgaW5zdGFuY2VbJ3JheWNhc3QnXSAmJiBpbnN0YW5jZUhhbmRsZXJzQ291bnQgIT09IGxvY2FsU3RhdGU/LmV2ZW50Q291bnQpIHtcblx0XHQvLyBQcmUtZW1wdGl2ZWx5IHJlbW92ZSB0aGUgaW5zdGFuY2UgZnJvbSB0aGUgaW50ZXJhY3Rpb24gbWFuYWdlclxuXHRcdGNvbnN0IGluZGV4ID0gcm9vdFN0YXRlLmludGVybmFsLmludGVyYWN0aW9uLmluZGV4T2YoaW5zdGFuY2UpO1xuXHRcdGlmIChpbmRleCA+IC0xKSByb290U3RhdGUuaW50ZXJuYWwuaW50ZXJhY3Rpb24uc3BsaWNlKGluZGV4LCAxKTtcblx0XHQvLyBBZGQgdGhlIGluc3RhbmNlIHRvIHRoZSBpbnRlcmFjdGlvbiBtYW5hZ2VyIG9ubHkgd2hlbiBpdCBoYXMgaGFuZGxlcnNcblx0XHRpZiAobG9jYWxTdGF0ZT8uZXZlbnRDb3VudCkgcm9vdFN0YXRlLmludGVybmFsLmludGVyYWN0aW9uLnB1c2goaW5zdGFuY2UpO1xuXHR9XG5cblx0aWYgKHBhcmVudCAmJiBsb2NhbFN0YXRlPy5vblVwZGF0ZSAmJiBjaGFuZ2VzLmxlbmd0aCkge1xuXHRcdGxvY2FsU3RhdGUub25VcGRhdGUoaW5zdGFuY2UpO1xuXHR9XG5cblx0cmV0dXJuIGluc3RhbmNlO1xufVxuIl19
130
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbHktcHJvcHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi91dGlscy9hcHBseS1wcm9wcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsS0FBSyxFQUFFLGVBQWUsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUM5RixPQUFPLEVBQUUsYUFBYSxFQUFFLGtCQUFrQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRWhFLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUV2Qyx3RUFBd0U7QUFDeEUsU0FBUyxTQUFTLENBQUMsUUFBc0IsRUFBRSxLQUFtQjtJQUM3RCxNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNDLE1BQU0sT0FBTyxHQUFvQyxFQUFFLENBQUM7SUFFcEQsS0FBSyxNQUFNLENBQUMsT0FBTyxFQUFFLFNBQVMsQ0FBQyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ2pELElBQUksR0FBRyxHQUFHLE9BQU8sQ0FBQztRQUNsQixJQUFJLEVBQUUsQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztZQUNsQyxJQUFJLE9BQU8sS0FBSyxVQUFVLEVBQUUsQ0FBQztnQkFDNUIsR0FBRyxHQUFHLFlBQVksQ0FBQztZQUNwQixDQUFDO2lCQUFNLElBQUksT0FBTyxLQUFLLGdCQUFnQixFQUFFLENBQUM7Z0JBQ3pDLEdBQUcsR0FBRyxrQkFBa0IsQ0FBQztZQUMxQixDQUFDO1FBQ0YsQ0FBQztRQUNELElBQUksRUFBRSxDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUUsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQUUsU0FBUztRQUMvQyxP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QU0sSUFBSSxVQUFVLEVBQUUsUUFBUSxJQUFJLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUN0RCxVQUFVLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFRCxvREFBb0Q7SUFDcEQsSUFBSSxRQUFRLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQztRQUMvQixPQUFPLFFBQVEsQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQsT0FBTyxRQUFRLENBQUM7QUFDakIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbG9yLCBDb2xvck1hbmFnZW1lbnQsIExheWVycywgUkdCQUZvcm1hdCwgVGV4dHVyZSwgVW5zaWduZWRCeXRlVHlwZSB9IGZyb20gJ3RocmVlJztcbmltcG9ydCB7IGdldExvY2FsU3RhdGUsIGludmFsaWRhdGVJbnN0YW5jZSB9IGZyb20gJy4uL2luc3RhbmNlJztcbmltcG9ydCB7IE5ndEFueVJlY29yZCwgTmd0SW5zdGFuY2VOb2RlLCBOZ3RTdGF0ZSB9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7IGlzIH0gZnJvbSAnLi9pcyc7XG5pbXBvcnQgeyBjaGVja1VwZGF0ZSB9IGZyb20gJy4vdXBkYXRlJztcblxuLy8gVGhpcyBmdW5jdGlvbiBwcmVwYXJlcyBhIHNldCBvZiBjaGFuZ2VzIHRvIGJlIGFwcGxpZWQgdG8gdGhlIGluc3RhbmNlXG5mdW5jdGlvbiBkaWZmUHJvcHMoaW5zdGFuY2U6IE5ndEFueVJlY29yZCwgcHJvcHM6IE5ndEFueVJlY29yZCkge1xuXHRjb25zdCBwcm9wc0VudHJpZXMgPSBPYmplY3QuZW50cmllcyhwcm9wcyk7XG5cdGNvbnN0IGNoYW5nZXM6IFtrZXk6IHN0cmluZywgdmFsdWU6IHVua25vd25dW10gPSBbXTtcblxuXHRmb3IgKGNvbnN0IFtwcm9wS2V5LCBwcm9wVmFsdWVdIG9mIHByb3BzRW50cmllcykge1xuXHRcdGxldCBrZXkgPSBwcm9wS2V5O1xuXHRcdGlmIChpcy5jb2xvclNwYWNlRXhpc3QoaW5zdGFuY2UpKSB7XG5cdFx0XHRpZiAocHJvcEtleSA9PT0gJ2VuY29kaW5nJykge1xuXHRcdFx0XHRrZXkgPSAnY29sb3JTcGFjZSc7XG5cdFx0XHR9IGVsc2UgaWYgKHByb3BLZXkgPT09ICdvdXRwdXRFbmNvZGluZycpIHtcblx0XHRcdFx0a2V5ID0gJ291dHB1dENvbG9yU3BhY2UnO1xuXHRcdFx0fVxuXHRcdH1cblx0XHRpZiAoaXMuZXF1KHByb3BWYWx1ZSwgaW5zdGFuY2Vba2V5XSkpIGNvbnRpbnVlO1xuXHRcdGNoYW5nZXMucHVzaChbcHJvcEtleSwgcHJvcFZhbHVlXSk7XG5cdH1cblxuXHRyZXR1cm4gY2hhbmdlcztcbn1cblxuLy8gTk9URTogdGhpcyBpcyBhIHdvcmthcm91bmQgdG8gZ2l2ZSB0aGUgaW5zdGFuY2UgYSBjaGFuZ2UgdG8gaGF2ZSB0aGUgc3RvcmUgZnJvbSB0aGUgcGFyZW50LlxuLy8gIHdlIGNsZWFyIHRoaXMgcHJvcGVydHkgYWZ0ZXIgdGhlIGFwcGx5UHJvcHMgaXMgZG9uZVxuZXhwb3J0IGNvbnN0IE5HVF9BUFBMWV9QUk9QUyA9ICdfX25ndF9hcHBseV9wcm9wc19fJztcblxuLy8gVGhpcyBmdW5jdGlvbiBhcHBsaWVzIGEgc2V0IG9mIGNoYW5nZXMgdG8gdGhlIGluc3RhbmNlXG5leHBvcnQgZnVuY3Rpb24gYXBwbHlQcm9wcyhpbnN0YW5jZTogTmd0SW5zdGFuY2VOb2RlLCBwcm9wczogTmd0QW55UmVjb3JkKSB7XG5cdC8vIGlmIHByb3BzIGlzIGVtcHR5XG5cdGlmICghT2JqZWN0LmtleXMocHJvcHMpLmxlbmd0aCkgcmV0dXJuIGluc3RhbmNlO1xuXG5cdC8vIGZpbHRlciBlcXVhbHMsIGFuZCByZXNlcnZlZCBwcm9wc1xuXHRjb25zdCBsb2NhbFN0YXRlID0gZ2V0TG9jYWxTdGF0ZShpbnN0YW5jZSk7XG5cdGNvbnN0IHJvb3RTdGF0ZSA9IGxvY2FsU3RhdGU/LnN0b3JlPy5zbmFwc2hvdCA/PyBpbnN0YW5jZVtOR1RfQVBQTFlfUFJPUFNdPy5zbmFwc2hvdCA/PyAoe30gYXMgTmd0U3RhdGUpO1xuXHRjb25zdCBjaGFuZ2VzID0gZGlmZlByb3BzKGluc3RhbmNlLCBwcm9wcyk7XG5cblx0Zm9yIChsZXQgaSA9IDA7IGkgPCBjaGFuZ2VzLmxlbmd0aDsgaSsrKSB7XG5cdFx0bGV0IFtrZXksIHZhbHVlXSA9IGNoYW5nZXNbaV07XG5cblx0XHQvLyBBbGlhcyAob3V0cHV0KWVuY29kaW5nID0+IChvdXRwdXQpY29sb3JTcGFjZSAoc2luY2UgcjE1Milcblx0XHQvLyBodHRwczovL2dpdGh1Yi5jb20vcG1uZHJzL3JlYWN0LXRocmVlLWZpYmVyL3B1bGwvMjgyOVxuXHRcdGlmIChpcy5jb2xvclNwYWNlRXhpc3QoaW5zdGFuY2UpKSB7XG5cdFx0XHRjb25zdCBzUkdCRW5jb2RpbmcgPSAzMDAxO1xuXHRcdFx0Y29uc3QgU1JHQkNvbG9yU3BhY2UgPSAnc3JnYic7XG5cdFx0XHRjb25zdCBMaW5lYXJTUkdCQ29sb3JTcGFjZSA9ICdzcmdiLWxpbmVhcic7XG5cblx0XHRcdGlmIChrZXkgPT09ICdlbmNvZGluZycpIHtcblx0XHRcdFx0a2V5ID0gJ2NvbG9yU3BhY2UnO1xuXHRcdFx0XHR2YWx1ZSA9IHZhbHVlID09PSBzUkdCRW5jb2RpbmcgPyBTUkdCQ29sb3JTcGFjZSA6IExpbmVhclNSR0JDb2xvclNwYWNlO1xuXHRcdFx0fSBlbHNlIGlmIChrZXkgPT09ICdvdXRwdXRFbmNvZGluZycpIHtcblx0XHRcdFx0a2V5ID0gJ291dHB1dENvbG9yU3BhY2UnO1xuXHRcdFx0XHR2YWx1ZSA9IHZhbHVlID09PSBzUkdCRW5jb2RpbmcgPyBTUkdCQ29sb3JTcGFjZSA6IExpbmVhclNSR0JDb2xvclNwYWNlO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdGNvbnN0IGN1cnJlbnRJbnN0YW5jZSA9IGluc3RhbmNlO1xuXHRcdGNvbnN0IHRhcmdldFByb3AgPSBjdXJyZW50SW5zdGFuY2Vba2V5XTtcblxuXHRcdC8vIHNwZWNpYWwgdHJlYXRtZW4gZm9yIG9iamVjdHMgd2l0aCBzdXBwb3J0IGZvciBzZXQvY29weSwgYW5kIGxheWVyc1xuXHRcdGlmICh0YXJnZXRQcm9wICYmIHRhcmdldFByb3BbJ3NldCddICYmICh0YXJnZXRQcm9wWydjb3B5J10gfHwgdGFyZ2V0UHJvcCBpbnN0YW5jZW9mIExheWVycykpIHtcblx0XHRcdGNvbnN0IGlzQ29sb3IgPSB0YXJnZXRQcm9wIGluc3RhbmNlb2YgQ29sb3I7XG5cdFx0XHQvLyBpZiB2YWx1ZSBpcyBhbiBhcnJheVxuXHRcdFx0aWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG5cdFx0XHRcdGlmICh0YXJnZXRQcm9wWydmcm9tQXJyYXknXSkgdGFyZ2V0UHJvcFsnZnJvbUFycmF5J10odmFsdWUpO1xuXHRcdFx0XHRlbHNlIHRhcmdldFByb3BbJ3NldCddKC4uLnZhbHVlKTtcblx0XHRcdH0gLy8gdGVzdCBhZ2FpbiB0YXJnZXQuY29weVxuXHRcdFx0ZWxzZSBpZiAoXG5cdFx0XHRcdHRhcmdldFByb3BbJ2NvcHknXSAmJlxuXHRcdFx0XHR2YWx1ZSAmJlxuXHRcdFx0XHR2YWx1ZS5jb25zdHJ1Y3RvciAmJlxuXHRcdFx0XHR0YXJnZXRQcm9wLmNvbnN0cnVjdG9yLm5hbWUgPT09IHZhbHVlLmNvbnN0cnVjdG9yLm5hbWVcblx0XHRcdCkge1xuXHRcdFx0XHR0YXJnZXRQcm9wWydjb3B5J10odmFsdWUpO1xuXHRcdFx0XHRpZiAoIUNvbG9yTWFuYWdlbWVudCAmJiAhcm9vdFN0YXRlLmxpbmVhciAmJiBpc0NvbG9yKSB0YXJnZXRQcm9wWydjb252ZXJ0U1JHQlRvTGluZWFyJ10oKTtcblx0XHRcdH0gLy8gaWYgbm90aGluZyBlbHNlIGZpdHMsIGp1c3Qgc2V0IHRoZSBzaW5nbGUgdmFsdWUsIGlnbm9yZSB1bmRlZmluZWRcblx0XHRcdGVsc2UgaWYgKHZhbHVlICE9PSB1bmRlZmluZWQpIHtcblx0XHRcdFx0Y29uc3QgaXNDb2xvciA9IHRhcmdldFByb3AgaW5zdGFuY2VvZiBDb2xvcjtcblx0XHRcdFx0Ly8gYWxsb3cgc2V0dGluZyBhcnJheSBzY2FsYXJzXG5cdFx0XHRcdGlmICghaXNDb2xvciAmJiB0YXJnZXRQcm9wWydzZXRTY2FsYXInXSkgdGFyZ2V0UHJvcFsnc2V0U2NhbGFyJ10odmFsdWUpO1xuXHRcdFx0XHQvLyBsYXllcnMgaGF2ZSBubyBjb3B5IGZ1bmN0aW9uLCBjb3B5IHRoZSBtYXNrXG5cdFx0XHRcdGVsc2UgaWYgKHRhcmdldFByb3AgaW5zdGFuY2VvZiBMYXllcnMgJiYgdmFsdWUgaW5zdGFuY2VvZiBMYXllcnMpIHRhcmdldFByb3AubWFzayA9IHZhbHVlLm1hc2s7XG5cdFx0XHRcdC8vIG90aGVyd2lzZSBqdXN0IHNldCAuLi5cblx0XHRcdFx0ZWxzZSB0YXJnZXRQcm9wWydzZXQnXSh2YWx1ZSk7XG5cblx0XHRcdFx0Ly8gYXV0by1jb252ZXJ0IHNyZ2Jcblx0XHRcdFx0aWYgKCFDb2xvck1hbmFnZW1lbnQgJiYgIXJvb3RTdGF0ZT8ubGluZWFyICYmIGlzQ29sb3IpIHRhcmdldFByb3AuY29udmVydFNSR0JUb0xpbmVhcigpO1xuXHRcdFx0fVxuXHRcdH0gLy8gZWxzZSBqdXN0IG92ZXJ3cml0ZSB0aGUgdmFsdWVcblx0XHRlbHNlIHtcblx0XHRcdGN1cnJlbnRJbnN0YW5jZVtrZXldID0gdmFsdWU7XG5cdFx0XHQvLyBhdXRvLWNvbnZlcnQgc3JnYiB0ZXh0dXJlc1xuXHRcdFx0aWYgKFxuXHRcdFx0XHRjdXJyZW50SW5zdGFuY2Vba2V5XSBpbnN0YW5jZW9mIFRleHR1cmUgJiZcblx0XHRcdFx0Y3VycmVudEluc3RhbmNlW2tleV0uZm9ybWF0ID09PSBSR0JBRm9ybWF0ICYmXG5cdFx0XHRcdGN1cnJlbnRJbnN0YW5jZVtrZXldLnR5cGUgPT09IFVuc2lnbmVkQnl0ZVR5cGVcblx0XHRcdCkge1xuXHRcdFx0XHRjb25zdCB0ZXh0dXJlID0gY3VycmVudEluc3RhbmNlW2tleV0gYXMgVGV4dHVyZTtcblx0XHRcdFx0aWYgKHJvb3RTdGF0ZT8uZ2wpIHtcblx0XHRcdFx0XHRpZiAoaXMuY29sb3JTcGFjZUV4aXN0KHRleHR1cmUpICYmIGlzLmNvbG9yU3BhY2VFeGlzdChyb290U3RhdGUuZ2wpKVxuXHRcdFx0XHRcdFx0dGV4dHVyZS5jb2xvclNwYWNlID0gcm9vdFN0YXRlLmdsLm91dHB1dENvbG9yU3BhY2U7XG5cdFx0XHRcdFx0Ly8gQHRzLWV4cGVjdC1lcnJvciAtIG9sZCB2ZXJzaW9uIG9mIHRocmVlanNcblx0XHRcdFx0XHRlbHNlIHRleHR1cmUuZW5jb2RpbmcgPSByb290U3RhdGUuZ2wub3V0cHV0RW5jb2Rpbmc7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cblx0XHRjaGVja1VwZGF0ZShjdXJyZW50SW5zdGFuY2Vba2V5XSk7XG5cdFx0Y2hlY2tVcGRhdGUodGFyZ2V0UHJvcCk7XG5cdFx0aW52YWxpZGF0ZUluc3RhbmNlKGluc3RhbmNlKTtcblx0fVxuXG5cdGNvbnN0IGluc3RhbmNlSGFuZGxlcnNDb3VudCA9IGxvY2FsU3RhdGU/LmV2ZW50Q291bnQ7XG5cdGNvbnN0IHBhcmVudCA9IGxvY2FsU3RhdGU/Lmluc3RhbmNlU3RvcmU/LmdldCgncGFyZW50Jyk7XG5cblx0aWYgKHBhcmVudCAmJiByb290U3RhdGUuaW50ZXJuYWwgJiYgaW5zdGFuY2VbJ3JheWNhc3QnXSAmJiBpbnN0YW5jZUhhbmRsZXJzQ291bnQgIT09IGxvY2FsU3RhdGU/LmV2ZW50Q291bnQpIHtcblx0XHQvLyBQcmUtZW1wdGl2ZWx5IHJlbW92ZSB0aGUgaW5zdGFuY2UgZnJvbSB0aGUgaW50ZXJhY3Rpb24gbWFuYWdlclxuXHRcdGNvbnN0IGluZGV4ID0gcm9vdFN0YXRlLmludGVybmFsLmludGVyYWN0aW9uLmluZGV4T2YoaW5zdGFuY2UpO1xuXHRcdGlmIChpbmRleCA+IC0xKSByb290U3RhdGUuaW50ZXJuYWwuaW50ZXJhY3Rpb24uc3BsaWNlKGluZGV4LCAxKTtcblx0XHQvLyBBZGQgdGhlIGluc3RhbmNlIHRvIHRoZSBpbnRlcmFjdGlvbiBtYW5hZ2VyIG9ubHkgd2hlbiBpdCBoYXMgaGFuZGxlcnNcblx0XHRpZiAobG9jYWxTdGF0ZT8uZXZlbnRDb3VudCkgcm9vdFN0YXRlLmludGVybmFsLmludGVyYWN0aW9uLnB1c2goaW5zdGFuY2UpO1xuXHR9XG5cblx0aWYgKHBhcmVudCAmJiBsb2NhbFN0YXRlPy5vblVwZGF0ZSAmJiBjaGFuZ2VzLmxlbmd0aCkge1xuXHRcdGxvY2FsU3RhdGUub25VcGRhdGUoaW5zdGFuY2UpO1xuXHR9XG5cblx0Ly8gY2xlYXJpbmcgdGhlIGludGVybWVkaWF0ZSBzdG9yZSBmcm9tIHRoZSBpbnN0YW5jZVxuXHRpZiAoaW5zdGFuY2VbTkdUX0FQUExZX1BST1BTXSkge1xuXHRcdGRlbGV0ZSBpbnN0YW5jZVtOR1RfQVBQTFlfUFJPUFNdO1xuXHR9XG5cblx0cmV0dXJuIGluc3RhbmNlO1xufVxuIl19
@@ -1,5 +1,5 @@
1
1
  import { getLocalState } from '../instance';
2
- import { applyProps } from './apply-props';
2
+ import { applyProps, NGT_APPLY_PROPS } from './apply-props';
3
3
  export function attach(object, value, paths = [], useApplyProps = false) {
4
4
  const [base, ...remaining] = paths;
5
5
  if (!base)
@@ -11,7 +11,7 @@ export function attach(object, value, paths = [], useApplyProps = false) {
11
11
  object[base] = value;
12
12
  }
13
13
  else {
14
- assignEmpty(object, base);
14
+ assignEmpty(object, base, useApplyProps);
15
15
  attach(object[base], value, remaining, useApplyProps);
16
16
  }
17
17
  }
@@ -24,12 +24,23 @@ export function detach(parent, child, attachProp) {
24
24
  childLocalState.previousAttach();
25
25
  }
26
26
  }
27
- function assignEmpty(obj, base) {
27
+ function assignEmpty(obj, base, shouldAssignStoreForApplyProps = false) {
28
28
  if ((!Object.hasOwn(obj, base) && Reflect && !!Reflect.has && !Reflect.has(obj, base)) || obj[base] === undefined) {
29
29
  obj[base] = {};
30
30
  }
31
+ if (shouldAssignStoreForApplyProps) {
32
+ const localState = getLocalState(obj[base]);
33
+ // if we already have local state, bail out
34
+ if (localState)
35
+ return;
36
+ const parentLocalState = getLocalState(obj);
37
+ // if parent doesn't have local state, bail out
38
+ if (!parentLocalState)
39
+ return;
40
+ Object.assign(obj[base], { [NGT_APPLY_PROPS]: parentLocalState.store });
41
+ }
31
42
  }
32
43
  export function createAttachFunction(cb) {
33
44
  return (parent, child, store) => cb({ parent, child, store });
34
45
  }
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR0YWNoLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvdXRpbHMvYXR0YWNoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFNUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUczQyxNQUFNLFVBQVUsTUFBTSxDQUFDLE1BQW9CLEVBQUUsS0FBYyxFQUFFLFFBQWtCLEVBQUUsRUFBRSxhQUFhLEdBQUcsS0FBSztJQUN2RyxNQUFNLENBQUMsSUFBSSxFQUFFLEdBQUcsU0FBUyxDQUFDLEdBQUcsS0FBSyxDQUFDO0lBQ25DLElBQUksQ0FBQyxJQUFJO1FBQUUsT0FBTztJQUVsQixJQUFJLFNBQVMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDNUIsSUFBSSxhQUFhO1lBQUUsVUFBVSxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQzs7WUFDcEQsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLEtBQUssQ0FBQztJQUMzQixDQUFDO1NBQU0sQ0FBQztRQUNQLFdBQVcsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDMUIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLGFBQWEsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7QUFDRixDQUFDO0FBRUQsTUFBTSxVQUFVLE1BQU0sQ0FBQyxNQUFvQixFQUFFLEtBQW1CLEVBQUUsVUFBd0M7SUFDekcsTUFBTSxlQUFlLEdBQUcsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzdDLElBQUksZUFBZSxFQUFFLENBQUM7UUFDckIsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQztZQUFFLE1BQU0sQ0FBQyxNQUFNLEVBQUUsZUFBZSxDQUFDLGNBQWMsRUFBRSxVQUFVLEVBQUUsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDOztZQUMzRyxlQUFlLENBQUMsY0FBNkIsRUFBRSxDQUFDO0lBQ3ZELENBQUM7QUFDRixDQUFDO0FBRUQsU0FBUyxXQUFXLENBQUMsR0FBaUIsRUFBRSxJQUFZO0lBQ25ELElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxJQUFJLE9BQU8sSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQ25ILEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDaEIsQ0FBQztBQUNGLENBQUM7QUFFRCxNQUFNLFVBQVUsb0JBQW9CLENBQ25DLEVBQXdHO0lBRXhHLE9BQU8sQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO0FBQy9ELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBnZXRMb2NhbFN0YXRlIH0gZnJvbSAnLi4vaW5zdGFuY2UnO1xuaW1wb3J0IHsgTmd0QW55UmVjb3JkLCBOZ3RBdHRhY2hGdW5jdGlvbiwgTmd0U3RhdGUgfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgeyBhcHBseVByb3BzIH0gZnJvbSAnLi9hcHBseS1wcm9wcyc7XG5pbXBvcnQgeyBOZ3RTaWduYWxTdG9yZSB9IGZyb20gJy4vc2lnbmFsLXN0b3JlJztcblxuZXhwb3J0IGZ1bmN0aW9uIGF0dGFjaChvYmplY3Q6IE5ndEFueVJlY29yZCwgdmFsdWU6IHVua25vd24sIHBhdGhzOiBzdHJpbmdbXSA9IFtdLCB1c2VBcHBseVByb3BzID0gZmFsc2UpOiB2b2lkIHtcblx0Y29uc3QgW2Jhc2UsIC4uLnJlbWFpbmluZ10gPSBwYXRocztcblx0aWYgKCFiYXNlKSByZXR1cm47XG5cblx0aWYgKHJlbWFpbmluZy5sZW5ndGggPT09IDApIHtcblx0XHRpZiAodXNlQXBwbHlQcm9wcykgYXBwbHlQcm9wcyhvYmplY3QsIHsgW2Jhc2VdOiB2YWx1ZSB9KTtcblx0XHRlbHNlIG9iamVjdFtiYXNlXSA9IHZhbHVlO1xuXHR9IGVsc2Uge1xuXHRcdGFzc2lnbkVtcHR5KG9iamVjdCwgYmFzZSk7XG5cdFx0YXR0YWNoKG9iamVjdFtiYXNlXSwgdmFsdWUsIHJlbWFpbmluZywgdXNlQXBwbHlQcm9wcyk7XG5cdH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRldGFjaChwYXJlbnQ6IE5ndEFueVJlY29yZCwgY2hpbGQ6IE5ndEFueVJlY29yZCwgYXR0YWNoUHJvcDogc3RyaW5nW10gfCBOZ3RBdHRhY2hGdW5jdGlvbikge1xuXHRjb25zdCBjaGlsZExvY2FsU3RhdGUgPSBnZXRMb2NhbFN0YXRlKGNoaWxkKTtcblx0aWYgKGNoaWxkTG9jYWxTdGF0ZSkge1xuXHRcdGlmIChBcnJheS5pc0FycmF5KGF0dGFjaFByb3ApKSBhdHRhY2gocGFyZW50LCBjaGlsZExvY2FsU3RhdGUucHJldmlvdXNBdHRhY2gsIGF0dGFjaFByb3AsIGNoaWxkTG9jYWxTdGF0ZS5pc1Jhdyk7XG5cdFx0ZWxzZSAoY2hpbGRMb2NhbFN0YXRlLnByZXZpb3VzQXR0YWNoIGFzICgpID0+IHZvaWQpKCk7XG5cdH1cbn1cblxuZnVuY3Rpb24gYXNzaWduRW1wdHkob2JqOiBOZ3RBbnlSZWNvcmQsIGJhc2U6IHN0cmluZykge1xuXHRpZiAoKCFPYmplY3QuaGFzT3duKG9iaiwgYmFzZSkgJiYgUmVmbGVjdCAmJiAhIVJlZmxlY3QuaGFzICYmICFSZWZsZWN0LmhhcyhvYmosIGJhc2UpKSB8fCBvYmpbYmFzZV0gPT09IHVuZGVmaW5lZCkge1xuXHRcdG9ialtiYXNlXSA9IHt9O1xuXHR9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVBdHRhY2hGdW5jdGlvbjxUQ2hpbGQgPSBhbnksIFRQYXJlbnQgPSBhbnk+KFxuXHRjYjogKHBhcmFtczogeyBwYXJlbnQ6IFRQYXJlbnQ7IGNoaWxkOiBUQ2hpbGQ7IHN0b3JlOiBOZ3RTaWduYWxTdG9yZTxOZ3RTdGF0ZT4gfSkgPT4gKCgpID0+IHZvaWQpIHwgdm9pZCxcbik6IE5ndEF0dGFjaEZ1bmN0aW9uPFRDaGlsZCwgVFBhcmVudD4ge1xuXHRyZXR1cm4gKHBhcmVudCwgY2hpbGQsIHN0b3JlKSA9PiBjYih7IHBhcmVudCwgY2hpbGQsIHN0b3JlIH0pO1xufVxuIl19
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR0YWNoLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvdXRpbHMvYXR0YWNoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFNUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxlQUFlLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHNUQsTUFBTSxVQUFVLE1BQU0sQ0FBQyxNQUFvQixFQUFFLEtBQWMsRUFBRSxRQUFrQixFQUFFLEVBQUUsYUFBYSxHQUFHLEtBQUs7SUFDdkcsTUFBTSxDQUFDLElBQUksRUFBRSxHQUFHLFNBQVMsQ0FBQyxHQUFHLEtBQUssQ0FBQztJQUNuQyxJQUFJLENBQUMsSUFBSTtRQUFFLE9BQU87SUFFbEIsSUFBSSxTQUFTLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQzVCLElBQUksYUFBYTtZQUFFLFVBQVUsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7O1lBQ3BELE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxLQUFLLENBQUM7SUFDM0IsQ0FBQztTQUFNLENBQUM7UUFDUCxXQUFXLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxhQUFhLENBQUMsQ0FBQztRQUN6QyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsYUFBYSxDQUFDLENBQUM7SUFDdkQsQ0FBQztBQUNGLENBQUM7QUFFRCxNQUFNLFVBQVUsTUFBTSxDQUFDLE1BQW9CLEVBQUUsS0FBbUIsRUFBRSxVQUF3QztJQUN6RyxNQUFNLGVBQWUsR0FBRyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDN0MsSUFBSSxlQUFlLEVBQUUsQ0FBQztRQUNyQixJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDO1lBQUUsTUFBTSxDQUFDLE1BQU0sRUFBRSxlQUFlLENBQUMsY0FBYyxFQUFFLFVBQVUsRUFBRSxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7O1lBQzNHLGVBQWUsQ0FBQyxjQUE2QixFQUFFLENBQUM7SUFDdkQsQ0FBQztBQUNGLENBQUM7QUFFRCxTQUFTLFdBQVcsQ0FBQyxHQUFpQixFQUFFLElBQVksRUFBRSw4QkFBOEIsR0FBRyxLQUFLO0lBQzNGLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxJQUFJLE9BQU8sSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQ25ILEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDaEIsQ0FBQztJQUVELElBQUksOEJBQThCLEVBQUUsQ0FBQztRQUNwQyxNQUFNLFVBQVUsR0FBRyxhQUFhLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDNUMsMkNBQTJDO1FBQzNDLElBQUksVUFBVTtZQUFFLE9BQU87UUFFdkIsTUFBTSxnQkFBZ0IsR0FBRyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDNUMsK0NBQStDO1FBQy9DLElBQUksQ0FBQyxnQkFBZ0I7WUFBRSxPQUFPO1FBRTlCLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQyxlQUFlLENBQUMsRUFBRSxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQ3pFLENBQUM7QUFDRixDQUFDO0FBRUQsTUFBTSxVQUFVLG9CQUFvQixDQUNuQyxFQUF3RztJQUV4RyxPQUFPLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztBQUMvRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZ2V0TG9jYWxTdGF0ZSB9IGZyb20gJy4uL2luc3RhbmNlJztcbmltcG9ydCB7IE5ndEFueVJlY29yZCwgTmd0QXR0YWNoRnVuY3Rpb24sIE5ndFN0YXRlIH0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHsgYXBwbHlQcm9wcywgTkdUX0FQUExZX1BST1BTIH0gZnJvbSAnLi9hcHBseS1wcm9wcyc7XG5pbXBvcnQgeyBOZ3RTaWduYWxTdG9yZSB9IGZyb20gJy4vc2lnbmFsLXN0b3JlJztcblxuZXhwb3J0IGZ1bmN0aW9uIGF0dGFjaChvYmplY3Q6IE5ndEFueVJlY29yZCwgdmFsdWU6IHVua25vd24sIHBhdGhzOiBzdHJpbmdbXSA9IFtdLCB1c2VBcHBseVByb3BzID0gZmFsc2UpOiB2b2lkIHtcblx0Y29uc3QgW2Jhc2UsIC4uLnJlbWFpbmluZ10gPSBwYXRocztcblx0aWYgKCFiYXNlKSByZXR1cm47XG5cblx0aWYgKHJlbWFpbmluZy5sZW5ndGggPT09IDApIHtcblx0XHRpZiAodXNlQXBwbHlQcm9wcykgYXBwbHlQcm9wcyhvYmplY3QsIHsgW2Jhc2VdOiB2YWx1ZSB9KTtcblx0XHRlbHNlIG9iamVjdFtiYXNlXSA9IHZhbHVlO1xuXHR9IGVsc2Uge1xuXHRcdGFzc2lnbkVtcHR5KG9iamVjdCwgYmFzZSwgdXNlQXBwbHlQcm9wcyk7XG5cdFx0YXR0YWNoKG9iamVjdFtiYXNlXSwgdmFsdWUsIHJlbWFpbmluZywgdXNlQXBwbHlQcm9wcyk7XG5cdH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRldGFjaChwYXJlbnQ6IE5ndEFueVJlY29yZCwgY2hpbGQ6IE5ndEFueVJlY29yZCwgYXR0YWNoUHJvcDogc3RyaW5nW10gfCBOZ3RBdHRhY2hGdW5jdGlvbikge1xuXHRjb25zdCBjaGlsZExvY2FsU3RhdGUgPSBnZXRMb2NhbFN0YXRlKGNoaWxkKTtcblx0aWYgKGNoaWxkTG9jYWxTdGF0ZSkge1xuXHRcdGlmIChBcnJheS5pc0FycmF5KGF0dGFjaFByb3ApKSBhdHRhY2gocGFyZW50LCBjaGlsZExvY2FsU3RhdGUucHJldmlvdXNBdHRhY2gsIGF0dGFjaFByb3AsIGNoaWxkTG9jYWxTdGF0ZS5pc1Jhdyk7XG5cdFx0ZWxzZSAoY2hpbGRMb2NhbFN0YXRlLnByZXZpb3VzQXR0YWNoIGFzICgpID0+IHZvaWQpKCk7XG5cdH1cbn1cblxuZnVuY3Rpb24gYXNzaWduRW1wdHkob2JqOiBOZ3RBbnlSZWNvcmQsIGJhc2U6IHN0cmluZywgc2hvdWxkQXNzaWduU3RvcmVGb3JBcHBseVByb3BzID0gZmFsc2UpIHtcblx0aWYgKCghT2JqZWN0Lmhhc093bihvYmosIGJhc2UpICYmIFJlZmxlY3QgJiYgISFSZWZsZWN0LmhhcyAmJiAhUmVmbGVjdC5oYXMob2JqLCBiYXNlKSkgfHwgb2JqW2Jhc2VdID09PSB1bmRlZmluZWQpIHtcblx0XHRvYmpbYmFzZV0gPSB7fTtcblx0fVxuXG5cdGlmIChzaG91bGRBc3NpZ25TdG9yZUZvckFwcGx5UHJvcHMpIHtcblx0XHRjb25zdCBsb2NhbFN0YXRlID0gZ2V0TG9jYWxTdGF0ZShvYmpbYmFzZV0pO1xuXHRcdC8vIGlmIHdlIGFscmVhZHkgaGF2ZSBsb2NhbCBzdGF0ZSwgYmFpbCBvdXRcblx0XHRpZiAobG9jYWxTdGF0ZSkgcmV0dXJuO1xuXG5cdFx0Y29uc3QgcGFyZW50TG9jYWxTdGF0ZSA9IGdldExvY2FsU3RhdGUob2JqKTtcblx0XHQvLyBpZiBwYXJlbnQgZG9lc24ndCBoYXZlIGxvY2FsIHN0YXRlLCBiYWlsIG91dFxuXHRcdGlmICghcGFyZW50TG9jYWxTdGF0ZSkgcmV0dXJuO1xuXG5cdFx0T2JqZWN0LmFzc2lnbihvYmpbYmFzZV0sIHsgW05HVF9BUFBMWV9QUk9QU106IHBhcmVudExvY2FsU3RhdGUuc3RvcmUgfSk7XG5cdH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUF0dGFjaEZ1bmN0aW9uPFRDaGlsZCA9IGFueSwgVFBhcmVudCA9IGFueT4oXG5cdGNiOiAocGFyYW1zOiB7IHBhcmVudDogVFBhcmVudDsgY2hpbGQ6IFRDaGlsZDsgc3RvcmU6IE5ndFNpZ25hbFN0b3JlPE5ndFN0YXRlPiB9KSA9PiAoKCkgPT4gdm9pZCkgfCB2b2lkLFxuKTogTmd0QXR0YWNoRnVuY3Rpb248VENoaWxkLCBUUGFyZW50PiB7XG5cdHJldHVybiAocGFyZW50LCBjaGlsZCwgc3RvcmUpID0+IGNiKHsgcGFyZW50LCBjaGlsZCwgc3RvcmUgfSk7XG59XG4iXX0=
@@ -3,7 +3,7 @@ import { untracked, computed, signal, ElementRef, input, inject, ViewContainerRe
3
3
  import { takeUntilDestroyed, outputFromObservable, toObservable } from '@angular/core/rxjs-interop';
4
4
  import { injectAutoEffect } from 'ngxtension/auto-effect';
5
5
  import { provideResizeOptions, NgxResize } from 'ngxtension/resize';
6
- import { MathUtils, WebGLRenderer, OrthographicCamera, PerspectiveCamera, Vector3, Vector2, Clock, Layers, Color, ColorManagement, Texture, RGBAFormat, UnsignedByteType, Raycaster, Scene, PCFSoftShadowMap, BasicShadowMap, PCFShadowMap, VSMShadowMap, NoToneMapping, ACESFilmicToneMapping, Vector4 } from 'three';
6
+ import { MathUtils, WebGLRenderer, OrthographicCamera, PerspectiveCamera, Vector3, Vector2, Clock, Layers, Color, ColorManagement, Texture, RGBAFormat, UnsignedByteType, EventDispatcher, Raycaster, Scene, PCFSoftShadowMap, BasicShadowMap, PCFShadowMap, VSMShadowMap, NoToneMapping, ACESFilmicToneMapping, Vector4 } from 'three';
7
7
  import { DOCUMENT } from '@angular/common';
8
8
  import { Subject, filter, map } from 'rxjs';
9
9
  import { createInjectionToken } from 'ngxtension/create-injection-token';
@@ -756,6 +756,7 @@ const SPECIAL_EVENTS = {
756
756
  UPDATED: 'updated',
757
757
  ATTACHED: 'attached',
758
758
  };
759
+ const THREE_NATIVE_EVENTS = ['added', 'removed', 'childadded', 'childremoved', 'disposed'];
759
760
 
760
761
  class NgtArgs {
761
762
  constructor() {
@@ -1142,6 +1143,9 @@ function diffProps(instance, props) {
1142
1143
  }
1143
1144
  return changes;
1144
1145
  }
1146
+ // NOTE: this is a workaround to give the instance a change to have the store from the parent.
1147
+ // we clear this property after the applyProps is done
1148
+ const NGT_APPLY_PROPS = '__ngt_apply_props__';
1145
1149
  // This function applies a set of changes to the instance
1146
1150
  function applyProps(instance, props) {
1147
1151
  // if props is empty
@@ -1149,7 +1153,7 @@ function applyProps(instance, props) {
1149
1153
  return instance;
1150
1154
  // filter equals, and reserved props
1151
1155
  const localState = getLocalState(instance);
1152
- const rootState = localState?.store?.snapshot ?? {};
1156
+ const rootState = localState?.store?.snapshot ?? instance[NGT_APPLY_PROPS]?.snapshot ?? {};
1153
1157
  const changes = diffProps(instance, props);
1154
1158
  for (let i = 0; i < changes.length; i++) {
1155
1159
  let [key, value] = changes[i];
@@ -1238,6 +1242,10 @@ function applyProps(instance, props) {
1238
1242
  if (parent && localState?.onUpdate && changes.length) {
1239
1243
  localState.onUpdate(instance);
1240
1244
  }
1245
+ // clearing the intermediate store from the instance
1246
+ if (instance[NGT_APPLY_PROPS]) {
1247
+ delete instance[NGT_APPLY_PROPS];
1248
+ }
1241
1249
  return instance;
1242
1250
  }
1243
1251
 
@@ -1311,7 +1319,7 @@ function attach(object, value, paths = [], useApplyProps = false) {
1311
1319
  object[base] = value;
1312
1320
  }
1313
1321
  else {
1314
- assignEmpty(object, base);
1322
+ assignEmpty(object, base, useApplyProps);
1315
1323
  attach(object[base], value, remaining, useApplyProps);
1316
1324
  }
1317
1325
  }
@@ -1324,10 +1332,21 @@ function detach(parent, child, attachProp) {
1324
1332
  childLocalState.previousAttach();
1325
1333
  }
1326
1334
  }
1327
- function assignEmpty(obj, base) {
1335
+ function assignEmpty(obj, base, shouldAssignStoreForApplyProps = false) {
1328
1336
  if ((!Object.hasOwn(obj, base) && Reflect && !!Reflect.has && !Reflect.has(obj, base)) || obj[base] === undefined) {
1329
1337
  obj[base] = {};
1330
1338
  }
1339
+ if (shouldAssignStoreForApplyProps) {
1340
+ const localState = getLocalState(obj[base]);
1341
+ // if we already have local state, bail out
1342
+ if (localState)
1343
+ return;
1344
+ const parentLocalState = getLocalState(obj);
1345
+ // if parent doesn't have local state, bail out
1346
+ if (!parentLocalState)
1347
+ return;
1348
+ Object.assign(obj[base], { [NGT_APPLY_PROPS]: parentLocalState.store });
1349
+ }
1331
1350
  }
1332
1351
  function createAttachFunction(cb) {
1333
1352
  return (parent, child, store) => cb({ parent, child, store });
@@ -1500,6 +1519,17 @@ function processThreeEvent(instance, priority, eventName, callback) {
1500
1519
  lS.onUpdate = undefined;
1501
1520
  };
1502
1521
  }
1522
+ if (THREE_NATIVE_EVENTS.includes(eventName) && instance instanceof EventDispatcher) {
1523
+ // NOTE: rename to dispose because that's the event type, not disposed.
1524
+ if (eventName === 'disposed') {
1525
+ eventName = 'dispose';
1526
+ }
1527
+ if (instance.parent && (eventName === 'added' || eventName === 'removed')) {
1528
+ callback({ type: eventName, target: instance });
1529
+ }
1530
+ instance.addEventListener(eventName, callback);
1531
+ return () => instance.removeEventListener(eventName, callback);
1532
+ }
1503
1533
  if (!lS.handlers)
1504
1534
  lS.handlers = {};
1505
1535
  // try to get the previous handler. compound might have one, the THREE object might also have one with the same name
@@ -2553,15 +2583,15 @@ class NgtSelect {
2553
2583
  const autoEffect = injectAutoEffect();
2554
2584
  afterNextRender(() => {
2555
2585
  autoEffect(() => {
2586
+ const enabled = this.enabled();
2587
+ if (!enabled)
2588
+ return;
2556
2589
  const host = elementRef.nativeElement;
2557
2590
  if (!host)
2558
2591
  return;
2559
2592
  const localState = getLocalState(host);
2560
2593
  if (!localState)
2561
2594
  return;
2562
- const enabled = this.enabled();
2563
- if (!enabled)
2564
- return;
2565
2595
  // ngt-mesh[ngtSelect]
2566
2596
  if (host.type === 'Mesh') {
2567
2597
  selection.update((prev) => [...prev, host]);
@@ -3181,5 +3211,5 @@ const vector4 = createVectorComputed(Vector4);
3181
3211
  * Generated bundle index. Do not edit.
3182
3212
  */
3183
3213
 
3184
- export { HTML, NGT_STORE, NgtArgs, NgtCanvas, NgtHTML, NgtHexify, NgtObjectEvents, NgtObjectEventsHostDirective, NgtPortal, NgtPortalBeforeRender, NgtPortalContent, NgtRenderer, NgtRendererFactory, NgtRoutedScene, NgtSelect, NgtSelection, ROUTED_SCENE, addAfterEffect, addEffect, addTail, applyProps, attach, checkNeedsUpdate, checkUpdate, createAttachFunction, detach, dispose, extend, flushGlobalEffects, getLocalState, injectBeforeRender, injectCanvasRootInitializer, injectLoader, injectLoop, injectNonNullish$, injectObjectEvents, injectStore, invalidateInstance, is, makeCameraInstance, makeDpr, makeId, makeObjectGraph, makeRendererInstance, merge, omit, pick, prepare, privateKeys, provideHTMLDomElement, provideNgtRenderer, provideStore, resolveRef, roots, signalStore, updateCamera, vector2, vector3, vector4 };
3214
+ export { HTML, NGT_APPLY_PROPS, NGT_STORE, NgtArgs, NgtCanvas, NgtHTML, NgtHexify, NgtObjectEvents, NgtObjectEventsHostDirective, NgtPortal, NgtPortalBeforeRender, NgtPortalContent, NgtRenderer, NgtRendererFactory, NgtRoutedScene, NgtSelect, NgtSelection, ROUTED_SCENE, addAfterEffect, addEffect, addTail, applyProps, attach, checkNeedsUpdate, checkUpdate, createAttachFunction, detach, dispose, extend, flushGlobalEffects, getLocalState, injectBeforeRender, injectCanvasRootInitializer, injectLoader, injectLoop, injectNonNullish$, injectObjectEvents, injectStore, invalidateInstance, is, makeCameraInstance, makeDpr, makeId, makeObjectGraph, makeRendererInstance, merge, omit, pick, prepare, privateKeys, provideHTMLDomElement, provideNgtRenderer, provideStore, resolveRef, roots, signalStore, updateCamera, vector2, vector3, vector4 };
3185
3215
  //# sourceMappingURL=angular-three.mjs.map