@furo/open-models 1.19.0 → 1.20.0

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.
@@ -2618,290 +2618,6 @@
2618
2618
  }
2619
2619
  ]
2620
2620
  },
2621
- {
2622
- "kind": "javascript-module",
2623
- "path": "dist/decorators/DefaultServiceEventHandlers.js",
2624
- "declarations": [
2625
- {
2626
- "kind": "function",
2627
- "name": "DefaultServiceEventHandlers",
2628
- "parameters": [
2629
- {
2630
- "name": "dispatch",
2631
- "type": {
2632
- "text": "DispatchFn"
2633
- },
2634
- "description": "Function to dispatch events (typically bound to the service's dispatchEvent)"
2635
- },
2636
- {
2637
- "name": "options",
2638
- "default": "{}",
2639
- "type": {
2640
- "text": "DefaultServiceEventHandlersOptions"
2641
- },
2642
- "description": "Optional configuration"
2643
- }
2644
- ],
2645
- "description": "### DefaultServiceEventHandlers\n\nCreates default service handlers that dispatch standard events.\nUse this to reduce boilerplate when setting up service handlers.\n\nThe `onResponse` handler is intentionally NOT included - you must provide your own\nimplementation since response handling is typically service-specific.\n\nUsage:\n```typescript\nclass MyEntityService extends EventTarget {\n private dispatch = createDispatch(this);\n\n setupHandlers() {\n this.service.Get.setHandlers({\n ...DefaultServiceEventHandlers(this.dispatch),\n onResponse: (response, serverResponse) => {\n // Your custom response handling\n this.entity.fromLiteral(response.entity);\n this.dispatch(\"response-received\", { response, serverResponse });\n },\n });\n }\n}\n```\n\nWith loading check:\n```typescript\nthis.service.Get.setHandlers({\n ...DefaultServiceEventHandlers(this.dispatch, {\n isLoading: () => this.service.Get.isLoading || this.service.Update.isLoading,\n }),\n onResponse: (response, serverResponse) => { ... },\n});\n```",
2646
- "return": {
2647
- "type": {
2648
- "text": ""
2649
- }
2650
- }
2651
- },
2652
- {
2653
- "kind": "function",
2654
- "name": "CreateDispatch",
2655
- "return": {
2656
- "type": {
2657
- "text": ""
2658
- }
2659
- },
2660
- "parameters": [
2661
- {
2662
- "name": "target",
2663
- "type": {
2664
- "text": "EventTarget"
2665
- },
2666
- "description": "The EventTarget to dispatch events on"
2667
- }
2668
- ],
2669
- "description": "### createDispatch\n\nHelper to create a typed dispatch function for an EventTarget.\n\nUsage:\n```typescript\nclass MyService extends EventTarget {\n private dispatch = createDispatch(this);\n\n doSomething() {\n this.dispatch(\"busy-changed\", { busy: true });\n }\n}\n```"
2670
- }
2671
- ],
2672
- "exports": [
2673
- {
2674
- "kind": "js",
2675
- "name": "DefaultServiceEventHandlers",
2676
- "declaration": {
2677
- "name": "DefaultServiceEventHandlers",
2678
- "module": "src/decorators/DefaultServiceEventHandlers.ts"
2679
- }
2680
- },
2681
- {
2682
- "kind": "js",
2683
- "name": "CreateDispatch",
2684
- "declaration": {
2685
- "name": "CreateDispatch",
2686
- "module": "src/decorators/DefaultServiceEventHandlers.ts"
2687
- }
2688
- }
2689
- ]
2690
- },
2691
- {
2692
- "kind": "javascript-module",
2693
- "path": "dist/decorators/EntityServiceTypes.js",
2694
- "declarations": [],
2695
- "exports": []
2696
- },
2697
- {
2698
- "kind": "javascript-module",
2699
- "path": "dist/decorators/FieldBindings.js",
2700
- "declarations": [
2701
- {
2702
- "kind": "variable",
2703
- "name": "fieldBindings",
2704
- "type": {
2705
- "text": "object"
2706
- },
2707
- "default": "{ /** * Decorator for the `model` property. * * Handles: * - Binding/unbinding when model changes * - Resolving reader/writer functions based on model type * - Calling reader on model value changes * - Providing `writeToModel()` method */ model() { return function modelDecorator(target: object, propertyKey: string) { const ctor = target.constructor as typeof ReactiveElement; // Patch lifecycle patchLifecycle(ctor); // Add writeToModel helper method if (!Object.prototype.hasOwnProperty.call(target, \"writeToModel\")) { Object.defineProperty(target, \"writeToModel\", { value: function writeToModel(this: LitElement & Record<symbol, (() => void) | undefined>) { const writeFn = this[MODEL_WRITE_FN]; if (writeFn) { try { writeFn(); } catch (e) { console.error(\"Failed to write to model:\", e); } } }, writable: false, enumerable: false, configurable: true, }); } // Create getter/setter for the model property Object.defineProperty(target, propertyKey, { get(this: LitElement & Record<symbol, FieldNodeLike | undefined>): FieldNodeLike | undefined { return this[CURRENT_MODEL]; }, set(this: LitElement & BindableComponent & Record<symbol, FieldNodeLike | (() => void) | undefined>, value: FieldNodeLike | undefined) { const oldModel = this[CURRENT_MODEL] as FieldNodeLike | undefined; if (value === oldModel) return; // Unbind from old model if (oldModel) { unbindFromModel(this, oldModel); } // Store new model this[CURRENT_MODEL] = value; // Resolve reader/writer functions based on type if (value) { const typeName = value.__meta?.typeName ?? \"primitives.STRING\"; // Resolve reader // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- runtime data may not match types (REST API input) const reader = this.modelReaders?.get(typeName); if (reader) { this[MODEL_READ_FN] = reader.bind(this); } else { // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- runtime data may not match types (REST API input) console.warn(`No modelReader for type \"${typeName}\". Available: ${[...(this.modelReaders?.keys() ?? [])].join(\", \")}`); this[MODEL_READ_FN] = undefined; } // Resolve writer // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- runtime data may not match types (REST API input) const writer = this.modelWriters?.get(typeName); if (writer) { this[MODEL_WRITE_FN] = writer.bind(this); } else { // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- runtime data may not match types (REST API input) console.warn(`No modelWriter for type \"${typeName}\". Available: ${[...(this.modelWriters?.keys() ?? [])].join(\", \")}`); this[MODEL_WRITE_FN] = undefined; } } else { this[MODEL_READ_FN] = undefined; this[MODEL_WRITE_FN] = undefined; } // Bind to new model (if connected) if (value && this.isConnected) { bindToModel(this, value); } // Trigger Lit update this.requestUpdate(); }, enumerable: true, configurable: true, }); }; }, /** * Binds a method to an event on the model. * When the event fires, the method is called with the event detail. * * @param eventType - The event type to listen for */ onEvent(eventType: ModelEventType) { return function onEventDecorator(target: object, propertyKey: string, descriptor: PropertyDescriptor) { // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment const originalMethod = descriptor.value; const ctor = target.constructor as typeof ReactiveElement; let events = (ctor as unknown as Record<symbol, FieldEventMeta[]>)[FIELD_EVENTS]; // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- runtime data may not match types (REST API input) if (!events) { events = []; (ctor as unknown as Record<symbol, FieldEventMeta[]>)[FIELD_EVENTS] = events; } // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment events.push({ propertyKey, eventType, method: originalMethod }); patchLifecycle(ctor); }; }, /** * Decorator that marks a method to be called once after a new model is assigned and bound. * * Useful for one-time setup like setting a11y attributes, placeholders, or constraints * based on the model's type. * * @example * ```typescript * @fieldBindings.onInit() * protected init() { * this.accessibleName = this.model?.__label ?? \"Toggle\"; * } * ``` */ onInit() { return function onInitDecorator(target: object, propertyKey: string, descriptor: PropertyDescriptor) { // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment const originalMethod = descriptor.value; const ctor = target.constructor as typeof ReactiveElement; // eslint-disable-next-line @typescript-eslint/no-unsafe-function-type let inits = (ctor as unknown as Record<symbol, { propertyKey: string; method: Function }[]>)[FIELD_INIT_METHODS]; // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- runtime data may not match types (REST API input) if (!inits) { inits = []; // eslint-disable-next-line @typescript-eslint/no-unsafe-function-type (ctor as unknown as Record<symbol, { propertyKey: string; method: Function }[]>)[FIELD_INIT_METHODS] = inits; } // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment inits.push({ propertyKey, method: originalMethod }); patchLifecycle(ctor); }; }, }",
2708
- "description": "### fieldBindings\n\nDecorators for creating reusable components that bind to FieldNode models.\n\nThe component provides `modelReaders` and `modelWriters` maps keyed by\n`__meta.typeName`. The decorator handles:\n- Binding/unbinding on model change\n- Calling the correct reader when model value changes\n- Providing `writeToModel()` method that calls the correct writer"
2709
- }
2710
- ],
2711
- "exports": [
2712
- {
2713
- "kind": "js",
2714
- "name": "fieldBindings",
2715
- "declaration": {
2716
- "name": "fieldBindings",
2717
- "module": "src/decorators/FieldBindings.ts"
2718
- }
2719
- }
2720
- ]
2721
- },
2722
- {
2723
- "kind": "javascript-module",
2724
- "path": "dist/decorators/ModelDecorators.js",
2725
- "declarations": [
2726
- {
2727
- "kind": "function",
2728
- "name": "ModelBindings",
2729
- "parameters": [
2730
- {
2731
- "name": "model",
2732
- "type": {
2733
- "text": "FieldNodeLike"
2734
- },
2735
- "description": "The FieldNode model to bind to"
2736
- }
2737
- ],
2738
- "description": "### ModelBindings Factory\n\nCreates type-safe decorators bound to a specific FieldNode model.\nUse this to bind component properties and methods to model events.\n\nUsage:\n```typescript\nimport { ModelBindings } from \"@x/furo/open-models/ModelDecorators\";\nimport { CubeEntityModel } from \"./CubeEntityModel\";\n\nconst cubeModel = ModelBindings(CubeEntityModel.model);\n\nclass MyComponent extends LitElement {\n // Triggers re-render on any model update",
2739
- "return": {
2740
- "type": {
2741
- "text": ""
2742
- }
2743
- }
2744
- }
2745
- ],
2746
- "exports": [
2747
- {
2748
- "kind": "js",
2749
- "name": "ModelBindings",
2750
- "declaration": {
2751
- "name": "ModelBindings",
2752
- "module": "src/decorators/ModelDecorators.ts"
2753
- }
2754
- }
2755
- ]
2756
- },
2757
- {
2758
- "kind": "javascript-module",
2759
- "path": "dist/decorators/SchemaBuilder.js",
2760
- "declarations": [
2761
- {
2762
- "kind": "class",
2763
- "description": "",
2764
- "name": "SchemaBuilder",
2765
- "members": [
2766
- {
2767
- "kind": "method",
2768
- "name": "generate",
2769
- "privacy": "public",
2770
- "static": true,
2771
- "return": {
2772
- "type": {
2773
- "text": "JSONSchema7"
2774
- }
2775
- },
2776
- "parameters": [
2777
- {
2778
- "name": "model",
2779
- "type": {
2780
- "text": "FieldNode"
2781
- }
2782
- }
2783
- ]
2784
- },
2785
- {
2786
- "kind": "method",
2787
- "name": "getProps",
2788
- "privacy": "private",
2789
- "static": true,
2790
- "return": {
2791
- "type": {
2792
- "text": "Record<string, JSONSchema7Definition>"
2793
- }
2794
- },
2795
- "parameters": [
2796
- {
2797
- "name": "model",
2798
- "type": {
2799
- "text": "FieldNode"
2800
- }
2801
- }
2802
- ]
2803
- },
2804
- {
2805
- "kind": "method",
2806
- "name": "getRequiredFields",
2807
- "privacy": "private",
2808
- "static": true,
2809
- "return": {
2810
- "type": {
2811
- "text": "string[]"
2812
- }
2813
- },
2814
- "parameters": [
2815
- {
2816
- "name": "descriptors",
2817
- "type": {
2818
- "text": "FieldDescriptor[]"
2819
- }
2820
- }
2821
- ]
2822
- },
2823
- {
2824
- "kind": "method",
2825
- "name": "getConstraints",
2826
- "privacy": "private",
2827
- "static": true,
2828
- "parameters": [
2829
- {
2830
- "name": "constraints",
2831
- "type": {
2832
- "text": "FieldConstraints | undefined"
2833
- }
2834
- }
2835
- ]
2836
- },
2837
- {
2838
- "kind": "method",
2839
- "name": "createFieldNodeFromSchema",
2840
- "privacy": "public",
2841
- "static": true,
2842
- "return": {
2843
- "type": {
2844
- "text": "FieldNode"
2845
- }
2846
- },
2847
- "parameters": [
2848
- {
2849
- "name": "schema",
2850
- "type": {
2851
- "text": "FieldNodeSchema"
2852
- }
2853
- }
2854
- ]
2855
- }
2856
- ]
2857
- }
2858
- ],
2859
- "exports": [
2860
- {
2861
- "kind": "js",
2862
- "name": "SchemaBuilder",
2863
- "declaration": {
2864
- "name": "SchemaBuilder",
2865
- "module": "src/decorators/SchemaBuilder.ts"
2866
- }
2867
- }
2868
- ]
2869
- },
2870
- {
2871
- "kind": "javascript-module",
2872
- "path": "dist/decorators/ServiceDecorators.js",
2873
- "declarations": [
2874
- {
2875
- "kind": "function",
2876
- "name": "ServiceBindings",
2877
- "parameters": [
2878
- {
2879
- "name": "service",
2880
- "type": {
2881
- "text": "EventTarget"
2882
- },
2883
- "description": "The EventTarget service to bind to"
2884
- }
2885
- ],
2886
- "description": "### ServiceBindings Factory\n\nCreates type-safe decorators bound to a specific service instance.\nUse this to bind component properties and methods to service events.\n\nThe factory is generic and works with any `EventTarget`.\nEvent types and their detail payloads are type-checked at compile time\nvia the `TEventMap` type parameter.\n\nUsage:\n```typescript\nimport { cubeEntityService } from \"./CubeEntityService\";\nimport { ServiceBindings } from \"./ServiceDecorators\";\n\nconst cube = ServiceBindings(cubeEntityService);\n\nclass MyComponent extends LitElement {\n // Property binding - type-safe event name, auto-extracts from detail",
2887
- "return": {
2888
- "type": {
2889
- "text": ""
2890
- }
2891
- }
2892
- }
2893
- ],
2894
- "exports": [
2895
- {
2896
- "kind": "js",
2897
- "name": "ServiceBindings",
2898
- "declaration": {
2899
- "name": "ServiceBindings",
2900
- "module": "src/decorators/ServiceDecorators.ts"
2901
- }
2902
- }
2903
- ]
2904
- },
2905
2621
  {
2906
2622
  "kind": "javascript-module",
2907
2623
  "path": "dist/proxies/ARRAY.js",
@@ -22412,25 +22128,252 @@
22412
22128
  },
