@gdacm/grafana-items 0.1.19 → 0.1.21

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.
Files changed (70) hide show
  1. package/dist/index.js +631 -422
  2. package/dist/index.js.map +1 -1
  3. package/dist/items/Annotation.d.ts +6 -0
  4. package/dist/items/BarChart.d.ts +2 -1
  5. package/dist/items/Color.d.ts +1 -0
  6. package/dist/items/Dashboard.d.ts +12 -1
  7. package/dist/items/Datasource.d.ts +2 -0
  8. package/dist/items/FieldConfigCustomBarChart.d.ts +13 -0
  9. package/dist/items/FieldConfigCustomTable.d.ts +2 -0
  10. package/dist/items/FieldConfigCustomTableCellOptions.d.ts +1 -0
  11. package/dist/items/FieldConfigCustomTableFooter.d.ts +0 -1
  12. package/dist/items/FieldConfigCustomTimeSerie.d.ts +27 -0
  13. package/dist/items/FieldConfigDefault.d.ts +5 -0
  14. package/dist/items/FieldConfigOverride.d.ts +1 -0
  15. package/dist/items/Gauge.d.ts +1 -0
  16. package/dist/items/Geomap.d.ts +1 -0
  17. package/dist/items/GridPos.d.ts +4 -0
  18. package/dist/items/HideFrom.d.ts +4 -0
  19. package/dist/items/LineStyle.d.ts +1 -0
  20. package/dist/items/Link.d.ts +9 -1
  21. package/dist/items/OverrideMatcher.d.ts +1 -0
  22. package/dist/items/OverrideMatcherOptionsByNames.d.ts +3 -1
  23. package/dist/items/OverrideProperty.d.ts +2 -0
  24. package/dist/items/Panel.d.ts +15 -0
  25. package/dist/items/PanelOptionsBarChart.d.ts +12 -0
  26. package/dist/items/PanelOptionsGauge.d.ts +14 -0
  27. package/dist/items/PanelOptionsGaugeEffect.d.ts +3 -0
  28. package/dist/items/PanelOptionsGaugeReduceOptions.d.ts +3 -1
  29. package/dist/items/PanelOptionsGeomapBasemap.d.ts +3 -0
  30. package/dist/items/PanelOptionsGeomapControls.d.ts +6 -0
  31. package/dist/items/PanelOptionsGeomapLayer.d.ts +3 -0
  32. package/dist/items/PanelOptionsGeomapLayerConfig.d.ts +1 -0
  33. package/dist/items/PanelOptionsGeomapLayerConfigStyle.d.ts +1 -0
  34. package/dist/items/PanelOptionsGeomapLayerLocation.d.ts +1 -0
  35. package/dist/items/PanelOptionsGeomapTooltip.d.ts +1 -0
  36. package/dist/items/PanelOptionsGeomapView.d.ts +7 -0
  37. package/dist/items/PanelOptionsPieChart.d.ts +2 -1
  38. package/dist/items/PanelOptionsTable.d.ts +2 -0
  39. package/dist/items/PanelOptionsTableSortBy.d.ts +2 -0
  40. package/dist/items/PanelOptionsText.d.ts +2 -0
  41. package/dist/items/PanelOptionsTextCode.d.ts +3 -0
  42. package/dist/items/PanelOptionsTimeSeries.d.ts +2 -0
  43. package/dist/items/PieChart.d.ts +1 -0
  44. package/dist/items/PieChartLegendOptions.d.ts +0 -1
  45. package/dist/items/ScaleDistribution.d.ts +1 -0
  46. package/dist/items/Stacking.d.ts +2 -0
  47. package/dist/items/Stat.d.ts +1 -0
  48. package/dist/items/StyleColor.d.ts +1 -0
  49. package/dist/items/StyleRotation.d.ts +4 -0
  50. package/dist/items/StyleSize.d.ts +3 -0
  51. package/dist/items/StyleSymbol.d.ts +3 -0
  52. package/dist/items/StyleSymbolAlign.d.ts +2 -0
  53. package/dist/items/StyleTextConfig.d.ts +5 -0
  54. package/dist/items/Table.d.ts +1 -0
  55. package/dist/items/Target.d.ts +6 -0
  56. package/dist/items/TargetInfinity.d.ts +7 -0
  57. package/dist/items/Template.d.ts +12 -0
  58. package/dist/items/TemplateCurrent.d.ts +2 -0
  59. package/dist/items/TemplateOption.d.ts +3 -0
  60. package/dist/items/TextPanel.d.ts +1 -0
  61. package/dist/items/ThresholdStyle.d.ts +1 -0
  62. package/dist/items/Thresholds.d.ts +1 -0
  63. package/dist/items/ThresholdsStep.d.ts +2 -0
  64. package/dist/items/TimePicker.d.ts +0 -1
  65. package/dist/items/TimeRange.d.ts +2 -0
  66. package/dist/items/TimeSeries.d.ts +2 -1
  67. package/dist/items/VizLegendOptions.d.ts +10 -1
  68. package/dist/items/VizTextDisplayOptions.d.ts +3 -0
  69. package/dist/items/VizTooltipOptions.d.ts +5 -0
  70. package/package.json +2 -2
package/dist/index.js CHANGED
@@ -20,7 +20,7 @@ var asJson = (obj) => {
20
20
  return sortKeys(obj);
21
21
  };
22
22
  //#endregion
23
- //#region src/utils/typesDefinition.js
23
+ //#region src/utils/MetaClassRegistry.js
24
24
  /**
25
25
  * @typedef {import("@gdacm/base-types").GenericMetaOptions} GenericMetaOptions
26
26
  */
