@ddd-qc/agent-directory 2.165.0 → 2.165.1

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.
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Represents the ViewModel of a zome.
3
+ * It is an Observable meant to be a singleton passed around with a LitContext.
4
+ * It queries a cell's zome to get the agent's perspective (by callind a Zome Bridge).
5
+ * LitElement hosts can subscribe to it in order to get updated when the perspective changes.
6
+ * Hosts can also trigger probing in order to get an updated perspective.
7
+ * It is expected from child classes to implement the ZomeViewModelInterface.
8
+ */
9
+ export declare class ZomeViewModel<T extends {}> {
10
+ /** Dummy implementation ZomeViewModelInterface */
11
+ get perspective(): T;
12
+ protected hasChanged(): boolean;
13
+ probeDht(): Promise<void>;
14
+ protected _previousPerspective?: any;
15
+ protected _hosts: [any, PropertyKey][];
16
+ /** */
17
+ subscribe(host: any, propName: PropertyKey): void;
18
+ /** */
19
+ unsubscribe(candidat: any): void;
20
+ /** */
21
+ protected notify(): void;
22
+ }
@@ -0,0 +1,49 @@
1
+ // export interface ZomeViewModelInterface<T extends {}> {
2
+ // hasChanged(): boolean;
3
+ // get perspective(): T | {};
4
+ // probeDht(): Promise<void>;
5
+ // }
6
+ /**
7
+ * Represents the ViewModel of a zome.
8
+ * It is an Observable meant to be a singleton passed around with a LitContext.
9
+ * It queries a cell's zome to get the agent's perspective (by callind a Zome Bridge).
10
+ * LitElement hosts can subscribe to it in order to get updated when the perspective changes.
11
+ * Hosts can also trigger probing in order to get an updated perspective.
12
+ * It is expected from child classes to implement the ZomeViewModelInterface.
13
+ */
14
+ export class ZomeViewModel {
15
+ constructor() {
16
+ this._hosts = [];
17
+ }
18
+ /** Dummy implementation ZomeViewModelInterface */
19
+ get perspective() { return {}; }
20
+ hasChanged() { return true; }
21
+ async probeDht() { }
22
+ /** */
23
+ subscribe(host, propName) {
24
+ host[propName] = this.perspective;
25
+ this._hosts.push([host, propName]);
26
+ }
27
+ /** */
28
+ unsubscribe(candidat) {
29
+ let index = 0;
30
+ for (const [host, _propName] of this._hosts) {
31
+ if (host === candidat)
32
+ break;
33
+ index += 1;
34
+ }
35
+ if (index > -1) {
36
+ this._hosts.splice(index, 1);
37
+ }
38
+ }
39
+ /** */
40
+ notify() {
41
+ if (!this.hasChanged())
42
+ return;
43
+ for (const [host, propName] of this._hosts) {
44
+ host[propName] = this.perspective;
45
+ }
46
+ this._previousPerspective = this.perspective;
47
+ }
48
+ }
49
+ //# sourceMappingURL=ZomeViewModel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ZomeViewModel.js","sourceRoot":"","sources":["../src/ZomeViewModel.ts"],"names":[],"mappings":"AAGA,0DAA0D;AAC1D,6BAA6B;AAC7B,iCAAiC;AACjC,iCAAiC;AACjC,IAAI;AAGJ;;;;;;;GAOG;AACH,MAAM,OAAO,aAAa;IAA1B;QAQc,WAAM,GAAyB,EAAE,CAAC;IA+BhD,CAAC;IArCG,kDAAkD;IAClD,IAAI,WAAW,KAAQ,OAAO,EAAO,CAAA,CAAC,CAAC;IAC7B,UAAU,KAAc,OAAO,IAAI,CAAA,CAAC,CAAC;IAC/C,KAAK,CAAC,QAAQ,KAAmB,CAAC;IAMlC,MAAM;IACN,SAAS,CAAC,IAAS,EAAE,QAAqB;QACtC,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC;QAClC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAA;IACtC,CAAC;IAGD,MAAM;IACN,WAAW,CAAC,QAAa;QACrB,IAAI,KAAK,GAAI,CAAC,CAAC;QACf,KAAK,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE;YACzC,IAAI,IAAI,KAAK,QAAQ;gBAAE,MAAM;YAC7B,KAAK,IAAI,CAAC,CAAC;SACd;QACD,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE;YACZ,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;SAChC;IACL,CAAC;IAGD,MAAM;IACI,MAAM;QACZ,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;YAAE,OAAO;QAC/B,KAAK,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE;YACxC,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC;SACrC;QACD,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,WAAW,CAAA;IAChD,CAAC;CACJ","sourcesContent":["\r\n\r\n\r\n// export interface ZomeViewModelInterface<T extends {}> {\r\n// hasChanged(): boolean;\r\n// get perspective(): T | {};\r\n// probeDht(): Promise<void>;\r\n// }\r\n\r\n\r\n/**\r\n * Represents the ViewModel of a zome.\r\n * It is an Observable meant to be a singleton passed around with a LitContext.\r\n * It queries a cell's zome to get the agent's perspective (by callind a Zome Bridge).\r\n * LitElement hosts can subscribe to it in order to get updated when the perspective changes.\r\n * Hosts can also trigger probing in order to get an updated perspective.\r\n * It is expected from child classes to implement the ZomeViewModelInterface.\r\n */\r\nexport class ZomeViewModel<T extends {}> /*implements ZomeViewModelInterface<T>*/ {\r\n\r\n /** Dummy implementation ZomeViewModelInterface */\r\n get perspective(): T { return {} as T }\r\n protected hasChanged(): boolean { return true }\r\n async probeDht(): Promise<void> {}\r\n\r\n protected _previousPerspective?: any;\r\n protected _hosts: [any, PropertyKey][] = [];\r\n\r\n\r\n /** */\r\n subscribe(host: any, propName: PropertyKey) {\r\n host[propName] = this.perspective;\r\n this._hosts.push([host, propName])\r\n }\r\n\r\n\r\n /** */\r\n unsubscribe(candidat: any) {\r\n let index = 0;\r\n for (const [host, _propName] of this._hosts) {\r\n if (host === candidat) break;\r\n index += 1;\r\n }\r\n if (index > -1) {\r\n this._hosts.splice(index, 1);\r\n }\r\n }\r\n\r\n\r\n /** */\r\n protected notify() {\r\n if (!this.hasChanged()) return;\r\n for (const [host, propName] of this._hosts) {\r\n host[propName] = this.perspective;\r\n }\r\n this._previousPerspective = this.perspective\r\n }\r\n}"]}
@@ -1,27 +1,29 @@
1
1
  import { AgentPubKeyB64 } from '@holochain-open-dev/core-types';