22413
22129
  {
22414
22130
  "kind": "method",
22415
- "name": "__PrimitivesSetter",
22416
- "privacy": "protected",
22131
+ "name": "__PrimitivesSetter",
22132
+ "privacy": "protected",
22133
+ "parameters": [
22134
+ {
22135
+ "name": "targetNode",
22136
+ "type": {
22137
+ "text": "FieldNode"
22138
+ },
22139
+ "description": "The field of a FieldNode"
22140
+ },
22141
+ {
22142
+ "name": "value",
22143
+ "type": {
22144
+ "text": "string | boolean | number"
22145
+ },
22146
+ "description": "The value you want to set"
22147
+ }
22148
+ ],
22149
+ "description": "Helper method to update a skalar / primitive field of a type. Used by the generated models.\nTriggers also the validation and clearance, if needed.",
22150
+ "inheritedFrom": {
22151
+ "name": "FieldNode",
22152
+ "module": "dist/FieldNode.js"
22153
+ }
22154
+ },
22155
+ {
22156
+ "kind": "method",
22157
+ "name": "__TypeSetter",
22158
+ "privacy": "protected",
22159
+ "parameters": [
22160
+ {
22161
+ "name": "targetNode",
22162
+ "type": {
22163
+ "text": "FieldNode"
22164
+ },
22165
+ "description": "The field of a FieldNode"
22166
+ },
22167
+ {
22168
+ "name": "literalData",
22169
+ "type": {
22170
+ "text": ""
22171
+ },
22172
+ "description": "The literal type matches the interface from ITypeName."
22173
+ }
22174
+ ],
22175
+ "description": "Helper method to update a field of a type. Used by the generated models.\nTriggers also the validation and clearance, if needed.",
22176
+ "inheritedFrom": {
22177
+ "name": "FieldNode",
22178
+ "module": "dist/FieldNode.js"
22179
+ }
22180
+ },
22181
+ {
22182
+ "kind": "method",
22183
+ "name": "__notifyFieldValueChange",
22184
+ "privacy": "protected",
22185
+ "parameters": [
22186
+ {
22187
+ "name": "bubbles",
22188
+ "optional": true,
22189
+ "type": {
22190
+ "text": "boolean"
22191
+ }
22192
+ }
22193
+ ],
22194
+ "description": "Notifies field changes",
22195
+ "inheritedFrom": {
22196
+ "name": "FieldNode",
22197
+ "module": "dist/FieldNode.js"
22198
+ }
22199
+ },
22200
+ {
22201
+ "kind": "field",
22202
+ "name": "__childNodes",
22203
+ "type": {
22204
+ "text": "any[]"
22205
+ },
22206
+ "privacy": "public",
22207
+ "description": "Returns the child nodes of a node.",
22208
+ "readonly": true,
22209
+ "inheritedFrom": {
22210
+ "name": "FieldNode",
22211
+ "module": "dist/FieldNode.js"
22212
+ }
22213
+ },
22214
+ {
22215
+ "kind": "method",
22216
+ "name": "__broadcastEvent",
22217
+ "parameters": [
22218
+ {
22219
+ "name": "event",
22220
+ "type": {
22221
+ "text": "CustomEvent"
22222
+ }
22223
+ }
22224
+ ],
22225
+ "description": "Broadcast an event to all child nodes of a field node.",
22226
+ "inheritedFrom": {
22227
+ "name": "FieldNode",
22228
+ "module": "dist/FieldNode.js"
22229
+ }
22230
+ },
22231
+ {
22232
+ "kind": "method",
22233
+ "name": "__dispatchEvent",
22234
+ "return": {
22235
+ "type": {
22236
+ "text": "CustomEvent"
22237
+ }
22238
+ },
22239
+ "parameters": [
22240
+ {
22241
+ "name": "event",
22242
+ "type": {
22243
+ "text": "CustomEvent"
22244
+ },
22245
+ "description": "A generic custom event."
22246
+ }
22247
+ ],
22248
+ "description": "Dispatches a custom event on a FieldNode",
22249
+ "inheritedFrom": {
22250
+ "name": "FieldNode",
22251
+ "module": "dist/FieldNode.js"
22252
+ }
22253
+ },
22254
+ {
22255
+ "kind": "method",
22256
+ "name": "__triggerNodeEvents",
22257
+ "privacy": "protected",
22258
+ "parameters": [
22259
+ {
22260
+ "name": "event",
22261
+ "type": {
22262
+ "text": "CustomEvent<FieldNode>"
22263
+ }
22264
+ }
22265
+ ],
22266
+ "description": "Helper method to invoke/execute the event on the current node",
22267
+ "inheritedFrom": {
22268
+ "name": "FieldNode",
22269
+ "module": "dist/FieldNode.js"
22270
+ }
22271
+ },
22272
+ {
22273
+ "kind": "method",
22274
+ "name": "__addEventListener",
22275
+ "privacy": "public",
22276
+ "return": {
22277
+ "type": {
22278
+ "text": "void"
22279
+ }
22280
+ },
22281
+ "parameters": [
22282
+ {
22283
+ "name": "type",
22284
+ "type": {
22285
+ "text": "string"
22286
+ },
22287
+ "description": "A case-sensitive string representing the event type to listen for."
22288
+ },
22289
+ {
22290
+ "name": "listener",
22291
+ "type": {
22292
+ "text": "function"
22293
+ },
22294
+ "description": "The object that receives a notification (an object that implements the Event interface) when an event of the specified type occurs. This must be null, an object with a handleEvent() method, or a JavaScript function. See The event listener callback for details on the callback itself."
22295
+ },
22296
+ {
22297
+ "name": "options",
22298
+ "optional": true,
22299
+ "type": {
22300
+ "text": ""
22301
+ },
22302
+ "description": "An object that specifies characteristics about the event listener. \\n\\nThe available option is `once:boolean`"
22303
+ }
22304
+ ],
22305
+ "description": "Add a handler to a node",
22306
+ "inheritedFrom": {
22307
+ "name": "FieldNode",
22308
+ "module": "dist/FieldNode.js"
22309
+ }
22310
+ },
22311
+ {
22312
+ "kind": "method",
22313
+ "name": "__addCustomEventListener",
22314
+ "privacy": "public",
22315
+ "return": {
22316
+ "type": {
22317
+ "text": "void"
22318
+ }
22319
+ },
22320
+ "parameters": [
22321
+ {
22322
+ "name": "type",
22323
+ "type": {
22324
+ "text": "string"
22325
+ }
22326
+ },
22327
+ {
22328
+ "name": "handler",
22329
+ "type": {
22330
+ "text": "CustomEventListener"
22331
+ }
22332
+ },
22333
+ {
22334
+ "name": "options",
22335
+ "optional": true,
22336
+ "type": {
22337
+ "text": "boolean | AddEventListenerOptions"
22338
+ }
22339
+ }
22340
+ ],
22341
+ "inheritedFrom": {
22342
+ "name": "FieldNode",
22343
+ "module": "dist/FieldNode.js"
22344
+ }
22345
+ },
22346
+ {
22347
+ "kind": "method",
22348
+ "name": "__removeEventListener",
22349
+ "privacy": "public",
22350
+ "return": {
22351
+ "type": {
22352
+ "text": "void"
22353
+ }
22354
+ },
22417
22355
  "parameters": [
22418
22356
  {
22419
- "name": "targetNode",
22357
+ "name": "type",
22420
22358
  "type": {
22421
- "text": "FieldNode"
22422
- },
22423
- "description": "The field of a FieldNode"
22359
+ "text": "ModelEventType"
22360
+ }
22424
22361
  },
22425
22362
  {
22426
- "name": "value",
22363
+ "name": "handler",
22427
22364
  "type": {
22428
- "text": "string | boolean | number"
22429
- },
22430
- "description": "The value you want to set"
22365
+ "text": "CustomEventListener"
22366
+ }
22367
+ },
22368
+ {
22369
+ "name": "_options",
22370
+ "optional": true,
22371
+ "type": {
22372
+ "text": "boolean | EventListenerOptions"
22373
+ }
22431
22374
  }
