angular-three-cannon 2.0.0-beta.240 → 2.0.0-beta.242

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.
@@ -112,8 +112,10 @@ export class NgtcPhysics {
112
112
  renderContent() {
113
113
  if (this.ref)
114
114
  this.ref.destroy();
115
- this.ref = untracked(this.anchor).createEmbeddedView(untracked(this.content), { $implicit: this.api }, { injector: this.injector });
116
- this.ref.detectChanges();
115
+ untracked(() => {
116
+ this.ref = this.anchor().createEmbeddedView(this.content(), { $implicit: this.api }, { injector: this.injector });
117
+ this.ref.detectChanges();
118
+ });
117
119
  }
118
120
  updateWorkerState(key) {
119
121
  const computedValue = computed(() => this.options()[key]);
@@ -218,4 +220,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImpor
218
220
  providers: [providePhysicsApi()],
219
221
  }]
220
222
  }], ctorParameters: () => [] });
221
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGh5c2ljcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvY2Fubm9uL3NyYy9saWIvcGh5c2ljcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ04sdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsU0FBUyxFQUVULFFBQVEsRUFDUixNQUFNLEVBRU4sV0FBVyxFQUNYLGdCQUFnQixFQUNoQixlQUFlLEVBQ2YsUUFBUSxFQUNSLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sRUFDTixTQUFTLEVBQ1QsU0FBUyxHQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDTixlQUFlLEdBYWYsTUFBTSwyQkFBMkIsQ0FBQztBQUNuQyxPQUFPLEVBQUUsY0FBYyxFQUFFLGtCQUFrQixFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUMxRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxPQUFPLEVBQVksVUFBVSxFQUFFLE9BQU8sRUFBRSxNQUFNLE9BQU8sQ0FBQzs7QUFFOUUsTUFBTSxDQUFDLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztBQUN4QixNQUFNLENBQUMsR0FBRyxJQUFJLE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQy9CLE1BQU0sQ0FBQyxHQUFHLElBQUksVUFBVSxFQUFFLENBQUM7QUFDM0IsTUFBTSxDQUFDLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztBQUV4QixTQUFTLEtBQUssQ0FDYixLQUFhLEVBQ2IsU0FBNEIsRUFDNUIsV0FBOEIsRUFDOUIsS0FBSyxHQUFHLENBQUMsRUFDVCxNQUFpQjtJQUVqQixJQUFJLEtBQUssS0FBSyxTQUFTLEVBQUUs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VyxXQUFXO2tHQUFYLFdBQVcscU1BRlosQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLCtEQVVRLGtCQUFrQiwyQkFBVSxXQUFXLDBIQUN6QixnQkFBZ0IsNkNBZjVEOztFQUVUOzsyRkFJVyxXQUFXO2tCQVR2QixTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSxjQUFjO29CQUN4QixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFOztFQUVUO29CQUNELGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxTQUFTLEVBQUUsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO2lCQUNoQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG5cdENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuXHRDb21wb25lbnQsXG5cdERlc3Ryb3lSZWYsXG5cdERpcmVjdGl2ZSxcblx0RW1iZWRkZWRWaWV3UmVmLFxuXHRJbmplY3Rvcixcblx0Tmdab25lLFxuXHRTaWduYWwsXG5cdFRlbXBsYXRlUmVmLFxuXHRWaWV3Q29udGFpbmVyUmVmLFxuXHRhZnRlck5leHRSZW5kZXIsXG5cdGNvbXB1dGVkLFxuXHRjb250ZW50Q2hpbGQsXG5cdGluamVjdCxcblx0aW5wdXQsXG5cdHNpZ25hbCxcblx0dW50cmFja2VkLFxuXHR2aWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcblx0Q2Fubm9uV29ya2VyQVBJLFxuXHRDYW5ub25Xb3JrZXJQcm9wcyxcblx0Q29sbGlkZUJlZ2luRXZlbnQsXG5cdENvbGxpZGVFbmRFdmVudCxcblx0Q29sbGlkZUV2ZW50LFxuXHRSYXloaXRFdmVudCxcblx0UmVmcyxcblx0U3Vic2NyaXB0aW9ucyxcblx0V29ya2VyQ29sbGlkZUJlZ2luRXZlbnQsXG5cdFdvcmtlckNvbGxpZGVFbmRFdmVudCxcblx0V29ya2VyQ29sbGlkZUV2ZW50LFxuXHRXb3JrZXJGcmFtZU1lc3NhZ2UsXG5cdFdvcmtlclJheWhpdEV2ZW50LFxufSBmcm9tICdAcG1uZHJzL2Nhbm5vbi13b3JrZXItYXBpJztcbmltcG9ydCB7IGNyZWF0ZUFwaVRva2VuLCBpbmplY3RCZWZvcmVSZW5kZXIsIGluamVjdE5ndFN0b3JlIH0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG5pbXBvcnQgeyBpbmplY3RBdXRvRWZmZWN0IH0gZnJvbSAnbmd4dGVuc2lvbi9hdXRvLWVmZmVjdCc7XG5pbXBvcnQgeyBtZXJnZUlucHV0cyB9IGZyb20gJ25neHRlbnNpb24vaW5qZWN0LWlucHV0cyc7XG5pbXBvcnQgeyBJbnN0YW5jZWRNZXNoLCBNYXRyaXg0LCBPYmplY3QzRCwgUXVhdGVybmlvbiwgVmVjdG9yMyB9IGZyb20gJ3RocmVlJztcblxuY29uc3QgdiA9IG5ldyBWZWN0b3IzKCk7XG5jb25zdCBzID0gbmV3IFZlY3RvcjMoMSwgMSwgMSk7XG5jb25zdCBxID0gbmV3IFF1YXRlcm5pb24oKTtcbmNvbnN0IG0gPSBuZXcgTWF0cml4NCgpO1xuXG5mdW5jdGlvbiBhcHBseShcblx0aW5kZXg6IG51bWJlcixcblx0cG9zaXRpb25zOiBBcnJheUxpa2U8bnVtYmVyPixcblx0cXVhdGVybmlvbnM6IEFycmF5TGlrZTxudW1iZXI+LFxuXHRzY2FsZSA9IHMsXG5cdG9iamVjdD86IE9iamVjdDNELFxuKSB7XG5cdGlmIChpbmRleCAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0bS5jb21wb3NlKHYuZnJvbUFycmF5KHBvc2l0aW9ucywgaW5kZXggKiAzKSwgcS5mcm9tQXJyYXkocXVhdGVybmlvbnMsIGluZGV4ICogNCksIHNjYWxlKTtcblx0XHRpZiAob2JqZWN0KSB7XG5cdFx0XHRvYmplY3QubWF0cml4QXV0b1VwZGF0ZSA9IGZhbHNlO1xuXHRcdFx0b2JqZWN0Lm1hdHJpeC5jb3B5KG0pO1xuXHRcdH1cblx0XHRyZXR1cm4gbTtcblx0fVxuXHRyZXR1cm4gbS5pZGVudGl0eSgpO1xufVxuXG5mdW5jdGlvbiB1bmlxdWUoKSB7XG5cdGNvbnN0IHZhbHVlczogdW5rbm93bltdID0gW107XG5cdHJldHVybiAodmFsdWU6IHVua25vd24pID0+ICh2YWx1ZXMuaW5jbHVkZXModmFsdWUpID8gZmFsc2UgOiAhIXZhbHVlcy5wdXNoKHZhbHVlKSk7XG59XG5cbmV4cG9ydCBjb25zdCBbaW5qZWN0UGh5c2ljc0FwaSwgcHJvdmlkZVBoeXNpY3NBcGldID0gY3JlYXRlQXBpVG9rZW4oKCkgPT4gTmd0Y1BoeXNpY3MpO1xuXG50eXBlIE5ndGNDYW5ub25FdmVudCA9IENvbGxpZGVCZWdpbkV2ZW50IHwgQ29sbGlkZUVuZEV2ZW50IHwgQ29sbGlkZUV2ZW50IHwgUmF5aGl0RXZlbnQ7XG50eXBlIE5ndGNDYWxsYmFja0J5VHlwZTxUIGV4dGVuZHMgeyB0eXBlOiBzdHJpbmcgfT4gPSB7XG5cdFtLIGluIFRbJ3R5cGUnXV0/OiBUIGV4dGVuZHMgeyB0eXBlOiBLIH0gPyAoZTogVCkgPT4gdm9pZCA6IG5ldmVyO1xufTtcblxuZXhwb3J0IHR5cGUgTmd0Y0Nhbm5vbkV2ZW50cyA9IFJlY29yZDxzdHJpbmcsIFBhcnRpYWw8Tmd0Y0NhbGxiYWNrQnlUeXBlPE5ndGNDYW5ub25FdmVudD4+PjtcblxuZXhwb3J0IHR5cGUgU2NhbGVPdmVycmlkZXMgPSBSZWNvcmQ8c3RyaW5nLCBWZWN0b3IzPjtcblxuZXhwb3J0IGludGVyZmFjZSBOZ3RjUGh5c2ljc0lucHV0cyBleHRlbmRzIENhbm5vbldvcmtlclByb3BzIHtcblx0aXNQYXVzZWQ/OiBib29sZWFuO1xuXHRtYXhTdWJTdGVwcz86IG51bWJlcjtcblx0c2hvdWxkSW52YWxpZGF0ZT86IGJvb2xlYW47XG5cdHN0ZXBTaXplPzogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE5ndGNQaHlzaWNzQXBpIHtcblx0Ym9kaWVzOiB7IFt1dWlkOiBzdHJpbmddOiBudW1iZXIgfTtcblx0ZXZlbnRzOiBOZ3RjQ2Fubm9uRXZlbnRzO1xuXHRyZWZzOiBSZWZzO1xuXHRzY2FsZU92ZXJyaWRlczogU2NhbGVPdmVycmlkZXM7XG5cdHN1YnNjcmlwdGlvbnM6IFN1YnNjcmlwdGlvbnM7XG5cdHdvcmtlcjogU2lnbmFsPENhbm5vbldvcmtlckFQST47XG59XG5cbkBEaXJlY3RpdmUoeyBzZWxlY3RvcjogJ25nLXRlbXBsYXRlW3BoeXNpY3NDb250ZW50XScsIHN0YW5kYWxvbmU6IHRydWUgfSlcbmV4cG9ydCBjbGFzcyBOZ3RjUGh5c2ljc0NvbnRlbnQge1xuXHRzdGF0aWMgbmdUZW1wbGF0ZUNvbnRleHRHdWFyZChfOiBOZ3RjUGh5c2ljc0NvbnRlbnQsIGN0eDogdW5rbm93bik6IGN0eCBpcyB7ICRpbXBsaWNpdDogTmd0Y1BoeXNpY3NBcGkgfSB7XG5cdFx0cmV0dXJuIHRydWU7XG5cdH1cbn1cblxuY29uc3QgZGVmYXVsdE9wdGlvbnM6IE5ndGNQaHlzaWNzSW5wdXRzID0ge1xuXHRhbGxvd1NsZWVwOiBmYWxzZSxcblx0YXhpc0luZGV4OiAwLFxuXHRicm9hZHBoYXNlOiAnTmFpdmUnLFxuXHRkZWZhdWx0Q29udGFjdE1hdGVyaWFsOiB7IGNvbnRhY3RFcXVhdGlvblN0aWZmbmVzczogMWU2IH0sXG5cdGZyaWN0aW9uR3Jhdml0eTogbnVsbCxcblx0Z3Jhdml0eTogWzAsIC05LjgxLCAwXSxcblx0aXNQYXVzZWQ6IGZhbHNlLFxuXHRpdGVyYXRpb25zOiA1LFxuXHRtYXhTdWJTdGVwczogMTAsXG5cdHF1YXROb3JtYWxpemVGYXN0OiBmYWxzZSxcblx0cXVhdE5vcm1hbGl6ZVNraXA6IDAsXG5cdHNob3VsZEludmFsaWRhdGU6IHRydWUsXG5cdHNpemU6IDEwMDAsXG5cdHNvbHZlcjogJ0dTJyxcblx0c3RlcFNpemU6IDEgLyA2MCxcblx0dG9sZXJhbmNlOiAwLjAwMSxcbn07XG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ25ndGMtcGh5c2ljcycsXG5cdHN0YW5kYWxvbmU6IHRydWUsXG5cdHRlbXBsYXRlOiBgXG5cdFx0PG5nLWNvbnRhaW5lciAjYW5jaG9yIC8+XG5cdGAsXG5cdGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuXHRwcm92aWRlcnM6IFtwcm92aWRlUGh5c2ljc0FwaSgpXSxcbn0pXG5leHBvcnQgY2xhc3MgTmd0Y1BoeXNpY3Mge1xuXHRwcml2YXRlIHpvbmUgPSBpbmplY3QoTmdab25lKTtcblx0cHJpdmF0ZSBpbmplY3RvciA9IGluamVjdChJbmplY3Rvcik7XG5cdHByaXZhdGUgYXV0b0VmZmVjdCA9IGluamVjdEF1dG9FZmZlY3QoKTtcblx0cHJpdmF0ZSBzdG9yZSA9IGluamVjdE5ndFN0b3JlKCk7XG5cblx0b3B0aW9ucyA9IGlucHV0KGRlZmF1bHRPcHRpb25zLCB7IHRyYW5zZm9ybTogbWVyZ2VJbnB1dHMoZGVmYXVsdE9wdGlvbnMpIH0pO1xuXG5cdHByaXZhdGUgY29udGVudCA9IGNvbnRlbnRDaGlsZC5yZXF1aXJlZChOZ3RjUGh5c2ljc0NvbnRlbnQsIHsgcmVhZDogVGVtcGxhdGVSZWYgfSk7XG5cdHByaXZhdGUgYW5jaG9yID0gdmlld0NoaWxkLnJlcXVpcmVkKCdhbmNob3InLCB7IHJlYWQ6IFZpZXdDb250YWluZXJSZWYgfSk7XG5cblx0cHJpdmF0ZSBpbnZhbGlkYXRlID0gdGhpcy5zdG9yZS5zZWxlY3QoJ2ludmFsaWRhdGUnKTtcblx0cHJpdmF0ZSB3b3JrZXIgPSBzaWduYWw8Q2Fubm9uV29ya2VyQVBJPihudWxsISk7XG5cblx0YXBpOiBOZ3RjUGh5c2ljc0FwaSA9IHtcblx0XHRib2RpZXM6IHt9LFxuXHRcdGV2ZW50czoge30sXG5cdFx0cmVmczoge30sXG5cdFx0c2NhbGVPdmVycmlkZXM6IHt9LFxuXHRcdHN1YnNjcmlwdGlvbnM6IHt9LFxuXHRcdHdvcmtlcjogdGhpcy53b3JrZXIuYXNSZWFkb25seSgpLFxuXHR9O1xuXG5cdHByaXZhdGUgcmVmPzogRW1iZWRkZWRWaWV3UmVmPHsgJGltcGxpY2l0OiBOZ3RjUGh5c2ljc0FwaSB9PjtcblxuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHRhZnRlck5leHRSZW5kZXIoKCkgPT4ge1xuXHRcdFx0dGhpcy56b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcblx0XHRcdFx0dGhpcy53b3JrZXIuc2V0KG5ldyBDYW5ub25Xb3JrZXJBUEkodGhpcy5vcHRpb25zKCkpKTtcblx0XHRcdFx0dGhpcy5jb25uZWN0V29ya2VyKCk7XG5cdFx0XHRcdHRoaXMucmVuZGVyQ29udGVudCgpO1xuXHRcdFx0XHR0aGlzLnVwZGF0ZVdvcmtlclN0YXRlKCdheGlzSW5kZXgnKTtcblx0XHRcdFx0dGhpcy51cGRhdGVXb3JrZXJTdGF0ZSgnYnJvYWRwaGFzZScpO1xuXHRcdFx0XHR0aGlzLnVwZGF0ZVdvcmtlclN0YXRlKCdncmF2aXR5Jyk7XG5cdFx0XHRcdHRoaXMudXBkYXRlV29ya2VyU3RhdGUoJ2l0ZXJhdGlvbnMnKTtcblx0XHRcdFx0dGhpcy51cGRhdGVXb3JrZXJTdGF0ZSgndG9sZXJhbmNlJyk7XG5cdFx0XHRcdHRoaXMuYmVmb3JlUmVuZGVyKCk7XG5cdFx0XHR9KTtcblx0XHR9KTtcblxuXHRcdGluamVjdChEZXN0cm95UmVmKS5vbkRlc3Ryb3koKCkgPT4ge1xuXHRcdFx0dGhpcy5yZWY/LmRlc3Ryb3koKTtcblx0XHR9KTtcblx0fVxuXG5cdHByaXZhdGUgY29ubmVjdFdvcmtlcigpIHtcblx0XHR0aGlzLmF1dG9FZmZlY3QoKGluamVjdG9yKSA9PiB7XG5cdFx0XHRjb25zdCB3b3JrZXIgPSB0aGlzLndvcmtlcigpIGFzIENhbm5vbldvcmtlckFQSSAmIHtcblx0XHRcdFx0b246IChldmVudDogc3RyaW5nLCBjYjogKC4uLmFyZ3M6IGFueVtdKSA9PiB2b2lkKSA9PiB2b2lkO1xuXHRcdFx0XHRyZW1vdmVBbGxMaXN0ZW5lcnM6ICgpID0+IHZvaWQ7XG5cdFx0XHR9O1xuXHRcdFx0aWYgKCF3b3JrZXIpIHJldHVybjtcblxuXHRcdFx0d29ya2VyLmNvbm5lY3QoKTtcblx0XHRcdHdvcmtlci5pbml0KCk7XG5cblx0XHRcdHdvcmtlci5vbignY29sbGlkZScsIHRoaXMuY29sbGlkZUhhbmRsZXIuYmluZCh0aGlzKSk7XG5cdFx0XHR3b3JrZXIub24oJ2NvbGxpZGVCZWdpbicsIHRoaXMuY29sbGlkZUJlZ2luSGFuZGxlci5iaW5kKHRoaXMpKTtcblx0XHRcdHdvcmtlci5vbignY29sbGlkZUVuZCcsIHRoaXMuY29sbGlkZUVuZEhhbmRsZXIuYmluZCh0aGlzKSk7XG5cdFx0XHR3b3JrZXIub24oJ2ZyYW1lJywgdGhpcy5mcmFtZUhhbmRsZXIuYmluZCh0aGlzKSk7XG5cdFx0XHR3b3JrZXIub24oJ3JheWhpdCcsIHRoaXMucmF5aGl0SGFuZGxlci5iaW5kKHRoaXMpKTtcblxuXHRcdFx0cmV0dXJuICgpID0+IHtcblx0XHRcdFx0dGhpcy5yZWY/LmRlc3Ryb3koKTtcblx0XHRcdFx0d29ya2VyLnRlcm1pbmF0ZSgpO1xuXHRcdFx0XHR3b3JrZXIucmVtb3ZlQWxsTGlzdGVuZXJzKCk7XG5cdFx0XHR9O1xuXHRcdH0pO1xuXHR9XG5cblx0cHJpdmF0ZSByZW5kZXJDb250ZW50KCkge1xuXHRcdGlmICh0aGlzLnJlZikgdGhpcy5yZWYuZGVzdHJveSgpO1xuXHRcdHRoaXMucmVmID0gdW50cmFja2VkKHRoaXMuYW5jaG9yKS5jcmVhdGVFbWJlZGRlZFZpZXcoXG5cdFx0XHR1bnRyYWNrZWQodGhpcy5jb250ZW50KSxcblx0XHRcdHsgJGltcGxpY2l0OiB0aGlzLmFwaSB9LFxuXHRcdFx0eyBpbmplY3RvcjogdGhpcy5pbmplY3RvciB9LFxuXHRcdCk7XG5cdFx0dGhpcy5yZWYuZGV0ZWN0Q2hhbmdlcygpO1xuXHR9XG5cblx0cHJpdmF0ZSB1cGRhdGVXb3JrZXJTdGF0ZShrZXk6IGtleW9mIE5ndGNQaHlzaWNzSW5wdXRzKSB7XG5cdFx0Y29uc3QgY29tcHV0ZWRWYWx1ZSA9IGNvbXB1dGVkKCgpID0+IHRoaXMub3B0aW9ucygpW2tleV0pO1xuXG5cdFx0dGhpcy5hdXRvRWZmZWN0KCgpID0+IHtcblx0XHRcdGNvbnN0IFt3b3JrZXIsIHZhbHVlXSA9IFt1bnRyYWNrZWQodGhpcy53b3JrZXIpLCBjb21wdXRlZFZhbHVlKCldO1xuXHRcdFx0Ly8gQHRzLWV4cGVjdC1lcnJvclxuXHRcdFx0d29ya2VyW2tleV0gPSB2YWx1ZTtcblx0XHR9KTtcblx0fVxuXG5cdHByaXZhdGUgYmVmb3JlUmVuZGVyKCkge1xuXHRcdGxldCB0aW1lU2luY2VMYXN0Q2FsbGVkID0gMDtcblx0XHRpbmplY3RCZWZvcmVSZW5kZXIoXG5cdFx0XHQoeyBkZWx0YSB9KSA9PiB7XG5cdFx0XHRcdGNvbnN0IFt7IGlzUGF1c2VkLCBtYXhTdWJTdGVwcywgc3RlcFNpemUgfSwgd29ya2VyXSA9IFt0aGlzLm9wdGlvbnMoKSwgdGhpcy53b3JrZXIoKV07XG5cdFx0XHRcdGlmIChpc1BhdXNlZCB8fCAhd29ya2VyKSByZXR1cm47XG5cdFx0XHRcdHRpbWVTaW5jZUxhc3RDYWxsZWQgKz0gZGVsdGE7XG5cdFx0XHRcdHdvcmtlci5zdGVwKHsgbWF4U3ViU3RlcHMsIHN0ZXBTaXplOiBzdGVwU2l6ZSEsIHRpbWVTaW5jZUxhc3RDYWxsZWQgfSk7XG5cdFx0XHRcdHRpbWVTaW5jZUxhc3RDYWxsZWQgPSAwO1xuXHRcdFx0fSxcblx0XHRcdHsgaW5qZWN0b3I6IHRoaXMuaW5qZWN0b3IgfSxcblx0XHQpO1xuXHR9XG5cblx0cHJpdmF0ZSBjb2xsaWRlSGFuZGxlcih7IGJvZHksIGNvbnRhY3Q6IHsgYmksIGJqLCAuLi5jb250YWN0UmVzdCB9LCB0YXJnZXQsIC4uLnJlc3QgfTogV29ya2VyQ29sbGlkZUV2ZW50WydkYXRhJ10pIHtcblx0XHRjb25zdCB7IGV2ZW50cywgcmVmcyB9ID0gdGhpcy5hcGk7XG5cdFx0Y29uc3QgY2IgPSBldmVudHNbdGFyZ2V0XT8uY29sbGlkZTtcblx0XHRpZiAoY2IpIHtcblx0XHRcdGNiKHsgYm9keTogcmVmc1tib2R5XSwgY29udGFjdDogeyBiaTogcmVmc1tiaV0sIGJqOiByZWZzW2JqXSwgLi4uY29udGFjdFJlc3QgfSwgdGFyZ2V0OiByZWZzW3RhcmdldF0sIC4uLnJlc3QgfSk7XG5cdFx0fVxuXHR9XG5cblx0cHJpdmF0ZSBjb2xsaWRlQmVnaW5IYW5kbGVyKHsgYm9keUEsIGJvZHlCIH06IFdvcmtlckNvbGxpZGVCZWdpbkV2ZW50WydkYXRhJ10pIHtcblx0XHRjb25zdCB7IGV2ZW50cywgcmVmcyB9ID0gdGhpcy5hcGk7XG5cdFx0Y29uc3QgY2JBID0gZXZlbnRzW2JvZHlBXT8uY29sbGlkZUJlZ2luO1xuXHRcdGlmIChjYkEpIGNiQSh7IGJvZHk6IHJlZnNbYm9keUJdLCBvcDogJ2V2ZW50JywgdGFyZ2V0OiByZWZzW2JvZHlBXSwgdHlwZTogJ2NvbGxpZGVCZWdpbicgfSk7XG5cdFx0Y29uc3QgY2JCID0gZXZlbnRzW2JvZHlCXT8uY29sbGlkZUJlZ2luO1xuXHRcdGlmIChjYkIpIGNiQih7IGJvZHk6IHJlZnNbYm9keUFdLCBvcDogJ2V2ZW50JywgdGFyZ2V0OiByZWZzW2JvZHlCXSwgdHlwZTogJ2NvbGxpZGVCZWdpbicgfSk7XG5cdH1cblxuXHRwcml2YXRlIGNvbGxpZGVFbmRIYW5kbGVyKHsgYm9keUEsIGJvZHlCIH06IFdvcmtlckNvbGxpZGVFbmRFdmVudFsnZGF0YSddKSB7XG5cdFx0Y29uc3QgeyBldmVudHMsIHJlZnMgfSA9IHRoaXMuYXBpO1xuXHRcdGNvbnN0IGNiQSA9IGV2ZW50c1tib2R5QV0/LmNvbGxpZGVFbmQ7XG5cdFx0aWYgKGNiQSkgY2JBKHsgYm9keTogcmVmc1tib2R5Ql0sIG9wOiAnZXZlbnQnLCB0YXJnZXQ6IHJlZnNbYm9keUFdLCB0eXBlOiAnY29sbGlkZUVuZCcgfSk7XG5cdFx0Y29uc3QgY2JCID0gZXZlbnRzW2JvZHlCXT8uY29sbGlkZUVuZDtcblx0XHRpZiAoY2JCKSBjYkIoeyBib2R5OiByZWZzW2JvZHlBXSwgb3A6ICdldmVudCcsIHRhcmdldDogcmVmc1tib2R5Ql0sIHR5cGU6ICdjb2xsaWRlRW5kJyB9KTtcblx0fVxuXG5cdHByaXZhdGUgZnJhbWVIYW5kbGVyKHtcblx0XHRhY3RpdmUsXG5cdFx0Ym9kaWVzOiB1dWlkcyA9IFtdLFxuXHRcdG9ic2VydmF0aW9ucyxcblx0XHRwb3NpdGlvbnMsXG5cdFx0cXVhdGVybmlvbnMsXG5cdH06IFdvcmtlckZyYW1lTWVzc2FnZVsnZGF0YSddKSB7XG5cdFx0Y29uc3QgW3sgc2hvdWxkSW52YWxpZGF0ZSB9LCB7IGJvZGllcywgc3Vic2NyaXB0aW9ucywgcmVmcywgc2NhbGVPdmVycmlkZXMgfSwgaW52YWxpZGF0ZV0gPSBbXG5cdFx0XHR1bnRyYWNrZWQodGhpcy5vcHRpb25zKSxcblx0XHRcdHRoaXMuYXBpLFxuXHRcdFx0dGhpcy5pbnZhbGlkYXRlKCksXG5cdFx0XTtcblx0XHRmb3IgKGxldCBpID0gMDsgaSA8IHV1aWRzLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRib2RpZXNbdXVpZHNbaV1dID0gaTtcblx0XHR9XG5cdFx0b2JzZXJ2YXRpb25zLmZvckVhY2goKFtpZCwgdmFsdWUsIHR5cGVdKSA9PiB7XG5cdFx0XHRjb25zdCBzdWJzY3JpcHRpb24gPSBzdWJzY3JpcHRpb25zW2lkXSB8fCB7fTtcblx0XHRcdGNvbnN0IGNiID0gc3Vic2NyaXB0aW9uW3R5cGVdO1xuXHRcdFx0Ly8gQHRzLWV4cGVjdC1lcnJvciAtIFdlIGNsZWFybHkga25vdyB0aGUgdHlwZSBvZiB0aGUgY2FsbGJhY2ssIGJ1dCB0eXBlc2NyaXB0IGNhbid0IGRlYWwgd2l0aCBpdFxuXHRcdFx0Y2IgJiYgY2IodmFsdWUpO1xuXHRcdH0pO1xuXHRcdGlmICghYWN0aXZlKSByZXR1cm47XG5cdFx0Zm9yIChjb25zdCByZWYgb2YgT2JqZWN0LnZhbHVlcyhyZWZzKS5maWx0ZXIodW5pcXVlKCkpKSB7XG5cdFx0XHRpZiAocmVmIGluc3RhbmNlb2YgSW5zdGFuY2VkTWVzaCkge1xuXHRcdFx0XHRmb3IgKGxldCBpID0gMDsgaSA8IHJlZi5jb3VudDsgaSsrKSB7XG5cdFx0XHRcdFx0Y29uc3QgdXVpZCA9IGAke3JlZi51dWlkfS8ke2l9YDtcblx0XHRcdFx0XHRjb25zdCBpbmRleCA9IGJvZGllc1t1dWlkXTtcblx0XHRcdFx0XHRpZiAoaW5kZXggIT09IHVuZGVmaW5lZCkge1xuXHRcdFx0XHRcdFx0cmVmLnNldE1hdHJpeEF0KGksIGFwcGx5KGluZGV4LCBwb3NpdGlvbnMsIHF1YXRlcm5pb25zLCBzY2FsZU92ZXJyaWRlc1t1dWlkXSkpO1xuXHRcdFx0XHRcdFx0cmVmLmluc3RhbmNlTWF0cml4Lm5lZWRzVXBkYXRlID0gdHJ1ZTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdGNvbnN0IHNjYWxlID0gc2NhbGVPdmVycmlkZXNbcmVmLnV1aWRdIHx8IHJlZi5zY2FsZTtcblx0XHRcdFx0YXBwbHkoYm9kaWVzW3JlZi51dWlkXSwgcG9zaXRpb25zLCBxdWF0ZXJuaW9ucywgc2NhbGUsIHJlZik7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdGlmIChzaG91bGRJbnZhbGlkYXRlKSBpbnZhbGlkYXRlKCk7XG5cdH1cblxuXHRwcml2YXRlIHJheWhpdEhhbmRsZXIoeyBib2R5LCByYXk6IHsgdXVpZCwgLi4ucmF5UmVzdCB9LCAuLi5yZXN0IH06IFdvcmtlclJheWhpdEV2ZW50WydkYXRhJ10pIHtcblx0XHRjb25zdCB7IGV2ZW50cywgcmVmcyB9ID0gdGhpcy5hcGk7XG5cdFx0Y29uc3QgY2IgPSBldmVudHNbdXVpZF0/LnJheWhpdDtcblx0XHRpZiAoY2IpIGNiKHsgYm9keTogYm9keSA/IHJlZnNbYm9keV0gOiBudWxsLCByYXk6IHsgdXVpZCwgLi4ucmF5UmVzdCB9LCAuLi5yZXN0IH0pO1xuXHR9XG59XG4iXX0=
223
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGh5c2ljcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvY2Fubm9uL3NyYy9saWIvcGh5c2ljcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ04sdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsU0FBUyxFQUVULFFBQVEsRUFDUixNQUFNLEVBRU4sV0FBVyxFQUNYLGdCQUFnQixFQUNoQixlQUFlLEVBQ2YsUUFBUSxFQUNSLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sRUFDTixTQUFTLEVBQ1QsU0FBUyxHQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDTixlQUFlLEdBYWYsTUFBTSwyQkFBMkIsQ0FBQztBQUNuQyxPQUFPLEVBQUUsY0FBYyxFQUFFLGtCQUFrQixFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUMxRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxPQUFPLEVBQVksVUFBVSxFQUFFLE9BQU8sRUFBRSxNQUFNLE9BQU8sQ0FBQzs7QUFFOUUsTUFBTSxDQUFDLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztBQUN4QixNQUFNLENBQUMsR0FBRyxJQUFJLE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQy9CLE1BQU0sQ0FBQyxHQUFHLElBQUksVUFBVSxFQUFFLENBQUM7QUFDM0IsTUFBTSxDQUFDLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztBQUV4QixTQUFTLEtBQUssQ0FDYixLQUFhLEVBQ2IsU0FBNEIsRUFDNUIsV0FBOEIsRUFDOUIsS0FBSyxHQUFHLENBQUMsRUFDVCxNQUFpQjtJQUVqQixJQUFJLEtBQUssS0FBSyxTQUFTLEVBQUUs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LENBQUM7SUFDcEYsQ0FBQzs4R0ExS1csV0FBVztrR0FBWCxXQUFXLHFNQUZaLENBQUMsaUJBQWlCLEVBQUUsQ0FBQywrREFVUSxrQkFBa0IsMkJBQVUsV0FBVywwSEFDekIsZ0JBQWdCLDZDQWY1RDs7RUFFVDs7MkZBSVcsV0FBVztrQkFUdkIsU0FBUzttQkFBQztvQkFDVixRQUFRLEVBQUUsY0FBYztvQkFDeEIsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRTs7RUFFVDtvQkFDRCxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsU0FBUyxFQUFFLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztpQkFDaEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuXHRDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcblx0Q29tcG9uZW50LFxuXHREZXN0cm95UmVmLFxuXHREaXJlY3RpdmUsXG5cdEVtYmVkZGVkVmlld1JlZixcblx0SW5qZWN0b3IsXG5cdE5nWm9uZSxcblx0U2lnbmFsLFxuXHRUZW1wbGF0ZVJlZixcblx0Vmlld0NvbnRhaW5lclJlZixcblx0YWZ0ZXJOZXh0UmVuZGVyLFxuXHRjb21wdXRlZCxcblx0Y29udGVudENoaWxkLFxuXHRpbmplY3QsXG5cdGlucHV0LFxuXHRzaWduYWwsXG5cdHVudHJhY2tlZCxcblx0dmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG5cdENhbm5vbldvcmtlckFQSSxcblx0Q2Fubm9uV29ya2VyUHJvcHMsXG5cdENvbGxpZGVCZWdpbkV2ZW50LFxuXHRDb2xsaWRlRW5kRXZlbnQsXG5cdENvbGxpZGVFdmVudCxcblx0UmF5aGl0RXZlbnQsXG5cdFJlZnMsXG5cdFN1YnNjcmlwdGlvbnMsXG5cdFdvcmtlckNvbGxpZGVCZWdpbkV2ZW50LFxuXHRXb3JrZXJDb2xsaWRlRW5kRXZlbnQsXG5cdFdvcmtlckNvbGxpZGVFdmVudCxcblx0V29ya2VyRnJhbWVNZXNzYWdlLFxuXHRXb3JrZXJSYXloaXRFdmVudCxcbn0gZnJvbSAnQHBtbmRycy9jYW5ub24td29ya2VyLWFwaSc7XG5pbXBvcnQgeyBjcmVhdGVBcGlUb2tlbiwgaW5qZWN0QmVmb3JlUmVuZGVyLCBpbmplY3ROZ3RTdG9yZSB9IGZyb20gJ2FuZ3VsYXItdGhyZWUnO1xuaW1wb3J0IHsgaW5qZWN0QXV0b0VmZmVjdCB9IGZyb20gJ25neHRlbnNpb24vYXV0by1lZmZlY3QnO1xuaW1wb3J0IHsgbWVyZ2VJbnB1dHMgfSBmcm9tICduZ3h0ZW5zaW9uL2luamVjdC1pbnB1dHMnO1xuaW1wb3J0IHsgSW5zdGFuY2VkTWVzaCwgTWF0cml4NCwgT2JqZWN0M0QsIFF1YXRlcm5pb24sIFZlY3RvcjMgfSBmcm9tICd0aHJlZSc7XG5cbmNvbnN0IHYgPSBuZXcgVmVjdG9yMygpO1xuY29uc3QgcyA9IG5ldyBWZWN0b3IzKDEsIDEsIDEpO1xuY29uc3QgcSA9IG5ldyBRdWF0ZXJuaW9uKCk7XG5jb25zdCBtID0gbmV3IE1hdHJpeDQoKTtcblxuZnVuY3Rpb24gYXBwbHkoXG5cdGluZGV4OiBudW1iZXIsXG5cdHBvc2l0aW9uczogQXJyYXlMaWtlPG51bWJlcj4sXG5cdHF1YXRlcm5pb25zOiBBcnJheUxpa2U8bnVtYmVyPixcblx0c2NhbGUgPSBzLFxuXHRvYmplY3Q/OiBPYmplY3QzRCxcbikge1xuXHRpZiAoaW5kZXggIT09IHVuZGVmaW5lZCkge1xuXHRcdG0uY29tcG9zZSh2LmZyb21BcnJheShwb3NpdGlvbnMsIGluZGV4ICogMyksIHEuZnJvbUFycmF5KHF1YXRlcm5pb25zLCBpbmRleCAqIDQpLCBzY2FsZSk7XG5cdFx0aWYgKG9iamVjdCkge1xuXHRcdFx0b2JqZWN0Lm1hdHJpeEF1dG9VcGRhdGUgPSBmYWxzZTtcblx0XHRcdG9iamVjdC5tYXRyaXguY29weShtKTtcblx0XHR9XG5cdFx0cmV0dXJuIG07XG5cdH1cblx0cmV0dXJuIG0uaWRlbnRpdHkoKTtcbn1cblxuZnVuY3Rpb24gdW5pcXVlKCkge1xuXHRjb25zdCB2YWx1ZXM6IHVua25vd25bXSA9IFtdO1xuXHRyZXR1cm4gKHZhbHVlOiB1bmtub3duKSA9PiAodmFsdWVzLmluY2x1ZGVzKHZhbHVlKSA/IGZhbHNlIDogISF2YWx1ZXMucHVzaCh2YWx1ZSkpO1xufVxuXG5leHBvcnQgY29uc3QgW2luamVjdFBoeXNpY3NBcGksIHByb3ZpZGVQaHlzaWNzQXBpXSA9IGNyZWF0ZUFwaVRva2VuKCgpID0+IE5ndGNQaHlzaWNzKTtcblxudHlwZSBOZ3RjQ2Fubm9uRXZlbnQgPSBDb2xsaWRlQmVnaW5FdmVudCB8IENvbGxpZGVFbmRFdmVudCB8IENvbGxpZGVFdmVudCB8IFJheWhpdEV2ZW50O1xudHlwZSBOZ3RjQ2FsbGJhY2tCeVR5cGU8VCBleHRlbmRzIHsgdHlwZTogc3RyaW5nIH0+ID0ge1xuXHRbSyBpbiBUWyd0eXBlJ11dPzogVCBleHRlbmRzIHsgdHlwZTogSyB9ID8gKGU6IFQpID0+IHZvaWQgOiBuZXZlcjtcbn07XG5cbmV4cG9ydCB0eXBlIE5ndGNDYW5ub25FdmVudHMgPSBSZWNvcmQ8c3RyaW5nLCBQYXJ0aWFsPE5ndGNDYWxsYmFja0J5VHlwZTxOZ3RjQ2Fubm9uRXZlbnQ+Pj47XG5cbmV4cG9ydCB0eXBlIFNjYWxlT3ZlcnJpZGVzID0gUmVjb3JkPHN0cmluZywgVmVjdG9yMz47XG5cbmV4cG9ydCBpbnRlcmZhY2UgTmd0Y1BoeXNpY3NJbnB1dHMgZXh0ZW5kcyBDYW5ub25Xb3JrZXJQcm9wcyB7XG5cdGlzUGF1c2VkPzogYm9vbGVhbjtcblx0bWF4U3ViU3RlcHM/OiBudW1iZXI7XG5cdHNob3VsZEludmFsaWRhdGU/OiBib29sZWFuO1xuXHRzdGVwU2l6ZT86IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBOZ3RjUGh5c2ljc0FwaSB7XG5cdGJvZGllczogeyBbdXVpZDogc3RyaW5nXTogbnVtYmVyIH07XG5cdGV2ZW50czogTmd0Y0Nhbm5vbkV2ZW50cztcblx0cmVmczogUmVmcztcblx0c2NhbGVPdmVycmlkZXM6IFNjYWxlT3ZlcnJpZGVzO1xuXHRzdWJzY3JpcHRpb25zOiBTdWJzY3JpcHRpb25zO1xuXHR3b3JrZXI6IFNpZ25hbDxDYW5ub25Xb3JrZXJBUEk+O1xufVxuXG5ARGlyZWN0aXZlKHsgc2VsZWN0b3I6ICduZy10ZW1wbGF0ZVtwaHlzaWNzQ29udGVudF0nLCBzdGFuZGFsb25lOiB0cnVlIH0pXG5leHBvcnQgY2xhc3MgTmd0Y1BoeXNpY3NDb250ZW50IHtcblx0c3RhdGljIG5nVGVtcGxhdGVDb250ZXh0R3VhcmQoXzogTmd0Y1BoeXNpY3NDb250ZW50LCBjdHg6IHVua25vd24pOiBjdHggaXMgeyAkaW1wbGljaXQ6IE5ndGNQaHlzaWNzQXBpIH0ge1xuXHRcdHJldHVybiB0cnVlO1xuXHR9XG59XG5cbmNvbnN0IGRlZmF1bHRPcHRpb25zOiBOZ3RjUGh5c2ljc0lucHV0cyA9IHtcblx0YWxsb3dTbGVlcDogZmFsc2UsXG5cdGF4aXNJbmRleDogMCxcblx0YnJvYWRwaGFzZTogJ05haXZlJyxcblx0ZGVmYXVsdENvbnRhY3RNYXRlcmlhbDogeyBjb250YWN0RXF1YXRpb25TdGlmZm5lc3M6IDFlNiB9LFxuXHRmcmljdGlvbkdyYXZpdHk6IG51bGwsXG5cdGdyYXZpdHk6IFswLCAtOS44MSwgMF0sXG5cdGlzUGF1c2VkOiBmYWxzZSxcblx0aXRlcmF0aW9uczogNSxcblx0bWF4U3ViU3RlcHM6IDEwLFxuXHRxdWF0Tm9ybWFsaXplRmFzdDogZmFsc2UsXG5cdHF1YXROb3JtYWxpemVTa2lwOiAwLFxuXHRzaG91bGRJbnZhbGlkYXRlOiB0cnVlLFxuXHRzaXplOiAxMDAwLFxuXHRzb2x2ZXI6ICdHUycsXG5cdHN0ZXBTaXplOiAxIC8gNjAsXG5cdHRvbGVyYW5jZTogMC4wMDEsXG59O1xuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICduZ3RjLXBoeXNpY3MnLFxuXHRzdGFuZGFsb25lOiB0cnVlLFxuXHR0ZW1wbGF0ZTogYFxuXHRcdDxuZy1jb250YWluZXIgI2FuY2hvciAvPlxuXHRgLFxuXHRjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcblx0cHJvdmlkZXJzOiBbcHJvdmlkZVBoeXNpY3NBcGkoKV0sXG59KVxuZXhwb3J0IGNsYXNzIE5ndGNQaHlzaWNzIHtcblx0cHJpdmF0ZSB6b25lID0gaW5qZWN0KE5nWm9uZSk7XG5cdHByaXZhdGUgaW5qZWN0b3IgPSBpbmplY3QoSW5qZWN0b3IpO1xuXHRwcml2YXRlIGF1dG9FZmZlY3QgPSBpbmplY3RBdXRvRWZmZWN0KCk7XG5cdHByaXZhdGUgc3RvcmUgPSBpbmplY3ROZ3RTdG9yZSgpO1xuXG5cdG9wdGlvbnMgPSBpbnB1dChkZWZhdWx0T3B0aW9ucywgeyB0cmFuc2Zvcm06IG1lcmdlSW5wdXRzKGRlZmF1bHRPcHRpb25zKSB9KTtcblxuXHRwcml2YXRlIGNvbnRlbnQgPSBjb250ZW50Q2hpbGQucmVxdWlyZWQoTmd0Y1BoeXNpY3NDb250ZW50LCB7IHJlYWQ6IFRlbXBsYXRlUmVmIH0pO1xuXHRwcml2YXRlIGFuY2hvciA9IHZpZXdDaGlsZC5yZXF1aXJlZCgnYW5jaG9yJywgeyByZWFkOiBWaWV3Q29udGFpbmVyUmVmIH0pO1xuXG5cdHByaXZhdGUgaW52YWxpZGF0ZSA9IHRoaXMuc3RvcmUuc2VsZWN0KCdpbnZhbGlkYXRlJyk7XG5cdHByaXZhdGUgd29ya2VyID0gc2lnbmFsPENhbm5vbldvcmtlckFQST4obnVsbCEpO1xuXG5cdGFwaTogTmd0Y1BoeXNpY3NBcGkgPSB7XG5cdFx0Ym9kaWVzOiB7fSxcblx0XHRldmVudHM6IHt9LFxuXHRcdHJlZnM6IHt9LFxuXHRcdHNjYWxlT3ZlcnJpZGVzOiB7fSxcblx0XHRzdWJzY3JpcHRpb25zOiB7fSxcblx0XHR3b3JrZXI6IHRoaXMud29ya2VyLmFzUmVhZG9ubHkoKSxcblx0fTtcblxuXHRwcml2YXRlIHJlZj86IEVtYmVkZGVkVmlld1JlZjx7ICRpbXBsaWNpdDogTmd0Y1BoeXNpY3NBcGkgfT47XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0YWZ0ZXJOZXh0UmVuZGVyKCgpID0+IHtcblx0XHRcdHRoaXMuem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG5cdFx0XHRcdHRoaXMud29ya2VyLnNldChuZXcgQ2Fubm9uV29ya2VyQVBJKHRoaXMub3B0aW9ucygpKSk7XG5cdFx0XHRcdHRoaXMuY29ubmVjdFdvcmtlcigpO1xuXHRcdFx0XHR0aGlzLnJlbmRlckNvbnRlbnQoKTtcblx0XHRcdFx0dGhpcy51cGRhdGVXb3JrZXJTdGF0ZSgnYXhpc0luZGV4Jyk7XG5cdFx0XHRcdHRoaXMudXBkYXRlV29ya2VyU3RhdGUoJ2Jyb2FkcGhhc2UnKTtcblx0XHRcdFx0dGhpcy51cGRhdGVXb3JrZXJTdGF0ZSgnZ3Jhdml0eScpO1xuXHRcdFx0XHR0aGlzLnVwZGF0ZVdvcmtlclN0YXRlKCdpdGVyYXRpb25zJyk7XG5cdFx0XHRcdHRoaXMudXBkYXRlV29ya2VyU3RhdGUoJ3RvbGVyYW5jZScpO1xuXHRcdFx0XHR0aGlzLmJlZm9yZVJlbmRlcigpO1xuXHRcdFx0fSk7XG5cdFx0fSk7XG5cblx0XHRpbmplY3QoRGVzdHJveVJlZikub25EZXN0cm95KCgpID0+IHtcblx0XHRcdHRoaXMucmVmPy5kZXN0cm95KCk7XG5cdFx0fSk7XG5cdH1cblxuXHRwcml2YXRlIGNvbm5lY3RXb3JrZXIoKSB7XG5cdFx0dGhpcy5hdXRvRWZmZWN0KChpbmplY3RvcikgPT4ge1xuXHRcdFx0Y29uc3Qgd29ya2VyID0gdGhpcy53b3JrZXIoKSBhcyBDYW5ub25Xb3JrZXJBUEkgJiB7XG5cdFx0XHRcdG9uOiAoZXZlbnQ6IHN0cmluZywgY2I6ICguLi5hcmdzOiBhbnlbXSkgPT4gdm9pZCkgPT4gdm9pZDtcblx0XHRcdFx0cmVtb3ZlQWxsTGlzdGVuZXJzOiAoKSA9PiB2b2lkO1xuXHRcdFx0fTtcblx0XHRcdGlmICghd29ya2VyKSByZXR1cm47XG5cblx0XHRcdHdvcmtlci5jb25uZWN0KCk7XG5cdFx0XHR3b3JrZXIuaW5pdCgpO1xuXG5cdFx0XHR3b3JrZXIub24oJ2NvbGxpZGUnLCB0aGlzLmNvbGxpZGVIYW5kbGVyLmJpbmQodGhpcykpO1xuXHRcdFx0d29ya2VyLm9uKCdjb2xsaWRlQmVnaW4nLCB0aGlzLmNvbGxpZGVCZWdpbkhhbmRsZXIuYmluZCh0aGlzKSk7XG5cdFx0XHR3b3JrZXIub24oJ2NvbGxpZGVFbmQnLCB0aGlzLmNvbGxpZGVFbmRIYW5kbGVyLmJpbmQodGhpcykpO1xuXHRcdFx0d29ya2VyLm9uKCdmcmFtZScsIHRoaXMuZnJhbWVIYW5kbGVyLmJpbmQodGhpcykpO1xuXHRcdFx0d29ya2VyLm9uKCdyYXloaXQnLCB0aGlzLnJheWhpdEhhbmRsZXIuYmluZCh0aGlzKSk7XG5cblx0XHRcdHJldHVybiAoKSA9PiB7XG5cdFx0XHRcdHRoaXMucmVmPy5kZXN0cm95KCk7XG5cdFx0XHRcdHdvcmtlci50ZXJtaW5hdGUoKTtcblx0XHRcdFx0d29ya2VyLnJlbW92ZUFsbExpc3RlbmVycygpO1xuXHRcdFx0fTtcblx0XHR9KTtcblx0fVxuXG5cdHByaXZhdGUgcmVuZGVyQ29udGVudCgpIHtcblx0XHRpZiAodGhpcy5yZWYpIHRoaXMucmVmLmRlc3Ryb3koKTtcblx0XHR1bnRyYWNrZWQoKCkgPT4ge1xuXHRcdFx0dGhpcy5yZWYgPSB0aGlzLmFuY2hvcigpLmNyZWF0ZUVtYmVkZGVkVmlldyh0aGlzLmNvbnRlbnQoKSwgeyAkaW1wbGljaXQ6IHRoaXMuYXBpIH0sIHsgaW5qZWN0b3I6IHRoaXMuaW5qZWN0b3IgfSk7XG5cdFx0XHR0aGlzLnJlZi5kZXRlY3RDaGFuZ2VzKCk7XG5cdFx0fSk7XG5cdH1cblxuXHRwcml2YXRlIHVwZGF0ZVdvcmtlclN0YXRlKGtleToga2V5b2YgTmd0Y1BoeXNpY3NJbnB1dHMpIHtcblx0XHRjb25zdCBjb21wdXRlZFZhbHVlID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5vcHRpb25zKClba2V5XSk7XG5cblx0XHR0aGlzLmF1dG9FZmZlY3QoKCkgPT4ge1xuXHRcdFx0Y29uc3QgW3dvcmtlciwgdmFsdWVdID0gW3VudHJhY2tlZCh0aGlzLndvcmtlciksIGNvbXB1dGVkVmFsdWUoKV07XG5cdFx0XHQvLyBAdHMtZXhwZWN0LWVycm9yXG5cdFx0XHR3b3JrZXJba2V5XSA9IHZhbHVlO1xuXHRcdH0pO1xuXHR9XG5cblx0cHJpdmF0ZSBiZWZvcmVSZW5kZXIoKSB7XG5cdFx0bGV0IHRpbWVTaW5jZUxhc3RDYWxsZWQgPSAwO1xuXHRcdGluamVjdEJlZm9yZVJlbmRlcihcblx0XHRcdCh7IGRlbHRhIH0pID0+IHtcblx0XHRcdFx0Y29uc3QgW3sgaXNQYXVzZWQsIG1heFN1YlN0ZXBzLCBzdGVwU2l6ZSB9LCB3b3JrZXJdID0gW3RoaXMub3B0aW9ucygpLCB0aGlzLndvcmtlcigpXTtcblx0XHRcdFx0aWYgKGlzUGF1c2VkIHx8ICF3b3JrZXIpIHJldHVybjtcblx0XHRcdFx0dGltZVNpbmNlTGFzdENhbGxlZCArPSBkZWx0YTtcblx0XHRcdFx0d29ya2VyLnN0ZXAoeyBtYXhTdWJTdGVwcywgc3RlcFNpemU6IHN0ZXBTaXplISwgdGltZVNpbmNlTGFzdENhbGxlZCB9KTtcblx0XHRcdFx0dGltZVNpbmNlTGFzdENhbGxlZCA9IDA7XG5cdFx0XHR9LFxuXHRcdFx0eyBpbmplY3RvcjogdGhpcy5pbmplY3RvciB9LFxuXHRcdCk7XG5cdH1cblxuXHRwcml2YXRlIGNvbGxpZGVIYW5kbGVyKHsgYm9keSwgY29udGFjdDogeyBiaSwgYmosIC4uLmNvbnRhY3RSZXN0IH0sIHRhcmdldCwgLi4ucmVzdCB9OiBXb3JrZXJDb2xsaWRlRXZlbnRbJ2RhdGEnXSkge1xuXHRcdGNvbnN0IHsgZXZlbnRzLCByZWZzIH0gPSB0aGlzLmFwaTtcblx0XHRjb25zdCBjYiA9IGV2ZW50c1t0YXJnZXRdPy5jb2xsaWRlO1xuXHRcdGlmIChjYikge1xuXHRcdFx0Y2IoeyBib2R5OiByZWZzW2JvZHldLCBjb250YWN0OiB7IGJpOiByZWZzW2JpXSwgYmo6IHJlZnNbYmpdLCAuLi5jb250YWN0UmVzdCB9LCB0YXJnZXQ6IHJlZnNbdGFyZ2V0XSwgLi4ucmVzdCB9KTtcblx0XHR9XG5cdH1cblxuXHRwcml2YXRlIGNvbGxpZGVCZWdpbkhhbmRsZXIoeyBib2R5QSwgYm9keUIgfTogV29ya2VyQ29sbGlkZUJlZ2luRXZlbnRbJ2RhdGEnXSkge1xuXHRcdGNvbnN0IHsgZXZlbnRzLCByZWZzIH0gPSB0aGlzLmFwaTtcblx0XHRjb25zdCBjYkEgPSBldmVudHNbYm9keUFdPy5jb2xsaWRlQmVnaW47XG5cdFx0aWYgKGNiQSkgY2JBKHsgYm9keTogcmVmc1tib2R5Ql0sIG9wOiAnZXZlbnQnLCB0YXJnZXQ6IHJlZnNbYm9keUFdLCB0eXBlOiAnY29sbGlkZUJlZ2luJyB9KTtcblx0XHRjb25zdCBjYkIgPSBldmVudHNbYm9keUJdPy5jb2xsaWRlQmVnaW47XG5cdFx0aWYgKGNiQikgY2JCKHsgYm9keTogcmVmc1tib2R5QV0sIG9wOiAnZXZlbnQnLCB0YXJnZXQ6IHJlZnNbYm9keUJdLCB0eXBlOiAnY29sbGlkZUJlZ2luJyB9KTtcblx0fVxuXG5cdHByaXZhdGUgY29sbGlkZUVuZEhhbmRsZXIoeyBib2R5QSwgYm9keUIgfTogV29ya2VyQ29sbGlkZUVuZEV2ZW50WydkYXRhJ10pIHtcblx0XHRjb25zdCB7IGV2ZW50cywgcmVmcyB9ID0gdGhpcy5hcGk7XG5cdFx0Y29uc3QgY2JBID0gZXZlbnRzW2JvZHlBXT8uY29sbGlkZUVuZDtcblx0XHRpZiAoY2JBKSBjYkEoeyBib2R5OiByZWZzW2JvZHlCXSwgb3A6ICdldmVudCcsIHRhcmdldDogcmVmc1tib2R5QV0sIHR5cGU6ICdjb2xsaWRlRW5kJyB9KTtcblx0XHRjb25zdCBjYkIgPSBldmVudHNbYm9keUJdPy5jb2xsaWRlRW5kO1xuXHRcdGlmIChjYkIpIGNiQih7IGJvZHk6IHJlZnNbYm9keUFdLCBvcDogJ2V2ZW50JywgdGFyZ2V0OiByZWZzW2JvZHlCXSwgdHlwZTogJ2NvbGxpZGVFbmQnIH0pO1xuXHR9XG5cblx0cHJpdmF0ZSBmcmFtZUhhbmRsZXIoe1xuXHRcdGFjdGl2ZSxcblx0XHRib2RpZXM6IHV1aWRzID0gW10sXG5cdFx0b2JzZXJ2YXRpb25zLFxuXHRcdHBvc2l0aW9ucyxcblx0XHRxdWF0ZXJuaW9ucyxcblx0fTogV29ya2VyRnJhbWVNZXNzYWdlWydkYXRhJ10pIHtcblx0XHRjb25zdCBbeyBzaG91bGRJbnZhbGlkYXRlIH0sIHsgYm9kaWVzLCBzdWJzY3JpcHRpb25zLCByZWZzLCBzY2FsZU92ZXJyaWRlcyB9LCBpbnZhbGlkYXRlXSA9IFtcblx0XHRcdHVudHJhY2tlZCh0aGlzLm9wdGlvbnMpLFxuXHRcdFx0dGhpcy5hcGksXG5cdFx0XHR0aGlzLmludmFsaWRhdGUoKSxcblx0XHRdO1xuXHRcdGZvciAobGV0IGkgPSAwOyBpIDwgdXVpZHMubGVuZ3RoOyBpKyspIHtcblx0XHRcdGJvZGllc1t1dWlkc1tpXV0gPSBpO1xuXHRcdH1cblx0XHRvYnNlcnZhdGlvbnMuZm9yRWFjaCgoW2lkLCB2YWx1ZSwgdHlwZV0pID0+IHtcblx0XHRcdGNvbnN0IHN1YnNjcmlwdGlvbiA9IHN1YnNjcmlwdGlvbnNbaWRdIHx8IHt9O1xuXHRcdFx0Y29uc3QgY2IgPSBzdWJzY3JpcHRpb25bdHlwZV07XG5cdFx0XHQvLyBAdHMtZXhwZWN0LWVycm9yIC0gV2UgY2xlYXJseSBrbm93IHRoZSB0eXBlIG9mIHRoZSBjYWxsYmFjaywgYnV0IHR5cGVzY3JpcHQgY2FuJ3QgZGVhbCB3aXRoIGl0XG5cdFx0XHRjYiAmJiBjYih2YWx1ZSk7XG5cdFx0fSk7XG5cdFx0aWYgKCFhY3RpdmUpIHJldHVybjtcblx0XHRmb3IgKGNvbnN0IHJlZiBvZiBPYmplY3QudmFsdWVzKHJlZnMpLmZpbHRlcih1bmlxdWUoKSkpIHtcblx0XHRcdGlmIChyZWYgaW5zdGFuY2VvZiBJbnN0YW5jZWRNZXNoKSB7XG5cdFx0XHRcdGZvciAobGV0IGkgPSAwOyBpIDwgcmVmLmNvdW50OyBpKyspIHtcblx0XHRcdFx0XHRjb25zdCB1dWlkID0gYCR7cmVmLnV1aWR9LyR7aX1gO1xuXHRcdFx0XHRcdGNvbnN0IGluZGV4ID0gYm9kaWVzW3V1aWRdO1xuXHRcdFx0XHRcdGlmIChpbmRleCAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0XHRcdFx0XHRyZWYuc2V0TWF0cml4QXQoaSwgYXBwbHkoaW5kZXgsIHBvc2l0aW9ucywgcXVhdGVybmlvbnMsIHNjYWxlT3ZlcnJpZGVzW3V1aWRdKSk7XG5cdFx0XHRcdFx0XHRyZWYuaW5zdGFuY2VNYXRyaXgubmVlZHNVcGRhdGUgPSB0cnVlO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0Y29uc3Qgc2NhbGUgPSBzY2FsZU92ZXJyaWRlc1tyZWYudXVpZF0gfHwgcmVmLnNjYWxlO1xuXHRcdFx0XHRhcHBseShib2RpZXNbcmVmLnV1aWRdLCBwb3NpdGlvbnMsIHF1YXRlcm5pb25zLCBzY2FsZSwgcmVmKTtcblx0XHRcdH1cblx0XHR9XG5cdFx0aWYgKHNob3VsZEludmFsaWRhdGUpIGludmFsaWRhdGUoKTtcblx0fVxuXG5cdHByaXZhdGUgcmF5aGl0SGFuZGxlcih7IGJvZHksIHJheTogeyB1dWlkLCAuLi5yYXlSZXN0IH0sIC4uLnJlc3QgfTogV29ya2VyUmF5aGl0RXZlbnRbJ2RhdGEnXSkge1xuXHRcdGNvbnN0IHsgZXZlbnRzLCByZWZzIH0gPSB0aGlzLmFwaTtcblx0XHRjb25zdCBjYiA9IGV2ZW50c1t1dWlkXT8ucmF5aGl0O1xuXHRcdGlmIChjYikgY2IoeyBib2R5OiBib2R5ID8gcmVmc1tib2R5XSA6IG51bGwsIHJheTogeyB1dWlkLCAuLi5yYXlSZXN0IH0sIC4uLnJlc3QgfSk7XG5cdH1cbn1cbiJdfQ==
@@ -113,8 +113,10 @@ class NgtcPhysics {
113
113
  renderContent() {
114
114
  if (this.ref)
115
115
  this.ref.destroy();
116
- this.ref = untracked(this.anchor).createEmbeddedView(untracked(this.content), { $implicit: this.api }, { injector: this.injector });
117
- this.ref.detectChanges();
116
+ untracked(() => {
117
+ this.ref = this.anchor().createEmbeddedView(this.content(), { $implicit: this.api }, { injector: this.injector });
118
+ this.ref.detectChanges();
119
+ });
118
120
  }
119
121
  updateWorkerState(key) {
120
122
  const computedValue = computed(() => this.options()[key]);
@@ -1 +1 @@
1
- {"version":3,"file":"angular-three-cannon.mjs","sources":["../../../../libs/cannon/src/lib/physics.ts","../../../../libs/cannon/src/angular-three-cannon.ts"],"sourcesContent":["import {\n\tChangeDetectionStrategy,\n\tComponent,\n\tDestroyRef,\n\tDirective,\n\tEmbeddedViewRef,\n\tInjector,\n\tNgZone,\n\tSignal,\n\tTemplateRef,\n\tViewContainerRef,\n\tafterNextRender,\n\tcomputed,\n\tcontentChild,\n\tinject,\n\tinput,\n\tsignal,\n\tuntracked,\n\tviewChild,\n} from '@angular/core';\nimport {\n\tCannonWorkerAPI,\n\tCannonWorkerProps,\n\tCollideBeginEvent,\n\tCollideEndEvent,\n\tCollideEvent,\n\tRayhitEvent,\n\tRefs,\n\tSubscriptions,\n\tWorkerCollideBeginEvent,\n\tWorkerCollideEndEvent,\n\tWorkerCollideEvent,\n\tWorkerFrameMessage,\n\tWorkerRayhitEvent,\n} from '@pmndrs/cannon-worker-api';\nimport { createApiToken, injectBeforeRender, injectNgtStore } from 'angular-three';\nimport { injectAutoEffect } from 'ngxtension/auto-effect';\nimport { mergeInputs } from 'ngxtension/inject-inputs';\nimport { InstancedMesh, Matrix4, Object3D, Quaternion, Vector3 } from 'three';\n\nconst v = new Vector3();\nconst s = new Vector3(1, 1, 1);\nconst q = new Quaternion();\nconst m = new Matrix4();\n\nfunction apply(\n\tindex: number,\n\tpositions: ArrayLike<number>,\n\tquaternions: ArrayLike<number>,\n\tscale = s,\n\tobject?: Object3D,\n) {\n\tif (index !== undefined) {\n\t\tm.compose(v.fromArray(positions, index * 3), q.fromArray(quaternions, index * 4), scale);\n\t\tif (object) {\n\t\t\tobject.matrixAutoUpdate = false;\n\t\t\tobject.matrix.copy(m);\n\t\t}\n\t\treturn m;\n\t}\n\treturn m.identity();\n}\n\nfunction unique() {\n\tconst values: unknown[] = [];\n\treturn (value: unknown) => (values.includes(value) ? false : !!values.push(value));\n}\n\nexport const [injectPhysicsApi, providePhysicsApi] = createApiToken(() => NgtcPhysics);\n\ntype NgtcCannonEvent = CollideBeginEvent | CollideEndEvent | CollideEvent | RayhitEvent;\ntype NgtcCallbackByType<T extends { type: string }> = {\n\t[K in T['type']]?: T extends { type: K } ? (e: T) => void : never;\n};\n\nexport type NgtcCannonEvents = Record<string, Partial<NgtcCallbackByType<NgtcCannonEvent>>>;\n\nexport type ScaleOverrides = Record<string, Vector3>;\n\nexport interface NgtcPhysicsInputs extends CannonWorkerProps {\n\tisPaused?: boolean;\n\tmaxSubSteps?: number;\n\tshouldInvalidate?: boolean;\n\tstepSize?: number;\n}\n\nexport interface NgtcPhysicsApi {\n\tbodies: { [uuid: string]: number };\n\tevents: NgtcCannonEvents;\n\trefs: Refs;\n\tscaleOverrides: ScaleOverrides;\n\tsubscriptions: Subscriptions;\n\tworker: Signal<CannonWorkerAPI>;\n}\n\n@Directive({ selector: 'ng-template[physicsContent]', standalone: true })\nexport class NgtcPhysicsContent {\n\tstatic ngTemplateContextGuard(_: NgtcPhysicsContent, ctx: unknown): ctx is { $implicit: NgtcPhysicsApi } {\n\t\treturn true;\n\t}\n}\n\nconst defaultOptions: NgtcPhysicsInputs = {\n\tallowSleep: false,\n\taxisIndex: 0,\n\tbroadphase: 'Naive',\n\tdefaultContactMaterial: { contactEquationStiffness: 1e6 },\n\tfrictionGravity: null,\n\tgravity: [0, -9.81, 0],\n\tisPaused: false,\n\titerations: 5,\n\tmaxSubSteps: 10,\n\tquatNormalizeFast: false,\n\tquatNormalizeSkip: 0,\n\tshouldInvalidate: true,\n\tsize: 1000,\n\tsolver: 'GS',\n\tstepSize: 1 / 60,\n\ttolerance: 0.001,\n};\n\n@Component({\n\tselector: 'ngtc-physics',\n\tstandalone: true,\n\ttemplate: `\n\t\t<ng-container #anchor />\n\t`,\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tproviders: [providePhysicsApi()],\n})\nexport class NgtcPhysics {\n\tprivate zone = inject(NgZone);\n\tprivate injector = inject(Injector);\n\tprivate autoEffect = injectAutoEffect();\n\tprivate store = injectNgtStore();\n\n\toptions = input(defaultOptions, { transform: mergeInputs(defaultOptions) });\n\n\tprivate content = contentChild.required(NgtcPhysicsContent, { read: TemplateRef });\n\tprivate anchor = viewChild.required('anchor', { read: ViewContainerRef });\n\n\tprivate invalidate = this.store.select('invalidate');\n\tprivate worker = signal<CannonWorkerAPI>(null!);\n\n\tapi: NgtcPhysicsApi = {\n\t\tbodies: {},\n\t\tevents: {},\n\t\trefs: {},\n\t\tscaleOverrides: {},\n\t\tsubscriptions: {},\n\t\tworker: this.worker.asReadonly(),\n\t};\n\n\tprivate ref?: EmbeddedViewRef<{ $implicit: NgtcPhysicsApi }>;\n\n\tconstructor() {\n\t\tafterNextRender(() => {\n\t\t\tthis.zone.runOutsideAngular(() => {\n\t\t\t\tthis.worker.set(new CannonWorkerAPI(this.options()));\n\t\t\t\tthis.connectWorker();\n\t\t\t\tthis.renderContent();\n\t\t\t\tthis.updateWorkerState('axisIndex');\n\t\t\t\tthis.updateWorkerState('broadphase');\n\t\t\t\tthis.updateWorkerState('gravity');\n\t\t\t\tthis.updateWorkerState('iterations');\n\t\t\t\tthis.updateWorkerState('tolerance');\n\t\t\t\tthis.beforeRender();\n\t\t\t});\n\t\t});\n\n\t\tinject(DestroyRef).onDestroy(() => {\n\t\t\tthis.ref?.destroy();\n\t\t});\n\t}\n\n\tprivate connectWorker() {\n\t\tthis.autoEffect((injector) => {\n\t\t\tconst worker = this.worker() as CannonWorkerAPI & {\n\t\t\t\ton: (event: string, cb: (...args: any[]) => void) => void;\n\t\t\t\tremoveAllListeners: () => void;\n\t\t\t};\n\t\t\tif (!worker) return;\n\n\t\t\tworker.connect();\n\t\t\tworker.init();\n\n\t\t\tworker.on('collide', this.collideHandler.bind(this));\n\t\t\tworker.on('collideBegin', this.collideBeginHandler.bind(this));\n\t\t\tworker.on('collideEnd', this.collideEndHandler.bind(this));\n\t\t\tworker.on('frame', this.frameHandler.bind(this));\n\t\t\tworker.on('rayhit', this.rayhitHandler.bind(this));\n\n\t\t\treturn () => {\n\t\t\t\tthis.ref?.destroy();\n\t\t\t\tworker.terminate();\n\t\t\t\tworker.removeAllListeners();\n\t\t\t};\n\t\t});\n\t}\n\n\tprivate renderContent() {\n\t\tif (this.ref) this.ref.destroy();\n\t\tthis.ref = untracked(this.anchor).createEmbeddedView(\n\t\t\tuntracked(this.content),\n\t\t\t{ $implicit: this.api },\n\t\t\t{ injector: this.injector },\n\t\t);\n\t\tthis.ref.detectChanges();\n\t}\n\n\tprivate updateWorkerState(key: keyof NgtcPhysicsInputs) {\n\t\tconst computedValue = computed(() => this.options()[key]);\n\n\t\tthis.autoEffect(() => {\n\t\t\tconst [worker, value] = [untracked(this.worker), computedValue()];\n\t\t\t// @ts-expect-error\n\t\t\tworker[key] = value;\n\t\t});\n\t}\n\n\tprivate beforeRender() {\n\t\tlet timeSinceLastCalled = 0;\n\t\tinjectBeforeRender(\n\t\t\t({ delta }) => {\n\t\t\t\tconst [{ isPaused, maxSubSteps, stepSize }, worker] = [this.options(), this.worker()];\n\t\t\t\tif (isPaused || !worker) return;\n\t\t\t\ttimeSinceLastCalled += delta;\n\t\t\t\tworker.step({ maxSubSteps, stepSize: stepSize!, timeSinceLastCalled });\n\t\t\t\ttimeSinceLastCalled = 0;\n\t\t\t},\n\t\t\t{ injector: this.injector },\n\t\t);\n\t}\n\n\tprivate collideHandler({ body, contact: { bi, bj, ...contactRest }, target, ...rest }: WorkerCollideEvent['data']) {\n\t\tconst { events, refs } = this.api;\n\t\tconst cb = events[target]?.collide;\n\t\tif (cb) {\n\t\t\tcb({ body: refs[body], contact: { bi: refs[bi], bj: refs[bj], ...contactRest }, target: refs[target], ...rest });\n\t\t}\n\t}\n\n\tprivate collideBeginHandler({ bodyA, bodyB }: WorkerCollideBeginEvent['data']) {\n\t\tconst { events, refs } = this.api;\n\t\tconst cbA = events[bodyA]?.collideBegin;\n\t\tif (cbA) cbA({ body: refs[bodyB], op: 'event', target: refs[bodyA], type: 'collideBegin' });\n\t\tconst cbB = events[bodyB]?.collideBegin;\n\t\tif (cbB) cbB({ body: refs[bodyA], op: 'event', target: refs[bodyB], type: 'collideBegin' });\n\t}\n\n\tprivate collideEndHandler({ bodyA, bodyB }: WorkerCollideEndEvent['data']) {\n\t\tconst { events, refs } = this.api;\n\t\tconst cbA = events[bodyA]?.collideEnd;\n\t\tif (cbA) cbA({ body: refs[bodyB], op: 'event', target: refs[bodyA], type: 'collideEnd' });\n\t\tconst cbB = events[bodyB]?.collideEnd;\n\t\tif (cbB) cbB({ body: refs[bodyA], op: 'event', target: refs[bodyB], type: 'collideEnd' });\n\t}\n\n\tprivate frameHandler({\n\t\tactive,\n\t\tbodies: uuids = [],\n\t\tobservations,\n\t\tpositions,\n\t\tquaternions,\n\t}: WorkerFrameMessage['data']) {\n\t\tconst [{ shouldInvalidate }, { bodies, subscriptions, refs, scaleOverrides }, invalidate] = [\n\t\t\tuntracked(this.options),\n\t\t\tthis.api,\n\t\t\tthis.invalidate(),\n\t\t];\n\t\tfor (let i = 0; i < uuids.length; i++) {\n\t\t\tbodies[uuids[i]] = i;\n\t\t}\n\t\tobservations.forEach(([id, value, type]) => {\n\t\t\tconst subscription = subscriptions[id] || {};\n\t\t\tconst cb = subscription[type];\n\t\t\t// @ts-expect-error - We clearly know the type of the callback, but typescript can't deal with it\n\t\t\tcb && cb(value);\n\t\t});\n\t\tif (!active) return;\n\t\tfor (const ref of Object.values(refs).filter(unique())) {\n\t\t\tif (ref instanceof InstancedMesh) {\n\t\t\t\tfor (let i = 0; i < ref.count; i++) {\n\t\t\t\t\tconst uuid = `${ref.uuid}/${i}`;\n\t\t\t\t\tconst index = bodies[uuid];\n\t\t\t\t\tif (index !== undefined) {\n\t\t\t\t\t\tref.setMatrixAt(i, apply(index, positions, quaternions, scaleOverrides[uuid]));\n\t\t\t\t\t\tref.instanceMatrix.needsUpdate = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tconst scale = scaleOverrides[ref.uuid] || ref.scale;\n\t\t\t\tapply(bodies[ref.uuid], positions, quaternions, scale, ref);\n\t\t\t}\n\t\t}\n\t\tif (shouldInvalidate) invalidate();\n\t}\n\n\tprivate rayhitHandler({ body, ray: { uuid, ...rayRest }, ...rest }: WorkerRayhitEvent['data']) {\n\t\tconst { events, refs } = this.api;\n\t\tconst cb = events[uuid]?.rayhit;\n\t\tif (cb) cb({ body: body ? refs[body] : null, ray: { uuid, ...rayRest }, ...rest });\n\t}\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"angular-three-cannon.mjs","sources":["../../../../libs/cannon/src/lib/physics.ts","../../../../libs/cannon/src/angular-three-cannon.ts"],"sourcesContent":["import {\n\tChangeDetectionStrategy,\n\tComponent,\n\tDestroyRef,\n\tDirective,\n\tEmbeddedViewRef,\n\tInjector,\n\tNgZone,\n\tSignal,\n\tTemplateRef,\n\tViewContainerRef,\n\tafterNextRender,\n\tcomputed,\n\tcontentChild,\n\tinject,\n\tinput,\n\tsignal,\n\tuntracked,\n\tviewChild,\n} from '@angular/core';\nimport {\n\tCannonWorkerAPI,\n\tCannonWorkerProps,\n\tCollideBeginEvent,\n\tCollideEndEvent,\n\tCollideEvent,\n\tRayhitEvent,\n\tRefs,\n\tSubscriptions,\n\tWorkerCollideBeginEvent,\n\tWorkerCollideEndEvent,\n\tWorkerCollideEvent,\n\tWorkerFrameMessage,\n\tWorkerRayhitEvent,\n} from '@pmndrs/cannon-worker-api';\nimport { createApiToken, injectBeforeRender, injectNgtStore } from 'angular-three';\nimport { injectAutoEffect } from 'ngxtension/auto-effect';\nimport { mergeInputs } from 'ngxtension/inject-inputs';\nimport { InstancedMesh, Matrix4, Object3D, Quaternion, Vector3 } from 'three';\n\nconst v = new Vector3();\nconst s = new Vector3(1, 1, 1);\nconst q = new Quaternion();\nconst m = new Matrix4();\n\nfunction apply(\n\tindex: number,\n\tpositions: ArrayLike<number>,\n\tquaternions: ArrayLike<number>,\n\tscale = s,\n\tobject?: Object3D,\n) {\n\tif (index !== undefined) {\n\t\tm.compose(v.fromArray(positions, index * 3), q.fromArray(quaternions, index * 4), scale);\n\t\tif (object) {\n\t\t\tobject.matrixAutoUpdate = false;\n\t\t\tobject.matrix.copy(m);\n\t\t}\n\t\treturn m;\n\t}\n\treturn m.identity();\n}\n\nfunction unique() {\n\tconst values: unknown[] = [];\n\treturn (value: unknown) => (values.includes(value) ? false : !!values.push(value));\n}\n\nexport const [injectPhysicsApi, providePhysicsApi] = createApiToken(() => NgtcPhysics);\n\ntype NgtcCannonEvent = CollideBeginEvent | CollideEndEvent | CollideEvent | RayhitEvent;\ntype NgtcCallbackByType<T extends { type: string }> = {\n\t[K in T['type']]?: T extends { type: K } ? (e: T) => void : never;\n};\n\nexport type NgtcCannonEvents = Record<string, Partial<NgtcCallbackByType<NgtcCannonEvent>>>;\n\nexport type ScaleOverrides = Record<string, Vector3>;\n\nexport interface NgtcPhysicsInputs extends CannonWorkerProps {\n\tisPaused?: boolean;\n\tmaxSubSteps?: number;\n\tshouldInvalidate?: boolean;\n\tstepSize?: number;\n}\n\nexport interface NgtcPhysicsApi {\n\tbodies: { [uuid: string]: number };\n\tevents: NgtcCannonEvents;\n\trefs: Refs;\n\tscaleOverrides: ScaleOverrides;\n\tsubscriptions: Subscriptions;\n\tworker: Signal<CannonWorkerAPI>;\n}\n\n@Directive({ selector: 'ng-template[physicsContent]', standalone: true })\nexport class NgtcPhysicsContent {\n\tstatic ngTemplateContextGuard(_: NgtcPhysicsContent, ctx: unknown): ctx is { $implicit: NgtcPhysicsApi } {\n\t\treturn true;\n\t}\n}\n\nconst defaultOptions: NgtcPhysicsInputs = {\n\tallowSleep: false,\n\taxisIndex: 0,\n\tbroadphase: 'Naive',\n\tdefaultContactMaterial: { contactEquationStiffness: 1e6 },\n\tfrictionGravity: null,\n\tgravity: [0, -9.81, 0],\n\tisPaused: false,\n\titerations: 5,\n\tmaxSubSteps: 10,\n\tquatNormalizeFast: false,\n\tquatNormalizeSkip: 0,\n\tshouldInvalidate: true,\n\tsize: 1000,\n\tsolver: 'GS',\n\tstepSize: 1 / 60,\n\ttolerance: 0.001,\n};\n\n@Component({\n\tselector: 'ngtc-physics',\n\tstandalone: true,\n\ttemplate: `\n\t\t<ng-container #anchor />\n\t`,\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tproviders: [providePhysicsApi()],\n})\nexport class NgtcPhysics {\n\tprivate zone = inject(NgZone);\n\tprivate injector = inject(Injector);\n\tprivate autoEffect = injectAutoEffect();\n\tprivate store = injectNgtStore();\n\n\toptions = input(defaultOptions, { transform: mergeInputs(defaultOptions) });\n\n\tprivate content = contentChild.required(NgtcPhysicsContent, { read: TemplateRef });\n\tprivate anchor = viewChild.required('anchor', { read: ViewContainerRef });\n\n\tprivate invalidate = this.store.select('invalidate');\n\tprivate worker = signal<CannonWorkerAPI>(null!);\n\n\tapi: NgtcPhysicsApi = {\n\t\tbodies: {},\n\t\tevents: {},\n\t\trefs: {},\n\t\tscaleOverrides: {},\n\t\tsubscriptions: {},\n\t\tworker: this.worker.asReadonly(),\n\t};\n\n\tprivate ref?: EmbeddedViewRef<{ $implicit: NgtcPhysicsApi }>;\n\n\tconstructor() {\n\t\tafterNextRender(() => {\n\t\t\tthis.zone.runOutsideAngular(() => {\n\t\t\t\tthis.worker.set(new CannonWorkerAPI(this.options()));\n\t\t\t\tthis.connectWorker();\n\t\t\t\tthis.renderContent();\n\t\t\t\tthis.updateWorkerState('axisIndex');\n\t\t\t\tthis.updateWorkerState('broadphase');\n\t\t\t\tthis.updateWorkerState('gravity');\n\t\t\t\tthis.updateWorkerState('iterations');\n\t\t\t\tthis.updateWorkerState('tolerance');\n\t\t\t\tthis.beforeRender();\n\t\t\t});\n\t\t});\n\n\t\tinject(DestroyRef).onDestroy(() => {\n\t\t\tthis.ref?.destroy();\n\t\t});\n\t}\n\n\tprivate connectWorker() {\n\t\tthis.autoEffect((injector) => {\n\t\t\tconst worker = this.worker() as CannonWorkerAPI & {\n\t\t\t\ton: (event: string, cb: (...args: any[]) => void) => void;\n\t\t\t\tremoveAllListeners: () => void;\n\t\t\t};\n\t\t\tif (!worker) return;\n\n\t\t\tworker.connect();\n\t\t\tworker.init();\n\n\t\t\tworker.on('collide', this.collideHandler.bind(this));\n\t\t\tworker.on('collideBegin', this.collideBeginHandler.bind(this));\n\t\t\tworker.on('collideEnd', this.collideEndHandler.bind(this));\n\t\t\tworker.on('frame', this.frameHandler.bind(this));\n\t\t\tworker.on('rayhit', this.rayhitHandler.bind(this));\n\n\t\t\treturn () => {\n\t\t\t\tthis.ref?.destroy();\n\t\t\t\tworker.terminate();\n\t\t\t\tworker.removeAllListeners();\n\t\t\t};\n\t\t});\n\t}\n\n\tprivate renderContent() {\n\t\tif (this.ref) this.ref.destroy();\n\t\tuntracked(() => {\n\t\t\tthis.ref = this.anchor().createEmbeddedView(this.content(), { $implicit: this.api }, { injector: this.injector });\n\t\t\tthis.ref.detectChanges();\n\t\t});\n\t}\n\n\tprivate updateWorkerState(key: keyof NgtcPhysicsInputs) {\n\t\tconst computedValue = computed(() => this.options()[key]);\n\n\t\tthis.autoEffect(() => {\n\t\t\tconst [worker, value] = [untracked(this.worker), computedValue()];\n\t\t\t// @ts-expect-error\n\t\t\tworker[key] = value;\n\t\t});\n\t}\n\n\tprivate beforeRender() {\n\t\tlet timeSinceLastCalled = 0;\n\t\tinjectBeforeRender(\n\t\t\t({ delta }) => {\n\t\t\t\tconst [{ isPaused, maxSubSteps, stepSize }, worker] = [this.options(), this.worker()];\n\t\t\t\tif (isPaused || !worker) return;\n\t\t\t\ttimeSinceLastCalled += delta;\n\t\t\t\tworker.step({ maxSubSteps, stepSize: stepSize!, timeSinceLastCalled });\n\t\t\t\ttimeSinceLastCalled = 0;\n\t\t\t},\n\t\t\t{ injector: this.injector },\n\t\t);\n\t}\n\n\tprivate collideHandler({ body, contact: { bi, bj, ...contactRest }, target, ...rest }: WorkerCollideEvent['data']) {\n\t\tconst { events, refs } = this.api;\n\t\tconst cb = events[target]?.collide;\n\t\tif (cb) {\n\t\t\tcb({ body: refs[body], contact: { bi: refs[bi], bj: refs[bj], ...contactRest }, target: refs[target], ...rest });\n\t\t}\n\t}\n\n\tprivate collideBeginHandler({ bodyA, bodyB }: WorkerCollideBeginEvent['data']) {\n\t\tconst { events, refs } = this.api;\n\t\tconst cbA = events[bodyA]?.collideBegin;\n\t\tif (cbA) cbA({ body: refs[bodyB], op: 'event', target: refs[bodyA], type: 'collideBegin' });\n\t\tconst cbB = events[bodyB]?.collideBegin;\n\t\tif (cbB) cbB({ body: refs[bodyA], op: 'event', target: refs[bodyB], type: 'collideBegin' });\n\t}\n\n\tprivate collideEndHandler({ bodyA, bodyB }: WorkerCollideEndEvent['data']) {\n\t\tconst { events, refs } = this.api;\n\t\tconst cbA = events[bodyA]?.collideEnd;\n\t\tif (cbA) cbA({ body: refs[bodyB], op: 'event', target: refs[bodyA], type: 'collideEnd' });\n\t\tconst cbB = events[bodyB]?.collideEnd;\n\t\tif (cbB) cbB({ body: refs[bodyA], op: 'event', target: refs[bodyB], type: 'collideEnd' });\n\t}\n\n\tprivate frameHandler({\n\t\tactive,\n\t\tbodies: uuids = [],\n\t\tobservations,\n\t\tpositions,\n\t\tquaternions,\n\t}: WorkerFrameMessage['data']) {\n\t\tconst [{ shouldInvalidate }, { bodies, subscriptions, refs, scaleOverrides }, invalidate] = [\n\t\t\tuntracked(this.options),\n\t\t\tthis.api,\n\t\t\tthis.invalidate(),\n\t\t];\n\t\tfor (let i = 0; i < uuids.length; i++) {\n\t\t\tbodies[uuids[i]] = i;\n\t\t}\n\t\tobservations.forEach(([id, value, type]) => {\n\t\t\tconst subscription = subscriptions[id] || {};\n\t\t\tconst cb = subscription[type];\n\t\t\t// @ts-expect-error - We clearly know the type of the callback, but typescript can't deal with it\n\t\t\tcb && cb(value);\n\t\t});\n\t\tif (!active) return;\n\t\tfor (const ref of Object.values(refs).filter(unique())) {\n\t\t\tif (ref instanceof InstancedMesh) {\n\t\t\t\tfor (let i = 0; i < ref.count; i++) {\n\t\t\t\t\tconst uuid = `${ref.uuid}/${i}`;\n\t\t\t\t\tconst index = bodies[uuid];\n\t\t\t\t\tif (index !== undefined) {\n\t\t\t\t\t\tref.setMatrixAt(i, apply(index, positions, quaternions, scaleOverrides[uuid]));\n\t\t\t\t\t\tref.instanceMatrix.needsUpdate = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tconst scale = scaleOverrides[ref.uuid] || ref.scale;\n\t\t\t\tapply(bodies[ref.uuid], positions, quaternions, scale, ref);\n\t\t\t}\n\t\t}\n\t\tif (shouldInvalidate) invalidate();\n\t}\n\n\tprivate rayhitHandler({ body, ray: { uuid, ...rayRest }, ...rest }: WorkerRayhitEvent['data']) {\n\t\tconst { events, refs } = this.api;\n\t\tconst cb = events[uuid]?.rayhit;\n\t\tif (cb) cb({ body: body ? refs[body] : null, ray: { uuid, ...rayRest }, ...rest });\n\t}\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "angular-three-cannon",
3
- "version": "2.0.0-beta.240",
3
+ "version": "2.0.0-beta.242",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },