asajs 3.0.9 → 3.0.10

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/debug.log ADDED
@@ -0,0 +1,2 @@
1
+ [0830/053731.050:ERROR:third_party\crashpad\crashpad\client\crashpad_client_win.cc:811] not connected
2
+ [0830/055046.606:ERROR:third_party\crashpad\crashpad\client\crashpad_client_win.cc:811] not connected
@@ -263,9 +263,9 @@ class Modify extends import_Class.Class {
263
263
  for (const key of ["type", "controls", "bindings", "button_mappings", "anims"])
264
264
  if (this[key]) code[key] = this[key];
265
265
  if (this.variables) code.variables;
266
- if (this.variables && Object(this.variables).length !== 0)
266
+ if (this.variables && Object.keys(this.variables).length !== 0)
267
267
  import_Object.Obj.forEach(this.variables, (k, v) => {
268
- code.variables.push({
268
+ (code.variables || (code.variables = [])).push({
269
269
  requires: k,
270
270
  ...v
271
271
  });
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/components/Modify.ts"],
4
- "sourcesContent": ["import { JsonBuilder } from \"../compilers/generator/JsonBuilder\";\r\nimport { Log } from \"../compilers/generator/Log\";\r\nimport { CurrentLine } from \"../compilers/reader/CurrentLine\";\r\nimport { Obj } from \"../compilers/reader/Object\";\r\nimport { ReadBinding } from \"../compilers/reader/ReadBinding\";\r\nimport { ReadProperties, ReadValue } from \"../compilers/reader/ReadProperties\";\r\nimport { ChildElement } from \"../types/components/ChildIdentifier\";\r\nimport { Identifier } from \"../types/components/Identifier\";\r\nimport { ExtendInterface } from \"../types/components/UIInterface\";\r\nimport { MappingType } from \"../types/enums/MappingTypes\";\r\nimport { Types } from \"../types/enums/Types\";\r\nimport { BindingInterface } from \"../types/objects/BindingInterface\";\r\nimport { ButtonMapping } from \"../types/objects/ButtonMapping\";\r\nimport { PropertiesType } from \"../types/objects/elements/PropertiesType\";\r\nimport {\r\n ModificationControls,\r\n OverrideInterface,\r\n ModificationInterface,\r\n ExtractUIType,\r\n} from \"../types/objects/Modify\";\r\nimport { Properties } from \"../types/objects/properties/Properties\";\r\nimport { VariablesInterface } from \"../types/objects/Variables\";\r\nimport { Binding } from \"../types/values/Binding\";\r\nimport { Class } from \"./Class\";\r\nimport { Random } from \"./Random\";\r\nimport { UI } from \"./UI\";\r\n\r\nexport class Modify<T extends Types = Types.Any, K extends string = string> extends Class {\r\n private properties: Properties = {};\r\n private controls?: Array<ChildElement>;\r\n private bindings?: Array<BindingInterface>;\r\n private button_mappings?: Array<ButtonMapping>;\r\n private variables?: VariablesInterface;\r\n private anims?: Array<string>;\r\n\r\n private isValidPath: boolean;\r\n name: string = \"\";\r\n namespace: string = \"\";\r\n\r\n private modifyBindings?: Array<BindingInterface>;\r\n private removeModifyBindings?: Array<BindingInterface>;\r\n private modifyControls: ModificationControls = {\r\n remove: [],\r\n replace: [],\r\n insertBack: [],\r\n insertFront: [],\r\n insertAfter: [],\r\n insertBefore: [],\r\n moveAfter: [],\r\n moveBack: [],\r\n moveBefore: [],\r\n moveFront: [],\r\n };\r\n\r\n override: OverrideInterface = {\r\n sourceBindings: {},\r\n\r\n setProperties: (properties: PropertiesType[T]) => {\r\n this.properties = {\r\n ...this.properties,\r\n ...properties,\r\n };\r\n return this.override;\r\n },\r\n\r\n addChild: (element, properties, name, callback) => {\r\n if (!element) {\r\n this.controls ||= [];\r\n return this.override;\r\n }\r\n if (!this.controls) this.controls = [];\r\n name ||= Random.getName();\r\n\r\n this.controls.push({\r\n [`${name}@${\r\n typeof element === \"string\"\r\n ? element.startsWith(\"@\")\r\n ? element.slice(1)\r\n : element\r\n : element.getPath()\r\n }`]: properties ? ReadProperties(properties) : {},\r\n });\r\n\r\n if (element instanceof UI) element.isExtended = true;\r\n callback?.(this, name);\r\n\r\n return this.override;\r\n },\r\n\r\n addBindings: bindings => {\r\n if (!bindings) {\r\n this.bindings ||= [];\r\n return this.override;\r\n }\r\n if (Array.isArray(bindings))\r\n for (const binding of bindings) this.override.addBindings(binding);\r\n else (this.bindings ||= []).push(ReadBinding(<any>bindings, this.override));\r\n return this.override;\r\n },\r\n\r\n addMapping: mapping => {\r\n this.button_mappings ||= [];\r\n if (!mapping) return this.override;\r\n if (Array.isArray(mapping)) mapping.forEach(v => this.override.addMapping(v));\r\n else {\r\n mapping.mapping_type ||= MappingType.Global;\r\n this.button_mappings.push(mapping);\r\n }\r\n\r\n return this.override;\r\n },\r\n\r\n addVariables: variables => {\r\n this.variables ||= {};\r\n\r\n if (variables)\r\n Obj.forEach(variables, (key, value) => {\r\n (<any>this.variables)[key] = {\r\n ...Obj.map(value, (k, v) => {\r\n return { key: k, value: ReadValue(v) };\r\n }),\r\n };\r\n });\r\n\r\n return this.override;\r\n },\r\n\r\n addAnimation: (animation, startIndex) => {\r\n this.anims ||= [];\r\n\r\n if (animation) this.anims.push(animation.getKeyIndex(startIndex || 0));\r\n return this.override;\r\n },\r\n\r\n searchBinding: (\r\n bindingName: Binding,\r\n controlName?: string,\r\n targetBindingName?: Binding\r\n ) => {\r\n for (let index = 0; index < (this.bindings?.length || 0); index++) {\r\n const binding = this.bindings?.[index];\r\n if (controlName) {\r\n if (\r\n binding?.source_control_name === controlName &&\r\n binding.source_property_name === bindingName\r\n ) {\r\n if (targetBindingName) {\r\n if (binding.target_property_name === targetBindingName) {\r\n return targetBindingName;\r\n } else return undefined;\r\n } else return binding.target_property_name;\r\n }\r\n } else {\r\n if (binding?.source_property_name === bindingName) {\r\n if (targetBindingName) {\r\n if (binding.target_property_name === targetBindingName) {\r\n return targetBindingName;\r\n } else return undefined;\r\n } else return binding.target_property_name;\r\n }\r\n }\r\n }\r\n return undefined;\r\n },\r\n };\r\n\r\n modify: ModificationInterface<K> = {\r\n bindings: {\r\n remove: bindings => {\r\n if (Array.isArray(bindings)) {\r\n (this.removeModifyBindings ||= [])?.push(...bindings);\r\n } else (this.removeModifyBindings ||= [])?.push(bindings);\r\n return this.modify.bindings;\r\n },\r\n\r\n addBindings: bindings => {\r\n if (Array.isArray(bindings))\r\n bindings.forEach(binding => this.modify.bindings.addBindings(binding));\r\n else {\r\n (this.modifyBindings ||= []).push(\r\n ReadBinding(<any>bindings, <any>this.modify.bindings)\r\n );\r\n }\r\n return this.modify.bindings;\r\n },\r\n },\r\n controls: {\r\n remove: childName => {\r\n if (Array.isArray(childName)) this.modifyControls.remove.push(...childName);\r\n else this.modifyControls.remove.push(childName);\r\n return this.modify.controls;\r\n },\r\n\r\n moveAfter: childName => {\r\n if (Array.isArray(childName)) this.modifyControls.moveAfter.push(...childName);\r\n else this.modifyControls.moveAfter.push(childName);\r\n return this.modify.controls;\r\n },\r\n\r\n moveBack: childName => {\r\n if (Array.isArray(childName)) this.modifyControls.moveBack.push(...childName);\r\n else this.modifyControls.moveBack.push(childName);\r\n return this.modify.controls;\r\n },\r\n moveFront: childName => {\r\n if (Array.isArray(childName)) this.modifyControls.moveFront.push(...childName);\r\n else this.modifyControls.moveFront.push(childName);\r\n return this.modify.controls;\r\n },\r\n moveBefore: childName => {\r\n if (Array.isArray(childName)) this.modifyControls.moveBefore.push(...childName);\r\n else this.modifyControls.moveBefore.push(childName);\r\n return this.modify.controls;\r\n },\r\n\r\n replace: (childName, ui, properties, elementName) => {\r\n if (ui instanceof UI) ui.isExtended = true;\r\n this.modifyControls.replace.push([\r\n childName,\r\n {\r\n [`${elementName || Random.getName()}@${\r\n typeof ui === \"string\" ? ui : ui.getPath()\r\n }`]: ReadProperties(properties || {}),\r\n },\r\n ]);\r\n return this.modify.controls;\r\n },\r\n insertAfter: (childName, ui, properties, elementName) => {\r\n if (ui instanceof UI) ui.isExtended = true;\r\n this.modifyControls.insertAfter.push([\r\n childName,\r\n {\r\n [`${elementName || Random.getName()}@${\r\n typeof ui === \"string\" ? ui : ui.getPath()\r\n }`]: ReadProperties(properties || {}),\r\n },\r\n ]);\r\n return this.modify.controls;\r\n },\r\n insertBefore: (childName, ui, properties, elementName) => {\r\n if (ui instanceof UI) ui.isExtended = true;\r\n this.modifyControls.insertBefore.push([\r\n childName,\r\n {\r\n [`${elementName || Random.getName()}@${\r\n typeof ui === \"string\" ? ui : ui.getPath()\r\n }`]: ReadProperties(properties || {}),\r\n },\r\n ]);\r\n return this.modify.controls;\r\n },\r\n\r\n insertBack: (ui, properties, elementName) => {\r\n if (ui instanceof UI) ui.isExtended = true;\r\n this.modifyControls.insertBack.push({\r\n [`${elementName || Random.getName()}@${\r\n typeof ui === \"string\" ? ui : ui.getPath()\r\n }`]: ReadProperties(properties || {}),\r\n });\r\n return this.modify.controls;\r\n },\r\n insertFront: (ui, properties, elementName) => {\r\n if (ui instanceof UI) ui.isExtended = true;\r\n this.modifyControls.insertFront.push({\r\n [`${elementName || Random.getName()}@${\r\n typeof ui === \"string\" ? ui : ui.getPath()\r\n }`]: ReadProperties(properties || {}),\r\n });\r\n return this.modify.controls;\r\n },\r\n },\r\n };\r\n\r\n private constructor(properties?: Properties, identifier?: Identifier) {\r\n super();\r\n\r\n if (properties) this.override.setProperties(properties);\r\n if (identifier && identifier.name?.match(/\\w+/g)?.length === 1 && identifier.namespace)\r\n this.isValidPath = true;\r\n else this.isValidPath = false;\r\n\r\n this.name = identifier?.name || \"\";\r\n this.namespace = identifier?.namespace || \"\";\r\n }\r\n\r\n getPath() {\r\n if (this.isValidPath) return `${this.namespace}.${this.name}`;\r\n else {\r\n Log.error(`${CurrentLine()} Cannot use this element for extend or addChild!`);\r\n return \"\";\r\n }\r\n }\r\n\r\n getElement() {\r\n return `@${this.getPath()}`;\r\n }\r\n\r\n extend(identifier?: ExtendInterface, properties?: PropertiesType[ExtractUIType<typeof this>]) {\r\n return UI.extend(this, properties, identifier);\r\n }\r\n\r\n getUI() {\r\n const code: any = ReadProperties(this.properties);\r\n const modifications: Array<any> = [];\r\n for (const key of [\"type\", \"controls\", \"bindings\", \"button_mappings\", \"anims\"])\r\n if ((<any>this)[key]) code[key] = (<any>this)[key];\r\n\r\n if (this.variables) code.variables;\r\n if (this.variables && Object(this.variables).length !== 0)\r\n Obj.forEach(this.variables, (k, v) => {\r\n code.variables.push({\r\n requires: k,\r\n ...v,\r\n });\r\n });\r\n\r\n {\r\n if (this.modifyBindings) {\r\n modifications.push({\r\n array_name: \"bindings\",\r\n operation: \"insert_front\",\r\n value: this.modifyBindings,\r\n });\r\n }\r\n if (this.removeModifyBindings) {\r\n modifications.push(\r\n ...this.removeModifyBindings.map(v => ({\r\n array_name: \"bindings\",\r\n operation: \"remove\",\r\n where: v,\r\n }))\r\n );\r\n }\r\n }\r\n {\r\n modifications.push(\r\n ...this.modifyControls.remove.map(controlName => ({\r\n array_name: \"controls\",\r\n operation: \"remove\",\r\n control_name: controlName,\r\n }))\r\n );\r\n modifications.push(\r\n ...this.modifyControls.moveAfter.map(controlName => ({\r\n array_name: \"controls\",\r\n operation: \"move_after\",\r\n control_name: controlName,\r\n }))\r\n );\r\n modifications.push(\r\n ...this.modifyControls.moveBack.map(controlName => ({\r\n array_name: \"controls\",\r\n operation: \"move_back\",\r\n control_name: controlName,\r\n }))\r\n );\r\n modifications.push(\r\n ...this.modifyControls.moveBefore.map(controlName => ({\r\n array_name: \"controls\",\r\n operation: \"move_before\",\r\n control_name: controlName,\r\n }))\r\n );\r\n modifications.push(\r\n ...this.modifyControls.moveFront.map(controlName => ({\r\n array_name: \"controls\",\r\n operation: \"move_front\",\r\n control_name: controlName,\r\n }))\r\n );\r\n modifications.push(\r\n ...this.modifyControls.replace.map(([childName, element]) => ({\r\n array_name: \"controls\",\r\n operation: \"replace\",\r\n control_name: childName,\r\n value: element,\r\n }))\r\n );\r\n modifications.push(\r\n ...this.modifyControls.insertAfter.map(([childName, element]) => ({\r\n array_name: \"controls\",\r\n operation: \"insert_after\",\r\n control_name: childName,\r\n value: [element],\r\n }))\r\n );\r\n modifications.push(\r\n ...this.modifyControls.insertBefore.map(([childName, element]) => ({\r\n array_name: \"controls\",\r\n operation: \"insert_before\",\r\n control_name: childName,\r\n value: [element],\r\n }))\r\n );\r\n if (this.modifyControls.insertBack.length)\r\n modifications.push({\r\n array_name: \"controls\",\r\n operation: \"insert_back\",\r\n value: this.modifyControls.insertBack,\r\n });\r\n if (this.modifyControls.insertFront.length)\r\n modifications.push({\r\n array_name: \"controls\",\r\n operation: \"insert_front\",\r\n value: this.modifyControls.insertFront,\r\n });\r\n }\r\n\r\n if (modifications.length > 0) code[\"modifications\"] = modifications;\r\n\r\n for (const bindingKey in this.override.sourceBindings) {\r\n const targetBinding = this.override.sourceBindings[bindingKey];\r\n const [sourceBinding, sourceControl] = bindingKey.split(\":\");\r\n\r\n code.bindings.push({\r\n binding_type: \"view\",\r\n source_control_name: sourceControl,\r\n source_property_name: sourceBinding,\r\n target_property_name: targetBinding,\r\n });\r\n }\r\n\r\n return Object.keys(code).length > 0 ? code : undefined;\r\n }\r\n\r\n addChild<T extends string | UI<any> | Modify<any, any>>(\r\n element: T,\r\n properties?: PropertiesType[ExtractUIType<typeof element>],\r\n elementName?: string\r\n ) {\r\n this.modify.controls.insertFront(element, properties, elementName);\r\n return this;\r\n }\r\n\r\n static register<T extends Types = Types.Any, K extends string = string>(\r\n filePath: string,\r\n elementPath: string,\r\n properties?: Properties\r\n ) {\r\n return this.registerWithNamespace<T, K>(filePath, elementPath, \"\", properties);\r\n }\r\n\r\n static registerWithNamespace<T extends Types = Types.Any, K extends string = string>(\r\n filePath: string,\r\n elementPath: string,\r\n namespace: string,\r\n properties?: Properties\r\n ) {\r\n const modify = JsonBuilder.getModify(filePath, elementPath);\r\n modify?.override?.setProperties(properties || {});\r\n return <Modify<T, K>>(modify ||\r\n JsonBuilder.registerModify(\r\n filePath,\r\n elementPath,\r\n new Modify<T, K>(properties, {\r\n name: elementPath,\r\n namespace,\r\n })\r\n ));\r\n }\r\n}\r\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import { JsonBuilder } from \"../compilers/generator/JsonBuilder\";\r\nimport { Log } from \"../compilers/generator/Log\";\r\nimport { CurrentLine } from \"../compilers/reader/CurrentLine\";\r\nimport { Obj } from \"../compilers/reader/Object\";\r\nimport { ReadBinding } from \"../compilers/reader/ReadBinding\";\r\nimport { ReadProperties, ReadValue } from \"../compilers/reader/ReadProperties\";\r\nimport { ChildElement } from \"../types/components/ChildIdentifier\";\r\nimport { Identifier } from \"../types/components/Identifier\";\r\nimport { ExtendInterface } from \"../types/components/UIInterface\";\r\nimport { MappingType } from \"../types/enums/MappingTypes\";\r\nimport { Types } from \"../types/enums/Types\";\r\nimport { BindingInterface } from \"../types/objects/BindingInterface\";\r\nimport { ButtonMapping } from \"../types/objects/ButtonMapping\";\r\nimport { PropertiesType } from \"../types/objects/elements/PropertiesType\";\r\nimport {\r\n ModificationControls,\r\n OverrideInterface,\r\n ModificationInterface,\r\n ExtractUIType,\r\n} from \"../types/objects/Modify\";\r\nimport { Properties } from \"../types/objects/properties/Properties\";\r\nimport { VariablesInterface } from \"../types/objects/Variables\";\r\nimport { Binding } from \"../types/values/Binding\";\r\nimport { Class } from \"./Class\";\r\nimport { Random } from \"./Random\";\r\nimport { UI } from \"./UI\";\r\n\r\nexport class Modify<T extends Types = Types.Any, K extends string = string> extends Class {\r\n private properties: Properties = {};\r\n private controls?: Array<ChildElement>;\r\n private bindings?: Array<BindingInterface>;\r\n private button_mappings?: Array<ButtonMapping>;\r\n private variables?: VariablesInterface;\r\n private anims?: Array<string>;\r\n\r\n private isValidPath: boolean;\r\n name: string = \"\";\r\n namespace: string = \"\";\r\n\r\n private modifyBindings?: Array<BindingInterface>;\r\n private removeModifyBindings?: Array<BindingInterface>;\r\n private modifyControls: ModificationControls = {\r\n remove: [],\r\n replace: [],\r\n insertBack: [],\r\n insertFront: [],\r\n insertAfter: [],\r\n insertBefore: [],\r\n moveAfter: [],\r\n moveBack: [],\r\n moveBefore: [],\r\n moveFront: [],\r\n };\r\n\r\n override: OverrideInterface = {\r\n sourceBindings: {},\r\n\r\n setProperties: (properties: PropertiesType[T]) => {\r\n this.properties = {\r\n ...this.properties,\r\n ...properties,\r\n };\r\n return this.override;\r\n },\r\n\r\n addChild: (element, properties, name, callback) => {\r\n if (!element) {\r\n this.controls ||= [];\r\n return this.override;\r\n }\r\n if (!this.controls) this.controls = [];\r\n name ||= Random.getName();\r\n\r\n this.controls.push({\r\n [`${name}@${\r\n typeof element === \"string\"\r\n ? element.startsWith(\"@\")\r\n ? element.slice(1)\r\n : element\r\n : element.getPath()\r\n }`]: properties ? ReadProperties(properties) : {},\r\n });\r\n\r\n if (element instanceof UI) element.isExtended = true;\r\n callback?.(this, name);\r\n\r\n return this.override;\r\n },\r\n\r\n addBindings: bindings => {\r\n if (!bindings) {\r\n this.bindings ||= [];\r\n return this.override;\r\n }\r\n if (Array.isArray(bindings))\r\n for (const binding of bindings) this.override.addBindings(binding);\r\n else (this.bindings ||= []).push(ReadBinding(<any>bindings, this.override));\r\n return this.override;\r\n },\r\n\r\n addMapping: mapping => {\r\n this.button_mappings ||= [];\r\n if (!mapping) return this.override;\r\n if (Array.isArray(mapping)) mapping.forEach(v => this.override.addMapping(v));\r\n else {\r\n mapping.mapping_type ||= MappingType.Global;\r\n this.button_mappings.push(mapping);\r\n }\r\n\r\n return this.override;\r\n },\r\n\r\n addVariables: variables => {\r\n this.variables ||= {};\r\n\r\n if (variables)\r\n Obj.forEach(variables, (key, value) => {\r\n (<any>this.variables)[key] = {\r\n ...Obj.map(value, (k, v) => {\r\n return { key: k, value: ReadValue(v) };\r\n }),\r\n };\r\n });\r\n\r\n return this.override;\r\n },\r\n\r\n addAnimation: (animation, startIndex) => {\r\n this.anims ||= [];\r\n\r\n if (animation) this.anims.push(animation.getKeyIndex(startIndex || 0));\r\n return this.override;\r\n },\r\n\r\n searchBinding: (\r\n bindingName: Binding,\r\n controlName?: string,\r\n targetBindingName?: Binding\r\n ) => {\r\n for (let index = 0; index < (this.bindings?.length || 0); index++) {\r\n const binding = this.bindings?.[index];\r\n if (controlName) {\r\n if (\r\n binding?.source_control_name === controlName &&\r\n binding.source_property_name === bindingName\r\n ) {\r\n if (targetBindingName) {\r\n if (binding.target_property_name === targetBindingName) {\r\n return targetBindingName;\r\n } else return undefined;\r\n } else return binding.target_property_name;\r\n }\r\n } else {\r\n if (binding?.source_property_name === bindingName) {\r\n if (targetBindingName) {\r\n if (binding.target_property_name === targetBindingName) {\r\n return targetBindingName;\r\n } else return undefined;\r\n } else return binding.target_property_name;\r\n }\r\n }\r\n }\r\n return undefined;\r\n },\r\n };\r\n\r\n modify: ModificationInterface<K> = {\r\n bindings: {\r\n remove: bindings => {\r\n if (Array.isArray(bindings)) {\r\n (this.removeModifyBindings ||= [])?.push(...bindings);\r\n } else (this.removeModifyBindings ||= [])?.push(bindings);\r\n return this.modify.bindings;\r\n },\r\n\r\n addBindings: bindings => {\r\n if (Array.isArray(bindings))\r\n bindings.forEach(binding => this.modify.bindings.addBindings(binding));\r\n else {\r\n (this.modifyBindings ||= []).push(\r\n ReadBinding(<any>bindings, <any>this.modify.bindings)\r\n );\r\n }\r\n return this.modify.bindings;\r\n },\r\n },\r\n controls: {\r\n remove: childName => {\r\n if (Array.isArray(childName)) this.modifyControls.remove.push(...childName);\r\n else this.modifyControls.remove.push(childName);\r\n return this.modify.controls;\r\n },\r\n\r\n moveAfter: childName => {\r\n if (Array.isArray(childName)) this.modifyControls.moveAfter.push(...childName);\r\n else this.modifyControls.moveAfter.push(childName);\r\n return this.modify.controls;\r\n },\r\n\r\n moveBack: childName => {\r\n if (Array.isArray(childName)) this.modifyControls.moveBack.push(...childName);\r\n else this.modifyControls.moveBack.push(childName);\r\n return this.modify.controls;\r\n },\r\n moveFront: childName => {\r\n if (Array.isArray(childName)) this.modifyControls.moveFront.push(...childName);\r\n else this.modifyControls.moveFront.push(childName);\r\n return this.modify.controls;\r\n },\r\n moveBefore: childName => {\r\n if (Array.isArray(childName)) this.modifyControls.moveBefore.push(...childName);\r\n else this.modifyControls.moveBefore.push(childName);\r\n return this.modify.controls;\r\n },\r\n\r\n replace: (childName, ui, properties, elementName) => {\r\n if (ui instanceof UI) ui.isExtended = true;\r\n this.modifyControls.replace.push([\r\n childName,\r\n {\r\n [`${elementName || Random.getName()}@${\r\n typeof ui === \"string\" ? ui : ui.getPath()\r\n }`]: ReadProperties(properties || {}),\r\n },\r\n ]);\r\n return this.modify.controls;\r\n },\r\n insertAfter: (childName, ui, properties, elementName) => {\r\n if (ui instanceof UI) ui.isExtended = true;\r\n this.modifyControls.insertAfter.push([\r\n childName,\r\n {\r\n [`${elementName || Random.getName()}@${\r\n typeof ui === \"string\" ? ui : ui.getPath()\r\n }`]: ReadProperties(properties || {}),\r\n },\r\n ]);\r\n return this.modify.controls;\r\n },\r\n insertBefore: (childName, ui, properties, elementName) => {\r\n if (ui instanceof UI) ui.isExtended = true;\r\n this.modifyControls.insertBefore.push([\r\n childName,\r\n {\r\n [`${elementName || Random.getName()}@${\r\n typeof ui === \"string\" ? ui : ui.getPath()\r\n }`]: ReadProperties(properties || {}),\r\n },\r\n ]);\r\n return this.modify.controls;\r\n },\r\n\r\n insertBack: (ui, properties, elementName) => {\r\n if (ui instanceof UI) ui.isExtended = true;\r\n this.modifyControls.insertBack.push({\r\n [`${elementName || Random.getName()}@${\r\n typeof ui === \"string\" ? ui : ui.getPath()\r\n }`]: ReadProperties(properties || {}),\r\n });\r\n return this.modify.controls;\r\n },\r\n insertFront: (ui, properties, elementName) => {\r\n if (ui instanceof UI) ui.isExtended = true;\r\n this.modifyControls.insertFront.push({\r\n [`${elementName || Random.getName()}@${\r\n typeof ui === \"string\" ? ui : ui.getPath()\r\n }`]: ReadProperties(properties || {}),\r\n });\r\n return this.modify.controls;\r\n },\r\n },\r\n };\r\n\r\n private constructor(properties?: Properties, identifier?: Identifier) {\r\n super();\r\n\r\n if (properties) this.override.setProperties(properties);\r\n if (identifier && identifier.name?.match(/\\w+/g)?.length === 1 && identifier.namespace)\r\n this.isValidPath = true;\r\n else this.isValidPath = false;\r\n\r\n this.name = identifier?.name || \"\";\r\n this.namespace = identifier?.namespace || \"\";\r\n }\r\n\r\n getPath() {\r\n if (this.isValidPath) return `${this.namespace}.${this.name}`;\r\n else {\r\n Log.error(`${CurrentLine()} Cannot use this element for extend or addChild!`);\r\n return \"\";\r\n }\r\n }\r\n\r\n getElement() {\r\n return `@${this.getPath()}`;\r\n }\r\n\r\n extend(identifier?: ExtendInterface, properties?: PropertiesType[ExtractUIType<typeof this>]) {\r\n return UI.extend(this, properties, identifier);\r\n }\r\n\r\n getUI() {\r\n const code: any = ReadProperties(this.properties);\r\n const modifications: Array<any> = [];\r\n for (const key of [\"type\", \"controls\", \"bindings\", \"button_mappings\", \"anims\"])\r\n if ((<any>this)[key]) code[key] = (<any>this)[key];\r\n\r\n if (this.variables) code.variables;\r\n if (this.variables && Object.keys(this.variables).length !== 0)\r\n Obj.forEach(this.variables, (k, v) => {\r\n (code.variables ||= []).push({\r\n requires: k,\r\n ...v,\r\n });\r\n });\r\n\r\n {\r\n if (this.modifyBindings) {\r\n modifications.push({\r\n array_name: \"bindings\",\r\n operation: \"insert_front\",\r\n value: this.modifyBindings,\r\n });\r\n }\r\n if (this.removeModifyBindings) {\r\n modifications.push(\r\n ...this.removeModifyBindings.map(v => ({\r\n array_name: \"bindings\",\r\n operation: \"remove\",\r\n where: v,\r\n }))\r\n );\r\n }\r\n }\r\n {\r\n modifications.push(\r\n ...this.modifyControls.remove.map(controlName => ({\r\n array_name: \"controls\",\r\n operation: \"remove\",\r\n control_name: controlName,\r\n }))\r\n );\r\n modifications.push(\r\n ...this.modifyControls.moveAfter.map(controlName => ({\r\n array_name: \"controls\",\r\n operation: \"move_after\",\r\n control_name: controlName,\r\n }))\r\n );\r\n modifications.push(\r\n ...this.modifyControls.moveBack.map(controlName => ({\r\n array_name: \"controls\",\r\n operation: \"move_back\",\r\n control_name: controlName,\r\n }))\r\n );\r\n modifications.push(\r\n ...this.modifyControls.moveBefore.map(controlName => ({\r\n array_name: \"controls\",\r\n operation: \"move_before\",\r\n control_name: controlName,\r\n }))\r\n );\r\n modifications.push(\r\n ...this.modifyControls.moveFront.map(controlName => ({\r\n array_name: \"controls\",\r\n operation: \"move_front\",\r\n control_name: controlName,\r\n }))\r\n );\r\n modifications.push(\r\n ...this.modifyControls.replace.map(([childName, element]) => ({\r\n array_name: \"controls\",\r\n operation: \"replace\",\r\n control_name: childName,\r\n value: element,\r\n }))\r\n );\r\n modifications.push(\r\n ...this.modifyControls.insertAfter.map(([childName, element]) => ({\r\n array_name: \"controls\",\r\n operation: \"insert_after\",\r\n control_name: childName,\r\n value: [element],\r\n }))\r\n );\r\n modifications.push(\r\n ...this.modifyControls.insertBefore.map(([childName, element]) => ({\r\n array_name: \"controls\",\r\n operation: \"insert_before\",\r\n control_name: childName,\r\n value: [element],\r\n }))\r\n );\r\n if (this.modifyControls.insertBack.length)\r\n modifications.push({\r\n array_name: \"controls\",\r\n operation: \"insert_back\",\r\n value: this.modifyControls.insertBack,\r\n });\r\n if (this.modifyControls.insertFront.length)\r\n modifications.push({\r\n array_name: \"controls\",\r\n operation: \"insert_front\",\r\n value: this.modifyControls.insertFront,\r\n });\r\n }\r\n\r\n if (modifications.length > 0) code[\"modifications\"] = modifications;\r\n\r\n for (const bindingKey in this.override.sourceBindings) {\r\n const targetBinding = this.override.sourceBindings[bindingKey];\r\n const [sourceBinding, sourceControl] = bindingKey.split(\":\");\r\n\r\n code.bindings.push({\r\n binding_type: \"view\",\r\n source_control_name: sourceControl,\r\n source_property_name: sourceBinding,\r\n target_property_name: targetBinding,\r\n });\r\n }\r\n\r\n return Object.keys(code).length > 0 ? code : undefined;\r\n }\r\n\r\n addChild<T extends string | UI<any> | Modify<any, any>>(\r\n element: T,\r\n properties?: PropertiesType[ExtractUIType<typeof element>],\r\n elementName?: string\r\n ) {\r\n this.modify.controls.insertFront(element, properties, elementName);\r\n return this;\r\n }\r\n\r\n static register<T extends Types = Types.Any, K extends string = string>(\r\n filePath: string,\r\n elementPath: string,\r\n properties?: Properties\r\n ) {\r\n return this.registerWithNamespace<T, K>(filePath, elementPath, \"\", properties);\r\n }\r\n\r\n static registerWithNamespace<T extends Types = Types.Any, K extends string = string>(\r\n filePath: string,\r\n elementPath: string,\r\n namespace: string,\r\n properties?: Properties\r\n ) {\r\n const modify = JsonBuilder.getModify(filePath, elementPath);\r\n modify?.override?.setProperties(properties || {});\r\n return <Modify<T, K>>(modify ||\r\n JsonBuilder.registerModify(\r\n filePath,\r\n elementPath,\r\n new Modify<T, K>(properties, {\r\n name: elementPath,\r\n namespace,\r\n })\r\n ));\r\n }\r\n}\r\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
package/dist/esm/index.js CHANGED
@@ -4513,9 +4513,9 @@ var Modify = class _Modify extends Class {
4513
4513
  for (const key of ["type", "controls", "bindings", "button_mappings", "anims"])
4514
4514
  if (this[key]) code[key] = this[key];
4515
4515
  if (this.variables) code.variables;
4516
- if (this.variables && Object(this.variables).length !== 0)
4516
+ if (this.variables && Object.keys(this.variables).length !== 0)
4517
4517
  Obj.forEach(this.variables, (k, v) => {
4518
- code.variables.push({
4518
+ (code.variables || (code.variables = [])).push({
4519
4519
  requires: k,
4520
4520
  ...v
4521
4521
  });