22432
22375
  ],
22433
- "description": "Helper method to update a skalar / primitive field of a type. Used by the generated models.\nTriggers also the validation and clearance, if needed.",
22376
+ "description": "Removes the handler from a node",
22434
22377
  "inheritedFrom": {
22435
22378
  "name": "FieldNode",
22436
22379
  "module": "dist/FieldNode.js"
@@ -22438,25 +22381,35 @@
22438
22381
  },
22439
22382
  {
22440
22383
  "kind": "method",
22441
- "name": "__TypeSetter",
22442
- "privacy": "protected",
22384
+ "name": "__removeCustomEventListener",
22385
+ "privacy": "public",
22386
+ "return": {
22387
+ "type": {
22388
+ "text": "void"
22389
+ }
22390
+ },
22443
22391
  "parameters": [
22444
22392
  {
22445
- "name": "targetNode",
22393
+ "name": "type",
22446
22394
  "type": {
22447
- "text": "FieldNode"
22448
- },
22449
- "description": "The field of a FieldNode"
22395
+ "text": "string"
22396
+ }
22450
22397
  },
22451
22398
  {
22452
- "name": "literalData",
22399
+ "name": "handler",
22453
22400
  "type": {
22454
- "text": ""
22455
- },
22456
- "description": "The literal type matches the interface from ITypeName."
22401
+ "text": "CustomEventListener"
22402
+ }
22403
+ },
22404
+ {
22405
+ "name": "_options",
22406
+ "optional": true,
22407
+ "type": {
22408
+ "text": "boolean | EventListenerOptions"
22409
+ }
22457
22410
  }
