@gdacm/grafana-items 0.1.18 → 0.1.20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +639 -433
- package/dist/index.js.map +1 -1
- package/dist/items/BarChart.d.ts +3 -1
- package/dist/items/Dashboard.d.ts +1 -1
- package/dist/items/FieldConfigCustomBarChart.d.ts +1 -0
- package/dist/items/FieldConfigCustomTableFooter.d.ts +0 -1
- package/dist/items/FieldConfigCustomTimeSerie.d.ts +1 -0
- package/dist/items/Gauge.d.ts +2 -0
- package/dist/items/Geomap.d.ts +2 -0
- package/dist/items/Link.d.ts +0 -1
- package/dist/items/OverrideMatcherOptionsByNames.d.ts +0 -1
- package/dist/items/PanelOptionsGaugeReduceOptions.d.ts +0 -1
- package/dist/items/PanelOptionsPieChart.d.ts +0 -1
- package/dist/items/PieChart.d.ts +2 -0
- package/dist/items/PieChartLegendOptions.d.ts +0 -1
- package/dist/items/Stat.d.ts +2 -0
- package/dist/items/Table.d.ts +2 -0
- package/dist/items/TextPanel.d.ts +2 -0
- package/dist/items/TimePicker.d.ts +0 -1
- package/dist/items/TimeSeries.d.ts +3 -1
- package/dist/items/VizLegendOptions.d.ts +0 -1
- 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/
|
|
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
|
-
* @
|
|
33
|
-
* @
|
|
34
|
-
* @
|
|
35
|
-
*
|
|
36
|
-
*
|
|
37
|
-
*
|
|
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
|
-
* @
|
|
43
|
+
* @template {Object} T
|
|
41
44
|
*/
|
|
42
|
-
var
|
|
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
|
-
* @
|
|
88
|
+
* @typedef {import("@gdacm/base-types").GenericMetaOptions} GenericMetaOptions
|
|
45
89
|
*/
|
|
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
90
|
/**
|
|
70
|
-
*
|
|
71
|
-
* @
|
|
72
|
-
* @returns {MetaClassInfo}
|
|
91
|
+
* @template T
|
|
92
|
+
* @typedef {import("@gdacm/base-types").MetaConstructor<T>} MetaConstructor
|
|
73
93
|
*/
|
|
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
94
|
/**
|
|
80
|
-
* @
|
|
81
|
-
* @
|
|
95
|
+
* @template {Object} T
|
|
96
|
+
* @template {T} C
|
|
97
|
+
* @typedef {import("./MetaClassRegistry.js").MetaClassInfo<T,C>} MetaClassInfo
|
|
82
98
|
*/
|
|
83
|
-
function hasPrototype(cls, name) {
|
|
84
|
-
return cls.prototype[name] !== void 0;
|
|
85
|
-
}
|
|
86
99
|
/**
|
|
87
|
-
* @
|
|
100
|
+
* @type {MetaClassRegistry<GrafanaItem>}
|
|
101
|
+
*/
|
|
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;
|
|
127
|
+
/**
|
|
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
|
|
134
|
+
getPrototype(cls)[name] = value;
|
|
93
135
|
}
|
|
94
136
|
/**
|
|
95
|
-
* @
|
|
137
|
+
* @template {GrafanaItem} C
|
|
138
|
+
* @param {MetaConstructor<C>} cls
|
|
96
139
|
* @param {string} name
|
|
97
|
-
* @param {(self:
|
|
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
|
-
* @
|
|
152
|
+
* @template {GrafanaItem} C
|
|
153
|
+
* @param {MetaConstructor<C>} cls
|
|
110
154
|
* @param {string} name
|
|
111
|
-
* @param {(instance:
|
|
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
|
-
* @
|
|
167
|
+
* @template {GrafanaItem} C
|
|
168
|
+
* @param {MetaConstructor<C>} cls
|
|
124
169
|
* @param {string} name
|
|
125
|
-
* @param {(self:
|
|
126
|
-
* @param {(instance:
|
|
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,182 @@ function setGetterAndSetter(cls, name, getter, setter) {
|
|
|
138
183
|
});
|
|
139
184
|
}
|
|
140
185
|
/**
|
|
141
|
-
* @
|
|
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:
|
|
147
|
-
* @param {(metaOptions: GenericMetaOptions) =>
|
|
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
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
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
|
+
setPrototypeWithSignature(
|
|
307
|
+
cls,
|
|
308
|
+
`set${caseName}`,
|
|
309
|
+
`(${name}: ${typeName}): this;`,
|
|
310
|
+
/**
|
|
311
|
+
* @this C
|
|
312
|
+
* @template T
|
|
313
|
+
* @param {T} value
|
|
314
|
+
* @returns {C}
|
|
315
|
+
*/
|
|
316
|
+
function(value) {
|
|
317
|
+
return this._setValue(key, value);
|
|
318
|
+
}
|
|
319
|
+
);
|
|
320
|
+
addOnInit(cls, option?.onInit);
|
|
321
|
+
if (option?.onDefault) addOnInit(cls, (instance) => instance._setValue(key, option?.onDefault?.(instance.metaOptions)));
|
|
185
322
|
}
|
|
186
323
|
/**
|
|
187
|
-
* @
|
|
324
|
+
* @template {GrafanaItem} C
|
|
325
|
+
* @param {MetaConstructor<C>} cls
|
|
188
326
|
* @param {string} key
|
|
189
327
|
* @param {Function} type
|
|
190
328
|
* @param {Object} [option]
|
|
191
329
|
* @param {string} [option.name]
|
|
192
|
-
* @param {(instance:
|
|
193
|
-
* @param {(metaOptions: GenericMetaOptions) =>
|
|
330
|
+
* @param {(instance: C) => void} [option.onInit]
|
|
331
|
+
* @param {(metaOptions: GenericMetaOptions) => unknown} [option.onDefault]
|
|
194
332
|
* @param {String} [option.typeName]
|
|
195
333
|
*/
|
|
196
|
-
function
|
|
197
|
-
const metaClassInfo = getMetaClassInfo(cls);
|
|
334
|
+
function defineBasicObject(cls, key, type, option) {
|
|
198
335
|
const name = option?.name ? option.name : key;
|
|
199
336
|
const caseName = name.charAt(0).toUpperCase() + name.slice(1);
|
|
200
337
|
const typeName = option?.typeName ? option.typeName : type.name;
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
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(
|
|
338
|
+
addTypeNameToInclude(cls, type.name);
|
|
339
|
+
setPrototypeWithSignature(
|
|
340
|
+
cls,
|
|
341
|
+
`set${caseName}`,
|
|
342
|
+
`(${name}: ${typeName}): this;`,
|
|
343
|
+
/**
|
|
344
|
+
* @this C
|
|
345
|
+
* @template T
|
|
346
|
+
* @param {T} value
|
|
347
|
+
* @returns {C}
|
|
348
|
+
*/
|
|
349
|
+
function(value) {
|
|
350
|
+
return this._setObject(key, value);
|
|
351
|
+
}
|
|
352
|
+
);
|
|
353
|
+
setPrototypeWithSignature(
|
|
228
354
|
cls,
|
|
229
355
|
`with${caseName}`,
|
|
356
|
+
`(onWith: (item: ${typeName}) => void): this;`,
|
|
230
357
|
/**
|
|
231
|
-
* @this
|
|
358
|
+
* @this C
|
|
232
359
|
* @template {GrafanaItem} T
|
|
233
360
|
* @param {(item: T) => void} onWith
|
|
234
|
-
* @returns {
|
|
361
|
+
* @returns {C}
|
|
235
362
|
*/
|
|
236
363
|
function(onWith) {
|
|
237
364
|
const item = this._getObject(key);
|
|
@@ -239,85 +366,62 @@ function defineObject(cls, key, type, option) {
|
|
|
239
366
|
return this;
|
|
240
367
|
}
|
|
241
368
|
);
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
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
|
-
}
|
|
369
|
+
setGetterWithSignature(cls, name, (self) => self._getObject(key), typeName);
|
|
370
|
+
addOnInit(cls, option?.onInit);
|
|
371
|
+
if (option?.onDefault) addOnInit(cls, (instance) => instance._setObject(key, option?.onDefault?.(instance.metaOptions)));
|
|
255
372
|
}
|
|
256
373
|
/**
|
|
374
|
+
* @template {GrafanaItem} C
|
|
257
375
|
* @template {GrafanaItem} T
|
|
258
|
-
* @param {
|
|
376
|
+
* @param {MetaConstructor<C>} cls
|
|
259
377
|
* @param {string} key
|
|
260
378
|
* @param {MetaConstructor<T>} type
|
|
261
379
|
* @param {Object} [option]
|
|
262
380
|
* @param {string} [option.name]
|
|
263
|
-
* @param {(instance:
|
|
381
|
+
* @param {(instance: C) => void} [option.onInit]
|
|
264
382
|
* @param {(metaOptions: GenericMetaOptions) => T} [option.onDefault]
|
|
265
383
|
* @param {String} [option.typeName]
|
|
266
384
|
*/
|
|
267
|
-
function
|
|
268
|
-
const metaClassInfo = getMetaClassInfo(cls);
|
|
385
|
+
function defineObject(cls, key, type, option) {
|
|
269
386
|
const name = option?.name ? option.name : key;
|
|
270
387
|
const caseName = name.charAt(0).toUpperCase() + name.slice(1);
|
|
271
388
|
const typeName = option?.typeName ? option.typeName : type.name;
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
setNewName,
|
|
302
|
-
/**
|
|
303
|
-
* @this GrafanaItem
|
|
304
|
-
* @param {(item: T) => T} [onNewCreated]
|
|
305
|
-
* @returns {GrafanaItem}
|
|
306
|
-
*/
|
|
307
|
-
function(onNewCreated) {
|
|
308
|
-
if (!onNewCreated) onNewCreated = (item) => item;
|
|
309
|
-
return this._setGrafanaObject(key, type, onNewCreated(new type(this.metaOptions)));
|
|
310
|
-
}
|
|
311
|
-
);
|
|
312
|
-
metaClassInfo.methods.push(`${setNewName}(onNewCreated: ((item: ${typeName}) => ${typeName}) | undefined): this;`);
|
|
313
|
-
}
|
|
314
|
-
setPrototype(
|
|
389
|
+
addTypeNameToInclude(cls, type.name);
|
|
390
|
+
setPrototypeWithSignature(
|
|
391
|
+
cls,
|
|
392
|
+
`set${caseName}`,
|
|
393
|
+
`(${name}: ${typeName}): this;`,
|
|
394
|
+
/**
|
|
395
|
+
* @this C
|
|
396
|
+
* @param {T} value
|
|
397
|
+
* @returns {C}
|
|
398
|
+
*/
|
|
399
|
+
function(value) {
|
|
400
|
+
return this._setGrafanaObject(key, type, value);
|
|
401
|
+
}
|
|
402
|
+
);
|
|
403
|
+
setPrototypeWithSignature(
|
|
404
|
+
cls,
|
|
405
|
+
`setNew${caseName}`,
|
|
406
|
+
`(onNewCreated: ((item: ${typeName}) => ${typeName}) | undefined): this;`,
|
|
407
|
+
/**
|
|
408
|
+
* @this C
|
|
409
|
+
* @param {(item: T) => T} [onNewCreated]
|
|
410
|
+
* @returns {C}
|
|
411
|
+
*/
|
|
412
|
+
function(onNewCreated) {
|
|
413
|
+
if (!onNewCreated) onNewCreated = (item) => item;
|
|
414
|
+
return this._setGrafanaObject(key, type, onNewCreated(new type(this.metaOptions)));
|
|
415
|
+
}
|
|
416
|
+
);
|
|
417
|
+
setPrototypeWithSignature(
|
|
315
418
|
cls,
|
|
316
419
|
`with${caseName}`,
|
|
420
|
+
`(onWith: (item: ${typeName}) => void): this;`,
|
|
317
421
|
/**
|
|
318
|
-
* @this
|
|
422
|
+
* @this C
|
|
319
423
|
* @param {(item: T) => void} onWith
|
|
320
|
-
* @returns {
|
|
424
|
+
* @returns {C}
|
|
321
425
|
*/
|
|
322
426
|
function(onWith) {
|
|
323
427
|
const item = this._getGrafanaObject(key, type);
|
|
@@ -325,101 +429,79 @@ function defineGrafanaObject(cls, key, type, option) {
|
|
|
325
429
|
return this;
|
|
326
430
|
}
|
|
327
431
|
);
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
* @param {GrafanaItem} instance
|
|
335
|
-
*/
|
|
336
|
-
const onInit = (instance) => {
|
|
337
|
-
const x = option?.onDefault?.(instance.metaOptions);
|
|
338
|
-
instance._setGrafanaObject(key, type, x);
|
|
339
|
-
};
|
|
340
|
-
metaClassInfo.onInits.push(onInit);
|
|
341
|
-
}
|
|
432
|
+
setGetterWithSignature(cls, name, (self) => self._getGrafanaObject(key, type), typeName);
|
|
433
|
+
addOnInit(cls, option?.onInit);
|
|
434
|
+
if (option?.onDefault) addOnInit(cls, (instance) => {
|
|
435
|
+
const x = option?.onDefault?.(instance.metaOptions);
|
|
436
|
+
instance._setGrafanaObject(key, type, x);
|
|
437
|
+
});
|
|
342
438
|
}
|
|
343
439
|
/**
|
|
344
|
-
* @
|
|
345
|
-
* @
|
|
346
|
-
* @param {
|
|
440
|
+
* @template {GrafanaItem} C
|
|
441
|
+
* @template {GrafanaItem} T
|
|
442
|
+
* @param {MetaConstructor<C>} cls
|
|
443
|
+
* @param {string} key
|
|
444
|
+
* @param {MetaConstructor<T>} type
|
|
347
445
|
* @param {Object} [option]
|
|
348
446
|
* @param {string} [option.name]
|
|
349
447
|
* @param {string} [option.itemName]
|
|
350
448
|
* @param {boolean} [option.setEmpty]
|
|
351
|
-
* @param {(instance:
|
|
352
|
-
* @param {(metaOptions: GenericMetaOptions) =>
|
|
449
|
+
* @param {(instance: C) => void} [option.onInit]
|
|
450
|
+
* @param {(metaOptions: GenericMetaOptions) => T[]} [option.onDefault]
|
|
353
451
|
*/
|
|
354
452
|
function defineArray(cls, key, type, option) {
|
|
355
|
-
const metaClassInfo = getMetaClassInfo(cls);
|
|
356
453
|
const name = option?.name ? option.name : key;
|
|
357
454
|
const caseName = name.charAt(0).toUpperCase() + name.slice(1);
|
|
358
455
|
const itemName = option?.itemName ? option.itemName : name.endsWith("s") ? name.slice(0, -1) : `${name}Item`;
|
|
359
|
-
if (metaClassInfo.typeNamesToInclude.includes(type.name) === false) {
|
|
360
|
-
if (type.name !== "String" && type.name !== "Number" && type.name !== "Boolean") metaClassInfo.typeNamesToInclude.push(type.name);
|
|
361
|
-
}
|
|
362
456
|
const caseItemName = itemName.charAt(0).toUpperCase() + itemName.slice(1);
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
setPrototype(
|
|
366
|
-
cls,
|
|
367
|
-
initName,
|
|
368
|
-
/**
|
|
369
|
-
* @this GrafanaItem
|
|
370
|
-
* @returns {GrafanaItem}
|
|
371
|
-
*/
|
|
372
|
-
function() {
|
|
373
|
-
return this._initArray(key);
|
|
374
|
-
}
|
|
375
|
-
);
|
|
376
|
-
metaClassInfo.methods.push(`init${caseName}(): this;`);
|
|
377
|
-
}
|
|
378
|
-
setGetter(cls, name, (self) => self._getArray(key));
|
|
379
|
-
metaClassInfo.methods.push(`get ${name}(): ${type.name}[];`);
|
|
380
|
-
const addName = `add${caseItemName}`;
|
|
381
|
-
if (hasPrototype(cls, addName) === false) {
|
|
382
|
-
setPrototype(
|
|
383
|
-
cls,
|
|
384
|
-
addName,
|
|
385
|
-
/**
|
|
386
|
-
* @this GrafanaItem
|
|
387
|
-
* @template T
|
|
388
|
-
* @param {T} item
|
|
389
|
-
* @returns {GrafanaItem}
|
|
390
|
-
*/
|
|
391
|
-
function(item) {
|
|
392
|
-
return this._addArrayItem(key, item);
|
|
393
|
-
}
|
|
394
|
-
);
|
|
395
|
-
metaClassInfo.methods.push(`${addName}(${itemName}: ${type.name}): this;`);
|
|
396
|
-
}
|
|
397
|
-
const addNewName = `addNew${caseItemName}`;
|
|
398
|
-
if (hasPrototype(cls, addNewName) === false) {
|
|
399
|
-
setPrototype(
|
|
400
|
-
cls,
|
|
401
|
-
addNewName,
|
|
402
|
-
/**
|
|
403
|
-
* @this GrafanaItem
|
|
404
|
-
* @template T
|
|
405
|
-
* @param {(item: T) => T} onNewCreated
|
|
406
|
-
* @returns {GrafanaItem}
|
|
407
|
-
*/
|
|
408
|
-
function(onNewCreated) {
|
|
409
|
-
return this._addArrayItem(key, onNewCreated(new type(this.metaOptions)));
|
|
410
|
-
}
|
|
411
|
-
);
|
|
412
|
-
metaClassInfo.methods.push(`${addNewName}(onNewCreated: (item: ${type.name}) => ${type.name}): this;`);
|
|
413
|
-
}
|
|
414
|
-
const withName = `with${caseName}`;
|
|
415
|
-
setPrototype(
|
|
457
|
+
addTypeNameToInclude(cls, type.name);
|
|
458
|
+
setPrototypeWithSignature(
|
|
416
459
|
cls,
|
|
417
|
-
|
|
460
|
+
`init${caseName}`,
|
|
461
|
+
`(): this;`,
|
|
418
462
|
/**
|
|
419
|
-
* @this
|
|
420
|
-
* @
|
|
463
|
+
* @this C
|
|
464
|
+
* @returns {C}
|
|
465
|
+
*/
|
|
466
|
+
function() {
|
|
467
|
+
return this._initArray(key);
|
|
468
|
+
}
|
|
469
|
+
);
|
|
470
|
+
setGetterWithSignature(cls, name, (self) => self._getArray(key), `${type.name}[]`);
|
|
471
|
+
setPrototypeWithSignature(
|
|
472
|
+
cls,
|
|
473
|
+
`add${caseItemName}`,
|
|
474
|
+
`(${itemName}: ${type.name}): this;`,
|
|
475
|
+
/**
|
|
476
|
+
* @this C
|
|
477
|
+
* @param {T} item
|
|
478
|
+
* @returns {C}
|
|
479
|
+
*/
|
|
480
|
+
function(item) {
|
|
481
|
+
return this._addArrayItem(key, item);
|
|
482
|
+
}
|
|
483
|
+
);
|
|
484
|
+
setPrototypeWithSignature(
|
|
485
|
+
cls,
|
|
486
|
+
`addNew${caseItemName}`,
|
|
487
|
+
`(onNewCreated: (item: ${type.name}) => ${type.name}): this;`,
|
|
488
|
+
/**
|
|
489
|
+
* @this C
|
|
490
|
+
* @param {(item: T) => T} onNewCreated
|
|
491
|
+
* @returns {C}
|
|
492
|
+
*/
|
|
493
|
+
function(onNewCreated) {
|
|
494
|
+
return this._addArrayItem(key, onNewCreated(new type(this.metaOptions)));
|
|
495
|
+
}
|
|
496
|
+
);
|
|
497
|
+
setPrototypeWithSignature(
|
|
498
|
+
cls,
|
|
499
|
+
`with${caseName}`,
|
|
500
|
+
`(onWith: (${name}: ${type.name}[]) => void): this;`,
|
|
501
|
+
/**
|
|
502
|
+
* @this C
|
|
421
503
|
* @param {(array: T[]) => void} onWith
|
|
422
|
-
* @returns {
|
|
504
|
+
* @returns {C}
|
|
423
505
|
*/
|
|
424
506
|
function(onWith) {
|
|
425
507
|
const array = this._getArray(key);
|
|
@@ -427,97 +509,174 @@ function defineArray(cls, key, type, option) {
|
|
|
427
509
|
return this;
|
|
428
510
|
}
|
|
429
511
|
);
|
|
430
|
-
|
|
431
|
-
if (option?.
|
|
432
|
-
if (option?.setEmpty)
|
|
433
|
-
/**
|
|
434
|
-
* @param {GrafanaItem} instance
|
|
435
|
-
*/
|
|
436
|
-
const onInitArray = (instance) => {
|
|
437
|
-
instance._initArray(key);
|
|
438
|
-
};
|
|
439
|
-
metaClassInfo.onInits.push(onInitArray);
|
|
440
|
-
}
|
|
512
|
+
addOnInit(cls, option?.onInit);
|
|
513
|
+
if (option?.onDefault) addOnInit(cls, (instance) => option.onDefault?.(instance.metaOptions)?.forEach((item) => instance._addArrayItem(key, item)));
|
|
514
|
+
if (option?.setEmpty) addOnInit(cls, (instance) => instance._initArray(key));
|
|
441
515
|
}
|
|
442
516
|
/**
|
|
443
|
-
* @template {
|
|
444
|
-
* @param {
|
|
445
|
-
* @param {string
|
|
517
|
+
* @template {GrafanaItem} C
|
|
518
|
+
* @param {MetaConstructor<C>} cls
|
|
519
|
+
* @param {string} key
|
|
520
|
+
* @param {Function} type
|
|
446
521
|
* @param {Object} [option]
|
|
447
|
-
* @param {(typeof GrafanaItem)[]} [option.typesToInclude]
|
|
448
522
|
* @param {string} [option.name]
|
|
449
|
-
* @param {
|
|
450
|
-
* @param {
|
|
451
|
-
* @param {
|
|
452
|
-
* @param {(
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
const
|
|
457
|
-
const
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
if (codeCount == 1) {
|
|
471
|
-
if (code !== void 0) {
|
|
472
|
-
if (!name) throw new Error("You must provide a name when providing code.");
|
|
473
|
-
setPrototype(
|
|
474
|
-
cls,
|
|
475
|
-
name,
|
|
476
|
-
/**
|
|
477
|
-
* @this {GrafanaItem}
|
|
478
|
-
* @param {...any} args
|
|
479
|
-
* @returns {any}
|
|
480
|
-
*/
|
|
481
|
-
function(...args) {
|
|
482
|
-
return code(this, ...args);
|
|
483
|
-
}
|
|
484
|
-
);
|
|
485
|
-
}
|
|
486
|
-
if (constr !== void 0) metaClassInfo.onInits.push((instance) => constr(instance));
|
|
487
|
-
if (getter !== void 0 && setter === void 0) {
|
|
488
|
-
if (!name) throw new Error("You must provide a name when providing getter or setter.");
|
|
489
|
-
setGetter(cls, name, getter);
|
|
490
|
-
metaClassInfo.methods.push(`get ${name}(): ${getterSetterType};`);
|
|
523
|
+
* @param {string} [option.itemName]
|
|
524
|
+
* @param {boolean} [option.setEmpty]
|
|
525
|
+
* @param {(instance: C) => void} [option.onInit]
|
|
526
|
+
* @param {(metaOptions: GenericMetaOptions) => Object[]} [option.onDefault]
|
|
527
|
+
*/
|
|
528
|
+
function defineBasicArray(cls, key, type, option) {
|
|
529
|
+
const name = option?.name ? option.name : key;
|
|
530
|
+
const caseName = name.charAt(0).toUpperCase() + name.slice(1);
|
|
531
|
+
const itemName = option?.itemName ? option.itemName : name.endsWith("s") ? name.slice(0, -1) : `${name}Item`;
|
|
532
|
+
const caseItemName = itemName.charAt(0).toUpperCase() + itemName.slice(1);
|
|
533
|
+
addTypeNameToInclude(cls, type.name);
|
|
534
|
+
setPrototypeWithSignature(
|
|
535
|
+
cls,
|
|
536
|
+
`init${caseName}`,
|
|
537
|
+
`(): this;`,
|
|
538
|
+
/**
|
|
539
|
+
* @this C
|
|
540
|
+
* @returns {C}
|
|
541
|
+
*/
|
|
542
|
+
function() {
|
|
543
|
+
return this._initArray(key);
|
|
491
544
|
}
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
545
|
+
);
|
|
546
|
+
setGetterWithSignature(cls, name, (self) => self._getArray(key), `${type.name}[]`);
|
|
547
|
+
setPrototypeWithSignature(
|
|
548
|
+
cls,
|
|
549
|
+
`add${caseItemName}`,
|
|
550
|
+
`(${itemName}: ${type.name}): this;`,
|
|
551
|
+
/**
|
|
552
|
+
* @this C
|
|
553
|
+
* @template T
|
|
554
|
+
* @param {T} item
|
|
555
|
+
* @returns {C}
|
|
556
|
+
*/
|
|
557
|
+
function(item) {
|
|
558
|
+
return this._addArrayItem(key, item);
|
|
496
559
|
}
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
560
|
+
);
|
|
561
|
+
setPrototypeWithSignature(
|
|
562
|
+
cls,
|
|
563
|
+
`with${caseName}`,
|
|
564
|
+
`(onWith: (${name}: ${type.name}[]) => void): this;`,
|
|
565
|
+
/**
|
|
566
|
+
* @this C
|
|
567
|
+
* @template T
|
|
568
|
+
* @param {(array: T[]) => void} onWith
|
|
569
|
+
* @returns {C}
|
|
570
|
+
*/
|
|
571
|
+
function(onWith) {
|
|
572
|
+
const array = this._getArray(key);
|
|
573
|
+
if (array) onWith(array);
|
|
574
|
+
return this;
|
|
502
575
|
}
|
|
503
|
-
|
|
576
|
+
);
|
|
577
|
+
addOnInit(cls, option?.onInit);
|
|
578
|
+
if (option?.onDefault) addOnInit(cls, (instance) => option.onDefault?.(instance.metaOptions)?.forEach((item) => instance._addArrayItem(key, item)));
|
|
579
|
+
if (option?.setEmpty) addOnInit(cls, (instance) => instance._initArray(key));
|
|
504
580
|
}
|
|
505
581
|
/**
|
|
506
|
-
* @
|
|
507
|
-
* @param {
|
|
582
|
+
* @template {GrafanaItem} C
|
|
583
|
+
* @param {MetaConstructor<C>} cls
|
|
584
|
+
* @param {(instance: C) => void} code
|
|
508
585
|
*/
|
|
509
586
|
function defineConstructor(cls, code) {
|
|
510
|
-
|
|
587
|
+
addSignature(cls, "constructor(metaOptions: GenericMetaOptions)");
|
|
588
|
+
addOnInit(cls, (instance) => code(instance));
|
|
589
|
+
}
|
|
590
|
+
/**
|
|
591
|
+
* @template {GrafanaItem} C
|
|
592
|
+
* @param {MetaConstructor<C>} cls
|
|
593
|
+
* @param {string} method
|
|
594
|
+
* @param {Object} [option]
|
|
595
|
+
* @param {(typeof GrafanaItem)[]} [option.typesToInclude]
|
|
596
|
+
*/
|
|
597
|
+
function defineMember(cls, method, option) {
|
|
598
|
+
const { typesToInclude } = option || {};
|
|
599
|
+
addSignature(cls, method);
|
|
600
|
+
addTypesToInclude(cls, typesToInclude);
|
|
511
601
|
}
|
|
602
|
+
/**
|
|
603
|
+
* @template {GrafanaItem} C
|
|
604
|
+
* @param {MetaConstructor<C>} cls
|
|
605
|
+
* @param {string} name
|
|
606
|
+
* @param {string} args
|
|
607
|
+
* @param {Object} option
|
|
608
|
+
* @param {(typeof GrafanaItem)[]} [option.typesToInclude]
|
|
609
|
+
* @param {(instance: C, ...args: any[]) => any} option.code
|
|
610
|
+
*/
|
|
611
|
+
var defineMethod = (cls, name, args, option) => {
|
|
612
|
+
const { typesToInclude, code } = option || {};
|
|
613
|
+
addTypesToInclude(cls, typesToInclude);
|
|
614
|
+
setPrototypeWithSignature(
|
|
615
|
+
cls,
|
|
616
|
+
name,
|
|
617
|
+
args,
|
|
618
|
+
/**
|
|
619
|
+
* @this {C}
|
|
620
|
+
* @param {...any} args
|
|
621
|
+
* @returns {any}
|
|
622
|
+
*/
|
|
623
|
+
function(...args) {
|
|
624
|
+
return code(this, ...args);
|
|
625
|
+
}
|
|
626
|
+
);
|
|
627
|
+
};
|
|
628
|
+
/**
|
|
629
|
+
* @template {GrafanaItem} C
|
|
630
|
+
* @param {MetaConstructor<C>} cls
|
|
631
|
+
* @param {string} name
|
|
632
|
+
* @param {string} typeName
|
|
633
|
+
* @param {Object} option
|
|
634
|
+
* @param {(typeof GrafanaItem)[]} [option.typesToInclude]
|
|
635
|
+
* @param {(self: C) => any} [option.getter]
|
|
636
|
+
* @param {(self: C, value: any) => void} [option.setter]
|
|
637
|
+
*/
|
|
638
|
+
function defineGetterSetter(cls, name, typeName, option) {
|
|
639
|
+
const { typesToInclude, getter, setter } = option || {};
|
|
640
|
+
addTypesToInclude(cls, typesToInclude);
|
|
641
|
+
if (getter !== void 0) {
|
|
642
|
+
if (setter !== void 0) setGetterAndSetterWithSignature(cls, name, getter, setter, typeName);
|
|
643
|
+
else setGetterWithSignature(cls, name, getter, typeName);
|
|
644
|
+
} else if (setter !== void 0) setSetterWithSignature(cls, name, setter, typeName);
|
|
645
|
+
else throw new Error("You must provide either a getter or a setter.");
|
|
646
|
+
}
|
|
647
|
+
//#endregion
|
|
648
|
+
//#region src/utils/GrafanaItemClassBuilder.js
|
|
649
|
+
/**
|
|
650
|
+
* @typedef {import("@gdacm/base-types").GenericMetaOptions} GenericMetaOptions
|
|
651
|
+
*/
|
|
652
|
+
/**
|
|
653
|
+
* @template {Object} T
|
|
654
|
+
* @template {T} C
|
|
655
|
+
* @typedef {import("./MetaClassRegistry.js").MetaClassInfo<T,C>} MetaClassInfo
|
|
656
|
+
*/
|
|
657
|
+
/**
|
|
658
|
+
* @template T
|
|
659
|
+
* @typedef {import("@gdacm/base-types").MetaConstructor<T>} MetaConstructor
|
|
660
|
+
*/
|
|
661
|
+
/**
|
|
662
|
+
* @template {GrafanaItem} C
|
|
663
|
+
*/
|
|
512
664
|
var GrafanaItemClassBuilder = class {
|
|
513
665
|
/**
|
|
514
|
-
* @param {
|
|
666
|
+
* @param {MetaConstructor<C>} cls
|
|
515
667
|
*/
|
|
516
668
|
constructor(cls) {
|
|
517
|
-
|
|
669
|
+
/** @type {MetaConstructor<C>} */
|
|
670
|
+
this._cls = cls;
|
|
671
|
+
}
|
|
672
|
+
/**
|
|
673
|
+
* @return {MetaConstructor<C>}
|
|
674
|
+
*/
|
|
675
|
+
get cls() {
|
|
676
|
+
return this._cls;
|
|
518
677
|
}
|
|
519
678
|
/**
|
|
520
|
-
* @param {
|
|
679
|
+
* @param {MetaConstructor<GrafanaItem>} parent
|
|
521
680
|
* @returns
|
|
522
681
|
*/
|
|
523
682
|
setParent(parent) {
|
|
@@ -529,8 +688,8 @@ var GrafanaItemClassBuilder = class {
|
|
|
529
688
|
* @param {Function} type
|
|
530
689
|
* @param {Object} [option]
|
|
531
690
|
* @param {string} [option.name]
|
|
532
|
-
* @param {(instance:
|
|
533
|
-
* @param {(metaOptions: GenericMetaOptions) =>
|
|
691
|
+
* @param {(instance: C) => void} [option.onInit]
|
|
692
|
+
* @param {(metaOptions: GenericMetaOptions) => C} [option.onDefault]
|
|
534
693
|
* @param {String} [option.typeName]
|
|
535
694
|
* @return {this}
|
|
536
695
|
*/
|
|
@@ -539,13 +698,15 @@ var GrafanaItemClassBuilder = class {
|
|
|
539
698
|
return this;
|
|
540
699
|
}
|
|
541
700
|
/**
|
|
701
|
+
* @template {GrafanaItem} T
|
|
542
702
|
* @param {string} key
|
|
543
|
-
* @param {
|
|
703
|
+
* @param {MetaConstructor<T>} type
|
|
544
704
|
* @param {Object} [option]
|
|
545
705
|
* @param {string} [option.name]
|
|
546
|
-
* @param {(instance:
|
|
547
|
-
* @param {(metaOptions: GenericMetaOptions) =>
|
|
706
|
+
* @param {(instance: C) => void} [option.onInit]
|
|
707
|
+
* @param {(metaOptions: GenericMetaOptions) => T} [option.onDefault]
|
|
548
708
|
* @param {String} [option.typeName]
|
|
709
|
+
* @param {String} [option.setNew]
|
|
549
710
|
* @return {this}
|
|
550
711
|
*/
|
|
551
712
|
defineObject(key, type, option) {
|
|
@@ -553,30 +714,29 @@ var GrafanaItemClassBuilder = class {
|
|
|
553
714
|
return this;
|
|
554
715
|
}
|
|
555
716
|
/**
|
|
556
|
-
* @template {GrafanaItem} T
|
|
557
717
|
* @param {string} key
|
|
558
|
-
* @param {
|
|
718
|
+
* @param {Function} type
|
|
559
719
|
* @param {Object} [option]
|
|
560
720
|
* @param {string} [option.name]
|
|
561
|
-
* @param {(instance:
|
|
562
|
-
* @param {(metaOptions: GenericMetaOptions) =>
|
|
721
|
+
* @param {(instance: C) => void} [option.onInit]
|
|
722
|
+
* @param {(metaOptions: GenericMetaOptions) => Object} [option.onDefault]
|
|
563
723
|
* @param {String} [option.typeName]
|
|
564
|
-
* @param {String} [option.setNew]
|
|
565
724
|
* @return {this}
|
|
566
725
|
*/
|
|
567
|
-
|
|
568
|
-
|
|
726
|
+
defineBasicObject(key, type, option) {
|
|
727
|
+
defineBasicObject(this.cls, key, type, option);
|
|
569
728
|
return this;
|
|
570
729
|
}
|
|
571
730
|
/**
|
|
731
|
+
* @template {GrafanaItem} T
|
|
572
732
|
* @param {string} key
|
|
573
|
-
* @param {
|
|
733
|
+
* @param {MetaConstructor<T>} type
|
|
574
734
|
* @param {Object} [option]
|
|
575
735
|
* @param {string} [option.name]
|
|
576
736
|
* @param {string} [option.itemName]
|
|
577
737
|
* @param {boolean} [option.setEmpty]
|
|
578
|
-
* @param {(instance:
|
|
579
|
-
* @param {(metaOptions: GenericMetaOptions) =>
|
|
738
|
+
* @param {(instance: C) => void} [option.onInit]
|
|
739
|
+
* @param {(metaOptions: GenericMetaOptions) => T[]} [option.onDefault]
|
|
580
740
|
* @return {this}
|
|
581
741
|
*/
|
|
582
742
|
defineArray(key, type, option) {
|
|
@@ -584,18 +744,32 @@ var GrafanaItemClassBuilder = class {
|
|
|
584
744
|
return this;
|
|
585
745
|
}
|
|
586
746
|
/**
|
|
747
|
+
* @param {string} key
|
|
748
|
+
* @param {Function} type
|
|
749
|
+
* @param {Object} [option]
|
|
750
|
+
* @param {string} [option.name]
|
|
751
|
+
* @param {string} [option.itemName]
|
|
752
|
+
* @param {boolean} [option.setEmpty]
|
|
753
|
+
* @param {(instance: C) => void} [option.onInit]
|
|
754
|
+
* @param {(metaOptions: GenericMetaOptions) => Object[]} [option.onDefault]
|
|
755
|
+
* @return {this}
|
|
756
|
+
*/
|
|
757
|
+
defineBasicArray(key, type, option) {
|
|
758
|
+
defineBasicArray(this.cls, key, type, option);
|
|
759
|
+
return this;
|
|
760
|
+
}
|
|
761
|
+
/**
|
|
587
762
|
* @param {string} method
|
|
588
763
|
* @param {Object} [option]
|
|
589
764
|
* @param {(typeof GrafanaItem)[]} [option.typesToInclude]
|
|
590
765
|
* @return {this}
|
|
591
766
|
*/
|
|
592
767
|
defineMember(method, option) {
|
|
593
|
-
|
|
768
|
+
defineMember(this.cls, method, option);
|
|
594
769
|
return this;
|
|
595
770
|
}
|
|
596
771
|
/**
|
|
597
|
-
* @
|
|
598
|
-
* @param {(instance: InstanceType<T>) => void} code
|
|
772
|
+
* @param {(instance: C) => void} code
|
|
599
773
|
* @return {this}
|
|
600
774
|
*/
|
|
601
775
|
defineConstructor(code) {
|
|
@@ -607,36 +781,24 @@ var GrafanaItemClassBuilder = class {
|
|
|
607
781
|
* @param {string} args
|
|
608
782
|
* @param {Object} option
|
|
609
783
|
* @param {(typeof GrafanaItem)[]} [option.typesToInclude]
|
|
610
|
-
* @param {
|
|
784
|
+
* @param {(instance: C, ...args: any[]) => any} option.code
|
|
611
785
|
* @return {this}
|
|
612
786
|
*/
|
|
613
787
|
defineMethod(name, args, option) {
|
|
614
|
-
|
|
615
|
-
...option,
|
|
616
|
-
name
|
|
617
|
-
});
|
|
788
|
+
defineMethod(this.cls, name, args, option);
|
|
618
789
|
return this;
|
|
619
790
|
}
|
|
620
791
|
/**
|
|
621
|
-
* @template {typeof GrafanaItem} T
|
|
622
792
|
* @param {string} name
|
|
623
|
-
* @param {string}
|
|
793
|
+
* @param {string} typeName
|
|
624
794
|
* @param {Object} option
|
|
625
795
|
* @param {(typeof GrafanaItem)[]} [option.typesToInclude]
|
|
626
|
-
* @param {(instance:
|
|
627
|
-
* @param {(instance:
|
|
796
|
+
* @param {(instance: C) => any} [option.getter]
|
|
797
|
+
* @param {(instance: C, value: any) => void} [option.setter]
|
|
628
798
|
* @return {this}
|
|
629
799
|
*/
|
|
630
|
-
defineGetterSetter(name,
|
|
631
|
-
|
|
632
|
-
const setter = option.setter;
|
|
633
|
-
defineMemberInternal(this.cls, void 0, {
|
|
634
|
-
...option,
|
|
635
|
-
getter,
|
|
636
|
-
setter,
|
|
637
|
-
name,
|
|
638
|
-
getterSetterType: type
|
|
639
|
-
});
|
|
800
|
+
defineGetterSetter(name, typeName, option) {
|
|
801
|
+
defineGetterSetter(this.cls, name, typeName, option);
|
|
640
802
|
return this;
|
|
641
803
|
}
|
|
642
804
|
/**
|
|
@@ -654,15 +816,43 @@ var GrafanaItemClassBuilder = class {
|
|
|
654
816
|
}
|
|
655
817
|
};
|
|
656
818
|
/**
|
|
819
|
+
* @template {GrafanaItem} C
|
|
657
820
|
* @param {string} name
|
|
658
821
|
* @param {typeof GrafanaItem} parent
|
|
659
|
-
* @returns {GrafanaItemClassBuilder}
|
|
822
|
+
* @returns {GrafanaItemClassBuilder<C>}
|
|
660
823
|
*/
|
|
661
824
|
var defineGrafanaItemClass = (name, parent) => {
|
|
662
825
|
const cls = class extends parent {};
|
|
663
826
|
Object.defineProperty(cls, "name", { value: name });
|
|
664
827
|
return defineClass(cls).setParent(parent);
|
|
665
828
|
};
|
|
829
|
+
/**
|
|
830
|
+
* @template {GrafanaItem} C
|
|
831
|
+
* @param {MetaConstructor<C>} cls
|
|
832
|
+
*/
|
|
833
|
+
function defineClass(cls) {
|
|
834
|
+
if (!hasType(cls)) {
|
|
835
|
+
/** @type {Function|undefined} */
|
|
836
|
+
let parent = Object.getPrototypeOf(cls);
|
|
837
|
+
if (parent && !parent.name) parent = void 0;
|
|
838
|
+
/** @type {((instance: C)=>void)[]} */
|
|
839
|
+
let onInitsParent = [];
|
|
840
|
+
if (parent && parent.name) onInitsParent = getMetaClassInfo(parent).onInits;
|
|
841
|
+
/** @type {MetaClassInfo<GrafanaItem,C>} */
|
|
842
|
+
const metaClassInfo = {
|
|
843
|
+
methods: [],
|
|
844
|
+
onInits: [...onInitsParent],
|
|
845
|
+
parentName: parent?.name,
|
|
846
|
+
parent,
|
|
847
|
+
typeNamesToInclude: []
|
|
848
|
+
};
|
|
849
|
+
cls.prototype._onInit = function() {
|
|
850
|
+
for (const onInit of metaClassInfo.onInits) onInit(this);
|
|
851
|
+
};
|
|
852
|
+
setTypeMetaClassInfo(cls, metaClassInfo);
|
|
853
|
+
}
|
|
854
|
+
return new GrafanaItemClassBuilder(cls);
|
|
855
|
+
}
|
|
666
856
|
//#endregion
|
|
667
857
|
//#region src/items/GrafanaItem.js
|
|
668
858
|
var GrafanaItem = class {
|
|
@@ -823,10 +1013,10 @@ var GrafanaItem = class {
|
|
|
823
1013
|
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;");
|
|
824
1014
|
//#endregion
|
|
825
1015
|
//#region src/items/OverrideMatcher.js
|
|
826
|
-
var OverrideMatcher = defineGrafanaItemClass("OverrideMatcher", GrafanaItem).defineValue("id", String).
|
|
1016
|
+
var OverrideMatcher = defineGrafanaItemClass("OverrideMatcher", GrafanaItem).defineValue("id", String).defineBasicObject("options", Object).asClass;
|
|
827
1017
|
//#endregion
|
|
828
1018
|
//#region src/items/OverrideMatcherOptionsByNames.js
|
|
829
|
-
var OverrideMatcherOptionsByNames = defineGrafanaItemClass("OverrideMatcherOptionsByNames", GrafanaItem).defineValue("mode", String).
|
|
1019
|
+
var OverrideMatcherOptionsByNames = defineGrafanaItemClass("OverrideMatcherOptionsByNames", GrafanaItem).defineValue("mode", String).defineBasicArray("names", String).defineValue("prefix", String).defineValue("readOnly", Boolean).asClass;
|
|
830
1020
|
//#endregion
|
|
831
1021
|
//#region src/items/OverrideProperty.js
|
|
832
1022
|
var OverrideProperty = defineGrafanaItemClass("OverrideProperty", GrafanaItem).defineValue("id", String).defineValue("value", Object).asClass;
|
|
@@ -835,7 +1025,7 @@ var OverrideProperty = defineGrafanaItemClass("OverrideProperty", GrafanaItem).d
|
|
|
835
1025
|
var Datasource = defineGrafanaItemClass("Datasource", GrafanaItem).defineValue("type", String).defineValue("uid", String).asClass;
|
|
836
1026
|
//#endregion
|
|
837
1027
|
//#region src/items/Annotation.js
|
|
838
|
-
var Annotation = defineGrafanaItemClass("Annotation", GrafanaItem).defineValue("builtIn", Number).
|
|
1028
|
+
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;
|
|
839
1029
|
//#endregion
|
|
840
1030
|
//#region src/items/Annotations.js
|
|
841
1031
|
var Annotations = defineGrafanaItemClass("Annotations", GrafanaItem).defineArray("list", Annotation, { itemName: "annotation" }).asClass;
|
|
@@ -898,7 +1088,7 @@ code: (thresholds, value, color) => {
|
|
|
898
1088
|
} }).asClass;
|
|
899
1089
|
//#endregion
|
|
900
1090
|
//#region src/items/FieldConfigDefault.js
|
|
901
|
-
var FieldConfigDefault = defineGrafanaItemClass("FieldConfigDefault", GrafanaItem).
|
|
1091
|
+
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;", {
|
|
902
1092
|
/**
|
|
903
1093
|
* @param {FieldConfigDefault} fieldConfigDefault
|
|
904
1094
|
* @param {String} mode
|
|
@@ -911,13 +1101,13 @@ code: (fieldConfigDefault, mode) => {
|
|
|
911
1101
|
} }).asClass;
|
|
912
1102
|
//#endregion
|
|
913
1103
|
//#region src/items/FieldConfigOverride.js
|
|
914
|
-
var FieldConfigOverride = defineGrafanaItemClass("FieldConfigOverride", GrafanaItem).defineValue("__systemRef", String, { name: "systemRef" }).
|
|
1104
|
+
var FieldConfigOverride = defineGrafanaItemClass("FieldConfigOverride", GrafanaItem).defineValue("__systemRef", String, { name: "systemRef" }).defineObject("matcher", OverrideMatcher).defineArray("properties", OverrideProperty, { itemName: "property" }).asClass;
|
|
915
1105
|
//#endregion
|
|
916
1106
|
//#region src/items/HideFrom.js
|
|
917
1107
|
var HideFrom = defineGrafanaItemClass("HideFrom", GrafanaItem).defineValue("graph", Boolean).defineValue("legend", Boolean).defineValue("tooltip", Boolean).defineValue("viz", Boolean).asClass;
|
|
918
1108
|
//#endregion
|
|
919
1109
|
//#region src/items/FieldConfig.js
|
|
920
|
-
var FieldConfig = defineGrafanaItemClass("FieldConfig", GrafanaItem).
|
|
1110
|
+
var FieldConfig = defineGrafanaItemClass("FieldConfig", GrafanaItem).defineObject("defaults", FieldConfigDefault).defineArray("overrides", FieldConfigOverride).defineMethod("addNewOverrideHideSeriesFrom", "(names: string[]): this", {
|
|
921
1111
|
/**
|
|
922
1112
|
* @param {FieldConfig} fieldConfig
|
|
923
1113
|
* @param {String[]} names
|
|
@@ -933,16 +1123,16 @@ code: (fieldConfig, names) => {
|
|
|
933
1123
|
} }).asClass;
|
|
934
1124
|
//#endregion
|
|
935
1125
|
//#region src/items/Target.js
|
|
936
|
-
var Target = defineGrafanaItemClass("Target", GrafanaItem).defineValue("alias", String).defineValue("refId", String).defineValue("query", String).
|
|
1126
|
+
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;
|
|
937
1127
|
//#endregion
|
|
938
1128
|
//#region src/items/Link.js
|
|
939
|
-
var Link = defineGrafanaItemClass("Link", GrafanaItem).defineConstructor((instance) => instance.setType("link")).defineValue("asDropdown", Boolean).defineValue("icon", String).defineValue("includeVars", Boolean).defineValue("keepTime", Boolean).
|
|
1129
|
+
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;
|
|
940
1130
|
//#endregion
|
|
941
1131
|
//#region src/items/DataTransformation.js
|
|
942
1132
|
var DataTransformation = defineGrafanaItemClass("DataTransformation", GrafanaItem).asClass;
|
|
943
1133
|
//#endregion
|
|
944
1134
|
//#region src/items/Panel.js
|
|
945
|
-
var Panel = defineGrafanaItemClass("Panel", GrafanaItem).defineValue("cacheTimeout", String).
|
|
1135
|
+
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;", {
|
|
946
1136
|
/**
|
|
947
1137
|
* @param {Panel} panel
|
|
948
1138
|
* @param {number} x
|
|
@@ -952,7 +1142,7 @@ var Panel = defineGrafanaItemClass("Panel", GrafanaItem).defineValue("cacheTimeo
|
|
|
952
1142
|
*/
|
|
953
1143
|
code: (panel, x, y, w, h) => {
|
|
954
1144
|
return panel.setNewGridPos((gridPos) => gridPos.setPos(x, y, w, h));
|
|
955
|
-
} }).defineValue("hideTimeOverride", Boolean).defineValue("id", Number).defineValue("interval", String).defineArray("links", Link).defineValue("maxDataPoints", Number).defineValue("maxPerRow", Number).
|
|
1145
|
+
} }).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;", {
|
|
956
1146
|
/**
|
|
957
1147
|
* @param {Panel} panel
|
|
958
1148
|
* @param {string} refId
|
|
@@ -970,13 +1160,13 @@ var TemplateCurrent = defineGrafanaItemClass("TemplateCurrent", GrafanaItem).def
|
|
|
970
1160
|
var TemplateOption = defineGrafanaItemClass("TemplateOption", GrafanaItem).defineValue("selected", Boolean).defineValue("text", String).defineValue("value", String).asClass;
|
|
971
1161
|
//#endregion
|
|
972
1162
|
//#region src/items/Template.js
|
|
973
|
-
var Template = defineGrafanaItemClass("Template", GrafanaItem).
|
|
1163
|
+
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;
|
|
974
1164
|
//#endregion
|
|
975
1165
|
//#region src/items/Templating.js
|
|
976
1166
|
var Templating = defineGrafanaItemClass("Templating", GrafanaItem).defineArray("list", Template, { itemName: "template" }).asClass;
|
|
977
1167
|
//#endregion
|
|
978
1168
|
//#region src/items/TimePicker.js
|
|
979
|
-
var TimePicker = defineGrafanaItemClass("TimePicker", GrafanaItem).
|
|
1169
|
+
var TimePicker = defineGrafanaItemClass("TimePicker", GrafanaItem).defineBasicArray("refresh_intervals", String, { itemName: "refreshInterval" }).asClass;
|
|
980
1170
|
//#endregion
|
|
981
1171
|
//#region src/torefactor/index.js
|
|
982
1172
|
/**
|
|
@@ -989,7 +1179,7 @@ var TimePicker = defineGrafanaItemClass("TimePicker", GrafanaItem).defineArray("
|
|
|
989
1179
|
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"));
|
|
990
1180
|
//#endregion
|
|
991
1181
|
//#region src/items/Dashboard.js
|
|
992
|
-
var Dashboard = defineGrafanaItemClass("Dashboard", GrafanaItem).setParent(GrafanaItem).
|
|
1182
|
+
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;", {
|
|
993
1183
|
/**
|
|
994
1184
|
* @param {Dashboard} dashboard
|
|
995
1185
|
* @param {Panel} panel
|
|
@@ -1003,10 +1193,10 @@ code: (dashboard, panel) => {
|
|
|
1003
1193
|
}, 0);
|
|
1004
1194
|
panel._setValue("id", max + 1);
|
|
1005
1195
|
return dashboard._addArrayItem("panels", panel);
|
|
1006
|
-
} }).
|
|
1196
|
+
} }).defineValue("preload", Boolean).defineValue("schemaVersion", Number).defineValue("refresh", String).defineValue("tags", Array, {
|
|
1007
1197
|
onDefault: (options) => [],
|
|
1008
1198
|
typeName: "Array<String>"
|
|
1009
|
-
}).
|
|
1199
|
+
}).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;", {
|
|
1010
1200
|
/**
|
|
1011
1201
|
* @param {Dashboard} dashboard
|
|
1012
1202
|
* @param {string} from
|
|
@@ -1016,21 +1206,21 @@ code: (dashboard, panel) => {
|
|
|
1016
1206
|
code: (dashboard, from, to) => {
|
|
1017
1207
|
dashboard.time.setRange(from, to);
|
|
1018
1208
|
return dashboard;
|
|
1019
|
-
} }).
|
|
1209
|
+
} }).defineObject("timepicker", TimePicker, { onDefault: (options) => new TimePicker(options) }).defineValue("timezone", String, { onDefault: (options) => "browser" }).defineValue("title", String, { onDefault: (options) => "" }).defineValue("uid", String).asClass;
|
|
1020
1210
|
//#endregion
|
|
1021
1211
|
//#region src/items/properties/datasource.js
|
|
1022
1212
|
/**
|
|
1023
|
-
* @
|
|
1213
|
+
* @template {Datasource} T
|
|
1214
|
+
* @param {GrafanaItemClassBuilder<T>} builder
|
|
1024
1215
|
* @param {string} typeName
|
|
1025
1216
|
* @param {Object} [options]
|
|
1026
|
-
* @param {(instance:
|
|
1217
|
+
* @param {(instance: T) => void} [options.onInit]
|
|
1027
1218
|
*/
|
|
1028
1219
|
var defineDatasource = (builder, typeName, options) => {
|
|
1029
1220
|
const { onInit } = options ?? {};
|
|
1030
1221
|
builder.defineConstructor((instance) => {
|
|
1031
|
-
|
|
1032
|
-
|
|
1033
|
-
if (onInit) onInit(self);
|
|
1222
|
+
instance.setType(typeName);
|
|
1223
|
+
if (onInit) onInit(instance);
|
|
1034
1224
|
});
|
|
1035
1225
|
};
|
|
1036
1226
|
//#endregion
|
|
@@ -1042,7 +1232,8 @@ var ScaleDistribution = defineGrafanaItemClass("ScaleDistribution", GrafanaItem)
|
|
|
1042
1232
|
//#endregion
|
|
1043
1233
|
//#region src/items/properties/axisConfig.js
|
|
1044
1234
|
/**
|
|
1045
|
-
* @
|
|
1235
|
+
* @template {FieldConfigCustom} T
|
|
1236
|
+
* @param {GrafanaItemClassBuilder<T>} builder
|
|
1046
1237
|
*/
|
|
1047
1238
|
var defineAxisConfig = (builder) => {
|
|
1048
1239
|
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") });
|
|
@@ -1050,17 +1241,18 @@ var defineAxisConfig = (builder) => {
|
|
|
1050
1241
|
//#endregion
|
|
1051
1242
|
//#region src/items/properties/hideableFieldConfig.js
|
|
1052
1243
|
/**
|
|
1053
|
-
* @
|
|
1244
|
+
* @template {FieldConfigCustom} T
|
|
1245
|
+
* @param {GrafanaItemClassBuilder<T>} builder
|
|
1054
1246
|
*/
|
|
1055
1247
|
var defineHideableFieldConfig = (builder) => {
|
|
1056
|
-
builder.
|
|
1248
|
+
builder.defineObject("hideFrom", HideFrom, { onDefault: (options) => new HideFrom(options).setLegend(false).setTooltip(false).setViz(false) });
|
|
1057
1249
|
};
|
|
1058
1250
|
//#endregion
|
|
1059
1251
|
//#region src/items/ThresholdStyle.js
|
|
1060
1252
|
var ThresholdStyle = defineGrafanaItemClass("ThresholdStyle", GrafanaItem).defineValue("mode", String).asClass;
|
|
1061
1253
|
//#endregion
|
|
1062
1254
|
//#region src/items/FieldConfigCustomBarChart.js
|
|
1063
|
-
var FieldConfigCustomBarChart = defineGrafanaItemClass("FieldConfigCustomBarChart", FieldConfigCustom).with((builder) => defineAxisConfig(builder)).defineValue("fillOpacity", Number).defineValue("gradientMode", String).with((builder) => defineHideableFieldConfig(builder)).defineValue("lineWidth", Number).
|
|
1255
|
+
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;", {
|
|
1064
1256
|
/**
|
|
1065
1257
|
* @param {FieldConfigCustomBarChart} fieldConfigCustomBarChart
|
|
1066
1258
|
* @param {String} mode
|
|
@@ -1075,7 +1267,7 @@ code: (fieldConfigCustomBarChart, mode) => {
|
|
|
1075
1267
|
var FieldConfigCustomGauge = defineGrafanaItemClass("FieldConfigCustomGauge", FieldConfigCustom).asClass;
|
|
1076
1268
|
//#endregion
|
|
1077
1269
|
//#region src/items/FieldConfigCustomGeomap.js
|
|
1078
|
-
var FieldConfigCustomGeomap = defineGrafanaItemClass("FieldConfigCustomGeomap", FieldConfigCustom).
|
|
1270
|
+
var FieldConfigCustomGeomap = defineGrafanaItemClass("FieldConfigCustomGeomap", FieldConfigCustom).defineObject("hideFrom", HideFrom, { onDefault: (options) => new HideFrom(options).setLegend(false).setTooltip(false).setViz(false) }).asClass;
|
|
1079
1271
|
//#endregion
|
|
1080
1272
|
//#region src/items/FieldConfigCustomPieChart.js
|
|
1081
1273
|
var FieldConfigCustomPieChart = defineGrafanaItemClass("FieldConfigCustomPieChart", FieldConfigCustom).with((builder) => defineHideableFieldConfig(builder)).asClass;
|
|
@@ -1087,7 +1279,7 @@ var LineStyle = defineGrafanaItemClass("LineStyle", GrafanaItem).defineValue("fi
|
|
|
1087
1279
|
var Stacking = defineGrafanaItemClass("Stacking", GrafanaItem).defineValue("group", String).defineValue("mode", String).asClass;
|
|
1088
1280
|
//#endregion
|
|
1089
1281
|
//#region src/items/FieldConfigCustomTimeSerie.js
|
|
1090
|
-
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).
|
|
1282
|
+
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;", {
|
|
1091
1283
|
/**
|
|
1092
1284
|
* @param {FieldConfigCustomTimeSerie} fieldConfigCustomTimeSerie
|
|
1093
1285
|
* @param {String} fill
|
|
@@ -1096,7 +1288,7 @@ var FieldConfigCustomTimeSerie = defineGrafanaItemClass("FieldConfigCustomTimeSe
|
|
|
1096
1288
|
code: (fieldConfigCustomTimeSerie, fill) => {
|
|
1097
1289
|
fieldConfigCustomTimeSerie.lineStyle.setFill(fill);
|
|
1098
1290
|
return fieldConfigCustomTimeSerie;
|
|
1099
|
-
} }).defineValue("lineWidth", Number).defineValue("pointColor", String).defineValue("pointSize", Number).defineValue("pointSymbol", String).defineValue("showPoints", String).defineValue("showValues", Boolean).defineValue("spanNulls", Boolean).
|
|
1291
|
+
} }).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;", {
|
|
1100
1292
|
/**
|
|
1101
1293
|
* @param {FieldConfigCustomTimeSerie} fieldConfigCustomTimeSerie
|
|
1102
1294
|
* @param {String} mode
|
|
@@ -1111,10 +1303,10 @@ code: (fieldConfigCustomTimeSerie, mode) => {
|
|
|
1111
1303
|
var FieldConfigCustomTableCellOptions = defineGrafanaItemClass("FieldConfigCustomTableCellOptions", GrafanaItem).defineValue("type", String).asClass;
|
|
1112
1304
|
//#endregion
|
|
1113
1305
|
//#region src/items/FieldConfigCustomTableFooter.js
|
|
1114
|
-
var FieldConfigCustomTableFooter = defineGrafanaItemClass("FieldConfigCustomTableFooter", GrafanaItem).
|
|
1306
|
+
var FieldConfigCustomTableFooter = defineGrafanaItemClass("FieldConfigCustomTableFooter", GrafanaItem).defineBasicArray("reducers", String).asClass;
|
|
1115
1307
|
//#endregion
|
|
1116
1308
|
//#region src/items/FieldConfigCustomTable.js
|
|
1117
|
-
var FieldConfigCustomTable = defineGrafanaItemClass("FieldConfigCustomTable", FieldConfigCustom).defineValue("align", String).
|
|
1309
|
+
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;
|
|
1118
1310
|
//#endregion
|
|
1119
1311
|
//#region src/items/Influxdb.js
|
|
1120
1312
|
var Influxdb = defineGrafanaItemClass("Influxdb", Datasource).with((builder) => defineDatasource(builder, "influxdb")).asClass;
|
|
@@ -1123,7 +1315,7 @@ var Influxdb = defineGrafanaItemClass("Influxdb", Datasource).with((builder) =>
|
|
|
1123
1315
|
var PanelOptions = defineGrafanaItemClass("PanelOptions", GrafanaItem).asClass;
|
|
1124
1316
|
//#endregion
|
|
1125
1317
|
//#region src/items/VizLegendOptions.js
|
|
1126
|
-
var VizLegendOptions = defineGrafanaItemClass("VizLegendOptions", GrafanaItem).defineValue("asTable", Boolean).
|
|
1318
|
+
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;
|
|
1127
1319
|
//#endregion
|
|
1128
1320
|
//#region src/items/VizTooltipOptions.js
|
|
1129
1321
|
var VizTooltipOptions = defineGrafanaItemClass("VizTooltipOptions", GrafanaItem).defineValue("hideZeros", Boolean).defineValue("maxHeight", Number).defineValue("maxWidth", Number).defineValue("mode", String).defineValue("sort", String).asClass;
|
|
@@ -1132,19 +1324,19 @@ var VizTooltipOptions = defineGrafanaItemClass("VizTooltipOptions", GrafanaItem)
|
|
|
1132
1324
|
var VizTextDisplayOptions = defineGrafanaItemClass("VizTextDisplayOptions", GrafanaItem).defineValue("percentSize", Number).defineValue("titleSize", Number).defineValue("valueSize", Number).asClass;
|
|
1133
1325
|
//#endregion
|
|
1134
1326
|
//#region src/items/PanelOptionsBarChart.js
|
|
1135
|
-
var PanelOptionsBarChart = defineGrafanaItemClass("PanelOptionsBarChart", PanelOptions).defineValue("barRadius", Number).defineValue("barWidth", Number).defineValue("colorByField", String).defineValue("fullHighlight", Boolean).defineValue("groupWidth", Number).
|
|
1327
|
+
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;
|
|
1136
1328
|
//#endregion
|
|
1137
1329
|
//#region src/items/PanelOptionsGaugeEffect.js
|
|
1138
1330
|
var PanelOptionsGaugeEffect = defineGrafanaItemClass("PanelOptionsGaugeEffect", GrafanaItem).defineValue("barGlow", Boolean).defineValue("centerGlow", Boolean).defineValue("gradient", Boolean).asClass;
|
|
1139
1331
|
//#endregion
|
|
1140
1332
|
//#region src/items/PanelOptionsGaugeReduceOptions.js
|
|
1141
|
-
var PanelOptionsGaugeReduceOptions = defineGrafanaItemClass("PanelOptionsGaugeReduceOptions", GrafanaItem).
|
|
1333
|
+
var PanelOptionsGaugeReduceOptions = defineGrafanaItemClass("PanelOptionsGaugeReduceOptions", GrafanaItem).defineBasicArray("calcs", String, { setEmpty: true }).defineValue("fields", String).defineValue("limit", Number).defineValue("values", Boolean).asClass;
|
|
1142
1334
|
//#endregion
|
|
1143
1335
|
//#region src/items/PanelOptionsGauge.js
|
|
1144
|
-
var PanelOptionsGauge = defineGrafanaItemClass("PanelOptionsGauge", PanelOptions).defineValue("barShape", String).defineValue("barWidthFactor", Number).
|
|
1336
|
+
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;
|
|
1145
1337
|
//#endregion
|
|
1146
1338
|
//#region src/items/PanelOptionsGeomapBasemap.js
|
|
1147
|
-
var PanelOptionsGeomapBasemap = defineGrafanaItemClass("PanelOptionsGeomapBasemap", GrafanaItem).
|
|
1339
|
+
var PanelOptionsGeomapBasemap = defineGrafanaItemClass("PanelOptionsGeomapBasemap", GrafanaItem).defineBasicObject("config", Object).defineValue("name", String).defineValue("noRepeat", Boolean).defineValue("type", String).asClass;
|
|
1148
1340
|
//#endregion
|
|
1149
1341
|
//#region src/items/PanelOptionsGeomapControls.js
|
|
1150
1342
|
var PanelOptionsGeomapControls = defineGrafanaItemClass("PanelOptionsGeomapControls", GrafanaItem).defineValue("mouseWheelZoom", Boolean).defineValue("showAttribution", Boolean).defineValue("showDebug", Boolean).defineValue("showMeasure", Boolean).defineValue("showScale", Boolean).defineValue("showZoom", Boolean).asClass;
|
|
@@ -1168,16 +1360,16 @@ var StyleSymbolAlign = defineGrafanaItemClass("StyleSymbolAlign", GrafanaItem).d
|
|
|
1168
1360
|
var StyleTextConfig = defineGrafanaItemClass("StyleTextConfig", GrafanaItem).defineValue("fontSize", Number).defineValue("offsetX", Number).defineValue("offsetY", Number).defineValue("textAlign", String).defineValue("textBaseline", String).asClass;
|
|
1169
1361
|
//#endregion
|
|
1170
1362
|
//#region src/items/PanelOptionsGeomapLayerConfigStyle.js
|
|
1171
|
-
var PanelOptionsGeomapLayerConfigStyle = defineGrafanaItemClass("PanelOptionsGeomapLayerConfigStyle", GrafanaItem).
|
|
1363
|
+
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;
|
|
1172
1364
|
//#endregion
|
|
1173
1365
|
//#region src/items/PanelOptionsGeomapLayerConfig.js
|
|
1174
|
-
var PanelOptionsGeomapLayerConfig = defineGrafanaItemClass("PanelOptionsGeomapLayerConfig", GrafanaItem).defineValue("showLegend", Boolean).
|
|
1366
|
+
var PanelOptionsGeomapLayerConfig = defineGrafanaItemClass("PanelOptionsGeomapLayerConfig", GrafanaItem).defineValue("showLegend", Boolean).defineObject("style", PanelOptionsGeomapLayerConfigStyle, { onDefault: (options) => new PanelOptionsGeomapLayerConfigStyle(options) }).asClass;
|
|
1175
1367
|
//#endregion
|
|
1176
1368
|
//#region src/items/PanelOptionsGeomapLayerLocation.js
|
|
1177
1369
|
var PanelOptionsGeomapLayerLocation = defineGrafanaItemClass("PanelOptionsGeomapLayerLocation", GrafanaItem).defineValue("mode", String).asClass;
|
|
1178
1370
|
//#endregion
|
|
1179
1371
|
//#region src/items/PanelOptionsGeomapLayer.js
|
|
1180
|
-
var PanelOptionsGeomapLayer = defineGrafanaItemClass("PanelOptionsGeomapLayer", GrafanaItem).
|
|
1372
|
+
var PanelOptionsGeomapLayer = defineGrafanaItemClass("PanelOptionsGeomapLayer", GrafanaItem).defineObject("config", PanelOptionsGeomapLayerConfig).defineObject("location", PanelOptionsGeomapLayerLocation).defineValue("name", String).defineValue("tooltip", Boolean).defineValue("type", String).asClass;
|
|
1181
1373
|
//#endregion
|
|
1182
1374
|
//#region src/items/PanelOptionsGeomapTooltip.js
|
|
1183
1375
|
var PanelOptionsGeomapTooltip = defineGrafanaItemClass("PanelOptionsGeomapTooltip", GrafanaItem).defineValue("mode", String).asClass;
|
|
@@ -1186,13 +1378,13 @@ var PanelOptionsGeomapTooltip = defineGrafanaItemClass("PanelOptionsGeomapToolti
|
|
|
1186
1378
|
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;
|
|
1187
1379
|
//#endregion
|
|
1188
1380
|
//#region src/items/PanelOptionsGeomap.js
|
|
1189
|
-
var PanelOptionsGeomap = defineGrafanaItemClass("PanelOptionsGeomap", PanelOptions).
|
|
1381
|
+
var PanelOptionsGeomap = defineGrafanaItemClass("PanelOptionsGeomap", PanelOptions).defineObject("basemap", PanelOptionsGeomapBasemap).defineObject("controls", PanelOptionsGeomapControls).defineArray("layers", PanelOptionsGeomapLayer).defineObject("tooltip", PanelOptionsGeomapTooltip).defineObject("view", PanelOptionsGeomapView).asClass;
|
|
1190
1382
|
//#endregion
|
|
1191
1383
|
//#region src/items/PieChartLegendOptions.js
|
|
1192
|
-
var PieChartLegendOptions = defineGrafanaItemClass("PieChartLegendOptions", VizLegendOptions).
|
|
1384
|
+
var PieChartLegendOptions = defineGrafanaItemClass("PieChartLegendOptions", VizLegendOptions).defineBasicArray("values", String).asClass;
|
|
1193
1385
|
//#endregion
|
|
1194
1386
|
//#region src/items/PanelOptionsPieChart.js
|
|
1195
|
-
var PanelOptionsPieChart = defineGrafanaItemClass("PanelOptionsPieChart", PanelOptions).
|
|
1387
|
+
var PanelOptionsPieChart = defineGrafanaItemClass("PanelOptionsPieChart", PanelOptions).defineBasicArray("displayLabels", String).defineObject("legend", PieChartLegendOptions).defineValue("pieType", String).defineValue("sort", String).defineObject("tooltip", VizTooltipOptions).asClass;
|
|
1196
1388
|
//#endregion
|
|
1197
1389
|
//#region src/items/PanelOptionsStat.js
|
|
1198
1390
|
var PanelOptionsStat = defineGrafanaItemClass("PanelOptionsStat", PanelOptions).asClass;
|
|
@@ -1207,13 +1399,13 @@ var PanelOptionsTable = defineGrafanaItemClass("PanelOptionsTable", PanelOptions
|
|
|
1207
1399
|
var PanelOptionsTextCode = defineGrafanaItemClass("PanelOptionsTextCode", GrafanaItem).defineValue("language", String).defineValue("showLineNumbers", Boolean).defineValue("showMiniMap", Boolean).asClass;
|
|
1208
1400
|
//#endregion
|
|
1209
1401
|
//#region src/items/PanelOptionsText.js
|
|
1210
|
-
var PanelOptionsText = defineGrafanaItemClass("PanelOptionsText", PanelOptions).
|
|
1402
|
+
var PanelOptionsText = defineGrafanaItemClass("PanelOptionsText", PanelOptions).defineObject("code", PanelOptionsTextCode, { onDefault: (options) => new PanelOptionsTextCode(options) }).defineValue("content", String).defineValue("mode", String).asClass;
|
|
1211
1403
|
//#endregion
|
|
1212
1404
|
//#region src/items/PanelOptionsTimeSeries.js
|
|
1213
|
-
var PanelOptionsTimeSeries = defineGrafanaItemClass("PanelOptionsTimeSeries", PanelOptions).defineValue("disableKeyboardEvents", Boolean).
|
|
1405
|
+
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;
|
|
1214
1406
|
//#endregion
|
|
1215
1407
|
//#region src/items/TargetInfinity.js
|
|
1216
|
-
var TargetInfinity = defineGrafanaItemClass("TargetInfinity", Target).
|
|
1408
|
+
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;
|
|
1217
1409
|
//#endregion
|
|
1218
1410
|
//#region src/items/Testdata.js
|
|
1219
1411
|
var Testdata = defineGrafanaItemClass("Testdata", Datasource).with((builder) => defineDatasource(builder, "grafana-testdata-datasource")).asClass;
|
|
@@ -1223,33 +1415,37 @@ var FieldConfigCustomText = defineGrafanaItemClass("FieldConfigCustomText", Fiel
|
|
|
1223
1415
|
//#endregion
|
|
1224
1416
|
//#region src/items/properties/panel.js
|
|
1225
1417
|
/**
|
|
1226
|
-
* @
|
|
1418
|
+
* @template T
|
|
1419
|
+
* @typedef {import("@gdacm/base-types").MetaConstructor<T>} MetaConstructor
|
|
1420
|
+
*/
|
|
1421
|
+
/**
|
|
1422
|
+
* @template {Panel} T
|
|
1423
|
+
* @param {GrafanaItemClassBuilder<T>} builder
|
|
1227
1424
|
* @param {string} typeName
|
|
1228
|
-
* @param {
|
|
1229
|
-
* @param {
|
|
1425
|
+
* @param {MetaConstructor<FieldConfigCustom>} fieldConfigCustom
|
|
1426
|
+
* @param {MetaConstructor<PanelOptions>} panelOptions
|
|
1230
1427
|
* @param {Object} [options]
|
|
1231
|
-
* @param {(instance:
|
|
1428
|
+
* @param {(instance: T) => void} [options.onInit]
|
|
1232
1429
|
*/
|
|
1233
1430
|
var definePanel = (builder, typeName, fieldConfigCustom, panelOptions, options) => {
|
|
1234
1431
|
const { onInit } = options ?? {};
|
|
1235
1432
|
builder.defineConstructor((instance) => {
|
|
1236
|
-
|
|
1237
|
-
|
|
1238
|
-
if (onInit) onInit(self);
|
|
1433
|
+
instance.setType(typeName).withFieldConfig((fieldConfig) => fieldConfig.setDefaults(new FieldConfigDefault(instance.metaOptions).setCustom(new fieldConfigCustom(instance.metaOptions))));
|
|
1434
|
+
if (onInit) onInit(instance);
|
|
1239
1435
|
}).defineGetterSetter("custom", `${fieldConfigCustom.name}`, {
|
|
1240
1436
|
typesToInclude: [fieldConfigCustom],
|
|
1241
1437
|
getter: (instance) => instance.fieldConfig.defaults.custom
|
|
1242
1438
|
}).defineMethod(`withCustom`, `(code: (custom: ${fieldConfigCustom.name}) => void): this`, {
|
|
1243
1439
|
typesToInclude: [fieldConfigCustom],
|
|
1244
1440
|
/**
|
|
1245
|
-
* @param {
|
|
1441
|
+
* @param {T} instance
|
|
1246
1442
|
* @param {(custom: FieldConfigCustom) => void} code
|
|
1247
1443
|
* */
|
|
1248
1444
|
code: (instance, code) => {
|
|
1249
1445
|
code(instance.fieldConfig.defaults.custom);
|
|
1250
1446
|
return instance;
|
|
1251
1447
|
}
|
|
1252
|
-
}).
|
|
1448
|
+
}).defineObject("options", panelOptions, { onDefault: (options) => new panelOptions(options) });
|
|
1253
1449
|
};
|
|
1254
1450
|
//#endregion
|
|
1255
1451
|
//#region src/items/TextPanel.js
|
|
@@ -1259,8 +1455,13 @@ var TextPanel = defineGrafanaItemClass("TextPanel", Panel).with((builder) => def
|
|
|
1259
1455
|
var BarChart = defineGrafanaItemClass("BarChart", Panel).with((instance) => definePanel(instance, "barchart", FieldConfigCustomBarChart, PanelOptionsBarChart, { onInit: (instance) => {
|
|
1260
1456
|
instance.fieldConfig.defaults.setColorMode("palette-classic");
|
|
1261
1457
|
instance.fieldConfig.defaults.thresholds.setMode("absolute");
|
|
1262
|
-
} })).defineMethod("
|
|
1263
|
-
|
|
1458
|
+
} })).defineMethod("setThresholdsStyleMode", "(mode: string): this", {
|
|
1459
|
+
/**
|
|
1460
|
+
* @param {BarChart} instance
|
|
1461
|
+
* @returns
|
|
1462
|
+
*/
|
|
1463
|
+
code: (instance, mode) => {
|
|
1464
|
+
instance.custom.thresholdsStyle.setMode(mode);
|
|
1264
1465
|
return instance;
|
|
1265
1466
|
} }).asClass;
|
|
1266
1467
|
//#endregion
|
|
@@ -1291,8 +1492,13 @@ var Table = defineGrafanaItemClass("Table", Panel).with((builder) => definePanel
|
|
|
1291
1492
|
var TimeSeries = defineGrafanaItemClass("TimeSeries", Panel).with((builder) => definePanel(builder, "timeseries", FieldConfigCustomTimeSerie, PanelOptionsTimeSeries, { onInit: (instance) => {
|
|
1292
1493
|
instance.fieldConfig.defaults.setColorMode("palette-classic");
|
|
1293
1494
|
instance.fieldConfig.defaults.thresholds.setMode("absolute");
|
|
1294
|
-
} })).defineMethod("
|
|
1295
|
-
|
|
1495
|
+
} })).defineMethod("setThresholdsStyleMode", "(mode: string): this", {
|
|
1496
|
+
/**
|
|
1497
|
+
* @param {TimeSeries} instance
|
|
1498
|
+
* @returns
|
|
1499
|
+
*/
|
|
1500
|
+
code: (instance, mode) => {
|
|
1501
|
+
instance.custom.thresholdsStyle.setMode(mode);
|
|
1296
1502
|
return instance;
|
|
1297
1503
|
} }).asClass;
|
|
1298
1504
|
//#endregion
|