@furo/open-models 1.12.0 → 1.12.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.
@@ -116,7 +116,7 @@ export class MAP extends FieldNode {
116
116
  this.__meta.initialValue = initData;
117
117
  if (this.__parentNode !== undefined) {
118
118
  const fieldDescriptor = this.__parentNode.__meta.nodeFields.find(f => f.fieldName === this.__meta.fieldName);
119
- const Constructor = fieldDescriptor?.ValueConstructor;
119
+ const Constructor = fieldDescriptor.ValueConstructor;
120
120
  this.initFromLiteral(Constructor, initData);
121
121
  }
122
122
  }
@@ -125,7 +125,7 @@ export class MAP extends FieldNode {
125
125
  const literal = {};
126
126
  if (this.__parentNode !== undefined) {
127
127
  const fieldDescriptor = this.__parentNode.__meta.nodeFields.find(f => f.fieldName === this.__meta.fieldName);
128
- const Constructor = fieldDescriptor?.ValueConstructor;
128
+ const Constructor = fieldDescriptor.ValueConstructor;
129
129
  const dummy = new Constructor();
130
130
  // eslint-disable-next-line guard-for-in
131
131
  Object.entries(data).forEach(v => {
@@ -1 +1 @@
1
- {"version":3,"file":"MAP.js","sourceRoot":"","sources":["../../src/proxies/MAP.ts"],"names":[],"mappings":"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","sourcesContent":["import { FieldNode } from '../FieldNode';\nimport { Registry } from '../Registry';\n\n/**\n * K can only be a 'string' or 'number' because in JSON UseProtoNames you can only set a string or a number.\n *\n * Even https://protobuf.dev/programming-guides/proto3/#maps defines another structure,\n * we use https://protobuf.dev/programming-guides/proto3/#json\n */\nexport class MAP<\n K extends string | number,\n T extends FieldNode,\n I,\n> extends FieldNode {\n // ev. private machen\n public value: Map<K, T> = new Map<K, T>();\n\n constructor(\n initData?: { [key: string | number]: I },\n parent?: FieldNode,\n parentAttributeName?: string,\n ) {\n super(undefined, parent, parentAttributeName);\n\n if (initData !== undefined) {\n if (initData !== undefined) {\n // eslint-disable-next-line no-console\n console.error('Use the MAP.Builder()');\n }\n }\n\n this.__isPrimitive = true;\n }\n\n static Builder<K extends string | number, T extends FieldNode, I>(\n TConstructor: new () => T,\n initData: { [key: string | number]: I },\n ): MAP<K, T, I> {\n const m = new MAP<K, T, I>();\n m.initFromLiteral(TConstructor, initData);\n return m;\n }\n\n // eslint-disable-next-line class-methods-use-this\n toString(): string {\n // resolve parent\n return `[object MAP<..., ...>]`;\n }\n\n /**\n *\n * @param Constructor - type constructor for T\n * @param {{ [key: string | number]: I }} initData - initial map interface type\n */\n initFromLiteral(\n Constructor: { new (): T },\n initData: { [key: string | number]: I },\n ) {\n // empty the map but keep the ref.\n this.value.clear();\n\n Object.keys(initData).forEach(k => {\n const fieldnode = new Constructor();\n fieldnode.__updateWithLiteral(initData[k]);\n fieldnode.__parentNode = this;\n this.value.set(k as K, fieldnode);\n });\n\n this.__isEmpty = false;\n this.__notifyMapChanges(false);\n }\n\n __getFieldNodeByPath(deepPath: string = ''): FieldNode | undefined {\n const path = deepPath.split('.');\n if (path.length > 0 && path[0] !== '') {\n // eslint-disable-next-line no-param-reassign\n deepPath = path.slice(1).join('.');\n if (deepPath === '') {\n if (this.value.has(path[0] as K)) {\n return this.value.get(path[0] as K) as FieldNode;\n }\n } else if (this.value.has(path[0] as K)) {\n return (this.value.get(path[0] as K) as FieldNode).__getFieldNodeByPath(\n deepPath,\n );\n }\n return undefined;\n }\n return undefined;\n }\n\n public get __childNodes(): T[] {\n const children: T[] = [];\n this.value.forEach(v => children.push(v));\n return children;\n }\n\n private __notifyMapChanges(bubbles?: boolean) {\n this.__dispatchEvent(\n new CustomEvent('this-map-changed', {\n detail: this,\n bubbles: false,\n }),\n );\n this.__dispatchEvent(\n new CustomEvent('this-field-value-changed', {\n detail: this,\n bubbles: false,\n }),\n );\n if (bubbles) {\n this.__dispatchEvent(\n new CustomEvent('map-changed', {\n detail: this,\n bubbles: true,\n }),\n );\n\n this.__dispatchEvent(\n new CustomEvent('update', {\n detail: this,\n bubbles: true,\n }),\n );\n\n this.__dispatchEvent(\n new CustomEvent('field-value-changed', {\n detail: this,\n bubbles: true,\n }),\n );\n } else {\n this.__dispatchEvent(\n new CustomEvent('map-changed', {\n detail: this,\n bubbles: false,\n }),\n );\n this.__dispatchEvent(\n new CustomEvent('update', {\n detail: this,\n bubbles: false,\n }),\n );\n this.__dispatchEvent(\n new CustomEvent('field-value-changed', {\n detail: this,\n bubbles: false,\n }),\n );\n }\n }\n\n /**\n *\n * @param initData\n */\n __updateWithLiteral(initData: { [key: string | number]: I }) {\n // empty the map but keep the ref.\n this.value.clear();\n this.__meta.initialValue = initData;\n if (this.__parentNode !== undefined) {\n const fieldDescriptor = this.__parentNode!.__meta.nodeFields.find(\n f => f.fieldName === this.__meta.fieldName,\n );\n const Constructor = fieldDescriptor?.ValueConstructor as new () => T;\n this.initFromLiteral(Constructor, initData);\n }\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n __mapProtoNameJsonToJson(data: any): any {\n const literal: { [key: string | number]: I } = {};\n\n if (this.__parentNode !== undefined) {\n const fieldDescriptor = this.__parentNode!.__meta.nodeFields.find(\n f => f.fieldName === this.__meta.fieldName,\n );\n const Constructor = fieldDescriptor?.ValueConstructor as new () => T;\n const dummy = new Constructor();\n\n // eslint-disable-next-line guard-for-in\n Object.entries(data).forEach(v => {\n literal[v[0]] = dummy.__mapProtoNameJsonToJson(v[1]);\n });\n }\n\n return literal;\n }\n\n __toJson(): { [key: string | number]: I } {\n return this.__toLiteral();\n }\n\n __toLiteral(): { [key: string | number]: I } {\n const d: { [key: string | number]: I } = {};\n this.value.forEach((item: T, k: K) => {\n d[k] = item.__toLiteral();\n });\n return d;\n }\n\n /**\n * Adds a new element with a specified key and value to the Map. If an element with the same key already exists, the element will be updated.\n *\n * The set() method adds or updates an entry in a Map object with a specified key and a value.\n *\n * #### Params:\n * - **key:** The key of the element to add to the Map object. The key may be any JavaScript typeName (any primitive value or any typeName of JavaScript object ).\n * - **value:** The value of the element to add to the Map object. The value may be any JavaScript typeName (any primitive value or any typeName of JavaScript object ).\n *\n * #### Returns:\n * The Map object.\n */\n public set(key: K, value: T) {\n this.__isEmpty = false;\n const ret = this.value.set(key, value);\n this.__notifyMapChanges(true);\n return ret;\n }\n\n public clear(): void {\n this.__clear();\n }\n\n /**\n * The __clear() method of Map instances removes all elements from this map.\n * @public\n */\n __clear(): void {\n this.__isEmpty = true;\n this.value.clear();\n this.__notifyMapChanges(false);\n }\n\n /**\n * @returns true if an element in the Map existed and has been removed, or false if the element does not exist.\n */\n public delete(key: K): boolean {\n const ret = this.value.delete(key);\n this.__notifyMapChanges(true);\n return ret;\n }\n\n /**\n * Executes a provided function once per each key/value pair in the Map, in insertion order.\n *\n * #### Params:\n * - **callbackFn:** A function to execute for each entry in the map. The function is called with the following arguments:\n * - **value:** Value of each iteration.\n * - **key:** Key of each iteration.\n * - **map:** The map being iterated.\n * - **thisArg:** A value to use as this when executing callbackFn.\n */\n public forEach(\n callbackfn: (value: T, key: K, map: Map<K, T>) => void,\n thisArg?: unknown,\n ): void {\n return this.value.forEach(callbackfn, thisArg);\n }\n\n /**\n * Returns a specified element from the Map object. If the value that is associated to the provided key is an object, then you will get a reference to that object and any change made to that object will effectively modify it inside the Map.\n * @returns Returns the element associated with the specified key. If no element is associated with the specified key, undefined is returned.\n */\n public get(key: K): T | undefined {\n return this.value.get(key);\n }\n\n /**\n * @returns boolean indicating whether an element with the specified key exists or not.\n */\n public has(key: K): boolean {\n return this.value.has(key);\n }\n\n /**\n * The keys() method of Map instances returns a new map iterator object that contains the keys for each element in this map in insertion order.\n * Returns:\n * A new iterable iterator object .\n */\n public keys(): IterableIterator<K> {\n return this.value.keys();\n }\n\n /**\n * The entries() method of Map instances returns a new map iterator object that contains the [key, value] pairs for each element in this map in insertion order.\n */\n public entries(): IterableIterator<[K, T]> {\n return this.value.entries();\n }\n\n /**\n * @returns the number of elements in the Map.\n */\n public get size(): number {\n return this.value.size;\n }\n}\n\nRegistry.register('map', MAP);\n"]}
1
+ {"version":3,"file":"MAP.js","sourceRoot":"","sources":["../../src/proxies/MAP.ts"],"names":[],"mappings":"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","sourcesContent":["import { FieldNode } from '../FieldNode';\nimport { Registry } from '../Registry';\n\n/**\n * K can only be a 'string' or 'number' because in JSON UseProtoNames you can only set a string or a number.\n *\n * Even https://protobuf.dev/programming-guides/proto3/#maps defines another structure,\n * we use https://protobuf.dev/programming-guides/proto3/#json\n */\nexport class MAP<\n K extends string | number,\n T extends FieldNode,\n I,\n> extends FieldNode {\n // ev. private machen\n public value: Map<K, T> = new Map<K, T>();\n\n constructor(\n initData?: { [key: string | number]: I },\n parent?: FieldNode,\n parentAttributeName?: string,\n ) {\n super(undefined, parent, parentAttributeName);\n\n if (initData !== undefined) {\n if (initData !== undefined) {\n // eslint-disable-next-line no-console\n console.error('Use the MAP.Builder()');\n }\n }\n\n this.__isPrimitive = true;\n }\n\n static Builder<K extends string | number, T extends FieldNode, I>(\n TConstructor: new () => T,\n initData: { [key: string | number]: I },\n ): MAP<K, T, I> {\n const m = new MAP<K, T, I>();\n m.initFromLiteral(TConstructor, initData);\n return m;\n }\n\n // eslint-disable-next-line class-methods-use-this\n toString(): string {\n // resolve parent\n return `[object MAP<..., ...>]`;\n }\n\n /**\n *\n * @param Constructor - type constructor for T\n * @param {{ [key: string | number]: I }} initData - initial map interface type\n */\n initFromLiteral(\n Constructor: { new (): T },\n initData: { [key: string | number]: I },\n ) {\n // empty the map but keep the ref.\n this.value.clear();\n\n Object.keys(initData).forEach(k => {\n const fieldnode = new Constructor();\n fieldnode.__updateWithLiteral(initData[k]);\n fieldnode.__parentNode = this;\n this.value.set(k as K, fieldnode);\n });\n\n this.__isEmpty = false;\n this.__notifyMapChanges(false);\n }\n\n __getFieldNodeByPath(deepPath: string = ''): FieldNode | undefined {\n const path = deepPath.split('.');\n if (path.length > 0 && path[0] !== '') {\n // eslint-disable-next-line no-param-reassign\n deepPath = path.slice(1).join('.');\n if (deepPath === '') {\n if (this.value.has(path[0] as K)) {\n return this.value.get(path[0] as K) as FieldNode;\n }\n } else if (this.value.has(path[0] as K)) {\n return (this.value.get(path[0] as K) as FieldNode).__getFieldNodeByPath(\n deepPath,\n );\n }\n return undefined;\n }\n return undefined;\n }\n\n public get __childNodes(): T[] {\n const children: T[] = [];\n this.value.forEach(v => children.push(v));\n return children;\n }\n\n private __notifyMapChanges(bubbles?: boolean) {\n this.__dispatchEvent(\n new CustomEvent('this-map-changed', {\n detail: this,\n bubbles: false,\n }),\n );\n this.__dispatchEvent(\n new CustomEvent('this-field-value-changed', {\n detail: this,\n bubbles: false,\n }),\n );\n if (bubbles) {\n this.__dispatchEvent(\n new CustomEvent('map-changed', {\n detail: this,\n bubbles: true,\n }),\n );\n\n this.__dispatchEvent(\n new CustomEvent('update', {\n detail: this,\n bubbles: true,\n }),\n );\n\n this.__dispatchEvent(\n new CustomEvent('field-value-changed', {\n detail: this,\n bubbles: true,\n }),\n );\n } else {\n this.__dispatchEvent(\n new CustomEvent('map-changed', {\n detail: this,\n bubbles: false,\n }),\n );\n this.__dispatchEvent(\n new CustomEvent('update', {\n detail: this,\n bubbles: false,\n }),\n );\n this.__dispatchEvent(\n new CustomEvent('field-value-changed', {\n detail: this,\n bubbles: false,\n }),\n );\n }\n }\n\n /**\n *\n * @param initData\n */\n __updateWithLiteral(initData: { [key: string | number]: I }) {\n // empty the map but keep the ref.\n this.value.clear();\n this.__meta.initialValue = initData;\n if (this.__parentNode !== undefined) {\n const fieldDescriptor = this.__parentNode!.__meta.nodeFields.find(\n f => f.fieldName === this.__meta.fieldName,\n );\n const Constructor = fieldDescriptor!.ValueConstructor as new () => T;\n this.initFromLiteral(Constructor, initData);\n }\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n __mapProtoNameJsonToJson(data: any): any {\n const literal: { [key: string | number]: I } = {};\n\n if (this.__parentNode !== undefined) {\n const fieldDescriptor = this.__parentNode!.__meta.nodeFields.find(\n f => f.fieldName === this.__meta.fieldName,\n );\n const Constructor = fieldDescriptor!.ValueConstructor as new () => T;\n const dummy = new Constructor();\n\n // eslint-disable-next-line guard-for-in\n Object.entries(data).forEach(v => {\n literal[v[0]] = dummy.__mapProtoNameJsonToJson(v[1]);\n });\n }\n\n return literal;\n }\n\n __toJson(): { [key: string | number]: I } {\n return this.__toLiteral();\n }\n\n __toLiteral(): { [key: string | number]: I } {\n const d: { [key: string | number]: I } = {};\n this.value.forEach((item: T, k: K) => {\n d[k] = item.__toLiteral();\n });\n return d;\n }\n\n /**\n * Adds a new element with a specified key and value to the Map. If an element with the same key already exists, the element will be updated.\n *\n * The set() method adds or updates an entry in a Map object with a specified key and a value.\n *\n * #### Params:\n * - **key:** The key of the element to add to the Map object. The key may be any JavaScript typeName (any primitive value or any typeName of JavaScript object ).\n * - **value:** The value of the element to add to the Map object. The value may be any JavaScript typeName (any primitive value or any typeName of JavaScript object ).\n *\n * #### Returns:\n * The Map object.\n */\n public set(key: K, value: T) {\n this.__isEmpty = false;\n const ret = this.value.set(key, value);\n this.__notifyMapChanges(true);\n return ret;\n }\n\n public clear(): void {\n this.__clear();\n }\n\n /**\n * The __clear() method of Map instances removes all elements from this map.\n * @public\n */\n __clear(): void {\n this.__isEmpty = true;\n this.value.clear();\n this.__notifyMapChanges(false);\n }\n\n /**\n * @returns true if an element in the Map existed and has been removed, or false if the element does not exist.\n */\n public delete(key: K): boolean {\n const ret = this.value.delete(key);\n this.__notifyMapChanges(true);\n return ret;\n }\n\n /**\n * Executes a provided function once per each key/value pair in the Map, in insertion order.\n *\n * #### Params:\n * - **callbackFn:** A function to execute for each entry in the map. The function is called with the following arguments:\n * - **value:** Value of each iteration.\n * - **key:** Key of each iteration.\n * - **map:** The map being iterated.\n * - **thisArg:** A value to use as this when executing callbackFn.\n */\n public forEach(\n callbackfn: (value: T, key: K, map: Map<K, T>) => void,\n thisArg?: unknown,\n ): void {\n return this.value.forEach(callbackfn, thisArg);\n }\n\n /**\n * Returns a specified element from the Map object. If the value that is associated to the provided key is an object, then you will get a reference to that object and any change made to that object will effectively modify it inside the Map.\n * @returns Returns the element associated with the specified key. If no element is associated with the specified key, undefined is returned.\n */\n public get(key: K): T | undefined {\n return this.value.get(key);\n }\n\n /**\n * @returns boolean indicating whether an element with the specified key exists or not.\n */\n public has(key: K): boolean {\n return this.value.has(key);\n }\n\n /**\n * The keys() method of Map instances returns a new map iterator object that contains the keys for each element in this map in insertion order.\n * Returns:\n * A new iterable iterator object .\n */\n public keys(): IterableIterator<K> {\n return this.value.keys();\n }\n\n /**\n * The entries() method of Map instances returns a new map iterator object that contains the [key, value] pairs for each element in this map in insertion order.\n */\n public entries(): IterableIterator<[K, T]> {\n return this.value.entries();\n }\n\n /**\n * @returns the number of elements in the Map.\n */\n public get size(): number {\n return this.value.size;\n }\n}\n\nRegistry.register('map', MAP);\n"]}
package/package.json CHANGED
@@ -8,7 +8,7 @@
8
8
  "url": "git+ssh://git@github.com/eclipse/eclipsefuro-web.git"
9
9
  },
10
10
  "author": "eclipse furo",
11
- "version": "1.12.0",
11
+ "version": "1.12.1",
12
12
  "type": "module",
13
13
  "main": "dist/index.js",
14
14
  "module": "dist/index.js",