22458
22411
  ],
22459
- "description": "Helper method to update a field of a type. Used by the generated models.\nTriggers also the validation and clearance, if needed.",
22412
+ "description": "Removes the handler from a node",
22460
22413
  "inheritedFrom": {
22461
22414
  "name": "FieldNode",
22462
22415
  "module": "dist/FieldNode.js"
@@ -22464,32 +22417,16 @@
22464
22417
  },
22465
22418
  {
22466
22419
  "kind": "method",
22467
- "name": "__notifyFieldValueChange",
22468
- "privacy": "protected",
22420
+ "name": "__toLowerCamelCase",
22421
+ "privacy": "private",
22469
22422
  "parameters": [
22470
22423
  {
22471
- "name": "bubbles",
22472
- "optional": true,
22424
+ "name": "string",
22473
22425
  "type": {
22474
- "text": "boolean"
22426
+ "text": "string"
22475
22427
  }
22476
22428
  }
22477
22429
  ],
22478
- "description": "Notifies field changes",
22479
- "inheritedFrom": {
22480
- "name": "FieldNode",
22481
- "module": "dist/FieldNode.js"
22482
- }
22483
- },
22484
- {
22485
- "kind": "field",
22486
- "name": "__childNodes",
22487
- "type": {
22488
- "text": "any[]"
22489
- },
22490
- "privacy": "public",
22491
- "description": "Returns the child nodes of a node.",
22492
- "readonly": true,
22493
22430
  "inheritedFrom": {
22494
22431
  "name": "FieldNode",
22495
22432
  "module": "dist/FieldNode.js"
@@ -22497,16 +22434,16 @@
22497
22434
  },
22498
22435
  {
22499
22436
  "kind": "method",
22500
- "name": "__broadcastEvent",
22437
+ "name": "__toLowerCamelCaseWithoutXPrefix",
22438
+ "privacy": "protected",
22501
22439
  "parameters": [
22502
22440
  {
22503
- "name": "event",
22441
+ "name": "string",
22504
22442
  "type": {
22505
- "text": "CustomEvent"
22443
+ "text": "string"
22506
22444
  }
22507
22445
  }
22508
22446
  ],
22509
- "description": "Broadcast an event to all child nodes of a field node.",
22510
22447
  "inheritedFrom": {
22511
22448
  "name": "FieldNode",
22512
22449
  "module": "dist/FieldNode.js"
@@ -22514,270 +22451,333 @@
22514
22451
  },
22515
22452
  {
22516
22453
  "kind": "method",
22517
- "name": "__dispatchEvent",
22454
+ "name": "__toSnakeCase",
22455
+ "privacy": "private",
22518
22456
  "return": {
22519
22457
  "type": {
22520
- "text": "CustomEvent"
22458
+ "text": "string"
22521
22459
  }
22522
22460
  },
22523
22461
  "parameters": [
22524
22462
  {
22525
- "name": "event",
22463
+ "name": "string",
22526
22464
  "type": {
22527
- "text": "CustomEvent"
22528
- },
22529
- "description": "A generic custom event."
22465
+ "text": "string"
22466
+ }
22530
22467
  }
22531
22468
  ],
22532
- "description": "Dispatches a custom event on a FieldNode",
22533
22469
  "inheritedFrom": {
22534
22470
  "name": "FieldNode",
22535
22471
  "module": "dist/FieldNode.js"
22536
22472
  }
22537
22473
  },
22538
22474
  {
22539
- "kind": "method",
22540
- "name": "__triggerNodeEvents",
22541
- "privacy": "protected",
22542
- "parameters": [
22543
- {
22544
- "name": "event",
22545
- "type": {
22546
- "text": "CustomEvent<FieldNode>"
22547
- }
22548
- }
22549
- ],
22550
- "description": "Helper method to invoke/execute the event on the current node",
22475
+ "kind": "field",
22476
+ "name": "fieldName",
22477
+ "default": "parentAttributeName",
22551
22478
  "inheritedFrom": {
22552
22479
  "name": "FieldNode",
22553
22480
  "module": "dist/FieldNode.js"
22554
22481
  }
22482
+ }
22483
+ ],
22484
+ "superclass": {
22485
+ "name": "FieldNode",
22486
+ "module": "/src/FieldNode"
22487
+ }
22488
+ }
22489
+ ],
22490
+ "exports": [
22491
+ {
22492
+ "kind": "js",
22493
+ "name": "UINT64",
22494
+ "declaration": {
22495
+ "name": "UINT64",
22496
+ "module": "src/primitives/UINT64.ts"
22497
+ }
22498
+ }
22499
+ ]
22500
+ },
22501
+ {
22502
+ "kind": "javascript-module",
22503
+ "path": "dist/decorators/DefaultServiceEventHandlers.js",
22504
+ "declarations": [
22505
+ {
22506
+ "kind": "function",
22507
+ "name": "DefaultServiceEventHandlers",
22508
+ "parameters": [
22509
+ {
22510
+ "name": "dispatch",
22511
+ "type": {
22512
+ "text": "DispatchFn"
22513
+ },
22514
+ "description": "Function to dispatch events (typically bound to the service's dispatchEvent)"
22555
22515
  },
22556
22516
  {
22557
- "kind": "method",
22558
- "name": "__addEventListener",
22559
- "privacy": "public",
22560
- "return": {
22561
- "type": {
22562
- "text": "void"
22563
- }
22517
+ "name": "options",
22518
+ "default": "{}",
22519
+ "type": {
22520
+ "text": "DefaultServiceEventHandlersOptions"
22521
+ },
22522
+ "description": "Optional configuration"
22523
+ }
22524
+ ],
22525
+ "description": "### DefaultServiceEventHandlers\n\nCreates default service handlers that dispatch standard events.\nUse this to reduce boilerplate when setting up service handlers.\n\nThe `onResponse` handler is intentionally NOT included - you must provide your own\nimplementation since response handling is typically service-specific.\n\nUsage:\n```typescript\nclass MyEntityService extends EventTarget {\n private dispatch = createDispatch(this);\n\n setupHandlers() {\n this.service.Get.setHandlers({\n ...DefaultServiceEventHandlers(this.dispatch),\n onResponse: (response, serverResponse) => {\n // Your custom response handling\n this.entity.fromLiteral(response.entity);\n this.dispatch(\"response-received\", { response, serverResponse });\n },\n });\n }\n}\n```\n\nWith loading check:\n```typescript\nthis.service.Get.setHandlers({\n ...DefaultServiceEventHandlers(this.dispatch, {\n isLoading: () => this.service.Get.isLoading || this.service.Update.isLoading,\n }),\n onResponse: (response, serverResponse) => { ... },\n});\n```",
22526
+ "return": {
22527
+ "type": {
22528
+ "text": ""
22529
+ }
22530
+ }
22531
+ },
22532
+ {
22533
+ "kind": "function",
22534
+ "name": "CreateDispatch",
22535
+ "return": {
22536
+ "type": {
22537
+ "text": ""
22538
+ }
22539
+ },
22540
+ "parameters": [
22541
+ {
22542
+ "name": "target",
22543
+ "type": {
22544
+ "text": "EventTarget"
22545
+ },
22546
+ "description": "The EventTarget to dispatch events on"
22547
+ }
22548
+ ],
22549
+ "description": "### createDispatch\n\nHelper to create a typed dispatch function for an EventTarget.\n\nUsage:\n```typescript\nclass MyService extends EventTarget {\n private dispatch = createDispatch(this);\n\n doSomething() {\n this.dispatch(\"busy-changed\", { busy: true });\n }\n}\n```"
22550
+ }
22551
+ ],
22552
+ "exports": [
22553
+ {
22554
+ "kind": "js",
22555
+ "name": "DefaultServiceEventHandlers",
22556
+ "declaration": {
22557
+ "name": "DefaultServiceEventHandlers",
22558
+ "module": "src/decorators/DefaultServiceEventHandlers.ts"
22559
+ }
22560
+ },
22561
+ {
22562
+ "kind": "js",
22563
+ "name": "CreateDispatch",
22564
+ "declaration": {
22565
+ "name": "CreateDispatch",
22566
+ "module": "src/decorators/DefaultServiceEventHandlers.ts"
22567
+ }
22568
+ }
22569
+ ]
22570
+ },
22571
+ {
22572
+ "kind": "javascript-module",
22573
+ "path": "dist/decorators/EntityServiceTypes.js",
22574
+ "declarations": [],
22575
+ "exports": []
22576
+ },
22577
+ {
22578
+ "kind": "javascript-module",
22579
+ "path": "dist/decorators/FieldBindings.js",
22580
+ "declarations": [
22581
+ {
22582
+ "kind": "variable",
22583
+ "name": "fieldBindings",
22584
+ "type": {
22585
+ "text": "object"
22586
+ },
22587
+ "default": "{ /** * Decorator for the `model` property. * * Handles: * - Binding/unbinding when model changes * - Resolving reader/writer functions based on model type * - Calling reader on model value changes * - Providing `writeToModel()` method */ model() { return function modelDecorator(target: object, propertyKey: string) { const ctor = target.constructor as typeof ReactiveElement; // Patch lifecycle patchLifecycle(ctor); // Add writeToModel helper method if (!Object.prototype.hasOwnProperty.call(target, \"writeToModel\")) { Object.defineProperty(target, \"writeToModel\", { value: function writeToModel(this: LitElement & Record<symbol, (() => void) | undefined>) { const writeFn = this[MODEL_WRITE_FN]; if (writeFn) { try { writeFn(); } catch (e) { console.error(\"Failed to write to model:\", e); } } }, writable: false, enumerable: false, configurable: true, }); } // Create getter/setter for the model property Object.defineProperty(target, propertyKey, { get(this: LitElement & Record<symbol, FieldNodeLike | undefined>): FieldNodeLike | undefined { return this[CURRENT_MODEL]; }, set(this: LitElement & BindableComponent & Record<symbol, FieldNodeLike | (() => void) | undefined>, value: FieldNodeLike | undefined) { const oldModel = this[CURRENT_MODEL] as FieldNodeLike | undefined; if (value === oldModel) return; // Unbind from old model if (oldModel) { unbindFromModel(this, oldModel); } // Store new model this[CURRENT_MODEL] = value; // Resolve reader/writer functions based on type if (value) { const typeName = value.__meta?.typeName ?? \"primitives.STRING\"; // Resolve reader // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- runtime data may not match types (REST API input) const reader = this.modelReaders?.get(typeName); if (reader) { this[MODEL_READ_FN] = reader.bind(this); } else { // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- runtime data may not match types (REST API input) console.warn(`No modelReader for type \"${typeName}\". Available: ${[...(this.modelReaders?.keys() ?? [])].join(\", \")}`); this[MODEL_READ_FN] = undefined; } // Resolve writer // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- runtime data may not match types (REST API input) const writer = this.modelWriters?.get(typeName); if (writer) { this[MODEL_WRITE_FN] = writer.bind(this); } else { // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- runtime data may not match types (REST API input) console.warn(`No modelWriter for type \"${typeName}\". Available: ${[...(this.modelWriters?.keys() ?? [])].join(\", \")}`); this[MODEL_WRITE_FN] = undefined; } } else { this[MODEL_READ_FN] = undefined; this[MODEL_WRITE_FN] = undefined; } // Bind to new model (if connected) if (value && this.isConnected) { bindToModel(this, value); } // Trigger Lit update this.requestUpdate(); }, enumerable: true, configurable: true, }); }; }, /** * Binds a method to an event on the model. * When the event fires, the method is called with the event detail. * * @param eventType - The event type to listen for */ onEvent(eventType: ModelEventType) { return function onEventDecorator(target: object, propertyKey: string, descriptor: PropertyDescriptor) { // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment const originalMethod = descriptor.value; const ctor = target.constructor as typeof ReactiveElement; let events = (ctor as unknown as Record<symbol, FieldEventMeta[]>)[FIELD_EVENTS]; // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- runtime data may not match types (REST API input) if (!events) { events = []; (ctor as unknown as Record<symbol, FieldEventMeta[]>)[FIELD_EVENTS] = events; } // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment events.push({ propertyKey, eventType, method: originalMethod }); patchLifecycle(ctor); }; }, /** * Decorator that marks a method to be called once after a new model is assigned and bound. * * Useful for one-time setup like setting a11y attributes, placeholders, or constraints * based on the model's type. * * @example * ```typescript * @fieldBindings.onInit() * protected init() { * this.accessibleName = this.model?.__label ?? \"Toggle\"; * } * ``` */ onInit() { return function onInitDecorator(target: object, propertyKey: string, descriptor: PropertyDescriptor) { // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment const originalMethod = descriptor.value; const ctor = target.constructor as typeof ReactiveElement; // eslint-disable-next-line @typescript-eslint/no-unsafe-function-type let inits = (ctor as unknown as Record<symbol, { propertyKey: string; method: Function }[]>)[FIELD_INIT_METHODS]; // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- runtime data may not match types (REST API input) if (!inits) { inits = []; // eslint-disable-next-line @typescript-eslint/no-unsafe-function-type (ctor as unknown as Record<symbol, { propertyKey: string; method: Function }[]>)[FIELD_INIT_METHODS] = inits; } // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment inits.push({ propertyKey, method: originalMethod }); patchLifecycle(ctor); }; }, }",
22588
+ "description": "### fieldBindings\n\nDecorators for creating reusable components that bind to FieldNode models.\n\nThe component provides `modelReaders` and `modelWriters` maps keyed by\n`__meta.typeName`. The decorator handles:\n- Binding/unbinding on model change\n- Calling the correct reader when model value changes\n- Providing `writeToModel()` method that calls the correct writer"
22589
+ }
22590
+ ],
22591
+ "exports": [
22592
+ {
22593
+ "kind": "js",
22594
+ "name": "fieldBindings",
22595
+ "declaration": {
22596
+ "name": "fieldBindings",
22597
+ "module": "src/decorators/FieldBindings.ts"
22598
+ }
22599
+ }
22600
+ ]
22601
+ },
22602
+ {
22603
+ "kind": "javascript-module",
22604
+ "path": "dist/decorators/ModelDecorators.js",
22605
+ "declarations": [
22606
+ {
22607
+ "kind": "function",
22608
+ "name": "ModelBindings",
22609
+ "parameters": [
22610
+ {
22611
+ "name": "model",
22612
+ "type": {
22613
+ "text": "FieldNodeLike"
22564
22614
  },
22565
- "parameters": [
22566
- {
22567
- "name": "type",
22568
- "type": {
22569
- "text": "string"
22570
- },
22571
- "description": "A case-sensitive string representing the event type to listen for."
22572
- },
22573
- {
22574
- "name": "listener",
22575
- "type": {
22576
- "text": "function"
22577
- },
22578
- "description": "The object that receives a notification (an object that implements the Event interface) when an event of the specified type occurs. This must be null, an object with a handleEvent() method, or a JavaScript function. See The event listener callback for details on the callback itself."
22579
- },
22580
- {
22581
- "name": "options",
22582
- "optional": true,
22583
- "type": {
22584
- "text": ""
22585
- },
22586
- "description": "An object that specifies characteristics about the event listener. \\n\\nThe available option is `once:boolean`"
22587
- }
22588
- ],
22589
- "description": "Add a handler to a node",
22590
- "inheritedFrom": {
22591
- "name": "FieldNode",
22592
- "module": "dist/FieldNode.js"
22593
- }
22594
- },
22615
+ "description": "The FieldNode model to bind to"
22616
+ }
22617
+ ],
22618
+ "description": "### ModelBindings Factory\n\nCreates type-safe decorators bound to a specific FieldNode model.\nUse this to bind component properties and methods to model events.\n\nUsage:\n```typescript\nimport { ModelBindings } from \"@x/furo/open-models/ModelDecorators\";\nimport { CubeEntityModel } from \"./CubeEntityModel\";\n\nconst cubeModel = ModelBindings(CubeEntityModel.model);\n\nclass MyComponent extends LitElement {\n // Triggers re-render on any model update",
22619
+ "return": {
22620
+ "type": {
22621
+ "text": ""
22622
+ }
22623
+ }
22624
+ }
22625
+ ],
22626
+ "exports": [
22627
+ {
22628
+ "kind": "js",
22629
+ "name": "ModelBindings",
22630
+ "declaration": {
22631
+ "name": "ModelBindings",
22632
+ "module": "src/decorators/ModelDecorators.ts"
22633
+ }
22634
+ }
22635
+ ]
22636
+ },
22637
+ {
22638
+ "kind": "javascript-module",
22639
+ "path": "dist/decorators/SchemaBuilder.js",
22640
+ "declarations": [
22641
+ {
22642
+ "kind": "class",
22643
+ "description": "",
22644
+ "name": "SchemaBuilder",
22645
+ "members": [
22595
22646
  {
22596
22647
  "kind": "method",
22597
- "name": "__addCustomEventListener",
22648
+ "name": "generate",
22598
22649
  "privacy": "public",
22650
+ "static": true,
22599
22651
  "return": {
22600
22652
  "type": {
22601
- "text": "void"
22653
+ "text": "JSONSchema7"
22602
22654
  }
22603
22655
  },
22604
22656
  "parameters": [
22605
22657
  {
22606
- "name": "type",
22607
- "type": {
22608
- "text": "string"
22609
- }
22610
- },
22611
- {
22612
- "name": "handler",
22613
- "type": {
22614
- "text": "CustomEventListener"
22615
- }
22616
- },
22617
- {
22618
- "name": "options",
22619
- "optional": true,
22658
+ "name": "model",
22620
22659
  "type": {
22621
- "text": "boolean | AddEventListenerOptions"
22660
+ "text": "FieldNode"
22622
22661
  }
22623
22662
  }
22624
- ],
22625
- "inheritedFrom": {
22626
- "name": "FieldNode",
22627
- "module": "dist/FieldNode.js"
22628
- }
22663
+ ]
22629
22664
  },
22630
22665
  {
22631
22666
  "kind": "method",
22632
- "name": "__removeEventListener",
22633
- "privacy": "public",
22667
+ "name": "getProps",
22668
+ "privacy": "private",
22669
+ "static": true,
22634
22670
  "return": {
22635
22671
  "type": {
22636
- "text": "void"
22672
+ "text": "Record<string, JSONSchema7Definition>"
22637
22673
  }
22638
22674
  },
22639
22675
  "parameters": [
22640
22676
  {
22641
- "name": "type",
22642
- "type": {
22643
- "text": "ModelEventType"
22644
- }
22645
- },
22646
- {
22647
- "name": "handler",
22648
- "type": {
22649
- "text": "CustomEventListener"
22650
- }
22651
- },
22652
- {
22653
- "name": "_options",
22654
- "optional": true,
22677
+ "name": "model",
22655
22678
  "type": {
22656
- "text": "boolean | EventListenerOptions"
22679
+ "text": "FieldNode"
22657
22680
  }
22658
22681
  }
22659
- ],
22660
- "description": "Removes the handler from a node",
22661
- "inheritedFrom": {
22662
- "name": "FieldNode",
22663
- "module": "dist/FieldNode.js"
22664
- }
22682
+ ]
22665
22683
  },
22666
22684
  {
22667
22685
  "kind": "method",
22668
- "name": "__removeCustomEventListener",
22669
- "privacy": "public",
22686
+ "name": "getRequiredFields",
22687
+ "privacy": "private",
22688
+ "static": true,
22670
22689
  "return": {
22671
22690
  "type": {
22672
- "text": "void"
22691
+ "text": "string[]"
22673
22692
  }
22674
22693
  },
22675
22694
  "parameters": [
22676
22695
  {
22677
- "name": "type",
22678
- "type": {
22679
- "text": "string"
22680
- }
22681
- },
22682
- {
22683
- "name": "handler",
22684
- "type": {
22685
- "text": "CustomEventListener"
22686
- }
22687
- },
22688
- {
22689
- "name": "_options",
22690
- "optional": true,
22696
+ "name": "descriptors",
22691
22697
  "type": {
22692
- "text": "boolean | EventListenerOptions"
22698
+ "text": "FieldDescriptor[]"
22693
22699
  }
22694
22700
  }
22695
- ],
22696
- "description": "Removes the handler from a node",
22697
- "inheritedFrom": {
22698
- "name": "FieldNode",
22699
- "module": "dist/FieldNode.js"
22700
- }
22701
+ ]
22701
22702
  },
22702
22703
  {
22703
22704
  "kind": "method",
22704
- "name": "__toLowerCamelCase",
22705
+ "name": "getConstraints",
22705
22706
  "privacy": "private",
22707
+ "static": true,
22706
22708
  "parameters": [
22707
22709
  {
22708
- "name": "string",
22709
- "type": {
22710
- "text": "string"
22711
- }
22712
- }
22713
- ],
22714
- "inheritedFrom": {
22715
- "name": "FieldNode",
22716
- "module": "dist/FieldNode.js"
22717
- }
22718
- },
22719
- {
22720
- "kind": "method",
22721
- "name": "__toLowerCamelCaseWithoutXPrefix",
22722
- "privacy": "protected",
22723
- "parameters": [
22724
- {
22725
- "name": "string",
22710
+ "name": "constraints",
22726
22711
  "type": {
22727
- "text": "string"
22712
+ "text": "FieldConstraints | undefined"
22728
22713
  }
22729
22714
  }
22730
- ],
22731
- "inheritedFrom": {
22732
- "name": "FieldNode",
22733
- "module": "dist/FieldNode.js"
22734
- }
22715
+ ]
22735
22716
  },
