@gdacm/grafana-items 0.1.19 → 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 +630 -422
- package/dist/index.js.map +1 -1
- package/dist/items/BarChart.d.ts +2 -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 +1 -0
- package/dist/items/Geomap.d.ts +1 -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 +1 -0
- package/dist/items/PieChartLegendOptions.d.ts +0 -1
- package/dist/items/Stat.d.ts +1 -0
- package/dist/items/Table.d.ts +1 -0
- package/dist/items/TextPanel.d.ts +1 -0
- package/dist/items/TimePicker.d.ts +0 -1
- package/dist/items/TimeSeries.d.ts +2 -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
|
|
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
|
-
* @
|
|
72
|
-
* @
|
|
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
|
-
* @
|
|
81
|
-
* @param {string} name
|
|
100
|
+
* @type {MetaClassRegistry<GrafanaItem>}
|
|
82
101
|
*/
|
|
83
|
-
|
|
84
|
-
|
|
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
|
-
* @
|
|
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,83 +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
|
-
"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(
|
|
389
|
+
addTypeNameToInclude(cls, type.name);
|
|
390
|
+
setPrototypeWithSignature(
|
|
299
391
|
cls,
|
|
300
|
-
|
|
392
|
+
`set${caseName}`,
|
|
393
|
+
`(${name}: ${typeName}): this;`,
|
|
301
394
|
/**
|
|
302
|
-
* @this
|
|
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
|
|
303
409
|
* @param {(item: T) => T} [onNewCreated]
|
|
304
|
-
* @returns {
|
|
410
|
+
* @returns {C}
|
|
305
411
|
*/
|
|
306
412
|
function(onNewCreated) {
|
|
307
413
|
if (!onNewCreated) onNewCreated = (item) => item;
|
|
308
414
|
return this._setGrafanaObject(key, type, onNewCreated(new type(this.metaOptions)));
|
|
309
415
|
}
|
|
310
416
|
);
|
|
311
|
-
|
|
312
|
-
setPrototype(
|
|
417
|
+
setPrototypeWithSignature(
|
|
313
418
|
cls,
|
|
314
419
|
`with${caseName}`,
|
|
420
|
+
`(onWith: (item: ${typeName}) => void): this;`,
|
|
315
421
|
/**
|
|
316
|
-
* @this
|
|
422
|
+
* @this C
|
|
317
423
|
* @param {(item: T) => void} onWith
|
|
318
|
-
* @returns {
|
|
424
|
+
* @returns {C}
|
|
319
425
|
*/
|
|
320
426
|
function(onWith) {
|
|
321
427
|
const item = this._getGrafanaObject(key, type);
|
|
@@ -323,101 +429,79 @@ function defineGrafanaObject(cls, key, type, option) {
|
|
|
323
429
|
return this;
|
|
324
430
|
}
|
|
325
431
|
);
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
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
|
-
}
|
|
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
|
+
});
|
|
340
438
|
}
|
|
341
439
|
/**
|
|
342
|
-
* @
|
|
343
|
-
* @
|
|
344
|
-
* @param {
|
|
440
|
+
* @template {GrafanaItem} C
|
|
441
|
+
* @template {GrafanaItem} T
|
|
442
|
+
* @param {MetaConstructor<C>} cls
|
|
443
|
+
* @param {string} key
|
|
444
|
+
* @param {MetaConstructor<T>} type
|
|
345
445
|
* @param {Object} [option]
|
|
346
446
|
* @param {string} [option.name]
|
|
347
447
|
* @param {string} [option.itemName]
|
|
348
448
|
* @param {boolean} [option.setEmpty]
|
|
349
|
-
* @param {(instance:
|
|
350
|
-
* @param {(metaOptions: GenericMetaOptions) =>
|
|
449
|
+
* @param {(instance: C) => void} [option.onInit]
|
|
450
|
+
* @param {(metaOptions: GenericMetaOptions) => T[]} [option.onDefault]
|
|
351
451
|
*/
|
|
352
452
|
function defineArray(cls, key, type, option) {
|
|
353
|
-
const metaClassInfo = getMetaClassInfo(cls);
|
|
354
453
|
const name = option?.name ? option.name : key;
|
|
355
454
|
const caseName = name.charAt(0).toUpperCase() + name.slice(1);
|
|
356
455
|
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
456
|
const caseItemName = itemName.charAt(0).toUpperCase() + itemName.slice(1);
|
|
361
|
-
|
|
362
|
-
|
|
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(
|
|
457
|
+
addTypeNameToInclude(cls, type.name);
|
|
458
|
+
setPrototypeWithSignature(
|
|
414
459
|
cls,
|
|
415
|
-
|
|
460
|
+
`init${caseName}`,
|
|
461
|
+
`(): this;`,
|
|
416
462
|
/**
|
|
417
|
-
* @this
|
|
418
|
-
* @
|
|
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
|
|
419
503
|
* @param {(array: T[]) => void} onWith
|
|
420
|
-
* @returns {
|
|
504
|
+
* @returns {C}
|
|
421
505
|
*/
|
|
422
506
|
function(onWith) {
|
|
423
507
|
const array = this._getArray(key);
|
|
@@ -425,97 +509,174 @@ function defineArray(cls, key, type, option) {
|
|
|
425
509
|
return this;
|
|
426
510
|
}
|
|
427
511
|
);
|
|
428
|
-
|
|
429
|
-
if (option?.
|
|
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
|
-
}
|
|
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));
|
|
439
515
|
}
|
|
440
516
|
/**
|
|
441
|
-
* @template {
|
|
442
|
-
* @param {
|
|
443
|
-
* @param {string
|
|
517
|
+
* @template {GrafanaItem} C
|
|
518
|
+
* @param {MetaConstructor<C>} cls
|
|
519
|
+
* @param {string} key
|
|
520
|
+
* @param {Function} type
|
|
444
521
|
* @param {Object} [option]
|
|
445
|
-
* @param {(typeof GrafanaItem)[]} [option.typesToInclude]
|
|
446
522
|
* @param {string} [option.name]
|
|
447
|
-
* @param {
|
|
448
|
-
* @param {
|
|
449
|
-
* @param {
|
|
450
|
-
* @param {(
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
const
|
|
455
|
-
const
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
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};`);
|
|
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);
|
|
489
544
|
}
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
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);
|
|
494
559
|
}
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
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;
|
|
500
575
|
}
|
|
501
|
-
|
|
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));
|
|
502
580
|
}
|
|
503
581
|
/**
|
|
504
|
-
* @
|
|
505
|
-
* @param {
|
|
582
|
+
* @template {GrafanaItem} C
|
|
583
|
+
* @param {MetaConstructor<C>} cls
|
|
584
|
+
* @param {(instance: C) => void} code
|
|
506
585
|
*/
|
|
507
586
|
function defineConstructor(cls, code) {
|
|
508
|
-
|
|
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);
|
|
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.");
|
|
509
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
|
+
*/
|
|
510
664
|
var GrafanaItemClassBuilder = class {
|
|
511
665
|
/**
|
|
512
|
-
* @param {
|
|
666
|
+
* @param {MetaConstructor<C>} cls
|
|
513
667
|
*/
|
|
514
668
|
constructor(cls) {
|
|
515
|
-
|
|
669
|
+
/** @type {MetaConstructor<C>} */
|
|
670
|
+
this._cls = cls;
|
|
671
|
+
}
|
|
672
|
+
/**
|
|
673
|
+
* @return {MetaConstructor<C>}
|
|
674
|
+
*/
|
|
675
|
+
get cls() {
|
|
676
|
+
return this._cls;
|
|
516
677
|
}
|
|
517
678
|
/**
|
|
518
|
-
* @param {
|
|
679
|
+
* @param {MetaConstructor<GrafanaItem>} parent
|
|
519
680
|
* @returns
|
|
520
681
|
*/
|
|
521
682
|
setParent(parent) {
|
|
@@ -527,8 +688,8 @@ var GrafanaItemClassBuilder = class {
|
|
|
527
688
|
* @param {Function} type
|
|
528
689
|
* @param {Object} [option]
|
|
529
690
|
* @param {string} [option.name]
|
|
530
|
-
* @param {(instance:
|
|
531
|
-
* @param {(metaOptions: GenericMetaOptions) =>
|
|
691
|
+
* @param {(instance: C) => void} [option.onInit]
|
|
692
|
+
* @param {(metaOptions: GenericMetaOptions) => C} [option.onDefault]
|
|
532
693
|
* @param {String} [option.typeName]
|
|
533
694
|
* @return {this}
|
|
534
695
|
*/
|
|
@@ -537,13 +698,15 @@ var GrafanaItemClassBuilder = class {
|
|
|
537
698
|
return this;
|
|
538
699
|
}
|
|
539
700
|
/**
|
|
701
|
+
* @template {GrafanaItem} T
|
|
540
702
|
* @param {string} key
|
|
541
|
-
* @param {
|
|
703
|
+
* @param {MetaConstructor<T>} type
|
|
542
704
|
* @param {Object} [option]
|
|
543
705
|
* @param {string} [option.name]
|
|
544
|
-
* @param {(instance:
|
|
545
|
-
* @param {(metaOptions: GenericMetaOptions) =>
|
|
706
|
+
* @param {(instance: C) => void} [option.onInit]
|
|
707
|
+
* @param {(metaOptions: GenericMetaOptions) => T} [option.onDefault]
|
|
546
708
|
* @param {String} [option.typeName]
|
|
709
|
+
* @param {String} [option.setNew]
|
|
547
710
|
* @return {this}
|
|
548
711
|
*/
|
|
549
712
|
defineObject(key, type, option) {
|
|
@@ -551,30 +714,29 @@ var GrafanaItemClassBuilder = class {
|
|
|
551
714
|
return this;
|
|
552
715
|
}
|
|
553
716
|
/**
|
|
554
|
-
* @template {GrafanaItem} T
|
|
555
717
|
* @param {string} key
|
|
556
|
-
* @param {
|
|
718
|
+
* @param {Function} type
|
|
557
719
|
* @param {Object} [option]
|
|
558
720
|
* @param {string} [option.name]
|
|
559
|
-
* @param {(instance:
|
|
560
|
-
* @param {(metaOptions: GenericMetaOptions) =>
|
|
721
|
+
* @param {(instance: C) => void} [option.onInit]
|
|
722
|
+
* @param {(metaOptions: GenericMetaOptions) => Object} [option.onDefault]
|
|
561
723
|
* @param {String} [option.typeName]
|
|
562
|
-
* @param {String} [option.setNew]
|
|
563
724
|
* @return {this}
|
|
564
725
|
*/
|
|
565
|
-
|
|
566
|
-
|
|
726
|
+
defineBasicObject(key, type, option) {
|
|
727
|
+
defineBasicObject(this.cls, key, type, option);
|
|
567
728
|
return this;
|
|
568
729
|
}
|
|
569
730
|
/**
|
|
731
|
+
* @template {GrafanaItem} T
|
|
570
732
|
* @param {string} key
|
|
571
|
-
* @param {
|
|
733
|
+
* @param {MetaConstructor<T>} type
|
|
572
734
|
* @param {Object} [option]
|
|
573
735
|
* @param {string} [option.name]
|
|
574
736
|
* @param {string} [option.itemName]
|
|
575
737
|
* @param {boolean} [option.setEmpty]
|
|
576
|
-
* @param {(instance:
|
|
577
|
-
* @param {(metaOptions: GenericMetaOptions) =>
|
|
738
|
+
* @param {(instance: C) => void} [option.onInit]
|
|
739
|
+
* @param {(metaOptions: GenericMetaOptions) => T[]} [option.onDefault]
|
|
578
740
|
* @return {this}
|
|
579
741
|
*/
|
|
580
742
|
defineArray(key, type, option) {
|
|
@@ -582,18 +744,32 @@ var GrafanaItemClassBuilder = class {
|
|
|
582
744
|
return this;
|
|
583
745
|
}
|
|
584
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
|
+
/**
|
|
585
762
|
* @param {string} method
|
|
586
763
|
* @param {Object} [option]
|
|
587
764
|
* @param {(typeof GrafanaItem)[]} [option.typesToInclude]
|
|
588
765
|
* @return {this}
|
|
589
766
|
*/
|
|
590
767
|
defineMember(method, option) {
|
|
591
|
-
|
|
768
|
+
defineMember(this.cls, method, option);
|
|
592
769
|
return this;
|
|
593
770
|
}
|
|
594
771
|
/**
|
|
595
|
-
* @
|
|
596
|
-
* @param {(instance: InstanceType<T>) => void} code
|
|
772
|
+
* @param {(instance: C) => void} code
|
|
597
773
|
* @return {this}
|
|
598
774
|
*/
|
|
599
775
|
defineConstructor(code) {
|
|
@@ -605,36 +781,24 @@ var GrafanaItemClassBuilder = class {
|
|
|
605
781
|
* @param {string} args
|
|
606
782
|
* @param {Object} option
|
|
607
783
|
* @param {(typeof GrafanaItem)[]} [option.typesToInclude]
|
|
608
|
-
* @param {
|
|
784
|
+
* @param {(instance: C, ...args: any[]) => any} option.code
|
|
609
785
|
* @return {this}
|
|
610
786
|
*/
|
|
611
787
|
defineMethod(name, args, option) {
|
|
612
|
-
|
|
613
|
-
...option,
|
|
614
|
-
name
|
|
615
|
-
});
|
|
788
|
+
defineMethod(this.cls, name, args, option);
|
|
616
789
|
return this;
|
|
617
790
|
}
|
|
618
791
|
/**
|
|
619
|
-
* @template {typeof GrafanaItem} T
|
|
620
792
|
* @param {string} name
|
|
621
|
-
* @param {string}
|
|
793
|
+
* @param {string} typeName
|
|
622
794
|
* @param {Object} option
|
|
623
795
|
* @param {(typeof GrafanaItem)[]} [option.typesToInclude]
|
|
624
|
-
* @param {(instance:
|
|
625
|
-
* @param {(instance:
|
|
796
|
+
* @param {(instance: C) => any} [option.getter]
|
|
797
|
+
* @param {(instance: C, value: any) => void} [option.setter]
|
|
626
798
|
* @return {this}
|
|
627
799
|
*/
|
|
628
|
-
defineGetterSetter(name,
|
|
629
|
-
|
|
630
|
-
const setter = option.setter;
|
|
631
|
-
defineMemberInternal(this.cls, void 0, {
|
|
632
|
-
...option,
|
|
633
|
-
getter,
|
|
634
|
-
setter,
|
|
635
|
-
name,
|
|
636
|
-
getterSetterType: type
|
|
637
|
-
});
|
|
800
|
+
defineGetterSetter(name, typeName, option) {
|
|
801
|
+
defineGetterSetter(this.cls, name, typeName, option);
|
|
638
802
|
return this;
|
|
639
803
|
}
|
|
640
804
|
/**
|
|
@@ -652,15 +816,43 @@ var GrafanaItemClassBuilder = class {
|
|
|
652
816
|
}
|
|
653
817
|
};
|
|
654
818
|
/**
|
|
819
|
+
* @template {GrafanaItem} C
|
|
655
820
|
* @param {string} name
|
|
656
821
|
* @param {typeof GrafanaItem} parent
|
|
657
|
-
* @returns {GrafanaItemClassBuilder}
|
|
822
|
+
* @returns {GrafanaItemClassBuilder<C>}
|
|
658
823
|
*/
|
|
659
824
|
var defineGrafanaItemClass = (name, parent) => {
|
|
660
825
|
const cls = class extends parent {};
|
|
661
826
|
Object.defineProperty(cls, "name", { value: name });
|
|
662
827
|
return defineClass(cls).setParent(parent);
|
|
663
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
|
+
}
|
|
664
856
|
//#endregion
|
|
665
857
|
//#region src/items/GrafanaItem.js
|
|
666
858
|
var GrafanaItem = class {
|
|
@@ -821,10 +1013,10 @@ var GrafanaItem = class {
|
|
|
821
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;");
|
|
822
1014
|
//#endregion
|
|
823
1015
|
//#region src/items/OverrideMatcher.js
|
|
824
|
-
var OverrideMatcher = defineGrafanaItemClass("OverrideMatcher", GrafanaItem).defineValue("id", String).
|
|
1016
|
+
var OverrideMatcher = defineGrafanaItemClass("OverrideMatcher", GrafanaItem).defineValue("id", String).defineBasicObject("options", Object).asClass;
|
|
825
1017
|
//#endregion
|
|
826
1018
|
//#region src/items/OverrideMatcherOptionsByNames.js
|
|
827
|
-
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;
|
|
828
1020
|
//#endregion
|
|
829
1021
|
//#region src/items/OverrideProperty.js
|
|
830
1022
|
var OverrideProperty = defineGrafanaItemClass("OverrideProperty", GrafanaItem).defineValue("id", String).defineValue("value", Object).asClass;
|
|
@@ -833,7 +1025,7 @@ var OverrideProperty = defineGrafanaItemClass("OverrideProperty", GrafanaItem).d
|
|
|
833
1025
|
var Datasource = defineGrafanaItemClass("Datasource", GrafanaItem).defineValue("type", String).defineValue("uid", String).asClass;
|
|
834
1026
|
//#endregion
|
|
835
1027
|
//#region src/items/Annotation.js
|
|
836
|
-
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;
|
|
837
1029
|
//#endregion
|
|
838
1030
|
//#region src/items/Annotations.js
|
|
839
1031
|
var Annotations = defineGrafanaItemClass("Annotations", GrafanaItem).defineArray("list", Annotation, { itemName: "annotation" }).asClass;
|
|
@@ -896,7 +1088,7 @@ code: (thresholds, value, color) => {
|
|
|
896
1088
|
} }).asClass;
|
|
897
1089
|
//#endregion
|
|
898
1090
|
//#region src/items/FieldConfigDefault.js
|
|
899
|
-
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;", {
|
|
900
1092
|
/**
|
|
901
1093
|
* @param {FieldConfigDefault} fieldConfigDefault
|
|
902
1094
|
* @param {String} mode
|
|
@@ -909,13 +1101,13 @@ code: (fieldConfigDefault, mode) => {
|
|
|
909
1101
|
} }).asClass;
|
|
910
1102
|
//#endregion
|
|
911
1103
|
//#region src/items/FieldConfigOverride.js
|
|
912
|
-
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;
|
|
913
1105
|
//#endregion
|
|
914
1106
|
//#region src/items/HideFrom.js
|
|
915
1107
|
var HideFrom = defineGrafanaItemClass("HideFrom", GrafanaItem).defineValue("graph", Boolean).defineValue("legend", Boolean).defineValue("tooltip", Boolean).defineValue("viz", Boolean).asClass;
|
|
916
1108
|
//#endregion
|
|
917
1109
|
//#region src/items/FieldConfig.js
|
|
918
|
-
var FieldConfig = defineGrafanaItemClass("FieldConfig", GrafanaItem).
|
|
1110
|
+
var FieldConfig = defineGrafanaItemClass("FieldConfig", GrafanaItem).defineObject("defaults", FieldConfigDefault).defineArray("overrides", FieldConfigOverride).defineMethod("addNewOverrideHideSeriesFrom", "(names: string[]): this", {
|
|
919
1111
|
/**
|
|
920
1112
|
* @param {FieldConfig} fieldConfig
|
|
921
1113
|
* @param {String[]} names
|
|
@@ -931,16 +1123,16 @@ code: (fieldConfig, names) => {
|
|
|
931
1123
|
} }).asClass;
|
|
932
1124
|
//#endregion
|
|
933
1125
|
//#region src/items/Target.js
|
|
934
|
-
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;
|
|
935
1127
|
//#endregion
|
|
936
1128
|
//#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).
|
|
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;
|
|
938
1130
|
//#endregion
|
|
939
1131
|
//#region src/items/DataTransformation.js
|
|
940
1132
|
var DataTransformation = defineGrafanaItemClass("DataTransformation", GrafanaItem).asClass;
|
|
941
1133
|
//#endregion
|
|
942
1134
|
//#region src/items/Panel.js
|
|
943
|
-
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;", {
|
|
944
1136
|
/**
|
|
945
1137
|
* @param {Panel} panel
|
|
946
1138
|
* @param {number} x
|
|
@@ -950,7 +1142,7 @@ var Panel = defineGrafanaItemClass("Panel", GrafanaItem).defineValue("cacheTimeo
|
|
|
950
1142
|
*/
|
|
951
1143
|
code: (panel, x, y, w, h) => {
|
|
952
1144
|
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).
|
|
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;", {
|
|
954
1146
|
/**
|
|
955
1147
|
* @param {Panel} panel
|
|
956
1148
|
* @param {string} refId
|
|
@@ -968,13 +1160,13 @@ var TemplateCurrent = defineGrafanaItemClass("TemplateCurrent", GrafanaItem).def
|
|
|
968
1160
|
var TemplateOption = defineGrafanaItemClass("TemplateOption", GrafanaItem).defineValue("selected", Boolean).defineValue("text", String).defineValue("value", String).asClass;
|
|
969
1161
|
//#endregion
|
|
970
1162
|
//#region src/items/Template.js
|
|
971
|
-
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;
|
|
972
1164
|
//#endregion
|
|
973
1165
|
//#region src/items/Templating.js
|
|
974
1166
|
var Templating = defineGrafanaItemClass("Templating", GrafanaItem).defineArray("list", Template, { itemName: "template" }).asClass;
|
|
975
1167
|
//#endregion
|
|
976
1168
|
//#region src/items/TimePicker.js
|
|
977
|
-
var TimePicker = defineGrafanaItemClass("TimePicker", GrafanaItem).
|
|
1169
|
+
var TimePicker = defineGrafanaItemClass("TimePicker", GrafanaItem).defineBasicArray("refresh_intervals", String, { itemName: "refreshInterval" }).asClass;
|
|
978
1170
|
//#endregion
|
|
979
1171
|
//#region src/torefactor/index.js
|
|
980
1172
|
/**
|
|
@@ -987,7 +1179,7 @@ var TimePicker = defineGrafanaItemClass("TimePicker", GrafanaItem).defineArray("
|
|
|
987
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"));
|
|
988
1180
|
//#endregion
|
|
989
1181
|
//#region src/items/Dashboard.js
|
|
990
|
-
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;", {
|
|
991
1183
|
/**
|
|
992
1184
|
* @param {Dashboard} dashboard
|
|
993
1185
|
* @param {Panel} panel
|
|
@@ -1001,10 +1193,10 @@ code: (dashboard, panel) => {
|
|
|
1001
1193
|
}, 0);
|
|
1002
1194
|
panel._setValue("id", max + 1);
|
|
1003
1195
|
return dashboard._addArrayItem("panels", panel);
|
|
1004
|
-
} }).
|
|
1196
|
+
} }).defineValue("preload", Boolean).defineValue("schemaVersion", Number).defineValue("refresh", String).defineValue("tags", Array, {
|
|
1005
1197
|
onDefault: (options) => [],
|
|
1006
1198
|
typeName: "Array<String>"
|
|
1007
|
-
}).
|
|
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;", {
|
|
1008
1200
|
/**
|
|
1009
1201
|
* @param {Dashboard} dashboard
|
|
1010
1202
|
* @param {string} from
|
|
@@ -1014,21 +1206,21 @@ code: (dashboard, panel) => {
|
|
|
1014
1206
|
code: (dashboard, from, to) => {
|
|
1015
1207
|
dashboard.time.setRange(from, to);
|
|
1016
1208
|
return dashboard;
|
|
1017
|
-
} }).
|
|
1209
|
+
} }).defineObject("timepicker", TimePicker, { onDefault: (options) => new TimePicker(options) }).defineValue("timezone", String, { onDefault: (options) => "browser" }).defineValue("title", String, { onDefault: (options) => "" }).defineValue("uid", String).asClass;
|
|
1018
1210
|
//#endregion
|
|
1019
1211
|
//#region src/items/properties/datasource.js
|
|
1020
1212
|
/**
|
|
1021
|
-
* @
|
|
1213
|
+
* @template {Datasource} T
|
|
1214
|
+
* @param {GrafanaItemClassBuilder<T>} builder
|
|
1022
1215
|
* @param {string} typeName
|
|
1023
1216
|
* @param {Object} [options]
|
|
1024
|
-
* @param {(instance:
|
|
1217
|
+
* @param {(instance: T) => void} [options.onInit]
|
|
1025
1218
|
*/
|
|
1026
1219
|
var defineDatasource = (builder, typeName, options) => {
|
|
1027
1220
|
const { onInit } = options ?? {};
|
|
1028
1221
|
builder.defineConstructor((instance) => {
|
|
1029
|
-
|
|
1030
|
-
|
|
1031
|
-
if (onInit) onInit(self);
|
|
1222
|
+
instance.setType(typeName);
|
|
1223
|
+
if (onInit) onInit(instance);
|
|
1032
1224
|
});
|
|
1033
1225
|
};
|
|
1034
1226
|
//#endregion
|
|
@@ -1040,7 +1232,8 @@ var ScaleDistribution = defineGrafanaItemClass("ScaleDistribution", GrafanaItem)
|
|
|
1040
1232
|
//#endregion
|
|
1041
1233
|
//#region src/items/properties/axisConfig.js
|
|
1042
1234
|
/**
|
|
1043
|
-
* @
|
|
1235
|
+
* @template {FieldConfigCustom} T
|
|
1236
|
+
* @param {GrafanaItemClassBuilder<T>} builder
|
|
1044
1237
|
*/
|
|
1045
1238
|
var defineAxisConfig = (builder) => {
|
|
1046
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") });
|
|
@@ -1048,17 +1241,18 @@ var defineAxisConfig = (builder) => {
|
|
|
1048
1241
|
//#endregion
|
|
1049
1242
|
//#region src/items/properties/hideableFieldConfig.js
|
|
1050
1243
|
/**
|
|
1051
|
-
* @
|
|
1244
|
+
* @template {FieldConfigCustom} T
|
|
1245
|
+
* @param {GrafanaItemClassBuilder<T>} builder
|
|
1052
1246
|
*/
|
|
1053
1247
|
var defineHideableFieldConfig = (builder) => {
|
|
1054
|
-
builder.
|
|
1248
|
+
builder.defineObject("hideFrom", HideFrom, { onDefault: (options) => new HideFrom(options).setLegend(false).setTooltip(false).setViz(false) });
|
|
1055
1249
|
};
|
|
1056
1250
|
//#endregion
|
|
1057
1251
|
//#region src/items/ThresholdStyle.js
|
|
1058
1252
|
var ThresholdStyle = defineGrafanaItemClass("ThresholdStyle", GrafanaItem).defineValue("mode", String).asClass;
|
|
1059
1253
|
//#endregion
|
|
1060
1254
|
//#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).
|
|
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;", {
|
|
1062
1256
|
/**
|
|
1063
1257
|
* @param {FieldConfigCustomBarChart} fieldConfigCustomBarChart
|
|
1064
1258
|
* @param {String} mode
|
|
@@ -1073,7 +1267,7 @@ code: (fieldConfigCustomBarChart, mode) => {
|
|
|
1073
1267
|
var FieldConfigCustomGauge = defineGrafanaItemClass("FieldConfigCustomGauge", FieldConfigCustom).asClass;
|
|
1074
1268
|
//#endregion
|
|
1075
1269
|
//#region src/items/FieldConfigCustomGeomap.js
|
|
1076
|
-
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;
|
|
1077
1271
|
//#endregion
|
|
1078
1272
|
//#region src/items/FieldConfigCustomPieChart.js
|
|
1079
1273
|
var FieldConfigCustomPieChart = defineGrafanaItemClass("FieldConfigCustomPieChart", FieldConfigCustom).with((builder) => defineHideableFieldConfig(builder)).asClass;
|
|
@@ -1085,7 +1279,7 @@ var LineStyle = defineGrafanaItemClass("LineStyle", GrafanaItem).defineValue("fi
|
|
|
1085
1279
|
var Stacking = defineGrafanaItemClass("Stacking", GrafanaItem).defineValue("group", String).defineValue("mode", String).asClass;
|
|
1086
1280
|
//#endregion
|
|
1087
1281
|
//#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).
|
|
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;", {
|
|
1089
1283
|
/**
|
|
1090
1284
|
* @param {FieldConfigCustomTimeSerie} fieldConfigCustomTimeSerie
|
|
1091
1285
|
* @param {String} fill
|
|
@@ -1094,7 +1288,7 @@ var FieldConfigCustomTimeSerie = defineGrafanaItemClass("FieldConfigCustomTimeSe
|
|
|
1094
1288
|
code: (fieldConfigCustomTimeSerie, fill) => {
|
|
1095
1289
|
fieldConfigCustomTimeSerie.lineStyle.setFill(fill);
|
|
1096
1290
|
return fieldConfigCustomTimeSerie;
|
|
1097
|
-
} }).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;", {
|
|
1098
1292
|
/**
|
|
1099
1293
|
* @param {FieldConfigCustomTimeSerie} fieldConfigCustomTimeSerie
|
|
1100
1294
|
* @param {String} mode
|
|
@@ -1109,10 +1303,10 @@ code: (fieldConfigCustomTimeSerie, mode) => {
|
|
|
1109
1303
|
var FieldConfigCustomTableCellOptions = defineGrafanaItemClass("FieldConfigCustomTableCellOptions", GrafanaItem).defineValue("type", String).asClass;
|
|
1110
1304
|
//#endregion
|
|
1111
1305
|
//#region src/items/FieldConfigCustomTableFooter.js
|
|
1112
|
-
var FieldConfigCustomTableFooter = defineGrafanaItemClass("FieldConfigCustomTableFooter", GrafanaItem).
|
|
1306
|
+
var FieldConfigCustomTableFooter = defineGrafanaItemClass("FieldConfigCustomTableFooter", GrafanaItem).defineBasicArray("reducers", String).asClass;
|
|
1113
1307
|
//#endregion
|
|
1114
1308
|
//#region src/items/FieldConfigCustomTable.js
|
|
1115
|
-
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;
|
|
1116
1310
|
//#endregion
|
|
1117
1311
|
//#region src/items/Influxdb.js
|
|
1118
1312
|
var Influxdb = defineGrafanaItemClass("Influxdb", Datasource).with((builder) => defineDatasource(builder, "influxdb")).asClass;
|
|
@@ -1121,7 +1315,7 @@ var Influxdb = defineGrafanaItemClass("Influxdb", Datasource).with((builder) =>
|
|
|
1121
1315
|
var PanelOptions = defineGrafanaItemClass("PanelOptions", GrafanaItem).asClass;
|
|
1122
1316
|
//#endregion
|
|
1123
1317
|
//#region src/items/VizLegendOptions.js
|
|
1124
|
-
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;
|
|
1125
1319
|
//#endregion
|
|
1126
1320
|
//#region src/items/VizTooltipOptions.js
|
|
1127
1321
|
var VizTooltipOptions = defineGrafanaItemClass("VizTooltipOptions", GrafanaItem).defineValue("hideZeros", Boolean).defineValue("maxHeight", Number).defineValue("maxWidth", Number).defineValue("mode", String).defineValue("sort", String).asClass;
|
|
@@ -1130,19 +1324,19 @@ var VizTooltipOptions = defineGrafanaItemClass("VizTooltipOptions", GrafanaItem)
|
|
|
1130
1324
|
var VizTextDisplayOptions = defineGrafanaItemClass("VizTextDisplayOptions", GrafanaItem).defineValue("percentSize", Number).defineValue("titleSize", Number).defineValue("valueSize", Number).asClass;
|
|
1131
1325
|
//#endregion
|
|
1132
1326
|
//#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).
|
|
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;
|
|
1134
1328
|
//#endregion
|
|
1135
1329
|
//#region src/items/PanelOptionsGaugeEffect.js
|
|
1136
1330
|
var PanelOptionsGaugeEffect = defineGrafanaItemClass("PanelOptionsGaugeEffect", GrafanaItem).defineValue("barGlow", Boolean).defineValue("centerGlow", Boolean).defineValue("gradient", Boolean).asClass;
|
|
1137
1331
|
//#endregion
|
|
1138
1332
|
//#region src/items/PanelOptionsGaugeReduceOptions.js
|
|
1139
|
-
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;
|
|
1140
1334
|
//#endregion
|
|
1141
1335
|
//#region src/items/PanelOptionsGauge.js
|
|
1142
|
-
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;
|
|
1143
1337
|
//#endregion
|
|
1144
1338
|
//#region src/items/PanelOptionsGeomapBasemap.js
|
|
1145
|
-
var PanelOptionsGeomapBasemap = defineGrafanaItemClass("PanelOptionsGeomapBasemap", GrafanaItem).
|
|
1339
|
+
var PanelOptionsGeomapBasemap = defineGrafanaItemClass("PanelOptionsGeomapBasemap", GrafanaItem).defineBasicObject("config", Object).defineValue("name", String).defineValue("noRepeat", Boolean).defineValue("type", String).asClass;
|
|
1146
1340
|
//#endregion
|
|
1147
1341
|
//#region src/items/PanelOptionsGeomapControls.js
|
|
1148
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;
|
|
@@ -1166,16 +1360,16 @@ var StyleSymbolAlign = defineGrafanaItemClass("StyleSymbolAlign", GrafanaItem).d
|
|
|
1166
1360
|
var StyleTextConfig = defineGrafanaItemClass("StyleTextConfig", GrafanaItem).defineValue("fontSize", Number).defineValue("offsetX", Number).defineValue("offsetY", Number).defineValue("textAlign", String).defineValue("textBaseline", String).asClass;
|
|
1167
1361
|
//#endregion
|
|
1168
1362
|
//#region src/items/PanelOptionsGeomapLayerConfigStyle.js
|
|
1169
|
-
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;
|
|
1170
1364
|
//#endregion
|
|
1171
1365
|
//#region src/items/PanelOptionsGeomapLayerConfig.js
|
|
1172
|
-
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;
|
|
1173
1367
|
//#endregion
|
|
1174
1368
|
//#region src/items/PanelOptionsGeomapLayerLocation.js
|
|
1175
1369
|
var PanelOptionsGeomapLayerLocation = defineGrafanaItemClass("PanelOptionsGeomapLayerLocation", GrafanaItem).defineValue("mode", String).asClass;
|
|
1176
1370
|
//#endregion
|
|
1177
1371
|
//#region src/items/PanelOptionsGeomapLayer.js
|
|
1178
|
-
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;
|
|
1179
1373
|
//#endregion
|
|
1180
1374
|
//#region src/items/PanelOptionsGeomapTooltip.js
|
|
1181
1375
|
var PanelOptionsGeomapTooltip = defineGrafanaItemClass("PanelOptionsGeomapTooltip", GrafanaItem).defineValue("mode", String).asClass;
|
|
@@ -1184,13 +1378,13 @@ var PanelOptionsGeomapTooltip = defineGrafanaItemClass("PanelOptionsGeomapToolti
|
|
|
1184
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;
|
|
1185
1379
|
//#endregion
|
|
1186
1380
|
//#region src/items/PanelOptionsGeomap.js
|
|
1187
|
-
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;
|
|
1188
1382
|
//#endregion
|
|
1189
1383
|
//#region src/items/PieChartLegendOptions.js
|
|
1190
|
-
var PieChartLegendOptions = defineGrafanaItemClass("PieChartLegendOptions", VizLegendOptions).
|
|
1384
|
+
var PieChartLegendOptions = defineGrafanaItemClass("PieChartLegendOptions", VizLegendOptions).defineBasicArray("values", String).asClass;
|
|
1191
1385
|
//#endregion
|
|
1192
1386
|
//#region src/items/PanelOptionsPieChart.js
|
|
1193
|
-
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;
|
|
1194
1388
|
//#endregion
|
|
1195
1389
|
//#region src/items/PanelOptionsStat.js
|
|
1196
1390
|
var PanelOptionsStat = defineGrafanaItemClass("PanelOptionsStat", PanelOptions).asClass;
|
|
@@ -1205,13 +1399,13 @@ var PanelOptionsTable = defineGrafanaItemClass("PanelOptionsTable", PanelOptions
|
|
|
1205
1399
|
var PanelOptionsTextCode = defineGrafanaItemClass("PanelOptionsTextCode", GrafanaItem).defineValue("language", String).defineValue("showLineNumbers", Boolean).defineValue("showMiniMap", Boolean).asClass;
|
|
1206
1400
|
//#endregion
|
|
1207
1401
|
//#region src/items/PanelOptionsText.js
|
|
1208
|
-
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;
|
|
1209
1403
|
//#endregion
|
|
1210
1404
|
//#region src/items/PanelOptionsTimeSeries.js
|
|
1211
|
-
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;
|
|
1212
1406
|
//#endregion
|
|
1213
1407
|
//#region src/items/TargetInfinity.js
|
|
1214
|
-
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;
|
|
1215
1409
|
//#endregion
|
|
1216
1410
|
//#region src/items/Testdata.js
|
|
1217
1411
|
var Testdata = defineGrafanaItemClass("Testdata", Datasource).with((builder) => defineDatasource(builder, "grafana-testdata-datasource")).asClass;
|
|
@@ -1221,33 +1415,37 @@ var FieldConfigCustomText = defineGrafanaItemClass("FieldConfigCustomText", Fiel
|
|
|
1221
1415
|
//#endregion
|
|
1222
1416
|
//#region src/items/properties/panel.js
|
|
1223
1417
|
/**
|
|
1224
|
-
* @
|
|
1418
|
+
* @template T
|
|
1419
|
+
* @typedef {import("@gdacm/base-types").MetaConstructor<T>} MetaConstructor
|
|
1420
|
+
*/
|
|
1421
|
+
/**
|
|
1422
|
+
* @template {Panel} T
|
|
1423
|
+
* @param {GrafanaItemClassBuilder<T>} builder
|
|
1225
1424
|
* @param {string} typeName
|
|
1226
|
-
* @param {
|
|
1227
|
-
* @param {
|
|
1425
|
+
* @param {MetaConstructor<FieldConfigCustom>} fieldConfigCustom
|
|
1426
|
+
* @param {MetaConstructor<PanelOptions>} panelOptions
|
|
1228
1427
|
* @param {Object} [options]
|
|
1229
|
-
* @param {(instance:
|
|
1428
|
+
* @param {(instance: T) => void} [options.onInit]
|
|
1230
1429
|
*/
|
|
1231
1430
|
var definePanel = (builder, typeName, fieldConfigCustom, panelOptions, options) => {
|
|
1232
1431
|
const { onInit } = options ?? {};
|
|
1233
1432
|
builder.defineConstructor((instance) => {
|
|
1234
|
-
|
|
1235
|
-
|
|
1236
|
-
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);
|
|
1237
1435
|
}).defineGetterSetter("custom", `${fieldConfigCustom.name}`, {
|
|
1238
1436
|
typesToInclude: [fieldConfigCustom],
|
|
1239
1437
|
getter: (instance) => instance.fieldConfig.defaults.custom
|
|
1240
1438
|
}).defineMethod(`withCustom`, `(code: (custom: ${fieldConfigCustom.name}) => void): this`, {
|
|
1241
1439
|
typesToInclude: [fieldConfigCustom],
|
|
1242
1440
|
/**
|
|
1243
|
-
* @param {
|
|
1441
|
+
* @param {T} instance
|
|
1244
1442
|
* @param {(custom: FieldConfigCustom) => void} code
|
|
1245
1443
|
* */
|
|
1246
1444
|
code: (instance, code) => {
|
|
1247
1445
|
code(instance.fieldConfig.defaults.custom);
|
|
1248
1446
|
return instance;
|
|
1249
1447
|
}
|
|
1250
|
-
}).
|
|
1448
|
+
}).defineObject("options", panelOptions, { onDefault: (options) => new panelOptions(options) });
|
|
1251
1449
|
};
|
|
1252
1450
|
//#endregion
|
|
1253
1451
|
//#region src/items/TextPanel.js
|
|
@@ -1257,8 +1455,13 @@ var TextPanel = defineGrafanaItemClass("TextPanel", Panel).with((builder) => def
|
|
|
1257
1455
|
var BarChart = defineGrafanaItemClass("BarChart", Panel).with((instance) => definePanel(instance, "barchart", FieldConfigCustomBarChart, PanelOptionsBarChart, { onInit: (instance) => {
|
|
1258
1456
|
instance.fieldConfig.defaults.setColorMode("palette-classic");
|
|
1259
1457
|
instance.fieldConfig.defaults.thresholds.setMode("absolute");
|
|
1260
|
-
} })).defineMethod("
|
|
1261
|
-
|
|
1458
|
+
} })).defineMethod("setThresholdsStyleMode", "(mode: string): this", {
|
|
1459
|
+
/**
|
|
1460
|
+
* @param {BarChart} instance
|
|
1461
|
+
* @returns
|
|
1462
|
+
*/
|
|
1463
|
+
code: (instance, mode) => {
|
|
1464
|
+
instance.custom.thresholdsStyle.setMode(mode);
|
|
1262
1465
|
return instance;
|
|
1263
1466
|
} }).asClass;
|
|
1264
1467
|
//#endregion
|
|
@@ -1289,8 +1492,13 @@ var Table = defineGrafanaItemClass("Table", Panel).with((builder) => definePanel
|
|
|
1289
1492
|
var TimeSeries = defineGrafanaItemClass("TimeSeries", Panel).with((builder) => definePanel(builder, "timeseries", FieldConfigCustomTimeSerie, PanelOptionsTimeSeries, { onInit: (instance) => {
|
|
1290
1493
|
instance.fieldConfig.defaults.setColorMode("palette-classic");
|
|
1291
1494
|
instance.fieldConfig.defaults.thresholds.setMode("absolute");
|
|
1292
|
-
} })).defineMethod("
|
|
1293
|
-
|
|
1495
|
+
} })).defineMethod("setThresholdsStyleMode", "(mode: string): this", {
|
|
1496
|
+
/**
|
|
1497
|
+
* @param {TimeSeries} instance
|
|
1498
|
+
* @returns
|
|
1499
|
+
*/
|
|
1500
|
+
code: (instance, mode) => {
|
|
1501
|
+
instance.custom.thresholdsStyle.setMode(mode);
|
|
1294
1502
|
return instance;
|
|
1295
1503
|
} }).asClass;
|
|
1296
1504
|
//#endregion
|