@onerjs/smart-filters 8.53.4 → 8.53.6

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 +1 @@
1
- {"version":3,"file":"customShaderBlock.d.ts","sourceRoot":"","sources":["../../src/blockFoundation/customShaderBlock.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAE5D,OAAO,EAAE,KAAK,+BAA+B,EAAE,MAAM,qDAAqD,CAAC;AAE3G,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAsB,KAAK,aAAa,EAAE,MAAM,6BAA6B,CAAC;AACrF,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,eAAe,CAAC;AA+E9C;;GAEG;AACH,qBAAa,iBAAkB,SAAQ,WAAW;IAC9C;;;;;;;OAOG;WACW,MAAM,CAAC,WAAW,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,eAAe,EAAE,+BAA+B,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,iBAAiB;IA0B7I;;OAEG;IACH,OAAuB,SAAS,SAAuB;IAEvD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAgB;IAC/C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAmB;IAC9C,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAA0B;IACnE,OAAO,CAAC,gBAAgB,CAAsD;IAE9E;;;;OAIG;IACH,SAAgB,oBAAoB,EAAE,MAAM,EAAE,CAAM;IAEpD;;OAEG;IACH,IAAoB,SAAS,IAAI,MAAM,CAEtC;IAED;;;OAGG;IACH,IAAoB,SAAS,IAAI,QAAQ,CAAC,MAAM,CAAC,CAEhD;IAED;;;;;;;;;;OAUG;IACH,OAAO;IAyBP;;;OAGG;IACa,gBAAgB;IAuBhC;;;OAGG;IACH,OAAO,CAAC,oBAAoB;IAsB5B;;;;OAIG;IACH,OAAO,CAAC,yCAAyC;IAkBjD;;;OAGG;IACa,gBAAgB,IAAI,aAAa;IAgCjD;;;;;;;OAOG;IACH,OAAO,CAAC,qBAAqB;CAuChC"}
1
+ {"version":3,"file":"customShaderBlock.d.ts","sourceRoot":"","sources":["../../src/blockFoundation/customShaderBlock.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAE5D,OAAO,EAAE,KAAK,+BAA+B,EAAE,MAAM,qDAAqD,CAAC;AAE3G,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAsB,KAAK,aAAa,EAAE,MAAM,6BAA6B,CAAC;AACrF,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,eAAe,CAAC;AA+E9C;;GAEG;AACH,qBAAa,iBAAkB,SAAQ,WAAW;IAC9C;;;;;;;OAOG;WACW,MAAM,CAAC,WAAW,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,eAAe,EAAE,+BAA+B,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,iBAAiB;IA0B7I;;OAEG;IACH,OAAuB,SAAS,SAAuB;IAEvD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAgB;IAC/C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAmB;IAC9C,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAA0B;IACnE,OAAO,CAAC,gBAAgB,CAAsD;IAE9E;;;;OAIG;IACH,SAAgB,oBAAoB,EAAE,MAAM,EAAE,CAAM;IAEpD;;OAEG;IACH,IAAoB,SAAS,IAAI,MAAM,CAEtC;IAED;;;OAGG;IACH,IAAoB,SAAS,IAAI,QAAQ,CAAC,MAAM,CAAC,CAEhD;IAED;;;;;;;;;;OAUG;IACH,OAAO;IAyBP;;;OAGG;IACa,gBAAgB;IAuBhC;;;OAGG;IACH,OAAO,CAAC,oBAAoB;IAuB5B;;;;OAIG;IACH,OAAO,CAAC,yCAAyC;IAkBjD;;;OAGG;IACa,gBAAgB,IAAI,aAAa;IAgCjD;;;;;;;OAOG;IACH,OAAO,CAAC,qBAAqB;CAuChC"}
@@ -191,7 +191,8 @@ export class CustomShaderBlock extends ShaderBlock {
191
191
  }
192
192
  const propertyType = constProperty.options ? PropertyTypeForEdition.List : PropertyTypeForEdition.Float;
193
193
  const decoratorApplier = EditableInPropertyPage(constProperty.friendlyName, propertyType, "PROPERTIES", editablePropertyOptions);
194
- decoratorApplier(this, constProperty.friendlyName);
194
+ const metadata = this.constructor[Symbol.metadata] ?? (this.constructor[Symbol.metadata] = Object.create(null));
195
+ decoratorApplier(undefined, { name: constProperty.friendlyName, metadata });
195
196
  }
196
197
  /**
197
198
  * Checks a specific input connection point type to see if it has a default value, and registers the input
@@ -1 +1 @@
1
- {"version":3,"file":"customShaderBlock.js","sourceRoot":"","sources":["../../src/blockFoundation/customShaderBlock.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"customShaderBlock.js","sourceRoot":"","sources":["../../src/blockFoundation/customShaderBlock.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { __decorate } from "@onerjs/core/tslib.es6.js";
1
+ import { __esDecorate, __runInitializers } from "@onerjs/core/tslib.es6.js";
2
2
  import "@onerjs/core/Engines/Extensions/engine.renderTarget.js";
3
3
  import { UndecorateSymbol } from "../utils/shaderCodeUtils.js";
4
4
  import { ShaderRuntime } from "../runtime/shaderRuntime.js";
@@ -16,110 +16,121 @@ const OutputTexturePropertiesGroupName = "OUTPUT TEXTURE PROPERTIES";
16
16
  *
17
17
  * The only required function to implement is the bind function.
18
18
  */
19
- export class ShaderBlock extends BaseBlock {
20
- /**
21
- * Disconnects the block from the graph.
22
- * @param disconnectedConnections - Stores the connections that have been broken in the process. You can reconnect them later if needed.
23
- */
24
- disconnectFromGraph(disconnectedConnections) {
25
- const input = this._getConnectionForMainInputTexture();
26
- for (const endpoint of this.output.endpoints) {
27
- disconnectedConnections?.push([endpoint, this.output]);
28
- input.connectTo(endpoint);
29
- }
30
- }
31
- _getConnectionForMainInputTexture() {
32
- const mainInputTextureName = this.getShaderProgram().fragment.mainInputTexture;
33
- if (!mainInputTextureName) {
34
- throw `The block named "${this.name}" does not have a main input texture defined!`;
35
- }
36
- const mainInputTexture = this.findInput(UndecorateSymbol(mainInputTextureName));
37
- if (!mainInputTexture || !mainInputTexture.connectedTo) {
38
- throw `The main input texture "${mainInputTextureName}" of block named "${this.name}" is not connected!`;
39
- }
40
- return mainInputTexture.connectedTo;
41
- }
42
- /**
43
- * Instantiates a new block.
44
- * @param smartFilter - Defines the smart filter the block belongs to
45
- * @param name - Defines the name of the block
46
- * @param disableOptimization - Defines if the block should not be optimized (default: false)
47
- */
48
- constructor(smartFilter, name, disableOptimization = false) {
49
- super(smartFilter, name, disableOptimization);
50
- /**
51
- * The output connection point of the block.
52
- */
53
- this.output = this._registerOutput("output", ConnectionPointType.Texture);
19
+ let ShaderBlock = (() => {
20
+ var _a;
21
+ let _classSuper = BaseBlock;
22
+ let _outputTextureOptions_decorators;
23
+ let _outputTextureOptions_initializers = [];
24
+ let _outputTextureOptions_extraInitializers = [];
25
+ return _a = class ShaderBlock extends _classSuper {
26
+ /**
27
+ * Disconnects the block from the graph.
28
+ * @param disconnectedConnections - Stores the connections that have been broken in the process. You can reconnect them later if needed.
29
+ */
30
+ disconnectFromGraph(disconnectedConnections) {
31
+ const input = this._getConnectionForMainInputTexture();
32
+ for (const endpoint of this.output.endpoints) {
33
+ disconnectedConnections?.push([endpoint, this.output]);
34
+ input.connectTo(endpoint);
35
+ }
36
+ }
37
+ _getConnectionForMainInputTexture() {
38
+ const mainInputTextureName = this.getShaderProgram().fragment.mainInputTexture;
39
+ if (!mainInputTextureName) {
40
+ throw `The block named "${this.name}" does not have a main input texture defined!`;
41
+ }
42
+ const mainInputTexture = this.findInput(UndecorateSymbol(mainInputTextureName));
43
+ if (!mainInputTexture || !mainInputTexture.connectedTo) {
44
+ throw `The main input texture "${mainInputTextureName}" of block named "${this.name}" is not connected!`;
45
+ }
46
+ return mainInputTexture.connectedTo;
47
+ }
48
+ /**
49
+ * Instantiates a new block.
50
+ * @param smartFilter - Defines the smart filter the block belongs to
51
+ * @param name - Defines the name of the block
52
+ * @param disableOptimization - Defines if the block should not be optimized (default: false)
53
+ */
54
+ constructor(smartFilter, name, disableOptimization = false) {
55
+ super(smartFilter, name, disableOptimization);
56
+ /**
57
+ * The output connection point of the block.
58
+ */
59
+ this.output = this._registerOutput("output", ConnectionPointType.Texture);
60
+ /**
61
+ * The options used when creating the texture this block outputs to
62
+ */
63
+ this.outputTextureOptions = __runInitializers(this, _outputTextureOptions_initializers, {
64
+ ratio: 1,
65
+ format: TextureFormat.RGBA,
66
+ type: TextureType.UNSIGNED_BYTE,
67
+ });
68
+ __runInitializers(this, _outputTextureOptions_extraInitializers);
69
+ }
70
+ /**
71
+ * Gets the shader program to use to render the block.
72
+ * @returns The shader program to use to render the block
73
+ */
74
+ getShaderProgram() {
75
+ return this.constructor.ShaderCode;
76
+ }
77
+ /**
78
+ * Generates the commands needed to execute the block at runtime and gathers promises for initialization work
79
+ * @param initializationData - The initialization data to use
80
+ * @param finalOutput - Defines if the block is the final output of the smart filter
81
+ */
82
+ generateCommandsAndGatherInitPromises(initializationData, finalOutput) {
83
+ const runtime = initializationData.runtime;
84
+ const shaderBlockRuntime = new ShaderRuntime(runtime.effectRenderer, this.getShaderProgram(), this.getShaderBinding());
85
+ initializationData.initializationPromises.push(shaderBlockRuntime.onReadyAsync);
86
+ runtime.registerResource(shaderBlockRuntime);
87
+ if (finalOutput) {
88
+ RegisterFinalRenderCommand(initializationData.outputBlock, runtime, this, shaderBlockRuntime);
89
+ }
90
+ else {
91
+ const renderTargetTexture = this.output.runtimeData?.value;
92
+ if (!renderTargetTexture) {
93
+ throw new Error(`${this.blockType} did not have a render target texture.`);
94
+ }
95
+ runtime.registerCommand(CreateCommand(`${this.blockType}.render`, this, () => {
96
+ shaderBlockRuntime.renderToTargetTexture(renderTargetTexture);
97
+ }));
98
+ }
99
+ super.generateCommandsAndGatherInitPromises(initializationData, finalOutput);
100
+ }
101
+ },
102
+ (() => {
103
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
104
+ _outputTextureOptions_decorators = [EditableInPropertyPage("Ratio", PropertyTypeForEdition.Float, OutputTexturePropertiesGroupName, {
105
+ min: 0.1,
106
+ max: 10.0,
107
+ notifiers: { rebuild: true },
108
+ subPropertyName: "ratio",
109
+ }), EditableInPropertyPage("Format", PropertyTypeForEdition.List, OutputTexturePropertiesGroupName, {
110
+ notifiers: { rebuild: true },
111
+ subPropertyName: "format",
112
+ options: [
113
+ { label: "R", value: TextureFormat.R },
114
+ { label: "RG", value: TextureFormat.RG },
115
+ { label: "RGBA", value: TextureFormat.RGBA },
116
+ ],
117
+ }), EditableInPropertyPage("Type", PropertyTypeForEdition.List, OutputTexturePropertiesGroupName, {
118
+ notifiers: { rebuild: true },
119
+ subPropertyName: "type",
120
+ options: [
121
+ { label: "UByte", value: TextureType.UNSIGNED_BYTE },
122
+ { label: "Float", value: TextureType.FLOAT },
123
+ { label: "Half Float", value: TextureType.HALF_FLOAT },
124
+ ],
125
+ })];
126
+ __esDecorate(null, null, _outputTextureOptions_decorators, { kind: "field", name: "outputTextureOptions", static: false, private: false, access: { has: obj => "outputTextureOptions" in obj, get: obj => obj.outputTextureOptions, set: (obj, value) => { obj.outputTextureOptions = value; } }, metadata: _metadata }, _outputTextureOptions_initializers, _outputTextureOptions_extraInitializers);
127
+ if (_metadata) Object.defineProperty(_a, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
128
+ })(),
54
129
  /**
55
- * The options used when creating the texture this block outputs to
130
+ * The class name of the block.
56
131
  */
57
- this.outputTextureOptions = {
58
- ratio: 1,
59
- format: TextureFormat.RGBA,
60
- type: TextureType.UNSIGNED_BYTE,
61
- };
62
- }
63
- /**
64
- * Gets the shader program to use to render the block.
65
- * @returns The shader program to use to render the block
66
- */
67
- getShaderProgram() {
68
- return this.constructor.ShaderCode;
69
- }
70
- /**
71
- * Generates the commands needed to execute the block at runtime and gathers promises for initialization work
72
- * @param initializationData - The initialization data to use
73
- * @param finalOutput - Defines if the block is the final output of the smart filter
74
- */
75
- generateCommandsAndGatherInitPromises(initializationData, finalOutput) {
76
- const runtime = initializationData.runtime;
77
- const shaderBlockRuntime = new ShaderRuntime(runtime.effectRenderer, this.getShaderProgram(), this.getShaderBinding());
78
- initializationData.initializationPromises.push(shaderBlockRuntime.onReadyAsync);
79
- runtime.registerResource(shaderBlockRuntime);
80
- if (finalOutput) {
81
- RegisterFinalRenderCommand(initializationData.outputBlock, runtime, this, shaderBlockRuntime);
82
- }
83
- else {
84
- const renderTargetTexture = this.output.runtimeData?.value;
85
- if (!renderTargetTexture) {
86
- throw new Error(`${this.blockType} did not have a render target texture.`);
87
- }
88
- runtime.registerCommand(CreateCommand(`${this.blockType}.render`, this, () => {
89
- shaderBlockRuntime.renderToTargetTexture(renderTargetTexture);
90
- }));
91
- }
92
- super.generateCommandsAndGatherInitPromises(initializationData, finalOutput);
93
- }
94
- }
95
- /**
96
- * The class name of the block.
97
- */
98
- ShaderBlock.ClassName = "ShaderBlock";
99
- __decorate([
100
- EditableInPropertyPage("Ratio", PropertyTypeForEdition.Float, OutputTexturePropertiesGroupName, {
101
- min: 0.1,
102
- max: 10.0,
103
- notifiers: { rebuild: true },
104
- subPropertyName: "ratio",
105
- }),
106
- EditableInPropertyPage("Format", PropertyTypeForEdition.List, OutputTexturePropertiesGroupName, {
107
- notifiers: { rebuild: true },
108
- subPropertyName: "format",
109
- options: [
110
- { label: "R", value: TextureFormat.R },
111
- { label: "RG", value: TextureFormat.RG },
112
- { label: "RGBA", value: TextureFormat.RGBA },
113
- ],
114
- }),
115
- EditableInPropertyPage("Type", PropertyTypeForEdition.List, OutputTexturePropertiesGroupName, {
116
- notifiers: { rebuild: true },
117
- subPropertyName: "type",
118
- options: [
119
- { label: "UByte", value: TextureType.UNSIGNED_BYTE },
120
- { label: "Float", value: TextureType.FLOAT },
121
- { label: "Half Float", value: TextureType.HALF_FLOAT },
122
- ],
123
- })
124
- ], ShaderBlock.prototype, "outputTextureOptions", void 0);
132
+ _a.ClassName = "ShaderBlock",
133
+ _a;
134
+ })();
135
+ export { ShaderBlock };
125
136
  //# sourceMappingURL=shaderBlock.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"shaderBlock.js","sourceRoot":"","sources":["../../src/blockFoundation/shaderBlock.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"shaderBlock.js","sourceRoot":"","sources":["../../src/blockFoundation/shaderBlock.ts"],"names":[],"mappings":";AACA,OAAO,gDAAgD,CAAC;AAGxD,OAAO,EAAsB,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AACnF,OAAO,EAAsB,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAEhF,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAC3E,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,WAAW,EAA6B,MAAM,qBAAqB,CAAC;AAC5F,OAAO,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,MAAM,0CAA0C,CAAC;AAG1G,MAAM,gCAAgC,GAAG,2BAA2B,CAAC;AAErE;;;;;;GAMG;IACmB,WAAW;;sBAAS,SAAS;;;;sBAA7B,WAAY,SAAQ,WAAS;YAwD/C;;;eAGG;YACa,mBAAmB,CAAC,uBAA8D;gBAC9F,MAAM,KAAK,GAAG,IAAI,CAAC,iCAAiC,EAAE,CAAC;gBAEvD,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;oBAC3C,uBAAuB,EAAE,IAAI,CAAC,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;oBACvD,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;gBAC9B,CAAC;YACL,CAAC;YAES,iCAAiC;gBACvC,MAAM,oBAAoB,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC;gBAC/E,IAAI,CAAC,oBAAoB,EAAE,CAAC;oBACxB,MAAM,oBAAoB,IAAI,CAAC,IAAI,+CAA+C,CAAC;gBACvF,CAAC;gBAED,MAAM,gBAAgB,GAAG,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,oBAAoB,CAAC,CAAC,CAAC;gBAChF,IAAI,CAAC,gBAAgB,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC;oBACrD,MAAM,2BAA2B,oBAAoB,qBAAqB,IAAI,CAAC,IAAI,qBAAqB,CAAC;gBAC7G,CAAC;gBAED,OAAO,gBAAgB,CAAC,WAAW,CAAC;YACxC,CAAC;YAED;;;;;eAKG;YACH,YAAY,WAAwB,EAAE,IAAY,EAAE,mBAAmB,GAAG,KAAK;gBAC3E,KAAK,CAAC,WAAW,EAAE,IAAI,EAAE,mBAAmB,CAAC,CAAC;gBAxElD;;mBAEG;gBACa,WAAM,GAAG,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,mBAAmB,CAAC,OAAO,CAAC,CAAC;gBAErF;;mBAEG;gBAyBI,yBAAoB,+DAAyB;oBAChD,KAAK,EAAE,CAAC;oBACR,MAAM,EAAE,aAAa,CAAC,IAAI;oBAC1B,IAAI,EAAE,WAAW,CAAC,aAAa;iBAClC,EAAC;;aAqCD;YAED;;;eAGG;YACI,gBAAgB;gBACnB,OAAQ,IAAI,CAAC,WAAkC,CAAC,UAAU,CAAC;YAC/D,CAAC;YAED;;;;eAIG;YACa,qCAAqC,CAAC,kBAAsC,EAAE,WAAoB;gBAC9G,MAAM,OAAO,GAAG,kBAAkB,CAAC,OAAO,CAAC;gBAC3C,MAAM,kBAAkB,GAAG,IAAI,aAAa,CAAC,OAAO,CAAC,cAAc,EAAE,IAAI,CAAC,gBAAgB,EAAE,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;gBACvH,kBAAkB,CAAC,sBAAsB,CAAC,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC;gBAChF,OAAO,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,CAAC;gBAE7C,IAAI,WAAW,EAAE,CAAC;oBACd,0BAA0B,CAAC,kBAAkB,CAAC,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,kBAAkB,CAAC,CAAC;gBAClG,CAAC;qBAAM,CAAC;oBACJ,MAAM,mBAAmB,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,KAA0C,CAAC;oBAChG,IAAI,CAAC,mBAAmB,EAAE,CAAC;wBACvB,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,wCAAwC,CAAC,CAAC;oBAC/E,CAAC;oBAED,OAAO,CAAC,eAAe,CACnB,aAAa,CAAC,GAAG,IAAI,CAAC,SAAS,SAAS,EAAE,IAAI,EAAE,GAAG,EAAE;wBACjD,kBAAkB,CAAC,qBAAqB,CAAC,mBAAmB,CAAC,CAAC;oBAClE,CAAC,CAAC,CACL,CAAC;gBACN,CAAC;gBAED,KAAK,CAAC,qCAAqC,CAAC,kBAAkB,EAAE,WAAW,CAAC,CAAC;YACjF,CAAC;;;;gDAtGA,sBAAsB,CAAC,OAAO,EAAE,sBAAsB,CAAC,KAAK,EAAE,gCAAgC,EAAE;oBAC7F,GAAG,EAAE,GAAG;oBACR,GAAG,EAAE,IAAI;oBACT,SAAS,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;oBAC5B,eAAe,EAAE,OAAO;iBAC3B,CAAC,EACD,sBAAsB,CAAC,QAAQ,EAAE,sBAAsB,CAAC,IAAI,EAAE,gCAAgC,EAAE;oBAC7F,SAAS,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;oBAC5B,eAAe,EAAE,QAAQ;oBACzB,OAAO,EAAE;wBACL,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC,EAAE;wBACtC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,aAAa,CAAC,EAAE,EAAE;wBACxC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,CAAC,IAAI,EAAE;qBAC/C;iBACJ,CAAC,EACD,sBAAsB,CAAC,MAAM,EAAE,sBAAsB,CAAC,IAAI,EAAE,gCAAgC,EAAE;oBAC3F,SAAS,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;oBAC5B,eAAe,EAAE,MAAM;oBACvB,OAAO,EAAE;wBACL,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,CAAC,aAAa,EAAE;wBACpD,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,CAAC,KAAK,EAAE;wBAC5C,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,WAAW,CAAC,UAAU,EAAE;qBACzD;iBACJ,CAAC;YACF,8MAAO,oBAAoB,6BAApB,oBAAoB,mHAIzB;;;QArDF;;WAEG;QACoB,YAAS,GAAG,aAAc;;;SAJ/B,WAAW"}
@@ -81,5 +81,15 @@ export interface IPropertyDescriptionForEdition {
81
81
  * @param options - the options of the property
82
82
  * @returns the decorator
83
83
  */
84
- export declare function EditableInPropertyPage(displayName: string, propertyType?: PropertyTypeForEdition, groupName?: string, options?: IEditablePropertyOption): (target: any, propertyKey: string) => void;
84
+ export declare function EditableInPropertyPage(displayName: string, propertyType?: PropertyTypeForEdition, groupName?: string, options?: IEditablePropertyOption): (_value: unknown, context: {
85
+ name: string | symbol;
86
+ metadata: DecoratorMetadataObject;
87
+ }) => void;
88
+ /**
89
+ * Gets the editable properties for a given target using TC39 decorator metadata.
90
+ * Walks the metadata prototype chain to include properties from parent classes.
91
+ * @param target - the target object (instance or constructor)
92
+ * @returns array of property descriptions
93
+ */
94
+ export declare function GetSmartFilterEditableProperties(target: any): IPropertyDescriptionForEdition[];
85
95
  //# sourceMappingURL=editableInPropertyPage.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"editableInPropertyPage.d.ts","sourceRoot":"","sources":["../../src/editorUtils/editableInPropertyPage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAE1D;;GAEG;AACH,oBAAY,sBAAsB;IAC9B,4BAA4B;IAC5B,OAAO,IAAA;IACP,0BAA0B;IAC1B,KAAK,IAAA;IACL,wBAAwB;IACxB,GAAG,IAAA;IACH,4BAA4B;IAC5B,OAAO,IAAA;IACP,mCAAmC;IACnC,IAAI,IAAA;CACP;AAED;;GAEG;AACH,MAAM,WAAW,2BAA2B;IACxC,0BAA0B;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,0BAA0B;IAC1B,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACpC,gBAAgB;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,gBAAgB;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,8EAA8E;IAC9E,SAAS,CAAC,EAAE;QACR,mCAAmC;QACnC,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,oCAAoC;QACpC,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,wFAAwF;QACxF,sBAAsB,CAAC,EAAE,OAAO,CAAC;QACjC,4BAA4B;QAC5B,QAAQ,CAAC,EAAE,MAAM,OAAO,GAAG,SAAS,GAAG,IAAI,CAAC;QAC5C,wJAAwJ;QACxJ,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC;KAChE,CAAC;IACF,wDAAwD;IACxD,OAAO,CAAC,EAAE,2BAA2B,EAAE,GAAG,UAAU,CAAC,2BAA2B,EAAE,CAAC,CAAC;IACpF,+DAA+D;IAC/D,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,kDAAkD;IAClD,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,8BAA8B;IAC3C,2BAA2B;IAC3B,YAAY,EAAE,MAAM,CAAC;IACrB,mCAAmC;IACnC,WAAW,EAAE,MAAM,CAAC;IACpB,2BAA2B;IAC3B,IAAI,EAAE,sBAAsB,CAAC;IAC7B,+GAA+G;IAC/G,SAAS,EAAE,MAAM,CAAC;IAClB,+BAA+B;IAC/B,OAAO,EAAE,uBAAuB,CAAC;IACjC,mDAAmD;IACnD,SAAS,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CAClC,WAAW,EAAE,MAAM,EACnB,YAAY,GAAE,sBAAuD,EACrE,SAAS,GAAE,MAAqB,EAChC,OAAO,CAAC,EAAE,uBAAuB,IAEzB,QAAQ,GAAG,EAAE,aAAa,MAAM,UAyB3C"}
1
+ {"version":3,"file":"editableInPropertyPage.d.ts","sourceRoot":"","sources":["../../src/editorUtils/editableInPropertyPage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAG1D;;GAEG;AACH,oBAAY,sBAAsB;IAC9B,4BAA4B;IAC5B,OAAO,IAAA;IACP,0BAA0B;IAC1B,KAAK,IAAA;IACL,wBAAwB;IACxB,GAAG,IAAA;IACH,4BAA4B;IAC5B,OAAO,IAAA;IACP,mCAAmC;IACnC,IAAI,IAAA;CACP;AAED;;GAEG;AACH,MAAM,WAAW,2BAA2B;IACxC,0BAA0B;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,0BAA0B;IAC1B,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACpC,gBAAgB;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,gBAAgB;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,8EAA8E;IAC9E,SAAS,CAAC,EAAE;QACR,mCAAmC;QACnC,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,oCAAoC;QACpC,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,wFAAwF;QACxF,sBAAsB,CAAC,EAAE,OAAO,CAAC;QACjC,4BAA4B;QAC5B,QAAQ,CAAC,EAAE,MAAM,OAAO,GAAG,SAAS,GAAG,IAAI,CAAC;QAC5C,wJAAwJ;QACxJ,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC;KAChE,CAAC;IACF,wDAAwD;IACxD,OAAO,CAAC,EAAE,2BAA2B,EAAE,GAAG,UAAU,CAAC,2BAA2B,EAAE,CAAC,CAAC;IACpF,+DAA+D;IAC/D,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,kDAAkD;IAClD,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,8BAA8B;IAC3C,2BAA2B;IAC3B,YAAY,EAAE,MAAM,CAAC;IACrB,mCAAmC;IACnC,WAAW,EAAE,MAAM,CAAC;IACpB,2BAA2B;IAC3B,IAAI,EAAE,sBAAsB,CAAC;IAC7B,+GAA+G;IAC/G,SAAS,EAAE,MAAM,CAAC;IAClB,+BAA+B;IAC/B,OAAO,EAAE,uBAAuB,CAAC;IACjC,mDAAmD;IACnD,SAAS,EAAE,MAAM,CAAC;CACrB;AAMD;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CAClC,WAAW,EAAE,MAAM,EACnB,YAAY,GAAE,sBAAuD,EACrE,SAAS,GAAE,MAAqB,EAChC,OAAO,CAAC,EAAE,uBAAuB,IAEzB,QAAQ,OAAO,EAAE,SAAS;IAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IAAC,QAAQ,EAAE,uBAAuB,CAAA;CAAE,UAuCjG;AAED;;;;;GAKG;AACH,wBAAgB,gCAAgC,CAAC,MAAM,EAAE,GAAG,GAAG,8BAA8B,EAAE,CAiB9F"}
@@ -1,3 +1,4 @@
1
+ import { MetadataSymbol } from "@onerjs/core/Misc/decorators.functions.js";
1
2
  /**
2
3
  * Enum defining the type of properties that can be edited in the property pages in the node editor
3
4
  */
@@ -14,6 +15,9 @@ export var PropertyTypeForEdition;
14
15
  /** property is a list of values */
15
16
  PropertyTypeForEdition[PropertyTypeForEdition["List"] = 4] = "List";
16
17
  })(PropertyTypeForEdition || (PropertyTypeForEdition = {}));
18
+ /** @internal */
19
+ // eslint-disable-next-line @typescript-eslint/naming-convention
20
+ const __bjsSmartFilterPropStoreKey = "__bjs_sf_prop_store__";
17
21
  /**
18
22
  * Decorator that flags a property in a node block as being editable
19
23
  * @param displayName - the display name of the property
@@ -23,23 +27,35 @@ export var PropertyTypeForEdition;
23
27
  * @returns the decorator
24
28
  */
25
29
  export function EditableInPropertyPage(displayName, propertyType = PropertyTypeForEdition.Boolean, groupName = "PROPERTIES", options) {
26
- return (target, propertyKey) => {
27
- let propStore = target._propStore;
28
- if (!propStore) {
30
+ return (_value, context) => {
31
+ const meta = context.metadata;
32
+ if (!meta) {
33
+ // `context.metadata` is `void 0` when `Symbol.metadata` was not installed before this class
34
+ // was evaluated. Importing `MetadataSymbol` from core runs the polyfill at module load (before
35
+ // this class body), so this should never happen; referencing it here also keeps that
36
+ // module-load polyfill anchored against bundler tree-shaking.
37
+ throw new Error(`EditableInPropertyPage: decorator metadata is unavailable; the Symbol.metadata (${String(MetadataSymbol)}) polyfill must run before decorated classes are evaluated.`);
38
+ }
39
+ let propStore;
40
+ if (Object.prototype.hasOwnProperty.call(meta, __bjsSmartFilterPropStoreKey)) {
41
+ propStore = meta[__bjsSmartFilterPropStoreKey];
42
+ }
43
+ else {
29
44
  propStore = [];
30
- target._propStore = propStore;
45
+ meta[__bjsSmartFilterPropStoreKey] = propStore;
31
46
  }
47
+ const propertyKey = String(context.name);
32
48
  const propToAdd = {
33
49
  propertyName: propertyKey,
34
50
  displayName: displayName,
35
51
  type: propertyType,
36
52
  groupName: groupName,
37
53
  options: options ?? {},
38
- className: target.constructor.name,
54
+ className: "",
39
55
  };
40
56
  // If the property already exists, overwrite it, otherwise add it
41
57
  // Note: It may have been redefined since the application started
42
- const existingIndex = propStore.findIndex((p) => p.propertyName === propertyKey && p.className === target.constructor.name && options?.blockType === p.options?.blockType);
58
+ const existingIndex = propStore.findIndex((p) => p.propertyName === propertyKey && options?.blockType === p.options?.blockType);
43
59
  if (existingIndex !== -1) {
44
60
  propStore[existingIndex] = propToAdd;
45
61
  }
@@ -48,4 +64,27 @@ export function EditableInPropertyPage(displayName, propertyType = PropertyTypeF
48
64
  }
49
65
  };
50
66
  }
67
+ /**
68
+ * Gets the editable properties for a given target using TC39 decorator metadata.
69
+ * Walks the metadata prototype chain to include properties from parent classes.
70
+ * @param target - the target object (instance or constructor)
71
+ * @returns array of property descriptions
72
+ */
73
+ export function GetSmartFilterEditableProperties(target) {
74
+ const ctor = typeof target === "function" ? target : target?.constructor;
75
+ const metadata = ctor?.[MetadataSymbol];
76
+ if (!metadata) {
77
+ return [];
78
+ }
79
+ const result = [];
80
+ let currentMeta = metadata;
81
+ while (currentMeta) {
82
+ if (Object.prototype.hasOwnProperty.call(currentMeta, __bjsSmartFilterPropStoreKey)) {
83
+ const store = currentMeta[__bjsSmartFilterPropStoreKey];
84
+ result.push(...store);
85
+ }
86
+ currentMeta = Object.getPrototypeOf(currentMeta);
87
+ }
88
+ return result;
89
+ }
51
90
  //# sourceMappingURL=editableInPropertyPage.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"editableInPropertyPage.js","sourceRoot":"","sources":["../../src/editorUtils/editableInPropertyPage.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,CAAN,IAAY,sBAWX;AAXD,WAAY,sBAAsB;IAC9B,4BAA4B;IAC5B,yEAAO,CAAA;IACP,0BAA0B;IAC1B,qEAAK,CAAA;IACL,wBAAwB;IACxB,iEAAG,CAAA;IACH,4BAA4B;IAC5B,yEAAO,CAAA;IACP,mCAAmC;IACnC,mEAAI,CAAA;AACR,CAAC,EAXW,sBAAsB,KAAtB,sBAAsB,QAWjC;AAgED;;;;;;;GAOG;AACH,MAAM,UAAU,sBAAsB,CAClC,WAAmB,EACnB,eAAuC,sBAAsB,CAAC,OAAO,EACrE,YAAoB,YAAY,EAChC,OAAiC;IAEjC,OAAO,CAAC,MAAW,EAAE,WAAmB,EAAE,EAAE;QACxC,IAAI,SAAS,GAAqC,MAAM,CAAC,UAAU,CAAC;QACpE,IAAI,CAAC,SAAS,EAAE,CAAC;YACb,SAAS,GAAG,EAAE,CAAC;YACf,MAAM,CAAC,UAAU,GAAG,SAAS,CAAC;QAClC,CAAC;QAED,MAAM,SAAS,GAAmC;YAC9C,YAAY,EAAE,WAAW;YACzB,WAAW,EAAE,WAAW;YACxB,IAAI,EAAE,YAAY;YAClB,SAAS,EAAE,SAAS;YACpB,OAAO,EAAE,OAAO,IAAI,EAAE;YACtB,SAAS,EAAE,MAAM,CAAC,WAAW,CAAC,IAAI;SACrC,CAAC;QAEF,iEAAiE;QACjE,iEAAiE;QACjE,MAAM,aAAa,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,KAAK,WAAW,IAAI,CAAC,CAAC,SAAS,KAAK,MAAM,CAAC,WAAW,CAAC,IAAI,IAAI,OAAO,EAAE,SAAS,KAAK,CAAC,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QAC3K,IAAI,aAAa,KAAK,CAAC,CAAC,EAAE,CAAC;YACvB,SAAS,CAAC,aAAa,CAAC,GAAG,SAAS,CAAC;QACzC,CAAC;aAAM,CAAC;YACJ,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC9B,CAAC;IACL,CAAC,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"editableInPropertyPage.js","sourceRoot":"","sources":["../../src/editorUtils/editableInPropertyPage.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"convertShaders.d.ts","sourceRoot":"","sources":["../../../src/utils/buildTools/convertShaders.ts"],"names":[],"mappings":"AAMA;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,oBAAoB,EAAE,MAAM,EAAE,eAAe,CAAC,EAAE,MAAM,QAiCxG;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,mBAAmB,EAAE,MAAM,EAAE,oBAAoB,EAAE,MAAM,EAAE,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAUvH"}
1
+ {"version":3,"file":"convertShaders.d.ts","sourceRoot":"","sources":["../../../src/utils/buildTools/convertShaders.ts"],"names":[],"mappings":"AAMA;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,oBAAoB,EAAE,MAAM,EAAE,eAAe,CAAC,EAAE,MAAM,QAyBxG;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,mBAAmB,EAAE,MAAM,EAAE,oBAAoB,EAAE,MAAM,EAAE,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAUvH"}
@@ -14,23 +14,15 @@ export function ConvertShaders(shaderPath, smartFiltersCorePath, babylonCorePath
14
14
  const stats = fs.statSync(shaderPath);
15
15
  let shaderFiles;
16
16
  if (stats.isFile()) {
17
- // If it's a file, create a Dirent-like object for consistency
18
- const fileName = path.basename(shaderPath);
19
- const dirPath = path.dirname(shaderPath);
20
- shaderFiles = [
21
- {
22
- name: fileName,
23
- parentPath: dirPath,
24
- isFile: () => true,
25
- isDirectory: () => false,
26
- },
27
- ];
17
+ shaderFiles = [{ name: path.basename(shaderPath), dir: path.dirname(shaderPath) }];
28
18
  }
29
19
  else if (stats.isDirectory()) {
30
20
  // Get all files in the directory
31
21
  const allFiles = fs.readdirSync(shaderPath, { withFileTypes: true, recursive: true });
32
22
  // Find all shaders (files with .fragment.glsl or .block.glsl extensions)
33
- shaderFiles = allFiles.filter((file) => file.isFile() && (file.name.endsWith(".fragment.glsl") || file.name.endsWith(".block.glsl")));
23
+ shaderFiles = allFiles
24
+ .filter((file) => file.isFile() && (file.name.endsWith(".fragment.glsl") || file.name.endsWith(".block.glsl")))
25
+ .map((file) => ({ name: file.name, dir: file.parentPath }));
34
26
  }
35
27
  else {
36
28
  error(`Error: ${shaderPath} is neither a file nor a directory.`);
@@ -38,7 +30,7 @@ export function ConvertShaders(shaderPath, smartFiltersCorePath, babylonCorePath
38
30
  }
39
31
  // Convert all shaders
40
32
  for (const shaderFile of shaderFiles) {
41
- const fullPathAndFileName = path.join(shaderFile.parentPath, shaderFile.name);
33
+ const fullPathAndFileName = path.join(shaderFile.dir, shaderFile.name);
42
34
  ConvertShader(fullPathAndFileName, smartFiltersCorePath, babylonCorePath);
43
35
  }
44
36
  }
@@ -1 +1 @@
1
- {"version":3,"file":"convertShaders.js","sourceRoot":"","sources":["../../../src/utils/buildTools/convertShaders.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,4BAA4B,EAAE,MAAM,mCAAmC,CAAC;AACjF,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAEnD;;;;;;GAMG;AACH,MAAM,UAAU,cAAc,CAAC,UAAkB,EAAE,oBAA4B,EAAE,eAAwB;IACrG,MAAM,KAAK,GAAG,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IAEtC,IAAI,WAAwB,CAAC;IAE7B,IAAI,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;QACjB,8DAA8D;QAC9D,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QAC3C,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QACzC,WAAW,GAAG;YACV;gBACI,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE,OAAO;gBACnB,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI;gBAClB,WAAW,EAAE,GAAG,EAAE,CAAC,KAAK;aACH;SAC5B,CAAC;IACN,CAAC;SAAM,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;QAC7B,iCAAiC;QACjC,MAAM,QAAQ,GAAG,EAAE,CAAC,WAAW,CAAC,UAAU,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAEtF,yEAAyE;QACzE,WAAW,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;IAC1I,CAAC;SAAM,CAAC;QACJ,KAAK,CAAC,UAAU,UAAU,qCAAqC,CAAC,CAAC;QACjE,OAAO;IACX,CAAC;IAED,sBAAsB;IACtB,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;QACnC,MAAM,mBAAmB,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC;QAC9E,aAAa,CAAC,mBAAmB,EAAE,oBAAoB,EAAE,eAAe,CAAC,CAAC;IAC9E,CAAC;AACL,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAAC,mBAA2B,EAAE,oBAA4B,EAAE,eAAwB;IAC7G,GAAG,CAAC,wBAAwB,mBAAmB,EAAE,CAAC,CAAC;IAEnD,IAAI,mBAAmB,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;QACjD,GAAG,CAAC,qDAAqD,CAAC,CAAC;QAC3D,4BAA4B,CAAC,mBAAmB,EAAE,oBAAoB,CAAC,CAAC;IAC5E,CAAC;SAAM,IAAI,mBAAmB,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;QACrD,GAAG,CAAC,0DAA0D,CAAC,CAAC;QAChE,oBAAoB,CAAC,mBAAmB,EAAE,oBAAoB,EAAE,eAAe,CAAC,CAAC;IACrF,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"convertShaders.js","sourceRoot":"","sources":["../../../src/utils/buildTools/convertShaders.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,4BAA4B,EAAE,MAAM,mCAAmC,CAAC;AACjF,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAEnD;;;;;;GAMG;AACH,MAAM,UAAU,cAAc,CAAC,UAAkB,EAAE,oBAA4B,EAAE,eAAwB;IACrG,MAAM,KAAK,GAAG,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IAEtC,IAAI,WAA4C,CAAC;IAEjD,IAAI,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;QACjB,WAAW,GAAG,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;IACvF,CAAC;SAAM,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;QAC7B,iCAAiC;QACjC,MAAM,QAAQ,GAAG,EAAE,CAAC,WAAW,CAAC,UAAU,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAEtF,yEAAyE;QACzE,WAAW,GAAG,QAAQ;aACjB,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC;aAC9G,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;IACpE,CAAC;SAAM,CAAC;QACJ,KAAK,CAAC,UAAU,UAAU,qCAAqC,CAAC,CAAC;QACjE,OAAO;IACX,CAAC;IAED,sBAAsB;IACtB,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;QACnC,MAAM,mBAAmB,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC;QACvE,aAAa,CAAC,mBAAmB,EAAE,oBAAoB,EAAE,eAAe,CAAC,CAAC;IAC9E,CAAC;AACL,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAAC,mBAA2B,EAAE,oBAA4B,EAAE,eAAwB;IAC7G,GAAG,CAAC,wBAAwB,mBAAmB,EAAE,CAAC,CAAC;IAEnD,IAAI,mBAAmB,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;QACjD,GAAG,CAAC,qDAAqD,CAAC,CAAC;QAC3D,4BAA4B,CAAC,mBAAmB,EAAE,oBAAoB,CAAC,CAAC;IAC5E,CAAC;SAAM,IAAI,mBAAmB,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;QACrD,GAAG,CAAC,0DAA0D,CAAC,CAAC;QAChE,oBAAoB,CAAC,mBAAmB,EAAE,oBAAoB,EAAE,eAAe,CAAC,CAAC;IACrF,CAAC;AACL,CAAC"}
package/dist/version.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
2
  * The version of the SmartFilter core. During publish, this file is overwritten by recordVersionNumber.ts with the same version that is used for the NPM publish.
3
3
  */
4
- export declare const SmartFilterCoreVersion = "8.53.3";
4
+ export declare const SmartFilterCoreVersion = "8.53.6";
5
5
  //# sourceMappingURL=version.d.ts.map
package/dist/version.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
2
  * The version of the SmartFilter core. During publish, this file is overwritten by recordVersionNumber.ts with the same version that is used for the NPM publish.
3
3
  */
4
- export const SmartFilterCoreVersion = "8.53.3";
4
+ export const SmartFilterCoreVersion = "8.53.6";
5
5
  //# sourceMappingURL=version.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@onerjs/smart-filters",
3
- "version": "8.53.4",
3
+ "version": "8.53.6",
4
4
  "description": "Babylon.js Smart Filter core",
5
5
  "keywords": [
6
6
  "video",
@@ -245,7 +245,8 @@ export class CustomShaderBlock extends ShaderBlock {
245
245
  const propertyType: PropertyTypeForEdition = constProperty.options ? PropertyTypeForEdition.List : PropertyTypeForEdition.Float;
246
246
 
247
247
  const decoratorApplier = EditableInPropertyPage(constProperty.friendlyName, propertyType, "PROPERTIES", editablePropertyOptions);
248
- decoratorApplier(this, constProperty.friendlyName);
248
+ const metadata = (this.constructor as any)[Symbol.metadata] ?? ((this.constructor as any)[Symbol.metadata] = Object.create(null));
249
+ decoratorApplier(undefined, { name: constProperty.friendlyName, metadata });
249
250
  }
250
251
 
251
252
  /**
@@ -1,4 +1,5 @@
1
1
  import { type Observable } from "core/Misc/observable.js";
2
+ import { MetadataSymbol } from "core/Misc/decorators.functions.js";
2
3
 
3
4
  /**
4
5
  * Enum defining the type of properties that can be edited in the property pages in the node editor
@@ -78,6 +79,10 @@ export interface IPropertyDescriptionForEdition {
78
79
  className: string;
79
80
  }
80
81
 
82
+ /** @internal */
83
+ // eslint-disable-next-line @typescript-eslint/naming-convention
84
+ const __bjsSmartFilterPropStoreKey = "__bjs_sf_prop_store__";
85
+
81
86
  /**
82
87
  * Decorator that flags a property in a node block as being editable
83
88
  * @param displayName - the display name of the property
@@ -92,25 +97,39 @@ export function EditableInPropertyPage(
92
97
  groupName: string = "PROPERTIES",
93
98
  options?: IEditablePropertyOption
94
99
  ) {
95
- return (target: any, propertyKey: string) => {
96
- let propStore: IPropertyDescriptionForEdition[] = target._propStore;
97
- if (!propStore) {
100
+ return (_value: unknown, context: { name: string | symbol; metadata: DecoratorMetadataObject }) => {
101
+ const meta = context.metadata as DecoratorMetadataObject | undefined;
102
+ if (!meta) {
103
+ // `context.metadata` is `void 0` when `Symbol.metadata` was not installed before this class
104
+ // was evaluated. Importing `MetadataSymbol` from core runs the polyfill at module load (before
105
+ // this class body), so this should never happen; referencing it here also keeps that
106
+ // module-load polyfill anchored against bundler tree-shaking.
107
+ throw new Error(
108
+ `EditableInPropertyPage: decorator metadata is unavailable; the Symbol.metadata (${String(MetadataSymbol)}) polyfill must run before decorated classes are evaluated.`
109
+ );
110
+ }
111
+ let propStore: IPropertyDescriptionForEdition[];
112
+ if (Object.prototype.hasOwnProperty.call(meta, __bjsSmartFilterPropStoreKey)) {
113
+ propStore = meta[__bjsSmartFilterPropStoreKey] as IPropertyDescriptionForEdition[];
114
+ } else {
98
115
  propStore = [];
99
- target._propStore = propStore;
116
+ meta[__bjsSmartFilterPropStoreKey] = propStore;
100
117
  }
101
118
 
119
+ const propertyKey = String(context.name);
120
+
102
121
  const propToAdd: IPropertyDescriptionForEdition = {
103
122
  propertyName: propertyKey,
104
123
  displayName: displayName,
105
124
  type: propertyType,
106
125
  groupName: groupName,
107
126
  options: options ?? {},
108
- className: target.constructor.name,
127
+ className: "",
109
128
  };
110
129
 
111
130
  // If the property already exists, overwrite it, otherwise add it
112
131
  // Note: It may have been redefined since the application started
113
- const existingIndex = propStore.findIndex((p) => p.propertyName === propertyKey && p.className === target.constructor.name && options?.blockType === p.options?.blockType);
132
+ const existingIndex = propStore.findIndex((p) => p.propertyName === propertyKey && options?.blockType === p.options?.blockType);
114
133
  if (existingIndex !== -1) {
115
134
  propStore[existingIndex] = propToAdd;
116
135
  } else {
@@ -118,3 +137,28 @@ export function EditableInPropertyPage(
118
137
  }
119
138
  };
120
139
  }
140
+
141
+ /**
142
+ * Gets the editable properties for a given target using TC39 decorator metadata.
143
+ * Walks the metadata prototype chain to include properties from parent classes.
144
+ * @param target - the target object (instance or constructor)
145
+ * @returns array of property descriptions
146
+ */
147
+ export function GetSmartFilterEditableProperties(target: any): IPropertyDescriptionForEdition[] {
148
+ const ctor = typeof target === "function" ? target : target?.constructor;
149
+ const metadata: DecoratorMetadataObject | undefined = ctor?.[MetadataSymbol];
150
+ if (!metadata) {
151
+ return [];
152
+ }
153
+
154
+ const result: IPropertyDescriptionForEdition[] = [];
155
+ let currentMeta: any = metadata;
156
+ while (currentMeta) {
157
+ if (Object.prototype.hasOwnProperty.call(currentMeta, __bjsSmartFilterPropStoreKey)) {
158
+ const store = currentMeta[__bjsSmartFilterPropStoreKey] as IPropertyDescriptionForEdition[];
159
+ result.push(...store);
160
+ }
161
+ currentMeta = Object.getPrototypeOf(currentMeta);
162
+ }
163
+ return result;
164
+ }
@@ -14,26 +14,18 @@ import { log, error } from "./buildToolsLogger.js";
14
14
  export function ConvertShaders(shaderPath: string, smartFiltersCorePath: string, babylonCorePath?: string) {
15
15
  const stats = fs.statSync(shaderPath);
16
16
 
17
- let shaderFiles: fs.Dirent[];
17
+ let shaderFiles: { name: string; dir: string }[];
18
18
 
19
19
  if (stats.isFile()) {
20
- // If it's a file, create a Dirent-like object for consistency
21
- const fileName = path.basename(shaderPath);
22
- const dirPath = path.dirname(shaderPath);
23
- shaderFiles = [
24
- {
25
- name: fileName,
26
- parentPath: dirPath,
27
- isFile: () => true,
28
- isDirectory: () => false,
29
- } as unknown as fs.Dirent,
30
- ];
20
+ shaderFiles = [{ name: path.basename(shaderPath), dir: path.dirname(shaderPath) }];
31
21
  } else if (stats.isDirectory()) {
32
22
  // Get all files in the directory
33
23
  const allFiles = fs.readdirSync(shaderPath, { withFileTypes: true, recursive: true });
34
24
 
35
25
  // Find all shaders (files with .fragment.glsl or .block.glsl extensions)
36
- shaderFiles = allFiles.filter((file) => file.isFile() && (file.name.endsWith(".fragment.glsl") || file.name.endsWith(".block.glsl")));
26
+ shaderFiles = allFiles
27
+ .filter((file) => file.isFile() && (file.name.endsWith(".fragment.glsl") || file.name.endsWith(".block.glsl")))
28
+ .map((file) => ({ name: file.name, dir: file.parentPath }));
37
29
  } else {
38
30
  error(`Error: ${shaderPath} is neither a file nor a directory.`);
39
31
  return;
@@ -41,7 +33,7 @@ export function ConvertShaders(shaderPath: string, smartFiltersCorePath: string,
41
33
 
42
34
  // Convert all shaders
43
35
  for (const shaderFile of shaderFiles) {
44
- const fullPathAndFileName = path.join(shaderFile.parentPath, shaderFile.name);
36
+ const fullPathAndFileName = path.join(shaderFile.dir, shaderFile.name);
45
37
  ConvertShader(fullPathAndFileName, smartFiltersCorePath, babylonCorePath);
46
38
  }
47
39
  }
package/src/version.ts CHANGED
@@ -1,4 +1,4 @@
1
1
  /**
2
2
  * The version of the SmartFilter core. During publish, this file is overwritten by recordVersionNumber.ts with the same version that is used for the NPM publish.
3
3
  */
4
- export const SmartFilterCoreVersion = "8.53.4";
4
+ export const SmartFilterCoreVersion = "8.53.6";