2
- import { DnaClient } from "@ddd-qc/dna-client";
3
- import { Subscriber } from "svelte/types/runtime/store";
2
+ import { DnaClient, ZomeViewModel } from "@ddd-qc/dna-client";
4
3
  /** Global Context */
5
4
  export declare const agentDirectoryContext: {
6
5
  __context__: AgentDirectoryViewModel;
7
6
  };
7
+ /** */
8
+ export interface AgentDirectoryPerspective {
9
+ agents: AgentPubKeyB64[];
10
+ }
8
11
  /**
9
12
  *
10
13
  */
11
- export declare class AgentDirectoryViewModel {
14
+ export declare class AgentDirectoryViewModel extends ZomeViewModel<AgentDirectoryPerspective> {
12
15
  protected dnaClient: DnaClient;
13
16
  /** Ctor */
14
17
  constructor(dnaClient: DnaClient);
15
18
  /** -- Fields -- */
16
19
  private _bridge;
17
- private _agentStore;
20
+ private _agents;
18
21
  /** -- Methods -- */
22
+ get perspective(): AgentDirectoryPerspective;
19
23
  /** */
20
- agents(): AgentPubKeyB64[];
21
- /** */
22
- subscribe(fn: Subscriber<AgentPubKeyB64[]>): void;
24
+ protected hasChanged(): boolean;
23
25
  /** */
24
- pullAllFromDht(): Promise<void>;
26
+ probeDht(): Promise<void>;
25
27
  /** */
26
- pullAllRegisteredAgents(): Promise<void>;
28
+ probeRegisteredAgents(): Promise<void>;
27
29
  }
@@ -1,39 +1,43 @@
1
1
  import { createContext } from "@lit-labs/context";
2
- import { writable, get } from "svelte/store";
3
2
  import { serializeHash } from "@holochain-open-dev/utils";
4
3
  import { AgentDirectoryBridge } from "./agent_directory.bridge";
4
+ import { ZomeViewModel } from "@ddd-qc/dna-client";
5
5
  /** Global Context */
6
- export const agentDirectoryContext = createContext('agent_directory/service');
6
+ export const agentDirectoryContext = createContext('zome_view_model/agent_directory');
7
7
  /**
8
8
  *
9
9
  */
10
- export class AgentDirectoryViewModel {
10
+ export class AgentDirectoryViewModel extends ZomeViewModel {
11
11
  /** Ctor */
12
12
  constructor(dnaClient) {
13
+ super();
13
14
  this.dnaClient = dnaClient;
14
- this._agentStore = writable([]);
15
+ this._agents = [];
15
16
  this._bridge = new AgentDirectoryBridge(dnaClient);
16
17
  }
17
18
  /** -- Methods -- */
18
- /** */
19
- agents() {
20
- return get(this._agentStore);
19
+ /* */
20
+ get perspective() {
21
+ return { agents: this._agents };
21
22
  }
22
23
  /** */
23
- subscribe(fn) {
24
- this._agentStore.subscribe(fn);
24
+ hasChanged() {
25
+ if (!this._previousPerspective)
26
+ return true;
27
+ let hasChanged = JSON.stringify(this.perspective.agents) !== JSON.stringify(this._previousPerspective.agents);
28
+ return hasChanged;
25
29
  }
26
30
  /** */
27
- async pullAllFromDht() {
28
- await this.pullAllRegisteredAgents();
31
+ async probeDht() {
32
+ await this.probeRegisteredAgents();
29
33
  }
30
34
  /** */
31
- async pullAllRegisteredAgents() {
35
+ async probeRegisteredAgents() {
32
36
  let agents = await this._bridge.getAllAgents();
33
- this._agentStore.update(store => {
34
- store = agents.map((agentKey) => serializeHash(agentKey));
35
- return store;
36
- });
37
+ this._agents = agents.map((agentKey) => serializeHash(agentKey));
38
+ // Debug add a random string to the perspective
39
+ // this._agents.push(String.fromCharCode("A".charCodeAt(0) + Math.floor(Math.random() * 26)))
40
+ this.notify();
37
41
  }
38
42
  }
39
43
  //# sourceMappingURL=agent_directory.vm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"agent_directory.vm.js","sourceRoot":"","sources":["../src/agent_directory.vm.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAC,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EAAC,QAAQ,EAAY,GAAG,EAAC,MAAM,cAAc,CAAC;AAKrD,OAAO,EAAC,aAAa,EAAC,MAAM,2BAA2B,CAAC;AAExD,OAAO,EAAC,oBAAoB,EAAC,MAAM,0BAA0B,CAAC;AAI9D,qBAAqB;AACrB,MAAM,CAAC,MAAM,qBAAqB,GAAG,aAAa,CAA0B,yBAAyB,CAAC,CAAC;AAGvG;;GAEG;AACH,MAAM,OAAO,uBAAuB;IAClC,WAAW;IACX,YAAsB,SAAoB;QAApB,cAAS,GAAT,SAAS,CAAW;QAOlC,gBAAW,GAA+B,QAAQ,CAAC,EAAE,CAAC,CAAC;QAN7D,IAAI,CAAC,OAAO,GAAG,IAAI,oBAAoB,CAAC,SAAS,CAAC,CAAC;IACrD,CAAC;IAQD,oBAAoB;IAEpB,MAAM;IACN,MAAM;QACJ,OAAO,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC/B,CAAC;IAED,MAAM;IACN,SAAS,CAAC,EAAgC;QACxC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;IACjC,CAAC;IAGD,MAAM;IACN,KAAK,CAAC,cAAc;QAClB,MAAM,IAAI,CAAC,uBAAuB,EAAE,CAAC;IACvC,CAAC;IAGD,MAAM;IACN,KAAK,CAAC,uBAAuB;QAC3B,IAAI,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;QAC/C,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;YAC9B,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC;YAC1D,OAAO,KAAK,CAAC;QACf,CAAC,CAAC,CAAA;IACJ,CAAC;CAEF","sourcesContent":["import {createContext} from \"@lit-labs/context\";\nimport {LitElement} from \"lit\";\nimport {writable, Writable, get} from \"svelte/store\";\n\nimport {CellId} from \"@holochain/client\";\nimport {AgentPubKeyB64} from '@holochain-open-dev/core-types';\nimport {AgnosticClient} from '@holochain-open-dev/cell-client';\nimport {serializeHash} from \"@holochain-open-dev/utils\";\n\nimport {AgentDirectoryBridge} from \"./agent_directory.bridge\";\nimport {DnaClient} from \"@ddd-qc/dna-client\";\nimport {Subscriber} from \"svelte/types/runtime/store\";\n\n/** Global Context */\nexport const agentDirectoryContext = createContext<AgentDirectoryViewModel>('agent_directory/service');\n\n\n/**\n *\n */\nexport class AgentDirectoryViewModel {\n /** Ctor */\n constructor(protected dnaClient: DnaClient) {\n this._bridge = new AgentDirectoryBridge(dnaClient);\n }\n\n /** -- Fields -- */\n\n private _bridge : AgentDirectoryBridge\n private _agentStore: Writable<AgentPubKeyB64[]> = writable([]);\n\n\n /** -- Methods -- */\n\n /** */\n agents(): AgentPubKeyB64[] {\n return get(this._agentStore);\n }\n\n /** */\n subscribe(fn: Subscriber<AgentPubKeyB64[]>) {\n this._agentStore.subscribe(fn);\n }\n\n\n /** */\n async pullAllFromDht() {\n await this.pullAllRegisteredAgents();\n }\n\n\n /** */\n async pullAllRegisteredAgents() {\n let agents = await this._bridge.getAllAgents();\n this._agentStore.update(store => {\n store = agents.map((agentKey) => serializeHash(agentKey));\n return store;\n })\n }\n\n}\n"]}
1
+ {"version":3,"file":"agent_directory.vm.js","sourceRoot":"","sources":["../src/agent_directory.vm.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAC,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EAAC,aAAa,EAAC,MAAM,2BAA2B,CAAC;AAExD,OAAO,EAAC,oBAAoB,EAAC,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAY,aAAa,EAAC,MAAM,oBAAoB,CAAC;AAE5D,qBAAqB;AACrB,MAAM,CAAC,MAAM,qBAAqB,GAAG,aAAa,CAA0B,iCAAiC,CAAC,CAAC;AAU/G;;GAEG;AACH,MAAM,OAAO,uBAAwB,SAAQ,aAAwC;IACnF,WAAW;IACX,YAAsB,SAAoB;QACxC,KAAK,EAAE,CAAC;QADY,cAAS,GAAT,SAAS,CAAW;QAQlC,YAAO,GAAqB,EAAE,CAAC;QANrC,IAAI,CAAC,OAAO,GAAG,IAAI,oBAAoB,CAAC,SAAS,CAAC,CAAC;IACrD,CAAC;IAQD,oBAAoB;IAEpB,KAAK;IACL,IAAI,WAAW;QACb,OAAO,EAAC,MAAM,EAAE,IAAI,CAAC,OAAO,EAAC,CAAA;IAC/B,CAAC;IAGD,MAAM;IACI,UAAU;QAClB,IAAI,CAAC,IAAI,CAAC,oBAAoB;YAAE,OAAO,IAAI,CAAC;QAC5C,IAAI,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAA;QAC7G,OAAO,UAAU,CAAA;IACnB,CAAC;IAGD,MAAM;IACN,KAAK,CAAC,QAAQ;QACZ,MAAM,IAAI,CAAC,qBAAqB,EAAE,CAAA;IACpC,CAAC;IAGD,MAAM;IACN,KAAK,CAAC,qBAAqB;QACzB,IAAI,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;QAC/C,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC;QACjE,+CAA+C;QAC/C,6FAA6F;QAC7F,IAAI,CAAC,MAAM,EAAE,CAAA;IACf,CAAC;CAEF","sourcesContent":["import {createContext} from \"@lit-labs/context\";\nimport {AgentPubKeyB64} from '@holochain-open-dev/core-types';\nimport {serializeHash} from \"@holochain-open-dev/utils\";\n\nimport {AgentDirectoryBridge} from \"./agent_directory.bridge\";\nimport {DnaClient, ZomeViewModel} from \"@ddd-qc/dna-client\";\n\n/** Global Context */\nexport const agentDirectoryContext = createContext<AgentDirectoryViewModel>('zome_view_model/agent_directory');\n\n\n/** */\nexport interface AgentDirectoryPerspective {\n agents: AgentPubKeyB64[],\n}\n\n\n\n/**\n *\n */\nexport class AgentDirectoryViewModel extends ZomeViewModel<AgentDirectoryPerspective> {\n /** Ctor */\n constructor(protected dnaClient: DnaClient) {\n super();\n this._bridge = new AgentDirectoryBridge(dnaClient);\n }\n\n /** -- Fields -- */\n\n private _bridge : AgentDirectoryBridge\n private _agents: AgentPubKeyB64[] = [];\n\n\n /** -- Methods -- */\n\n /* */\n get perspective(): AgentDirectoryPerspective {\n return {agents: this._agents}\n }\n\n\n /** */\n protected hasChanged(): boolean {\n if (!this._previousPerspective) return true;\n let hasChanged = JSON.stringify(this.perspective.agents) !== JSON.stringify(this._previousPerspective.agents)\n return hasChanged\n }\n\n\n /** */\n async probeDht(): Promise<void> {\n await this.probeRegisteredAgents()\n }\n\n\n /** */\n async probeRegisteredAgents() {\n let agents = await this._bridge.getAllAgents();\n this._agents = agents.map((agentKey) => serializeHash(agentKey));\n // Debug add a random string to the perspective\n // this._agents.push(String.fromCharCode(\"A\".charCodeAt(0) + Math.floor(Math.random() * 26)))\n this.notify()\n }\n\n}\n"]}
@@ -1,5 +1,5 @@
1
1
  import { LitElement } from "lit";
2
- import { AgentDirectoryViewModel } from "../agent_directory.vm";
2
+ import { AgentDirectoryPerspective, AgentDirectoryViewModel } from "../agent_directory.vm";
3
3
  declare const AgentDirectoryList_base: typeof LitElement & import("@open-wc/dedupe-mixin").Constructor<import("@open-wc/scoped-elements/types/src/types").ScopedElementsHost>;
4
4
  /**
5
5
  * @element agent-directory-list
@@ -10,6 +10,7 @@ export declare class AgentDirectoryList extends AgentDirectoryList_base {
10
10
  /** -- Fields -- */
11
11
  private _initialized;
12
12
  _viewModel: AgentDirectoryViewModel;
13
+ perspective: AgentDirectoryPerspective;
13
14
  /** -- Methods -- */
14
15
  /** After first call to render() */
15
16
  firstUpdated(): Promise<void>;
@@ -1,6 +1,6 @@
1
1
  import { __decorate } from "tslib";
2
2
  import { html, LitElement } from "lit";
3
- import { state } from "lit/decorators.js";
3
+ import { property, state } from "lit/decorators.js";
4
4
  import { contextProvided } from '@lit-labs/context';
5
5
  import { ScopedElementsMixin } from "@open-wc/scoped-elements";
6
6
  import { agentDirectoryContext } from "../agent_directory.vm";
@@ -17,10 +17,7 @@ export class AgentDirectoryList extends ScopedElementsMixin(LitElement) {
17
17
  /** -- Methods -- */
18
18
  /** After first call to render() */
19
19
  async firstUpdated() {
20
- this._viewModel.subscribe((_value) => {
21
- console.log("localTaskListStore update called", this);
22
- this.requestUpdate();
23
- });
20
+ this._viewModel.subscribe(this, 'perspective');
24
21
  await this.refresh();
25
22
  this._initialized = true;
26
23
  }
@@ -31,7 +28,7 @@ export class AgentDirectoryList extends ScopedElementsMixin(LitElement) {
31
28
  /** */
32
29
  async refresh(_e) {
33
30
  //console.log("refresh(): Pulling data from DHT")
34
- await this._viewModel.pullAllFromDht();
31
+ await this._viewModel.probeDht();
35
32
  }
36
33
  /** */
37
34
  render() {
@@ -39,9 +36,8 @@ export class AgentDirectoryList extends ScopedElementsMixin(LitElement) {
39
36
  if (!this._initialized) {
40
37
  return html `<span>Loading...</span>`;
41
38
  }
42
- let agents = this._viewModel.agents();
43
39
  /* Agents */
44
- const agentLi = Object.entries(agents).map(([_index, agentIdB64]) => {
40
+ const agentLi = Object.entries(this.perspective.agents).map(([_index, agentIdB64]) => {
45
41
  //console.log("" + index + ". " + agentIdB64)
46
42
  return html `<li value="${agentIdB64}">${agentIdB64}</li>`;
47
43
  });
@@ -57,6 +53,10 @@ __decorate([
57
53
  state()
58
54
  ], AgentDirectoryList.prototype, "_initialized", void 0);
59
55
  __decorate([
60
- contextProvided({ context: agentDirectoryContext })
56
+ contextProvided({ context: agentDirectoryContext, subscribe: true }),
57
+ property({ type: Object, attribute: false })
61
58
  ], AgentDirectoryList.prototype, "_viewModel", void 0);
59
+ __decorate([
60
+ property({ type: Object, attribute: false, hasChanged: (_v, _old) => true })
61
+ ], AgentDirectoryList.prototype, "perspective", void 0);
62
62
  //# sourceMappingURL=agent-directory-list.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"agent-directory-list.js","sourceRoot":"","sources":["../../src/elements/agent-directory-list.ts"],"names":[],"mappings":";AAAA,OAAO,EAAM,IAAI,EAAE,UAAU,EAAC,MAAM,KAAK,CAAC;AAC1C,OAAO,EAAW,KAAK,EAAC,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAC,mBAAmB,EAAC,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAC,qBAAqB,EAA0B,MAAM,uBAAuB,CAAC;AAGrF;;GAEG;AACH,MAAM,OAAO,kBAAmB,SAAQ,mBAAmB,CAAC,UAAU,CAAC;IACrE,WAAW;IACX;QACE,KAAK,EAAE,CAAC;QAIV,mBAAmB;QAEF,iBAAY,GAAG,KAAK,CAAC;IALtC,CAAC;IAWD,oBAAoB;IAEpB,mCAAmC;IACnC,KAAK,CAAC,YAAY;QAChB,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,MAAU,EAAE,EAAE;YACvC,OAAO,CAAC,GAAG,CAAC,kCAAkC,EAAE,IAAI,CAAC,CAAC;YACtD,IAAI,CAAC,aAAa,EAAE,CAAC;QACvB,CAAC,CAAC,CAAC;QACH,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QACrB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;IAC3B,CAAC;IAGD,kCAAkC;IAClC,KAAK,CAAC,OAAO,CAAC,iBAAsB;QAClC,MAAM;IACR,CAAC;IAGD,MAAM;IACN,KAAK,CAAC,OAAO,CAAC,EAAQ;QACpB,iDAAiD;QACjD,MAAM,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC;IACzC,CAAC;IAGD,MAAM;IACN,MAAM;QACJ,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC;QAEnD,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;YACtB,OAAO,IAAI,CAAA,yBAAyB,CAAC;SACtC;QAED,IAAI,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;QAEtC,YAAY;QACZ,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CACtC,CAAC,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE,EAAE;YACvB,6CAA6C;YAC7C,OAAO,IAAI,CAAC,cAAc,UAAU,KAAK,UAAU,OAAO,CAAA;QAC5D,CAAC,CACJ,CAAA;QAED,iBAAiB;QACjB,OAAO,IAAI,CAAA;;YAEH,OAAO;;KAEd,CAAC;IACJ,CAAC;CACF;AAzDU;IAAR,KAAK,EAAE;wDAA8B;AAGtC;IADC,eAAe,CAAC,EAAE,OAAO,EAAE,qBAAqB,EAAE,CAAC;sDACf","sourcesContent":["import {css, html, LitElement} from \"lit\";\nimport {property, state} from \"lit/decorators.js\";\nimport { contextProvided } from '@lit-labs/context';\nimport {ScopedElementsMixin} from \"@open-wc/scoped-elements\";\nimport {agentDirectoryContext, AgentDirectoryViewModel} from \"../agent_directory.vm\";\n\n\n/**\n * @element agent-directory-list\n */\nexport class AgentDirectoryList extends ScopedElementsMixin(LitElement) {\n /** Ctor */\n constructor() {\n super();\n }\n\n\n /** -- Fields -- */\n\n @state() private _initialized = false;\n\n @contextProvided({ context: agentDirectoryContext })\n _viewModel!: AgentDirectoryViewModel; // WARN: is actually undefined at startup\n\n\n /** -- Methods -- */\n\n /** After first call to render() */\n async firstUpdated() {\n this._viewModel.subscribe((_value:any) => {\n console.log(\"localTaskListStore update called\", this);\n this.requestUpdate();\n });\n await this.refresh();\n this._initialized = true;\n }\n\n\n /** After each call to render() */\n async updated(changedProperties: any) {\n // n/a\n }\n\n\n /** */\n async refresh(_e?: any) {\n //console.log(\"refresh(): Pulling data from DHT\")\n await this._viewModel.pullAllFromDht();\n }\n\n\n /** */\n render() {\n console.log(\"agent-directory-list render() START\");\n\n if (!this._initialized) {\n return html`<span>Loading...</span>`;\n }\n\n let agents = this._viewModel.agents();\n\n /* Agents */\n const agentLi = Object.entries(agents).map(\n ([_index, agentIdB64]) => {\n //console.log(\"\" + index + \". \" + agentIdB64)\n return html `<li value=\"${agentIdB64}\">${agentIdB64}</li>`\n }\n )\n\n /** render all */\n return html` \n <ul>\n ${agentLi}\n </ul>\n `;\n }\n}\n"]}
1
+ {"version":3,"file":"agent-directory-list.js","sourceRoot":"","sources":["../../src/elements/agent-directory-list.ts"],"names":[],"mappings":";AAAA,OAAO,EAAC,IAAI,EAAE,UAAU,EAAC,MAAM,KAAK,CAAC;AACrC,OAAO,EAAC,QAAQ,EAAE,KAAK,EAAC,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAC,mBAAmB,EAAC,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAC,qBAAqB,EAAqD,MAAM,uBAAuB,CAAC;AAGhH;;GAEG;AACH,MAAM,OAAO,kBAAmB,SAAQ,mBAAmB,CAAC,UAAU,CAAC;IACrE,WAAW;IACX;QACE,KAAK,EAAE,CAAC;QAIV,mBAAmB;QAEF,iBAAY,GAAG,KAAK,CAAC;IALtC,CAAC;IAgBD,oBAAoB;IAEpB,mCAAmC;IACnC,KAAK,CAAC,YAAY;QAChB,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;QAC/C,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QACrB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;IAC3B,CAAC;IAGD,kCAAkC;IAClC,KAAK,CAAC,OAAO,CAAC,iBAAsB;QAClC,MAAM;IACR,CAAC;IAGD,MAAM;IACN,KAAK,CAAC,OAAO,CAAC,EAAQ;QACpB,iDAAiD;QACjD,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;IACnC,CAAC;IAGD,MAAM;IACN,MAAM;QACJ,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC;QAEnD,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;YACtB,OAAO,IAAI,CAAA,yBAAyB,CAAC;SACtC;QAED,YAAY;QACZ,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,GAAG,CACvD,CAAC,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE,EAAE;YACvB,6CAA6C;YAC7C,OAAO,IAAI,CAAC,cAAc,UAAU,KAAK,UAAU,OAAO,CAAA;QAC5D,CAAC,CACJ,CAAA;QAED,iBAAiB;QACjB,OAAO,IAAI,CAAA;;YAEH,OAAO;;KAEd,CAAC;IACJ,CAAC;CACF;AAzDU;IAAR,KAAK,EAAE;wDAA8B;AAItC;IAFC,eAAe,CAAC,EAAE,OAAO,EAAE,qBAAqB,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;IACpE,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;sDACR;AAIrC;IADC,QAAQ,CAAC,EAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,EAAC,CAAC;uDACnC","sourcesContent":["import {html, LitElement} from \"lit\";\nimport {property, state} from \"lit/decorators.js\";\nimport { contextProvided } from '@lit-labs/context';\nimport {ScopedElementsMixin} from \"@open-wc/scoped-elements\";\nimport {agentDirectoryContext, AgentDirectoryPerspective, AgentDirectoryViewModel} from \"../agent_directory.vm\";\n\n\n/**\n * @element agent-directory-list\n */\nexport class AgentDirectoryList extends ScopedElementsMixin(LitElement) {\n /** Ctor */\n constructor() {\n super();\n }\n\n\n /** -- Fields -- */\n\n @state() private _initialized = false;\n\n @contextProvided({ context: agentDirectoryContext, subscribe: true })\n @property({ type: Object, attribute: false })\n _viewModel!: AgentDirectoryViewModel; // WARN: is actually undefined at startup\n\n\n @property({type: Object, attribute: false, hasChanged: (_v, _old) => true})\n perspective!: AgentDirectoryPerspective;\n\n\n /** -- Methods -- */\n\n /** After first call to render() */\n async firstUpdated() {\n this._viewModel.subscribe(this, 'perspective');\n await this.refresh();\n this._initialized = true;\n }\n\n\n /** After each call to render() */\n async updated(changedProperties: any) {\n // n/a\n }\n\n\n /** */\n async refresh(_e?: any) {\n //console.log(\"refresh(): Pulling data from DHT\")\n await this._viewModel.probeDht();\n }\n\n\n /** */\n render() {\n console.log(\"agent-directory-list render() START\");\n\n if (!this._initialized) {\n return html`<span>Loading...</span>`;\n }\n\n /* Agents */\n const agentLi = Object.entries(this.perspective.agents).map(\n ([_index, agentIdB64]) => {\n //console.log(\"\" + index + \". \" + agentIdB64)\n return html `<li value=\"${agentIdB64}\">${agentIdB64}</li>`\n }\n )\n\n /** render all */\n return html` \n <ul>\n ${agentLi}\n </ul>\n `;\n }\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ddd-qc/agent-directory",
3
- "version": "2.165.0",
3
+ "version": "2.165.1",
4
4
  "license" : "CAL-1.0",
5
5
  "keywords": ["holochain", "zome"],
6
6
  "main": "./dist/index.js",
@@ -31,9 +31,8 @@
31
31
  "@holochain-open-dev/utils": "0.4.0",
32
32
  "@lit-labs/context": "^0.1.2",
33
33
  "@open-wc/scoped-elements": "^2.0.1",
34
- "@ddd-qc/dna-client": "^0.1.4",
35
- "lit": "^2.2.0",
36
- "svelte": "^3.42.4"
34
+ "@ddd-qc/dna-client": "^0.1.6",
35
+ "lit": "^2.2.0"
37
36
  },
38
37
  "type": "module",
39
38
  "publishConfig": {