22736
22717
  {
22737
22718
  "kind": "method",
22738
- "name": "__toSnakeCase",
22739
- "privacy": "private",
22719
+ "name": "createFieldNodeFromSchema",
22720
+ "privacy": "public",
22721
+ "static": true,
22740
22722
  "return": {
22741
22723
  "type": {
22742
- "text": "string"
22724
+ "text": "FieldNode"
22743
22725
  }
22744
22726
  },
22745
22727
  "parameters": [
22746
22728
  {
22747
- "name": "string",
22729
+ "name": "schema",
22748
22730
  "type": {
22749
- "text": "string"
22731
+ "text": "FieldNodeSchema"
22750
22732
  }
22751
22733
  }
22752
- ],
22753
- "inheritedFrom": {
22754
- "name": "FieldNode",
22755
- "module": "dist/FieldNode.js"
22756
- }
22757
- },
22734
+ ]
22735
+ }
22736
+ ]
22737
+ }
22738
+ ],
22739
+ "exports": [
22740
+ {
22741
+ "kind": "js",
22742
+ "name": "SchemaBuilder",
22743
+ "declaration": {
22744
+ "name": "SchemaBuilder",
22745
+ "module": "src/decorators/SchemaBuilder.ts"
22746
+ }
22747
+ }
22748
+ ]
22749
+ },
22750
+ {
22751
+ "kind": "javascript-module",
22752
+ "path": "dist/decorators/ServiceDecorators.js",
22753
+ "declarations": [
22754
+ {
22755
+ "kind": "function",
22756
+ "name": "ServiceBindings",
22757
+ "parameters": [
22758
22758
  {
22759
- "kind": "field",
22760
- "name": "fieldName",
22761
- "default": "parentAttributeName",
22762
- "inheritedFrom": {
22763
- "name": "FieldNode",
22764
- "module": "dist/FieldNode.js"
22765
- }
22759
+ "name": "service",
22760
+ "type": {
22761
+ "text": "EventTarget"
22762
+ },
22763
+ "description": "The EventTarget service to bind to"
22766
22764
  }
22767
22765
  ],
22768
- "superclass": {
22769
- "name": "FieldNode",
22770
- "module": "/src/FieldNode"
22766
+ "description": "### ServiceBindings Factory\n\nCreates type-safe decorators bound to a specific service instance.\nUse this to bind component properties and methods to service events.\n\nThe factory is generic and works with any `EventTarget`.\nEvent types and their detail payloads are type-checked at compile time\nvia the `TEventMap` type parameter.\n\nUsage:\n```typescript\nimport { cubeEntityService } from \"./CubeEntityService\";\nimport { ServiceBindings } from \"./ServiceDecorators\";\n\nconst cube = ServiceBindings(cubeEntityService);\n\nclass MyComponent extends LitElement {\n // Property binding - type-safe event name, auto-extracts from detail",
22767
+ "return": {
22768
+ "type": {
22769
+ "text": ""
22770
+ }
22771
22771
  }
22772
22772
  }
22773
22773
  ],
22774
22774
  "exports": [
22775
22775
  {
22776
22776
  "kind": "js",
22777
- "name": "UINT64",
22777
+ "name": "ServiceBindings",
22778
22778
  "declaration": {
22779
- "name": "UINT64",
22780
- "module": "src/primitives/UINT64.ts"
22779
+ "name": "ServiceBindings",
22780
+ "module": "src/decorators/ServiceDecorators.ts"
22781
22781
  }
22782
22782
  }
22783
22783
  ]