@@ -29,72 +29,115 @@ var asJson = (obj) => {
29
29
  * @typedef {import("@gdacm/base-types").MetaConstructor<T>} MetaConstructor
30
30
  */
31
31
  /**
32
- * @typedef {Object} MetaClassInfo
33
- * @property {string[]} methods - The methods defined for the class
34
- * @property {((instance: GrafanaItem)=>void)[]} onInits - The onInit functions defined for the class
35
- * @property {string|undefined} parentName - The name of the parent class
36
- * @property {Function|undefined} parent - The parent class constructor
37
- * @property {String[]} typeNamesToInclude - The type names to include in the generated type definition
32
+ * @template {Object} T
33
+ * @template {T} C
34
+ * @typedef {{
35
+ * methods: string[],
36
+ * onInits: ((instance: C)=>void)[],
37
+ * parentName: string|undefined,
38
+ * parent: MetaConstructor<T>|undefined,
39
+ * typeNamesToInclude: string[]
40
+ * }} MetaClassInfo
38
41
  */
39
42
  /**
40
- * @type {Map<typeof GrafanaItem, MetaClassInfo>}
43
+ * @template {Object} T
41
44
  */
42
- var types = /* @__PURE__ */ new Map();
45
+ var MetaClassRegistry = class {
46
+ constructor() {
47
+ /**
48
+ * @type {Map<MetaConstructor<T>, unknown>}
49
+ */
50
+ this.types = /* @__PURE__ */ new Map();
51
+ }
52
+ /**
53
+ * @template {T} C
54
+ * @param {MetaConstructor<C>} cls
55
+ * @param {MetaClassInfo<T,C>} info
56
+ */
57
+ set(cls, info) {
58
+ this.types.set(cls, info);
59
+ }
60
+ /**
61
+ * @template {T} C
62
+ * @param {MetaConstructor<C>} cls
63
+ * @returns {MetaClassInfo<T,C>}
64
+ */
65
+ get(cls) {
66
+ const info = this.types.get(cls);
67
+ if (info === void 0) throw new Error(`MetaClassInfo not found for class ${cls.name}`);
68
+ return info;
69
+ }
70
+ /**
71
+ * @template {T} C
72
+ * @param {MetaConstructor<C>} cls
73
+ * @returns {boolean}
74
+ */
75
+ has(cls) {
76
+ return this.types.has(cls);
77
+ }
78
+ /**
79
+ * @returns {MetaConstructor<T>[]} The keys of the types map
80
+ */
81
+ keys() {
82
+ return [...this.types.keys()];
83
+ }
84
+ };
85
+ //#endregion
86
+ //#region src/utils/typesReference.js
43
87
  /**
44
- * @param {typeof GrafanaItem} cls
88
+ * @typedef {import("@gdacm/base-types").GenericMetaOptions} GenericMetaOptions
89
+ */
90
+ /**
91
+ * @template T
92
+ * @typedef {import("@gdacm/base-types").MetaConstructor<T>} MetaConstructor
45
93
  */
46
- function defineClass(cls) {
47
- if (!types.has(cls)) {
48
- /** @type {Function|undefined} */
49
- let parent = Object.getPrototypeOf(cls);
50
- if (parent && !parent.name) parent = void 0;
51
- /** @type {((instance: GrafanaItem)=>void)[]} */
52
- let onInitsParent = [];
53
- if (parent && parent.name) onInitsParent = getMetaClassInfo(parent).onInits;
54
- /** @type {MetaClassInfo} */
55
- const metaClassInfo = {
56
- methods: [],
57
- onInits: [...onInitsParent],
58
- parentName: parent?.name,
59
- parent,
60
- typeNamesToInclude: []
61
- };
62
- cls.prototype._onInit = function() {
63
- for (const onInit of metaClassInfo.onInits) onInit(this);
64
- };
65
- types.set(cls, metaClassInfo);
66
- }
67
- return new GrafanaItemClassBuilder(cls);
68
- }
69
94
  /**
70
- *
71
- * @param {typeof GrafanaItem} cls
72
- * @returns {MetaClassInfo}
95
+ * @template {Object} T
96
+ * @template {T} C
97
+ * @typedef {import("./MetaClassRegistry.js").MetaClassInfo<T,C>} MetaClassInfo
73
98
  */
74
- function getMetaClassInfo(cls) {
75
- const metaClassInfo = types.get(cls);
76
- if (metaClassInfo === void 0) throw new Error(`MetaClassInfo not found for class ${cls.name}`);
77
- return metaClassInfo;
78
- }
79
99
  /**
80
- * @param {typeof GrafanaItem} cls
81
- * @param {string} name
100
+ * @type {MetaClassRegistry<GrafanaItem>}
82
101
  */
83
- function hasPrototype(cls, name) {
84
- return cls.prototype[name] !== void 0;
85
- }
102
+ var types = new MetaClassRegistry();
103
+ /**
104
+ * @template {GrafanaItem} C
105
+ * @param {MetaConstructor<C>} cls
106
+ * @returns {boolean} Whether the type exists in the map
107
+ */
108
+ var hasType = (cls) => types.has(cls);
109
+ /**
110
+ * @template {GrafanaItem} C
111
+ * @param {MetaConstructor<C>} cls
112
+ * @returns {MetaClassInfo<GrafanaItem,C>}
113
+ */
114
+ var getMetaClassInfo = (cls) => types.get(cls);
115
+ /**
116
+ * @template {GrafanaItem} C
117
+ * @param {MetaConstructor<C>} cls
118
+ * @param {MetaClassInfo<GrafanaItem,C>} metaClassInfo
119
+ */
120
+ var setTypeMetaClassInfo = (cls, metaClassInfo) => types.set(cls, metaClassInfo);
121
+ /**
122
+ * @template {GrafanaItem} C
123
+ * @param {MetaConstructor<C>} cls
124
+ * @returns {Record<string, unknown>}
125
+ */
126
+ var getPrototype = (cls) => cls.prototype;
86
127
  /**
87
- * @param {typeof GrafanaItem} cls
128
+ * @template {GrafanaItem} C
129
+ * @param {MetaConstructor<C>} cls
88
130
  * @param {string} name
89
131
  * @param {Function} value
90
132
  */
91
133
  function setPrototype(cls, name, value) {
92
- cls.prototype[name] = value;
134
+ getPrototype(cls)[name] = value;
93
135
  }
94
136
  /**
95
- * @param {typeof GrafanaItem} cls
137
+ * @template {GrafanaItem} C
138
+ * @param {MetaConstructor<C>} cls
96
139
  * @param {string} name
97
- * @param {(self: GrafanaItem) => any} getter
140
+ * @param {(self: C) => any} getter
98
141
  */
99
142
  function setGetter(cls, name, getter) {
100
143
  Object.defineProperty(cls.prototype, name, {
@@ -106,9 +149,10 @@ function setGetter(cls, name, getter) {
106
149
  });
107
150
  }
108
151
  /**
109
- * @param {typeof GrafanaItem} cls
152
+ * @template {GrafanaItem} C
153
+ * @param {MetaConstructor<C>} cls
110
154
  * @param {string} name
111
- * @param {(instance: GrafanaItem, value: any) => void} setter
155
+ * @param {(instance: C, value: any) => void} setter
112
156
  */
113
157
  function setSetter(cls, name, setter) {
114
158
  Object.defineProperty(cls.prototype, name, {
@@ -120,10 +164,11 @@ function setSetter(cls, name, setter) {
120
164
  });
121
165
  }
122
166
  /**
123
- * @param {typeof GrafanaItem} cls
167
+ * @template {GrafanaItem} C
168
+ * @param {MetaConstructor<C>} cls
124
169
  * @param {string} name
125
- * @param {(self: GrafanaItem) => any} getter
126
- * @param {(instance: GrafanaItem, value: any) => void} setter
170
+ * @param {(self: C) => any} getter
171
+ * @param {(instance: C, value: any) => void} setter
127
172
  */
128
173
  function setGetterAndSetter(cls, name, getter, setter) {
129
174
  Object.defineProperty(cls.prototype, name, {
@@ -138,100 +183,183 @@ function setGetterAndSetter(cls, name, getter, setter) {
138
183
  });
139
184
  }
140
185
  /**
141
- * @param {typeof GrafanaItem} cls
186
+ * @template {GrafanaItem} C
187
+ * @param {MetaConstructor<C>} cls
188
+ * @param {string} typeName
189
+ */
190
+ var addTypeNameToInclude = (cls, typeName) => {
191
+ const metaClassInfo = getMetaClassInfo(cls);
192
+ if (metaClassInfo.typeNamesToInclude.includes(typeName) === false) {
193
+ if ([
194
+ "String",
195
+ "Number",
196
+ "Boolean",
197
+ "Array",
198
+ "Object"
199
+ ].indexOf(typeName) === -1) metaClassInfo.typeNamesToInclude.push(typeName);
200
+ }
201
+ };
202
+ /**
203
+ * @template {GrafanaItem} C
204
+ * @param {MetaConstructor<C>} cls
205
+ * @param {(typeof GrafanaItem)[]} [typesToInclude]
206
+ */
207
+ var addTypesToInclude = (cls, typesToInclude) => {
208
+ if (typesToInclude !== void 0) for (const type of typesToInclude) addTypeNameToInclude(cls, type.name);
209
+ };
210
+ /**
211
+ * @template {GrafanaItem} C
212
+ * @param {MetaClassInfo<GrafanaItem,C>} metaClassInfo
213
+ * @param {string} signature
214
+ */
215
+ var addSignatureOnMetaClassInfo = (metaClassInfo, signature) => {
216
+ if (metaClassInfo.methods.includes(signature) === false) metaClassInfo.methods.push(signature);
217
+ };
218
+ /**
219
+ * @template {GrafanaItem} C
220
+ * @param {MetaConstructor<C>} cls
221
+ * @param {string} signature
222
+ */
223
+ var addSignature = (cls, signature) => {
224
+ addSignatureOnMetaClassInfo(getMetaClassInfo(cls), signature);
225
+ };
226
+ /**
227
+ * @template {GrafanaItem} C
228
+ * @param {MetaConstructor<C>} cls
229
+ * @param {string} name
230
+ * @param {string} postSignature
231
+ * @param {Function} value
232
+ */
233
+ var setPrototypeWithSignature = (cls, name, postSignature, value) => {
234
+ setPrototype(cls, name, value);
235
+ addSignature(cls, `${name}${postSignature}`);
236
+ };
237
+ /**
238
+ * @template {GrafanaItem} C
239
+ * @param {MetaConstructor<C>} cls
240
+ * @param {string} name
241
+ * @param {(self: C) => any} getter
242
+ * @param {(instance: C, value: any) => void} setter
243
+ * @param {string} typeName
244
+ */
245
+ function setGetterAndSetterWithSignature(cls, name, getter, setter, typeName) {
246
+ setGetterAndSetter(cls, name, getter, setter);
247
+ addSignature(cls, `get ${name}(): ${typeName};`);
248
+ addSignature(cls, `set ${name}(value: ${typeName});`);
249
+ }
250
+ /**
251
+ * @template {GrafanaItem} C
252
+ * @param {MetaConstructor<C>} cls
253
+ * @param {string} name
254
+ * @param {(self: C) => any} getter
255
+ * @param {string} typeName
256
+ */
257
+ function setGetterWithSignature(cls, name, getter, typeName) {
258
+ setGetter(cls, name, getter);
259
+ addSignature(cls, `get ${name}(): ${typeName};`);
260
+ }
261
+ /**
262
+ * @template {GrafanaItem} C
263
+ * @param {MetaConstructor<C>} cls
264
+ * @param {string} name
265
+ * @param {(instance: C, value: any) => void} setter
266
+ * @param {string} typeName
267
+ */
268
+ function setSetterWithSignature(cls, name, setter, typeName) {
269
+ setSetter(cls, name, setter);
270
+ addSignature(cls, `set ${name}(value: ${typeName});`);
271
+ }
272
+ /**
273
+ * @template {GrafanaItem} C
274
+ * @param {MetaConstructor<C>} cls
275
+ * @param {((instance: C) => void)|undefined} onInit
276
+ */
277
+ function addOnInit(cls, onInit) {
278
+ const metaClassInfo = getMetaClassInfo(cls);
279
+ if (onInit) metaClassInfo.onInits.push(onInit);
280
+ }
281
+ //#endregion
282
+ //#region src/utils/typesDefinition.js
283
+ /**
284
+ * @typedef {import("@gdacm/base-types").GenericMetaOptions} GenericMetaOptions
285
+ */
286
+ /**
287
+ * @template T
288
+ * @typedef {import("@gdacm/base-types").MetaConstructor<T>} MetaConstructor
289
+ */
290
+ /**
291
+ * @template {GrafanaItem} C
292
+ * @param {MetaConstructor<C>} cls
142
293
  * @param {string} key
143
294
  * @param {Function} type
144
295
  * @param {Object} [option]
145
296
  * @param {string} [option.name]
146
- * @param {(instance: GrafanaItem) => void} [option.onInit]
147
- * @param {(metaOptions: GenericMetaOptions) => InstanceType<typeof GrafanaItem>} [option.onDefault]
297
+ * @param {(instance: C) => void} [option.onInit]
298
+ * @param {(metaOptions: GenericMetaOptions) => unknown} [option.onDefault]
148
299
  * @param {String} [option.typeName]
149
300
  */
150
301
  function defineValue(cls, key, type, option) {
151
- const metaClassInfo = getMetaClassInfo(cls);
152
302
  const name = option?.name ? option.name : key;
153
303
  const caseName = name.charAt(0).toUpperCase() + name.slice(1);
154
304
  const typeName = option?.typeName ? option.typeName : type.name;
155
- if (metaClassInfo.typeNamesToInclude.includes(type.name) === false) {
156
- if ([
157
- "String",
158
- "Number",
159
- "Boolean",
160
- "Array",
161
- "Object"
162
- ].indexOf(type.name) === -1) metaClassInfo.typeNamesToInclude.push(type.name);
163
- }
164
- const setName = `set${caseName}`;
165
- if (!hasPrototype(cls, setName)) {
166
- setPrototype(
167
- cls,
168
- setName,
169
- /**
170
- * @this GrafanaItem
171
- * @template T
172
- * @param {T} value
173
- * @returns {GrafanaItem}
174
- */
175
- function(value) {
176
- return this._setValue(key, value);
177
- }
178
- );
179
- metaClassInfo.methods.push(`${setName}(${name}: ${typeName}): this;`);
180
- }
181
- if (option?.onInit) metaClassInfo.onInits.push(option.onInit);
182
- if (option?.onDefault) metaClassInfo.onInits.push(function(instance) {
183
- instance._setValue(key, option?.onDefault?.(instance.metaOptions));
184
- });
305
+ addTypeNameToInclude(cls, type.name);
306
+ setGetterWithSignature(cls, name, (self) => self._getValue(key), typeName);
307
+ setPrototypeWithSignature(
308
+ cls,
309
+ `set${caseName}`,
310
+ `(${name}: ${typeName}): this;`,
311
+ /**
312
+ * @this C
313
+ * @template T
314
+ * @param {T} value
315
+ * @returns {C}
316
+ */
317
+ function(value) {
318
+ return this._setValue(key, value);
319
+ }
320
+ );
321
+ addOnInit(cls, option?.onInit);
322
+ if (option?.onDefault) addOnInit(cls, (instance) => instance._setValue(key, option?.onDefault?.(instance.metaOptions)));
185
323
  }
186
324
  /**
187
- * @param {typeof GrafanaItem} cls
325
+ * @template {GrafanaItem} C
326
+ * @param {MetaConstructor<C>} cls
188
327
  * @param {string} key
189
328
  * @param {Function} type
190
329
  * @param {Object} [option]
191
330
  * @param {string} [option.name]
192
- * @param {(instance: GrafanaItem) => void} [option.onInit]
193
- * @param {(metaOptions: GenericMetaOptions) => InstanceType<typeof GrafanaItem>} [option.onDefault]
331
+ * @param {(instance: C) => void} [option.onInit]
332
+ * @param {(metaOptions: GenericMetaOptions) => unknown} [option.onDefault]
194
333
  * @param {String} [option.typeName]
195
334
  */
196
- function defineObject(cls, key, type, option) {
197
- const metaClassInfo = getMetaClassInfo(cls);
335
+ function defineBasicObject(cls, key, type, option) {
198
336
  const name = option?.name ? option.name : key;
199
337
  const caseName = name.charAt(0).toUpperCase() + name.slice(1);
200
338
  const typeName = option?.typeName ? option.typeName : type.name;
201
- if (metaClassInfo.typeNamesToInclude.includes(type.name) === false) {
202
- if ([
203
- "String",
204
- "Number",
205
- "Boolean",
206
- "Array",
207
- "Object"
208
- ].indexOf(type.name) === -1) metaClassInfo.typeNamesToInclude.push(type.name);
209
- }
210
- const setName = `set${caseName}`;
211
- if (hasPrototype(cls, setName) === false) {
212
- setPrototype(
213
- cls,
214
- setName,
215
- /**
216
- * @this GrafanaItem
217
- * @template T
218
- * @param {T} value
219
- * @returns {GrafanaItem}
220
- */
221
- function(value) {
222
- return this._setObject(key, value);
223
- }
224
- );
225
- metaClassInfo.methods.push(`${setName}(${name}: ${typeName}): this;`);
226
- }
227
- setPrototype(
339
+ addTypeNameToInclude(cls, type.name);
340
+ setPrototypeWithSignature(
341
+ cls,
342
+ `set${caseName}`,
343
+ `(${name}: ${typeName}): this;`,
344
+ /**
345
+ * @this C
346
+ * @template T
347
+ * @param {T} value
348
+ * @returns {C}
349
+ */
350
+ function(value) {
351
+ return this._setObject(key, value);
352
+ }
353
+ );
354
+ setPrototypeWithSignature(
228
355
  cls,
229
356
  `with${caseName}`,
357
+ `(onWith: (item: ${typeName}) => void): this;`,
230
358
  /**
231
- * @this GrafanaItem
359
+ * @this C
232
360
  * @template {GrafanaItem} T
233
361
  * @param {(item: T) => void} onWith
234
- * @returns {GrafanaItem}
362
+ * @returns {C}
235
363
  */
236
364
  function(onWith) {
237
365
  const item = this._getObject(key);
@@ -239,83 +367,62 @@ function defineObject(cls, key, type, option) {
239
367
  return this;
240
368
  }
241
369
  );
242
- metaClassInfo.methods.push(`with${caseName}(onWith: (item: ${typeName}) => void): this;`);
243
- setGetter(cls, name, (self) => self._getObject(key));
244
- metaClassInfo.methods.push(`get ${name}(): ${typeName};`);
245
- if (option?.onInit) metaClassInfo.onInits.push(option?.onInit);
246
- if (option?.onDefault) {
247
- /**
248
- * @param {GrafanaItem} instance
249
- */
250
- const onInit = (instance) => {
251
- instance._setObject(key, option?.onDefault?.(instance.metaOptions));
252
- };
253
- metaClassInfo.onInits.push(onInit);
254
- }
370
+ setGetterWithSignature(cls, name, (self) => self._getObject(key), typeName);
371
+ addOnInit(cls, option?.onInit);
372
+ if (option?.onDefault) addOnInit(cls, (instance) => instance._setObject(key, option?.onDefault?.(instance.metaOptions)));
255
373
  }
256
374
  /**
375
+ * @template {GrafanaItem} C
257
376
  * @template {GrafanaItem} T
258
- * @param {typeof GrafanaItem} cls
377
+ * @param {MetaConstructor<C>} cls
259
378
  * @param {string} key
260
379
  * @param {MetaConstructor<T>} type
261
380
  * @param {Object} [option]
262
381
  * @param {string} [option.name]
263
- * @param {(instance: T) => void} [option.onInit]
382
+ * @param {(instance: C) => void} [option.onInit]
264
383
  * @param {(metaOptions: GenericMetaOptions) => T} [option.onDefault]
265
384
  * @param {String} [option.typeName]
266
385
  */
267
- function defineGrafanaObject(cls, key, type, option) {
268
- const metaClassInfo = getMetaClassInfo(cls);
386
+ function defineObject(cls, key, type, option) {
269
387
  const name = option?.name ? option.name : key;
270
388
  const caseName = name.charAt(0).toUpperCase() + name.slice(1);
271
389
  const typeName = option?.typeName ? option.typeName : type.name;
272
- if (metaClassInfo.typeNamesToInclude.includes(type.name) === false) {
273
- if ([
274
- "String",
275
- "Number",
276
- "Boolean",
277
- "Array",
278
- "Object"
279
- ].indexOf(type.name) === -1) metaClassInfo.typeNamesToInclude.push(type.name);
280
- }
281
- const setName = `set${caseName}`;
282
- if (hasPrototype(cls, setName) === false) {
283
- setPrototype(
284
- cls,
285
- setName,
286
- /**
287
- * @this GrafanaItem
288
- * @param {T} value
289
- * @returns {GrafanaItem}
290
- */
291
- function(value) {
292
- return this._setGrafanaObject(key, type, value);
293
- }
294
- );
295
- metaClassInfo.methods.push(`${setName}(${name}: ${typeName}): this;`);
296
- }
297
- const setNewName = `setNew${caseName}`;
298
- setPrototype(
390
+ addTypeNameToInclude(cls, type.name);
391
+ setPrototypeWithSignature(
299
392
  cls,
300
- setNewName,
393
+ `set${caseName}`,
394
+ `(${name}: ${typeName}): this;`,
301
395
  /**
302
- * @this GrafanaItem
396
+ * @this C
397
+ * @param {T} value
398
+ * @returns {C}
399
+ */
400
+ function(value) {
401
+ return this._setGrafanaObject(key, type, value);
402
+ }
403
+ );
404
+ setPrototypeWithSignature(
405
+ cls,
406
+ `setNew${caseName}`,
407
+ `(onNewCreated: ((item: ${typeName}) => ${typeName}) | undefined): this;`,
408
+ /**
409
+ * @this C
303
410
  * @param {(item: T) => T} [onNewCreated]
304
- * @returns {GrafanaItem}
411
+ * @returns {C}
305
412
  */
306
413
  function(onNewCreated) {
307
414
  if (!onNewCreated) onNewCreated = (item) => item;
308
415
  return this._setGrafanaObject(key, type, onNewCreated(new type(this.metaOptions)));
309
416
  }
310
417
  );
311
- metaClassInfo.methods.push(`${setNewName}(onNewCreated: ((item: ${typeName}) => ${typeName}) | undefined): this;`);
312
- setPrototype(
418
+ setPrototypeWithSignature(
313
419
  cls,
314
420
  `with${caseName}`,
421
+ `(onWith: (item: ${typeName}) => void): this;`,
315
422
  /**
316
- * @this GrafanaItem
423
+ * @this C
317
424
  * @param {(item: T) => void} onWith
318
- * @returns {GrafanaItem}
425
+ * @returns {C}
319
426
  */
320
427
  function(onWith) {
321
428
  const item = this._getGrafanaObject(key, type);
@@ -323,101 +430,79 @@ function defineGrafanaObject(cls, key, type, option) {
323
430
  return this;
324
431
  }
325
432
  );
326
- metaClassInfo.methods.push(`with${caseName}(onWith: (item: ${typeName}) => void): this;`);
327
- setGetter(cls, name, (self) => self._getGrafanaObject(key, type));
328
- metaClassInfo.methods.push(`get ${name}(): ${typeName};`);
329
- if (option?.onInit) metaClassInfo.onInits.push(option?.onInit);
330
- if (option?.onDefault) {
331
- /**
332
- * @param {GrafanaItem} instance
333
- */
334
- const onInit = (instance) => {
335
- const x = option?.onDefault?.(instance.metaOptions);
336
- instance._setGrafanaObject(key, type, x);
337
- };
338
- metaClassInfo.onInits.push(onInit);
339
- }
433
+ setGetterWithSignature(cls, name, (self) => self._getGrafanaObject(key, type), typeName);
434
+ addOnInit(cls, option?.onInit);
435
+ if (option?.onDefault) addOnInit(cls, (instance) => {
436
+ const x = option?.onDefault?.(instance.metaOptions);
437
+ instance._setGrafanaObject(key, type, x);
438
+ });
340
439
  }
341
440
  /**
342
- * @param {typeof GrafanaItem} cls
343
- * @param {string} key
344
- * @param {Function} type
441
+ * @template {GrafanaItem} C
442
+ * @template {GrafanaItem} T
443
+ * @param {MetaConstructor<C>} cls
444
+ * @param {string} key
445
+ * @param {MetaConstructor<T>} type
345
446
  * @param {Object} [option]
346
447
  * @param {string} [option.name]
347
448
  * @param {string} [option.itemName]
348
449
  * @param {boolean} [option.setEmpty]
349
- * @param {(instance: GrafanaItem) => void} [option.onInit]
350
- * @param {(metaOptions: GenericMetaOptions) => InstanceType<typeof GrafanaItem>} [option.onDefault]
450
+ * @param {(instance: C) => void} [option.onInit]
451
+ * @param {(metaOptions: GenericMetaOptions) => T[]} [option.onDefault]
351
452
  */
352
453
  function defineArray(cls, key, type, option) {
353
- const metaClassInfo = getMetaClassInfo(cls);
354
454
  const name = option?.name ? option.name : key;
355
455
  const caseName = name.charAt(0).toUpperCase() + name.slice(1);
356
456
  const itemName = option?.itemName ? option.itemName : name.endsWith("s") ? name.slice(0, -1) : `${name}Item`;
357
- if (metaClassInfo.typeNamesToInclude.includes(type.name) === false) {
358
- if (type.name !== "String" && type.name !== "Number" && type.name !== "Boolean") metaClassInfo.typeNamesToInclude.push(type.name);
359
- }
360
457
  const caseItemName = itemName.charAt(0).toUpperCase() + itemName.slice(1);
361
- const initName = `init${caseName}`;
362
- if (hasPrototype(cls, initName) === false) {
363
- setPrototype(
364
- cls,
365
- initName,
366
- /**
367
- * @this GrafanaItem
368
- * @returns {GrafanaItem}
369
- */
370
- function() {
371
- return this._initArray(key);
372
- }
373
- );
374
- metaClassInfo.methods.push(`init${caseName}(): this;`);
375
- }
376
- setGetter(cls, name, (self) => self._getArray(key));
377
- metaClassInfo.methods.push(`get ${name}(): ${type.name}[];`);
378
- const addName = `add${caseItemName}`;
379
- if (hasPrototype(cls, addName) === false) {
380
- setPrototype(
381
- cls,
382
- addName,
383
- /**
384
- * @this GrafanaItem
385
- * @template T
386
- * @param {T} item
387
- * @returns {GrafanaItem}
388
- */
389
- function(item) {
390
- return this._addArrayItem(key, item);
391
- }
392
- );
393
- metaClassInfo.methods.push(`${addName}(${itemName}: ${type.name}): this;`);
394
- }
395
- const addNewName = `addNew${caseItemName}`;
396
- if (hasPrototype(cls, addNewName) === false) {
397
- setPrototype(
398
- cls,
399
- addNewName,
400
- /**
401
- * @this GrafanaItem
402
- * @template T
403
- * @param {(item: T) => T} onNewCreated
404
- * @returns {GrafanaItem}
405
- */
406
- function(onNewCreated) {
407
- return this._addArrayItem(key, onNewCreated(new type(this.metaOptions)));
408
- }
409
- );
410
- metaClassInfo.methods.push(`${addNewName}(onNewCreated: (item: ${type.name}) => ${type.name}): this;`);
411
- }
412
- const withName = `with${caseName}`;
413
- setPrototype(
458
+ addTypeNameToInclude(cls, type.name);
459
+ setPrototypeWithSignature(
414
460
  cls,
415
- withName,
461
+ `init${caseName}`,
462
+ `(): this;`,
416
463
  /**
417
- * @this GrafanaItem
418
- * @template T
464
+ * @this C
465
+ * @returns {C}
466
+ */
467
+ function() {
468
+ return this._initArray(key);
469
+ }
470
+ );
471
+ setGetterWithSignature(cls, name, (self) => self._getArray(key), `${type.name}[]`);
472
+ setPrototypeWithSignature(
473
+ cls,
474
+ `add${caseItemName}`,
475
+ `(${itemName}: ${type.name}): this;`,
476
+ /**
477
+ * @this C
478
+ * @param {T} item
479
+ * @returns {C}
480
+ */
481
+ function(item) {
482
+ return this._addArrayItem(key, item);
483
+ }
484
+ );
485
+ setPrototypeWithSignature(
486
+ cls,
487
+ `addNew${caseItemName}`,
488
+ `(onNewCreated: (item: ${type.name}) => ${type.name}): this;`,
489
+ /**
490
+ * @this C
491
+ * @param {(item: T) => T} onNewCreated
492
+ * @returns {C}
493
+ */
494
+ function(onNewCreated) {
495
+ return this._addArrayItem(key, onNewCreated(new type(this.metaOptions)));
496
+ }
497
+ );
498
+ setPrototypeWithSignature(
499
+ cls,
500
+ `with${caseName}`,
501
+ `(onWith: (${name}: ${type.name}[]) => void): this;`,
502
+ /**
503
+ * @this C
419
504
  * @param {(array: T[]) => void} onWith
420
- * @returns {GrafanaItem}
505
+ * @returns {C}
421
506
  */
422
507
  function(onWith) {
423
508
  const array = this._getArray(key);
@@ -425,97 +510,174 @@ function defineArray(cls, key, type, option) {
425
510
  return this;
426
511
  }
427
512
  );
428
- metaClassInfo.methods.push(`${withName}(onWith: (${name}: ${type.name}[]) => void): this;`);
429
- if (option?.onInit) metaClassInfo.onInits.push(option.onInit);
430
- if (option?.setEmpty) {
431
- /**
432
- * @param {GrafanaItem} instance
433
- */
434
- const onInitArray = (instance) => {
435
- instance._initArray(key);
436
- };
437
- metaClassInfo.onInits.push(onInitArray);
438
- }
513
+ addOnInit(cls, option?.onInit);
514
+ if (option?.onDefault) addOnInit(cls, (instance) => option.onDefault?.(instance.metaOptions)?.forEach((item) => instance._addArrayItem(key, item)));
515
+ if (option?.setEmpty) addOnInit(cls, (instance) => instance._initArray(key));
439
516
  }
440
517
  /**
441
- * @template {typeof GrafanaItem} T
442
- * @param {typeof GrafanaItem} cls
443
- * @param {string|undefined} method
518
+ * @template {GrafanaItem} C
519
+ * @param {MetaConstructor<C>} cls
520
+ * @param {string} key
521
+ * @param {Function} type
444
522
  * @param {Object} [option]
445
- * @param {(typeof GrafanaItem)[]} [option.typesToInclude]
446
523
  * @param {string} [option.name]
447
- * @param {Function} [option.code]
448
- * @param {(instance: GrafanaItem) => void} [option.constr]
449
- * @param {string} [option.getterSetterType]
450
- * @param {(self: GrafanaItem) => any} [option.getter]
451
- * @param {(self: GrafanaItem, value: any) => void} [option.setter]
452
- */
453
- function defineMemberInternal(cls, method, option) {
454
- const { typesToInclude, name, code, constr, getterSetterType, getter, setter } = option || {};
455
- const metaClassInfo = getMetaClassInfo(cls);
456
- if (method !== void 0) metaClassInfo.methods.push(method);
457
- if (typesToInclude !== void 0) {
458
- for (const type of typesToInclude) if (metaClassInfo.typeNamesToInclude.includes(type.name) === false) metaClassInfo.typeNamesToInclude.push(type.name);
459
- }
460
- let codeCount = 0;
461
- if (code !== void 0) codeCount++;
462
- if (constr !== void 0) codeCount++;
463
- if (getter !== void 0 || setter !== void 0) codeCount++;
464
- if (codeCount > 1) throw new Error(`You can only provide either code or constructor or getter/setter, not all. (codeCount:${codeCount})`);
465
- if (code !== void 0 && name === void 0) throw new Error("You must provide a name when providing code.");
466
- if (constr !== void 0 && name !== void 0) throw new Error("You cannot provide a name when providing constructor.");
467
- if ((getter !== void 0 || setter !== void 0) && name === void 0) throw new Error("You must provide a name when providing getter or setter.");
468
- if (codeCount == 1) {
469
- if (code !== void 0) {
470
- if (!name) throw new Error("You must provide a name when providing code.");
471
- setPrototype(
472
- cls,
473
- name,
474
- /**
475
- * @this {GrafanaItem}
476
- * @param {...any} args
477
- * @returns {any}
478
- */
479
- function(...args) {
480
- return code(this, ...args);
481
- }
482
- );
483
- }
484
- if (constr !== void 0) metaClassInfo.onInits.push((instance) => constr(instance));
485
- if (getter !== void 0 && setter === void 0) {
486
- if (!name) throw new Error("You must provide a name when providing getter or setter.");
487
- setGetter(cls, name, getter);
488
- metaClassInfo.methods.push(`get ${name}(): ${getterSetterType};`);
524
+ * @param {string} [option.itemName]
525
+ * @param {boolean} [option.setEmpty]
526
+ * @param {(instance: C) => void} [option.onInit]
527
+ * @param {(metaOptions: GenericMetaOptions) => Object[]} [option.onDefault]
528
+ */
529
+ function defineBasicArray(cls, key, type, option) {
530
+ const name = option?.name ? option.name : key;
531
+ const caseName = name.charAt(0).toUpperCase() + name.slice(1);
532
+ const itemName = option?.itemName ? option.itemName : name.endsWith("s") ? name.slice(0, -1) : `${name}Item`;
533
+ const caseItemName = itemName.charAt(0).toUpperCase() + itemName.slice(1);
534
+ addTypeNameToInclude(cls, type.name);
535
+ setPrototypeWithSignature(
536
+ cls,
537
+ `init${caseName}`,
538
+ `(): this;`,
539
+ /**
540
+ * @this C
541
+ * @returns {C}
542
+ */
543
+ function() {
544
+ return this._initArray(key);
489
545
  }
490
- if (getter === void 0 && setter !== void 0) {
491
- if (!name) throw new Error("You must provide a name when providing getter or setter.");
492
- setSetter(cls, name, setter);
493
- metaClassInfo.methods.push(`set ${name}(value: ${getterSetterType});`);
546
+ );
547
+ setGetterWithSignature(cls, name, (self) => self._getArray(key), `${type.name}[]`);
548
+ setPrototypeWithSignature(
549
+ cls,
550
+ `add${caseItemName}`,
551
+ `(${itemName}: ${type.name}): this;`,
552
+ /**
553
+ * @this C
554
+ * @template T
555
+ * @param {T} item
556
+ * @returns {C}
557
+ */
558
+ function(item) {
559
+ return this._addArrayItem(key, item);
494
560
  }
495
- if (getter !== void 0 && setter !== void 0) {
496
- if (!name) throw new Error("You must provide a name when providing getter or setter.");
497
- setGetterAndSetter(cls, name, getter, setter);
498
- metaClassInfo.methods.push(`get ${name}(): ${getterSetterType};`);
499
- metaClassInfo.methods.push(`set ${name}(value: ${getterSetterType});`);
561
+ );
562
+ setPrototypeWithSignature(
563
+ cls,
564
+ `with${caseName}`,
565
+ `(onWith: (${name}: ${type.name}[]) => void): this;`,
566
+ /**
567
+ * @this C
568
+ * @template T
569
+ * @param {(array: T[]) => void} onWith
570
+ * @returns {C}
571
+ */
572
+ function(onWith) {
573
+ const array = this._getArray(key);
574
+ if (array) onWith(array);
575
+ return this;
500
576
  }
501
- }
577
+ );
578
+ addOnInit(cls, option?.onInit);
579
+ if (option?.onDefault) addOnInit(cls, (instance) => option.onDefault?.(instance.metaOptions)?.forEach((item) => instance._addArrayItem(key, item)));
580
+ if (option?.setEmpty) addOnInit(cls, (instance) => instance._initArray(key));
502
581
  }
503
582
  /**
504
- * @param {typeof GrafanaItem} cls
505
- * @param {(instance: GrafanaItem) => void} code
583
+ * @template {GrafanaItem} C
584
+ * @param {MetaConstructor<C>} cls
585
+ * @param {(instance: C) => void} code
506
586
  */
507
587
  function defineConstructor(cls, code) {
508
- defineMemberInternal(cls, "constructor(metaOptions: GenericMetaOptions)", { constr: code });
588
+ addSignature(cls, "constructor(metaOptions: GenericMetaOptions)");
589
+ addOnInit(cls, (instance) => code(instance));
590
+ }
591
+ /**
592
+ * @template {GrafanaItem} C
593
+ * @param {MetaConstructor<C>} cls
594
+ * @param {string} method
595
+ * @param {Object} [option]
596
+ * @param {(typeof GrafanaItem)[]} [option.typesToInclude]
597
+ */
598
+ function defineMember(cls, method, option) {
599
+ const { typesToInclude } = option || {};
600
+ addSignature(cls, method);
601
+ addTypesToInclude(cls, typesToInclude);
602
+ }
603
+ /**
604
+ * @template {GrafanaItem} C
605
+ * @param {MetaConstructor<C>} cls
606
+ * @param {string} name
607
+ * @param {string} args
608
+ * @param {Object} option
609
+ * @param {(typeof GrafanaItem)[]} [option.typesToInclude]
610
+ * @param {(instance: C, ...args: any[]) => any} option.code
611
+ */
612
+ var defineMethod = (cls, name, args, option) => {
613
+ const { typesToInclude, code } = option || {};
614
+ addTypesToInclude(cls, typesToInclude);
615
+ setPrototypeWithSignature(
616
+ cls,
617
+ name,
618
+ args,
619
+ /**
620
+ * @this {C}
621
+ * @param {...any} args
622
+ * @returns {any}
623
+ */
624
+ function(...args) {
625
+ return code(this, ...args);
626
+ }
627
+ );
628
+ };
629
+ /**
630
+ * @template {GrafanaItem} C
631
+ * @param {MetaConstructor<C>} cls
632
+ * @param {string} name
633
+ * @param {string} typeName
634
+ * @param {Object} option
635
+ * @param {(typeof GrafanaItem)[]} [option.typesToInclude]
636
+ * @param {(self: C) => any} [option.getter]
637
+ * @param {(self: C, value: any) => void} [option.setter]
638
+ */
639
+ function defineGetterSetter(cls, name, typeName, option) {
640
+ const { typesToInclude, getter, setter } = option || {};
641
+ addTypesToInclude(cls, typesToInclude);
642
+ if (getter !== void 0) {
643
+ if (setter !== void 0) setGetterAndSetterWithSignature(cls, name, getter, setter, typeName);
644
+ else setGetterWithSignature(cls, name, getter, typeName);
645
+ } else if (setter !== void 0) setSetterWithSignature(cls, name, setter, typeName);
646
+ else throw new Error("You must provide either a getter or a setter.");
509
647
  }
648
+ //#endregion
649
+ //#region src/utils/GrafanaItemClassBuilder.js
650
+ /**
651
+ * @typedef {import("@gdacm/base-types").GenericMetaOptions} GenericMetaOptions
652
+ */
653
+ /**
654
+ * @template {Object} T
655
+ * @template {T} C
656
+ * @typedef {import("./MetaClassRegistry.js").MetaClassInfo<T,C>} MetaClassInfo
657
+ */
658
+ /**
659
+ * @template T
660
+ * @typedef {import("@gdacm/base-types").MetaConstructor<T>} MetaConstructor
661
+ */
662
+ /**
663
+ * @template {GrafanaItem} C
664
+ */
510
665
  var GrafanaItemClassBuilder = class {
511
666
  /**
512
- * @param {typeof GrafanaItem} cls
667
+ * @param {MetaConstructor<C>} cls
513
668
  */
514
669
  constructor(cls) {
515
- this.cls = cls;
670
+ /** @type {MetaConstructor<C>} */
671
+ this._cls = cls;
672
+ }
673
+ /**
674
+ * @return {MetaConstructor<C>}
675
+ */
676
+ get cls() {
677
+ return this._cls;
516
678
  }
517
679
  /**
518
- * @param {typeof GrafanaItem} parent
680
+ * @param {MetaConstructor<GrafanaItem>} parent
519
681
  * @returns
520
682
  */
521
683
  setParent(parent) {
@@ -527,8 +689,8 @@ var GrafanaItemClassBuilder = class {
527
689
  * @param {Function} type
528
690
  * @param {Object} [option]
529
691
  * @param {string} [option.name]
530
- * @param {(instance: InstanceType<typeof GrafanaItem>) => void} [option.onInit]
531
- * @param {(metaOptions: GenericMetaOptions) => InstanceType<typeof GrafanaItem>} [option.onDefault]
692
+ * @param {(instance: C) => void} [option.onInit]
693
+ * @param {(metaOptions: GenericMetaOptions) => C} [option.onDefault]
532
694
  * @param {String} [option.typeName]
533
695
  * @return {this}
534
696
  */
@@ -537,13 +699,15 @@ var GrafanaItemClassBuilder = class {
537
699
  return this;
538
700
  }
539
701
  /**
702
+ * @template {GrafanaItem} T
540
703
  * @param {string} key
541
- * @param {Function} type
704
+ * @param {MetaConstructor<T>} type
542
705
  * @param {Object} [option]
543
706
  * @param {string} [option.name]
544
- * @param {(instance: GrafanaItem) => void} [option.onInit]
545
- * @param {(metaOptions: GenericMetaOptions) => InstanceType<typeof GrafanaItem>} [option.onDefault]
707
+ * @param {(instance: C) => void} [option.onInit]
708
+ * @param {(metaOptions: GenericMetaOptions) => T} [option.onDefault]
546
709
  * @param {String} [option.typeName]
710
+ * @param {String} [option.setNew]
547
711
  * @return {this}
548
712
  */
549
713
  defineObject(key, type, option) {
@@ -551,30 +715,29 @@ var GrafanaItemClassBuilder = class {
551
715
  return this;
552
716
  }
553
717
  /**
554
- * @template {GrafanaItem} T
555
718
  * @param {string} key
556
- * @param {MetaConstructor<T>} type
719
+ * @param {Function} type
557
720
  * @param {Object} [option]
558
721
  * @param {string} [option.name]
559
- * @param {(instance: T) => void} [option.onInit]
560
- * @param {(metaOptions: GenericMetaOptions) => T} [option.onDefault]
722
+ * @param {(instance: C) => void} [option.onInit]
723
+ * @param {(metaOptions: GenericMetaOptions) => Object} [option.onDefault]
561
724
  * @param {String} [option.typeName]
562
- * @param {String} [option.setNew]
563
725
  * @return {this}
564
726
  */
565
- defineGrafanaObject(key, type, option) {
566
- defineGrafanaObject(this.cls, key, type, option);
727
+ defineBasicObject(key, type, option) {
728
+ defineBasicObject(this.cls, key, type, option);
567
729
  return this;
568
730
  }
569
731
  /**
732
+ * @template {GrafanaItem} T
570
733
  * @param {string} key
571
- * @param {Function} type
734
+ * @param {MetaConstructor<T>} type
572
735
  * @param {Object} [option]
573
736
  * @param {string} [option.name]
574
737
  * @param {string} [option.itemName]
575
738
  * @param {boolean} [option.setEmpty]
576
- * @param {(instance: GrafanaItem) => void} [option.onInit]
577
- * @param {(metaOptions: GenericMetaOptions) => InstanceType<typeof GrafanaItem>} [option.onDefault]
739
+ * @param {(instance: C) => void} [option.onInit]
740
+ * @param {(metaOptions: GenericMetaOptions) => T[]} [option.onDefault]
578
741
  * @return {this}
579
742
  */
580
743
  defineArray(key, type, option) {
@@ -582,18 +745,32 @@ var GrafanaItemClassBuilder = class {
582
745
  return this;
583
746
  }
584
747
  /**
748
+ * @param {string} key
749
+ * @param {Function} type
750
+ * @param {Object} [option]
751
+ * @param {string} [option.name]
752
+ * @param {string} [option.itemName]
753
+ * @param {boolean} [option.setEmpty]
754
+ * @param {(instance: C) => void} [option.onInit]
755
+ * @param {(metaOptions: GenericMetaOptions) => Object[]} [option.onDefault]
756
+ * @return {this}
757
+ */
758
+ defineBasicArray(key, type, option) {
759
+ defineBasicArray(this.cls, key, type, option);
760
+ return this;
761
+ }
762
+ /**
585
763
  * @param {string} method
586
764
  * @param {Object} [option]
587
765
  * @param {(typeof GrafanaItem)[]} [option.typesToInclude]
588
766
  * @return {this}
589
767
  */
590
768
  defineMember(method, option) {
591
- defineMemberInternal(this.cls, method, option);
769
+ defineMember(this.cls, method, option);
592
770
  return this;
593
771
  }
594
772
  /**
595
- * @template {typeof GrafanaItem} T
596
- * @param {(instance: InstanceType<T>) => void} code
773
+ * @param {(instance: C) => void} code
597
774
  * @return {this}
598
775
  */
599
776
  defineConstructor(code) {
@@ -605,36 +782,24 @@ var GrafanaItemClassBuilder = class {
605
782
  * @param {string} args
606
783
  * @param {Object} option
607
784
  * @param {(typeof GrafanaItem)[]} [option.typesToInclude]
608
- * @param {Function} option.code
785
+ * @param {(instance: C, ...args: any[]) => any} option.code
609
786
  * @return {this}
610
787
  */
611
788
  defineMethod(name, args, option) {
612
- defineMemberInternal(this.cls, `${name}${args}`, {
613
- ...option,
614
- name
615
- });
789
+ defineMethod(this.cls, name, args, option);
616
790
  return this;
617
791
  }
618
792
  /**
619
- * @template {typeof GrafanaItem} T
620
793
  * @param {string} name
621
- * @param {string} type
794
+ * @param {string} typeName
622
795
  * @param {Object} option
623
796
  * @param {(typeof GrafanaItem)[]} [option.typesToInclude]
624
- * @param {(instance: InstanceType<T>) => any} [option.getter]
625
- * @param {(instance: InstanceType<T>, value: any) => void} [option.setter]
797
+ * @param {(instance: C) => any} [option.getter]
798
+ * @param {(instance: C, value: any) => void} [option.setter]
626
799
  * @return {this}
627
800
  */
628
- defineGetterSetter(name, type, option) {
629
- const getter = option.getter;
630
- const setter = option.setter;
631
- defineMemberInternal(this.cls, void 0, {
632
- ...option,
633
- getter,
634
- setter,
635
- name,
636
- getterSetterType: type
637
- });
801
+ defineGetterSetter(name, typeName, option) {
802
+ defineGetterSetter(this.cls, name, typeName, option);
638
803
  return this;
639
804
  }
640
805
  /**
@@ -652,15 +817,43 @@ var GrafanaItemClassBuilder = class {
652
817
  }
653
818
  };
654
819
  /**
820
+ * @template {GrafanaItem} C
655
821
  * @param {string} name
656
822
  * @param {typeof GrafanaItem} parent
657
- * @returns {GrafanaItemClassBuilder}
823
+ * @returns {GrafanaItemClassBuilder<C>}
658
824
  */
659
825
  var defineGrafanaItemClass = (name, parent) => {
660
826
  const cls = class extends parent {};
661
827
  Object.defineProperty(cls, "name", { value: name });
662
828
  return defineClass(cls).setParent(parent);
663
829
  };
830
+ /**
831
+ * @template {GrafanaItem} C
832
+ * @param {MetaConstructor<C>} cls
833
+ */
834
+ function defineClass(cls) {
835
+ if (!hasType(cls)) {
836
+ /** @type {Function|undefined} */
837
+ let parent = Object.getPrototypeOf(cls);
838
+ if (parent && !parent.name) parent = void 0;
839
+ /** @type {((instance: C)=>void)[]} */
840
+ let onInitsParent = [];
841
+ if (parent && parent.name) onInitsParent = getMetaClassInfo(parent).onInits;
842
+ /** @type {MetaClassInfo<GrafanaItem,C>} */
843
+ const metaClassInfo = {
844
+ methods: [],
845
+ onInits: [...onInitsParent],
846
+ parentName: parent?.name,
847
+ parent,
848
+ typeNamesToInclude: []
849
+ };
850
+ cls.prototype._onInit = function() {
851
+ for (const onInit of metaClassInfo.onInits) onInit(this);
852
+ };
853
+ setTypeMetaClassInfo(cls, metaClassInfo);
854
+ }
855
+ return new GrafanaItemClassBuilder(cls);
856
+ }
664
857
  //#endregion
665
858
  //#region src/items/GrafanaItem.js
666
859
  var GrafanaItem = class {
@@ -821,10 +1014,10 @@ var GrafanaItem = class {
821
1014
  defineClass(GrafanaItem).defineMember("constructor(metaOptions: GenericMetaOptions)").defineMember("get metaOptions(): GenericMetaOptions").defineMember("withMetaOptions(code: (metaOptions: GenericMetaOptions) => void): this").defineMember("with(code: (item: this) => void): this").defineMember("asJson(): Object;").defineMember("_onInit(): void;").defineMember("_setValue<T>(key: string, value: T): this;").defineMember("_getValue<T>(key: string): T;").defineMember("_initArray(key: string): this;").defineMember("_getArray<T>(key: string): T[];").defineMember("_addArrayItem<T>(key: string, item: T): this;").defineMember("_setObject<T>(key: string, value: T): this;").defineMember("_getObject<T>(key: string): T;").defineMember("_withObject<T>(key: string, code: (item: T) => void): this;").defineMember("_setGrafanaObject<T extends GrafanaItem>(key: string, type: new (metaOptions: GenericMetaOptions) => T, value: T | undefined): this;").defineMember("_getGrafanaObject<T extends GrafanaItem>(key: string, type: new (metaOptions: GenericMetaOptions) => T): T;").defineMember("_withGrafanaObject<T extends GrafanaItem>(key: string, type: new (metaOptions: GenericMetaOptions) => T, code: (item: T) => void): this;");
822
1015
  //#endregion
823
1016
  //#region src/items/OverrideMatcher.js
824
- var OverrideMatcher = defineGrafanaItemClass("OverrideMatcher", GrafanaItem).defineValue("id", String).defineObject("options", Object).asClass;
1017
+ var OverrideMatcher = defineGrafanaItemClass("OverrideMatcher", GrafanaItem).defineValue("id", String).defineBasicObject("options", Object).asClass;
825
1018
  //#endregion
826
1019
  //#region src/items/OverrideMatcherOptionsByNames.js
827
- var OverrideMatcherOptionsByNames = defineGrafanaItemClass("OverrideMatcherOptionsByNames", GrafanaItem).defineValue("mode", String).defineArray("names", String).defineValue("prefix", String).defineValue("readOnly", Boolean).asClass;
1020
+ var OverrideMatcherOptionsByNames = defineGrafanaItemClass("OverrideMatcherOptionsByNames", GrafanaItem).defineValue("mode", String).defineBasicArray("names", String).defineValue("prefix", String).defineValue("readOnly", Boolean).asClass;
828
1021
  //#endregion
829
1022
  //#region src/items/OverrideProperty.js
830
1023
  var OverrideProperty = defineGrafanaItemClass("OverrideProperty", GrafanaItem).defineValue("id", String).defineValue("value", Object).asClass;
@@ -833,7 +1026,7 @@ var OverrideProperty = defineGrafanaItemClass("OverrideProperty", GrafanaItem).d
833
1026
  var Datasource = defineGrafanaItemClass("Datasource", GrafanaItem).defineValue("type", String).defineValue("uid", String).asClass;
834
1027
  //#endregion
835
1028
  //#region src/items/Annotation.js
836
- var Annotation = defineGrafanaItemClass("Annotation", GrafanaItem).defineValue("builtIn", Number).defineGrafanaObject("datasource", Datasource).defineValue("enable", Boolean).defineValue("hide", Boolean).defineValue("iconColor", String).defineValue("name", String).defineValue("type", String).asClass;
1029
+ var Annotation = defineGrafanaItemClass("Annotation", GrafanaItem).defineValue("builtIn", Number).defineObject("datasource", Datasource).defineValue("enable", Boolean).defineValue("hide", Boolean).defineValue("iconColor", String).defineValue("name", String).defineValue("type", String).asClass;
837
1030
  //#endregion
838
1031
  //#region src/items/Annotations.js
839
1032
  var Annotations = defineGrafanaItemClass("Annotations", GrafanaItem).defineArray("list", Annotation, { itemName: "annotation" }).asClass;
@@ -896,7 +1089,7 @@ code: (thresholds, value, color) => {
896
1089
  } }).asClass;
897
1090
  //#endregion
898
1091
  //#region src/items/FieldConfigDefault.js
899
- var FieldConfigDefault = defineGrafanaItemClass("FieldConfigDefault", GrafanaItem).defineGrafanaObject("color", Color).defineGrafanaObject("custom", FieldConfigCustom).defineValue("decimals", Number).defineValue("fieldMinMax", Boolean).defineArray("mappings", Mapping).defineValue("max", Number).defineValue("min", Number).defineGrafanaObject("thresholds", Thresholds).defineValue("unit", String).defineMethod("setColorMode", "(mode: string): this;", {
1092
+ var FieldConfigDefault = defineGrafanaItemClass("FieldConfigDefault", GrafanaItem).defineObject("color", Color).defineObject("custom", FieldConfigCustom).defineValue("decimals", Number).defineValue("fieldMinMax", Boolean).defineArray("mappings", Mapping).defineValue("max", Number).defineValue("min", Number).defineObject("thresholds", Thresholds).defineValue("unit", String).defineMethod("setColorMode", "(mode: string): this;", {
900
1093
  /**
901
1094
  * @param {FieldConfigDefault} fieldConfigDefault
902
1095
  * @param {String} mode
@@ -909,13 +1102,13 @@ code: (fieldConfigDefault, mode) => {
909
1102
  } }).asClass;
910
1103
  //#endregion
911
1104
  //#region src/items/FieldConfigOverride.js
912
- var FieldConfigOverride = defineGrafanaItemClass("FieldConfigOverride", GrafanaItem).defineValue("__systemRef", String, { name: "systemRef" }).defineGrafanaObject("matcher", OverrideMatcher).defineArray("properties", OverrideProperty, { itemName: "property" }).asClass;
1105
+ var FieldConfigOverride = defineGrafanaItemClass("FieldConfigOverride", GrafanaItem).defineValue("__systemRef", String, { name: "systemRef" }).defineObject("matcher", OverrideMatcher).defineArray("properties", OverrideProperty, { itemName: "property" }).asClass;
913
1106
  //#endregion
914
1107
  //#region src/items/HideFrom.js
915
1108
  var HideFrom = defineGrafanaItemClass("HideFrom", GrafanaItem).defineValue("graph", Boolean).defineValue("legend", Boolean).defineValue("tooltip", Boolean).defineValue("viz", Boolean).asClass;
916
1109
  //#endregion
917
1110
  //#region src/items/FieldConfig.js
918
- var FieldConfig = defineGrafanaItemClass("FieldConfig", GrafanaItem).defineGrafanaObject("defaults", FieldConfigDefault).defineArray("overrides", FieldConfigOverride).defineMethod("addNewOverrideHideSeriesFrom", "(names: string[]): this", {
1111
+ var FieldConfig = defineGrafanaItemClass("FieldConfig", GrafanaItem).defineObject("defaults", FieldConfigDefault).defineArray("overrides", FieldConfigOverride).defineMethod("addNewOverrideHideSeriesFrom", "(names: string[]): this", {
919
1112
  /**
920
1113
  * @param {FieldConfig} fieldConfig
921
1114
  * @param {String[]} names
@@ -931,16 +1124,16 @@ code: (fieldConfig, names) => {
931
1124
  } }).asClass;
932
1125
  //#endregion
933
1126
  //#region src/items/Target.js
934
- var Target = defineGrafanaItemClass("Target", GrafanaItem).defineValue("alias", String).defineValue("refId", String).defineValue("query", String).defineGrafanaObject("datasource", Datasource).defineValue("seriesCount", Number).defineValue("scenarioId", String).defineValue("stringInput", String).asClass;
1127
+ var Target = defineGrafanaItemClass("Target", GrafanaItem).defineValue("alias", String).defineValue("refId", String).defineValue("query", String).defineObject("datasource", Datasource).defineValue("seriesCount", Number).defineValue("scenarioId", String).defineValue("stringInput", String).asClass;
935
1128
  //#endregion
936
1129
  //#region src/items/Link.js
937
- var Link = defineGrafanaItemClass("Link", GrafanaItem).defineConstructor((instance) => instance.setType("link")).defineValue("asDropdown", Boolean).defineValue("icon", String).defineValue("includeVars", Boolean).defineValue("keepTime", Boolean).defineArray("tags", String, { setEmpty: true }).defineValue("targetBlank", Boolean).defineValue("title", String).defineValue("tooltip", String).defineValue("type", String).defineValue("url", String).asClass;
1130
+ var Link = defineGrafanaItemClass("Link", GrafanaItem).defineConstructor((instance) => instance.setType("link")).defineValue("asDropdown", Boolean).defineValue("icon", String).defineValue("includeVars", Boolean).defineValue("keepTime", Boolean).defineBasicArray("tags", String, { setEmpty: true }).defineValue("targetBlank", Boolean).defineValue("title", String).defineValue("tooltip", String).defineValue("type", String).defineValue("url", String).asClass;
938
1131
  //#endregion
939
1132
  //#region src/items/DataTransformation.js
940
1133
  var DataTransformation = defineGrafanaItemClass("DataTransformation", GrafanaItem).asClass;
941
1134
  //#endregion
942
1135
  //#region src/items/Panel.js
943
- var Panel = defineGrafanaItemClass("Panel", GrafanaItem).defineValue("cacheTimeout", String).defineGrafanaObject("datasource", Datasource, { onDefault: (options) => void 0 }).defineValue("description", String).defineGrafanaObject("fieldConfig", FieldConfig, { onDefault: (options) => new FieldConfig(options) }).defineGrafanaObject("gridPos", GridPos).defineMethod("setPos", "(x: number, y: number, w: number, h: number): this;", {
1136
+ var Panel = defineGrafanaItemClass("Panel", GrafanaItem).defineValue("cacheTimeout", String).defineObject("datasource", Datasource, { onDefault: (options) => void 0 }).defineValue("description", String).defineObject("fieldConfig", FieldConfig, { onDefault: (options) => new FieldConfig(options) }).defineObject("gridPos", GridPos).defineMethod("setPos", "(x: number, y: number, w: number, h: number): this;", {
944
1137
  /**
945
1138
  * @param {Panel} panel
946
1139
  * @param {number} x
@@ -950,7 +1143,7 @@ var Panel = defineGrafanaItemClass("Panel", GrafanaItem).defineValue("cacheTimeo
950
1143
  */
951
1144
  code: (panel, x, y, w, h) => {
952
1145
  return panel.setNewGridPos((gridPos) => gridPos.setPos(x, y, w, h));
953
- } }).defineValue("hideTimeOverride", Boolean).defineValue("id", Number).defineValue("interval", String).defineArray("links", Link).defineValue("maxDataPoints", Number).defineValue("maxPerRow", Number).defineGrafanaObject("options", Object).defineValue("pluginVersion", String).defineValue("queryCachingTTL", Number).defineValue("repeat", String).defineValue("repeatDirection", String).defineArray("targets", Target).defineMethod("addTargetWithParams", "(refId: string, query: string, datasource: Datasource): this;", {
1146
+ } }).defineValue("hideTimeOverride", Boolean).defineValue("id", Number).defineValue("interval", String).defineArray("links", Link).defineValue("maxDataPoints", Number).defineValue("maxPerRow", Number).defineObject("options", Object).defineValue("pluginVersion", String).defineValue("queryCachingTTL", Number).defineValue("repeat", String).defineValue("repeatDirection", String).defineArray("targets", Target).defineMethod("addTargetWithParams", "(refId: string, query: string, datasource: Datasource): this;", {
954
1147
  /**
955
1148
  * @param {Panel} panel
956
1149
  * @param {string} refId
@@ -968,13 +1161,13 @@ var TemplateCurrent = defineGrafanaItemClass("TemplateCurrent", GrafanaItem).def
968
1161
  var TemplateOption = defineGrafanaItemClass("TemplateOption", GrafanaItem).defineValue("selected", Boolean).defineValue("text", String).defineValue("value", String).asClass;
969
1162
  //#endregion
970
1163
  //#region src/items/Template.js
971
- var Template = defineGrafanaItemClass("Template", GrafanaItem).defineGrafanaObject("current", TemplateCurrent).defineValue("definition", String).defineValue("description", String).defineValue("hide", Number).defineValue("label", String).defineValue("multi", Boolean).defineValue("name", String).defineArray("options", TemplateOption).defineValue("query", Object).defineValue("refresh", Number).defineValue("regex", String).defineValue("sort", Number).defineValue("type", String).defineValue("useTags", Boolean).asClass;
1164
+ var Template = defineGrafanaItemClass("Template", GrafanaItem).defineObject("current", TemplateCurrent).defineValue("definition", String).defineValue("description", String).defineValue("hide", Number).defineValue("label", String).defineValue("multi", Boolean).defineValue("name", String).defineArray("options", TemplateOption).defineValue("query", Object).defineValue("refresh", Number).defineValue("regex", String).defineValue("sort", Number).defineValue("type", String).defineValue("useTags", Boolean).asClass;
972
1165
  //#endregion
973
1166
  //#region src/items/Templating.js
974
1167
  var Templating = defineGrafanaItemClass("Templating", GrafanaItem).defineArray("list", Template, { itemName: "template" }).asClass;
975
1168
  //#endregion
976
1169
  //#region src/items/TimePicker.js
977
- var TimePicker = defineGrafanaItemClass("TimePicker", GrafanaItem).defineArray("refresh_intervals", String, { itemName: "refreshInterval" }).asClass;
1170
+ var TimePicker = defineGrafanaItemClass("TimePicker", GrafanaItem).defineBasicArray("refresh_intervals", String, { itemName: "refreshInterval" }).asClass;
978
1171
  //#endregion
979
1172
  //#region src/torefactor/index.js
980
1173
  /**
@@ -987,7 +1180,7 @@ var TimePicker = defineGrafanaItemClass("TimePicker", GrafanaItem).defineArray("
987
1180
  var getAnnotations = (options) => new Annotations(options).addNewAnnotation((annotation) => annotation.setBuiltIn(1).setNewDatasource((datasource) => datasource.setType("grafana").setUid("-- Grafana --")).setEnable(true).setHide(true).setIconColor("rgba(0, 211, 255, 1)").setName("Annotations & Alerts").setType("dashboard"));
988
1181
  //#endregion
989
1182
  //#region src/items/Dashboard.js
990
- var Dashboard = defineGrafanaItemClass("Dashboard", GrafanaItem).setParent(GrafanaItem).defineGrafanaObject("annotations", Annotations, { onDefault: (options) => getAnnotations(options) }).defineValue("editable", Boolean).defineValue("fiscalYearStartMonth", Number).defineValue("graphTooltip", Number).defineArray("links", Link, { itemName: "link" }).defineValue("liveNow", Boolean).defineMethod("addPanel", "(panel: Panel): this;", {
1183
+ var Dashboard = defineGrafanaItemClass("Dashboard", GrafanaItem).setParent(GrafanaItem).defineObject("annotations", Annotations, { onDefault: (options) => getAnnotations(options) }).defineValue("editable", Boolean).defineValue("fiscalYearStartMonth", Number).defineValue("graphTooltip", Number).defineArray("links", Link, { itemName: "link" }).defineValue("liveNow", Boolean).defineArray("panels", Panel, { itemName: "panel" }).defineMethod("addPanel", "(panel: Panel): this;", {
991
1184
  /**
992
1185
  * @param {Dashboard} dashboard
993
1186
  * @param {Panel} panel
@@ -1001,10 +1194,10 @@ code: (dashboard, panel) => {
1001
1194
  }, 0);
1002
1195
  panel._setValue("id", max + 1);
1003
1196
  return dashboard._addArrayItem("panels", panel);
1004
- } }).defineArray("panels", Panel, { itemName: "panel" }).defineValue("preload", Boolean).defineValue("schemaVersion", Number).defineValue("refresh", String).defineValue("tags", Array, {
1197
+ } }).defineValue("preload", Boolean).defineValue("schemaVersion", Number).defineValue("refresh", String).defineValue("tags", Array, {
1005
1198
  onDefault: (options) => [],
1006
1199
  typeName: "Array<String>"
1007
- }).defineGrafanaObject("templating", Templating, { onDefault: (options) => new Templating(options) }).defineGrafanaObject("time", TimeRange, { onDefault: (options) => new TimeRange(options).setRange("now-6h", "now") }).defineMethod("setTimeRange", "(from: string, to: string): this;", {
1200
+ }).defineObject("templating", Templating, { onDefault: (options) => new Templating(options) }).defineObject("time", TimeRange, { onDefault: (options) => new TimeRange(options).setRange("now-6h", "now") }).defineMethod("setTimeRange", "(from: string, to: string): this;", {
1008
1201
  /**
1009
1202
  * @param {Dashboard} dashboard
1010
1203
  * @param {string} from
@@ -1014,21 +1207,21 @@ code: (dashboard, panel) => {
1014
1207
  code: (dashboard, from, to) => {
1015
1208
  dashboard.time.setRange(from, to);
1016
1209
  return dashboard;
1017
- } }).defineGrafanaObject("timepicker", TimePicker, { onDefault: (options) => new TimePicker(options) }).defineValue("timezone", String, { onDefault: (options) => "browser" }).defineValue("title", String, { onDefault: (options) => "" }).defineValue("uid", String).asClass;
1210
+ } }).defineObject("timepicker", TimePicker, { onDefault: (options) => new TimePicker(options) }).defineValue("timezone", String, { onDefault: (options) => "browser" }).defineValue("title", String, { onDefault: (options) => "" }).defineValue("uid", String).asClass;
1018
1211
  //#endregion
1019
1212
  //#region src/items/properties/datasource.js
1020
1213
  /**
1021
- * @param {GrafanaItemClassBuilder} builder
1214
+ * @template {Datasource} T
1215
+ * @param {GrafanaItemClassBuilder<T>} builder
1022
1216
  * @param {string} typeName
1023
1217
  * @param {Object} [options]
1024
- * @param {(instance: Datasource) => void} [options.onInit]
1218
+ * @param {(instance: T) => void} [options.onInit]
1025
1219
  */
1026
1220
  var defineDatasource = (builder, typeName, options) => {
1027
1221
  const { onInit } = options ?? {};
1028
1222
  builder.defineConstructor((instance) => {
1029
- const self = instance;
1030
- self.setType(typeName);
1031
- if (onInit) onInit(self);
1223
+ instance.setType(typeName);
1224
+ if (onInit) onInit(instance);
1032
1225
  });
1033
1226
  };
1034
1227
  //#endregion
@@ -1040,7 +1233,8 @@ var ScaleDistribution = defineGrafanaItemClass("ScaleDistribution", GrafanaItem)
1040
1233
  //#endregion
1041
1234
  //#region src/items/properties/axisConfig.js
1042
1235
  /**
1043
- * @param {GrafanaItemClassBuilder} builder
1236
+ * @template {FieldConfigCustom} T
1237
+ * @param {GrafanaItemClassBuilder<T>} builder
1044
1238
  */
1045
1239
  var defineAxisConfig = (builder) => {
1046
1240
  builder.defineValue("axisBorderShow", Boolean).defineValue("axisCenteredZero", Boolean).defineValue("axisColorMode", String).defineValue("axisGridShow", Boolean).defineValue("axisLabel", String).defineValue("axisPlacement", String).defineValue("axisSoftMax", Number).defineValue("axisSoftMin", Number).defineValue("axisWidth", Number).defineObject("scaleDistribution", ScaleDistribution, { onDefault: (options) => new ScaleDistribution(options).setType("linear") });
@@ -1048,17 +1242,18 @@ var defineAxisConfig = (builder) => {
1048
1242
  //#endregion
1049
1243
  //#region src/items/properties/hideableFieldConfig.js
1050
1244
  /**
1051
- * @param {GrafanaItemClassBuilder} builder
1245
+ * @template {FieldConfigCustom} T
1246
+ * @param {GrafanaItemClassBuilder<T>} builder
1052
1247
  */
1053
1248
  var defineHideableFieldConfig = (builder) => {
1054
- builder.defineGrafanaObject("hideFrom", HideFrom, { onDefault: (options) => new HideFrom(options).setLegend(false).setTooltip(false).setViz(false) });
1249
+ builder.defineObject("hideFrom", HideFrom, { onDefault: (options) => new HideFrom(options).setLegend(false).setTooltip(false).setViz(false) });
1055
1250
  };
1056
1251
  //#endregion
1057
1252
  //#region src/items/ThresholdStyle.js
1058
1253
  var ThresholdStyle = defineGrafanaItemClass("ThresholdStyle", GrafanaItem).defineValue("mode", String).asClass;
1059
1254
  //#endregion
1060
1255
  //#region src/items/FieldConfigCustomBarChart.js
1061
- var FieldConfigCustomBarChart = defineGrafanaItemClass("FieldConfigCustomBarChart", FieldConfigCustom).with((builder) => defineAxisConfig(builder)).defineValue("fillOpacity", Number).defineValue("gradientMode", String).with((builder) => defineHideableFieldConfig(builder)).defineValue("lineWidth", Number).defineGrafanaObject("thresholdsStyle", ThresholdStyle, { onDefault: (options) => new ThresholdStyle(options).setMode("off") }).defineMethod("setThresholdsStyleMode", "(mode: string): this;", {
1256
+ var FieldConfigCustomBarChart = defineGrafanaItemClass("FieldConfigCustomBarChart", FieldConfigCustom).with((builder) => defineAxisConfig(builder)).defineValue("fillOpacity", Number).defineValue("gradientMode", String).with((builder) => defineHideableFieldConfig(builder)).defineValue("lineWidth", Number).defineObject("thresholdsStyle", ThresholdStyle, { onDefault: (options) => new ThresholdStyle(options).setMode("off") }).defineMethod("setThresholdsStyleMode", "(mode: string): this;", {
1062
1257
  /**
1063
1258
  * @param {FieldConfigCustomBarChart} fieldConfigCustomBarChart
1064
1259
  * @param {String} mode
@@ -1073,7 +1268,7 @@ code: (fieldConfigCustomBarChart, mode) => {
1073
1268
  var FieldConfigCustomGauge = defineGrafanaItemClass("FieldConfigCustomGauge", FieldConfigCustom).asClass;
1074
1269
  //#endregion
1075
1270
  //#region src/items/FieldConfigCustomGeomap.js
1076
- var FieldConfigCustomGeomap = defineGrafanaItemClass("FieldConfigCustomGeomap", FieldConfigCustom).defineGrafanaObject("hideFrom", HideFrom, { onDefault: (options) => new HideFrom(options).setLegend(false).setTooltip(false).setViz(false) }).asClass;
1271
+ var FieldConfigCustomGeomap = defineGrafanaItemClass("FieldConfigCustomGeomap", FieldConfigCustom).defineObject("hideFrom", HideFrom, { onDefault: (options) => new HideFrom(options).setLegend(false).setTooltip(false).setViz(false) }).asClass;
1077
1272
  //#endregion
1078
1273
  //#region src/items/FieldConfigCustomPieChart.js
1079
1274
  var FieldConfigCustomPieChart = defineGrafanaItemClass("FieldConfigCustomPieChart", FieldConfigCustom).with((builder) => defineHideableFieldConfig(builder)).asClass;
@@ -1085,7 +1280,7 @@ var LineStyle = defineGrafanaItemClass("LineStyle", GrafanaItem).defineValue("fi
1085
1280
  var Stacking = defineGrafanaItemClass("Stacking", GrafanaItem).defineValue("group", String).defineValue("mode", String).asClass;
1086
1281
  //#endregion
1087
1282
  //#region src/items/FieldConfigCustomTimeSerie.js
1088
- var FieldConfigCustomTimeSerie = defineGrafanaItemClass("FieldConfigCustomTimeSerie", FieldConfigCustom).with((builder) => defineAxisConfig(builder)).defineValue("barAlignment", Number).defineValue("barMaxWidth", Number).defineValue("barWidthFactor", Number).defineValue("drawStyle", String).defineValue("fillBelowTo", String).defineValue("fillColor", String).defineValue("fillOpacity", Number).defineValue("gradientMode", String).with((builder) => defineHideableFieldConfig(builder)).defineValue("insertNulls", Boolean).defineValue("lineInterpolation", String).defineGrafanaObject("lineStyle", LineStyle, { onDefault: (options) => new LineStyle(options).setFill("solid") }).defineMethod("setLineStyleFill", "(fill: string): this;", {
1283
+ var FieldConfigCustomTimeSerie = defineGrafanaItemClass("FieldConfigCustomTimeSerie", FieldConfigCustom).with((builder) => defineAxisConfig(builder)).defineValue("barAlignment", Number).defineValue("barMaxWidth", Number).defineValue("barWidthFactor", Number).defineValue("drawStyle", String).defineValue("fillBelowTo", String).defineValue("fillColor", String).defineValue("fillOpacity", Number).defineValue("gradientMode", String).with((builder) => defineHideableFieldConfig(builder)).defineValue("insertNulls", Boolean).defineValue("lineInterpolation", String).defineObject("lineStyle", LineStyle, { onDefault: (options) => new LineStyle(options).setFill("solid") }).defineMethod("setLineStyleFill", "(fill: string): this;", {
1089
1284
  /**
1090
1285
  * @param {FieldConfigCustomTimeSerie} fieldConfigCustomTimeSerie
1091
1286
  * @param {String} fill
@@ -1094,7 +1289,7 @@ var FieldConfigCustomTimeSerie = defineGrafanaItemClass("FieldConfigCustomTimeSe
1094
1289
  code: (fieldConfigCustomTimeSerie, fill) => {
1095
1290
  fieldConfigCustomTimeSerie.lineStyle.setFill(fill);
1096
1291
  return fieldConfigCustomTimeSerie;
1097
- } }).defineValue("lineWidth", Number).defineValue("pointColor", String).defineValue("pointSize", Number).defineValue("pointSymbol", String).defineValue("showPoints", String).defineValue("showValues", Boolean).defineValue("spanNulls", Boolean).defineGrafanaObject("stacking", Stacking, { onDefault: (options) => new Stacking(options).setGroup("A").setMode("none") }).defineGrafanaObject("thresholdsStyle", ThresholdStyle, { onDefault: (options) => new ThresholdStyle(options).setMode("off") }).defineMethod("setThresholdsStyleMode", "(mode: string): this;", {
1292
+ } }).defineValue("lineWidth", Number).defineValue("pointColor", String).defineValue("pointSize", Number).defineValue("pointSymbol", String).defineValue("showPoints", String).defineValue("showValues", Boolean).defineValue("spanNulls", Boolean).defineObject("stacking", Stacking, { onDefault: (options) => new Stacking(options).setGroup("A").setMode("none") }).defineObject("thresholdsStyle", ThresholdStyle, { onDefault: (options) => new ThresholdStyle(options).setMode("off") }).defineMethod("setThresholdsStyleMode", "(mode: string): this;", {
1098
1293
  /**
1099
1294
  * @param {FieldConfigCustomTimeSerie} fieldConfigCustomTimeSerie
1100
1295
  * @param {String} mode
@@ -1109,10 +1304,10 @@ code: (fieldConfigCustomTimeSerie, mode) => {
1109
1304
  var FieldConfigCustomTableCellOptions = defineGrafanaItemClass("FieldConfigCustomTableCellOptions", GrafanaItem).defineValue("type", String).asClass;
1110
1305
  //#endregion
1111
1306
  //#region src/items/FieldConfigCustomTableFooter.js
1112
- var FieldConfigCustomTableFooter = defineGrafanaItemClass("FieldConfigCustomTableFooter", GrafanaItem).defineArray("reducers", String).asClass;
1307
+ var FieldConfigCustomTableFooter = defineGrafanaItemClass("FieldConfigCustomTableFooter", GrafanaItem).defineBasicArray("reducers", String).asClass;
1113
1308
  //#endregion
1114
1309
  //#region src/items/FieldConfigCustomTable.js
1115
- var FieldConfigCustomTable = defineGrafanaItemClass("FieldConfigCustomTable", FieldConfigCustom).defineValue("align", String).defineGrafanaObject("cellOptions", FieldConfigCustomTableCellOptions, { onDefault: (options) => new FieldConfigCustomTableCellOptions(options) }).defineGrafanaObject("footer", FieldConfigCustomTableFooter, { onDefault: (options) => new FieldConfigCustomTableFooter(options) }).defineValue("inspect", Boolean).asClass;
1310
+ var FieldConfigCustomTable = defineGrafanaItemClass("FieldConfigCustomTable", FieldConfigCustom).defineValue("align", String).defineObject("cellOptions", FieldConfigCustomTableCellOptions, { onDefault: (options) => new FieldConfigCustomTableCellOptions(options) }).defineObject("footer", FieldConfigCustomTableFooter, { onDefault: (options) => new FieldConfigCustomTableFooter(options) }).defineValue("inspect", Boolean).asClass;
1116
1311
  //#endregion
1117
1312
  //#region src/items/Influxdb.js
1118
1313
  var Influxdb = defineGrafanaItemClass("Influxdb", Datasource).with((builder) => defineDatasource(builder, "influxdb")).asClass;
@@ -1121,7 +1316,7 @@ var Influxdb = defineGrafanaItemClass("Influxdb", Datasource).with((builder) =>
1121
1316
  var PanelOptions = defineGrafanaItemClass("PanelOptions", GrafanaItem).asClass;
1122
1317
  //#endregion
1123
1318
  //#region src/items/VizLegendOptions.js
1124
- var VizLegendOptions = defineGrafanaItemClass("VizLegendOptions", GrafanaItem).defineValue("asTable", Boolean).defineArray("calcs", String).defineValue("displayMode", String).defineValue("isVisible", Boolean).defineValue("limit", Number).defineValue("overflow", String).defineValue("placement", String).defineValue("showLegend", Boolean).defineValue("sortBy", String).defineValue("sortDesc", Boolean).defineValue("width", Number).asClass;
1319
+ var VizLegendOptions = defineGrafanaItemClass("VizLegendOptions", GrafanaItem).defineValue("asTable", Boolean).defineBasicArray("calcs", String).defineValue("displayMode", String).defineValue("isVisible", Boolean).defineValue("limit", Number).defineValue("overflow", String).defineValue("placement", String).defineValue("showLegend", Boolean).defineValue("sortBy", String).defineValue("sortDesc", Boolean).defineValue("width", Number).asClass;
1125
1320
  //#endregion
1126
1321
  //#region src/items/VizTooltipOptions.js
1127
1322
  var VizTooltipOptions = defineGrafanaItemClass("VizTooltipOptions", GrafanaItem).defineValue("hideZeros", Boolean).defineValue("maxHeight", Number).defineValue("maxWidth", Number).defineValue("mode", String).defineValue("sort", String).asClass;
@@ -1130,19 +1325,19 @@ var VizTooltipOptions = defineGrafanaItemClass("VizTooltipOptions", GrafanaItem)
1130
1325
  var VizTextDisplayOptions = defineGrafanaItemClass("VizTextDisplayOptions", GrafanaItem).defineValue("percentSize", Number).defineValue("titleSize", Number).defineValue("valueSize", Number).asClass;
1131
1326
  //#endregion
1132
1327
  //#region src/items/PanelOptionsBarChart.js
1133
- var PanelOptionsBarChart = defineGrafanaItemClass("PanelOptionsBarChart", PanelOptions).defineValue("barRadius", Number).defineValue("barWidth", Number).defineValue("colorByField", String).defineValue("fullHighlight", Boolean).defineValue("groupWidth", Number).defineGrafanaObject("legend", VizLegendOptions, { onDefault: (options) => new VizLegendOptions(options).setDisplayMode("list").setPlacement("bottom").setShowLegend(false) }).defineValue("orientation", String).defineValue("showValue", String).defineValue("stacking", String).defineGrafanaObject("text", VizTextDisplayOptions).defineGrafanaObject("tooltip", VizTooltipOptions, { onDefault: (options) => new VizTooltipOptions(options).setHideZeros(false).setMode("single").setSort("none") }).defineValue("xField", String).defineValue("xTickLabelMaxLength", Number).defineValue("xTickLabelRotation", Number).defineValue("xTickLabelSpacing", Number).asClass;
1328
+ var PanelOptionsBarChart = defineGrafanaItemClass("PanelOptionsBarChart", PanelOptions).defineValue("barRadius", Number).defineValue("barWidth", Number).defineValue("colorByField", String).defineValue("fullHighlight", Boolean).defineValue("groupWidth", Number).defineObject("legend", VizLegendOptions, { onDefault: (options) => new VizLegendOptions(options).setDisplayMode("list").setPlacement("bottom").setShowLegend(false) }).defineValue("orientation", String).defineValue("showValue", String).defineValue("stacking", String).defineObject("text", VizTextDisplayOptions).defineObject("tooltip", VizTooltipOptions, { onDefault: (options) => new VizTooltipOptions(options).setHideZeros(false).setMode("single").setSort("none") }).defineValue("xField", String).defineValue("xTickLabelMaxLength", Number).defineValue("xTickLabelRotation", Number).defineValue("xTickLabelSpacing", Number).asClass;
1134
1329
  //#endregion
1135
1330
  //#region src/items/PanelOptionsGaugeEffect.js
1136
1331
  var PanelOptionsGaugeEffect = defineGrafanaItemClass("PanelOptionsGaugeEffect", GrafanaItem).defineValue("barGlow", Boolean).defineValue("centerGlow", Boolean).defineValue("gradient", Boolean).asClass;
1137
1332
  //#endregion
1138
1333
  //#region src/items/PanelOptionsGaugeReduceOptions.js
1139
- var PanelOptionsGaugeReduceOptions = defineGrafanaItemClass("PanelOptionsGaugeReduceOptions", GrafanaItem).defineArray("calcs", String, { setEmpty: true }).defineValue("fields", String).defineValue("limit", Number).defineValue("values", Boolean).asClass;
1334
+ var PanelOptionsGaugeReduceOptions = defineGrafanaItemClass("PanelOptionsGaugeReduceOptions", GrafanaItem).defineBasicArray("calcs", String, { setEmpty: true }).defineValue("fields", String).defineValue("limit", Number).defineValue("values", Boolean).asClass;
1140
1335
  //#endregion
1141
1336
  //#region src/items/PanelOptionsGauge.js
1142
- var PanelOptionsGauge = defineGrafanaItemClass("PanelOptionsGauge", PanelOptions).defineValue("barShape", String).defineValue("barWidthFactor", Number).defineGrafanaObject("effects", PanelOptionsGaugeEffect).defineValue("endpointMarker", String).defineValue("minVizHeight", Number).defineValue("minVizWidth", Number).defineValue("orientation", String).defineGrafanaObject("reduceOptions", PanelOptionsGaugeReduceOptions).defineValue("segmentCount", Number).defineValue("segmentSpacing", Number).defineValue("shape", String).defineValue("showThresholdLabels", Boolean).defineValue("showThresholdMarkers", Boolean).defineValue("sizing", String).defineValue("sparkline", Boolean).defineValue("textMode", String).asClass;
1337
+ var PanelOptionsGauge = defineGrafanaItemClass("PanelOptionsGauge", PanelOptions).defineValue("barShape", String).defineValue("barWidthFactor", Number).defineObject("effects", PanelOptionsGaugeEffect).defineValue("endpointMarker", String).defineValue("minVizHeight", Number).defineValue("minVizWidth", Number).defineValue("orientation", String).defineObject("reduceOptions", PanelOptionsGaugeReduceOptions).defineValue("segmentCount", Number).defineValue("segmentSpacing", Number).defineValue("shape", String).defineValue("showThresholdLabels", Boolean).defineValue("showThresholdMarkers", Boolean).defineValue("sizing", String).defineValue("sparkline", Boolean).defineValue("textMode", String).asClass;
1143
1338
  //#endregion
1144
1339
  //#region src/items/PanelOptionsGeomapBasemap.js
1145
- var PanelOptionsGeomapBasemap = defineGrafanaItemClass("PanelOptionsGeomapBasemap", GrafanaItem).defineObject("config", Object).defineValue("name", String).defineValue("noRepeat", Boolean).defineValue("type", String).asClass;
1340
+ var PanelOptionsGeomapBasemap = defineGrafanaItemClass("PanelOptionsGeomapBasemap", GrafanaItem).defineBasicObject("config", Object).defineValue("name", String).defineValue("noRepeat", Boolean).defineValue("type", String).asClass;
1146
1341
  //#endregion
1147
1342
  //#region src/items/PanelOptionsGeomapControls.js
1148
1343
  var PanelOptionsGeomapControls = defineGrafanaItemClass("PanelOptionsGeomapControls", GrafanaItem).defineValue("mouseWheelZoom", Boolean).defineValue("showAttribution", Boolean).defineValue("showDebug", Boolean).defineValue("showMeasure", Boolean).defineValue("showScale", Boolean).defineValue("showZoom", Boolean).asClass;
@@ -1166,16 +1361,16 @@ var StyleSymbolAlign = defineGrafanaItemClass("StyleSymbolAlign", GrafanaItem).d
1166
1361
  var StyleTextConfig = defineGrafanaItemClass("StyleTextConfig", GrafanaItem).defineValue("fontSize", Number).defineValue("offsetX", Number).defineValue("offsetY", Number).defineValue("textAlign", String).defineValue("textBaseline", String).asClass;
1167
1362
  //#endregion
1168
1363
  //#region src/items/PanelOptionsGeomapLayerConfigStyle.js
1169
- var PanelOptionsGeomapLayerConfigStyle = defineGrafanaItemClass("PanelOptionsGeomapLayerConfigStyle", GrafanaItem).defineGrafanaObject("color", StyleColor, { onDefault: (options) => new StyleColor(options) }).defineValue("opacity", Number, { onDefault: (options) => 1 }).defineGrafanaObject("rotation", StyleRotation, { onDefault: (options) => new StyleRotation(options) }).defineGrafanaObject("size", StyleSize, { onDefault: (options) => new StyleSize(options) }).defineGrafanaObject("symbol", StyleSymbol, { onDefault: (options) => new StyleSymbol(options) }).defineGrafanaObject("symbolAlign", StyleSymbolAlign, { onDefault: (options) => new StyleSymbolAlign(options) }).defineGrafanaObject("textConfig", StyleTextConfig, { onDefault: (options) => new StyleTextConfig(options) }).asClass;
1364
+ var PanelOptionsGeomapLayerConfigStyle = defineGrafanaItemClass("PanelOptionsGeomapLayerConfigStyle", GrafanaItem).defineObject("color", StyleColor, { onDefault: (options) => new StyleColor(options) }).defineValue("opacity", Number, { onDefault: (options) => 1 }).defineObject("rotation", StyleRotation, { onDefault: (options) => new StyleRotation(options) }).defineObject("size", StyleSize, { onDefault: (options) => new StyleSize(options) }).defineObject("symbol", StyleSymbol, { onDefault: (options) => new StyleSymbol(options) }).defineObject("symbolAlign", StyleSymbolAlign, { onDefault: (options) => new StyleSymbolAlign(options) }).defineObject("textConfig", StyleTextConfig, { onDefault: (options) => new StyleTextConfig(options) }).asClass;
1170
1365
  //#endregion
1171
1366
  //#region src/items/PanelOptionsGeomapLayerConfig.js
1172
- var PanelOptionsGeomapLayerConfig = defineGrafanaItemClass("PanelOptionsGeomapLayerConfig", GrafanaItem).defineValue("showLegend", Boolean).defineGrafanaObject("style", PanelOptionsGeomapLayerConfigStyle, { onDefault: (options) => new PanelOptionsGeomapLayerConfigStyle(options) }).asClass;
1367
+ var PanelOptionsGeomapLayerConfig = defineGrafanaItemClass("PanelOptionsGeomapLayerConfig", GrafanaItem).defineValue("showLegend", Boolean).defineObject("style", PanelOptionsGeomapLayerConfigStyle, { onDefault: (options) => new PanelOptionsGeomapLayerConfigStyle(options) }).asClass;
1173
1368
  //#endregion
1174
1369
  //#region src/items/PanelOptionsGeomapLayerLocation.js
1175
1370
  var PanelOptionsGeomapLayerLocation = defineGrafanaItemClass("PanelOptionsGeomapLayerLocation", GrafanaItem).defineValue("mode", String).asClass;
1176
1371
  //#endregion
1177
1372
  //#region src/items/PanelOptionsGeomapLayer.js
1178
- var PanelOptionsGeomapLayer = defineGrafanaItemClass("PanelOptionsGeomapLayer", GrafanaItem).defineGrafanaObject("config", PanelOptionsGeomapLayerConfig).defineGrafanaObject("location", PanelOptionsGeomapLayerLocation).defineValue("name", String).defineValue("tooltip", Boolean).defineValue("type", String).asClass;
1373
+ var PanelOptionsGeomapLayer = defineGrafanaItemClass("PanelOptionsGeomapLayer", GrafanaItem).defineObject("config", PanelOptionsGeomapLayerConfig).defineObject("location", PanelOptionsGeomapLayerLocation).defineValue("name", String).defineValue("tooltip", Boolean).defineValue("type", String).asClass;
1179
1374
  //#endregion
1180
1375
  //#region src/items/PanelOptionsGeomapTooltip.js
1181
1376
  var PanelOptionsGeomapTooltip = defineGrafanaItemClass("PanelOptionsGeomapTooltip", GrafanaItem).defineValue("mode", String).asClass;
@@ -1184,13 +1379,13 @@ var PanelOptionsGeomapTooltip = defineGrafanaItemClass("PanelOptionsGeomapToolti
1184
1379
  var PanelOptionsGeomapView = defineGrafanaItemClass("PanelOptionsGeomapView", GrafanaItem).defineValue("allLayers", Boolean).defineValue("id", String).defineValue("lat", Number).defineValue("lon", Number).defineValue("noRepeat", Boolean).defineValue("shared", Boolean).defineValue("zoom", Number).asClass;
1185
1380
  //#endregion
1186
1381
  //#region src/items/PanelOptionsGeomap.js
1187
- var PanelOptionsGeomap = defineGrafanaItemClass("PanelOptionsGeomap", PanelOptions).defineGrafanaObject("basemap", PanelOptionsGeomapBasemap).defineGrafanaObject("controls", PanelOptionsGeomapControls).defineArray("layers", PanelOptionsGeomapLayer).defineGrafanaObject("tooltip", PanelOptionsGeomapTooltip).defineGrafanaObject("view", PanelOptionsGeomapView).asClass;
1382
+ var PanelOptionsGeomap = defineGrafanaItemClass("PanelOptionsGeomap", PanelOptions).defineObject("basemap", PanelOptionsGeomapBasemap).defineObject("controls", PanelOptionsGeomapControls).defineArray("layers", PanelOptionsGeomapLayer).defineObject("tooltip", PanelOptionsGeomapTooltip).defineObject("view", PanelOptionsGeomapView).asClass;
1188
1383
  //#endregion
1189
1384
  //#region src/items/PieChartLegendOptions.js
1190
- var PieChartLegendOptions = defineGrafanaItemClass("PieChartLegendOptions", VizLegendOptions).defineArray("values", String).asClass;
1385
+ var PieChartLegendOptions = defineGrafanaItemClass("PieChartLegendOptions", VizLegendOptions).defineBasicArray("values", String).asClass;
1191
1386
  //#endregion
1192
1387
  //#region src/items/PanelOptionsPieChart.js
1193
- var PanelOptionsPieChart = defineGrafanaItemClass("PanelOptionsPieChart", PanelOptions).defineArray("displayLabels", String).defineGrafanaObject("legend", PieChartLegendOptions).defineValue("pieType", String).defineValue("sort", String).defineGrafanaObject("tooltip", VizTooltipOptions).asClass;
1388
+ var PanelOptionsPieChart = defineGrafanaItemClass("PanelOptionsPieChart", PanelOptions).defineBasicArray("displayLabels", String).defineObject("legend", PieChartLegendOptions).defineValue("pieType", String).defineValue("sort", String).defineObject("tooltip", VizTooltipOptions).asClass;
1194
1389
  //#endregion
1195
1390
  //#region src/items/PanelOptionsStat.js
1196
1391
  var PanelOptionsStat = defineGrafanaItemClass("PanelOptionsStat", PanelOptions).asClass;
@@ -1205,13 +1400,13 @@ var PanelOptionsTable = defineGrafanaItemClass("PanelOptionsTable", PanelOptions
1205
1400
  var PanelOptionsTextCode = defineGrafanaItemClass("PanelOptionsTextCode", GrafanaItem).defineValue("language", String).defineValue("showLineNumbers", Boolean).defineValue("showMiniMap", Boolean).asClass;
1206
1401
  //#endregion
1207
1402
  //#region src/items/PanelOptionsText.js
1208
- var PanelOptionsText = defineGrafanaItemClass("PanelOptionsText", PanelOptions).defineGrafanaObject("code", PanelOptionsTextCode, { onDefault: (options) => new PanelOptionsTextCode(options) }).defineValue("content", String).defineValue("mode", String).asClass;
1403
+ var PanelOptionsText = defineGrafanaItemClass("PanelOptionsText", PanelOptions).defineObject("code", PanelOptionsTextCode, { onDefault: (options) => new PanelOptionsTextCode(options) }).defineValue("content", String).defineValue("mode", String).asClass;
1209
1404
  //#endregion
1210
1405
  //#region src/items/PanelOptionsTimeSeries.js
1211
- var PanelOptionsTimeSeries = defineGrafanaItemClass("PanelOptionsTimeSeries", PanelOptions).defineValue("disableKeyboardEvents", Boolean).defineGrafanaObject("legend", VizLegendOptions, { onDefault: (options) => new VizLegendOptions(options).setDisplayMode("list").setPlacement("bottom").setShowLegend(false) }).defineValue("orientation", String).defineGrafanaObject("tooltip", VizTooltipOptions, { onDefault: (options) => new VizTooltipOptions(options).setHideZeros(false).setMode("single").setSort("none") }).asClass;
1406
+ var PanelOptionsTimeSeries = defineGrafanaItemClass("PanelOptionsTimeSeries", PanelOptions).defineValue("disableKeyboardEvents", Boolean).defineObject("legend", VizLegendOptions, { onDefault: (options) => new VizLegendOptions(options).setDisplayMode("list").setPlacement("bottom").setShowLegend(false) }).defineValue("orientation", String).defineObject("tooltip", VizTooltipOptions, { onDefault: (options) => new VizTooltipOptions(options).setHideZeros(false).setMode("single").setSort("none") }).asClass;
1212
1407
  //#endregion
1213
1408
  //#region src/items/TargetInfinity.js
1214
- var TargetInfinity = defineGrafanaItemClass("TargetInfinity", Target).defineObject("columns", Object).defineObject("computed_columns", Object, { name: "computedColumns" }).defineValue("format", String).defineValue("parser", String).defineValue("source", String).defineValue("type", String).defineValue("uql", String).defineValue("url", String).defineValue("url_options", Object, { name: "urlOptions" }).asClass;
1409
+ var TargetInfinity = defineGrafanaItemClass("TargetInfinity", Target).defineBasicObject("columns", Object).defineBasicObject("computed_columns", Object, { name: "computedColumns" }).defineValue("format", String).defineValue("parser", String).defineValue("source", String).defineValue("type", String).defineValue("uql", String).defineValue("url", String).defineValue("url_options", Object, { name: "urlOptions" }).asClass;
1215
1410
  //#endregion
1216
1411
  //#region src/items/Testdata.js
1217
1412
  var Testdata = defineGrafanaItemClass("Testdata", Datasource).with((builder) => defineDatasource(builder, "grafana-testdata-datasource")).asClass;
@@ -1221,33 +1416,37 @@ var FieldConfigCustomText = defineGrafanaItemClass("FieldConfigCustomText", Fiel
1221
1416
  //#endregion
1222
1417
  //#region src/items/properties/panel.js
1223
1418
  /**
1224
- * @param {GrafanaItemClassBuilder} builder
1419
+ * @template T
1420
+ * @typedef {import("@gdacm/base-types").MetaConstructor<T>} MetaConstructor
1421
+ */
1422
+ /**
1423
+ * @template {Panel} T
1424
+ * @param {GrafanaItemClassBuilder<T>} builder
1225
1425
  * @param {string} typeName
1226
- * @param {typeof FieldConfigCustom} fieldConfigCustom
1227
- * @param {typeof PanelOptions} panelOptions
1426
+ * @param {MetaConstructor<FieldConfigCustom>} fieldConfigCustom
1427
+ * @param {MetaConstructor<PanelOptions>} panelOptions
1228
1428
  * @param {Object} [options]
1229
- * @param {(instance: Panel) => void} [options.onInit]
1429
+ * @param {(instance: T) => void} [options.onInit]
1230
1430
  */
1231
1431
  var definePanel = (builder, typeName, fieldConfigCustom, panelOptions, options) => {
1232
1432
  const { onInit } = options ?? {};
1233
1433
  builder.defineConstructor((instance) => {
1234
- const self = instance;
1235
- self.setType(typeName).withFieldConfig((fieldConfig) => fieldConfig.setDefaults(new FieldConfigDefault(instance.metaOptions).setCustom(new fieldConfigCustom(instance.metaOptions))));
1236
- if (onInit) onInit(self);
1434
+ instance.setType(typeName).withFieldConfig((fieldConfig) => fieldConfig.setDefaults(new FieldConfigDefault(instance.metaOptions).setCustom(new fieldConfigCustom(instance.metaOptions))));
1435
+ if (onInit) onInit(instance);
1237
1436
  }).defineGetterSetter("custom", `${fieldConfigCustom.name}`, {
1238
1437
  typesToInclude: [fieldConfigCustom],
1239
1438
  getter: (instance) => instance.fieldConfig.defaults.custom
1240
1439
  }).defineMethod(`withCustom`, `(code: (custom: ${fieldConfigCustom.name}) => void): this`, {
1241
1440
  typesToInclude: [fieldConfigCustom],
1242
1441
  /**
1243
- * @param {Panel} instance
1442
+ * @param {T} instance
1244
1443
  * @param {(custom: FieldConfigCustom) => void} code
1245
1444
  * */
1246
1445
  code: (instance, code) => {
1247
1446
  code(instance.fieldConfig.defaults.custom);
1248
1447
  return instance;
1249
1448
  }
1250
- }).defineGrafanaObject("options", panelOptions, { onDefault: (options) => new panelOptions(options) });
1449
+ }).defineObject("options", panelOptions, { onDefault: (options) => new panelOptions(options) });
1251
1450
  };
1252
1451
  //#endregion
1253
1452
  //#region src/items/TextPanel.js
@@ -1257,8 +1456,13 @@ var TextPanel = defineGrafanaItemClass("TextPanel", Panel).with((builder) => def
1257
1456
  var BarChart = defineGrafanaItemClass("BarChart", Panel).with((instance) => definePanel(instance, "barchart", FieldConfigCustomBarChart, PanelOptionsBarChart, { onInit: (instance) => {
1258
1457
  instance.fieldConfig.defaults.setColorMode("palette-classic");
1259
1458
  instance.fieldConfig.defaults.thresholds.setMode("absolute");
1260
- } })).defineMethod("setThresholdsStyleArea", "(): this", { code: (instance) => {
1261
- instance.custom.thresholdsStyle.setMode("area");
1459
+ } })).defineMethod("setThresholdsStyleMode", "(mode: string): this", {
1460
+ /**
1461
+ * @param {BarChart} instance
1462
+ * @returns
1463
+ */
1464
+ code: (instance, mode) => {
1465
+ instance.custom.thresholdsStyle.setMode(mode);
1262
1466
  return instance;
1263
1467
  } }).asClass;
1264
1468
  //#endregion
@@ -1289,8 +1493,13 @@ var Table = defineGrafanaItemClass("Table", Panel).with((builder) => definePanel
1289
1493
  var TimeSeries = defineGrafanaItemClass("TimeSeries", Panel).with((builder) => definePanel(builder, "timeseries", FieldConfigCustomTimeSerie, PanelOptionsTimeSeries, { onInit: (instance) => {
1290
1494
  instance.fieldConfig.defaults.setColorMode("palette-classic");
1291
1495
  instance.fieldConfig.defaults.thresholds.setMode("absolute");
1292
- } })).defineMethod("setThresholdsStyleArea", "(): this", { code: (instance) => {
1293
- instance.custom.thresholdsStyle.setMode("area");
1496
+ } })).defineMethod("setThresholdsStyleMode", "(mode: string): this", {
1497
+ /**
1498
+ * @param {TimeSeries} instance
1499
+ * @returns
1500
+ */
1501
+ code: (instance, mode) => {
1502
+ instance.custom.thresholdsStyle.setMode(mode);
1294
1503
  return instance;
1295
1504
  } }).asClass;
1296
1505
  //#endregion