piral-ng 0.15.0-alpha.4098 → 0.15.0-alpha.4257

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.
package/README.md CHANGED
@@ -319,6 +319,25 @@ export class SampleTileComponent {
319
319
  }
320
320
  ```
321
321
 
322
+ ## Dynamic Props
323
+
324
+ For `Props` there is also the possibility to use `@Input` for making them reactive, i.e., notify the Angular component when they changed.
325
+
326
+ ```ts
327
+ @Component({
328
+ template: `
329
+ <div class="tile">
330
+ <p>{{ props.rows }} rows and {{ props.columns }} columns</p>
331
+ </div>
332
+ `,
333
+ })
334
+ export class SampleTileComponent {
335
+ @Input('Props') public props: TileComponentProps<any>;
336
+
337
+ constructor() {}
338
+ }
339
+ ```
340
+
322
341
  ## Converting an Angular Application to a Pilet
323
342
 
324
343
  Depending on the kind of Angular application this may be rather straight forward or very difficult. Since we cannot discuss all possible edge cases we will assume the standard scenario. If you need more help then don't hesitate to contact us.
package/convert.js CHANGED
@@ -1,13 +1,10 @@
1
- "use strict";
2
- exports.__esModule = true;
3
- exports.defineNgModule = exports.NgExtension = exports.fromNg = exports.createNgConverter = void 0;
4
- var converter_1 = require("./esm/converter");
5
- function createNgConverter() {
1
+ import { createConverter } from './esm/converter';
2
+ export function createNgConverter() {
6
3
  var params = [];
7
4
  for (var _i = 0; _i < arguments.length; _i++) {
8
5
  params[_i] = arguments[_i];
9
6
  }
10
- var convert = converter_1.createConverter.apply(void 0, params);
7
+ var convert = createConverter.apply(void 0, params);
11
8
  var Extension = convert.Extension;
12
9
  var defineModule = convert.defineModule;
13
10
  var from = function (component) { return ({
@@ -16,8 +13,5 @@ function createNgConverter() {
16
13
  }); };
17
14
  return { from: from, Extension: Extension, defineModule: defineModule };
18
15
  }
19
- exports.createNgConverter = createNgConverter;
20
16
  var _a = createNgConverter(), fromNg = _a.from, NgExtension = _a.Extension, defineNgModule = _a.defineModule;
21
- exports.fromNg = fromNg;
22
- exports.NgExtension = NgExtension;
23
- exports.defineNgModule = defineNgModule;
17
+ export { fromNg, NgExtension, defineNgModule };
@@ -1,12 +1,13 @@
1
1
  import type { PiletApi } from 'piral-core';
2
2
  import * as ngCore from '@angular/core';
3
- import { ElementRef } from '@angular/core';
4
- export declare class NgExtension {
3
+ import { ElementRef, OnChanges } from '@angular/core';
4
+ export declare class NgExtension implements OnChanges {
5
5
  private elRef;
6
6
  private piral;
7
7
  name: string | undefined;
8
8
  params: object | undefined;
9
9
  constructor(elRef: ElementRef<HTMLElement>, piral: PiletApi);
10
+ ngOnChanges(): void;
10
11
  ngAfterContentInit(): void;
11
12
  static ɵfac: ngCore.ɵɵFactoryDeclaration<NgExtension, never>;
12
13
  static ɵcmp: ngCore.ɵɵComponentDeclaration<NgExtension, 'extension-component', never, {
@@ -9,6 +9,14 @@ let NgExtension = NgExtension_1 = class NgExtension {
9
9
  this.elRef = elRef;
10
10
  this.piral = piral;
11
11
  }
12
+ ngOnChanges() {
13
+ this.elRef.nativeElement.dispatchEvent(new CustomEvent('extension-props-changed', {
14
+ detail: {
15
+ name: this.name,
16
+ params: this.params,
17
+ },
18
+ }));
19
+ }
12
20
  ngAfterContentInit() {
13
21
  this.piral.renderHtmlExtension(this.elRef.nativeElement, {
14
22
  name: this.name,
@@ -1 +1 @@
1
- {"version":3,"file":"NgExtension.js","sourceRoot":"","sources":["../src/NgExtension.ts"],"names":[],"mappings":";;AACA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAErE,MAAM,GAAG,GAAG,MAAa,CAAC;AAC1B,MAAM,QAAQ,GAAG,qBAAqB,CAAC;AAMvC,IAAa,WAAW,mBAAxB,MAAa,WAAW;IAItB,YAAoB,KAA8B,EAA2B,KAAe;QAAxE,UAAK,GAAL,KAAK,CAAyB;QAA2B,UAAK,GAAL,KAAK,CAAU;IAAG,CAAC;IAEhG,kBAAkB;QAChB,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE;YACvD,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB,CAAC,CAAC;IACL,CAAC;CA6BF,CAAA;AA3BC,aAAa;AACN,gBAAI,GACT,mBAAmB,IAAI,GAAG;IACxB,CAAC,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,aAAW,CAAC,CAAC,GAAG,CAAC,iBAAiB,CAAC,UAAU,CAAC,EAAE,GAAG,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;IACvG,CAAC,CAAC,SAAU,CAAA;AAEhB,aAAa;AACN,gBAAI,GAST,mBAAmB,IAAI,GAAG;IACxB,CAAC,CAAC,GAAG,CAAC,iBAAiB,CAAC;QACpB,IAAI,EAAE,aAAW;QACjB,SAAS,EAAE,CAAC,QAAQ,CAAC;QACrB,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE;QAC1C,KAAK,EAAE,CAAC;QACR,IAAI,EAAE,CAAC;QACP,QAAQ,EAAE,GAAG,EAAE,GAAE,CAAC;QAClB,aAAa,EAAE,CAAC;KACjB,CAAC;IACJ,CAAC,CAAC,SAAU,CAAA;AAtCD;IAAd,KAAK,CAAC,MAAM,CAAC;;yCAAiC;AAC9B;IAAhB,KAAK,CAAC,QAAQ,CAAC;;2CAAmC;AAFxC,WAAW;IAJvB,SAAS,CAAC;QACT,QAAQ;QACR,QAAQ,EAAE,EAAE;KACb,CAAC;IAKqD,WAAA,MAAM,CAAC,OAAO,CAAC,CAAA;qCAAzC,UAAU;GAJ1B,WAAW,CAwCvB;SAxCY,WAAW;AA0CxB,IAAI,mBAAmB,IAAI,GAAG,EAAE;IAC9B,GAAG,CAAC,iBAAiB,CAAC,WAAW,EAAE;QACjC;YACE,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;SACnC;KACF,CAAC,CAAC;CACJ"}
1
+ {"version":3,"file":"NgExtension.js","sourceRoot":"","sources":["../src/NgExtension.ts"],"names":[],"mappings":";;AACA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAa,MAAM,eAAe,CAAC;AAEhF,MAAM,GAAG,GAAG,MAAa,CAAC;AAC1B,MAAM,QAAQ,GAAG,qBAAqB,CAAC;AAMvC,IAAa,WAAW,mBAAxB,MAAa,WAAW;IAItB,YAAoB,KAA8B,EAA2B,KAAe;QAAxE,UAAK,GAAL,KAAK,CAAyB;QAA2B,UAAK,GAAL,KAAK,CAAU;IAAG,CAAC;IAEhG,WAAW;QACT,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,aAAa,CACpC,IAAI,WAAW,CAAC,yBAAyB,EAAE;YACzC,MAAM,EAAE;gBACN,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,MAAM,EAAE,IAAI,CAAC,MAAM;aACpB;SACF,CAAC,CACH,CAAC;IACJ,CAAC;IAED,kBAAkB;QAChB,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE;YACvD,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB,CAAC,CAAC;IACL,CAAC;CA6BF,CAAA;AA3BC,aAAa;AACN,gBAAI,GACT,mBAAmB,IAAI,GAAG;IACxB,CAAC,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,aAAW,CAAC,CAAC,GAAG,CAAC,iBAAiB,CAAC,UAAU,CAAC,EAAE,GAAG,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;IACvG,CAAC,CAAC,SAAU,CAAA;AAEhB,aAAa;AACN,gBAAI,GAST,mBAAmB,IAAI,GAAG;IACxB,CAAC,CAAC,GAAG,CAAC,iBAAiB,CAAC;QACpB,IAAI,EAAE,aAAW;QACjB,SAAS,EAAE,CAAC,QAAQ,CAAC;QACrB,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE;QAC1C,KAAK,EAAE,CAAC;QACR,IAAI,EAAE,CAAC;QACP,QAAQ,EAAE,GAAG,EAAE,GAAE,CAAC;QAClB,aAAa,EAAE,CAAC;KACjB,CAAC;IACJ,CAAC,CAAC,SAAU,CAAA;AAjDD;IAAd,KAAK,CAAC,MAAM,CAAC;;yCAAiC;AAC9B;IAAhB,KAAK,CAAC,QAAQ,CAAC;;2CAAmC;AAFxC,WAAW;IAJvB,SAAS,CAAC;QACT,QAAQ;QACR,QAAQ,EAAE,EAAE;KACb,CAAC;IAKqD,WAAA,MAAM,CAAC,OAAO,CAAC,CAAA;qCAAzC,UAAU;GAJ1B,WAAW,CAmDvB;SAnDY,WAAW;AAqDxB,IAAI,mBAAmB,IAAI,GAAG,EAAE;IAC9B,GAAG,CAAC,iBAAiB,CAAC,WAAW,EAAE;QACjC;YACE,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;SACnC;KACF,CAAC,CAAC;CACJ"}
@@ -1,4 +1,5 @@
1
1
  import type { BaseComponentProps, ComponentContext, Disposable, PiletApi } from 'piral-core';
2
+ import type { BehaviorSubject } from 'rxjs';
2
3
  import type { PrepareBootstrapResult } from './types';
3
4
  export declare function prepareBootstrap(moduleOrComponent: any, piral: PiletApi): PrepareBootstrapResult;
4
- export declare function bootstrap<TProps extends BaseComponentProps>(result: PrepareBootstrapResult, node: HTMLElement, props: TProps, context: ComponentContext): Promise<Disposable>;
5
+ export declare function bootstrap<TProps extends BaseComponentProps>(result: PrepareBootstrapResult, node: HTMLElement, props: BehaviorSubject<TProps>, context: ComponentContext): Promise<Disposable>;
@@ -1 +1 @@
1
- {"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../src/bootstrap.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAEjF,MAAM,UAAU,gBAAgB,CAAC,iBAAsB,EAAE,KAAe;IACtE,MAAM,CAAC,UAAU,CAAC,GAAG,cAAc,CAAC,iBAAiB,CAAC,CAAC;IAEvD,iEAAiE;IACjE,4DAA4D;IAC5D,IAAI,UAAU,IAAI,UAAU,CAAC,SAAS,EAAE;QACtC,mEAAmE;QACnE,MAAM,CAAC,SAAS,CAAC,GAAG,UAAU,CAAC,SAAS,CAAC;QACzC,UAAU,CAAC,OAAO,GAAG,CAAC,SAAS,CAAC,CAAC;QACjC,YAAY,CAAC,iBAAiB,CAAC,CAAC;QAChC,OAAO,CAAC,GAAG,iBAAiB,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE,SAAS,CAAC,CAAC;KAC5D;SAAM;QACL,uFAAuF;QACvF,MAAM,MAAM,GAAG,iBAAiB,CAAC,iBAAiB,EAAE,KAAK,CAAC,IAAI,oBAAoB,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAC;QAC7G,OAAO,CAAC,GAAG,MAAM,EAAE,iBAAiB,CAAC,CAAC;KACvC;AACH,CAAC;AAED,MAAM,UAAgB,SAAS,CAC7B,MAA8B,EAC9B,IAAiB,EACjB,KAAa,EACb,OAAyB;;QAEzB,MAAM,CAAC,cAAc,EAAE,SAAS,EAAE,SAAS,CAAC,GAAG,MAAM,CAAC;QACtD,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,cAAc,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;QAE9D,IAAI,GAAG,EAAE;YACP,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;YAC5C,OAAO,GAAG,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;SACnD;QAED,OAAO,GAAG,EAAE,GAAE,CAAC,CAAC;IAClB,CAAC;CAAA"}
1
+ {"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../src/bootstrap.ts"],"names":[],"mappings":";AAGA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAEjF,MAAM,UAAU,gBAAgB,CAAC,iBAAsB,EAAE,KAAe;IACtE,MAAM,CAAC,UAAU,CAAC,GAAG,cAAc,CAAC,iBAAiB,CAAC,CAAC;IAEvD,iEAAiE;IACjE,4DAA4D;IAC5D,IAAI,UAAU,IAAI,UAAU,CAAC,SAAS,EAAE;QACtC,mEAAmE;QACnE,MAAM,CAAC,SAAS,CAAC,GAAG,UAAU,CAAC,SAAS,CAAC;QACzC,UAAU,CAAC,OAAO,GAAG,CAAC,SAAS,CAAC,CAAC;QACjC,YAAY,CAAC,iBAAiB,CAAC,CAAC;QAChC,OAAO,CAAC,GAAG,iBAAiB,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE,SAAS,CAAC,CAAC;KAC5D;SAAM;QACL,uFAAuF;QACvF,MAAM,MAAM,GAAG,iBAAiB,CAAC,iBAAiB,EAAE,KAAK,CAAC,IAAI,oBAAoB,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAC;QAC7G,OAAO,CAAC,GAAG,MAAM,EAAE,iBAAiB,CAAC,CAAC;KACvC;AACH,CAAC;AAED,MAAM,UAAgB,SAAS,CAC7B,MAA8B,EAC9B,IAAiB,EACjB,KAA8B,EAC9B,OAAyB;;QAEzB,MAAM,CAAC,cAAc,EAAE,SAAS,EAAE,SAAS,CAAC,GAAG,MAAM,CAAC;QACtD,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,cAAc,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;QAE9D,IAAI,GAAG,EAAE;YACP,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;YAC5C,OAAO,GAAG,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;SACnD;QAED,OAAO,GAAG,EAAE,GAAE,CAAC,CAAC;IAClB,CAAC;CAAA"}
package/esm/converter.js CHANGED
@@ -1,3 +1,4 @@
1
+ import { BehaviorSubject } from 'rxjs';
1
2
  import { NgExtension } from './NgExtension';
2
3
  import { enqueue } from './queue';
3
4
  import { defineModule } from './module';
@@ -10,10 +11,16 @@ export function createConverter(_ = {}) {
10
11
  if (!registry.has(component)) {
11
12
  registry.set(component, prepareBootstrap(component, props.piral));
12
13
  }
14
+ if (!locals.props) {
15
+ locals.props = new BehaviorSubject(props);
16
+ }
13
17
  if (!locals.queued) {
14
18
  locals.queued = Promise.resolve();
15
19
  }
16
- locals.queued = locals.queued.then(() => enqueue(() => locals.active && bootstrap(registry.get(component), el, props, ctx)));
20
+ locals.queued = locals.queued.then(() => enqueue(() => locals.active && bootstrap(registry.get(component), el, locals.props, ctx)));
21
+ },
22
+ update(el, props, ctx, locals) {
23
+ locals.props.next(props);
17
24
  },
18
25
  unmount(el, locals) {
19
26
  locals.active = false;
@@ -1 +1 @@
1
- {"version":3,"file":"converter.js","sourceRoot":"","sources":["../src/converter.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAe1D,MAAM,UAAU,eAAe,CAAC,IAAwB,EAAE;IACxD,MAAM,QAAQ,GAAG,IAAI,GAAG,EAA+B,CAAC;IACxD,MAAM,OAAO,GAAG,CAAoC,SAAc,EAA4B,EAAE,CAAC,CAAC;QAChG,KAAK,CAAC,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,MAAe;YACnC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC;YAErB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;gBAC5B,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,gBAAgB,CAAC,SAAS,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;aACnE;YAED,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;gBAClB,MAAM,CAAC,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;aACnC;YAED,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CACtC,OAAO,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,IAAI,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,CACnF,CAAC;QACJ,CAAC;QACD,OAAO,CAAC,EAAE,EAAE,MAAe;YACzB,MAAM,CAAC,MAAM,GAAG,KAAK,CAAC;YACtB,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,IAAI,OAAO,EAAE,CAAC,CAAC;QACxE,CAAC;KACF,CAAC,CAAC;IACH,OAAO,CAAC,YAAY,GAAG,YAAY,CAAC;IACpC,OAAO,CAAC,SAAS,GAAG,WAAW,CAAC;IAChC,OAAO,OAAO,CAAC;AACjB,CAAC"}
1
+ {"version":3,"file":"converter.js","sourceRoot":"","sources":["../src/converter.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,MAAM,CAAC;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAgB1D,MAAM,UAAU,eAAe,CAAC,IAAwB,EAAE;IACxD,MAAM,QAAQ,GAAG,IAAI,GAAG,EAA+B,CAAC;IACxD,MAAM,OAAO,GAAG,CAAoC,SAAc,EAA4B,EAAE,CAAC,CAAC;QAChG,KAAK,CAAC,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,MAAuB;YAC3C,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC;YAErB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;gBAC5B,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,gBAAgB,CAAC,SAAS,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;aACnE;YAED,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE;gBACjB,MAAM,CAAC,KAAK,GAAG,IAAI,eAAe,CAAC,KAAK,CAAC,CAAC;aAC3C;YAED,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;gBAClB,MAAM,CAAC,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;aACnC;YAED,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CACtC,OAAO,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,IAAI,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAC1F,CAAC;QACJ,CAAC;QACD,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,MAAuB;YAC5C,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC3B,CAAC;QACD,OAAO,CAAC,EAAE,EAAE,MAAuB;YACjC,MAAM,CAAC,MAAM,GAAG,KAAK,CAAC;YACtB,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,IAAI,OAAO,EAAE,CAAC,CAAC;QACxE,CAAC;KACF,CAAC,CAAC;IACH,OAAO,CAAC,YAAY,GAAG,YAAY,CAAC;IACpC,OAAO,CAAC,SAAS,GAAG,WAAW,CAAC;IAChC,OAAO,OAAO,CAAC;AACjB,CAAC"}
package/esm/module.js CHANGED
@@ -15,7 +15,7 @@ function instantiateModule(moduleDef, piral) {
15
15
  const props = { current: undefined };
16
16
  const providers = [
17
17
  RoutingService,
18
- { provide: 'Props', useFactory: () => props.current, deps: [] },
18
+ { provide: 'Props', useFactory: () => props.current.value, deps: [] },
19
19
  { provide: 'piral', useFactory: () => piral, deps: [] },
20
20
  ];
21
21
  let BootstrapModule = BootstrapModule_1 = class BootstrapModule {
@@ -29,10 +29,20 @@ function instantiateModule(moduleDef, piral) {
29
29
  this.appRef = appRef;
30
30
  }
31
31
  attach(component, node, $props) {
32
+ var _a, _b, _c;
32
33
  const factory = this.resolver.resolveComponentFactory(component);
33
34
  props.current = $props;
34
35
  if (factory) {
35
36
  const ref = this.zone.run(() => this.appRef.bootstrap(factory, node));
37
+ const name = (_c = (_b = (_a = ref.componentType) === null || _a === void 0 ? void 0 : _a.ɵcmp) === null || _b === void 0 ? void 0 : _b.inputs) === null || _c === void 0 ? void 0 : _c.Props;
38
+ if (typeof name === 'string') {
39
+ const sub = $props.subscribe((props) => {
40
+ var _a;
41
+ ref.instance[name] = props;
42
+ (_a = ref.changeDetectorRef) === null || _a === void 0 ? void 0 : _a.detectChanges();
43
+ });
44
+ ref.onDestroy(() => sub.unsubscribe());
45
+ }
36
46
  this.refs.push([component, node, ref]);
37
47
  }
38
48
  }
package/esm/module.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"module.js","sourceRoot":"","sources":["../src/module.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"module.js","sourceRoot":"","sources":["../src/module.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,13 @@
1
1
  import type { PiletApi } from 'piral-core';
2
2
  import * as ngCore from '@angular/core';
3
- import { ElementRef } from '@angular/core';
4
- export declare class NgExtension {
3
+ import { ElementRef, OnChanges } from '@angular/core';
4
+ export declare class NgExtension implements OnChanges {
5
5
  private elRef;
6
6
  private piral;
7
7
  name: string | undefined;
8
8
  params: object | undefined;
9
9
  constructor(elRef: ElementRef<HTMLElement>, piral: PiletApi);
10
+ ngOnChanges(): void;
10
11
  ngAfterContentInit(): void;
11
12
  static ɵfac: ngCore.ɵɵFactoryDeclaration<NgExtension, never>;
12
13
  static ɵcmp: ngCore.ɵɵComponentDeclaration<NgExtension, 'extension-component', never, {
@@ -12,6 +12,14 @@ let NgExtension = NgExtension_1 = class NgExtension {
12
12
  this.elRef = elRef;
13
13
  this.piral = piral;
14
14
  }
15
+ ngOnChanges() {
16
+ this.elRef.nativeElement.dispatchEvent(new CustomEvent('extension-props-changed', {
17
+ detail: {
18
+ name: this.name,
19
+ params: this.params,
20
+ },
21
+ }));
22
+ }
15
23
  ngAfterContentInit() {
16
24
  this.piral.renderHtmlExtension(this.elRef.nativeElement, {
17
25
  name: this.name,
@@ -1 +1 @@
1
- {"version":3,"file":"NgExtension.js","sourceRoot":"","sources":["../src/NgExtension.ts"],"names":[],"mappings":";;;;;AACA,wCAAwC;AACxC,wCAAqE;AAErE,MAAM,GAAG,GAAG,MAAa,CAAC;AAC1B,MAAM,QAAQ,GAAG,qBAAqB,CAAC;AAMvC,IAAa,WAAW,mBAAxB,MAAa,WAAW;IAItB,YAAoB,KAA8B,EAA2B,KAAe;QAAxE,UAAK,GAAL,KAAK,CAAyB;QAA2B,UAAK,GAAL,KAAK,CAAU;IAAG,CAAC;IAEhG,kBAAkB;QAChB,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE;YACvD,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB,CAAC,CAAC;IACL,CAAC;CA6BF,CAAA;AA3BC,aAAa;AACN,gBAAI,GACT,mBAAmB,IAAI,GAAG;IACxB,CAAC,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,aAAW,CAAC,CAAC,GAAG,CAAC,iBAAiB,CAAC,iBAAU,CAAC,EAAE,GAAG,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;IACvG,CAAC,CAAC,SAAU,CAAA;AAEhB,aAAa;AACN,gBAAI,GAST,mBAAmB,IAAI,GAAG;IACxB,CAAC,CAAC,GAAG,CAAC,iBAAiB,CAAC;QACpB,IAAI,EAAE,aAAW;QACjB,SAAS,EAAE,CAAC,QAAQ,CAAC;QACrB,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE;QAC1C,KAAK,EAAE,CAAC;QACR,IAAI,EAAE,CAAC;QACP,QAAQ,EAAE,GAAG,EAAE,GAAE,CAAC;QAClB,aAAa,EAAE,CAAC;KACjB,CAAC;IACJ,CAAC,CAAC,SAAU,CAAA;AAtCD;IAAd,IAAA,YAAK,EAAC,MAAM,CAAC;;yCAAiC;AAC9B;IAAhB,IAAA,YAAK,EAAC,QAAQ,CAAC;;2CAAmC;AAFxC,WAAW;IAJvB,IAAA,gBAAS,EAAC;QACT,QAAQ;QACR,QAAQ,EAAE,EAAE;KACb,CAAC;IAKqD,mBAAA,IAAA,aAAM,EAAC,OAAO,CAAC,CAAA;6CAAzC,iBAAU;GAJ1B,WAAW,CAwCvB;AAxCY,kCAAW;AA0CxB,IAAI,mBAAmB,IAAI,GAAG,EAAE;IAC9B,GAAG,CAAC,iBAAiB,CAAC,WAAW,EAAE;QACjC;YACE,IAAI,EAAE,gBAAS;YACf,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;SACnC;KACF,CAAC,CAAC;CACJ"}
1
+ {"version":3,"file":"NgExtension.js","sourceRoot":"","sources":["../src/NgExtension.ts"],"names":[],"mappings":";;;;;AACA,wCAAwC;AACxC,wCAAgF;AAEhF,MAAM,GAAG,GAAG,MAAa,CAAC;AAC1B,MAAM,QAAQ,GAAG,qBAAqB,CAAC;AAMvC,IAAa,WAAW,mBAAxB,MAAa,WAAW;IAItB,YAAoB,KAA8B,EAA2B,KAAe;QAAxE,UAAK,GAAL,KAAK,CAAyB;QAA2B,UAAK,GAAL,KAAK,CAAU;IAAG,CAAC;IAEhG,WAAW;QACT,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,aAAa,CACpC,IAAI,WAAW,CAAC,yBAAyB,EAAE;YACzC,MAAM,EAAE;gBACN,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,MAAM,EAAE,IAAI,CAAC,MAAM;aACpB;SACF,CAAC,CACH,CAAC;IACJ,CAAC;IAED,kBAAkB;QAChB,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE;YACvD,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB,CAAC,CAAC;IACL,CAAC;CA6BF,CAAA;AA3BC,aAAa;AACN,gBAAI,GACT,mBAAmB,IAAI,GAAG;IACxB,CAAC,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,aAAW,CAAC,CAAC,GAAG,CAAC,iBAAiB,CAAC,iBAAU,CAAC,EAAE,GAAG,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;IACvG,CAAC,CAAC,SAAU,CAAA;AAEhB,aAAa;AACN,gBAAI,GAST,mBAAmB,IAAI,GAAG;IACxB,CAAC,CAAC,GAAG,CAAC,iBAAiB,CAAC;QACpB,IAAI,EAAE,aAAW;QACjB,SAAS,EAAE,CAAC,QAAQ,CAAC;QACrB,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE;QAC1C,KAAK,EAAE,CAAC;QACR,IAAI,EAAE,CAAC;QACP,QAAQ,EAAE,GAAG,EAAE,GAAE,CAAC;QAClB,aAAa,EAAE,CAAC;KACjB,CAAC;IACJ,CAAC,CAAC,SAAU,CAAA;AAjDD;IAAd,IAAA,YAAK,EAAC,MAAM,CAAC;;yCAAiC;AAC9B;IAAhB,IAAA,YAAK,EAAC,QAAQ,CAAC;;2CAAmC;AAFxC,WAAW;IAJvB,IAAA,gBAAS,EAAC;QACT,QAAQ;QACR,QAAQ,EAAE,EAAE;KACb,CAAC;IAKqD,mBAAA,IAAA,aAAM,EAAC,OAAO,CAAC,CAAA;6CAAzC,iBAAU;GAJ1B,WAAW,CAmDvB;AAnDY,kCAAW;AAqDxB,IAAI,mBAAmB,IAAI,GAAG,EAAE;IAC9B,GAAG,CAAC,iBAAiB,CAAC,WAAW,EAAE;QACjC;YACE,IAAI,EAAE,gBAAS;YACf,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;SACnC;KACF,CAAC,CAAC;CACJ"}
@@ -1,4 +1,5 @@
1
1
  import type { BaseComponentProps, ComponentContext, Disposable, PiletApi } from 'piral-core';
2
+ import type { BehaviorSubject } from 'rxjs';
2
3
  import type { PrepareBootstrapResult } from './types';
3
4
  export declare function prepareBootstrap(moduleOrComponent: any, piral: PiletApi): PrepareBootstrapResult;
4
- export declare function bootstrap<TProps extends BaseComponentProps>(result: PrepareBootstrapResult, node: HTMLElement, props: TProps, context: ComponentContext): Promise<Disposable>;
5
+ export declare function bootstrap<TProps extends BaseComponentProps>(result: PrepareBootstrapResult, node: HTMLElement, props: BehaviorSubject<TProps>, context: ComponentContext): Promise<Disposable>;
@@ -1 +1 @@
1
- {"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../src/bootstrap.ts"],"names":[],"mappings":";;;;AAEA,uCAAoC;AACpC,mCAAyC;AACzC,qCAAiF;AAEjF,SAAgB,gBAAgB,CAAC,iBAAsB,EAAE,KAAe;IACtE,MAAM,CAAC,UAAU,CAAC,GAAG,IAAA,sBAAc,EAAC,iBAAiB,CAAC,CAAC;IAEvD,iEAAiE;IACjE,4DAA4D;IAC5D,IAAI,UAAU,IAAI,UAAU,CAAC,SAAS,EAAE;QACtC,mEAAmE;QACnE,MAAM,CAAC,SAAS,CAAC,GAAG,UAAU,CAAC,SAAS,CAAC;QACzC,UAAU,CAAC,OAAO,GAAG,CAAC,SAAS,CAAC,CAAC;QACjC,IAAA,qBAAY,EAAC,iBAAiB,CAAC,CAAC;QAChC,OAAO,CAAC,GAAG,IAAA,0BAAiB,EAAC,SAAS,EAAE,KAAK,CAAC,EAAE,SAAS,CAAC,CAAC;KAC5D;SAAM;QACL,uFAAuF;QACvF,MAAM,MAAM,GAAG,IAAA,0BAAiB,EAAC,iBAAiB,EAAE,KAAK,CAAC,IAAI,IAAA,6BAAoB,EAAC,iBAAiB,EAAE,KAAK,CAAC,CAAC;QAC7G,OAAO,CAAC,GAAG,MAAM,EAAE,iBAAiB,CAAC,CAAC;KACvC;AACH,CAAC;AAhBD,4CAgBC;AAED,SAAsB,SAAS,CAC7B,MAA8B,EAC9B,IAAiB,EACjB,KAAa,EACb,OAAyB;;QAEzB,MAAM,CAAC,cAAc,EAAE,SAAS,EAAE,SAAS,CAAC,GAAG,MAAM,CAAC;QACtD,MAAM,GAAG,GAAG,MAAM,IAAA,iBAAO,EAAC,cAAc,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;QAE9D,IAAI,GAAG,EAAE;YACP,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;YAC5C,OAAO,GAAG,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;SACnD;QAED,OAAO,GAAG,EAAE,GAAE,CAAC,CAAC;IAClB,CAAC;CAAA;AAfD,8BAeC"}
1
+ {"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../src/bootstrap.ts"],"names":[],"mappings":";;;;AAGA,uCAAoC;AACpC,mCAAyC;AACzC,qCAAiF;AAEjF,SAAgB,gBAAgB,CAAC,iBAAsB,EAAE,KAAe;IACtE,MAAM,CAAC,UAAU,CAAC,GAAG,IAAA,sBAAc,EAAC,iBAAiB,CAAC,CAAC;IAEvD,iEAAiE;IACjE,4DAA4D;IAC5D,IAAI,UAAU,IAAI,UAAU,CAAC,SAAS,EAAE;QACtC,mEAAmE;QACnE,MAAM,CAAC,SAAS,CAAC,GAAG,UAAU,CAAC,SAAS,CAAC;QACzC,UAAU,CAAC,OAAO,GAAG,CAAC,SAAS,CAAC,CAAC;QACjC,IAAA,qBAAY,EAAC,iBAAiB,CAAC,CAAC;QAChC,OAAO,CAAC,GAAG,IAAA,0BAAiB,EAAC,SAAS,EAAE,KAAK,CAAC,EAAE,SAAS,CAAC,CAAC;KAC5D;SAAM;QACL,uFAAuF;QACvF,MAAM,MAAM,GAAG,IAAA,0BAAiB,EAAC,iBAAiB,EAAE,KAAK,CAAC,IAAI,IAAA,6BAAoB,EAAC,iBAAiB,EAAE,KAAK,CAAC,CAAC;QAC7G,OAAO,CAAC,GAAG,MAAM,EAAE,iBAAiB,CAAC,CAAC;KACvC;AACH,CAAC;AAhBD,4CAgBC;AAED,SAAsB,SAAS,CAC7B,MAA8B,EAC9B,IAAiB,EACjB,KAA8B,EAC9B,OAAyB;;QAEzB,MAAM,CAAC,cAAc,EAAE,SAAS,EAAE,SAAS,CAAC,GAAG,MAAM,CAAC;QACtD,MAAM,GAAG,GAAG,MAAM,IAAA,iBAAO,EAAC,cAAc,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;QAE9D,IAAI,GAAG,EAAE;YACP,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;YAC5C,OAAO,GAAG,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;SACnD;QAED,OAAO,GAAG,EAAE,GAAE,CAAC,CAAC;IAClB,CAAC;CAAA;AAfD,8BAeC"}
package/lib/converter.js CHANGED
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.createConverter = void 0;
4
+ const rxjs_1 = require("rxjs");
4
5
  const NgExtension_1 = require("./NgExtension");
5
6
  const queue_1 = require("./queue");
6
7
  const module_1 = require("./module");
@@ -13,10 +14,16 @@ function createConverter(_ = {}) {
13
14
  if (!registry.has(component)) {
14
15
  registry.set(component, (0, bootstrap_1.prepareBootstrap)(component, props.piral));
15
16
  }
17
+ if (!locals.props) {
18
+ locals.props = new rxjs_1.BehaviorSubject(props);
19
+ }
16
20
  if (!locals.queued) {
17
21
  locals.queued = Promise.resolve();
18
22
  }
19
- locals.queued = locals.queued.then(() => (0, queue_1.enqueue)(() => locals.active && (0, bootstrap_1.bootstrap)(registry.get(component), el, props, ctx)));
23
+ locals.queued = locals.queued.then(() => (0, queue_1.enqueue)(() => locals.active && (0, bootstrap_1.bootstrap)(registry.get(component), el, locals.props, ctx)));
24
+ },
25
+ update(el, props, ctx, locals) {
26
+ locals.props.next(props);
20
27
  },
21
28
  unmount(el, locals) {
22
29
  locals.active = false;
@@ -1 +1 @@
1
- {"version":3,"file":"converter.js","sourceRoot":"","sources":["../src/converter.ts"],"names":[],"mappings":";;;AAEA,+CAA4C;AAC5C,mCAAkC;AAClC,qCAAwC;AACxC,2CAA0D;AAe1D,SAAgB,eAAe,CAAC,IAAwB,EAAE;IACxD,MAAM,QAAQ,GAAG,IAAI,GAAG,EAA+B,CAAC;IACxD,MAAM,OAAO,GAAG,CAAoC,SAAc,EAA4B,EAAE,CAAC,CAAC;QAChG,KAAK,CAAC,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,MAAe;YACnC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC;YAErB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;gBAC5B,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,IAAA,4BAAgB,EAAC,SAAS,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;aACnE;YAED,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;gBAClB,MAAM,CAAC,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;aACnC;YAED,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CACtC,IAAA,eAAO,EAAC,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,IAAI,IAAA,qBAAS,EAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,CACnF,CAAC;QACJ,CAAC;QACD,OAAO,CAAC,EAAE,EAAE,MAAe;YACzB,MAAM,CAAC,MAAM,GAAG,KAAK,CAAC;YACtB,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,IAAI,OAAO,EAAE,CAAC,CAAC;QACxE,CAAC;KACF,CAAC,CAAC;IACH,OAAO,CAAC,YAAY,GAAG,qBAAY,CAAC;IACpC,OAAO,CAAC,SAAS,GAAG,yBAAW,CAAC;IAChC,OAAO,OAAO,CAAC;AACjB,CAAC;AA1BD,0CA0BC"}
1
+ {"version":3,"file":"converter.js","sourceRoot":"","sources":["../src/converter.ts"],"names":[],"mappings":";;;AAEA,+BAAuC;AACvC,+CAA4C;AAC5C,mCAAkC;AAClC,qCAAwC;AACxC,2CAA0D;AAgB1D,SAAgB,eAAe,CAAC,IAAwB,EAAE;IACxD,MAAM,QAAQ,GAAG,IAAI,GAAG,EAA+B,CAAC;IACxD,MAAM,OAAO,GAAG,CAAoC,SAAc,EAA4B,EAAE,CAAC,CAAC;QAChG,KAAK,CAAC,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,MAAuB;YAC3C,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC;YAErB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;gBAC5B,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,IAAA,4BAAgB,EAAC,SAAS,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;aACnE;YAED,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE;gBACjB,MAAM,CAAC,KAAK,GAAG,IAAI,sBAAe,CAAC,KAAK,CAAC,CAAC;aAC3C;YAED,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;gBAClB,MAAM,CAAC,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;aACnC;YAED,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CACtC,IAAA,eAAO,EAAC,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,IAAI,IAAA,qBAAS,EAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAC1F,CAAC;QACJ,CAAC;QACD,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,MAAuB;YAC5C,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC3B,CAAC;QACD,OAAO,CAAC,EAAE,EAAE,MAAuB;YACjC,MAAM,CAAC,MAAM,GAAG,KAAK,CAAC;YACtB,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,IAAI,OAAO,EAAE,CAAC,CAAC;QACxE,CAAC;KACF,CAAC,CAAC;IACH,OAAO,CAAC,YAAY,GAAG,qBAAY,CAAC;IACpC,OAAO,CAAC,SAAS,GAAG,yBAAW,CAAC;IAChC,OAAO,OAAO,CAAC;AACjB,CAAC;AAjCD,0CAiCC"}
package/lib/module.js CHANGED
@@ -18,7 +18,7 @@ function instantiateModule(moduleDef, piral) {
18
18
  const props = { current: undefined };
19
19
  const providers = [
20
20
  RoutingService_1.RoutingService,
21
- { provide: 'Props', useFactory: () => props.current, deps: [] },
21
+ { provide: 'Props', useFactory: () => props.current.value, deps: [] },
22
22
  { provide: 'piral', useFactory: () => piral, deps: [] },
23
23
  ];
24
24
  let BootstrapModule = BootstrapModule_1 = class BootstrapModule {
@@ -32,10 +32,20 @@ function instantiateModule(moduleDef, piral) {
32
32
  this.appRef = appRef;
33
33
  }
34
34
  attach(component, node, $props) {
35
+ var _a, _b, _c;
35
36
  const factory = this.resolver.resolveComponentFactory(component);
36
37
  props.current = $props;
37
38
  if (factory) {
38
39
  const ref = this.zone.run(() => this.appRef.bootstrap(factory, node));
40
+ const name = (_c = (_b = (_a = ref.componentType) === null || _a === void 0 ? void 0 : _a.ɵcmp) === null || _b === void 0 ? void 0 : _b.inputs) === null || _c === void 0 ? void 0 : _c.Props;
41
+ if (typeof name === 'string') {
42
+ const sub = $props.subscribe((props) => {
43
+ var _a;
44
+ ref.instance[name] = props;
45
+ (_a = ref.changeDetectorRef) === null || _a === void 0 ? void 0 : _a.detectChanges();
46
+ });
47
+ ref.onDestroy(() => sub.unsubscribe());
48
+ }
39
49
  this.refs.push([component, node, ref]);
40
50
  }
41
51
  }
package/lib/module.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"module.js","sourceRoot":"","sources":["../src/module.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"module.js","sourceRoot":"","sources":["../src/module.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "piral-ng",
3
- "version": "0.15.0-alpha.4098",
3
+ "version": "0.15.0-alpha.4257",
4
4
  "description": "Plugin for integrating Angular components in Piral.",
5
5
  "keywords": [
6
6
  "piral",
@@ -19,6 +19,28 @@
19
19
  "module": "esm/index.js",
20
20
  "main": "lib/index.js",
21
21
  "typings": "lib/index.d.ts",
22
+ "exports": {
23
+ ".": {
24
+ "import": "./esm/index.js",
25
+ "require": "./lib/index.js"
26
+ },
27
+ "./common": {
28
+ "import": "./common.js"
29
+ },
30
+ "./convert": {
31
+ "import": "./convert.js"
32
+ },
33
+ "./extend-webpack": {
34
+ "require": "./extend-webpack.js"
35
+ },
36
+ "./esm/*": {
37
+ "import": "./esm/*"
38
+ },
39
+ "./lib/*": {
40
+ "require": "./lib/*"
41
+ },
42
+ "./package.json": "./package.json"
43
+ },
22
44
  "sideEffects": false,
23
45
  "files": [
24
46
  "esm",
@@ -40,7 +62,7 @@
40
62
  "scripts": {
41
63
  "cleanup": "rimraf esm lib convert.d.ts convert.js",
42
64
  "build": "yarn build:commonjs && yarn build:esnext && yarn build:convert",
43
- "build:convert": "tsc convert.ts --skipLibCheck --declaration",
65
+ "build:convert": "tsc convert.ts --skipLibCheck --declaration --module esnext",
44
66
  "build:commonjs": "tsc --project tsconfig.json --outDir lib --module commonjs",
45
67
  "build:esnext": "tsc --project tsconfig.json --outDir esm --module esnext",
46
68
  "typedoc": "typedoc --json ../../../docs/types/piral-ng.json src --exclude \"src/**/*.test.*\"",
@@ -53,7 +75,7 @@
53
75
  "@angular/platform-browser": "^8.0.0",
54
76
  "@angular/platform-browser-dynamic": "^8.0.0",
55
77
  "@angular/router": "^8.0.0",
56
- "piral-core": "0.15.0-alpha.4098",
78
+ "piral-core": "0.15.0-alpha.4257",
57
79
  "rxjs": "^7.3.0"
58
80
  },
59
81
  "peerDependencies": {
@@ -64,5 +86,5 @@
64
86
  "@angular/router": "^2.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 || ^9.0.0 || ^10.0.0 || ^11.0.0 || ^12.0.0 || ^13.0.0",
65
87
  "rxjs": "^5.0.0 || ^6.0.0 || ^7.0.0"
66
88
  },
67
- "gitHead": "02ef35574b29cc5dd93c515bfdf27dd523893b28"
89
+ "gitHead": "61f4ebc7b6c7cea553e2159b075cb761216f8e85"
68
90
  }
@@ -1,6 +1,6 @@
1
1
  import type { PiletApi } from 'piral-core';
2
2
  import * as ngCore from '@angular/core';
3
- import { Component, ElementRef, Input, Inject } from '@angular/core';
3
+ import { Component, ElementRef, Input, Inject, OnChanges } from '@angular/core';
4
4
 
5
5
  const ngc = ngCore as any;
6
6
  const selector = 'extension-component';
@@ -9,12 +9,23 @@ const selector = 'extension-component';
9
9
  selector,
10
10
  template: '',
11
11
  })
12
- export class NgExtension {
12
+ export class NgExtension implements OnChanges {
13
13
  @Input('name') public name: string | undefined;
14
14
  @Input('params') public params: object | undefined;
15
15
 
16
16
  constructor(private elRef: ElementRef<HTMLElement>, @Inject('piral') private piral: PiletApi) {}
17
17
 
18
+ ngOnChanges() {
19
+ this.elRef.nativeElement.dispatchEvent(
20
+ new CustomEvent('extension-props-changed', {
21
+ detail: {
22
+ name: this.name,
23
+ params: this.params,
24
+ },
25
+ }),
26
+ );
27
+ }
28
+
18
29
  ngAfterContentInit() {
19
30
  this.piral.renderHtmlExtension(this.elRef.nativeElement, {
20
31
  name: this.name,
package/src/bootstrap.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  import type { BaseComponentProps, ComponentContext, Disposable, PiletApi } from 'piral-core';
2
+ import type { BehaviorSubject } from 'rxjs';
2
3
  import type { PrepareBootstrapResult } from './types';
3
4
  import { startup } from './startup';
4
5
  import { getAnnotations } from './utils';
@@ -25,7 +26,7 @@ export function prepareBootstrap(moduleOrComponent: any, piral: PiletApi): Prepa
25
26
  export async function bootstrap<TProps extends BaseComponentProps>(
26
27
  result: PrepareBootstrapResult,
27
28
  node: HTMLElement,
28
- props: TProps,
29
+ props: BehaviorSubject<TProps>,
29
30
  context: ComponentContext,
30
31
  ): Promise<Disposable> {
31
32
  const [selectedModule, ngOptions, component] = result;
package/src/converter.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  import type { ForeignComponent, BaseComponentProps, Disposable } from 'piral-core';
2
2
  import type { NgModuleDefiner, PrepareBootstrapResult } from './types';
3
+ import { BehaviorSubject } from 'rxjs';
3
4
  import { NgExtension } from './NgExtension';
4
5
  import { enqueue } from './queue';
5
6
  import { defineModule } from './module';
@@ -13,30 +14,38 @@ export interface NgConverter {
13
14
  Extension: any;
14
15
  }
15
16
 
16
- interface NgState {
17
+ interface NgState<TProps> {
17
18
  queued: Promise<void | Disposable>;
19
+ props: BehaviorSubject<TProps>;
18
20
  active: boolean;
19
21
  }
20
22
 
21
23
  export function createConverter(_: NgConverterOptions = {}): NgConverter {
22
24
  const registry = new Map<any, PrepareBootstrapResult>();
23
25
  const convert = <TProps extends BaseComponentProps>(component: any): ForeignComponent<TProps> => ({
24
- mount(el, props, ctx, locals: NgState) {
26
+ mount(el, props, ctx, locals: NgState<TProps>) {
25
27
  locals.active = true;
26
28
 
27
29
  if (!registry.has(component)) {
28
30
  registry.set(component, prepareBootstrap(component, props.piral));
29
31
  }
30
32
 
33
+ if (!locals.props) {
34
+ locals.props = new BehaviorSubject(props);
35
+ }
36
+
31
37
  if (!locals.queued) {
32
38
  locals.queued = Promise.resolve();
33
39
  }
34
40
 
35
41
  locals.queued = locals.queued.then(() =>
36
- enqueue(() => locals.active && bootstrap(registry.get(component), el, props, ctx)),
42
+ enqueue(() => locals.active && bootstrap(registry.get(component), el, locals.props, ctx)),
37
43
  );
38
44
  },
39
- unmount(el, locals: NgState) {
45
+ update(el, props, ctx, locals: NgState<TProps>) {
46
+ locals.props.next(props);
47
+ },
48
+ unmount(el, locals: NgState<TProps>) {
40
49
  locals.active = false;
41
50
  locals.queued = locals.queued.then((dispose) => dispose && dispose());
42
51
  },
package/src/module.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  import type { PiletApi } from 'piral-core';
2
+ import type { BehaviorSubject } from 'rxjs';
2
3
  import type { NgOptions, ModuleInstanceResult } from './types';
3
4
  import * as ngCore from '@angular/core';
4
5
  import { BrowserModule } from '@angular/platform-browser';
@@ -29,10 +30,10 @@ const availableModules: Array<ModuleDefinition> = [];
29
30
  function instantiateModule(moduleDef: ModuleDefinition, piral: PiletApi) {
30
31
  const { module, components } = moduleDef;
31
32
  const imports = [BrowserModule, SharedModule, module];
32
- const props = { current: undefined };
33
+ const props = { current: undefined as BehaviorSubject<any> };
33
34
  const providers = [
34
35
  RoutingService,
35
- { provide: 'Props', useFactory: () => props.current, deps: [] },
36
+ { provide: 'Props', useFactory: () => props.current.value, deps: [] },
36
37
  { provide: 'piral', useFactory: () => piral, deps: [] },
37
38
  ];
38
39
 
@@ -51,12 +52,22 @@ function instantiateModule(moduleDef: ModuleDefinition, piral: PiletApi) {
51
52
  this.appRef = appRef;
52
53
  }
53
54
 
54
- attach(component: any, node: HTMLElement, $props: any) {
55
+ attach(component: any, node: HTMLElement, $props: BehaviorSubject<any>) {
55
56
  const factory = this.resolver.resolveComponentFactory(component);
56
57
  props.current = $props;
57
58
 
58
59
  if (factory) {
59
60
  const ref = this.zone.run(() => this.appRef.bootstrap<any>(factory, node));
61
+ const name = (ref.componentType as any)?.ɵcmp?.inputs?.Props;
62
+
63
+ if (typeof name === 'string') {
64
+ const sub = $props.subscribe((props) => {
65
+ ref.instance[name] = props;
66
+ ref.changeDetectorRef?.detectChanges();
67
+ });
68
+ ref.onDestroy(() => sub.unsubscribe());
69
+ }
70
+
60
71
  this.refs.push([component, node, ref]);
61
72
  }
62
73
  }