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