@ddd-qc/lit-happ 0.9.2 → 0.9.3

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.
@@ -1,4 +1,4 @@
1
- import { LitElement } from "lit";
1
+ import { LitElement, PropertyValues } from "lit";
2
2
  import { CellId, InstalledCell, ZomeName } from "@holochain/client";
3
3
  import { AgentPubKeyB64, DnaHashB64 } from "@holochain-open-dev/core-types";
4
4
  import { ZomeViewModel } from "./ZomeViewModel";
@@ -24,6 +24,8 @@ export declare class ZomeElement<P, ZVM extends ZomeViewModel> extends ZomeEleme
24
24
  /** -- Methods -- */
25
25
  /** Request zvm from Context based on current CellId */
26
26
  private requestZvm;
27
+ /** */
28
+ protected willUpdate(changedProperties: PropertyValues<this>): void;
27
29
  /** RequestZvm on first "shouldUpdate" */
28
30
  shouldUpdate(): boolean;
29
31
  }
@@ -28,16 +28,27 @@ export class ZomeElement extends ScopedElementsMixin(LitElement) {
28
28
  /** Request zvm from Context based on current CellId */
29
29
  requestZvm() {
30
30
  if (!this.installedCell) {
31
- throw Error(`"cellContext" not found in ZomeElement "${this.constructor.name}"`);
31
+ throw Error(`"installedCell" from context "${cellContext}" not found in ZomeElement "${this.constructor.name}"`);
32
32
  }
33
33
  const contextType = createContext('zvm/' + this.defaultZomeName + '/' + this.dnaHash);
34
34
  console.log(`\t\tRequesting context "${contextType}"`);
35
35
  /*const consumer =*/ new ContextConsumer(this, contextType, (value, dispose) => {
36
+ if (this._zvm) {
37
+ this._zvm.unsubscribe(this);
38
+ }
36
39
  this._zvm = value;
37
40
  this._zomeName = this._zvm.zomeName;
38
41
  this._zvm.subscribe(this, 'perspective');
39
42
  }, false);
40
43
  }
44
+ /** */
45
+ willUpdate(changedProperties) {
46
+ //console.log("ZomeElement.willUpdate()", changedProperties)
47
+ if (changedProperties.has("installedCell")) {
48
+ console.log("ZomeElement.willUpdate() installedCell in this element", this);
49
+ this.requestZvm();
50
+ }
51
+ }
41
52
  /** RequestZvm on first "shouldUpdate" */
42
53
  shouldUpdate() {
43
54
  //console.log("ZomeElement.shouldUpdate() start", !!this._zvm, this.installedCell);
@@ -1 +1 @@
1
- {"version":3,"file":"ZomeElement.js","sourceRoot":"","sources":["../src/ZomeElement.ts"],"names":[],"mappings":";AAAA,OAAO,EAAC,mBAAmB,EAAC,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAC,UAAU,EAAC,MAAM,KAAK,CAAC;AAC/B,OAAO,EAAC,QAAQ,EAAE,KAAK,EAAC,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAC,eAAe,EAAE,eAAe,EAAE,aAAa,EAAC,MAAM,mBAAmB,CAAC;AAElF,OAAO,EAAC,aAAa,EAAC,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAC,WAAW,EAAC,MAAM,yBAAyB,CAAC;AAMpD;;GAEG;AACH,MAAM,OAAO,WAA0C,SAAQ,mBAAmB,CAAC,UAAU,CAAC;IAE5F,YAA4B,eAAyB;QACnD,KAAK,EAAE,CAAC;QADkB,oBAAe,GAAf,eAAe,CAAU;QAEnD,kDAAkD;QAClD,kBAAkB;QAClB,8BAA8B;QAC9B,IAAI;IACN,CAAC;IAOD,IAAI,QAAQ,KAAc,OAAO,IAAI,CAAC,SAAS,CAAA,CAAA,CAAC;IAAA,CAAC;IAQjD,8BAA8B;IAC9B,IAAI,cAAc,KAAqB,OAAO,IAAI,CAAC,aAAa,CAAC,OAAO,CAAA,CAAC,CAAC;IAC1E,IAAI,MAAM,KAAa,OAAO,IAAI,CAAC,aAAa,CAAC,OAAO,CAAA,CAAC,CAAC;IAC1D,IAAI,OAAO,KAAiB,OAAO,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAA,CAAC,CAAC;IACjF,IAAI,WAAW,KAAqB,OAAO,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAA,CAAC,CAAC;IAGzF,oBAAoB;IAEpB,uDAAuD;IAC/C,UAAU;QAChB,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;YACvB,MAAM,KAAK,CAAC,2CAA2C,IAAI,CAAC,WAAW,CAAC,IAAI,GAAG,CAAC,CAAA;SACjF;QACD,MAAM,WAAW,GAAG,aAAa,CAAM,MAAM,GAAE,IAAI,CAAC,eAAe,GAAG,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,CAAA;QACzF,OAAO,CAAC,GAAG,CAAC,2BAA2B,WAAW,GAAG,CAAC,CAAA;QACtD,oBAAoB,CAAC,IAAI,eAAe,CACtC,IAAI,EACJ,WAAW,EACX,CAAC,KAAU,EAAE,OAAoB,EAAQ,EAAE;YACzC,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;YAClB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;YACpC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;QAC3C,CAAC,EACD,KAAK,CACN,CAAC;IACJ,CAAC;IAGD,yCAAyC;IACzC,YAAY;QACV,mFAAmF;QACnF,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACd,IAAI,CAAC,UAAU,EAAE,CAAC;SACnB;QACD,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;IACrB,CAAC;CAEF;AAjDC;IAFC,eAAe,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,IAAI,EAAC,CAAC;IACzD,QAAQ,CAAC,EAAC,IAAI,EAAE,MAAM,EAAC,CAAC;kDACK;AAMrB;IAAR,KAAK,EAAE;yCAAsB;AAG9B;IADC,QAAQ,CAAC,EAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,EAAC,CAAC;gDAC3D"}
1
+ {"version":3,"file":"ZomeElement.js","sourceRoot":"","sources":["../src/ZomeElement.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { LitElement } from "lit";
1
+ import { LitElement, PropertyValues } from "lit";
2
2
  import { InstalledCell } from "@holochain/client";
3
3
  export declare const cellContext: {
4
4
  __context__: InstalledCell;
@@ -7,8 +7,11 @@ declare const CellContext_base: typeof LitElement & import("@open-wc/dedupe-mixi
7
7
  export declare class CellContext extends CellContext_base {
8
8
  installedCell: InstalledCell;
9
9
  private _provider;
10
+ private _initialized;
10
11
  /** */
11
12
  firstUpdated(): void;
13
+ /** Set provider to installedCell */
14
+ protected willUpdate(changedProperties: PropertyValues<this>): void;
12
15
  /** */
13
16
  render(): import("lit-html").TemplateResult<1>;
14
17
  }
@@ -1,23 +1,37 @@
1
1
  import { __decorate } from "tslib";
2
2
  import { ContextProvider, createContext } from '@lit-labs/context';
3
3
  import { LitElement, html } from "lit";
4
- import { property } from "lit/decorators.js";
4
+ import { property, state } from "lit/decorators.js";
5
5
  import { ScopedElementsMixin } from "@open-wc/scoped-elements";
6
- export const cellContext = createContext('cell');
6
+ export const cellContext = createContext('lit-happ/cell');
7
7
  export class CellContext extends ScopedElementsMixin(LitElement) {
8
8
  constructor() {
9
9
  super(...arguments);
10
10
  /* create a provider controller */
11
- this._provider = new ContextProvider(this, cellContext, this.installedCell);
11
+ /*@state()*/ this._provider = new ContextProvider(this, cellContext, this.installedCell);
12
+ this._initialized = false;
12
13
  }
13
14
  /** */
14
15
  firstUpdated() {
15
16
  if (!this.installedCell)
16
- throw Error("installedCell property nopt defined in CellContext");
17
+ throw Error('"installedCell" property not defined in <cell-context>');
18
+ //this._provider = new ContextProvider(this, cellContext, this.installedCell);
17
19
  this._provider.setValue(this.installedCell);
20
+ this._initialized = true;
21
+ }
22
+ /** Set provider to installedCell */
23
+ willUpdate(changedProperties) {
24
+ console.log("<cell-context>.willUpdate()", changedProperties);
25
+ if (changedProperties.has("installedCell")) {
26
+ console.log("<cell-context>.willUpdate() changed installed cell", this.installedCell.role_id);
27
+ this._provider.setValue(this.installedCell);
28
+ }
18
29
  }
19
30
  /** */
20
31
  render() {
32
+ if (!this._initialized) {
33
+ return html ``;
34
+ }
21
35
  console.log(`Cell context set to "${this.installedCell.role_id}"`);
22
36
  return html `<slot></slot>`;
23
37
  }
@@ -25,4 +39,7 @@ export class CellContext extends ScopedElementsMixin(LitElement) {
25
39
  __decorate([
26
40
  property({ type: Object })
27
41
  ], CellContext.prototype, "installedCell", void 0);
42
+ __decorate([
43
+ state()
44
+ ], CellContext.prototype, "_initialized", void 0);
28
45
  //# sourceMappingURL=cell-context.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cell-context.js","sourceRoot":"","sources":["../../src/elements/cell-context.ts"],"names":[],"mappings":";AAAA,OAAO,EAAC,eAAe,EAAE,aAAa,EAAC,MAAM,mBAAmB,CAAC;AACjE,OAAO,EAAC,UAAU,EAAE,IAAI,EAAC,MAAM,KAAK,CAAC;AACrC,OAAO,EAAC,QAAQ,EAAC,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAC,mBAAmB,EAAC,MAAM,0BAA0B,CAAC;AAI7D,MAAM,CAAC,MAAM,WAAW,GAAG,aAAa,CAAgB,MAAM,CAAC,CAAC;AAEhE,MAAM,OAAO,WAAY,SAAQ,mBAAmB,CAAC,UAAU,CAAC;IAAhE;;QAKE,kCAAkC;QAC1B,cAAS,GAAG,IAAI,eAAe,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;IAajF,CAAC;IAXC,MAAM;IACN,YAAY;QACV,IAAI,CAAC,IAAI,CAAC,aAAa;YAAE,MAAM,KAAK,CAAC,oDAAoD,CAAC,CAAA;QAC1F,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC9C,CAAC;IAED,MAAM;IACN,MAAM;QACJ,OAAO,CAAC,GAAG,CAAC,wBAAwB,IAAI,CAAC,aAAa,CAAC,OAAO,GAAG,CAAC,CAAA;QAClE,OAAO,IAAI,CAAA,eAAe,CAAC;IAC7B,CAAC;CACF;AAhBC;IADC,QAAQ,CAAC,EAAC,IAAI,EAAE,MAAM,EAAC,CAAC;kDACK"}
1
+ {"version":3,"file":"cell-context.js","sourceRoot":"","sources":["../../src/elements/cell-context.ts"],"names":[],"mappings":";AAAA,OAAO,EAAC,eAAe,EAAE,aAAa,EAAC,MAAM,mBAAmB,CAAC;AACjE,OAAO,EAAC,UAAU,EAAE,IAAI,EAAiB,MAAM,KAAK,CAAC;AACrD,OAAO,EAAC,QAAQ,EAAE,KAAK,EAAC,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAC,mBAAmB,EAAC,MAAM,0BAA0B,CAAC;AAI7D,MAAM,CAAC,MAAM,WAAW,GAAG,aAAa,CAAgB,eAAe,CAAC,CAAC;AAEzE,MAAM,OAAO,WAAY,SAAQ,mBAAmB,CAAC,UAAU,CAAC;IAAhE;;QAKE,kCAAkC;QAClC,YAAY,CAAS,cAAS,GAAG,IAAI,eAAe,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;QAE3E,iBAAY,GAAG,KAAK,CAAC;IA6BxC,CAAC;IA3BC,MAAM;IACN,YAAY;QACV,IAAI,CAAC,IAAI,CAAC,aAAa;YAAE,MAAM,KAAK,CAAC,wDAAwD,CAAC,CAAA;QAC9F,8EAA8E;QAC9E,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC5C,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;IAC3B,CAAC;IAGD,oCAAoC;IAC1B,UAAU,CAAC,iBAAuC;QAC1D,OAAO,CAAC,GAAG,CAAC,6BAA6B,EAAE,iBAAiB,CAAC,CAAA;QAC7D,IAAI,iBAAiB,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE;YAC1C,OAAO,CAAC,GAAG,CAAC,oDAAoD,EAAE,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAA;YAC7F,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;SAC7C;IACH,CAAC;IAGD,MAAM;IACN,MAAM;QACJ,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;YACtB,OAAO,IAAI,CAAA,EAAE,CAAC;SACf;QACD,OAAO,CAAC,GAAG,CAAC,wBAAwB,IAAI,CAAC,aAAa,CAAC,OAAO,GAAG,CAAC,CAAA;QAClE,OAAO,IAAI,CAAA,eAAe,CAAC;IAC7B,CAAC;CACF;AAlCC;IADC,QAAQ,CAAC,EAAC,IAAI,EAAE,MAAM,EAAC,CAAC;kDACK;AAKrB;IAAR,KAAK,EAAE;iDAA8B"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ddd-qc/lit-happ",
3
- "version": "0.9.2",
3
+ "version": "0.9.3",
4
4
  "description": "MVVM Framework for holochain apps using Lit",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.js",